基于消息中間件的數據傳輸技術

發表于:2008-02-20來源:作者:點擊數: 標簽:中間件
摘要: 給出了用 中間件 技術整合分離的業務 系統 的方法,給出了利用消息中間件完成數據轉換、數據傳輸、數據平衡等關鍵技術的具體實現方法,是解決目前大量存在的系統整合問題的理想方案。 1系統總體框架 按照中央及部領導的要求,為強化政府監管職能、整
摘要:給出了用中間件技術整合分離的業務系統的方法,給出了利用消息中間件完成數據轉換、數據傳輸、數據平衡等關鍵技術的具體實現方法,是解決目前大量存在的系統整合問題的理想方案。

  1系統總體框架

  按照中央及部領導的要求,為強化政府監管職能、整頓規范建筑市場,提高政府宏觀調控 的科學性,國家建設部決定建立全國建筑市場監督管理信息系統。由于建筑市場各環節的監管工作由行政上相對獨立的管理機構承擔,因此,原有的建筑市場各業務管理系統采取的獨立開發系統,沒有形成完整、統一、具有宏觀監管調控功能的信息共享的數據交換。各地、各部門采用的系統平臺、數據庫平臺及數據庫結構各不相同,無法實現跨地域、跨部門的信息共享。因此系統設計確定利用中間件應用服務器技術,在保證原有業務系統正常運行的基礎上搭建系統整合平臺,并將分離的業務數據歸集到數據中心,并在此基礎上搭建建筑市場監管系統,同時將必要的信息通過公眾信息發布平臺(網站)向社會公布。

  各業務數據通過中間件實現數據的整合和傳輸過程。其中傳輸平臺采用Apusic iMTS消息 中間件。該中間件采用了Java技術,實現大批量、安全的數據傳輸。并采用Apusic應用服務器所提供的負載均衡技術組建監管信息系統的服務器集群,保障監管信息系統的容錯性和可靠性,在數據中心運行該平臺的服務器端程序,24 h監控來自各業務系統的待整合數據,各業務系統端運行整合平臺的客戶端程序,負責從業務系統中抽取符合監管系統數據規范的業務數據,整合平臺的服務器端程序根據可配置的規則對待整合數據進行分析、驗證和處理,將其裝載到數據中心的數據庫中??蛻舳顺绦虺槿〉玫降?NOBR oncontextmenu="return false;" onmousemove=kwM(9); id=key7 onmouseover="kwE(event,9, this);" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="return kwC(event,9);" onmouseout="kwL(event, this);" target="_blank">業務數據都封裝為XML格式的數據流,再由整合平臺客戶端程序調用數據傳輸平臺中的中間件功能進行上傳。

  2數據傳輸技術

  在網絡上進行數據傳輸,一般來說,首先應該考慮其傳輸方式的有效性。如考慮如圖1所示的 一種場景。

  圖1中節點A和節點B之間進行數據傳輸,中間有防火墻隔離。大多數的防火墻禁止了直接的T C P/IP端口的訪問,這就意味著采用TCP/IP方式進行的數據傳輸將無法在節點A和節點B之間進 行。而與此同時,大多數的防火墻都開放了http端口80,這就意味著,通過HTTP協議進行的數據傳輸無需考慮漫長網絡路途中無數的防火墻。這種情形下,J2EE應用服務器,如Apusic應用服務器提供了一種供客戶端Java程序進行訪問的http Tunnel的技術??蛻舳顺绦蛑灰唵蔚卣{用Java API中的URLConnection對象就可以向服務端發送數據。

  拋開防火墻,采用一些專業的數據傳輸組件,如金蝶中間件的Apusic iMTS,亦可實現良好的數據傳輸能力。

  Apusic iMTS的數據傳輸過程如圖2所示


Apusic iMTS的應用場景如圖3所示

  數據傳輸技術中,還有一種可能的方法是采用JMS技術進行傳輸。JMS是Java的消息服務,一般的J2EE應用服務器都提供了JMS服務。JMS提供了基于主題和隊列的兩種消息傳送方式?;谥黝}的消息傳送指的是多個客戶端預定某個主題的消息,然后大致實現點到多點的消息/數據傳送,每個客戶端都可得到該主題的消息?;陉犃械南魉图捶掌饕躁犃械姆绞桨l送消息,某一客戶端獲得該消息時該消息即從該隊列中移除。一些應用服務器提供了所謂增強的JMS消息能力,如IBM的消息中間件,大致的原理和功能應用范圍與此類似??梢钥闯?,采用基于JMS的數據傳輸技術,除了較難繞過防火墻外,受限于傳輸的數據類型(簡單的Java對象)和效率等,并不適合用于數據庫間的數據復制/整合傳輸。

  3數據平衡技術

  所謂數據平衡技術是指數據在2個數據庫間的同步。如圖4所示。

  圖4中數據庫A為主數據庫,數據庫B為分數據庫。業務數據b主要通過業務系統錄入到分數 據庫B中,但因為一些特定的原因,業務數據b也可以通過業務系統錄入到數據庫A中。數據庫B中的業務數據b定期更新到數據庫A中,與此同時,也應將數據庫A上業務系統錄入的業務數據b更新到數據庫B中。

  很顯然,這種數據平衡過程需要著重考慮數據長度不一致問題、主鍵問題及數據結構不一 致問題等。

  主鍵問題主要產生在采用遞增數字為主鍵的場合,如在Oracle中用sequence為主鍵值。由 于數據庫主鍵的約束,這時不管A至B,還是B至A,數據更新都不會完全成功。怎么辦?修改數據庫A上表的主鍵,將其改為UUID形式的字符,同時在A上建立映射表,將A上的表的主鍵與B上表的主鍵一一對應。

  在數據結構不一致的情況下,應將數據庫A中的結構設為最簡,并在數據庫B中數據合并至 A時用規定的分隔符進行組合。顯然,在A上的業務系統應該將結構展示為B上的數據結構,其他跟A上數據表相關的業務系統應該考慮到這種特殊處理場景。

4結語

  全國建筑市場監督管理信息系統構建時在數據傳輸平臺中使用中間件技術,這對于解決已 有老系統的整合、打破信息孤島使資源得以最大限度的共享是非常好的解決方案。由于目前存在大量的系統整合需求,因此,本系統使用的解決方案是較好的案例。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97