【原創】基於Windows服務的異構資料庫同步應用

來源:互聯網
上載者:User

本文作者:Jack

摘 要:    使
用Windows服務實現資料訂閱分發流程,結合MSMQ訊息佇列進行傳輸,可以解決跨網段的異構資料庫同步,異構資料庫分別屬於不同的系統,文章的主要
任務是實現多個系統的整合工作。結合實際項目的應用與研究,從系統需求、系統設計、系統實現3個方面進行分析,提供一套完整的解決方案,實現各個系統之間
的協作。

關鍵詞:    MSMQ、WINDOWS 服務、XML 報文、資料交換、WEB 服務

隨著電子資訊化的發展與應用,各個企業各個單位之間都開發和應用了自己的資訊化系統。各個單位之間使用了不同的開發技術和後台資料庫,它們之間是分離,沒有關係的。企業整合不僅僅能建立一個三(表現層、業務層、資料訪問層)層應用結構,還能使一個應用分布到多台電腦上。分布式應用中,單個的一層是無法自己啟動並執行,而整合應用中的每一個應用都能獨立運行,它們時間通過偶合完成功能。非同步訊息傳遞體繫結構來整合多個應用,異構資料庫的同步問題是實際項目中急待解決的問題

   系統需求

電子資料交換最主要的任務是實現不同系統,不同業務之間的資料交換與系統整合,是一個實際項目中各個系統的分布圖(圖1),
各個系統之間是彼此獨立的,使用各自不同的資料庫。首先企業端通過一站式申報平台申報單證資訊到海關由海關進行審批工作,如果海關審批通過,相應的企業端
資訊狀態則進行變更,然後企業端發送車輛資訊到物流園區場站系統,場站系統接收到海關端的允許存取資訊和企業端發送的車輛資訊則進行車輛通過允許存取工作。



圖1                                            

 

圖2

整個系統之間是通過各自獨立的Windows服務監控自己的資料庫,對應表發生變更以後,產生變更後的XML報文,通過路由設定由MQ訊息佇列把報文發送到接收端,接收端服務接收到MQ報文以後,對接收的XML報文解析進入接收端資料庫。各個報文定義使用Schema定義來完成,只有符合Schema規則定義的報文才可以進入訊息佇列來進行傳輸。例如客戶關係Schema報文定義如(圖2)所示,只有符合Schema格式的報文才可以產生XML報文進行傳輸。

   系統架構

 

 

圖3

如(圖3)所示,傳輸系統使用了WINDOWS服務來完成資料轉送的;根據可以看出其內部包括以下組成部分:

(1)     WindowsServe_Fuzhou :Windows 服務元件,負責整個系統的資料轉送;出庫動作:Adapter組件接收到自己資料庫變更的時候,通過對應配置指定的Schema產生XML報文,發送報文到MQ訊息佇列裡面。入庫動作:接收到MQ隊列裡面的XML報文、通過對應的Schema進行報文格式的解析,符合格式要求的報文通過Adapter組件進入到自己的資料庫表裡面。

(2)     MSMQ :訊息佇列傳輸組件,負責XML報文的傳輸工作;

(3)     BIZTALK_MESSAGE:報文定義、解析、路由、配置組件;是整個傳輸系統的核心。使用設定檔來完成以上配置工作,提高系統的靈活性。

(4)     LOG:系統日誌模組,用於報文的傳輸跟蹤與調試,建立統一的日誌監控平台,完成對每一筆報文的監視工作,同時可以對出現異常的報文進行分析工作,通過Web頁面顯示給客戶;

(5)     SqlAdapter_fuzhou:資料庫(SQLSERVER)監視組件,當監視到資料庫裡面對應的表發生變更以後,Adapter組件會啟動BIZTALK_MESSAGE訊息處理模組,對資料表裡面的記錄進行操作,進行出入庫操作,服務的資料訪問層使用了傳統的三層架構來完成,如(圖4)所示,資料庫與傳輸服務服務之間使用了ADO.net 進行資料庫訪問,通過資料訪問層(DAL)和商務邏輯層(BLL)完成,提高了系統的可讀性與靈活性;

 

          

圖4

(6)     ORACLE Adapter:資料庫(ORACLE)監視組件,對Oracle資料庫進行監視工作,系統通過不同類型的Adapter實現的多種資料庫的提供者,如果有新的資料庫類型只需要增加對應的Adapter就可以實現對應的資料庫同步;

(7)     Security_Module:訊息傳遞過程中的加密解密組件,系統使用了認證加密機制來完成對XML報文的加密和解密工作;

具體代碼如下:

 

   系統部署

系統編譯測試完成以後,需要把服務部署到對應的系統上面,各個系統之間是通過網閘分離開來的,如(圖1)所示,一站式平台、海關端系統、場站系統分別部署自己的服務,各個服務之間協同工作用於完成報文的接收和發送工作,具體部署套件括修改設定檔,DLL動態連結程式庫的裝配(其中Schema定義模組需要裝配到作業系統目錄下面),運行資料庫指令碼和具體的服務安裝工作(主要包括串連資料庫設定、報文監控系統的設定)。安裝部署完成以後開啟三個不同地點的WINDOWS服務,系統部署完成,可以實現不同資料庫的同步工作。通過實際項目的運行工作,目前運行情況良好。

   結束語

文章通過WINDOWS服務的資料訂閱分發機制給出了資料交換的一些具體解決方案。其中對XML報文的定義、解析、配置工作是系統實現的核心工作。也可以通過其他的技術來實現資料的傳輸工作,比如BIZTALK進行系統傳輸可以提高系統的穩定性、工作流程傳輸可以提高系統的流程配置靈活性,這裡不再進行詳細的分析與描述。

 

參考文獻

 [1] http://www.cnblogs.com/chnking/archive/2007/08/30/875947.html

 

特別感謝Jack的投稿

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.