專利名稱:一種數(shù)據(jù)交換和共享平臺的制作方法
技術領域:
本發(fā)明涉及一種數(shù)據(jù)交換與共享系統(tǒng)。
背景技術:
現(xiàn)代企業(yè)的數(shù)據(jù)越來越多,各個不同部門之間的數(shù)據(jù)雖然可以共享,但是存在著 下列問題
文件傳輸問題,能共享數(shù)據(jù)但不能共享功能,并且缺乏時間性,數(shù)據(jù)不同步可能性較大。共享數(shù)據(jù)庫問題,能共享數(shù)據(jù)但不能共享功能,所有應用和數(shù)據(jù)庫耦合,并且數(shù)據(jù) 庫是性能瓶頸。遠程過程調(diào)用問題,能共享功能和協(xié)作行為,但調(diào)用是實時的,同步的,應用耦合 太大。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種對應用節(jié)點透明的、使用消息機制的數(shù)據(jù)交換和共享平臺。為了實現(xiàn)上述目的,采用以下技術方案
一種數(shù)據(jù)交換和共享平臺,其特征在于所述數(shù)據(jù)和共享平臺包括
數(shù)據(jù)服務總線(DSB)使用消息機制來完成異構系統(tǒng)和跨網(wǎng)絡的應用之間的協(xié)作;
所述數(shù)據(jù)服務總線包括
消息服務端點把應用通過接口連接到數(shù)據(jù)服務總線來發(fā)送和接收消息,使數(shù)據(jù)服務 總線對應用系統(tǒng)透明;
消息組件對數(shù)據(jù)服務總線消息進行處理;
消息前端適配器通過不同的協(xié)議將各類應用連接到數(shù)據(jù)服務總線,以此來發(fā)送和接 收消息;
消息后端適配器使數(shù)據(jù)服務總線具備訪問各類不同協(xié)議應用的能力。所述消息組件包括
消息路由器消息通過消息路由器的路由規(guī)則實現(xiàn)通道的選擇; 消息過濾器消息通過消息過濾器的過濾規(guī)則實現(xiàn)消息選擇,過濾掉不需要的消息; 消息轉換器消息通過消息轉換器的轉換規(guī)則實現(xiàn)不同系統(tǒng)間不同數(shù)據(jù)格式的轉換; 消息分解器消息通過消息分解器把消息分解為關聯(lián)的多個消息,從而完成應用對消 息不同組成元素的不同處理;
消息聚合器獨立且相關的消息通過消息聚合器,從而形成一個完整的消息提供給應 用處理;
消息重排器無序但相關的消息通過消息重排器重新恢復成正確的順序; 消息規(guī)范器將語義上等價但格式不同的消息通過消息規(guī)范器完成規(guī)范格式的轉換;消息延時器將消息通過消息延時器對消息作延時處理;
消息分接器消息通過消息分接器可發(fā)送到主副通道,以便對消息進行監(jiān)控或調(diào)試; 消息流程管理器消息通過消息流程管理器可通過流程管理實現(xiàn)復雜的多步驟消息和 應用的交互;
消息安全組件消息通過消息安全組件進行必要的安全認證。所述消息前端適配器包括
文件前端適配器實現(xiàn)定時從文件夾讀取文件并轉換為消息發(fā)送到數(shù)據(jù)服務總線; FTP前端適配器實現(xiàn)定時從FTP服務器讀取文件并轉換為消息發(fā)送到數(shù)據(jù)服務總線.
一入 ,
郵件前端適配器實現(xiàn)定時從郵件服務器讀取郵件并轉換為消息發(fā)送到數(shù)據(jù)服務總線。HTTP前端適配器把數(shù)據(jù)服務總線對外暴露為HTTP服務,提供應用對數(shù)據(jù)服務總 線作HTTP協(xié)議連接請求;
JDBC前端適配器實現(xiàn)定時通過Jdbc操作從數(shù)據(jù)庫服務器讀取數(shù)據(jù)并轉換為消息發(fā) 送到數(shù)據(jù)服務總線;
IBATIS前端適配器實現(xiàn)定時通過Ibatis操作從數(shù)據(jù)庫服務器讀取數(shù)據(jù)并轉換為消 息發(fā)送到數(shù)據(jù)服務總線;
WebService前端適配器把數(shù)據(jù)服務總線對外暴露為WebService服務,提供應用對數(shù) 據(jù)服務總線作WebService調(diào)用請求;
Caucho前端適配器把數(shù)據(jù)服務總線對外暴露為Hessian或Burlap服務,提供應用對 數(shù)據(jù)服務總線作服務調(diào)用請求。所述消息后端適配器包括
文件后端適配器實現(xiàn)把數(shù)據(jù)服務總線的消息以文件形式寫入指定文件夾; FTP后端適配器實現(xiàn)把數(shù)據(jù)服務總線的消息以文件形式寫入FTP服務器; 郵件后端適配器實現(xiàn)把數(shù)據(jù)服務總線的消息以郵件形式寫入郵件服務器; HTTP后端適配器實現(xiàn)數(shù)據(jù)服務總線對應用系統(tǒng)提供的HTTP服務的訪問; JDBC后端適配器實現(xiàn)數(shù)據(jù)服務總線通過JDBC對應用系統(tǒng)提供的數(shù)據(jù)庫服務的訪
問;
IBATIS后端適配器實現(xiàn)數(shù)據(jù)服務總線通過IBATIS對應用提供的數(shù)據(jù)庫服務的訪
問;
WebService后端適配器實現(xiàn)數(shù)據(jù)服務總線對應用系統(tǒng)提供的WebService服務的訪
問;
Caucho后端適配器實現(xiàn)數(shù)據(jù)服務總線對應用系統(tǒng)提供的Hessian或Burlap服務的 訪問ο本發(fā)明使得每個數(shù)據(jù)交換節(jié)點只需要與數(shù)據(jù)服務總線進行交互,而不需要相互連 接訪問就可以獲取到所需要的數(shù)據(jù)。整個數(shù)據(jù)共享和交換的底層實現(xiàn)和存儲機制是對各應 用節(jié)點透明的。該結構耦合性低,并且很容易擴展為層次結構,構建為多級的數(shù)據(jù)交換結 構,以支持更大范圍的廣域方案。
具體實施例方式下面通過具體實施例對本發(fā)明做進一步的說明
假如應用系統(tǒng)A和應用系統(tǒng)B以及應用系統(tǒng)C是三個獨立功能的系統(tǒng),并且各自由不 同的編程語言實現(xiàn),現(xiàn)在應用系統(tǒng)A要按照不同的條件選擇調(diào)用應用系統(tǒng)B或應用系統(tǒng)C 提供的同一服務或者同步數(shù)據(jù)。1、應用系統(tǒng)A和數(shù)據(jù)服務總線(DSB)的交互
數(shù)據(jù)服務總線存在的目的就是要實現(xiàn)應用系統(tǒng)A和應用系統(tǒng)B以及應用系統(tǒng)C的解 耦,也就是說應用系統(tǒng)A只和數(shù)據(jù)服務總線交互,它根本不用知道應用系統(tǒng)B以及應用系統(tǒng) C的存在。這樣數(shù)據(jù)服務總線的消息服務端點和消息前端適配器就開始發(fā)揮作用了。(1)消息服務端點和消息前端適配器作用
如果應用系統(tǒng)A的源碼我們能夠完全知曉,對于服務調(diào)用,那么消息服務端點就是 最好的集成方式,通過消息服務端點,應用系統(tǒng)A對接口的調(diào)用直接通過動態(tài)代理轉換 為消息發(fā)送到DSB的通道上,這些轉換對應用系統(tǒng)A完全是透明的。其次我們也可以通 過把應用系統(tǒng)B或應用系統(tǒng)C提供的同一服務通過消息前端適配器(HttpInAdapter, CauchoInAdapter, WebServiceInAdapterDSB 暴露為 Http Service, Caucho Service 或 WebService。這樣應用系統(tǒng)A就很容易和DSB交互了。如果應用系統(tǒng)A的源碼我們不能夠完全知曉,對于同步數(shù)據(jù),那么消息前端適配 器中的文件前端適配器(FilelnAdapter),F(xiàn)TP前端適配器(FTPInAdapter),郵件前端適配 器(MailInAdapter)提供文件傳遞形式的集成方式,把應用系統(tǒng)A的數(shù)據(jù)轉換為消息發(fā)送 到數(shù)據(jù)服務總線,最終實現(xiàn)應用系統(tǒng)B或應用系統(tǒng)C數(shù)據(jù)同步。如果應用系統(tǒng)A對我們提供了數(shù)據(jù)庫訪問權限,對于同步數(shù)據(jù),那么JDBC前端適 配器或IBATIS前端適配器就能操作并獲取應用系統(tǒng)A數(shù)據(jù)庫數(shù)據(jù),轉換為消息發(fā)送到數(shù)據(jù) 服務總線,最終實現(xiàn)應用系統(tǒng)B或應用系統(tǒng)C數(shù)據(jù)同步。同步和異步策略
數(shù)據(jù)服務總線(DSB)是基于消息機制的實現(xiàn),提供了傳遞的高可靠性,可以為應用系統(tǒng) A提供同步或異步的調(diào)用,異步方式能大大提高應用系統(tǒng)A的并發(fā)訪問能力。數(shù)據(jù)服務總線可靈活組合的組件
當應用系統(tǒng)A的數(shù)據(jù)通過消息前端適配器轉換為消息發(fā)送到數(shù)據(jù)服務總線(DSB)的通 道后,我們就可以根據(jù)具體的應用場景來組合不同的組件,這樣各種消息組件就開始發(fā)揮 作用了。消息過濾器
如果應用系統(tǒng)A發(fā)送到數(shù)據(jù)服務總線的通道上的消息需要過濾掉一些不滿足條件的 消息,那么可通過具體的過濾規(guī)則選擇不同的消息過濾器,如消息頭過濾器,消息類型過濾 器,Xpath解析消息體過濾器,方法調(diào)用過濾器等 消息路由器
由于應用系統(tǒng)A要按照不同的條件選擇調(diào)用應用系統(tǒng)B或應用系統(tǒng)C提供的同一服務 或者同步數(shù)據(jù),那么我們就需要根據(jù)應用系統(tǒng)A提供的不同選擇條件作為路由規(guī)則,使來 自上面消息過濾器過濾后的消息能通過消息路由器被發(fā)送到和系統(tǒng)B或系統(tǒng)C相關聯(lián)的不 同通道??赏ㄟ^具體的消息攜帶的選擇條件選擇不同的消息路由器,如消息頭路由器,消息類型路由器,Xpath解析消息體路由器,方法調(diào)用路由器,靜態(tài)接收表路由器,動態(tài)接收表路
由器等ο消息轉換器
因為應用系統(tǒng)A和應用系統(tǒng)B以及應用系統(tǒng)C是三個獨立功能的系統(tǒng),所以通過上面 的路由器實現(xiàn)正確的通道選擇后,并不能保證它們的數(shù)據(jù)格式相同,這時我們就需要在路 由出口不同通道后都加上消息轉換器,一個把應用系統(tǒng)A的數(shù)據(jù)格式轉換成應用系統(tǒng)B所 需的數(shù)據(jù)格式,另一個把應用系統(tǒng)A的數(shù)據(jù)格式轉換成應用系統(tǒng)C所需的數(shù)據(jù)格式。可通過具體的消息的格式選擇不同的消息轉換器消息頭擴充器,消息體擴充器, 對象轉XML轉換器,XML轉對象轉換器,XSLT消息轉換器,方法調(diào)用轉換器。如果應用系統(tǒng)A和應用系統(tǒng)B以及應用系統(tǒng)C的消息在語義上等價但格式不同, 那么也可通過消息規(guī)范器來完成消息轉換。消息鏈式組件
從上面可以看出,消息經(jīng)過了 消息過濾器一消息路由器一消息轉換器,由于我們的消 息鏈式組件可鏈接一些可鏈接的組件,并且消息路由器只能作為鏈的末端組件,因此我們 可把消息過濾器一消息路由器實現(xiàn)為鏈式組件來使用,這樣不僅能節(jié)省通道數(shù)量,也能提 高一定的效率。消息分解器
這里,假設應用系統(tǒng)A發(fā)送到數(shù)據(jù)服務總線的通道上的消息如果由不同的兩部分組 成,每一部分分別由應用系統(tǒng)B或應用系統(tǒng)C來處理(如訂單上的不同訂單項,每個不同訂 單項可由不同系統(tǒng)處理),那么就可以通過消息分解器把同一消息分解成相互關聯(lián)的多條 消息再發(fā)送。每條消息由不同的方式和系統(tǒng)處理。消息聚合器
和消息分解器作用相反,把相互關聯(lián)的消息聚合為一條完整消息。這樣就能把上面提 到的應用系統(tǒng)B或應用系統(tǒng)C處理的各條相關消息的結果再聚合成一條結果消息,以便后 續(xù)處理。消息流程管理器
如果應用系統(tǒng)A調(diào)用應用系統(tǒng)B或應用系統(tǒng)C是有順序性的,或者需要更復雜的編排, 我們就可使用消息流程管理器,按照工作流程思想來處理應用系統(tǒng)A發(fā)送到數(shù)據(jù)服務總線 的通道上的消息,同樣可以和消息過濾器或消息路由器,消息轉換器協(xié)同工作。消息延時器用于消息由于網(wǎng)絡故障的重新投遞延時功能,這樣能減輕數(shù)據(jù)服務 總線的負荷。2、數(shù)據(jù)服務總線與應用系統(tǒng)B或應用系統(tǒng)C的交互
應用系統(tǒng)B或應用系統(tǒng)C可能提供不同的服務類型,數(shù)據(jù)服務總線與之交互,這時,消 息后端適配器就開始發(fā)揮作用了。消息后端適配器作用
對于服務調(diào)用,如果應用系統(tǒng)B或應用系統(tǒng)C暴露的服務為HTTP方式,WebService方 式或Caucho方式,我們可使用HTTP后端適配器(HttpOutAdapter),WebService后端適配 器(WebServiceOutAdapter)或 Caucho 后端適配器(CauchoOutAdapter)與之交互。對于同步數(shù)據(jù),那么消息后端適配器中的文件后端適配器(FileOUtAdapter),F(xiàn)TP后端適配器(FTPOutAdapter),郵件后端適配器(MailOutAdapter)提供文件傳遞形式的集 成方式,把數(shù)據(jù)服務總線的消息寫入文件夾和FTP服務器,以及郵件服務器,以達到不同系
統(tǒng)數(shù)據(jù)共享。如果應用系統(tǒng)B或應用系統(tǒng)C對我們提供了數(shù)據(jù)庫訪問權限,對于同步數(shù)據(jù),那么 JDBC后端適配器(JdbcInAdapter)或IBATIS后端適配器(IbatisInAdapter)就能完成對 應用系統(tǒng)B或應用系統(tǒng)C的數(shù)據(jù)庫操作,以達到不同系統(tǒng)數(shù)據(jù)共享。數(shù)據(jù)服務總線消息重新投遞策略
由于消息后端適配器對應用系統(tǒng)的調(diào)用可能由于網(wǎng)絡等故障失敗,需要重新投遞策略 來保證消息后端適配器對應用系統(tǒng)的調(diào)用可靠性。這在異步方式下是相當有用的,這樣就 不必擔心網(wǎng)絡的不可靠了。本發(fā)明以消息機制為核心解決數(shù)據(jù)交換與共享問題,整個處理過程簡潔明了,平 易于理解與使用,是輕量級的企業(yè)信息集成平臺。
權利要求
1.一種數(shù)據(jù)交換和共享平臺,其特征在于所述數(shù)據(jù)和共享平臺包括數(shù)據(jù)服務總線(DSB)使用消息機制來完成異構系統(tǒng)和跨網(wǎng)絡的應用之間的協(xié)作; 所述數(shù)據(jù)服務總線包括消息服務端點把應用通過接口連接到數(shù)據(jù)服務總線來發(fā)送和接收消息,使數(shù)據(jù)服務 總線對應用系統(tǒng)透明;消息組件對數(shù)據(jù)服務總線消息進行處理;消息前端適配器通過不同的協(xié)議將各類應用連接到數(shù)據(jù)服務總線,以此來發(fā)送和接 收消息;消息后端適配器使數(shù)據(jù)服務總線具備訪問各類不同協(xié)議應用的能力。
2.如權利要求1所述的數(shù)據(jù)交換和共享平臺,其特征在于所述消息組件包括 消息路由器消息通過消息路由器的路由規(guī)則實現(xiàn)通道的選擇;消息過濾器消息通過消息過濾器的過濾規(guī)則實現(xiàn)消息選擇,過濾掉不需要的消息; 消息轉換器消息通過消息轉換器的轉換規(guī)則實現(xiàn)不同系統(tǒng)間不同數(shù)據(jù)格式的轉換; 消息分解器消息通過消息分解器把消息分解為關聯(lián)的多個消息,從而完成應用對消 息不同組成元素的不同處理;消息聚合器獨立且相關的消息通過消息聚合器,從而形成一個完整的消息提供給應 用處理;消息重排器無序但相關的消息通過消息重排器重新恢復成正確的順序; 消息規(guī)范器將語義上等價但格式不同的消息通過消息規(guī)范器完成規(guī)范格式的轉換; 消息延時器將消息通過消息延時器對消息作延時處理;消息分接器消息通過消息分接器可發(fā)送到主副通道,以便對消息進行監(jiān)控或調(diào)試; 消息流程管理器消息通過消息流程管理器可通過流程管理實現(xiàn)復雜的多步驟消息和 應用的交互;消息安全組件消息通過消息安全組件進行必要的安全認證。
3.如權利要求2所述的數(shù)據(jù)交換和共享平臺,其特征在于所述消息前端適配器包括文件前端適配器實現(xiàn)定時從文件夾讀取文件并轉換為消息發(fā)送到數(shù)據(jù)服務總線; FTP前端適配器實現(xiàn)定時從FTP服務器讀取文件并轉換為消息發(fā)送到數(shù)據(jù)服務總線;郵件前端適配器實現(xiàn)定時從郵件服務器讀取郵件并轉換為消息發(fā)送到數(shù)據(jù)服務總線;HTTP前端適配器把數(shù)據(jù)服務總線對外暴露為HTTP服務,提供應用對數(shù)據(jù)服務總線作 HTTP協(xié)議連接請求;JDBC前端適配器實現(xiàn)定時通過Jdbc操作從數(shù)據(jù)庫服務器讀取數(shù)據(jù)并轉換為消息發(fā) 送到數(shù)據(jù)服務總線;IBATIS前端適配器實現(xiàn)定時通過Ibatis操作從數(shù)據(jù)庫服務器讀取數(shù)據(jù)并轉換為消 息發(fā)送到數(shù)據(jù)服務總線;WebService前端適配器把數(shù)據(jù)服務總線對外暴露為WebService服務,提供應用對數(shù) 據(jù)服務總線作WebService調(diào)用請求;Caucho前端適配器把數(shù)據(jù)服務總線對外暴露為Hessian或Burlap服務,提供應用對 數(shù)據(jù)服務總線作服務調(diào)用請求。
4.如權利要求3所述的數(shù)據(jù)交換和共享平臺,其特征在于所述消息后端適配器包括文件后端適配器實現(xiàn)把數(shù)據(jù)服務總線的消息以文件形式寫入指定文件夾; FTP后端適配器實現(xiàn)把數(shù)據(jù)服務總線的消息以文件形式寫入FTP服務器; 郵件后端適配器實現(xiàn)把數(shù)據(jù)服務總線的消息以郵件形式寫入郵件服務器; HTTP后端適配器實現(xiàn)數(shù)據(jù)服務總線對應用系統(tǒng)提供的HTTP服務的訪問; JDBC后端適配器實現(xiàn)數(shù)據(jù)服務總線通過JDBC對應用系統(tǒng)提供的數(shù)據(jù)庫服務的訪問;IBATIS后端適配器實現(xiàn)數(shù)據(jù)服務總線通過IBATIS對應用提供的數(shù)據(jù)庫服務的訪問;WebService后端適配器實現(xiàn)數(shù)據(jù)服務總線對應用系統(tǒng)提供的WebService服務的訪問;Caucho后端適配器實現(xiàn)數(shù)據(jù)服務總線對應用系統(tǒng)提供的Hessian或Burlap服務的 訪問ο
全文摘要
本發(fā)明公開了一種數(shù)據(jù)交換和共享平臺,包括數(shù)據(jù)服務總線使用消息機制來完成異構系統(tǒng)和跨網(wǎng)絡的應用之間的協(xié)作;所述數(shù)據(jù)服務總線包括消息服務端點把應用通過接口連接到數(shù)據(jù)服務總線來發(fā)送和接收消息,使數(shù)據(jù)服務總線對應用系統(tǒng)透明;消息組件對數(shù)據(jù)服務總線消息進行處理;消息前端適配器通過不同的協(xié)議將各類應用連接到數(shù)據(jù)服務總線,以此來發(fā)送和接收消息;消息后端適配器使數(shù)據(jù)服務總線具備訪問各類不同協(xié)議應用的能力。本發(fā)明使得每個數(shù)據(jù)交換節(jié)點只需要與數(shù)據(jù)服務總線進行交互,而不需要相互連接訪問就可以獲取到所需要的數(shù)據(jù)。整個數(shù)據(jù)共享和交換的底層實現(xiàn)和存儲機制是對各應用節(jié)點透明的。
文檔編號H04L29/08GK102006245SQ201010582808
公開日2011年4月6日 申請日期2010年12月10日 優(yōu)先權日2010年12月10日
發(fā)明者繆秦 申請人:重慶亞德科技股份有限公司