亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種業(yè)務(wù)邏輯運行環(huán)境實現(xiàn)的方法

文檔序號:7897673閱讀:308來源:國知局
專利名稱:一種業(yè)務(wù)邏輯運行環(huán)境實現(xiàn)的方法
技術(shù)領(lǐng)域
本發(fā)明涉及電信業(yè)務(wù)運行環(huán)境領(lǐng)域,特別是指一種業(yè)務(wù)邏輯運行環(huán)境實現(xiàn)的方法。
背景技術(shù)
JAIN(JAVA API for Intelligent Network)技術(shù)致力于提供基于JAVA平臺的集成應(yīng)用程序接口(API)和接口框架,建立或集成一個能跨越各種網(wǎng)絡(luò)的統(tǒng)一電信業(yè)務(wù)解決方案。其中,各種網(wǎng)絡(luò)包括基于網(wǎng)際協(xié)議(IP)或異步轉(zhuǎn)移模式(ATM)的分組交換網(wǎng)絡(luò)、無線網(wǎng)絡(luò)和傳統(tǒng)的公用電話交換網(wǎng)絡(luò)(PSTN);電信業(yè)務(wù)解決方案包括業(yè)務(wù)的可移植性和一致性,外部業(yè)務(wù)訪問該集成網(wǎng)絡(luò)的安全性等特性。JAIN技術(shù)使互聯(lián)網(wǎng)(Internet)和智能網(wǎng)(Intelligent Network)的協(xié)議能夠集成在一起,成為新的集成網(wǎng)絡(luò)(IntegratedNetwork)。JAIN技術(shù)組織的眾多參與者根據(jù)一致定義好的工作過程制定出一系列的API和接口框架,業(yè)務(wù)開發(fā)者遵循這些API和接口框架,能夠達(dá)到快速開發(fā)和部署多樣化業(yè)務(wù)的目的。
JAIN技術(shù)組織的工作輸出包括兩個主要的開發(fā)領(lǐng)域API協(xié)議規(guī)范和API應(yīng)用規(guī)范。API協(xié)議規(guī)范是制定標(biāo)準(zhǔn)化的接入IP、有線網(wǎng)絡(luò)和無線網(wǎng)絡(luò)的信令協(xié)議接口規(guī)范,信令協(xié)議包括事務(wù)處理能力應(yīng)用部分(TCAP)、綜合業(yè)務(wù)服務(wù)網(wǎng)用戶部分(ISUP)、智能網(wǎng)應(yīng)用協(xié)議(INAP)、移動應(yīng)用部分(MAP)、會晤啟動協(xié)議(SIP)和H.323等。API應(yīng)用規(guī)范是制定網(wǎng)絡(luò)安全訪問(JAIN Parlay)、連接性管理、JAIN會話/呼叫控制(JCC/JCAT)、以及JAIN業(yè)務(wù)生成/電信級業(yè)務(wù)邏輯運行環(huán)境(JSC/SLEE)等方面的接口框架建議和API規(guī)范。
圖1為JAIN API規(guī)范體系結(jié)構(gòu)示意圖,如圖1所示,JAIN API體系結(jié)構(gòu)可由三層組成JAIN應(yīng)用層104、JAIN業(yè)務(wù)層110和JAIN網(wǎng)絡(luò)協(xié)議層(Protocol Layer)111。
JAIN網(wǎng)絡(luò)協(xié)議層111支持TCAP、ISUP、INAP、MAP、SIP、H.323、媒體網(wǎng)關(guān)控制協(xié)議(MGCP)和Megaco等協(xié)議。JAIN網(wǎng)絡(luò)協(xié)議層111的作用是把來自下面實際網(wǎng)絡(luò)層的特定網(wǎng)絡(luò)消息適配成JAIN協(xié)議的API調(diào)用形式。實際網(wǎng)絡(luò)層包括IP 112、寬帶網(wǎng)絡(luò)(Broadband)113、有線網(wǎng)絡(luò)(Wireless)114、PSTN 115和衛(wèi)星網(wǎng)絡(luò)(Satellite)116等。
JAIN業(yè)務(wù)層110包括JAIN業(yè)務(wù)邏輯運行環(huán)境(JSLEE,JAIN ServiceLogic Execution Environment)108和JAIN會話/呼叫控制(JCC,JAIN CallControl/JCAT,JAIN Coordination and Transactions)109。業(yè)務(wù)開發(fā)好以后,將業(yè)務(wù)部署于JSLEE 108,并且業(yè)務(wù)以JCC/JCAT 109的模式來處理網(wǎng)絡(luò)事件。JSLEE 108是一系列JAIN API集成的一個重要部分,在JAIN API整個體系結(jié)構(gòu)中處于比較核心的位置。JSLEE是JAIN業(yè)務(wù)邏輯運行環(huán)境,可以視為支撐業(yè)務(wù)運行的一個虛擬操作系統(tǒng)環(huán)境,它的典型功能包括對業(yè)務(wù)生命周期進行管理,為業(yè)務(wù)的運行提供各種系統(tǒng)服務(wù)等。
JAIN應(yīng)用層104包括非信任的第三方應(yīng)用(Untrusted third-partyapplications)101、JAIN業(yè)務(wù)生成環(huán)境(JSCE,JAIN Service CreationEnvironment)102和信任的第三方應(yīng)用(Trusted third-party applications)103。非信任的第三方應(yīng)用101通過JAIN業(yè)務(wù)供應(yīng)商接口(JSPA,JAIN ServiceProvider Access)105來發(fā)現(xiàn)并訪問在JSLEE 108中部署的業(yè)務(wù)及各業(yè)務(wù)的能力。信任的第三方應(yīng)用103通過標(biāo)準(zhǔn)的安全接口(Security Interface)106來訪問JSLEE 108中的業(yè)務(wù)。JSCE 102屬于JAIN規(guī)范,可以獨立出來,它是一套可以快速開發(fā)JSLEE 108業(yè)務(wù)的API規(guī)范。
JAIN業(yè)務(wù)層110通過安全的電信空間107與JSPA 105和安全接口106進行通信。
圖2為SLEE簡化邏輯功能框圖,如圖2所示,SLEE 201的基本組成部分主要包括業(yè)務(wù)類型實例池(Service Instance Pool)202、事件調(diào)度器(ED,Event Dispatcher)204、系統(tǒng)服務(wù)(SLEE Resource)205和數(shù)據(jù)池206。業(yè)務(wù)類型實例池202包括多個業(yè)務(wù)實例203,事件調(diào)度器204在業(yè)務(wù)類型實例池202中查找并獲取所需的業(yè)務(wù)實例203。系統(tǒng)服務(wù)205管理業(yè)務(wù)生命周期、定時器服務(wù)、告警服務(wù)等。數(shù)據(jù)池包括存儲運行期間各種數(shù)據(jù)的數(shù)據(jù)庫(DataRepository)207、描述業(yè)務(wù)的數(shù)據(jù)—業(yè)務(wù)描述(Service Description)209,以及描述ED 204可能會調(diào)度事件的事件信息(Event Information)208。ED204通過不同的網(wǎng)絡(luò)適配器(Network Adaptor)210接受來自底層網(wǎng)絡(luò)協(xié)議棧的事件信息(Event Source)2 11。
JAIN SLEE API的集成為具體實現(xiàn)SLEE提供了一個接口框架,它的優(yōu)勢包括以一種標(biāo)準(zhǔn)和可重復(fù)使用的方式提供一系列精確定義的API,通過這些API能調(diào)用公共功能,業(yè)務(wù)提供者遵循這些API就能夠快速開發(fā)新業(yè)務(wù)和新應(yīng)用;業(yè)務(wù)開發(fā)者在開發(fā)業(yè)務(wù)的過程中可以只關(guān)注于業(yè)務(wù)的實現(xiàn)邏輯,而不用去關(guān)心底層的網(wǎng)絡(luò)協(xié)議和運行業(yè)務(wù)的技術(shù)細(xì)節(jié),將業(yè)務(wù)和底層網(wǎng)絡(luò)協(xié)議的變更屏蔽開來;業(yè)務(wù)開發(fā)者能夠快速地生成新業(yè)務(wù),也可以利用現(xiàn)存的業(yè)務(wù)特征組合成新業(yè)務(wù);業(yè)務(wù)開發(fā)好以后,新業(yè)務(wù)可以運行在所有與JSLEE兼容的接口框架上。
除了JAIN SLEE API,JAIN技術(shù)組織還提供了實現(xiàn)SLEE的規(guī)范,規(guī)范描述了業(yè)務(wù)的生命周期模型、業(yè)務(wù)的部署機制等。業(yè)務(wù)的部署機制包括業(yè)務(wù)打包的結(jié)構(gòu)和對業(yè)務(wù)內(nèi)容的定義,如何定義用于指導(dǎo)業(yè)務(wù)部署的部署描述器(Deployment Descriptor),業(yè)務(wù)部署和訂閱接口等。此外,還定義了業(yè)務(wù)的運行機制,包括操作管理接口定義、業(yè)務(wù)間異步通信機制等等。
JSLEE體系結(jié)構(gòu)和API都在隨著現(xiàn)有的網(wǎng)絡(luò)技術(shù)和軟件實現(xiàn)技術(shù)的改進不斷演化。JSLEE的優(yōu)點還體現(xiàn)在它的開放性,它沒有規(guī)定具體的實現(xiàn)細(xì)節(jié),只提供了一個體系結(jié)構(gòu)一級的接口框架和標(biāo)準(zhǔn)的API級接口。這樣,不同的開發(fā)商可以根據(jù)自身的技術(shù)特點實現(xiàn)一個具體的SLEE。采用不同的技術(shù),會有性能和成本上的差異,有助于市場上SLEE產(chǎn)品的競爭和發(fā)展,同時反過來會促進JSLEE體系結(jié)構(gòu)和API的不斷完善。
實現(xiàn)一個電信級的SLEE,必須考慮到分布式處理、負(fù)載平衡、數(shù)據(jù)庫的有效存儲、對象和連接業(yè)務(wù)類型實例池的管理等技術(shù)細(xì)節(jié)。從技術(shù)層面上看JAIN SLEE可以用組件技術(shù)來實現(xiàn)。EJB(Enterprice JAVA BEAN)組件技術(shù)就是一個可行的實現(xiàn)JSLEE的技術(shù),除此之外,JINI、JINI JAVASpace、JES都是可選的能夠?qū)崿F(xiàn)JSLEE的組件技術(shù)。JSLEE的一些特性,例如分布式處理、負(fù)載均衡、處理能力等,完全依賴于所采用的應(yīng)用程序服務(wù)器平臺的性能。
如果JSLEE采用EJB組件技術(shù)來實現(xiàn),JSLEE的性能完全依賴于所采用的支持EJB的應(yīng)用程序服務(wù)器平臺的性能。目前一些常用的應(yīng)用程序服務(wù)器平臺雖然宣稱能夠達(dá)到很高的性能指標(biāo),但實際測試的效果并不理想。一些應(yīng)用程序服務(wù)器平臺對EJB請求的處理能力大概是1600條請求/秒,而且隨著客戶端數(shù)量的增加,響應(yīng)時間明顯加長。雖然應(yīng)用程序服務(wù)器平臺可以通過對系統(tǒng)參數(shù)的優(yōu)化來提高性能,但優(yōu)化參數(shù)所提高的性能不會有本質(zhì)上的改變。另外,一些應(yīng)用程序服務(wù)器平臺可以采用群機疊加技術(shù),雖然會對JSLEE的性能有較大改善,但是,卻是在增加軟件和硬件投資的基礎(chǔ)上實現(xiàn)的。使用EJB組件技術(shù)實現(xiàn)JSLEE需要完全遵循EJB 1.0或2.0規(guī)范。采用特定的應(yīng)用程序服務(wù)器平臺會對EJB規(guī)范作適當(dāng)?shù)臄U展,以此達(dá)到特定的性能指標(biāo)或提供一些EJB規(guī)范中沒有涉及的特性。
基于某些應(yīng)用程序服務(wù)器平臺開發(fā)JSLEE也需要遵循所采用的應(yīng)用程序服務(wù)器平臺的開發(fā)規(guī)范,在應(yīng)用程序服務(wù)器平臺支持的性能特性范圍內(nèi)實現(xiàn)JSLEE。然而,對于有些特性,如異步回調(diào)特性,大多數(shù)應(yīng)用程序服務(wù)器平臺不支持,在設(shè)計上只能采取一些變通的方法來實現(xiàn)。
采用EJB組件技術(shù)實現(xiàn)JSLEE,在部署JSLEE的時候,過程會比較復(fù)雜。首先需要部署應(yīng)用程序服務(wù)器平臺,把性能參數(shù)先調(diào)測到最優(yōu)化,然后再在應(yīng)用程序服務(wù)器平臺上部署JSLEE。如果采用商用的應(yīng)用程序服務(wù)器平臺還需要支付昂貴的軟件使用費用和維護費用。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的在于提供一種業(yè)務(wù)邏輯運行環(huán)境實現(xiàn)的方法,實現(xiàn)了不依賴于應(yīng)用程序服務(wù)器平臺的業(yè)務(wù)邏輯運行環(huán)境運行機制。
為了達(dá)到上述目的,本發(fā)明提供了一種業(yè)務(wù)邏輯運行環(huán)境實現(xiàn)的方法,其特征在于該方法包含以下步驟A、通信實體向事件調(diào)度器發(fā)送消息中間件事件消息;B、事件調(diào)度器根據(jù)收到的消息中間件事件消息,在業(yè)務(wù)類型池中獲取相應(yīng)的業(yè)務(wù)實例,并控制所獲取的業(yè)務(wù)實例完成相應(yīng)操作。
所述通信實體為網(wǎng)絡(luò)協(xié)議棧;所述步驟A為網(wǎng)絡(luò)協(xié)議棧向事件調(diào)度器發(fā)送消息中間件業(yè)務(wù)會話初始事件消息;所述步驟B為事件調(diào)度器根據(jù)收到的消息中間件業(yè)務(wù)會話初始事件消息,在業(yè)務(wù)類型池中獲取空閑的業(yè)務(wù)實例,并將該業(yè)務(wù)實例激活,然后控制所獲取的業(yè)務(wù)實例完成相應(yīng)操作。
所述通信實體為網(wǎng)絡(luò)協(xié)議棧;所述步驟A為網(wǎng)絡(luò)協(xié)議棧向事件調(diào)度器發(fā)送消息中間件業(yè)務(wù)會話過程事件消息;所述步驟B為事件調(diào)度器根據(jù)收到的消息中間件業(yè)務(wù)會話過程事件消息,在業(yè)務(wù)類型池中獲取相應(yīng)的激活的業(yè)務(wù)實例,并控制所獲取的業(yè)務(wù)實例完成相應(yīng)操作。
所述通信實體為業(yè)務(wù)實例;所述步驟A為業(yè)務(wù)實例向事件調(diào)度器發(fā)送消息中間件業(yè)務(wù)實例事件消息;所述步驟B為事件調(diào)度器根據(jù)收到的消息中間件業(yè)務(wù)實例事件消息,在業(yè)務(wù)類型池中獲取相應(yīng)的目標(biāo)業(yè)務(wù)實例,事件調(diào)度器根據(jù)業(yè)務(wù)實例事件消息向目標(biāo)業(yè)務(wù)實例發(fā)送事件處理信息,控制目標(biāo)業(yè)務(wù)實例完成相應(yīng)操作。
對于分布式業(yè)務(wù)邏輯運行環(huán)境結(jié)構(gòu),所述步驟B進一步包括事件調(diào)度器收到事件消息后,判斷相應(yīng)的業(yè)務(wù)實例是否位于其所在的業(yè)務(wù)邏輯運行環(huán)境節(jié)點上,如果是,在該業(yè)務(wù)邏輯運行環(huán)境節(jié)點上的業(yè)務(wù)類型池中獲取相應(yīng)的業(yè)務(wù)實例;否則,該事件調(diào)度器所在的業(yè)務(wù)邏輯運行環(huán)境節(jié)點根據(jù)初始化配置文件查找到相應(yīng)的目標(biāo)業(yè)務(wù)實例所在的目標(biāo)業(yè)務(wù)邏輯運行環(huán)境節(jié)點,并獲取目標(biāo)業(yè)務(wù)邏輯運行環(huán)境節(jié)點上目標(biāo)事件調(diào)度器的消息中間件地址,該事件調(diào)度器向目標(biāo)事件調(diào)度器發(fā)送消息中間件格式的消息,目標(biāo)事件調(diào)度器獲取相應(yīng)的業(yè)務(wù)實例。
對于分布式業(yè)務(wù)邏輯運行環(huán)境結(jié)構(gòu),所述步驟B進一步包括業(yè)務(wù)實例所在邏輯運行環(huán)境節(jié)點將該業(yè)務(wù)實例置為主業(yè)務(wù)實例。
較佳地,對于分布式業(yè)務(wù)邏輯運行環(huán)境結(jié)構(gòu),該方法進一步包含以下步驟D、業(yè)務(wù)實例調(diào)用數(shù)據(jù)訪問接口;E、數(shù)據(jù)訪問接口通過調(diào)用本地數(shù)據(jù)訪問工具訪問業(yè)務(wù)會話上下文數(shù)據(jù),并對業(yè)務(wù)會話上下文數(shù)據(jù)進行操作;F、本地數(shù)據(jù)訪問工具將對業(yè)務(wù)會話上下文數(shù)據(jù)的操作結(jié)果返回給業(yè)務(wù)實例。
所述業(yè)務(wù)會話上下文數(shù)據(jù)存儲于主業(yè)務(wù)實例所在的業(yè)務(wù)邏輯運行環(huán)境節(jié)點。
訪問業(yè)務(wù)會話上下文數(shù)據(jù)的業(yè)務(wù)實例為遠(yuǎn)程業(yè)務(wù)實例時,該方法進一步包括以下步驟E1、數(shù)據(jù)訪問接口調(diào)用遠(yuǎn)程數(shù)據(jù)訪問工具,遠(yuǎn)程數(shù)據(jù)訪問工具向主業(yè)務(wù)實例所在業(yè)務(wù)邏輯運行環(huán)境節(jié)的遠(yuǎn)程數(shù)據(jù)代理發(fā)送消息中間件消息,遠(yuǎn)程數(shù)據(jù)代理收到消息中間件消息后,調(diào)用本地數(shù)據(jù)訪問工具訪問業(yè)務(wù)會話上下文數(shù)據(jù),并對業(yè)務(wù)會話上下文數(shù)據(jù)進行操作;F1、本地數(shù)據(jù)訪問工具將對業(yè)務(wù)會話上下文數(shù)據(jù)的操作結(jié)果返回給所述遠(yuǎn)程數(shù)據(jù)代理,所述遠(yuǎn)程數(shù)據(jù)代理將對業(yè)務(wù)會話上下文數(shù)據(jù)的操作結(jié)果返回給所述遠(yuǎn)程數(shù)據(jù)訪問工具,所述遠(yuǎn)程數(shù)據(jù)訪問工具將對業(yè)務(wù)會話上下文數(shù)據(jù)的操作結(jié)果返回給遠(yuǎn)程業(yè)務(wù)實例。
在初始化過程中生成所述本地數(shù)據(jù)訪問工具和遠(yuǎn)程數(shù)據(jù)訪問工具。
對于分布式業(yè)務(wù)邏輯運行環(huán)境結(jié)構(gòu),所述步驟A進一步包括網(wǎng)絡(luò)協(xié)議棧向任意業(yè)務(wù)邏輯運行環(huán)境節(jié)點上的事件調(diào)度器發(fā)送業(yè)務(wù)會話初始事件消息。
本發(fā)明通過消息中間件技術(shù)實現(xiàn)了不依賴于應(yīng)用程序服務(wù)器平臺的SLEE運行機制。本發(fā)明通過消息中間件技術(shù)為SLEE提供通用的通訊平臺。并且,在分布式SLEE結(jié)構(gòu)中,業(yè)務(wù)部署者可以根據(jù)負(fù)荷均衡、地理位置等條件綜合考慮業(yè)務(wù)部署于哪一個SLEE節(jié)點,實現(xiàn)了靈活部署業(yè)務(wù)的目的,并且通過消息中間件技術(shù)可以實現(xiàn)分布式SLEE的數(shù)據(jù)共享。


圖1為JAIN API體系結(jié)構(gòu)示意圖;圖2為SLEE簡化邏輯功能框圖;圖3為非分布式SLEE結(jié)構(gòu)示意圖;圖4為分布式SLEE結(jié)構(gòu)示意圖;圖5為分布式SLEE Session Context數(shù)據(jù)共享示意圖。
具體實施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合附圖對本發(fā)明作進一步地詳細(xì)描述。
本發(fā)明在SLEE中引入了消息中間件(MOM,Message OrientedMiddleware)技術(shù),通過MOM技術(shù)實現(xiàn)通信實體間信息的交互,下面首先對MOM技術(shù)進行介紹。
MOM技術(shù)用來在通信對象間提供一個高效通用的通信平臺。MOM技術(shù)支持同步消息和異步消息。發(fā)送同步消息,發(fā)送者進程會被阻塞,直到收到了消息返回值,才會繼續(xù)執(zhí)行后續(xù)工作。發(fā)送異步消息不存在阻塞問題,發(fā)送者發(fā)送消息后,可以處理后續(xù)流程。每一個需要接收MOM消息的通信實體對象,都需要分配一對唯一的模塊標(biāo)識(MID)和進程標(biāo)識(PID)。MID表示物理上獨立的模塊號;PID表示進程號,可以用來標(biāo)識應(yīng)用程序中需要接收MOM消息的特定程序模塊。MOM消息發(fā)送端要將MOM消息發(fā)送至目標(biāo)通信實體,必須知道目標(biāo)通信實體的MID和PID。一對唯一的MID和PID構(gòu)成了MOM消息發(fā)送的地址,也可稱為MOM地址。
MOM消息的接收端通信實體需要實現(xiàn)兩個特定JAVA接口的功能,分別用于收到異步消息和同步消息后的處理過程。當(dāng)MOM接收端通信實體收到MOM消息后,會根據(jù)MOM消息類型分別調(diào)用這兩個接口中的一個,實現(xiàn)MOM消息事件的觸發(fā)。
SLEE從其運行環(huán)境可分為非分布式SLEE和分布式SLEE。其中,非分布式SLEE只能運行于一個物理節(jié)點上,即一個JAVA虛擬機(JVM)。對于業(yè)務(wù)來說,所有業(yè)務(wù)都部署在同一個物理節(jié)點上,業(yè)務(wù)間的通信都是在同一個JVM上進行的;分布式SLEE只能運行于不同的物理節(jié)點上,即不同的JVM上。
圖3為非分布式SLEE結(jié)構(gòu)示意圖,如圖3所示,網(wǎng)絡(luò)協(xié)議棧302運行在與SLEE 301不同的物理節(jié)點或JVM上。業(yè)務(wù)管理器307對多個業(yè)務(wù)類型實例池202進行管理。來自網(wǎng)絡(luò)協(xié)議棧302的網(wǎng)絡(luò)消息306以MOM消息的格式發(fā)送至SLEE 301的ED 204,ED 204根據(jù)該事件的類型標(biāo)識進行后續(xù)處理。
為獲得更好的可擴展性和更高的系統(tǒng)處理能力,SLEE必須支持分布式的運行機制,系統(tǒng)負(fù)荷可以由多個物理節(jié)點來分擔(dān)。對于業(yè)務(wù)來說,業(yè)務(wù)部署于不同的物理節(jié)點上,業(yè)務(wù)間的通信可能在不同的JVM上進行。
圖4為分布式SLEE結(jié)構(gòu)示意圖,如圖4所示,每一個SLEE節(jié)點都有一個ED 204。通過ED 204,分布式的SLEE節(jié)點間可以相互通信,例如,SLEE節(jié)點A 401和SLEE節(jié)點B 402。網(wǎng)絡(luò)協(xié)議棧A 403以MOM消息的格式將網(wǎng)絡(luò)消息306發(fā)送至某個SLEE節(jié)點的ED 204,例如SLEE節(jié)點A 401的ED 204,ED 204根據(jù)事件的類型標(biāo)識進行處理。同時ED 204可以將來自網(wǎng)絡(luò)協(xié)議棧A 403的網(wǎng)絡(luò)消息306轉(zhuǎn)發(fā)至其他SLEE節(jié)點的ED 204,例如SLEE節(jié)點B 402的ED 204。
SLEE節(jié)點A 401中的業(yè)務(wù)實例A 203可以通過分布調(diào)用406去調(diào)用SLEE節(jié)點B 402中的業(yè)務(wù)實例。關(guān)于業(yè)務(wù)實例間的分布調(diào)用,下面會作介紹。
整個分布式SLEE平臺可以由運行在不同物理位置的多個SLEE節(jié)點組成,業(yè)務(wù)可以部署在任意一個SLEE節(jié)點上。業(yè)務(wù)具體部署在哪一個SLEE節(jié)點上可根據(jù)各個SLEE節(jié)點的負(fù)荷均衡,或地理位置的方便等條件進行綜合考慮。
此外,無論是非分布式SLEE結(jié)構(gòu)還是分布式SLEE結(jié)構(gòu),所有業(yè)務(wù)實例均可直接與網(wǎng)絡(luò)協(xié)議棧進行通信,業(yè)務(wù)實例構(gòu)造一條MOM消息,通過將MOM消息發(fā)送至目標(biāo)網(wǎng)絡(luò)協(xié)議棧,使目標(biāo)網(wǎng)絡(luò)協(xié)議棧進行相應(yīng)操作。
所有需要接收MOM消息的通信實體都需要分配一個唯一的地址標(biāo)識,即一對唯一的MID和PID的組合,作為發(fā)送端發(fā)送MOM消息的目的地址。對于非分布式SLEE結(jié)構(gòu),需要分配MID和PID的通信實體是ED。此外,需要進行通信的網(wǎng)絡(luò)協(xié)議棧也需要為其分配MID和PID。
在非分布式SLEE結(jié)構(gòu)中,SLEE會配置一個初始化配置文件,初始化配置文件中包含了分配給其ED的MID和PID,以及分配給網(wǎng)絡(luò)協(xié)議棧的MID和PID。
在非分布式SLEE結(jié)構(gòu)中,如果是業(yè)務(wù)會話初始事件(Service InitialEvent),ED收到的業(yè)務(wù)會話初始事件消息中攜帶業(yè)務(wù)的類型標(biāo)識,ED通過業(yè)務(wù)管理器在相應(yīng)類型的業(yè)務(wù)類型實例池中查找并獲取一個空閑的業(yè)務(wù)實例。SLEE激活空閑的業(yè)務(wù)實例并對其進行初始化配置,配置一些初始參數(shù)。同時SLEE為業(yè)務(wù)實例分配業(yè)務(wù)實例標(biāo)識(Instance ID)。如果當(dāng)前的業(yè)務(wù)會話還沒有分配業(yè)務(wù)會話標(biāo)識(Session ID),則SLEE為當(dāng)前業(yè)務(wù)會話分配Session ID,接下來的處理過程與下面所述的業(yè)務(wù)會話過程中的事件基本相同。
如果是業(yè)務(wù)會話過程中的事件,ED根據(jù)業(yè)務(wù)會話過程事件消息中攜帶的Session ID和Instance ID,通過業(yè)務(wù)管理器在業(yè)務(wù)類型實例池中找到相應(yīng)的激活中的業(yè)務(wù)實例。業(yè)務(wù)實例在處理事件的過程中,可能會與同一業(yè)務(wù)會話過程中的其他業(yè)務(wù)實例進行通信,或者與底層的網(wǎng)絡(luò)協(xié)議棧進行通信。上述業(yè)務(wù)實例與其他業(yè)務(wù)實例進行通信時,業(yè)務(wù)實例將業(yè)務(wù)實例事件消息發(fā)送至ED。ED根據(jù)業(yè)務(wù)實例事件消息將事件處理信息發(fā)送至相應(yīng)的業(yè)務(wù)實例,使該業(yè)務(wù)實例去處理相應(yīng)的事件。
在分布式SLEE結(jié)構(gòu)中,MOM技術(shù)同樣為通信實體提供了一個高效通用的通信平臺,通信實體以該通信平臺為基礎(chǔ)進行相互間的通信,所有分布式SLEE節(jié)點中通信實體間的通信都是基于MOM消息進行的。其中ED之間的通信采用同步MOM消息,這樣可以簡化ED的設(shè)計。ED的MOM消息處理采用多線程機制,ED需要維護一個線程資源池,即ED每收到一條MOM消息,就從線程資源池中取出一條空閑線程并激活該線程,通過運行該線程處理MOM消息。ED之間采用同步MOM消息,發(fā)送端ED在發(fā)送一條MOM消息后,在等待該MOM消息的響應(yīng)過程中,只是該線程處于阻塞狀態(tài),其他線程可以并行處理其他MOM消息。從宏觀上看,ED是可以并行處理多條MOM消息的,ED的調(diào)度效率和吞吐量只取決于JVM對線程的調(diào)度效率和線程資源池的大小。
在部署分布式SLEE節(jié)點的過程中,給每個SLEE節(jié)點分配一個唯一的SLEE標(biāo)識符(SLEE ID)用以標(biāo)識該SLEE節(jié)點。每個網(wǎng)絡(luò)協(xié)議棧也會分配一個唯一的標(biāo)識符(ID)。
所有需要接收MOM消息的通信實體都需要分配一個唯一的地址標(biāo)識,即一對唯一的MID和PID的組合,作為發(fā)送端發(fā)送MOM消息的目的地址。對于分布式SLEE節(jié)點,需要分配MID和PID的通信實體是每一個SLEE節(jié)點的ED。此外,所有需要進行通信的網(wǎng)絡(luò)協(xié)議棧都需要分配MID和PID。
在分布式SLEE結(jié)構(gòu)中,每個SLEE節(jié)點都會配置一個初始化配置文件,初始化配置文件中包含了分配給該SLEE節(jié)點的SLEE ID及其ED的MID和PID,其他所有SLEE節(jié)點的SLEE ID及與其相對應(yīng)的ED的MID和PID,分配給所有網(wǎng)絡(luò)協(xié)議棧的ID及其MID和PID。
每個SLEE節(jié)點啟動初始化過程的時候,會去讀取初始化配置文件,把自身SLEE節(jié)點的SLEE ID、其ED的MID和PID讀入內(nèi)存,初始化收發(fā)MOM消息的通信實體,如配置一些初始參數(shù)等,并把通信實體自身的MID和PID綁定到MOM通信實體上,這樣通信實體才可以接收MOM消息。這樣,通信實體就能夠接收發(fā)自其他通信實體的MOM消息。同時,SLEE初始化過程還把其他SLEE節(jié)點的SLEE ID及與之對應(yīng)的ED的MID和PID、所有網(wǎng)絡(luò)協(xié)議棧的ID及給所有網(wǎng)絡(luò)協(xié)議棧分配的MID和PID讀入內(nèi)存,并分別建立SLEE ID與該SLEE的ED的MID和PID、網(wǎng)絡(luò)協(xié)議棧的ID與為其分配的MID和PID相互之間的對應(yīng)關(guān)系。這樣,通過ID就可以查到與相應(yīng)通信實體進行通信的MOM地址。
建立一個業(yè)務(wù)會話(Session)過程是從SLEE平臺上某個SLEE節(jié)點的ED收到網(wǎng)絡(luò)協(xié)議棧發(fā)出的一條業(yè)務(wù)會話初始事件消息開始的,業(yè)務(wù)會話初始事件消息中攜帶業(yè)務(wù)的類型標(biāo)識。網(wǎng)絡(luò)協(xié)議棧隨機地把業(yè)務(wù)會話初始事件消息發(fā)送至任意一個SLEE節(jié)點。
SLEE節(jié)點收到業(yè)務(wù)會話初始事件消息后,如果該業(yè)務(wù)類型部署在接收到業(yè)務(wù)會話初始事件消息的SLEE節(jié)點上,以下的處理過程與前面所述的非分布式SLEE結(jié)構(gòu)中業(yè)務(wù)會話初始事件建立的過程基本相同,同時需要將該業(yè)務(wù)實例設(shè)置為當(dāng)前業(yè)務(wù)會話的主業(yè)務(wù)實例。
如果該業(yè)務(wù)類型沒有部署在接收業(yè)務(wù)會話初始事件消息的ED所在的SLEE節(jié)點上,每個SLEE節(jié)點都維護了一個部署所有業(yè)務(wù)類型時,每個業(yè)務(wù)類型所在的SLEE節(jié)點的SLEE ID關(guān)系表,該SLEE節(jié)點會找到當(dāng)前業(yè)務(wù)類型所在的SLEE節(jié)點的SLEE ID,通過SLEE節(jié)點的SLEE ID找到其ED的MOM地址,即該ED的MID和PID。接收到業(yè)務(wù)會話初始事件消息的SLEE節(jié)點的ED構(gòu)造出一條用于ED間通信的MOM消息,將業(yè)務(wù)會話初始事件消息封裝在MOM消息中,發(fā)送至部署了該業(yè)務(wù)類型的目標(biāo)SLEE節(jié)點的ED。目標(biāo)SLEE節(jié)點的ED收到該業(yè)務(wù)會話初始事件消息后,其處理過程與以上所述過程基本相同。
Session ID包含SLEE ID和CallID,其中SLEE ID為發(fā)起該業(yè)務(wù)會話過程的SLEE節(jié)點的標(biāo)識,Call ID為本次呼叫(本次業(yè)務(wù)實例間的分布調(diào)用)的標(biāo)識,用于組織數(shù)據(jù),實現(xiàn)業(yè)務(wù)會話過程。
Instance ID包含SLEE ID、Self ID和ServiceKey,SLEE ID為該業(yè)務(wù)實例所運行的SLEE節(jié)點的標(biāo)識,Self ID為不同業(yè)務(wù)實例的標(biāo)識,ServiceKey為該業(yè)務(wù)實例所屬業(yè)務(wù)類型的標(biāo)識。
如果是業(yè)務(wù)會話過程中的事件,ED根據(jù)業(yè)務(wù)會話過程事件消息中攜帶的Session ID判斷該業(yè)務(wù)類型是否部署于其所在的SLEE節(jié)點上,如果是,ED通過業(yè)務(wù)管理器在業(yè)務(wù)類型實例池中找到相應(yīng)的激活中的業(yè)務(wù)實例;否則,ED所在的SLEE節(jié)點根據(jù)Session ID中包含的SLEE ID找到其ED的MOM地址,即該ED的MID和PID。接收到業(yè)務(wù)會話過程事件消息的SLEE節(jié)點的ED構(gòu)造出一條用于ED間通信的MOM消息,將業(yè)務(wù)會話過程事件消息封裝在MOM消息中,發(fā)送至部署了該業(yè)務(wù)類型的目標(biāo)SLEE節(jié)點的ED。目標(biāo)SLEE節(jié)點的ED收到該業(yè)務(wù)會話過程事件消息后,其處理過程與以上所述過程基本相同。
業(yè)務(wù)實例與其他業(yè)務(wù)類型的業(yè)務(wù)實例進行通信時,業(yè)務(wù)實例將業(yè)務(wù)實例事件消息發(fā)送至ED。ED根據(jù)業(yè)務(wù)實例事件消息中攜帶的Session ID判斷該業(yè)務(wù)類型是否部署于其所在的SLEE節(jié)點上,如果是,ED根據(jù)業(yè)務(wù)實例事件消息將事件處理信息發(fā)送至相應(yīng)的業(yè)務(wù)實例,使該業(yè)務(wù)實例去處理相應(yīng)的事件;否則,ED所在的SLEE節(jié)點根據(jù)Session ID中包含的SLEE ID找到其ED的MOM地址,即該ED的MID和PID。接收到業(yè)務(wù)實例事件消息的SLEE節(jié)點的ED構(gòu)造出一條用于ED間通信的MOM消息,將業(yè)務(wù)實例事件消息封裝在MOM消息中,發(fā)送至部署了該業(yè)務(wù)類型的目標(biāo)SLEE節(jié)點的ED。目標(biāo)SLEE節(jié)點的ED收到該業(yè)務(wù)實例事件消息后,其處理過程與以上所述過程基本相同。
實現(xiàn)分布式SLEE需要考慮的問題有業(yè)務(wù)間屏蔽物理位置、網(wǎng)絡(luò)協(xié)議棧屏蔽業(yè)務(wù)物理位置和數(shù)據(jù)共享。
業(yè)務(wù)間屏蔽物理位置是指在業(yè)務(wù)A調(diào)用業(yè)務(wù)B時,業(yè)務(wù)A不需要知道業(yè)務(wù)B具體的物理位置,只需相互調(diào)用的接口是統(tǒng)一的即可。
網(wǎng)絡(luò)協(xié)議棧屏蔽業(yè)務(wù)物理位置是指網(wǎng)絡(luò)協(xié)議棧通過向SLEE節(jié)點發(fā)送業(yè)務(wù)會話初始事件消息啟動一個業(yè)務(wù)實例,網(wǎng)絡(luò)協(xié)議棧不需要知道該業(yè)務(wù)實例具體的物理位置,只需將業(yè)務(wù)會話初始事件消息發(fā)送至任意一個SLEE節(jié)點,由ED轉(zhuǎn)發(fā)業(yè)務(wù)會話初始事件消息即可。
一個業(yè)務(wù)會話過程除了主業(yè)務(wù)實例外,可以包含多個其他業(yè)務(wù)類型的業(yè)務(wù)實例,在業(yè)務(wù)會話過程中會出現(xiàn)業(yè)務(wù)實例間相互調(diào)用的情況,這就是業(yè)務(wù)實例間的分布調(diào)用。業(yè)務(wù)實例間的分布調(diào)用是通過分布式的SLEE節(jié)點的ED轉(zhuǎn)發(fā)MOM消息來實現(xiàn)的。發(fā)起調(diào)用的業(yè)務(wù)實例將業(yè)務(wù)實例事件消息發(fā)送至其所在節(jié)點的ED。ED根據(jù)業(yè)務(wù)實例事件消息將事件處理信息發(fā)送至目標(biāo)業(yè)務(wù)實例,使該業(yè)務(wù)實例進行相關(guān)操作。
發(fā)起調(diào)用的業(yè)務(wù)實例所在的SLEE節(jié)點為此次調(diào)用分配Event ID,被調(diào)用的業(yè)務(wù)實例通過Event ID獲知相關(guān)操作。在消息的前端有Event ID、Session ID、發(fā)起調(diào)用方業(yè)務(wù)實例標(biāo)識(Source Instance ID)和被調(diào)用目標(biāo)業(yè)務(wù)實例標(biāo)識(Destination Instance ID)。Source Instance ID為發(fā)起業(yè)務(wù)實例間調(diào)用的業(yè)務(wù)實例標(biāo)識,Destination Instance ID為被調(diào)用的目標(biāo)業(yè)務(wù)實例標(biāo)識。Session ID和Instance ID都是可序列化的類,即可在網(wǎng)絡(luò)上進行傳輸。
當(dāng)ED處理業(yè)務(wù)實例間的分布調(diào)用時,ED根據(jù)Destination Instance ID中的SLEE ID處理業(yè)務(wù)實例間分布調(diào)用的MOM消息時,如果SLEE ID就是自身的SLEE ID,則被調(diào)用的業(yè)務(wù)實例就運行在該SLEE節(jié)點上,ED只需找到相應(yīng)的業(yè)務(wù)實例,調(diào)用該業(yè)務(wù)實例的事件處理接口即可;如果SLEEID不是自身的SLEE ID,ED能夠根據(jù)其所在SLEE節(jié)點的初始化配置文件查找到相應(yīng)業(yè)務(wù)實例所在的SLEE節(jié)點的SLEE ID。ED構(gòu)造一條用于ED間通信的MOM消息,把業(yè)務(wù)實例間的分布調(diào)用消息封裝在該MOM消息中,通過同步MOM消息發(fā)送至目標(biāo)SLEE ID的ED,實現(xiàn)業(yè)務(wù)實例間的分布調(diào)用。目標(biāo)SLEE ID的ED收到該MOM消息后,處理步驟與上述同一SLEE節(jié)點間的業(yè)務(wù)實例調(diào)用過程基本相同。
一次業(yè)務(wù)會話(呼叫)過程會生成大量的數(shù)據(jù),統(tǒng)稱這些數(shù)據(jù)為業(yè)務(wù)會話上下文(Session Context)數(shù)據(jù),用于集中存儲業(yè)務(wù)會話過程中有關(guān)屬性和參數(shù)的數(shù)據(jù),參與該次業(yè)務(wù)會話的業(yè)務(wù)實例會訪問和修改這些SessionContext數(shù)據(jù)。由于業(yè)務(wù)實例對Session Context數(shù)據(jù)的訪問和修改會比較頻繁,為保證訪問效率和Session Context數(shù)據(jù)的安全性及完整性,采用集中方式對Session Context數(shù)據(jù)進行存儲和管理。存儲的位置為發(fā)起一次業(yè)務(wù)會話過程的主業(yè)務(wù)實例(Main Instance)所運行的SLEE節(jié)點。對于參與一次業(yè)務(wù)會話的多個業(yè)務(wù)實例來說,它們在物理位置上可以是分布的,因此它們訪問相應(yīng)的Session Context數(shù)據(jù)的方式也是分布的。但是Session Context數(shù)據(jù)存放的物理位置應(yīng)該對所有的業(yè)務(wù)實例都是透明的,也就是說,業(yè)務(wù)實例訪問Session Context數(shù)據(jù)的接口應(yīng)該是統(tǒng)一的,即Session Context數(shù)據(jù)的物理位置對業(yè)務(wù)實例來說是被屏蔽的,以此來實現(xiàn)Session Context數(shù)據(jù)的共享。
對于一次業(yè)務(wù)會話過程中生成的大量Session Context數(shù)據(jù),參與該業(yè)務(wù)會話的業(yè)務(wù)實例會在業(yè)務(wù)會話過程中進行頻繁訪問和修改。為了保證數(shù)據(jù)的完整性和安全性,采用集中方式對這些Session Context數(shù)據(jù)進行管理和存儲,存儲的位置是發(fā)起一次業(yè)務(wù)會話過程的主業(yè)務(wù)實例所運行的SLEE節(jié)點,即在Session ID中包含的SLEE ID所標(biāo)識的SLEE節(jié)點。因為參與一次業(yè)務(wù)會話過程的多個業(yè)務(wù)實例可能分布在不同的SLEE節(jié)點上,必須為所有業(yè)務(wù)實例提供一個訪問Session Context數(shù)據(jù)的統(tǒng)一接口,使Session Context數(shù)據(jù)存儲位置在業(yè)務(wù)實例訪問Session Context數(shù)據(jù)時是被屏蔽的。
在業(yè)務(wù)實例訪問Session Context數(shù)據(jù)時,業(yè)務(wù)實例會與主業(yè)務(wù)實例位于不同的SLEE節(jié)點上,因此將與主業(yè)務(wù)實例位于同一SLEE節(jié)點的業(yè)務(wù)實例稱為本地業(yè)務(wù)實例,相對應(yīng)地,與主業(yè)務(wù)實例位于不同SLEE節(jié)點的業(yè)務(wù)實例稱為遠(yuǎn)程業(yè)務(wù)實例。
圖5為分布式SLEE Session Context數(shù)據(jù)共享示意圖,如圖5所示,如果業(yè)務(wù)實例A 501為主業(yè)務(wù)實例,則Session Context數(shù)據(jù)存儲于主業(yè)務(wù)實例501所在的分布式SLEE節(jié)點A 401。業(yè)務(wù)實例A 501與業(yè)務(wù)實例B 502為同屬于一個會話過程的不同業(yè)務(wù)實例。針對所有業(yè)務(wù)實例訪問SessionContext數(shù)據(jù)的需求,提供一個統(tǒng)一的Session Context數(shù)據(jù)訪問接口(DataAccess)503,數(shù)據(jù)訪問接口503中定義了業(yè)務(wù)實例訪問Session Context數(shù)據(jù)的所有操作,例如訪問、修改等操作。數(shù)據(jù)訪問接口503提供兩個不同的類來實現(xiàn)數(shù)據(jù)訪問,一個是用于訪問本地Session Context數(shù)據(jù)的本地數(shù)據(jù)訪問工具(LocalDataAccessImpl)類504,另一個是用于訪問遠(yuǎn)程SessionContext數(shù)據(jù)的遠(yuǎn)程數(shù)據(jù)訪問工具(RemoteDataAccessImpl)類505。SLEE節(jié)點A 401還需要實現(xiàn)一個遠(yuǎn)程數(shù)據(jù)代理(RemoteDataAgent)類506,該類作為位于SLEE節(jié)點B 402上的遠(yuǎn)程業(yè)務(wù)實例B 502訪問SLEE節(jié)點A 401的Session Context數(shù)據(jù)的代理,它能夠接收遠(yuǎn)程數(shù)據(jù)訪問的同步MOM消息,并解析MOM消息,把每個遠(yuǎn)程數(shù)據(jù)訪問的MOM消息轉(zhuǎn)換成不同的調(diào)用。只有LocalDataAccessImpl類504能夠訪問本地Session Context數(shù)據(jù)中心,因此RemoteDataAgent類506在初始化過程會生成一個LocalDataAccessImpl類508的引用,通過調(diào)用相應(yīng)的LocalDataAccessImpl類508中的操作訪問本地Session Context數(shù)據(jù),并通過同步MOM消息的返回結(jié)果至發(fā)起SessionContext數(shù)據(jù)訪問調(diào)用的遠(yuǎn)程業(yè)務(wù)實例。
每個SLEE節(jié)點中的RemoteDataAgent類都需要接收MOM消息,因此也需要為RemoteDataAgent類分配MOM地址,即一對唯一的MID和PID。該MOM地址也是在SLEE節(jié)點初始化過程中在初始配置文件中進行配置的,每個RemoteDataAgent類的MOM地址與其所屬的SLEE ID進行關(guān)聯(lián)。SLEE節(jié)點在啟動的時候從初始配置文件中讀出并存儲所有SLEE節(jié)點的RemoteDataAgent類的MOM地址。
LocalDataAccessImpl類的實現(xiàn)可以通過調(diào)用本地API的方式直接去訪問Session Context數(shù)據(jù)中心。
對于RemoteDataAgent類的實現(xiàn)可以通過對每個需要實現(xiàn)的數(shù)據(jù)訪問接口構(gòu)造不同的MOM消息,把操作類型及所攜帶的參數(shù)封裝到MOM消息中。RemoteDataAccessImpl類根據(jù)調(diào)用數(shù)據(jù)訪問接口的業(yè)務(wù)實例Instance ID,能夠獲知業(yè)務(wù)實例所屬的Session ID,通過Session ID可以獲知SessionContext數(shù)據(jù)所在的SLEE節(jié)點的SLEE ID,通過該SLEE節(jié)點的SLEE ID可以獲知RemoteDataAgent類的MOM地址,向該MOM地址發(fā)送同步MOM消息,解析同步MOM消息的返回結(jié)果就是本次訪問Session Context數(shù)據(jù)獲得的結(jié)果。
在初始化過程中,將DataAccess與相應(yīng)的類對應(yīng),如果該DataAccess與主業(yè)務(wù)實例在同一個SLEE節(jié)點上,則將DataAccess與本地類相對應(yīng);如果DataAccess與主業(yè)務(wù)實例不在同一個SLEE節(jié)點上,則將DataAccess與遠(yuǎn)程類相對應(yīng)。DataAccess為業(yè)務(wù)實例訪問Session Context數(shù)據(jù)提供統(tǒng)一接口,使Session Context數(shù)據(jù)的存儲位置對于訪問其的業(yè)務(wù)實例而言是透明的。
本地業(yè)務(wù)實例訪問Session Context數(shù)據(jù)時,因為DataAccess與本地類相對應(yīng),所以DataAccess 自動調(diào)用LocalDataAccessImpl類,LocalDataAccessImpl類訪問Session Context數(shù)據(jù)并對其進行相關(guān)操作,然后將操作結(jié)果返回給該本地業(yè)務(wù)實例。
遠(yuǎn)程業(yè)務(wù)實例訪問Session Context數(shù)據(jù)時,因為DataAccess與遠(yuǎn)程類相對應(yīng),所以DataAccess自動調(diào)用RemoteDataAccessImpl類,該RemoteDataAccessImpl類根據(jù)初始化配置文件向主業(yè)務(wù)實例所在SLEE節(jié)點的RemoteDataAgent類發(fā)送同步MOM消息,該MOM消息中攜帶對SessionContext數(shù)據(jù)的操作類型及該操作類型所對應(yīng)的參數(shù),RemoteDataAgent類收到MOM消息后,對MOM消息進行解析,然后調(diào)用其初始化過程中生成的LocalDataAccessImpl類,該LocalDataAccessImpl類訪問Session Context數(shù)據(jù)并對其進行相關(guān)操作,然后將操作結(jié)果返回給RemoteDataAgent類,RemoteDataAgent類將操作結(jié)果通過同步MOM消息返回給遠(yuǎn)程業(yè)務(wù)實例所在SLEE節(jié)點的RemoteDataAccessImpl類,最后RemoteDataAccessImpl類將操作結(jié)果返回給遠(yuǎn)程業(yè)務(wù)實例。
總之,以上所述僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。
權(quán)利要求
1.一種業(yè)務(wù)邏輯運行環(huán)境實現(xiàn)的方法,其特征在于該方法包含以下步驟A、通信實體向事件調(diào)度器發(fā)送消息中間件事件消息;B、事件調(diào)度器根據(jù)收到的消息中間件事件消息,在業(yè)務(wù)類型池中獲取相應(yīng)的業(yè)務(wù)實例,并控制所獲取的業(yè)務(wù)實例完成相應(yīng)操作。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于所述通信實體為網(wǎng)絡(luò)協(xié)議棧;所述步驟A為網(wǎng)絡(luò)協(xié)議棧向事件調(diào)度器發(fā)送消息中間件業(yè)務(wù)會話初始事件消息;所述步驟B為事件調(diào)度器根據(jù)收到的消息中間件業(yè)務(wù)會話初始事件消息,在業(yè)務(wù)類型池中獲取空閑的業(yè)務(wù)實例,并將該業(yè)務(wù)實例激活,然后控制所獲取的業(yè)務(wù)實例完成相應(yīng)操作。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于所述通信實體為網(wǎng)絡(luò)協(xié)議棧;所述步驟A為網(wǎng)絡(luò)協(xié)議棧向事件調(diào)度器發(fā)送消息中間件業(yè)務(wù)會話過程事件消息;所述步驟B為事件調(diào)度器根據(jù)收到的消息中間件業(yè)務(wù)會話過程事件消息,在業(yè)務(wù)類型池中獲取相應(yīng)的激活的業(yè)務(wù)實例,并控制所獲取的業(yè)務(wù)實例完成相應(yīng)操作。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于所述通信實體為業(yè)務(wù)實例;所述步驟A為業(yè)務(wù)實例向事件調(diào)度器發(fā)送消息中間件業(yè)務(wù)實例事件消息;所述步驟B為事件調(diào)度器根據(jù)收到的消息中間件業(yè)務(wù)實例事件消息,在業(yè)務(wù)類型池中獲取相應(yīng)的目標(biāo)業(yè)務(wù)實例,事件調(diào)度器根據(jù)業(yè)務(wù)實例事件消息向目標(biāo)業(yè)務(wù)實例發(fā)送事件處理信息,控制目標(biāo)業(yè)務(wù)實例完成相應(yīng)操作。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于對于分布式業(yè)務(wù)邏輯運行環(huán)境結(jié)構(gòu),所述步驟B進一步包括事件調(diào)度器收到事件消息后,判斷相應(yīng)的業(yè)務(wù)實例是否位于其所在的業(yè)務(wù)邏輯運行環(huán)境節(jié)點上,如果是,在該業(yè)務(wù)邏輯運行環(huán)境節(jié)點上的業(yè)務(wù)類型池中獲取相應(yīng)的業(yè)務(wù)實例;否則,該事件調(diào)度器所在的業(yè)務(wù)邏輯運行環(huán)境節(jié)點根據(jù)初始化配置文件查找到相應(yīng)的目標(biāo)業(yè)務(wù)實例所在的目標(biāo)業(yè)務(wù)邏輯運行環(huán)境節(jié)點,并獲取目標(biāo)業(yè)務(wù)邏輯運行環(huán)境節(jié)點上目標(biāo)事件調(diào)度器的消息中間件地址,該事件調(diào)度器向目標(biāo)事件調(diào)度器發(fā)送消息中間件格式的消息,目標(biāo)事件調(diào)度器獲取相應(yīng)的業(yè)務(wù)實例。
6.根據(jù)權(quán)利要求2所述的方法,其特征在于,對于分布式業(yè)務(wù)邏輯運行環(huán)境結(jié)構(gòu),所述步驟B進一步包括業(yè)務(wù)實例所在邏輯運行環(huán)境節(jié)點將該業(yè)務(wù)實例置為主業(yè)務(wù)實例。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,對于分布式業(yè)務(wù)邏輯運行環(huán)境結(jié)構(gòu),該方法進一步包含以下步驟D、業(yè)務(wù)實例調(diào)用數(shù)據(jù)訪問接口;E、數(shù)據(jù)訪問接口通過調(diào)用本地數(shù)據(jù)訪問工具訪問業(yè)務(wù)會話上下文數(shù)據(jù),并對業(yè)務(wù)會話上下文數(shù)據(jù)進行操作;F、本地數(shù)據(jù)訪問工具將對業(yè)務(wù)會話上下文數(shù)據(jù)的操作結(jié)果返回給業(yè)務(wù)實例。
8.根據(jù)權(quán)利要求6或7所述的方法,其特征在于,所述業(yè)務(wù)會話上下文數(shù)據(jù)存儲于主業(yè)務(wù)實例所在的業(yè)務(wù)邏輯運行環(huán)境節(jié)點。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,訪問業(yè)務(wù)會話上下文數(shù)據(jù)的業(yè)務(wù)實例為遠(yuǎn)程業(yè)務(wù)實例時,該方法進一步包括以下步驟E1、數(shù)據(jù)訪問接口調(diào)用遠(yuǎn)程數(shù)據(jù)訪問工具,遠(yuǎn)程數(shù)據(jù)訪問工具向主業(yè)務(wù)實例所在業(yè)務(wù)邏輯運行環(huán)境節(jié)的遠(yuǎn)程數(shù)據(jù)代理發(fā)送消息中間件消息,遠(yuǎn)程數(shù)據(jù)代理收到消息中間件消息后,調(diào)用本地數(shù)據(jù)訪問工具訪問業(yè)務(wù)會話上下文數(shù)據(jù),并對業(yè)務(wù)會話上下文數(shù)據(jù)進行操作;F1、本地數(shù)據(jù)訪問工具將對業(yè)務(wù)會話上下文數(shù)據(jù)的操作結(jié)果返回給所述遠(yuǎn)程數(shù)據(jù)代理,所述遠(yuǎn)程數(shù)據(jù)代理將對業(yè)務(wù)會話上下文數(shù)據(jù)的操作結(jié)果返回給所述遠(yuǎn)程數(shù)據(jù)訪問工具,所述遠(yuǎn)程數(shù)據(jù)訪問工具將對業(yè)務(wù)會話上下文數(shù)據(jù)的操作結(jié)果返回給遠(yuǎn)程業(yè)務(wù)實例。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,在初始化過程中生成所述本地數(shù)據(jù)訪問工具和遠(yuǎn)程數(shù)據(jù)訪問工具。
11.根據(jù)權(quán)利要求2所述的方法,其特征在于,對于分布式業(yè)務(wù)邏輯運行環(huán)境結(jié)構(gòu),所述步驟A進一步包括網(wǎng)絡(luò)協(xié)議棧向任意業(yè)務(wù)邏輯運行環(huán)境節(jié)點上的事件調(diào)度器發(fā)送業(yè)務(wù)會話初始事件消息。
全文摘要
本發(fā)明公開了一種業(yè)務(wù)邏輯運行環(huán)境實現(xiàn)的方法,涉及電信業(yè)務(wù)運行環(huán)境領(lǐng)域,該方法包含通信實體向事件調(diào)度器發(fā)送消息中間件事件消息;事件調(diào)度器根據(jù)收到的消息中間件事件消息,在業(yè)務(wù)類型池中獲取相應(yīng)的業(yè)務(wù)實例,并控制所獲取的業(yè)務(wù)實例完成相應(yīng)操作。在分布式業(yè)務(wù)邏輯運行環(huán)境結(jié)構(gòu)中,一次會話過程中的業(yè)務(wù)實例能夠共享該會話過程中生成的業(yè)務(wù)會話上下文數(shù)據(jù),業(yè)務(wù)實例可對其進行相應(yīng)操作。通過消息中間件技術(shù)為業(yè)務(wù)邏輯運行環(huán)境提供通用的通訊平臺。本發(fā)明通過消息中間件技術(shù)實現(xiàn)了不依賴于應(yīng)用程序服務(wù)器平臺的業(yè)務(wù)邏輯運行環(huán)境運行機制,并且通過消息中間件技術(shù)可以實現(xiàn)分布式業(yè)務(wù)邏輯運行環(huán)境節(jié)點間的數(shù)據(jù)共享。
文檔編號H04Q3/545GK1536818SQ0310949
公開日2004年10月13日 申請日期2003年4月10日 優(yōu)先權(quán)日2003年4月10日
發(fā)明者梁笑凱, 廖江波 申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1