專利名稱:組件適配器的實現方法
技術領域:
本發(fā)明涉及一種在分布式對象環(huán)境下解決各種組件服務適配問題的組件適配器的實現方法,利用該方法實現的組件服務器可以屏蔽分布式部署的組件如COM、CORBA、EJB等的形態(tài)差異和個體差異。該技術屬于計算機技術中的中間件技術領域。
背景技術:
在電信業(yè)務網、金融業(yè)務網及電子政務網等大型網絡系統(tǒng)中,分布式對象技術得到了越來越廣泛的使用?,F有的分布式對象技術主要有三大流派——OMG的COBRA、微軟的COM/DCOM和SUN的EJB。這些分布式對象技術在使用中都存在跨系統(tǒng)與跨邊界兩個基本問題。所謂跨系統(tǒng),是指多個操作服務引擎會在不同的系統(tǒng)平臺上提供服務;所謂跨邊界,是指操作服務引擎會在不同的業(yè)務自治域內提供服務。
由于上述原因,支持操作服務引擎的組件服務部署情形非常復雜。這些服務可能以COM、CORBA、EJB、Servlet、Web Service等多種形式存在,它們可以是同一個自治域內跨系統(tǒng)部署的,也可以是跨邊界部署的,因為多引擎協(xié)作平臺需要盡可能多的組件服務以擴展其功能。操作服務引擎在完成源到目標的映射動作后需要即刻觸發(fā)組件的服務,從設計規(guī)范化角度考慮,操作服務引擎需要以一種統(tǒng)一的方式觸發(fā)組件的服務。這種方式就由我們所說的組件適配器來提供。
目前市場上適配器類產品的主流供應商有TIBCO和IBM等公司。適配器產品形態(tài)可以分為兩類,一類是信息總線的適配器(Information BusAdapter),一類是業(yè)務集成代理適配器(Business Integration BrokerAdapter)。
TIBCO公司的適配器是基于信息總線的適配器,它的主要功能是支持分布式系統(tǒng)間的信息交換,共享TIBCO作為專利技術提供的信息總線。TIBCO提供的適配器已達到60種,包括應用適配器、網絡技術適配器、數據庫適配器、以及定制應用適配器等多種類型。它們支持應用數據交互、網絡分布式系統(tǒng)信息交互、數據庫數據同步交互、以及定制應用系統(tǒng)的信息交互、集成、共享信息總線平臺等多種功能。
IBM公司的WebSphere業(yè)務整合適配器是業(yè)務集成代理適配器的典型代表。這類適配器支持網絡分布式應用系統(tǒng)、數據庫系統(tǒng)、網管系統(tǒng)等在實際運行過程中的業(yè)務過程集成,通過提供模版和適配器,支持跨不同廠商的應用產品的業(yè)務集成。它支持的技術包括JMS、電子郵件、XML、Jtext、JDBC和SWIFT 1.0。
但是,上述適配器仍然存在許多不足之處。它們在本質上還是一個信息總線平臺或者業(yè)務集成代理,主要解決的是分布式部署的組件服務如COM、CORBA、EJB等的形態(tài)差異。在具體的組件服務訪問中,上述組件個體的差異仍然會有所體現。另外,上述適配器也不能實現統(tǒng)一的用戶開發(fā)界面。
發(fā)明內容
本發(fā)明的目的在于提供一種新的組件適配器的實現方法。通過該方法實現的組件適配器可以使上層的操作服務引擎在需要完成某種操作的時候,既不需要知道所要使用的組件屬于何種組件,又不需要知道使用的組件具體需要何種參數、使用何種接口。所有這些必須的信息,都由組件適配器通過協(xié)作信息總線獲得,使該組件適配器自身就可以完成對業(yè)務和數據的整合。
為實現上述的發(fā)明目的,本發(fā)明采用下述的技術方案一種組件適配器的實現方法,用于實現可以屏蔽分布式部署組件的形態(tài)差異和個體差異的組件適配器,該組件適配器具有上層的組件接口一致性適配器和至少一個下層的具體組件服務接口,其中組件接口一致性適配器與緊耦合的操作服務引擎和調度引擎進行數據交換,該方法包括如下步驟所述操作服務引擎觸發(fā)組件服務之后,傳遞給所述組件接口一致性適配器操作指令,所述調度引擎在操作服務知識庫中檢出操作服務引擎所要使用的組件的信息,所述組件接口一致性適配器對所述操作服務引擎的指令進行分析,確定需要適配何種組件之后,從調度引擎中獲取組件服務的參數信息,再把參數信息傳遞給下層的至少一個具體組件服務接口,由它們調用所述操作服務引擎需要的組件服務。
與現有的適配器產品相比,本發(fā)明方法實現的組件適配器具有如下特點1.本組件適配器匯集分布存在的組件,支持在同一系統(tǒng)內構建業(yè)務應用。它支持一致的用戶開發(fā)界面,屏蔽了分布式部署的組件的形態(tài)差異。
2.本組件適配器把多個組件的屬性群集成一個業(yè)務單元數據集合,從而屏蔽了組件服務訪問中個體的差異。
下面結合附圖和具體實施方式
對本發(fā)明作進一步的說明。
圖1為組件適配器在一種多引擎協(xié)作平臺實施例中的位置示意圖。
圖2為組件適配器的組成結構示意圖。
圖3為組件適配器的運行機制示意圖。
圖4為操作服務知識庫中必要充分條件知識庫的數據結構示意圖。
圖5為操作服務知識庫中組件描述知識庫的數據結構示意圖。
圖6為操作服務知識庫中參數描述知識庫的數據結構示意圖。
圖7為操作服務知識庫中映射規(guī)則描述知識庫的數據結構示意圖。
圖8為組件適配器的工作流程圖。
具體實施例方式
本組件適配器的實現環(huán)境是這樣的在硬件方面,只需要計算機的CPU為PIII以上,內存大于256兆即可;而在軟件方面則需要支持Java虛擬機的操作系統(tǒng),Java虛擬機應該為J2SDK 1.3.0或者以上版本,另外還要有支持Servlet2.2及以上版本的Servlet容器。
圖1所示的是本組件適配器在一種多引擎協(xié)作平臺實施例中的位置示意圖。這一多引擎協(xié)作平臺的結構是示例性的。在不同的具體應用環(huán)境中,它的具體組成可以有所變化,但其基本的結構是不變的,即它的最頂端為具體業(yè)務應用目標,最底端為信息存儲支撐平臺的知識庫和作為公共服務平臺的J2EE應用服務器,中間部分為調度引擎和各種操作服務引擎,它們之間的聯系方式為分布式組件模式。協(xié)作信息總線和組件適配器一起在其中起著不同系統(tǒng)之間數據交互、調度的作用。這里所提到的協(xié)作信息總線在本發(fā)明人的另一項發(fā)明專利申請——協(xié)作信息總線的實現方法中有充分地揭示,在此就不詳細說明了。在本實施例中,所用到的操作服務引擎包括業(yè)務過程操作服務引擎,文本型數據操作服務引擎,關系型數據操作服務引擎,流媒體數據操作服務引擎等,一個操作服務引擎對應有一個組件適配器,該組件適配器的功能就是屏蔽這個操作服務引擎下層組件的形態(tài)和個體差異,使得操作服務引擎只需傳入簡單的操作指令碼,組件適配器就可以自動識別所需使用組件的形態(tài),如EJB、COM、CORBA等等,查找使用該組件所需的參數,并根據操作服務引擎?zhèn)魅氲牟僮髦噶钫{用組件完成相應的操作。這里的組件適配器并不是固定不變的,它作為一種組件接口的機制,在操作服務引擎投入實際工作環(huán)境的同時就會產生,為這個從事實際工作的操作服務引擎提供向下的接口;當操作服務引擎結束工作的時候,組件適配器不再被需要,它自然結束。
如圖2和圖3所示,本組件適配器分為上層的組件接口一致性適配器和下層的具體組件如EJB、COM、CORBA接口兩層結構。其中組件接口一致性適配器負責接收操作服務引擎?zhèn)鬟f過來的操作指令,然后根據這個操作指令自動在協(xié)作信息總線中獲取匹配該操作的組件相關信息。這些信息由調度引擎在操作服務知識庫中的組件描述知識庫中檢出,并且放入協(xié)作信息總線中以供使用。調度引擎從組件描述知識庫中檢出信息的過程可以采用現有的數據庫檢索技術實現,在此就不贅述了。在組件接口一致性適配器接收操作服務引擎?zhèn)鬟f過來的操作指令并且獲得了所要使用的組件的個體信息之后,再通過使用下一層所列的具體組件接口,調用具體的組件服務。
上述組件接口一致性適配器的作用包括接收、解析操作服務引擎?zhèn)魅氲牟僮髦噶睿粡膮f(xié)作信息總線中獲取組件的相關信息,準備組件調用所必須的參數;根據所獲得的組件信息和操作指令,調用合適類型的組件接口等。而下層的各類組件接口負責根據傳入的調用參數以及操作指令,調用各類組件服務,完成各種組件操作。由于各類組件接口的具體構成都是公知的技術,在此就不加詳細說明了。
在本組件適配器中,操作服務知識庫具有特殊重要的作用操作服務引擎的工作內容及多引擎調度平臺的調度順序都從知識庫獲取。操作服務引擎基于數據結構知識庫工作,它的工作內容由必要充分條件知識庫、參數描述知識庫、組件描述知識庫、映射規(guī)則描述知識庫共同確定。調度引擎對操作作業(yè)及作業(yè)流的管理由作業(yè)知識庫和作業(yè)流知識庫提供支持。圖4給出了必要充分條件知識庫的數據結構圖。圖5為組件描述知識庫的數據結構圖,它包括組件標識、組件地址、組件型別、屬性名、屬性值等內容。參數描述知識庫如圖6所示,它包括屬性代碼、屬性名、屬性數據類型、屬性數據值域、所屬業(yè)務單證等內容。圖7為映射規(guī)則描述知識庫的數據結構圖。
上述操作服務知識庫的實例就是在上述多引擎協(xié)作平臺中存放在DB2數據庫中的相關數據。只不過它所存放的并非業(yè)務類數據,而是操作服務引擎觸發(fā)作業(yè)或者作業(yè)流時的相關參數、校驗條件、描述信息等內容。在多引擎協(xié)作平臺中,協(xié)作信息總線和組件適配器都需要引用其中相關的數據,這一引用過程是現有的數據庫技術所能支持的,在此就不贅述了。
因為一個操作服務引擎對應有一個組件適配器,而各個操作服務引擎所要完成的操作是各不相同的,為解決這一問題,我們通過定義操作指令碼來傳遞操作服務引擎所要完成的操作的信息。這一操作指令碼的設置是這樣的首先,指令碼開頭大寫字母,表明操作服務引擎的類別,比如文檔服務引擎用D來表示;其次,指令碼的緊接著的兩位數字,指明了操作服務引擎所要完成的工作,比如文檔服務引擎要新建一個文檔可以用00表示。已知操作指令的數字,可以在操作服務知識庫中查詢獲得具體的操作含義。這樣,當組件接口一致性適配器接收到C00的操作碼時,就可以通過操作服務知識庫中的信息,知道要做新建文檔的操作。
組件接口一致性適配器給操作服務引擎提供一個操作入口,操作服務引擎通過這個操作入口來傳入操作指令碼,操作指令碼代表了操作服務引擎所要進行的工作。在工作過程中,如果組件接口一致性適配器發(fā)現操作指令碼是錯誤的,則返回錯誤信息給操作服務引擎,操作服務引擎?zhèn)魅胝_的操作指令碼,重新進行調用。如果組件接口一致性適配器獲取協(xié)作信息總線中的組件信息時出錯,則返回錯誤信息給調度引擎;如果下層的組件接口服務部件參數錯誤,則返回錯誤信息給組件接口一致性適配器,由組件接口一致性適配器重新設置參數。
如圖8所示,本組件適配器的具體工作流程包括如下步驟1.由調度引擎觸發(fā),組件接口一致性適配器從組件緩沖池中讀取組件地址、識別標識和屬性名。
上述步驟中所述的組件緩沖池是采用數據緩存技術實現的,它在程序中讀入內存,從而在需要訪問組件相關信息時無需再次讀取數據庫。數據緩存技術作為公知技術,在此不詳細說明。
組件緩沖池與上述組件描述知識庫相對應,存儲包括組件標識、組件地址、組件型別、屬性名、屬性值在內的信息,這些信息可以從各個組件的技術資料中獲得。
2.調度引擎根據組件地址、識別標識和屬性名在操作服務知識庫中進行匹配,找出操作服務引擎所要使用組件的相關信息。如果匹配失敗則返回,成功則與指定地址的組件接口一致性適配器進行數據同步。
3.組件接口一致性適配器根據不同類型組件的型別和標識準備下層相應的組件接口,例如根據COM、CORBA、EJB的國際規(guī)范準備好相應接口。這里的COM國際規(guī)范由微軟公司提供,CORBA國際規(guī)范由OMG組織提供,它們在各自的網站上對此有詳細的說明,在此就不贅述了。
4.組件接口一致性適配器按照接口標準在下層相應的組件接口中寫入屬性名和屬性值,并且進行寫后讀校驗,校驗無誤則成功返回。
在整個多引擎協(xié)作平臺中,組件適配器是這樣發(fā)揮作用的當操作服務引擎在完成源到目標的映射動作之后,就會觸發(fā)一次組件服務,這時組件適配器開始發(fā)揮作用。由于協(xié)作信息總線中操作服務引擎和調度引擎之間是緊耦合,調度引擎獲知操作服務引擎的需求之后,在操作服務知識庫中檢出操作服務引擎所需的知識,其中也包括操作服務引擎所要使用的組件的相關信息。
操作服務引擎?zhèn)鬟f給組件接口一致性適配器操作指令,組件接口一致性適配器接收到該操作指令之后,首先對這個指令進行分析,要進行何種操作,并且通過協(xié)作信息總線從調度引擎中獲取組件服務的相關信息,比如參數、接口、型別;根據不同的型別,比如EJB組件服務,Com組件服務,把必要的參數信息傳遞給下層特定的組件服務接口,由它們調用特定的組件服務。
通過上述步驟,上層的操作服務引擎在需要完成某種操作的時候,既不需要知道所要使用的組件屬于何種組件,又不需要知道使用的組件具體需要何種參數、使用何種接口。所有這些必須的信息,都由組件接口一致性適配器通過協(xié)作信息總線獲得。因此,組件適配器自身就可以完成對業(yè)務和數據的整合。
需要聲明的是,本發(fā)明的具體實施方式
已經對本發(fā)明的內容做了詳盡的說明。對本領域的一般技術人員而言,在不背離本發(fā)明精神的前提下對它所做的任何顯而易見的改動,特別是對若干部件的等同替換,都構成對本發(fā)明專利權的侵犯,將承擔相應的法律責任。
權利要求
1.一種組件適配器的實現方法,用于實現可以屏蔽分布式部署組件的形態(tài)差異和個體差異的組件適配器,該組件適配器具有上層的組件接口一致性適配器和至少一個下層的具體組件服務接口,其中組件接口一致性適配器與緊耦合的操作服務引擎和調度引擎進行數據交換,其特征在于該方法包括如下步驟所述操作服務引擎觸發(fā)組件服務之后,傳遞給所述組件接口一致性適配器操作指令,所述調度引擎在操作服務知識庫中找出操作服務引擎所要使用的組件的信息,所述組件接口一致性適配器對所述操作服務引擎的指令進行分析,確定需要適配何種組件之后,從調度引擎中獲取組件服務的參數信息,再把參數信息傳遞給下層的至少一個具體組件服務接口,由它們調用所述操作服務引擎需要的組件服務。
2.如權利要求1所述的組件適配器的實現方法,其特征在于所述具體組件服務接口包括EJB、COM、CORBA、SERVLET組件接口中的至少一個。
3.如權利要求1所述的組件適配器的實現方法,其特征在于所述操作服務知識庫具有包括數據結構知識庫、必要充分條件知識庫、參數描述知識庫、組件描述知識庫、映射規(guī)則描述知識庫在內的內容。
4.如權利要求1所述的組件適配器的實現方法,其特征在于所述組件接口一致性適配器對所述操作服務引擎的指令進行分析的步驟包括(1)所述組件接口一致性適配器接收所述操作服務引擎發(fā)送的操作指令碼;(2)所述組件接口一致性適配器讀取所述操作指令碼的頭一位,頭一位為大寫字母,表明操作服務引擎的類別;(3)所述組件接口一致性適配器讀取所述操作指令碼的后兩位,該兩位數據表明所述操作服務引擎所要完成的工作內容。
5.如權利要求1所述的組件適配器的實現方法,其特征在于如果所述組件接口一致性適配器發(fā)現操作指令碼是錯誤的,則返回錯誤信息給所述操作服務引擎,操作服務引擎再傳入正確的操作指令碼,重新進行調用。
6.如權利要求1所述的組件適配器的實現方法,其特征在于如果所述組件接口一致性適配器獲取協(xié)作信息總線中的組件信息時出錯,則返回錯誤信息給所述調度引擎。
7.如權利要求1所述的組件適配器的實現方法,其特征在于如果下層的具體組件服務接口參數錯誤,則返回錯誤信息給所述組件接口一致性適配器,由所述組件接口一致性適配器重新設置參數。
8.如權利要求1所述的組件適配器的實現方法,其特征在于所述組件接口一致性適配器從組件緩沖池中讀取組件地址、識別標識和屬性名;所述組件緩沖池中的內容與所述組件描述知識庫中的內容相對應。
9.如權利要求1所述的組件適配器的實現方法,其特征在于所述調度引擎根據組件地址、識別標識和屬性名在所述操作服務知識庫中進行匹配,找出所述操作服務引擎所要使用組件的信息。
全文摘要
一種組件適配器的實現方法,用于實現可以屏蔽分布式部署組件的形態(tài)差異和個體差異的組件適配器。該組件適配器具有上層的組件接口一致性適配器和至少一個下層的具體組件服務接口,其中組件接口一致性適配器與緊耦合的操作服務引擎和調度引擎進行數據交換。操作服務引擎觸發(fā)組件服務之后,傳遞給組件接口一致性適配器操作指令,調度引擎在操作服務知識庫中找出操作服務引擎所要使用的組件的信息,組件接口一致性適配器對操作服務引擎的指令進行分析,確定需要適配何種組件之后,從調度引擎中獲取組件服務的參數信息,再把參數信息傳遞給下層的至少一個具體組件服務接口,由它們調用操作服務引擎需要的組件服務。
文檔編號G06F3/00GK1570812SQ03145980
公開日2005年1月26日 申請日期2003年7月18日 優(yōu)先權日2003年7月18日
發(fā)明者懷進鵬, 張文燚, 劉旭東, 李揚, 杜宗霞, 付紀東 申請人:北京航空航天大學