本發(fā)明涉及屬于計(jì)算機(jī)網(wǎng)絡(luò)領(lǐng)域,尤其涉及一種基于ICE中間件的異構(gòu)資源集成框架及其集成方法。
背景技術(shù):
近年來,隨著生產(chǎn)生活高度信息化,各行業(yè)部門積累了眾多的數(shù)據(jù)資源和服務(wù)應(yīng)用,傳統(tǒng)的垂直式結(jié)構(gòu)IT系統(tǒng)已無法滿足對(duì)業(yè)務(wù)的整體支持,為提高資源利用效率,降低生產(chǎn)管理成本,通過資源整合技術(shù)為用戶提供一種多維數(shù)據(jù)共享服務(wù)方式成為新的趨勢(shì),因此具備高度整合能力的資源共享平臺(tái)應(yīng)運(yùn)而生。同時(shí),復(fù)雜環(huán)境下的平臺(tái)間消息通信和數(shù)據(jù)傳輸問題成為該領(lǐng)域研究的熱點(diǎn)。
資源共享平臺(tái)旨在通過實(shí)現(xiàn)不同應(yīng)用系統(tǒng)之間數(shù)據(jù)共享,而使它們像一個(gè)整體一樣進(jìn)行業(yè)務(wù)信息處理,使得整個(gè)業(yè)務(wù)、管理、資源等各個(gè)環(huán)節(jié)達(dá)到協(xié)調(diào)運(yùn)轉(zhuǎn)、效率優(yōu)化的目的。這些資源包括已建、在建的基于不同技術(shù)平臺(tái)實(shí)現(xiàn)的,并且運(yùn)行于不同網(wǎng)絡(luò)的系統(tǒng)資源。同時(shí)平臺(tái)要能夠支持C/S和B/S等不同架構(gòu)模式的第三方應(yīng)用對(duì)平臺(tái)資源的訪問。大規(guī)模數(shù)據(jù)資源融合及服務(wù)應(yīng)用集成作為資源共享平臺(tái)的核心技術(shù)模塊,需要依賴于高效穩(wěn)定并且支持異構(gòu)環(huán)境的資源集成框架。國內(nèi)外一些研究組織希望通過制定統(tǒng)一的技術(shù)規(guī)范來解決異構(gòu)環(huán)境間的通信問題。
Web Service是一個(gè)平臺(tái)獨(dú)立的、低耦合的、基于可編程的web的應(yīng)用程序,可使用開放的XML標(biāo)準(zhǔn)來描述、發(fā)布、協(xié)調(diào)和配置這些應(yīng)用程序,用于開發(fā)分布式的互操作的應(yīng)用程序。但其嚴(yán)重缺點(diǎn)是低效,安全性能差;OMG (Object Manage Group)定義的CORBA規(guī)定了分布式對(duì)象之間如何實(shí)現(xiàn)互操作,是為解決分布式處理環(huán)境中硬件和軟件系統(tǒng)的互聯(lián)而提出的一種解決方案,它具有不依賴于編程語言(C、C++、JAVA等)、軟硬件平臺(tái)(Windows 95、Windows NT、Open VSM等)、網(wǎng)絡(luò)協(xié)議的特點(diǎn),但其開發(fā)復(fù)雜度較高,不宜維護(hù)和擴(kuò)展;作為分布式對(duì)象的另外兩種主流技術(shù),Java RMI (Remote Method Invocation)和DCOM在高性能、高可靠應(yīng)用程序上得到了廣泛的應(yīng)用。但RMI是Java語言的遠(yuǎn)程調(diào)用,兩端的程序語言必須是Java,無法支持不同語言之間相互通信;DCOM是一種分布式組件對(duì)象模型,主要是為不同網(wǎng)絡(luò)環(huán)境中的分布式對(duì)象提供交互的標(biāo)準(zhǔn)。雖然它具有語言無關(guān)性,但只支持微軟公司旗下的windows操作系統(tǒng),不兼容其它操作系統(tǒng)平臺(tái);ICE是一種面向?qū)ο蟮闹虚g件平臺(tái),ICE為構(gòu)建面向?qū)ο蟮目蛻?服務(wù)器應(yīng)用提供了工具、API和庫支持。ICE應(yīng)用適合在異種環(huán)境中使用:客戶和服務(wù)器可以用不同的編程語言編寫,可以運(yùn)行在不同的操作系統(tǒng)和機(jī)器架構(gòu)上,并且可以使用多種網(wǎng)絡(luò)協(xié)議進(jìn)行高效通信。無論部署環(huán)境如何,這些應(yīng)用的源碼都是可移植的。簡言之,ICE與上述通信技術(shù)規(guī)范相比,具有簡單易懂、容易操作和擴(kuò)展靈活的特點(diǎn),并且架構(gòu)具有較好的伸縮性。通過ICE定義的規(guī)范語言Slice,使其在語言擴(kuò)展及平臺(tái)異構(gòu)性方面要優(yōu)于RMI。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是針對(duì)背景技術(shù)中當(dāng)前分布式中間件技術(shù)存在的缺陷以及資源整合對(duì)開發(fā)復(fù)雜度和性能等的需求,提出一種基于ICE中間件的異構(gòu)資源集成框架及其集成方法的技術(shù)方案,以解決資源整合過程中異構(gòu)環(huán)境間的系統(tǒng)通信問題。
本發(fā)明為解決上述技術(shù)問題采用以下技術(shù)方案
一種基于ICE中間件的異構(gòu)資源集成框架,包括客戶端、防火墻、注冊(cè)中心、可視化界面、服務(wù)主機(jī)、副本主機(jī)、服務(wù)、IceNode與服務(wù)部署系統(tǒng);
其中,客戶端,用于通過防火墻與注冊(cè)中心相連,通過注冊(cè)中心返回的服務(wù)端點(diǎn)信息與服務(wù)所在主機(jī)的IceNode建立通信連接,進(jìn)行服務(wù)調(diào)用;
防火墻,為應(yīng)用層防火墻和路由器,提供了安全、路由消息和事務(wù)管理功能;
注冊(cè)中心,用于存儲(chǔ)服務(wù)對(duì)象適配器和其所對(duì)應(yīng)的端點(diǎn)信息,通過與各個(gè)服務(wù)主機(jī)及副本主機(jī)的IceNode連接監(jiān)控各個(gè)主機(jī)及其服務(wù);
可視化界面,用于以界面的形式展示注冊(cè)中心、服務(wù)主機(jī)、IceNode、服務(wù)以及對(duì)象適配器的信息;
服務(wù)主機(jī),用于承載服務(wù)與IceNode;
副本主機(jī),用于承載服務(wù)與IceNode,分擔(dān)服務(wù)主機(jī)負(fù)載,實(shí)現(xiàn)負(fù)載均衡和容災(zāi);
服務(wù),用于部署在服務(wù)主機(jī)及副本主機(jī)中;在調(diào)用其它服務(wù)時(shí),用于與注冊(cè)中心直接連接發(fā)送請(qǐng)求;
IceNode,起著連接服務(wù)和注冊(cè)中心的橋梁作用,監(jiān)控所在主機(jī)以及主機(jī)部署的服務(wù);
服務(wù)部署系統(tǒng),用于與各個(gè)服務(wù)主機(jī)及副本主機(jī)連接,實(shí)現(xiàn)多節(jié)點(diǎn)服務(wù)部署、升級(jí)。
作為本發(fā)明一種基于ICE中間件的異構(gòu)資源集成框架的進(jìn)一步優(yōu)選方案,所述客戶端采用C/S或B/S架構(gòu)模式的第三方應(yīng)用。
作為本發(fā)明一種基于ICE中間件的異構(gòu)資源集成框架的進(jìn)一步優(yōu)選方案,所述服務(wù)主機(jī)和副本主機(jī)均采用PC機(jī)或服務(wù)器。
作為本發(fā)明一種基于ICE中間件的異構(gòu)資源集成框架的進(jìn)一步優(yōu)選方案,所述服務(wù)采用Java語言編寫。
作為本發(fā)明一種基于ICE中間件的異構(gòu)資源集成框架的進(jìn)一步優(yōu)選方案,所述服務(wù)通過注冊(cè)中心進(jìn)行相互調(diào)用,實(shí)現(xiàn)服務(wù)互操作。
一種基于ICE中間件的異構(gòu)資源集成框架的集成方法,具體包含如下步驟:
步驟1:將服務(wù)部署系統(tǒng)與各個(gè)服務(wù)主機(jī)以及副本主機(jī)相連,通過服務(wù)部署系統(tǒng)將服務(wù)以及IceNode部署在相應(yīng)服務(wù)主機(jī)與副本主機(jī)上;
步驟2:啟動(dòng)各個(gè)服務(wù)主機(jī)以及副本主機(jī)上的IceNode,配置注冊(cè)中心的配置文件,然后啟動(dòng)注冊(cè)中心;
步驟3:配置application.xml文件,然后利用可視化界面將配置好的application.xml文件添加到注冊(cè)中心,利用可視化界面查看注冊(cè)中心以及各個(gè)服務(wù)主機(jī)上IceNode和服務(wù)的信息;各個(gè)服務(wù)主機(jī)以及副本主機(jī)上的服務(wù)不需要手動(dòng)啟動(dòng),主機(jī)上的IceNode接收到服務(wù)請(qǐng)求時(shí)會(huì)按需啟動(dòng)服務(wù);
步驟4:客戶端通過防火墻與注冊(cè)中心連接,客戶端調(diào)用服務(wù)時(shí),通過防火墻向注冊(cè)中心發(fā)送服務(wù)調(diào)用請(qǐng)求,注冊(cè)中心根據(jù)負(fù)載策略高效地獲取空閑服務(wù)資源的端點(diǎn)信息反饋給客戶端,客戶端利用所獲得的端點(diǎn)通過防火墻與服務(wù)所在服務(wù)主機(jī)的IceNode建立連接進(jìn)行通信,請(qǐng)求者會(huì)將端點(diǎn)信息存儲(chǔ)在服務(wù)調(diào)用層相應(yīng)服務(wù)代理的緩存中;
步驟5:IceNode將服務(wù)調(diào)用請(qǐng)求傳遞給相應(yīng)服務(wù),如有返回結(jié)果,則IceNode通過防火墻將結(jié)果返回給客戶端;
步驟6:服務(wù)直接與注冊(cè)中心連接,服務(wù)調(diào)用其服務(wù)時(shí),向注冊(cè)中心發(fā)送服務(wù)調(diào)用請(qǐng)求,注冊(cè)中心根據(jù)負(fù)載策略高效地獲取空閑服務(wù)資源的端點(diǎn)信息反饋給發(fā)起請(qǐng)求的服務(wù),該服務(wù)利用所獲得的端點(diǎn)與服務(wù)所在服務(wù)主機(jī)的IceNode建立連接進(jìn)行通信,請(qǐng)求者會(huì)將端點(diǎn)信息存儲(chǔ)在服務(wù)調(diào)用層相應(yīng)服務(wù)代理的緩存中;
步驟7:客戶端或者服務(wù)再次調(diào)用相同服務(wù)時(shí),不需要向注冊(cè)中心發(fā)送請(qǐng)求,利用上次請(qǐng)求的端點(diǎn)信息直接與服務(wù)所在主機(jī)的IceNode建立連接;如果連接不能建立或者發(fā)生異常則向注冊(cè)中心請(qǐng)求新的端點(diǎn)信息;
步驟8:主機(jī)宕機(jī)時(shí),注冊(cè)中心通過監(jiān)測(cè)IceNode的狀態(tài)可以發(fā)現(xiàn)異常,將該主機(jī)在注冊(cè)中心的注冊(cè)信息標(biāo)記為不可獲取,此時(shí)該主機(jī)的服務(wù)由其他副本主機(jī)提供,保證服務(wù)的可靠性;
步驟9:宕機(jī)主機(jī)修復(fù)完畢后,重新啟動(dòng)其上的IceNode,此時(shí)注冊(cè)中心會(huì)將該主機(jī)在注冊(cè)中心的注冊(cè)信息重新標(biāo)記為可獲??;
步驟10:通過服務(wù)部署系統(tǒng)新增服務(wù)主機(jī)以及服務(wù),此時(shí)更新注冊(cè)中心的application.xml文件,并通過可視化界面將更新的application.xml文件同步更新到注冊(cè)中心,之后啟動(dòng)新增服務(wù)主機(jī)上的IceNode;
步驟11:通過服務(wù)部署系統(tǒng)更新服務(wù)主機(jī)上的服務(wù),如果服務(wù)對(duì)象適配器沒有變化則不需要更新application.xml文件;如對(duì)象適配器發(fā)生變化則需要更新application.xml文件,并通過可視化界面將更新的application.xml文件同步更新到注冊(cè)中心;
步驟12:減少服務(wù)主機(jī)以及服務(wù)時(shí),更新注冊(cè)中心的application.xml文件,并通過可視化界面將更新的application.xml文件同步更新到注冊(cè)中心。
本發(fā)明采用以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下技術(shù)效果:
1、本發(fā)明實(shí)現(xiàn)了一套異構(gòu)資源集成框架,允許不同語言編寫,運(yùn)行在不同平臺(tái)的后臺(tái)服務(wù)集成;
2、本發(fā)明不僅可以支持C/S、B/S等多種架構(gòu)的客戶端對(duì)服務(wù)的調(diào)用,還實(shí)現(xiàn)了后端服務(wù)間的相互調(diào)用,使得服務(wù)互操作成為可能;
3、服務(wù)調(diào)用采用間接綁定的方式,服務(wù)發(fā)生變化時(shí),新的服務(wù)信息會(huì)注冊(cè)到注冊(cè)中心,服務(wù)調(diào)用者不需要變更任何信息;
4、本發(fā)明與現(xiàn)有技術(shù)相比,本發(fā)明在性能、擴(kuò)展性以及開發(fā)簡易性方面優(yōu)于同類技術(shù)方案。
附圖說明
圖1是本發(fā)明集成框架結(jié)構(gòu)圖;
圖2是本發(fā)明間接綁定示意圖;
圖3是本發(fā)明集成框架實(shí)施架構(gòu)圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)說明:
本發(fā)明所采用的技術(shù)方案是:如附圖1所示基于ICE中間件設(shè)計(jì)三層通信架構(gòu)體系:分別為服務(wù)接入層、負(fù)載均衡層以及服務(wù)調(diào)用層,其中:
服務(wù)接入層:用于解決不同服務(wù)資源的發(fā)布、注冊(cè)問題。根據(jù)通信框架的底層通信機(jī)制,利用ICE接口定義語言Slice定義服務(wù)和客戶端要交換的數(shù)據(jù)類型以及服務(wù)對(duì)象的服務(wù)接口,形成服務(wù)接口描述文件;根據(jù)客戶端和服務(wù)開發(fā)語言的不同,利用編譯工具分別生成與兩端開發(fā)語言對(duì)應(yīng)的接口程序;在服務(wù)中,繼承服務(wù)接口,完成服務(wù)功能的實(shí)現(xiàn);將完成的服務(wù)與對(duì)象適配器進(jìn)行綁定,以便進(jìn)行服務(wù)注冊(cè)、發(fā)布。
負(fù)載均衡層:是通信架構(gòu)的核心模塊,起著承上啟下的作用。主要由服務(wù)注冊(cè)和服務(wù)調(diào)度兩部分組成。服務(wù)注冊(cè)通過建立注冊(cè)中心將服務(wù)集中管理,當(dāng)接收到客戶端請(qǐng)求時(shí),從注冊(cè)信息中找到已注冊(cè)的服務(wù)信息,通過調(diào)度算法判斷出哪個(gè)節(jié)點(diǎn)的服務(wù)有空閑資源可以處理此請(qǐng)求,然后將客戶端請(qǐng)求代理直接與該節(jié)點(diǎn)對(duì)應(yīng)的服務(wù)連接。
服務(wù)調(diào)用層:使客戶端可以快速獲取所調(diào)用的服務(wù)完成請(qǐng)求。客戶端需要配置與注冊(cè)中心通信的連接,將請(qǐng)求發(fā)送到注冊(cè)中心,通過負(fù)載均衡層高效地獲取空閑的服務(wù)資源并與之建立連接。在本發(fā)明中,服務(wù)調(diào)用層使用間接綁定完成客戶端到服務(wù)的對(duì)象調(diào)用。間接綁定讓客戶端不再需要指定代理的端點(diǎn)信息,代理的端點(diǎn)可以由ICE RUN TIME動(dòng)態(tài)確定。具體是通過將定義的對(duì)象適配器解析為協(xié)議-地址對(duì),應(yīng)用程序只需要提供對(duì)象標(biāo)識(shí)符,將其在ICE中注冊(cè)即可。使用間接綁定,客戶端不需要所有服務(wù)的IP以及端口,同時(shí)通過服務(wù)發(fā)現(xiàn)機(jī)制使得服務(wù)部署更加靈活,提高了應(yīng)用的魯棒性和適應(yīng)性。
本發(fā)明使用對(duì)象適配器標(biāo)識(shí)符取代端點(diǎn)信息實(shí)現(xiàn)間接綁定。在服務(wù)接入層完成了服務(wù)對(duì)象與對(duì)象適配器的綁定,在負(fù)載均衡層將對(duì)象適配器和其所對(duì)應(yīng)的端點(diǎn)信息存儲(chǔ)在注冊(cè)中心。然后客戶端通過調(diào)用注冊(cè)中心上的方法查詢適配器表獲取對(duì)象適配器端點(diǎn),與服務(wù)器建立連接。具體過程如附圖2所示,分別為:①在啟動(dòng)時(shí),服務(wù)器向注冊(cè)中心注冊(cè)它的服務(wù)對(duì)象和對(duì)象適配器,適配器ID和相應(yīng)端點(diǎn)會(huì)存儲(chǔ)在適配器表中,例如適配器ID為theAdapter,相應(yīng)的端點(diǎn)是tcp–p9998;②在創(chuàng)建使用間接綁定的代理時(shí),客戶端的ICE RUN TIME調(diào)用定位器上的方法查詢適配器表,獲取與某個(gè)對(duì)象標(biāo)識(shí)或?qū)ο筮m配器標(biāo)識(shí)符相關(guān)聯(lián)的端點(diǎn);③獲取端點(diǎn)之后,客戶端直接與服務(wù)器建立連接。調(diào)用相同服務(wù)時(shí),客戶端不會(huì)再次詢問注冊(cè)中心,除非發(fā)生連接錯(cuò)誤。
本發(fā)明中對(duì)服務(wù)的調(diào)用有兩種方式:一種是B/S或C/S等不同架構(gòu)的客戶端請(qǐng)求調(diào)用服務(wù),這里所述的客戶端和服務(wù)可以是不同語言編寫運(yùn)行在不同平臺(tái)上的程序,服務(wù)通過服務(wù)接入層注冊(cè)發(fā)布后,客戶端需要配置注冊(cè)中心的地址通過服務(wù)調(diào)用層從注冊(cè)中心獲取所調(diào)用服務(wù)的端點(diǎn)信息即IP地址和Port端口,之后客戶端通過服務(wù)端點(diǎn)直接與服務(wù)建立連接來實(shí)現(xiàn)服務(wù)的調(diào)用;另一種是服務(wù)之間相互調(diào)用,這里所述的服務(wù)可以是不同語言編寫運(yùn)行在不同平臺(tái)上的程序,服務(wù)通過服務(wù)接入層注冊(cè)發(fā)布后,如服務(wù)A需要調(diào)用服務(wù)B,服務(wù)A需要配置注冊(cè)中心的地址通過服務(wù)調(diào)用層從注冊(cè)中心獲取服務(wù)B的端點(diǎn)信息即IP地址和Port端口,之后服務(wù)A通過服務(wù)端點(diǎn)直接與服務(wù)B建立連接來實(shí)現(xiàn)服務(wù)件的相互調(diào)用,完成服務(wù)的互操作。
下面結(jié)合附圖1和附圖3對(duì)基于ICE中間件的異構(gòu)資源集成框架作進(jìn)一步說明。該集成框架,主要包括客戶端、防火墻、注冊(cè)中心(Registry)、可視化界面、服務(wù)主機(jī)、副本主機(jī)、服務(wù)、IceNode與服務(wù)部署系統(tǒng)。
客戶端,可以是C/S或者B/S等不同架構(gòu)模式的第三方應(yīng)用,其開發(fā)語言可為Java、C++、C#、C、Python、PHP、NET、Objective-C、VB、Ruby,可以運(yùn)行在不同平臺(tái)上;通過防火墻與注冊(cè)中心相連,可通過注冊(cè)中心返回的服務(wù)端點(diǎn)信息與服務(wù)所在主機(jī)的IceNode建立通信連接,進(jìn)行服務(wù)調(diào)用。
防火墻,為應(yīng)用層防火墻和路由器,提供了安全、路由消息和事務(wù)管理等功能;客戶端通過該防火墻與注冊(cè)中心連接并發(fā)送服務(wù)調(diào)用請(qǐng)求。
注冊(cè)中心(Registry),基于IceGrid中Registry實(shí)現(xiàn),注冊(cè)中心存儲(chǔ)服務(wù)對(duì)象適配器和其所對(duì)應(yīng)的端點(diǎn)信息,通過與各個(gè)服務(wù)主機(jī)及副本主機(jī)的IceNode連接監(jiān)控各個(gè)主機(jī)及其上的服務(wù);接收客戶端及服務(wù)請(qǐng)求,并根據(jù)負(fù)載策略高效地獲取空閑服務(wù)資源的端點(diǎn)信息反饋給請(qǐng)求者。
可視化界面,以界面的形式展示注冊(cè)中心、服務(wù)主機(jī)、IceNode、服務(wù)以及對(duì)象適配器的信息。可以對(duì)IceNode和服務(wù)進(jìn)行啟停操作;與注冊(cè)中心連接,可通過可視化界面配置application.xml文件。
服務(wù)主機(jī),可以是服務(wù)器或者PC機(jī),承載服務(wù)與IceNode。
副本主機(jī),服務(wù)主機(jī)的副本,可以是服務(wù)器或者PC機(jī),承載服務(wù)與IceNode。副本主機(jī)與服務(wù)主機(jī)共同承擔(dān)服務(wù)調(diào)用負(fù)載;在發(fā)生主機(jī)宕機(jī)時(shí),可分擔(dān)宕機(jī)主機(jī)的負(fù)載。
服務(wù),可以是不同開發(fā)語言(Java、C++、C#、C、.Python、PHP、NET、Objective-C、VB、Ruby)編寫的,運(yùn)行在不同平臺(tái)上的程序。部署在服務(wù)主機(jī)及副本主機(jī)中,在調(diào)用其它服務(wù)時(shí),可與注冊(cè)中心直接連接發(fā)送請(qǐng)求。
IceNode,起著連接服務(wù)和注冊(cè)中心的橋梁作用,可以監(jiān)控所在主機(jī)的服務(wù)。接收服務(wù)調(diào)用請(qǐng)求并轉(zhuǎn)發(fā)給相應(yīng)服務(wù),將服務(wù)結(jié)果返回給調(diào)用者;IceNode可根據(jù)服務(wù)的接入方式進(jìn)行配置以適應(yīng)不同的服務(wù)。
服務(wù)部署系統(tǒng),與各個(gè)服務(wù)主機(jī)及副本主機(jī)連接,實(shí)現(xiàn)多節(jié)點(diǎn)部署以達(dá)到負(fù)載均衡或容災(zāi)的目的,當(dāng)更新或新增應(yīng)用程序時(shí)可通過分發(fā)的方式同步各個(gè)節(jié)點(diǎn)文件。
基于ICE中間件的異構(gòu)資源集成的具體實(shí)施步驟如下:
步驟1:服務(wù)部署系統(tǒng)與各個(gè)服務(wù)主機(jī)以及副本主機(jī)相連,通過服務(wù)部署系統(tǒng)將服務(wù)以及IceNode部署在相應(yīng)主機(jī)與副本主機(jī)上;
步驟2:啟動(dòng)各個(gè)服務(wù)主機(jī)以及副本主機(jī)上的IceNode,配置注冊(cè)中心配置文件,然后啟動(dòng)注冊(cè)中心;
步驟3:配置application.xml文件,然后利用可視化界面添加到注冊(cè)中心,此時(shí)可利用可視化界面查看注冊(cè)中心以及各個(gè)服務(wù)主機(jī)上IceNode和服務(wù)的信息,各個(gè)服務(wù)主機(jī)以及副本主機(jī)上的服務(wù)不需要手動(dòng)啟動(dòng),主機(jī)上的IceNode接收到服務(wù)請(qǐng)求時(shí)會(huì)按需啟動(dòng)服務(wù);
步驟4:客戶端通過防火墻與注冊(cè)中心連接,客戶端調(diào)用服務(wù)時(shí),通過防火墻向注冊(cè)中心發(fā)送服務(wù)調(diào)用請(qǐng)求,注冊(cè)中心根據(jù)負(fù)載策略高效地獲取空閑服務(wù)資源的端點(diǎn)信息反饋給客戶端,客戶端利用所獲得的端點(diǎn)通過防火墻與服務(wù)所在服務(wù)主機(jī)的IceNode建立連接進(jìn)行通信,請(qǐng)求者會(huì)將端點(diǎn)信息存儲(chǔ)在服務(wù)調(diào)用層相應(yīng)服務(wù)代理的緩存中;
步驟5:IceNode將服務(wù)調(diào)用請(qǐng)求傳遞給相應(yīng)服務(wù),如有返回結(jié)果,則IceNode通過防火墻將結(jié)果返回給客戶端;
步驟6:服務(wù)可直接與注冊(cè)中心連接,不需要通過防火墻,服務(wù)調(diào)用其它服務(wù)時(shí),向注冊(cè)中心發(fā)送服務(wù)調(diào)用請(qǐng)求,注冊(cè)中心根據(jù)負(fù)載策略高效地獲取空閑服務(wù)資源的端點(diǎn)信息反饋給發(fā)起請(qǐng)求的服務(wù),該服務(wù)利用所獲得的端點(diǎn)與服務(wù)所在服務(wù)主機(jī)的IceNode建立連接進(jìn)行通信,請(qǐng)求者會(huì)將端點(diǎn)信息存儲(chǔ)在服務(wù)調(diào)用層相應(yīng)服務(wù)代理的緩存中;
步驟7:客戶端或者服務(wù)再次調(diào)用相同服務(wù)時(shí),不需要向注冊(cè)中心發(fā)送請(qǐng)求,利用上次請(qǐng)求的端點(diǎn)信息直接與服務(wù)所在主機(jī)的IceNode建立連接。如果連接不能建立或者發(fā)生異常則向注冊(cè)中心請(qǐng)求新的端點(diǎn)信息;
步驟8:主機(jī)宕機(jī)時(shí),注冊(cè)中心通過監(jiān)測(cè)IceNode的狀態(tài)可以發(fā)現(xiàn)異常,將該主機(jī)在注冊(cè)中心的注冊(cè)信息標(biāo)記為不可獲取,此時(shí)該主機(jī)的服務(wù)由其他副本主機(jī)提供,保證服務(wù)的可靠性;
步驟9:宕機(jī)主機(jī)修復(fù)完畢后,可以重新啟動(dòng)其上的IceNode,此時(shí)注冊(cè)中心會(huì)將該主機(jī)在注冊(cè)中心的注冊(cè)信息重新標(biāo)記為可獲?。?/p>
步驟10:可通過服務(wù)部署系統(tǒng)新增服務(wù)主機(jī)以及服務(wù),此時(shí)需更新注冊(cè)中心的application.xml文件,并通過可視化界面將更新的application.xml文件同步更新到注冊(cè)中心,之后啟動(dòng)新增服務(wù)主機(jī)上的IceNode;
步驟11:可通過服務(wù)部署系統(tǒng)更新服務(wù)主機(jī)上的服務(wù),如果服務(wù)對(duì)象適配器沒有變化(增加、修改、減少)則不需要更新application.xml文件,如對(duì)象適配器發(fā)生變化則需要更新application.xml文件,并通過可視化界面將更新的application.xml文件同步更新到注冊(cè)中心。
步驟12:減少服務(wù)主機(jī)以及服務(wù)時(shí),需更新注冊(cè)中心的application.xml文件,并通過可視化界面將更新的application.xml文件同步更新到注冊(cè)中心。
綜上所述,本發(fā)明實(shí)現(xiàn)了一套異構(gòu)資源集成框架,允許不同語言編寫,運(yùn)行在不同平臺(tái)的后臺(tái)服務(wù)集成。不僅可以支持C/S、B/S等多種架構(gòu)的客戶端對(duì)服務(wù)的調(diào)用,還實(shí)現(xiàn)了后端服務(wù)間的相互調(diào)用,使得服務(wù)互操作成為可能;服務(wù)調(diào)用采用間接綁定的方式,服務(wù)發(fā)生變化時(shí),新的服務(wù)信息會(huì)注冊(cè)到注冊(cè)中心,服務(wù)調(diào)用者不需要變更任何信息;與現(xiàn)有技術(shù)相比,本發(fā)明在性能、擴(kuò)展性以及開發(fā)簡易性方面優(yōu)于同類技術(shù)方案。