張冬梅 王 磊
(黑龍江八一農(nóng)墾大學(xué)信息技術(shù)學(xué)院1,黑龍江 大慶 163319;北京工業(yè)大學(xué)機(jī)電學(xué)院2,北京 100022)
近年來,大量分布式應(yīng)用的實(shí)現(xiàn)以基于發(fā)布/訂購(gòu)機(jī)制的信息按需分發(fā)作為基本的通信集成基礎(chǔ)設(shè)施,如:用戶和軟件監(jiān)控、工作流管理系統(tǒng)等。許多分布式實(shí)時(shí)應(yīng)用都需要將數(shù)據(jù)迅速高效地傳送到目的地,這就需要建立一個(gè)功能強(qiáng)大、融合多種處理機(jī)、健壯、高效的分布式實(shí)時(shí)通信網(wǎng)絡(luò)系統(tǒng)[1-2]。為此,對(duì)象管理組織(object management group,OMG)提出了數(shù)據(jù)分發(fā)服務(wù)標(biāo)準(zhǔn) (data distribution service,DDS)。該標(biāo)準(zhǔn)主要針對(duì)用戶需要提供實(shí)時(shí)信息傳送的系統(tǒng)[3]。
數(shù)據(jù)分發(fā)服務(wù)(data distribution service,DDS)是專門為高性能的數(shù)據(jù)分發(fā)而設(shè)計(jì)的一項(xiàng)新規(guī)范,目的在于提供一個(gè)能夠清晰地定義數(shù)據(jù)分發(fā)服務(wù)的應(yīng)用級(jí)接口,從而簡(jiǎn)化開發(fā)者的網(wǎng)絡(luò)設(shè)計(jì)工作。2005年12月,修訂后的版本v1.1正式推出,它在原有基礎(chǔ)上做了進(jìn)一步完善[4-5]。
DDS基于發(fā)布/訂購(gòu)模型構(gòu)建了一個(gè)共享“全局?jǐn)?shù)據(jù)空間”的概念[6-7],所有的數(shù)據(jù)對(duì)象都存儲(chǔ)在于此空間。分布式節(jié)點(diǎn)通過“發(fā)布”操作將數(shù)據(jù)發(fā)送到全局?jǐn)?shù)據(jù)空間共享,通過“訂購(gòu)”操作獲取自己感興趣的信息。
發(fā)布/訂購(gòu)模型如圖1所示。
圖1 發(fā)布/訂購(gòu)模型Fig.1 The publish/subscribing model
OMG-DDS規(guī)范中描述的以數(shù)據(jù)為中心的發(fā)布/訂購(gòu)按需分發(fā)模型為許多實(shí)時(shí)應(yīng)用提供了解決方案,從小規(guī)模的區(qū)域信息管理到大規(guī)模分布控制系統(tǒng)的各個(gè)領(lǐng)域,都可以實(shí)現(xiàn)信息的實(shí)時(shí)可用性[8-9]。
按各平臺(tái)在地理位置上的分散情況以及信息交互頻繁程度,分布式網(wǎng)絡(luò)系統(tǒng)可劃分成不同的信息分發(fā)區(qū)域。各區(qū)域由一個(gè)區(qū)域信息中心負(fù)責(zé)本區(qū)域內(nèi)各平臺(tái)之間的信息交互。區(qū)域內(nèi)平臺(tái)可以是發(fā)布信息平臺(tái),也可以是訂購(gòu)信息平臺(tái),或同時(shí)兼具這兩種平臺(tái)的功能。各區(qū)域信息中心通過廣域網(wǎng)傳遞區(qū)域間的信息交互,由此構(gòu)成了區(qū)域和全局的兩層按需分發(fā)框架。按需分層分發(fā)框架如圖2所示。
圖2 按需分層分發(fā)框架Fig.2 Framework of the on-demand hierarchical distribution
按需分層分發(fā)框架具體由以下幾部分構(gòu)成。
①網(wǎng)絡(luò)基礎(chǔ)設(shè)施,它是由Internet骨干網(wǎng)和各種局域網(wǎng)組成,通過路由器互聯(lián)起來的分布式通信網(wǎng)絡(luò)。
②區(qū)域信息中心,它是按地域分布的上層信息分發(fā)系統(tǒng),為分布式網(wǎng)絡(luò)提供信息分發(fā)服務(wù);各區(qū)域信息中心間保持信息資源的共享和同步。當(dāng)某個(gè)區(qū)域信息中心癱瘓時(shí),不影響其他信息系統(tǒng)的信息分發(fā)和交互,從而提高了整個(gè)系統(tǒng)的可靠性和抗毀能力。
③信息中心代理,它位于信息發(fā)布平臺(tái)和訂購(gòu)平臺(tái),是發(fā)布平臺(tái)和訂購(gòu)平臺(tái)的一個(gè)外殼,相當(dāng)于一個(gè)本地應(yīng)用系統(tǒng)和區(qū)域信息中心業(yè)務(wù)往來的中間服務(wù),負(fù)責(zé)與信息中心交互。在以下內(nèi)容中,均把信息中心代理作為信息發(fā)布和訂購(gòu)平臺(tái)的一部分。
④信息發(fā)布平臺(tái),首先,信息發(fā)布平臺(tái)接入本地區(qū)域信息中心獲得身份認(rèn)證授權(quán),然后注冊(cè)自己能提供的信息,包括能提供的信息類型、屬性和內(nèi)容等。受理發(fā)布信息的區(qū)域信息中心將發(fā)布信息錄入信息發(fā)布表,作為與訂購(gòu)信息相匹配的信息源。
⑤信息訂購(gòu)平臺(tái),它接入信息中心獲得身份認(rèn)證授權(quán)后,就可向區(qū)域信息中心請(qǐng)求自己感興趣的訂購(gòu)信息。受理此訂購(gòu)信息的區(qū)域信息中心將及時(shí)進(jìn)入訂購(gòu)信息庫(kù),并與已有注冊(cè)信息匹配。一旦匹配上(可與多個(gè)發(fā)布平臺(tái)區(qū)配上),信息中心即向訂購(gòu)平臺(tái)發(fā)送包括對(duì)方網(wǎng)絡(luò)地址等信息的通告信息,訂購(gòu)平臺(tái)此時(shí)作為主動(dòng)方可以隨時(shí)選擇匹配上的發(fā)布平臺(tái)發(fā)送請(qǐng)求信息,信息發(fā)送是“端對(duì)端”的。
區(qū)域信息交互是指區(qū)域信息中心和它所在區(qū)域的發(fā)布平臺(tái)、訂購(gòu)平臺(tái)之間的信息分發(fā),區(qū)域信息交互關(guān)系如圖3所示。
圖3 區(qū)域信息交互關(guān)系Fig.3 Area information interaction
由于發(fā)布平臺(tái)、訂購(gòu)平臺(tái)和區(qū)域信息中心角色的不同,使其在信息分發(fā)系統(tǒng)中具有不同的作用。為了區(qū)分各平臺(tái)之間的關(guān)系,易于彼此間的信息傳遞,各平臺(tái)之間通過自身特定的分發(fā)行為進(jìn)行交互。
①發(fā)布行為,它是發(fā)布平臺(tái)向區(qū)域信息中心發(fā)布信息時(shí)的交互方式,包括“注冊(cè)”新信息、“更新”已注冊(cè)信息和“取消”已注冊(cè)信息三種行為。
②訂購(gòu)行為,它是訂購(gòu)平臺(tái)向區(qū)域信息中心訂購(gòu)信息的交互方式,分為持久、實(shí)時(shí)和退訂三種行為?!俺志谩庇嗁?gòu)是對(duì)某信息的長(zhǎng)期訂購(gòu)行為,分為兩種情況,一種是周期性訂購(gòu)消息,另一種是當(dāng)信息發(fā)生變化時(shí)的訂購(gòu)。
“實(shí)時(shí)”訂購(gòu)是請(qǐng)求信息必須在規(guī)定的時(shí)間內(nèi)送達(dá)到本平臺(tái)的訂購(gòu)行為,若超出此時(shí)間限制,則信息中心自動(dòng)取消此訂購(gòu)信息。“退訂”是當(dāng)訂購(gòu)平臺(tái)不再需要某信息,取消已訂購(gòu)信息的行為。當(dāng)訂購(gòu)平臺(tái)退訂信息以后,區(qū)域信息中心就不會(huì)再將退訂信息進(jìn)行匹配。如果訂購(gòu)平臺(tái)有多個(gè)訂購(gòu)請(qǐng)求,其他訂購(gòu)信息還是要進(jìn)行匹配。
③響應(yīng)行為,它是區(qū)域信息中心對(duì)發(fā)布行為和訂購(gòu)行為的應(yīng)答方式。對(duì)發(fā)布行為的響應(yīng)行為是允許和回拒?!霸试S”行為是區(qū)域信息中心對(duì)發(fā)布平臺(tái)行為的許可,“回拒”則與之相反。對(duì)訂購(gòu)行為的響應(yīng)行為是成功和失敗?!俺晒Α睉?yīng)答是區(qū)域信息中心已匹配出滿足訂購(gòu)信息條件的發(fā)布信息,當(dāng)沒有符合訂購(gòu)限制條件的發(fā)布信息時(shí),發(fā)出訂購(gòu)“失敗”應(yīng)答。
全局信息交互是指在不同區(qū)域內(nèi)的發(fā)布和訂購(gòu)平臺(tái)通過各自所在的區(qū)域信息中心進(jìn)行的信息分發(fā)。全局信息交互關(guān)系如圖4所示。
圖4 全局信息交互關(guān)系Fig.4 Global information interaction
訂購(gòu)平臺(tái)S向區(qū)域信息中心L-DC2發(fā)出訂購(gòu)請(qǐng)求信息,當(dāng)L-DC2無法在本區(qū)域內(nèi)匹配出滿足條件的發(fā)布信息時(shí),L-DC2就將此訂購(gòu)信息傳遞到廣域網(wǎng),并向其他區(qū)域信息中心訂購(gòu)滿足條件的發(fā)布信息。此時(shí),L-DC2相當(dāng)于訂購(gòu)平臺(tái)。一旦其他區(qū)域信息中心LDC1匹配出相應(yīng)的發(fā)布信息,就向L-DC2回應(yīng)匹配結(jié)果。最后,由訂購(gòu)平臺(tái)S向發(fā)布平臺(tái)P請(qǐng)求信息發(fā)送,完成全局信息交互。
發(fā)布和訂購(gòu)信息的數(shù)據(jù)模型是一個(gè)類型屬性集合,屬性和屬性約束是一個(gè)四元組[10],即:
Attribute|Constraint= <T,N,O,V>發(fā)布信息和訂購(gòu)信息實(shí)例如表1所示。
表1 信息實(shí)例Tab.1 Information examples
每個(gè)屬性包括的字段有屬性類型(Type)、屬性名稱(Name)、操作符(Operator)和屬性值(Value)。發(fā)布信息是屬性的集合,即PI=∪Attribute,訂購(gòu)信息是屬性約束的集合,即SI=∪Constraint。對(duì)于訂購(gòu)信息中的每一個(gè)屬性α,當(dāng)發(fā)布信息中至少存在一個(gè)屬性β,使得α?β時(shí),則稱訂購(gòu)信息包含發(fā)布信息,即發(fā)布信息滿足訂購(gòu)信息的訂購(gòu)條件。
發(fā)布平臺(tái)過濾(publisher filtering,PF),PF表示發(fā)布者對(duì)發(fā)布信息的約束,簡(jiǎn)稱發(fā)布過濾,其約束條件在通知分組中描述。某個(gè)發(fā)布過濾中可以有多個(gè)限定條件,發(fā)布信息的屬性個(gè)數(shù)不能多于發(fā)布過濾的屬性個(gè)數(shù)。
發(fā)布過濾PF是屬性過濾AF(attribute filtering,AF)的集合,即:
若發(fā)布信息的數(shù)據(jù)空間為D,發(fā)布過濾的數(shù)據(jù)空間為PF,則下列屬性條件成立:
式中:α?pf表示發(fā)布信息的屬性α滿足發(fā)布過濾中屬性pf。α?pf至少滿足:
式(1)~式(2)說明發(fā)布信息中的每一個(gè)屬性都滿足發(fā)布過濾中對(duì)應(yīng)屬性的約束條件。
訂購(gòu)平臺(tái)過濾(subscriber filtering,SF)表示訂購(gòu)方對(duì)訂購(gòu)信息的約束,簡(jiǎn)稱訂購(gòu)過濾。發(fā)布信息和訂購(gòu)過濾相匹配的條件是當(dāng)且僅當(dāng)發(fā)布信息滿足訂購(gòu)過濾中的所有屬性。
某個(gè)訂購(gòu)信息中可以有兩個(gè)或多個(gè)限定屬性條件,發(fā)布信息可以比訂購(gòu)過濾的屬性個(gè)數(shù)多。
訂購(gòu)過濾SF是屬性約束(constraint filtering,CF)的集合,即:
如果在某個(gè)發(fā)布過濾中包含多個(gè)具有相同屬性名稱的屬性過濾,其操作符為 o1,o2,…,on,操作符對(duì)應(yīng)的屬性值為 v1,v2,…,vn,則對(duì)該屬性來說,訂購(gòu)過濾是這多個(gè)屬性過濾的交集。
當(dāng)訂購(gòu)平臺(tái)收到了發(fā)布平臺(tái)發(fā)來的發(fā)布信息時(shí),判斷自己的訂購(gòu)過濾是否滿足發(fā)布過濾的約束條件。判斷條件是:若訂購(gòu)過濾的數(shù)據(jù)空間為SF,發(fā)布過濾的數(shù)據(jù)空間為PF,則下列屬性條件成立。
式中:sf?pf表示訂購(gòu)過濾中的屬性sf滿足發(fā)布過濾中的屬性pf。sf?pf滿足:
式(4)~式(5)說明對(duì)于訂購(gòu)過濾中的每一個(gè)屬性都滿足發(fā)布過濾中對(duì)應(yīng)屬性的約束條件。
數(shù)據(jù)分發(fā)服務(wù)(DDS)為分布式網(wǎng)絡(luò)系統(tǒng)實(shí)現(xiàn)高效、可靠的信息分發(fā)提供了有效的解決方案。通過建立以數(shù)據(jù)為中心的發(fā)布/訂購(gòu)模型,為大規(guī)模分布式網(wǎng)絡(luò)系統(tǒng)構(gòu)建了兩層信息按需分發(fā)體系框架。同時(shí),提出了區(qū)域和全局兩層信息交互策略,并設(shè)計(jì)了發(fā)布/訂購(gòu)信息過濾方案。此框架的設(shè)計(jì)對(duì)于提高分布式系統(tǒng)的擴(kuò)展性、解決系統(tǒng)的瓶頸問題提供了新的思路和方法。
[1]Petty M D,Paterson D J.Data distribution management issues for HLA implementations[C]//Proceedings of the Spring 2000 Simulation Interoperability Workshop,Orlando FL:SISO,2000.
[2]Carzaniga A,Rosenblum D S,Wolf A L.Achieving scalability and expressiveness in an Internet-scale event notification service[C]//Proceedings of the 19th Annual ACM Symposium on Principles of Distributed Computing,New York,NY,USA,2000:219 -227.
[3]OMG.Data distribution service for real-time systems specification[S].American:DDS Revision Task Force,2006.
[4]Schlesselman J M,Pardo-Castellote G,F(xiàn)arabaugh B.OMG data-distribution service(DDS):architectural update[C]//2004 IEEE Military Communications Conference,2004:961 -967.
[5]Sivaharan T,Blair G,Coulson G.Green:a configurable and re-configurable publish-subscibe middleware for pervasive computing[C]//proleedings of Distributed Objects and Applications 2005(DOA’05),Agia Napa,Cyprus,2005:732 -749.
[6]裘楷,沈棟,李娜,等.基于DCPS模型的數(shù)據(jù)分發(fā)服務(wù)DDS的研究[J].電子科技,2006(11):68-76.
[7]Katherine L M.DDM improvements for IEEE standard 1516[C]//Proceedings of the Spring 1999 Simulation Interoperability Worksshop,Orlando,1999.
[8]Burlingame,Gerardo P C,Hunt G A.DDS enabling global data[R].Real-Time Innovations,Inc,2004.
[9]劉國(guó),周忠,吳威.發(fā)布/訂購(gòu)系統(tǒng)中基于重復(fù)屬性判定的事件匹配算法研究[J].計(jì)算機(jī)研究與發(fā)展,2010(10):1690 -1699.
[10]趙建華,張同珍.基于Intranet的知識(shí)庫(kù)系統(tǒng)匹配算法的研究與實(shí)現(xiàn)[J].微型電腦應(yīng)用,2010(9):12-14.