專利名稱:完整網(wǎng)絡(luò)中間件運(yùn)行支撐平臺(tái)及異構(gòu)中間件的集成方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)系統(tǒng)集成技術(shù)領(lǐng)域,涉及一種能集成目前幾種主流中間件技術(shù)的完整網(wǎng)絡(luò)中間件運(yùn)行支撐平臺(tái)以及在該平臺(tái)上集成異構(gòu)中間件的方法。
背景技術(shù):
技術(shù)體系集成已經(jīng)成為當(dāng)今軟件項(xiàng)目開發(fā)領(lǐng)域一項(xiàng)十分重要的技術(shù),作為網(wǎng)絡(luò)化應(yīng)用的支撐系統(tǒng),不同技術(shù)體系中間件的集成成為重要問題。中間件技術(shù)的出現(xiàn)是為了解決由于不同的硬件資源、不同的網(wǎng)絡(luò)環(huán)境、不同的操作系統(tǒng)等異構(gòu)環(huán)境所造成的信息孤島問題,并解決遺留應(yīng)用的集成問題。但是,隨著中間件技術(shù)的發(fā)展,JEE、CORBA、NET等中間件技術(shù)廣泛應(yīng)用,由于這些中間件技術(shù)自成體系,他們之間的互操作問題又成為了應(yīng)用集成的瓶頸,因此實(shí)現(xiàn)中間件的集成既是實(shí)際應(yīng)用的需要,又是目前工業(yè)界和學(xué)術(shù)界普遍關(guān)注的問題。原有的中間件技術(shù)都只停留在構(gòu)件平臺(tái)的互操作層次上,不能很好地解決復(fù)雜應(yīng)用的適應(yīng)性和按需集成性問題。因此,從技術(shù)的角度看,要實(shí)現(xiàn)需求多變的應(yīng)用集成,需要更通用的集成模型和集成框架。這樣一個(gè)集成模型和集成框架需要在最大范圍內(nèi)支持分布對(duì)象領(lǐng)域的多種主流技術(shù),包括C0RBA、JEE、C0M等,從而保證該平臺(tái)的適應(yīng)性。而目前來(lái)看,業(yè)界并沒有一種能夠做到上述要求的集成方法。
發(fā)明內(nèi)容
本發(fā)明的目的是提出一種完整網(wǎng)絡(luò)中間件運(yùn)行支撐平臺(tái),及在該平臺(tái)上將目前幾種主流的網(wǎng)絡(luò)中間件技術(shù)體系集成起來(lái)的方法。本發(fā)明的完整網(wǎng)絡(luò)中間件運(yùn)行支撐平臺(tái),包括微內(nèi)核集成框架,通信服務(wù)層,公共服務(wù)層,構(gòu)件容器層和業(yè)務(wù)引擎層,其特征在于最底層的通信服務(wù)層為上層服務(wù)提供遠(yuǎn)程通信所用的標(biāo)準(zhǔn)接口 ;公共服務(wù)層為上層的構(gòu)件容器服務(wù)提供標(biāo)準(zhǔn)公共服務(wù)接口,通過集成該公共服務(wù)的具體實(shí)現(xiàn)向上層提供公共服務(wù);構(gòu)件容器層為上層業(yè)務(wù)方法和應(yīng)用構(gòu)件提供容器支持接口 ;業(yè)務(wù)引擎層提供集成業(yè)務(wù)引擎服務(wù)必須實(shí)現(xiàn)的接口 ;微內(nèi)核集成框架為這四類服務(wù)層提供生命周期管理、命令接口、互操作接口、配置管理接口和部署特定組件時(shí)所需的部署器接口的上層服務(wù)集成接口規(guī)范。在所述通信服務(wù)層中設(shè)一個(gè)通信服務(wù)框架服務(wù),封裝不同協(xié)議的通信服務(wù)必須實(shí)現(xiàn)的接口,并導(dǎo)出接口包;集成的不同協(xié)議的通信服務(wù)均實(shí)現(xiàn)這些接口,同時(shí)該通信服務(wù)框架服務(wù)負(fù)責(zé)監(jiān)聽集成的通信服務(wù)的生命周期狀態(tài)。在所述公共服務(wù) 層中設(shè)一個(gè)公共服務(wù)框架服務(wù),封裝不同規(guī)范的公共服務(wù)必須實(shí)現(xiàn)的接口,并導(dǎo)出接口包;通過這些接口為不同的應(yīng)用服務(wù)提供相應(yīng)的公共服務(wù)集成,實(shí)現(xiàn)對(duì)異構(gòu)平臺(tái)公共服務(wù)的集成。在所述構(gòu)件容器服務(wù)層設(shè)一構(gòu)件服務(wù)框架服務(wù),包括三層結(jié)構(gòu)資源層為集成的異構(gòu)構(gòu)件容器服務(wù)提供公共資源訪問接口,異構(gòu)構(gòu)件容器服務(wù)通過這些接口為構(gòu)件實(shí)例的管理提供公共資源;管理層為異構(gòu)構(gòu)件容器服務(wù)提供公共的管理服務(wù)訪問接口,異構(gòu)構(gòu)件容器服務(wù)通過這些接口為構(gòu)件實(shí)例提供公共的管理服務(wù);構(gòu)件實(shí)例層為不同規(guī)范的構(gòu)件實(shí)例提供相應(yīng)的訪問和管理接口。在所述業(yè)務(wù)引擎層設(shè)一業(yè) 務(wù)引擎框架服務(wù),封裝不同規(guī)范的業(yè)務(wù)引擎服務(wù)必須實(shí)現(xiàn)的接口。所述微內(nèi)核集成框架采用OSGi框架,應(yīng)用服務(wù)采用bundle的形式集成在微內(nèi)核中,在操作系統(tǒng)和Java虛擬機(jī)設(shè)四層結(jié)構(gòu)類加載層實(shí)現(xiàn)多個(gè)類加載器,每個(gè)Bundle都對(duì)應(yīng)一個(gè)類加載器;生命周期層管理Bundle的生命周期;服務(wù)注冊(cè)層提供Bundle的上下文注冊(cè)和查詢服務(wù),由服務(wù)注冊(cè)器負(fù)責(zé)管理;服務(wù)層為OSGi規(guī)范規(guī)定的預(yù)設(shè)服務(wù)。本發(fā)明還包括一體化管理框架微內(nèi)核集成框架通過該一體化管理框架對(duì)所述平臺(tái)各部分進(jìn)行管理;該一體化管理框架作為一種服務(wù)運(yùn)行在所述微內(nèi)核集成框架中。一服務(wù)在被一應(yīng)用或其他服務(wù)所用時(shí),才對(duì)該服務(wù)進(jìn)行裝載和啟動(dòng)。在系統(tǒng)啟動(dòng)時(shí),解析用戶對(duì)于服務(wù)的屬性配置,并動(dòng)態(tài)將配置注入到相應(yīng)的服務(wù)中。根據(jù)用戶配置自動(dòng)查找和下載相應(yīng)的服務(wù),所述查找為本地查找或遠(yuǎn)程查找。本發(fā)明還提供了一種在上述平臺(tái)上集成異構(gòu)中間件的方法,其步驟包括1、通信服務(wù)層、公共服務(wù)層、構(gòu)件容器服務(wù)層和業(yè)務(wù)引擎服務(wù)層根據(jù)待集成的一個(gè)或多個(gè)應(yīng)用服務(wù)設(shè)定面向該一個(gè)或多個(gè)應(yīng)用服務(wù)的遠(yuǎn)程通信標(biāo)準(zhǔn)接口、公共服務(wù)標(biāo)準(zhǔn)接口、構(gòu)件容器標(biāo)準(zhǔn)接口和業(yè)務(wù)引擎服務(wù)標(biāo)準(zhǔn)接口 ;2、將上述待集成的一個(gè)或多個(gè)應(yīng)用服務(wù)的通信服務(wù)、公共服務(wù)、構(gòu)件容器服務(wù)和業(yè)務(wù)引擎服務(wù)通過相應(yīng)的通信服務(wù)層、公共服務(wù)層、構(gòu)件容器層和業(yè)務(wù)引擎層部署到微內(nèi)核集成框架上;3、由微內(nèi)核集成框架啟動(dòng)和加載上述服務(wù),實(shí)現(xiàn)異構(gòu)中間件構(gòu)件的集成。微內(nèi)核集成框架采用OSGi的微內(nèi)核結(jié)構(gòu),所述待集成的一個(gè)或多個(gè)應(yīng)用服務(wù)的通信服務(wù)、公共服務(wù)、構(gòu)件容器服務(wù)和業(yè)務(wù)引擎服務(wù)均通過bundle服務(wù)的形式部署在微內(nèi)核中。將上述服務(wù)對(duì)應(yīng)的bundle服務(wù)部署到基于OSGi的微內(nèi)核集成框架中,每個(gè)上述服務(wù)對(duì)應(yīng)的bundle在執(zhí)行環(huán)境上由集成框架的模塊層加載,bundle狀態(tài)之間的切換由生命周期層控制,向服務(wù)層發(fā)布或綁定服務(wù),在整個(gè)運(yùn)行過程中受安全控制策略的控制。整個(gè)平臺(tái)中的服務(wù)、數(shù)據(jù)和狀態(tài)由一體化管理工具統(tǒng)一進(jìn)行管理。本發(fā)明的提出全方位支持主流的中間件技術(shù)體系(包括JEE、CORBA、C0M/DC0M及 Web服務(wù)等)深度集成的體系架構(gòu),從多個(gè)層次和維度抽象和融合主流中間件技術(shù)體系, 并形成一個(gè)網(wǎng)絡(luò)環(huán)境下構(gòu)件化、服務(wù)化和復(fù)雜應(yīng)用系統(tǒng)一體化的運(yùn)行平臺(tái)。該方法提出了一種基于微內(nèi)核的、面向服務(wù)的、按需裁剪的、提供業(yè)務(wù)到服務(wù)一體化管理的異構(gòu)中間件集成技術(shù)。它針對(duì)面向網(wǎng)絡(luò)應(yīng)用服務(wù)支撐運(yùn)行平臺(tái)的技術(shù)需求,提供微內(nèi)核集成框架支持整體平臺(tái)的各個(gè)服務(wù)的集成,這些平臺(tái)所需的服務(wù)需要遵循模塊化、構(gòu)件化和服務(wù)化的要求, 遵循該要求的服務(wù)被劃分為四類通信服務(wù),公共服務(wù)、構(gòu)件容器服務(wù)和業(yè)務(wù)引擎服務(wù)。微內(nèi)核集成框架為這四類服務(wù)提供包括生命周期管理、命令接口、互操作接口、配置管理接口和部署特定組件時(shí)所需的部署器接口,另外還提供了四類對(duì)應(yīng)的框架服務(wù)支撐上述四類服務(wù),而服務(wù)的具體實(shí)現(xiàn)根據(jù)應(yīng)用構(gòu)件的類型,作為框架服務(wù)的后端服務(wù)集成到微內(nèi)核框架中。集成平臺(tái)的四類服務(wù)和微內(nèi)核的關(guān)系如圖1所示如圖1 所示的四種框架服務(wù)包含對(duì)應(yīng)服務(wù)的接口,根據(jù)接口之間的層次關(guān)系,形成了一種“分層?;钡捏w系結(jié)構(gòu)。該協(xié)議棧的結(jié)構(gòu)如圖2所示。下層為上層提供調(diào)用的接口。其中最底層的通信服務(wù)層為上層服務(wù)提供了遠(yuǎn)程通信需要用到的標(biāo)準(zhǔn)接口,具體實(shí)現(xiàn)可以是不同的通信協(xié)議服務(wù),如JRMP、II0P、HTTP等;公共服務(wù)層為上層的構(gòu)件容器服務(wù)提供各種規(guī)范下的標(biāo)準(zhǔn)公共服務(wù)接口,通過集成該公共服務(wù)的具體實(shí)現(xiàn)上來(lái)向上層提供公共服務(wù),如JEE公共服務(wù)、CORBA公共服務(wù)、Web公共服務(wù)等;構(gòu)件容器層為上層業(yè)務(wù)方法和應(yīng)用構(gòu)件提供容器支持接口,具體實(shí)現(xiàn)的服務(wù)可以是JEE容器服務(wù)、CCM容器服務(wù)和Web容器服務(wù)等;業(yè)務(wù)引擎層提供集成業(yè)務(wù)引擎服務(wù)必須實(shí)現(xiàn)的接口,可以集成Portal引擎、BPEL 引擎和BPMN引擎。本發(fā)明的設(shè)計(jì)思路如下1、在系統(tǒng)底層設(shè)計(jì)一個(gè)核心的微內(nèi)核集成框架層要實(shí)現(xiàn)通信服務(wù)、公共服務(wù)、構(gòu)件容器、業(yè)務(wù)引擎和管理框架的集成需求,本發(fā)明需要實(shí)現(xiàn)一個(gè)構(gòu)件化的微內(nèi)核集成框架, 采用基于符合標(biāo)準(zhǔn)OSGi規(guī)范的內(nèi)核,提供一系列核心擴(kuò)展能力和基本支撐能力。微內(nèi)核集成框架的體系結(jié)構(gòu)如圖3所示(1)微內(nèi)核集成框架結(jié)構(gòu)。如圖3可知,微內(nèi)核集成框架采用的是一個(gè)OSGi框架, 應(yīng)用服務(wù)采用bundle的形式集成在微內(nèi)核中,在操作系統(tǒng)和Java虛擬機(jī)之上有四層結(jié)構(gòu), 類加載層實(shí)現(xiàn)了多個(gè)類加載器,每個(gè)Bundle都對(duì)應(yīng)一個(gè)類加載器,保證Bundle內(nèi)部的類只能訪問到Bundle內(nèi)部的其他類;生命周期層用來(lái)管理Bundle的生命周期,包括從Bundle 的安裝、解析,解析后Bundle的啟動(dòng)、活動(dòng)和停止,以及Bundle的卸載,都是生命周期層來(lái)控制;服務(wù)注冊(cè)層提供了 Bimdl e的上下文注冊(cè)和查詢服務(wù),由服務(wù)注冊(cè)器負(fù)責(zé)管理;服務(wù)層是OSGi規(guī)范規(guī)定的預(yù)設(shè)服務(wù)。微內(nèi)核的技術(shù)細(xì)節(jié)可以參考OSGi規(guī)范;(2)集成接口規(guī)范。為統(tǒng)一模塊與微內(nèi)核框架集成的接口,簡(jiǎn)化集成的復(fù)雜度和工作量,本發(fā)明要求基于微內(nèi)核開發(fā)的服務(wù)要遵循模塊化、構(gòu)件化和服務(wù)化,并且制定了一個(gè)集成接口規(guī)范。模塊化是指遵循OSGi的模塊化規(guī)范,對(duì)要集成的服務(wù)進(jìn)行模塊化的設(shè)計(jì)和開發(fā);構(gòu)件化是指識(shí)別模塊中需要協(xié)作的P0J0,使用聲明式的方式將POJO描述為構(gòu)件;月艮務(wù)化是指為構(gòu)件注入和發(fā)布服務(wù)對(duì)象,實(shí)現(xiàn)構(gòu)件之間通過服務(wù)方式的協(xié)作。制定的集成接口規(guī)范將參與集成的各個(gè)實(shí)體以模塊的形式整合到框架中。模塊的組成部分包括元數(shù)據(jù)描述符、功能性的資源和其他可選的目錄。元數(shù)據(jù)描述符主要包括模塊的類別、名字、版本、 激活的類、資源的路徑、導(dǎo)入的包、導(dǎo)出的包、依賴的模塊和服務(wù)的聲明等;通過包的導(dǎo)入和導(dǎo)出實(shí)現(xiàn)模塊之間細(xì)粒度交互;通過服務(wù)的聲明實(shí)現(xiàn)模塊運(yùn)行期間的動(dòng)態(tài)協(xié)作;功能性的資源提供模塊的功能或服務(wù)所需要的資源,包括類文件和其他的數(shù)據(jù)(比如圖片、文本文件等);可選目錄存放模塊的附屬部分資源。在微內(nèi)核集成的接口規(guī)范之上,為了方便對(duì)上層服務(wù)的集成,實(shí)現(xiàn)了通信服務(wù)接口服務(wù)、公共服務(wù)接口服務(wù)、構(gòu)件容器接口服務(wù)和業(yè)務(wù)引擎接口服務(wù)。通信接口服務(wù)提供了使用遠(yuǎn)程通信服務(wù)必須實(shí)現(xiàn)的接口,不同協(xié)議的通信服務(wù)通過實(shí)現(xiàn)這些接口向上層提供遠(yuǎn)程通信服務(wù);公共服務(wù)接口提供了使用公共服務(wù)必須實(shí)現(xiàn)的接口,不同規(guī)范的公共服務(wù)通過實(shí)現(xiàn)對(duì)應(yīng)接口為上層提供公共服務(wù);構(gòu)件容器接口提供了構(gòu)件運(yùn)行支持接口,為不同規(guī)范的構(gòu)件提供支持;業(yè)務(wù)引擎接口為集成的業(yè)務(wù)引擎服務(wù)提供支持。微內(nèi)核集成框架還為集成的服務(wù)提供了生命周期管理接口、命令接口、互操作接口、配置管理接口和部署特定組件時(shí)所需的部署器接口支持服務(wù)的集成。2、采用面向服務(wù)的集成方式微內(nèi)核基于OSGi架構(gòu),它將體系架構(gòu)中的所有服務(wù)都作為一個(gè)bundle服務(wù)啟動(dòng)。為了實(shí)現(xiàn)異構(gòu)中間件技術(shù)體系的集成,需要在微內(nèi)核集成框架中集成四類服務(wù),包括通信服務(wù)(SOAP服務(wù)、JRMP服務(wù)、IIOP服務(wù)、HTTP/HTTPS服務(wù)等), 公共服務(wù)(安全、事務(wù)、命名等),容器服務(wù)(EJB容器服務(wù)、Web容器服務(wù)等)和業(yè)務(wù)引擎服務(wù)(BPEL引擎服務(wù)、BPMN引擎服務(wù)和Portal引擎服務(wù))。每種集成的服務(wù),本發(fā)明在微內(nèi)核集成框架中都對(duì)應(yīng)實(shí)現(xiàn)了一種框架服務(wù)(如圖1)。框架服務(wù)封裝了對(duì)應(yīng)服務(wù)必須實(shí)現(xiàn)的接口,并導(dǎo)出了接口包??蚣芊?wù)負(fù)責(zé)監(jiān)聽集成的對(duì)應(yīng)服務(wù)的變化,當(dāng)集成一個(gè)對(duì)應(yīng)服務(wù)時(shí),將其作為框架服務(wù)的后端服務(wù)。無(wú)論是集成的服務(wù)還是對(duì)應(yīng)的框架服務(wù),都是面向OSGi 的bundle服務(wù)的形式。根據(jù)上面提到的“分層?;彼枷?,可以將這些服務(wù)分為對(duì)應(yīng)的四層,下面分別介紹這四層服務(wù)1)提供異構(gòu)容器之間支持多種網(wǎng) 絡(luò)通信協(xié)議進(jìn)行互操作的通訊服務(wù)層。在通信服務(wù)層中,有一個(gè)通信服務(wù)框架服務(wù),封裝了不同協(xié)議的通信服務(wù)必須實(shí)現(xiàn)的接口,并導(dǎo)出了接口包。集成的不同協(xié)議的通信服務(wù)都必須實(shí)現(xiàn)這些接口,同時(shí)通信服務(wù)框架服務(wù)負(fù)責(zé)監(jiān)聽集成的通信服務(wù)的生命周期狀態(tài)。通信服務(wù)層支持集成包括SOAP、ΙΙ0Ρ、JRMP和HTTP/ HTTPS在內(nèi)的產(chǎn)業(yè)界主流中間件通信協(xié)議服務(wù);2)將不同網(wǎng)絡(luò)應(yīng)用服務(wù)支撐運(yùn)行平臺(tái)的相應(yīng)公共服務(wù)進(jìn)行集成的公共服務(wù)層。在公共服務(wù)層中,有一個(gè)公共服務(wù)框架服務(wù),封裝了不同規(guī)范的公共服務(wù)必須實(shí)現(xiàn)的接口,并導(dǎo)出了接口包。通過這些接口為不同的技術(shù)體系提供相應(yīng)的公共服務(wù)集成,從而達(dá)到對(duì)異構(gòu)平臺(tái)公共服務(wù)的集成。目前主流網(wǎng)絡(luò)中間件規(guī)范提供的公共服務(wù)包括CORBA公共服務(wù)、 JEE公共服務(wù)、Web服務(wù)公共服務(wù)、XML公共服務(wù)和橋接服務(wù),其中XML公共服務(wù)對(duì)基于XML 的數(shù)據(jù)進(jìn)行解析和定位查找,提供XML高性能解析器和XML查詢器,支持D0M、SAX2、StAX三種解析模型,支持XPath查詢規(guī)范,橋接服務(wù)實(shí)現(xiàn)CORBA對(duì)象與Web服務(wù)、C0M/DC0M組件之間的互操作。3)集成異構(gòu)構(gòu)件容器的構(gòu)件容器層。本發(fā)明提出了一種在微內(nèi)核中實(shí)現(xiàn)集成多種異構(gòu)構(gòu)件容器的體系結(jié)構(gòu)。集成的異構(gòu)構(gòu)件容器包括Web容器、WS容器、EJB容器和CCM容器,同時(shí)提出了實(shí)現(xiàn)構(gòu)件實(shí)例管理和資源管理的機(jī)制。構(gòu)件容器集成的體系結(jié)構(gòu)如圖4所
7J\ ο本發(fā)明提出了集成異構(gòu)構(gòu)件容器的三層體系結(jié)構(gòu),為集成的異構(gòu)構(gòu)件容器服務(wù)提供支持。資源層為集成異構(gòu)構(gòu)件容器服務(wù)提供包括線程池、實(shí)例池、連接池、事件隊(duì)列在內(nèi)的公共資源訪問接口,異構(gòu)構(gòu)件容器服務(wù)通過這些接口為構(gòu)件實(shí)例的管理提供公共資源; 管理層為異構(gòu)構(gòu)件容器服務(wù)提供公共的管理服務(wù)訪問接口,包括緩存、事務(wù)、會(huì)話、生命周期、安全等,異構(gòu)構(gòu)件容器服務(wù)通過這些接口為構(gòu)件實(shí)例提供公共的管理服務(wù);構(gòu)件實(shí)例層為不同規(guī)范的構(gòu)件實(shí)例提供相應(yīng)的訪問和管理接口。通過上面提出集成框架,可以集成 Servlet構(gòu)件、EJB構(gòu)件、Web Service構(gòu)件和CORBA構(gòu)件,對(duì)應(yīng)的容器為Web容器、EJB容器、Web服務(wù)容器和CCM容器,每個(gè)容器服務(wù)都作為一個(gè)bundle服務(wù)集成到微內(nèi)核架構(gòu)中。4)對(duì)業(yè)務(wù)引擎服務(wù)進(jìn)行集成的業(yè)務(wù)引擎層。為了能實(shí)現(xiàn)異構(gòu)中間件技術(shù)在業(yè)務(wù)層面的集成,本發(fā)明在微內(nèi)核框架之上提出了一個(gè)能集成業(yè)務(wù)引擎服務(wù)的接口協(xié)議層,稱為業(yè)務(wù)引擎層。業(yè)務(wù)引擎層主要集成包括業(yè)務(wù)流程建模標(biāo)注(BPMN)、業(yè)務(wù)流程執(zhí)行語(yǔ)言(BPEL)以及門戶組件(Portlet)等不同規(guī)范的業(yè)務(wù)引擎服務(wù),它們分別提供了業(yè)務(wù)流程的描述、執(zhí)行以及信息門戶的集成。業(yè)務(wù)引擎服務(wù)的實(shí)現(xiàn)包括對(duì)BPEL引擎、BPMN引擎以及 Portal引擎的實(shí)現(xiàn),另外還提供一種擴(kuò)展機(jī)制,為接入更多的共性業(yè)務(wù)服務(wù)系統(tǒng)提供接口。3、按需裁 剪的集成方式。按照上述面向服務(wù)的集成方法集成到微內(nèi)核框架中的四層服務(wù),微內(nèi)核需要對(duì)其進(jìn)行啟動(dòng)和加載,本發(fā)明還提出了一種將這些服務(wù)按需裁剪、按需啟動(dòng)的集成方法,就是對(duì)于OSGi服務(wù)按需啟動(dòng)和動(dòng)態(tài)配置機(jī)制,使得集成的系統(tǒng)可以在運(yùn)行時(shí)刻根據(jù)應(yīng)用需求啟動(dòng)服務(wù),并根據(jù)配置改變服務(wù)屬性。這種按需裁剪的服務(wù)集成方式采用如下機(jī)制1)支持服務(wù)的按需裝載和啟動(dòng)。當(dāng)應(yīng)用或其他服務(wù)需要用到這個(gè)服務(wù)時(shí),才對(duì)其進(jìn)行裝載和啟動(dòng),否則,這些服務(wù)將不會(huì)消耗系統(tǒng)的資源;2)支持對(duì)服務(wù)配置的解析和注入。在系統(tǒng)啟動(dòng)時(shí),解析用戶對(duì)于服務(wù)的屬性配置, 并動(dòng)態(tài)將配置注入到相應(yīng)的服務(wù)中;3)支持服務(wù)的查找和下載。系統(tǒng)可以根據(jù)用戶配置自動(dòng)查找和下載相應(yīng)的服務(wù), 這種查找可以是本地的,也可以通過網(wǎng)絡(luò)環(huán)境進(jìn)行遠(yuǎn)程查找;4)滿足與系統(tǒng)其他部分松耦合,便于實(shí)現(xiàn)和管理等需求。實(shí)現(xiàn)上述機(jī)制是通過引入OSGi的Bundle管理倉(cāng)庫(kù)0BR,實(shí)現(xiàn)了 Bundle的集中管理、存儲(chǔ)與下載,以及Bundle依賴的自動(dòng)解析和裝載、啟動(dòng)。4、一體化管理框架本發(fā)明在對(duì)集成框架中的各部分進(jìn)行管理時(shí),提出一種一體化管理框架來(lái)對(duì)框架各層次的服務(wù)進(jìn)行統(tǒng)一管理。它提供了基礎(chǔ)管理設(shè)施,設(shè)計(jì)管理互操作接口,制定管理工具規(guī)范,簡(jiǎn)化配置、部署、監(jiān)控、優(yōu)化等管理任務(wù)。一體化管理框架也作為一種服務(wù)運(yùn)行在微內(nèi)核集成框架中。本發(fā)明提出的基于微內(nèi)核的、面向服務(wù)的、按需裁剪的、提供業(yè)務(wù)到服務(wù)一體化管理的異構(gòu)中間件集成方法,采用這種集成方法1)我們可以實(shí)現(xiàn)對(duì)JEE、Web服務(wù)、CORBA及C0M/DC0M等主流中間件技術(shù)的深度集成,并能從多層次多方位提供網(wǎng)絡(luò)環(huán)境下構(gòu)件化、服務(wù)化復(fù)雜應(yīng)用系統(tǒng)的一體化;2)在體系結(jié)構(gòu)上提出了面向網(wǎng)絡(luò)計(jì)算環(huán)境,支撐構(gòu)件化、服務(wù)化復(fù)雜應(yīng)用系統(tǒng)的開放式、一體化支撐運(yùn)行平臺(tái)體系結(jié)構(gòu),從通信層、服務(wù)層、容器層、業(yè)務(wù)引擎層將現(xiàn)有國(guó)內(nèi)外主流中間件技術(shù)體系進(jìn)行了抽象和融合,形成了覆蓋部署、運(yùn)行、演化、管理等完整技術(shù)框架;3)在實(shí)現(xiàn)技術(shù)上采用“微內(nèi)核+軟構(gòu)件”技術(shù),有效支持應(yīng)用及平臺(tái)構(gòu)件的異構(gòu)化松耦合集成;按需裁減、按需配置避免了對(duì)系統(tǒng)代碼的重新編譯、部署,大大簡(jiǎn)化了用戶對(duì)于服務(wù)的管理和配置,減少了配置過程中引入錯(cuò)誤的可能性,增強(qiáng)了系統(tǒng)的可擴(kuò)展性和靈活性,提高了平臺(tái)的啟動(dòng)和運(yùn)行效率;通過統(tǒng)一的互操作框架支持異構(gòu)協(xié)議的集成和互通;4)在應(yīng)用模式上能靈活支持JEE、C0RBA、TOB服務(wù)等多種應(yīng)用模式,可以支持應(yīng)用對(duì)通信集成、數(shù)據(jù)集成、代碼集成、流程集成和服務(wù)集成等技術(shù)和應(yīng)用需求,為重大行業(yè)企業(yè)IT基礎(chǔ)設(shè)施的構(gòu)建提供全面保障,形成大量面向重大行業(yè)應(yīng)用的領(lǐng)域框架和成套解決方案,大幅度提高開發(fā)效率。
圖1為本發(fā)明的平臺(tái)結(jié)構(gòu)示意2為本發(fā)明的平臺(tái)各層之間的分層?;疽?為本發(fā)明的微內(nèi)核集成框架結(jié)構(gòu)示意圖
圖4為本發(fā)明的異構(gòu)構(gòu)件容器層示意5為本發(fā)明實(shí)現(xiàn)集成后的完整中間件運(yùn)行平臺(tái)示意6為本發(fā)明實(shí)例化的集成運(yùn)行平臺(tái)示意7為本發(fā)明的動(dòng)態(tài)集成過程示意圖
具體實(shí)施例方式本發(fā)明的集成方法被實(shí)現(xiàn)為四方國(guó)件(Orientware)完整網(wǎng)絡(luò)中間件集成運(yùn)行平臺(tái),根據(jù)本發(fā)明提出的集成方法,該平臺(tái)集成了包括JEE、CORBA、C0M/DC0M及Web服務(wù)在內(nèi)的主流中間件技術(shù)。在微內(nèi)核上集成業(yè)務(wù)引擎服務(wù)、構(gòu)件容器服務(wù)、公共服務(wù)、通信服務(wù)和一體化管理工具后形成了如圖5所示的一個(gè)完整中間件運(yùn)行平臺(tái)。微內(nèi)核集成框架微內(nèi)核集成框架采用OSGi的微內(nèi)核結(jié)構(gòu)。包括容器服務(wù)、構(gòu)件服務(wù),互操作的通信服務(wù)以及事務(wù)、名字等其他公共服務(wù),都通過bundle服務(wù)的形式部署在微內(nèi)核中。該微內(nèi)核支持中創(chuàng)公司開發(fā)的Ioong平臺(tái)和Apache的Felix平臺(tái);集成的上層服務(wù)根據(jù)微內(nèi)核提供的上層服務(wù)集成接口規(guī)范以及四層協(xié)議棧,通過OSGi規(guī)范的bundle的形式將通信服務(wù)、公共服務(wù)、構(gòu)件容器服務(wù)和業(yè)務(wù)引擎服務(wù)集成到微內(nèi)核上;一體化管理框架該管理框架支持中創(chuàng)Loong—體化管理工具,管理的內(nèi)容依據(jù)開發(fā)者各自的需求進(jìn)行定義,一般需要考慮的管理需求包括對(duì)配置信息的管理、生命周期的管理、狀態(tài)信息的監(jiān)控等等,管理工作可以通過命令和管理工具兩種方式進(jìn)行,要求開發(fā)者提供相應(yīng)的管理接口和管理接口實(shí)現(xiàn),并通過聲明式方式發(fā)布成Mbean,通過遠(yuǎn)程的管理
代理,接受管理工具的管理。下面提供該平臺(tái)的一個(gè)實(shí)例化例子如何通過本發(fā)明的方法實(shí)現(xiàn)一個(gè)支持JEE應(yīng)用的中間件平臺(tái)。在這個(gè)平臺(tái)中需要集成支持JEE的相關(guān)服務(wù)構(gòu)件需要集成一個(gè)EJB容器服務(wù)和一個(gè)Web容器服務(wù);需要集成JEE的標(biāo)準(zhǔn)服務(wù),包括命名服務(wù)、事務(wù)服務(wù)、數(shù)據(jù)服務(wù)、消息服務(wù)、安全服務(wù)、持久服務(wù)和日志服務(wù);要求采用JRMP通信協(xié)議來(lái)支持EJB構(gòu)件之間的互操作,那么需要集成一個(gè)JRMP通信服務(wù);最后還需要一個(gè)BPEL引擎服務(wù)為系統(tǒng)提供業(yè)務(wù)流程方面的支持。根據(jù)上述需求進(jìn)行實(shí)例化后,得到的集成運(yùn)行平臺(tái)結(jié)構(gòu)如圖6所示。其中微內(nèi)核集成框架采用中創(chuàng)公司的Loong平臺(tái);通信服務(wù)集成了支持JRMP互操作協(xié)議的JRMP服務(wù),使得上層EJB對(duì)象和服務(wù)可以實(shí)現(xiàn)JRMP互操作協(xié)議的通訊;構(gòu)件容器服務(wù)集成了資源敏感的并發(fā)處理模型和事件驅(qū)動(dòng)的Web容器,集成了支持最新的EJB 3. O 規(guī)范(JSR 220)并兼容EJB 2. 1規(guī)范的EJB容器,包括支持EJB容器復(fù)用技術(shù)和EJB容器演化技術(shù);公共服務(wù)集成了 JEE公共服務(wù),為JEE技術(shù)體系提供公共服務(wù)支撐,遵循JEE相關(guān)規(guī)范,包括命名服務(wù)、事務(wù)服務(wù)、數(shù)據(jù)服務(wù)、消息服務(wù)、安全服務(wù)、持久服務(wù)等和日志服務(wù); 業(yè)務(wù)引擎服務(wù)集成了遵循BPEL規(guī)范的可靠、高性能BPEL引擎,對(duì)基于BPEL的業(yè)務(wù)流程提供統(tǒng)一的生命周期管理,從而提高業(yè)務(wù)流程的可靠性和運(yùn)行效率;一體化管理框架我們集成了中創(chuàng)公司的Loong —體化管理工具。 上述集成JEE 應(yīng)用的中間件的動(dòng)態(tài)過程為將上述這些服務(wù)都按照OSGi的規(guī)范實(shí)現(xiàn)為OSGi框架中的bundle,將這12個(gè)服務(wù)對(duì)應(yīng)的12個(gè)bundle放入到基于OSGi的微內(nèi)核集成框架中,每個(gè)bundle在執(zhí)行環(huán)境上由模塊層加載,依托生命周期管理,向服務(wù)層發(fā)布或綁定服務(wù),在整個(gè)運(yùn)行過程中受安全控制策略的控制。bundle的狀態(tài)主要包括已安裝、已解析、啟動(dòng)中、已激活、停止中和已卸載,狀態(tài)之間的切換由生命周期層控制。整個(gè)系統(tǒng)中的服務(wù)、數(shù)據(jù)和狀態(tài)由一體化管理工具統(tǒng)一進(jìn)行管理。該集成的動(dòng)態(tài)過程如圖7所示。
權(quán)利要求
1.一種完整網(wǎng)絡(luò)中間件運(yùn)行支撐平臺(tái),包括微內(nèi)核集成框架,通信服務(wù)層,公共服務(wù)層,構(gòu)件容器層和業(yè)務(wù)引擎層,其特征在于最底層的通信服務(wù)層為上層服務(wù)提供遠(yuǎn)程通信所用的標(biāo)準(zhǔn)接口 ;公共服務(wù)層為上層的構(gòu)件容器服務(wù)提供標(biāo)準(zhǔn)公共服務(wù)接口,通過集成該公共服務(wù)的具體實(shí)現(xiàn)向上層提供公共服務(wù);構(gòu)件容器層為上層業(yè)務(wù)方法和應(yīng)用構(gòu)件提供容器支持接口 ;業(yè)務(wù)引擎層提供集成業(yè)務(wù)引擎服務(wù)必須實(shí)現(xiàn)的接口 ;微內(nèi)核集成框架為這四類服務(wù)層提供生命周期管理、命令接口、互操作接口、配置管理接口和部署特定組件時(shí)所需的部署器接口的上層服務(wù)集成接口規(guī)范。
2.如權(quán)利要求1所述的完整網(wǎng)絡(luò)中間件運(yùn)行支撐平臺(tái),其特征在于,在所述通信服務(wù)層中設(shè)一個(gè)通信服務(wù)框架服務(wù),封裝不同協(xié)議的通信服務(wù)必須實(shí)現(xiàn)的接口,并導(dǎo)出接口包; 集成的不同協(xié)議的通信服務(wù)均實(shí)現(xiàn)這些接口,同時(shí)該通信服務(wù)框架服務(wù)負(fù)責(zé)監(jiān)聽集成的通信服務(wù)的生命周期狀態(tài)。
3.如權(quán)利要求1所述的完整網(wǎng)絡(luò)中間件運(yùn)行支撐平臺(tái),其特征在于,在所述公共服務(wù)層中設(shè)一個(gè)公共服務(wù)框架服務(wù),封裝不同規(guī)范的公共服務(wù)必須實(shí)現(xiàn)的接口,并導(dǎo)出接口包; 通過這些接口為不同的應(yīng)用服務(wù)提供相應(yīng)的公共服務(wù)集成,實(shí)現(xiàn)對(duì)異構(gòu)平臺(tái)公共服務(wù)的集成。
4.如權(quán)利要求1所述的完整網(wǎng)絡(luò)中間件運(yùn)行支撐平臺(tái),其特征在于,在所述構(gòu)件容器服務(wù)層設(shè)一構(gòu)件服務(wù)框架服務(wù),包括三層結(jié)構(gòu)資源層為集成的異構(gòu)構(gòu)件容器服務(wù)提供公共資源訪問接口,異構(gòu)構(gòu)件容器服務(wù)通過這些接口為構(gòu)件實(shí)例的管理提供公共資源;管理層為異構(gòu)構(gòu)件容器服務(wù)提供公共的管理服務(wù)訪問接口,異構(gòu)構(gòu)件容器服務(wù)通過這些接口為構(gòu)件實(shí)例提供公共的管理服務(wù);構(gòu)件實(shí)例層為不同規(guī)范的構(gòu)件實(shí)例提供相應(yīng)的訪問和管理接口。
5.如權(quán)利要求1所述的完整網(wǎng)絡(luò)中間件運(yùn)行支撐平臺(tái),其特征在于,在所述業(yè)務(wù)引擎層設(shè)一業(yè)務(wù)引擎框架服務(wù),封裝不同規(guī)范的業(yè)務(wù)引擎服務(wù)必須實(shí)現(xiàn)的接口。
6.如權(quán)利要求1-5任一所述的完整網(wǎng)絡(luò)中間件運(yùn)行支撐平臺(tái),其特征在于,所述微內(nèi)核集成框架采用OSGi框架,應(yīng)用服務(wù)采用bundle的形式集成在微內(nèi)核中,在操作系統(tǒng)和 Java虛擬機(jī)設(shè)四層結(jié)構(gòu)類加載層實(shí)現(xiàn)多個(gè)類加載器,每個(gè)Bundle都對(duì)應(yīng)一個(gè)類加載器; 生命周期層管理Bundle的生命周期;服務(wù)注冊(cè)層提供Bundle的上下文注冊(cè)和查詢服務(wù),由服務(wù)注冊(cè)器負(fù)責(zé)管理;服務(wù)層為OSGi規(guī)范規(guī)定的預(yù)設(shè)服務(wù)。
7.如權(quán)利要求1所述的完整網(wǎng)絡(luò)中間件運(yùn)行支撐平臺(tái),其特征在于,還包括一體化管理框架微內(nèi)核集成框架通過該一體化管理框架對(duì)所述平臺(tái)各部分進(jìn)行管理;該一體化管理框架作為一種服務(wù)運(yùn)行在所述微內(nèi)核集成框架中。
8.如權(quán)利要求1所述的完整網(wǎng)絡(luò)中間件運(yùn)行支撐平臺(tái),其特征在于,一服務(wù)在被一應(yīng)用或其他服務(wù)所用時(shí),才對(duì)該服務(wù)進(jìn)行裝載和啟動(dòng)。
9.如權(quán)利要求1所述的完整網(wǎng)絡(luò)中間件運(yùn)行支撐平臺(tái),其特征在于,在系統(tǒng)啟動(dòng)時(shí),解析用戶對(duì)于服務(wù)的屬性配置,并動(dòng)態(tài)將配置注入到相應(yīng)的服務(wù)中。
10.如權(quán)利要求9所述的完整網(wǎng)絡(luò)中間件運(yùn)行支撐平臺(tái),其特征在于,根據(jù)用戶配置自動(dòng)查找和下載相應(yīng)的服務(wù),所述查找為本地查找或遠(yuǎn)程查找。
11.一種在權(quán)利要求1所述平臺(tái)上集成異構(gòu)中間件的方法,其步驟包括1)通信服務(wù)層、公共服務(wù)層、構(gòu)件容器服務(wù)層和業(yè)務(wù)引擎服務(wù)層根據(jù)待集成的一個(gè)或多個(gè)應(yīng)用服務(wù)設(shè)定面向該一個(gè)或多個(gè)應(yīng)用服務(wù)的遠(yuǎn)程通信標(biāo)準(zhǔn)接口、公共服務(wù)標(biāo)準(zhǔn)接口、 構(gòu)件容器標(biāo)準(zhǔn)接口和業(yè)務(wù)引擎服務(wù)標(biāo)準(zhǔn)接口;2)將上述待集成的一個(gè)或多個(gè)應(yīng)用服務(wù)的通信服務(wù)、公共服務(wù)、構(gòu)件容器服務(wù)和業(yè)務(wù)引擎服通過相應(yīng)的通信服務(wù)層、公共服務(wù)層、構(gòu)件容器層和業(yè)務(wù)引擎層部署到微內(nèi)核集成框架上;3)由微內(nèi)核集成框架啟動(dòng)和加載上述服務(wù),實(shí)現(xiàn)異構(gòu)中間件構(gòu)件的集成。
12.如權(quán)利要求11所述的方法,其特征在于,微內(nèi)核集成框架采用OSGi的微內(nèi)核結(jié)構(gòu), 所述待集成的一個(gè)或多個(gè)應(yīng)用服務(wù)的通信服務(wù)、公共服務(wù)、構(gòu)件容器服務(wù)和業(yè)務(wù)引擎服務(wù)均通過bundle服務(wù)的形式部署在微內(nèi)核中。
13.如權(quán)利要求12所述的方法,其特征在于,將上述服務(wù)對(duì)應(yīng)的bundle服務(wù)部署到基于OSGi的微內(nèi)核集成框架中,每個(gè)上述服務(wù)對(duì)應(yīng)的bundle在執(zhí)行環(huán)境上由集成框架的模塊層加載,bundle狀態(tài)之間的切換由生命周期層控制,向服務(wù)層發(fā)布或綁定服務(wù),在整個(gè)運(yùn)行過程中受安全控制策略的控制。
14.如權(quán)利要求11所述的方法,其特征在于,整個(gè)平臺(tái)中的服務(wù)、數(shù)據(jù)和狀態(tài)由一體化管理工具統(tǒng)一進(jìn)行管理。 \
全文摘要
本發(fā)明涉及一種能集成目前幾種主流中間件技術(shù)的完整網(wǎng)絡(luò)中間件運(yùn)行支撐平臺(tái)以及在該平臺(tái)上集成異構(gòu)中間件構(gòu)件的方法。本發(fā)明的平臺(tái)包括微內(nèi)核集成框架,通信服務(wù)層,公共服務(wù)層,構(gòu)件容器層和業(yè)務(wù)引擎層,微內(nèi)核集成框架為這四類服務(wù)層提供生命周期管理、命令接口、互操作接口、配置管理接口和部署特定組件時(shí)所需的部署器接口的上層服務(wù)集成接口規(guī)范。實(shí)現(xiàn)了對(duì)JEE、Web服務(wù)、CORBA及COM/DCOM等主流中間件技術(shù)的深度集成??蓮V泛應(yīng)用于不同應(yīng)用服務(wù)技術(shù)體系的集成。
文檔編號(hào)G06F9/44GK102323879SQ20111015105
公開日2012年1月18日 申請(qǐng)日期2011年6月7日 優(yōu)先權(quán)日2011年6月7日
發(fā)明者康亮環(huán), 曹東剛, 梅宏, 詹杭龍 申請(qǐng)人:北京大學(xué)