可配置可擴(kuò)展訂閱研究
時間:2022-10-25 07:58:00
導(dǎo)語:可配置可擴(kuò)展訂閱研究一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
摘要:分析了當(dāng)前訂閱系統(tǒng)的主要類型和存在的問題?;谟嗛喯到y(tǒng)的主要設(shè)計模型,采用分層與插件相結(jié)合的動態(tài)體系結(jié)構(gòu)設(shè)計方法,設(shè)計和實現(xiàn)了可配置和可擴(kuò)展的訂閱系統(tǒng)ACT-PS(ACT-Publish/SubscribeSystem),支持基于應(yīng)用需求的配置和擴(kuò)展。在具體的電子政務(wù)數(shù)據(jù)交換系統(tǒng)當(dāng)中的配置運行表明,ACT-PS系統(tǒng)為通過可配置和可擴(kuò)展的方式建立訂閱系統(tǒng)提供了新的途徑。
關(guān)鍵詞:可配置;訂閱;可擴(kuò)展;體系結(jié)構(gòu)
訂閱(Publish/Subscribe,PS)通信模式因其反映了廣域網(wǎng)絡(luò)中應(yīng)用系統(tǒng)間動態(tài)和松耦合通信的本質(zhì)特征,成為當(dāng)前研究熱點。訂閱系統(tǒng)的應(yīng)用分布在數(shù)據(jù)交換、工作流[1]、協(xié)同工作、移動應(yīng)用等多個領(lǐng)域[2]。雖然目前基于訂閱服務(wù)的中間件研究有了一些實驗和商業(yè)系統(tǒng),但是這些系統(tǒng)采用的配置和擴(kuò)展模式已經(jīng)不能很好地適應(yīng)快速變化的應(yīng)用需求。針對這一問題,本文研究并設(shè)計了一種新的訂閱中間件系統(tǒng)ACT-PS,解決了基于特定應(yīng)用領(lǐng)域需求配置訂閱服務(wù)系統(tǒng)的問題。
1相關(guān)工作
目前訂閱中間件系統(tǒng)主要有三種類型,即通用商業(yè)系統(tǒng)、專用系統(tǒng)和微內(nèi)核系統(tǒng)。通用商業(yè)系統(tǒng)中面向?qū)ο笸ㄖ?wù)系統(tǒng)CORBANotificationService是最常見的一種。這些系統(tǒng)通常提供了比較全面的功能,傳輸效率和可靠性高。但其對訂閱的事件模型和訂閱模型等均作出了嚴(yán)格的限制,很難基于具體應(yīng)用場景進(jìn)行擴(kuò)展和配置[3]。專用訂閱系統(tǒng)則采用了面向需求建立PS應(yīng)用的策略。這種系統(tǒng)解決了各個領(lǐng)域中具體的需求,實現(xiàn)效率比較高,但很難重用,如CASSIUS[3]和YEAST系統(tǒng)。
目前流行的訂閱系統(tǒng)是通過微內(nèi)核的事件(事件具有兩種形式:消息和調(diào)用。本文特指消息)和事件路由技術(shù)將訂閱服務(wù)擴(kuò)展到廣域網(wǎng),如Elvin[4]、Gryphon[5]、Siena[6]等。這些系統(tǒng)具有特定的訂閱語言、事件模型、路由算法,以及固定的底層傳輸協(xié)議。該系統(tǒng)具有較強的可伸縮的能力,但系統(tǒng)內(nèi)部也不能進(jìn)行配置,類似于一種面向特定領(lǐng)域的系統(tǒng)。
以上系統(tǒng)在構(gòu)建面向特定領(lǐng)域的訂閱通信系統(tǒng)過程當(dāng)中存在不同程度的問題。本文采用了分層、插件和動態(tài)配置等軟件體系結(jié)構(gòu)技術(shù),設(shè)計并實現(xiàn)了一種可配置和可擴(kuò)展的訂閱系統(tǒng)ACT-PS(ACT-Publish/SubscribeSystem),提供訂閱系統(tǒng)關(guān)鍵設(shè)計模型的配置和擴(kuò)展能力,如訂閱語言、事件模型等設(shè)計模型。通過面向電子政務(wù)信息交換領(lǐng)域的系統(tǒng)應(yīng)用,表明ACT-PS能夠有效地解決當(dāng)前訂閱系統(tǒng)可配置和可擴(kuò)展性的問題,為類似系統(tǒng)的建立提供了有效的途徑。
2ACT-PS系統(tǒng)設(shè)計分析
文獻(xiàn)[7,8]分析了訂閱系統(tǒng)主要設(shè)計模型。Rosenblum[8]模型是其中較為典型的一種,它使用對象模型描述訂閱系統(tǒng)主要的參與對象;事件模型描述事件的表示方法;通知模型描述事件分發(fā)到訂閱者的方式;觀察模型描述與訂閱方式和興趣分布相關(guān)內(nèi)容;時間模型描述事件之間的因果關(guān)系和時態(tài);資源模型描述訂閱計算資源在系統(tǒng)中的分布;命名模型描述對象的定位和標(biāo)志方式。此外,目前很多附加功能和與網(wǎng)絡(luò)相關(guān)的特征已經(jīng)成為面向廣域網(wǎng)絡(luò)的訂閱系統(tǒng)的重要組成,如安全、移動、內(nèi)容過濾、事件路由等。上述對于訂閱系統(tǒng)不同的設(shè)計模型描述中,關(guān)鍵的設(shè)計模型包括:
(1)事件模型。其中最普遍的形式是主題、元組和類型[1]。為了配置和擴(kuò)展該模型,系統(tǒng)中的事件解析和構(gòu)造機(jī)制必須可擴(kuò)展。
(2)訂閱模型。訂閱描述方式主要包括自定義的訂閱語言、Xpath、類SQL語言等。訂閱信息通常描述了事件的過濾策略、事件觀察劃分和分布策略等。訂閱管理應(yīng)當(dāng)能夠?qū)Σ煌嗛喺Z言的語法和語義識別實現(xiàn)擴(kuò)展。
(3)通知模型。目前常用的通知模式包括推、拉以及兩者混合的方式。這些模式可以通過一種策略描述機(jī)制描述,通知模型的擴(kuò)展與訂閱模型類似。
(4)資源模型。應(yīng)用需求或者相關(guān)協(xié)議可能要求訂閱相關(guān)處理在服務(wù)器與客戶端之間的動態(tài)分布,或者在方客戶端與訂閱方客戶端之間分布。通過這種方式減少了服務(wù)器的負(fù)載和復(fù)雜性。因此,系統(tǒng)應(yīng)當(dāng)提供功能和協(xié)議以實現(xiàn)分布處理并進(jìn)行交互的機(jī)制。
(5)協(xié)議模型。其中包括訂閱系統(tǒng)的傳輸協(xié)議、路由協(xié)議以及附加協(xié)議的擴(kuò)展。這三種協(xié)議是不同層次的協(xié)議,在系統(tǒng)中應(yīng)當(dāng)通過分層機(jī)制實現(xiàn)這些協(xié)議的可插拔,以便擴(kuò)展和配置。
由于關(guān)鍵的設(shè)計模型決定了訂閱中間件系統(tǒng)的主要的設(shè)計特征。ACT-PS的設(shè)計采用了針對少數(shù)關(guān)鍵設(shè)計模型和成熟應(yīng)用實例進(jìn)行擴(kuò)展和配置的策略,避免了多設(shè)計模型之間的隱含沖突[9]所帶來的高復(fù)雜性計算問題。
3ACT-PS體系結(jié)構(gòu)
3.1概念體系結(jié)構(gòu)
ACT-PS中間件系統(tǒng)邏輯上可以劃分為消息傳輸網(wǎng)絡(luò)(MTN)和事件網(wǎng)絡(luò)(EDN)兩層層疊網(wǎng)絡(luò),如圖1所示。
層疊網(wǎng)絡(luò)的設(shè)計優(yōu)化了系統(tǒng)的可擴(kuò)展特性。MTN提供了消息傳輸服務(wù)并屏蔽了異構(gòu)網(wǎng)絡(luò)類型和協(xié)議。EDN在MTN之上實現(xiàn)訂閱通信服務(wù)。EDN中的對象及其交互過程如圖2所示。其中:①者向EDN事件;②訂閱者向EDN訂閱事件;③EDN匹配事件和訂閱,并選擇目的訂閱者集合;④EDN完成事件的路由轉(zhuǎn)發(fā);⑤訂閱者的接入通知訂閱者。事件的體系結(jié)構(gòu)是訂閱通信處理的關(guān)鍵。設(shè)計中將其分為五層結(jié)構(gòu),如圖3所示。
網(wǎng)絡(luò)基礎(chǔ)設(shè)施和傳輸服務(wù)層構(gòu)成了MTN。核心層主要提供基本的訂閱處理服務(wù),如消息路由、事件匹配等。擴(kuò)展服務(wù)層提供了基于核心層實現(xiàn)的訂閱系統(tǒng)的附加協(xié)議服務(wù)的擴(kuò)展機(jī)制,如內(nèi)容過濾、安全和移動協(xié)議等。服務(wù)表示層支持對ACT-PS事件的可編程或GUI操作,滿足中間件的可用性。管理工具提供了體系結(jié)構(gòu)組成部分的配置和管理功能,滿足中間件可管理性的要求。安全控制體系主要處理在訂閱通信過程中各個層次的安全機(jī)制。事件和訂閱客戶端以及基于相關(guān)協(xié)議的連接構(gòu)成了訂閱系統(tǒng),如圖4所示。訂閱客戶端封裝了事件服務(wù)器的部分處理邏輯,根據(jù)應(yīng)用場景能夠有效地實現(xiàn)相關(guān)計算的分配和分布。后續(xù)主要介紹事件體系結(jié)構(gòu)各個組成部分的設(shè)計。
3.2管理工具
管理工具的內(nèi)部組成結(jié)構(gòu)如圖5所示。其中,體系結(jié)構(gòu)管理器提供了整個系統(tǒng)動態(tài)部署時和運行時的管理功能,負(fù)責(zé)不同管理功能插件的更新、注銷、激活和鈍化,是整個管理工具的核心。通過體系結(jié)構(gòu)管理器,訂閱系統(tǒng)能夠?qū)崿F(xiàn)對已有功能和擴(kuò)展配置功能的有效管理。
插件是實現(xiàn)了ACT-PS中一種功能的模塊。每個插件具有一個配置文件,描述了其功能和接口信息。插件注冊庫記錄了已注冊插件的相關(guān)信息及其相互依賴關(guān)系。服務(wù)注冊器負(fù)責(zé)檢查系統(tǒng)中新增加的插件,并將其注冊到插件注冊庫。服務(wù)裝載器負(fù)責(zé)根據(jù)插件配置文件裝載和初始化、實例化插件。管理工具在部署時通過體系結(jié)構(gòu)管理器將已有插件注冊;在運行時,根據(jù)系統(tǒng)配置文件中的信息,如環(huán)境變量、插件裝載順序等,確定系統(tǒng)運行的流程并查找和加載相應(yīng)的插件。
3.3訂閱核心層
本文原文
訂閱核心層主要是擴(kuò)展和配置對象。其內(nèi)部結(jié)構(gòu)和處理流程如圖6所示。
消息解析和消息構(gòu)造模塊負(fù)責(zé)與底層消息基礎(chǔ)傳輸設(shè)施交互,提供消息報文的解析和構(gòu)造服務(wù)。通過配置和擴(kuò)展該模塊可以實現(xiàn)對多種事件模型的擴(kuò)展。事件隊列用于緩存到達(dá)的事件。管理器從事件隊列中獲得當(dāng)前事件,并進(jìn)行兩方面處理:①適配,解決異構(gòu)事件模型的語義兼容性問題;②匹配,即將事件發(fā)送給訂閱管理器進(jìn)行匹配并獲得結(jié)果。
訂閱管理器是核心層中的主要部件。它負(fù)責(zé)處理訂閱事件的解析、注冊、退訂、匹配、查詢、訂閱信息庫的管理等。訂閱信息庫保存并提供對訂閱信息的增、刪、改、查的操作接口。訂閱管理和訂閱信息庫與訂閱系統(tǒng)的訂閱模型相關(guān)聯(lián),實現(xiàn)了對不同訂閱語言及其語義判定的配置和擴(kuò)展,如類SQL和Xpath訂閱語言。通過改變訂閱管理器的配置可以完成匹配算法的擴(kuò)展。
路由管理器接收帶有目的地址的事件,然后由系統(tǒng)配置信息中獲得相關(guān)的路由協(xié)議和算法,計算下一跳的地址。通知管理器接收路由管理器處理完畢的事件,然后由系統(tǒng)配置信息中獲得當(dāng)前的通知策略,如推數(shù)據(jù)或者拉數(shù)據(jù),并將構(gòu)造完成的通知報文加入通知隊列。消息構(gòu)造模塊將通知構(gòu)造為傳輸層格式報文,完成事件在核心層的處理過程。
核心層流程舉例如下:消息解析將傳輸層報文解析為當(dāng)前事件模型結(jié)構(gòu),并構(gòu)造上下文信息;管理首先進(jìn)行相應(yīng)的適配,例如擴(kuò)展基于主題模型支持類型屬性,然后調(diào)用訂閱管理,基于訂閱信息庫中已注冊訂閱信息匹配該事件目的地址;路由管理器基于事件的目的地址計算路由;通知管理基于當(dāng)前通知策略,將事件加入相應(yīng)的通知隊列;消息構(gòu)造將事件及其上下文信息構(gòu)造為報文交付消息傳輸層,如果是訂閱消息,則訂閱管理將其加入信息庫;或者調(diào)用路由管理將其路由到目的服務(wù)器。
3.4擴(kuò)展服務(wù)層
擴(kuò)展服務(wù)層主要功能在于基于訂閱核心層配置和擴(kuò)展附加功能和協(xié)議,如圖7所示。其中協(xié)議描述XML文件記錄了附加功能和協(xié)議的需求,體系結(jié)構(gòu)管理器基于該描述文件,選擇裝載相應(yīng)的功能插件進(jìn)行配置和擴(kuò)展。協(xié)議描述為一組原語消息及其序列關(guān)系。每個協(xié)議由一個功能插件處理,接收訂閱核心層對該協(xié)議的請求并作出響應(yīng)??刹灏蔚纳蠈討?yīng)用服務(wù)則基于插件功能實現(xiàn)。
3.5ACT-PS客戶端
ACT-PS客戶端的主要作用是支持異構(gòu)應(yīng)用系統(tǒng)接入ACT-PS中間件系統(tǒng)。它由消息和協(xié)議適配器以及消息傳輸服務(wù)組成,如圖8所示。消息適配主要解決上層應(yīng)用與ACT-PS系統(tǒng)之間消息格式的轉(zhuǎn)換問題,如事件模型和訂閱描述方式。協(xié)議適配主要解決上層應(yīng)用系統(tǒng)與ACT-PS系統(tǒng)交互的部分協(xié)議處理,不同的協(xié)議適配可以調(diào)整客戶端和事件服務(wù)器端之間的協(xié)議處理分布。如由客戶端處理部分的事件匹配或者路由操作。消息傳輸服務(wù)實現(xiàn)了客戶端與事件網(wǎng)絡(luò)的可靠消息發(fā)送和接收。這種結(jié)構(gòu)提供了資源模型的擴(kuò)展和配置機(jī)制。此外,動態(tài)配置的客戶端實現(xiàn)訂閱處理的動態(tài)分布,如集中式或分布式結(jié)構(gòu)的擴(kuò)展。
一個簡單客戶端的事件處理流程描述如下:在一般數(shù)據(jù)庫應(yīng)用系統(tǒng)中,首先將其數(shù)據(jù)格式轉(zhuǎn)換為XML/SOAP的數(shù)據(jù)格式,數(shù)據(jù)內(nèi)容以事件或者訂閱的數(shù)據(jù)結(jié)構(gòu)描述,在事件中加入訂閱交互協(xié)議內(nèi)容,然后通過消息傳輸服務(wù)交付ACT-PS事件網(wǎng)絡(luò)處理訂閱通信請求并異步等待接收響應(yīng)。
3.6小結(jié)
本節(jié)基于訂閱系統(tǒng)的設(shè)計分析提出了ACT-PS系統(tǒng)的體系結(jié)構(gòu)及其主要組成。ACT-PS的主要配置和擴(kuò)展機(jī)制概括為:
(1)層疊網(wǎng)絡(luò)結(jié)構(gòu)提供了消息傳輸中間件和訂閱通信中間件組合配置、擴(kuò)展機(jī)制。
(2)事件的分層結(jié)構(gòu)和插件機(jī)制實現(xiàn)了訂閱基本處理和附加功能的松耦合交互和集成。
(3)訂閱核心層實現(xiàn)了關(guān)鍵設(shè)計模型的配置和擴(kuò)展機(jī)制。
(4)擴(kuò)展服務(wù)層實現(xiàn)了附加協(xié)議的擴(kuò)展,路由管理實現(xiàn)了路由協(xié)議的擴(kuò)展,消息傳輸網(wǎng)絡(luò)實現(xiàn)了底層網(wǎng)絡(luò)協(xié)議的擴(kuò)展。
(5)體系結(jié)構(gòu)管理器基于配置信息裝載服務(wù)和插件形成了功能擴(kuò)展框架。
4ACT-PS應(yīng)用
ACT-PS系統(tǒng)已經(jīng)在黑龍江省電子政務(wù)信息交換系統(tǒng)中運行,實現(xiàn)了異構(gòu)分布式應(yīng)用之間的訂閱信息交換。
4.1應(yīng)用場景
為了協(xié)作完成統(tǒng)一任務(wù)和共享數(shù)據(jù),分散在連接因特網(wǎng)的異構(gòu)應(yīng)用系統(tǒng)中的電子政務(wù)數(shù)據(jù)源需要進(jìn)行訂閱數(shù)據(jù)交換,如工商、稅務(wù)和公安的數(shù)據(jù)庫應(yīng)用系統(tǒng)。異構(gòu)數(shù)據(jù)源之間需要進(jìn)行訂閱松耦合異步通信和交換。為了便于更好地監(jiān)控和管理,事件網(wǎng)絡(luò)通過樹狀結(jié)構(gòu)連接。MTN集成了北京航空航天大學(xué)自主開發(fā)的SOAP消息中間件系統(tǒng)ACT-IIP,提供SOAP消息可靠、持久和異步傳輸服務(wù)。
4.2EDN主要流程和實現(xiàn)策略
EDN中的事件流程如圖9所示。者通過事件網(wǎng)絡(luò)向上事件內(nèi)容信息;訂閱者則逐層向上瀏覽已經(jīng)的內(nèi)容并基于瀏覽結(jié)果向者訂閱;者的接入根據(jù)事件訂閱者集合通知訂閱。
系統(tǒng)中的事件模型采用了基于主題的方式。使用SOAP報文作為消息的載體。路由算法利用層次拓?fù)浣Y(jié)構(gòu),采用了向上和瀏覽、向下訂閱的策略。路由、訂閱路由和瀏覽路由、通知路由的流程如圖9所示。擴(kuò)展服務(wù)附加了主題內(nèi)容的過濾機(jī)制,并實現(xiàn)了自動關(guān)鍵字過濾??蛻舳颂峁┝水悩?gòu)數(shù)據(jù)轉(zhuǎn)換適配器,支持異構(gòu)應(yīng)用數(shù)據(jù)接入。服務(wù)表示層提供了可編程API。體系結(jié)構(gòu)管理器在部署時根據(jù)系統(tǒng)配置文件config.xml確定功能的加載順序,并通過服務(wù)裝載器裝載相應(yīng)的插件;在運行時,基于插件描述文件plugin.xml更新功能插件。系統(tǒng)配置文件config.xml的主要描述內(nèi)容包括:①環(huán)境變量;②系統(tǒng)功能加載順序;③插件目錄;④命名規(guī)則;⑤各種功能資源配置信息。插件描述文件plugin.xml集中描述了插件的基本信息(如插件的名字、類型、實現(xiàn)類的類名、組合和依賴關(guān)系等)。
5結(jié)束語
ACT-PS解決了可配置和可擴(kuò)展訂閱通信的一些初步問題,并在實際數(shù)據(jù)交換系統(tǒng)中進(jìn)行了配置和擴(kuò)展實現(xiàn),為一般的訂閱中間件系統(tǒng)的建立提供了參考。目前可配置訂閱系統(tǒng)的研究仍然是一個新的領(lǐng)域,后續(xù)的工作是進(jìn)一步深入研究設(shè)計模型之間的語義沖突和訂閱系統(tǒng)安全控制問題。
參考文獻(xiàn):
[1]CUGOLAG,NITTOED,FUGGETTAA.TheJEDIevent-basedinfrastructureanditsapplicationtothedevelopmentoftheOPSSWFMS[J].IEEETransactiononSoftwareEngineering,2001,27(9):827-850.
[2]EUGSTERPT,FELLERP,GUERRAOUIR.Themanyfacesofpublish/subscribe[J].ACMComputingSurveys,2003,35(2):114-131.
[3]SOUZACRB,BASAVESWARASD,REDMILESDF.Usingeventnotificationserverstosupportapplicationawareness:InternationalConferenceonSoftwareEngineeringandApplications[C].NewYork:IEEEpress,2002:521-526.
[4]FITZPATRICKG,KAPLANS,MANSFIELDT.Supportingpublicavailabilityandaccessibilitywithelvin:experiencesandreflections[J].ComputerSupportedCooperativeWork,2002,11(3):447-474.
[5]IBMCorporation.Gryphon:publish/subscribeoverpublicnetworks[R].Yorktown:IBMTJWatsonResearchCenter,2001.
[6]CARZANIGAA,ROSENBLUMDS,WOLFAL.Designandevaluationofawide-areaeventnotificationservice[J].ACMTransactionsonComputerSystems,2001,19(3):332-383.
[7]BARRETTDJ,CLARKELA,TARRPL,etal.Aframeworkforevent-basedsoftwareintegration[J].ACMTransactionsonSoftwareEngineeringandMethodology,1996,5(4):378-421.
[8]CARZANIGAA,ROSENBLUMDS,WOLFAL.Designandevaluationofawide-areaeventnotificationservice[J].ACMTransactiononComputerSystems,2001,19(3):332-383.
[9]CARZANIGAA,ROSENBLUMDS,WOLFAL.Challengesfordistributedeventservices:scalabilityvs.expressiveness:proc.ofEDD’99[C].NewYork:IEEEPress,1999:72-77.