基于可重構(gòu)的分布式軟件總線的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于通信軟件中間件領(lǐng)域,涉及服務(wù)器、桌面操作系統(tǒng)、嵌入式系統(tǒng)等多個(gè)平臺(tái)的互聯(lián)、互通和互操作技術(shù),具體為一種基于可重構(gòu)的分布式軟件總線。
【背景技術(shù)】
[0002]軟件總線是一種軟件中間件,主要解決異構(gòu)網(wǎng)絡(luò)環(huán)境下分布式應(yīng)用軟件的設(shè)計(jì)階段建模、(半)自動(dòng)化編碼、運(yùn)行期通信、互操作和協(xié)同、不同迭代周期的無縫銜接與擴(kuò)展等問題,它可屏蔽軟硬件系統(tǒng)異構(gòu)性、網(wǎng)絡(luò)通信、多流程并發(fā)控制、事務(wù)管理、可靠性保障、數(shù)據(jù)存儲(chǔ)、運(yùn)行狀態(tài)監(jiān)控等各種實(shí)現(xiàn)細(xì)節(jié),提高應(yīng)用系統(tǒng)的易移植性、適應(yīng)性、可擴(kuò)展性和可靠性。
[0003]已有較成熟的軟件中間件產(chǎn)品,典型產(chǎn)品如基于CORBA(Common Object RequestBroker Architecture,公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu))體制的軟件總線,基于DDS(DataDistribut1n Service,數(shù)據(jù)分發(fā)服務(wù))體制的軟件總線,目前,國外已經(jīng)有比較成熟的 DDS 產(chǎn)品,像美國 RTI (Real-Time Innovat1ns, Inc.)公司的 NDDS (Network DataDistribut1n Service)已經(jīng)廣泛應(yīng)用到了美國海、陸、空、航天各個(gè)領(lǐng)域。它們的技術(shù)特點(diǎn)如下:
[0004]1、基于C0RBA體制的軟件總線
[0005]C0RBA的主要目標(biāo)是解決面向?qū)ο蟮漠悩?gòu)應(yīng)用程序之間的互操作性問題,并提供分布式計(jì)算所需要的一些服務(wù),其核心是一套標(biāo)準(zhǔn)的語言、接口和協(xié)議,以支持異構(gòu)分布式應(yīng)用程序間的互操作性及獨(dú)立于平臺(tái)和編程語言的對(duì)象重用。它采用客戶端/服務(wù)器模式,客戶方通過客戶端靜態(tài)調(diào)用,服務(wù)方通過服務(wù)器框架靜態(tài)調(diào)用,實(shí)現(xiàn)客戶端與服務(wù)器的請(qǐng)求服務(wù)。C0RBA中間件適合請(qǐng)求-應(yīng)答服務(wù)、文件傳輸、事務(wù)處理,互操作性強(qiáng)。但C0RBA建立的是客戶與服務(wù)端的靜態(tài)連接關(guān)系,不適合多層次軟件系統(tǒng)的動(dòng)態(tài)重構(gòu)。
[0006]2、基于DDS體制的軟件總線
[0007]DDS是以數(shù)據(jù)為中心的發(fā)布/訂閱通信模型,它針對(duì)強(qiáng)實(shí)時(shí)系統(tǒng)進(jìn)行優(yōu)化,實(shí)現(xiàn)低延遲、高吞吐量、對(duì)實(shí)時(shí)性能的控制級(jí)別。在DDS的發(fā)布/訂閱模型中,發(fā)布者和訂閱者通過主題相關(guān)聯(lián),雙方不必知道對(duì)方在何處,也不必同時(shí)在線,從而實(shí)現(xiàn)了通信雙方時(shí)間、空間和數(shù)據(jù)通信的多維松耦合。它的核心思想是以數(shù)據(jù)為中心。使用DDS,應(yīng)用程序使用一個(gè)主題(Topic)名稱來指定它想要讀或?qū)懙臄?shù)據(jù),使用以數(shù)據(jù)為中心的API (應(yīng)用程序編程接口 )來直接讀寫數(shù)據(jù)。DDS中以數(shù)據(jù)為中心的發(fā)布/訂閱(DCPS)模型構(gòu)建了一個(gè)共享的“全局?jǐn)?shù)據(jù)空間”的概念,所有的數(shù)據(jù)對(duì)象都存在于此空間中,各軟件/組件節(jié)點(diǎn)通過簡(jiǎn)單的讀、寫操作便可以訪問這些數(shù)據(jù)對(duì)象。同時(shí),數(shù)據(jù)并非存在于所有總線上的軟件/組件中,它僅存在于那些對(duì)它感興趣的軟件/組件中,軟件總線是依據(jù)信息發(fā)布訂閱關(guān)系完成將數(shù)據(jù)從發(fā)布者傳遞到訂閱者的。
[0008]DDS軟件總線適合于動(dòng)態(tài)可擴(kuò)展、有高度靈活性的網(wǎng)絡(luò)架構(gòu),可以動(dòng)態(tài)增加新的主題、新的發(fā)布者或訂閱者,能夠?qū)?shù)據(jù)快速分發(fā)到多個(gè)節(jié)點(diǎn),并且有大量的配置參數(shù)和QoS(Quality of Service,服務(wù)質(zhì)量)策略便于發(fā)布/訂閱控制。但由于DDS追求QoS的全面性,目前的DDS產(chǎn)品尚不能滿足同時(shí)大數(shù)據(jù)、低延時(shí)的系統(tǒng)要求,需要針對(duì)不同需求進(jìn)行簡(jiǎn)化和改進(jìn)。
【發(fā)明內(nèi)容】
[0009]本發(fā)明針對(duì)現(xiàn)有軟件總線技術(shù)的不足,提出了一種基于混合交換方式的可重構(gòu)的分布式軟件總線技術(shù),本發(fā)明用于解決重構(gòu)系統(tǒng)中,多層次軟件/組件、跨平臺(tái)異構(gòu)系統(tǒng)的軟件集成及組件靈活重組與重構(gòu)問題。本發(fā)明具有無中心自組網(wǎng)、傳輸策略可控制、通信節(jié)點(diǎn)可迀移、軟件/組件可重組等特點(diǎn)。
[0010]本發(fā)明的技術(shù)方案為:
[0011]所述一種基于可重構(gòu)的分布式軟件總線,其特征在于:包括總線庫模塊、總線節(jié)點(diǎn)代理模塊、總線監(jiān)控模塊和總線配置服務(wù)模塊;
[0012]所述總線庫模塊是為節(jié)點(diǎn)提供使用總線服務(wù)的API接口,完成節(jié)點(diǎn)注冊(cè)、主題發(fā)布和/或訂閱、主題數(shù)據(jù)發(fā)送和/或接收操作;所述節(jié)點(diǎn)指使用軟件總線進(jìn)行通信的各應(yīng)用軟件或組件;
[0013]所述總線節(jié)點(diǎn)代理模塊是節(jié)點(diǎn)在軟件總線的網(wǎng)絡(luò)代理,每臺(tái)主機(jī)上僅部署總線節(jié)點(diǎn)代理模塊的一個(gè)實(shí)例,完成本地主機(jī)上的節(jié)點(diǎn)與其它主機(jī)上的節(jié)點(diǎn)的數(shù)據(jù)交換;
[0014]所述總線監(jiān)控模塊用于對(duì)以下系統(tǒng)屬性的監(jiān)視:包括節(jié)點(diǎn)組成關(guān)系、發(fā)布訂閱關(guān)系、數(shù)據(jù)交互狀態(tài);
[0015]所述總線配置服務(wù)模塊用于對(duì)總線中各個(gè)節(jié)點(diǎn)的參數(shù)進(jìn)行編輯,參數(shù)包括節(jié)點(diǎn)名稱、節(jié)點(diǎn)所屬域信息、節(jié)點(diǎn)發(fā)布的主題信息、節(jié)點(diǎn)訂閱的主題信息。
[0016]進(jìn)一步的優(yōu)選方案,所述一種基于可重構(gòu)的分布式軟件總線,其特征在于:總線庫模塊包括網(wǎng)絡(luò)交互管理、總線狀態(tài)管理和數(shù)據(jù)收發(fā)管理三個(gè)功能模塊:
[0017]所述網(wǎng)絡(luò)交互管理模塊完成底層網(wǎng)絡(luò)連接管理和底層網(wǎng)絡(luò)數(shù)據(jù)的交互,其中底層網(wǎng)絡(luò)連接管理包括對(duì)節(jié)點(diǎn)地址的動(dòng)態(tài)獲取、網(wǎng)絡(luò)連接建立以及網(wǎng)絡(luò)連接狀態(tài)的實(shí)時(shí)監(jiān)控;底層網(wǎng)絡(luò)數(shù)據(jù)的交互指底層數(shù)據(jù)報(bào)文的收發(fā);
[0018]所述總線狀態(tài)管理模塊完成節(jié)點(diǎn)的總線注冊(cè)和注銷管理、節(jié)點(diǎn)加入和退出域管理、節(jié)點(diǎn)的主題發(fā)布和取消發(fā)布管理以及節(jié)點(diǎn)的主題訂閱和取消訂閱管理;
[0019]所述數(shù)據(jù)收發(fā)管理模塊提供節(jié)點(diǎn)進(jìn)行實(shí)際應(yīng)用數(shù)據(jù)的發(fā)送和接收接口。
[0020]進(jìn)一步的優(yōu)選方案,所述一種基于可重構(gòu)的分布式軟件總線,其特征在于:總線節(jié)點(diǎn)代理模塊包括網(wǎng)絡(luò)管理和總線調(diào)度兩個(gè)功能模塊:
[0021]所述網(wǎng)絡(luò)管理模塊包括網(wǎng)絡(luò)連接管理與數(shù)據(jù)引擎兩部分:網(wǎng)絡(luò)連接管理完成總線節(jié)點(diǎn)代理模塊與本地主機(jī)應(yīng)用軟件、與其他主機(jī)的總線節(jié)點(diǎn)代理模塊以及與總線監(jiān)控模塊之間的TCP連接建立與管理;數(shù)據(jù)引擎完成總線數(shù)據(jù)的收發(fā),總線數(shù)據(jù)包括總線狀態(tài)報(bào)文和數(shù)據(jù)報(bào)文;
[0022]所述總線調(diào)度模塊完成注冊(cè)管理、域管理和主題管理:注冊(cè)管理完成節(jié)點(diǎn)在軟件總線的注冊(cè)和注銷;域管理通過節(jié)點(diǎn)注冊(cè)并加入域時(shí)提供的節(jié)點(diǎn)所屬域信息,將不同的節(jié)點(diǎn)分配到不同的域進(jìn)行管理,并通過域限定節(jié)點(diǎn)的信息交互范圍,不同域內(nèi)的總線節(jié)點(diǎn)不能交互數(shù)據(jù);主題管理對(duì)節(jié)點(diǎn)注冊(cè)的主題信息進(jìn)行管理和維護(hù)。
[0023]有益效果
[0024]與現(xiàn)有技術(shù)相比,本發(fā)明具有如下有益效果:
[0025](1)采用多層次軟件/組件管理方式,實(shí)現(xiàn)跨平臺(tái)異構(gòu)系統(tǒng)不同層級(jí)軟件的軟件集成及互聯(lián)、互通。
[0026](2)通過無中心自組網(wǎng)的分布式架構(gòu),實(shí)現(xiàn)通信節(jié)點(diǎn)的隨遇接入、動(dòng)態(tài)迀移,解除時(shí)間、空間耦合,利于靈活重構(gòu)。
【附圖說明】
[0027]圖1是本發(fā)明的軟件總線總體架構(gòu)圖。
[0028]圖2是本發(fā)明一種實(shí)施例的軟件總線接入節(jié)點(diǎn)及其類型示意圖。
【具體實(shí)施方式】
[0029]下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明的方案作詳細(xì)說明:本實(shí)施例在以本發(fā)明技術(shù)方案為前提下進(jìn)行實(shí)施,給出了詳細(xì)的實(shí)施方式和具體的操作過程,但本發(fā)明的保護(hù)范圍不限于下述的實(shí)施例。
[0030]本實(shí)施例運(yùn)行在Windows XP操作系統(tǒng)上,采用Visual Stud1 2008作為開發(fā)環(huán)境,選擇Visual C++作為開發(fā)語言。
[0031]如圖1所示,基于可重構(gòu)的分布式軟件總線包括總線庫模塊、總線節(jié)點(diǎn)代理模塊、總線監(jiān)控模塊和總線配置服務(wù)模塊;節(jié)點(diǎn)是指使用該軟件總線進(jìn)行通信的各應(yīng)用軟件或組件。
[0032]所述總線庫模塊是為節(jié)點(diǎn)提供使用總線服務(wù)的API接口,完成節(jié)點(diǎn)注冊(cè)、主題發(fā)布和/或訂閱、主題數(shù)據(jù)發(fā)送和/或接收等總線操作;其包括網(wǎng)絡(luò)交互管理、總線狀態(tài)管理和數(shù)據(jù)收發(fā)管理三部分功能模塊。