一種分布式系統(tǒng)中的通信服務(wù)容器及通信方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及分布式系統(tǒng)的技術(shù)領(lǐng)域,特別是涉及一種分布式系統(tǒng)中的通信服務(wù)容器及通信方法。
【背景技術(shù)】
[0002]分布式系統(tǒng)(distributedsystem)是建立在網(wǎng)絡(luò)之上的軟件系統(tǒng)。正是因為軟件的特性,所以分布式系統(tǒng)具有高度的內(nèi)聚性和透明性。在一個分布式系統(tǒng)中,一組獨立的計算機展現(xiàn)給用戶的是一個統(tǒng)一的整體,就好像是一個系統(tǒng)似的。系統(tǒng)擁有多種通用的物理和邏輯資源,可以動態(tài)的分配任務(wù),分散的物理和邏輯資源通過計算機網(wǎng)絡(luò)實現(xiàn)信息交換。系統(tǒng)中存在一個以全局的方式管理計算機資源的分布式操作系統(tǒng)。通常,對用戶來說,分布式系統(tǒng)只有一個模型或范型。在操作系統(tǒng)之上有一層軟件中間件負責實現(xiàn)這個模型。一個著名的分布式系統(tǒng)的例子是萬維網(wǎng),在萬維網(wǎng)中,所有的一切看起來就好像是一個文檔一樣。
[0003]在構(gòu)建分布式系統(tǒng)時,首要解決的問題是子系統(tǒng)間通信問題。在分布式系統(tǒng)中,子系統(tǒng)之間通過遠程服務(wù)和遠程消息進行通信?,F(xiàn)有技術(shù)中,通過以下方式來實現(xiàn)子系統(tǒng)之間的通?目:
[0004](I)單純采用Spring容器實現(xiàn)
[0005](2)單純采用JBoss實現(xiàn)
[0006]然而,現(xiàn)有的子系統(tǒng)間的通信方式具有以下不足:
[0007](I)Spring容器需要作為Spring bean實現(xiàn),JBoss需要作為Ejb實現(xiàn);
[0008](2)無論是Spring還是Jboss,都需重新設(shè)計分布式系統(tǒng)的連接管理,并未實現(xiàn)子系統(tǒng)與其他子系統(tǒng)多依賴問題;
[0009](3)遠程服務(wù)、遠程消息等功能是割裂的,上述功能都未定義標準接口并且未考慮分布式系統(tǒng)的特點,在可復用性和可維護性上比較差。
[0010](4)在同一分布式系統(tǒng)這個,各個子系統(tǒng)通信的實現(xiàn)無法標準化,使得具體實現(xiàn)可能出現(xiàn)差異化,導致系統(tǒng)不易維護。
【發(fā)明內(nèi)容】
[0011]鑒于以上所述現(xiàn)有技術(shù)的缺點,本發(fā)明的目的在于提供一種分布式系統(tǒng)中的通信服務(wù)容器及通信方法,用于發(fā)布遠程服務(wù)、獲取遠程服務(wù)、發(fā)布消息和訂閱遠程消息;該通信服務(wù)容器定義了分布式子系統(tǒng)間通信的框架及標準接口,但是具體服務(wù)、消息以何種技術(shù)實現(xiàn)則根據(jù)分布式系統(tǒng)的實際需求來確定,從而具有復用性,且維護方便。
[0012]為實現(xiàn)上述目的及其他相關(guān)目的,本發(fā)明提供一種分布式系統(tǒng)中通信服務(wù)容器,包括子系統(tǒng)連接管理模塊、子系統(tǒng)連接模塊、遠程通信對象、遠程服務(wù)發(fā)布模塊和遠程消息發(fā)布模塊;所述子系統(tǒng)連接管理模塊用于向其他子系統(tǒng)發(fā)起連接或接受其他子系統(tǒng)的連接,并緩存其他子系統(tǒng)的連接狀態(tài);所述子系統(tǒng)連接模塊用于連接其他子系統(tǒng),并在連接成功后產(chǎn)生與對端子系統(tǒng)通信的遠程通信對象;所述遠程通信對象用于在當前子系統(tǒng)成功連接其他子系統(tǒng)后,實現(xiàn)當前子系統(tǒng)對其他子系統(tǒng)的遠程服務(wù)的獲取和遠程消息的訂閱;所述遠程服務(wù)發(fā)布模塊用于將服務(wù)發(fā)布為遠程服務(wù),提供給其他子系統(tǒng)調(diào)用;所述遠程消息發(fā)布模塊用于在其他子系統(tǒng)訂閱了當前子系統(tǒng)的消息后,將消息發(fā)送到其他子系統(tǒng)。
[0013]于本發(fā)明的一實施例中,所述子系統(tǒng)連接管理模塊了定義分布式子系統(tǒng)間通信的標準接口。
[0014]于本發(fā)明的一實施例中,所述分布式子系統(tǒng)間通信的標準接口包括遠程服務(wù)發(fā)布接口、消息發(fā)布接口和用于獲取遠程服務(wù)及訂閱遠程消息的遠程通信對象。
[0015]于本發(fā)明的一實施例中,如果當前子系統(tǒng)連接多個其他子系統(tǒng),則當前子系統(tǒng)將緩存多個其他子系統(tǒng)對應(yīng)的遠程通信對象。
[0016]于本發(fā)明的一實施例中,當前子系統(tǒng)發(fā)布遠程服務(wù)時,其他子系統(tǒng)的子系統(tǒng)連接管理器會向當前子系統(tǒng)發(fā)起連接,并在連接成功之后獲取當前子系統(tǒng)的遠程通信對象,從而獲取到當前子系統(tǒng)發(fā)布的遠程服務(wù)。
[0017]于本發(fā)明的一實施例中,所述消息發(fā)布模塊發(fā)布消息時,包括以下步驟:
[0018]I)判斷當前子系統(tǒng)與其他子系統(tǒng)的連接狀態(tài);
[0019]2)若當前子系統(tǒng)與其他子系統(tǒng)連接成功,轉(zhuǎn)入3);否則,不發(fā)布消息;
[0020]3)判斷發(fā)布的消息是否被其他子系統(tǒng)訂閱;
[0021 ] 4)如果發(fā)布的消息被其他子系統(tǒng)訂閱,其他子系統(tǒng)將接收到該消息;否則該消息不會被發(fā)送到其他子系統(tǒng)。
[0022]于本發(fā)明的一實施例中,程服務(wù)和遠程消息的具體實現(xiàn)由分布式系統(tǒng)的實際需求來確定。
[0023]另外,本發(fā)明還提供一種如上述任一的分布式系統(tǒng)中的通信服務(wù)容器的通信方法,其中:
[0024]當前分布式子系統(tǒng)需要與其他子系統(tǒng)通信時,通過子系統(tǒng)連接管理模塊向其他子系統(tǒng)發(fā)起連接請求;在請求通過之后,通過子系統(tǒng)連接模塊連接其他子系統(tǒng);在連接成功后產(chǎn)生與對端子系統(tǒng)通信的遠程通信對象;通過遠程通信對象實現(xiàn)當前子系統(tǒng)對其他子系統(tǒng)的遠程服務(wù)的獲取和遠程消息的訂閱;
[0025]當前分布式子系統(tǒng)被其他子系統(tǒng)所依賴時,通過子系統(tǒng)連接管理模塊接受其他子系統(tǒng)的連接請求,并在連接成功之后,通過其他子系統(tǒng)的對應(yīng)的遠程通信對象向其他子系統(tǒng)發(fā)布遠程服務(wù)和遠程消息。
[0026]如上所述,本發(fā)明的分布式系統(tǒng)中的通信服務(wù)容器及通信方法,具有以下有益效果:
[0027](I)結(jié)合分布式系統(tǒng)的連接特性,構(gòu)建遠程通信對象與多子系統(tǒng)通信,可用性強;
[0028](2)將分布式子系統(tǒng)間的通信定義為一個軟件層次,定義了標準化的接口,提高了分布式系統(tǒng)的復用性、穩(wěn)定性和開發(fā)效率。
【附圖說明】
[0029]圖1顯示為本發(fā)明的分布式系統(tǒng)中通信服務(wù)容器的設(shè)計系統(tǒng)的結(jié)構(gòu)示意圖。
[0030]元件標號說明
[0031]I子系統(tǒng)連接管理模塊
[0032]2子系統(tǒng)連接模塊
[0033]3遠程通信對象
[0034]4遠程服務(wù)發(fā)布模塊
[0035]5遠程消息發(fā)布模塊
【具體實施方式】
[0036]以下通過特定的具體實例說明本發(fā)明的實施方式,本領(lǐng)域技術(shù)人員可由本說明書所揭露的內(nèi)容輕易地了解本發(fā)明的其他優(yōu)點與功效。本發(fā)明還可以通過另外不同的【具體實施方式】加以實施或應(yīng)用,本說明書中的各項細節(jié)也可以基于不同觀點與應(yīng)用,在沒有背離本發(fā)明的精神下進行各種修飾或改變。需說明的是,在不沖突的情況下,以下實施例及實施例中的特征可以相互組合。
[0037]需要說明的是,以下實施例中所提供的圖示僅以示意方式說明本發(fā)明的基本構(gòu)想,遂圖式中僅顯示與本發(fā)明中有關(guān)的組件而非按照實際實施時的組件數(shù)目、形狀及尺寸繪制,其實際實施時各組件的型態(tài)、數(shù)量及比例可為一種隨意的改變,且其組件布局型態(tài)也可能更為復雜。
[0038]—個分布式系統(tǒng)由多個子系統(tǒng)構(gòu)成,子系統(tǒng)之間存在依賴關(guān)系。如果子系統(tǒng)I依賴于子系統(tǒng)2,那么子系統(tǒng)I與子系統(tǒng)2通信就需要獲取子系統(tǒng)2的遠程服務(wù),然后調(diào)用服務(wù)方法進行通信;如果子系統(tǒng)I需要接收子系統(tǒng)2的消息,子系統(tǒng)I就需要訂閱子系統(tǒng)2的消息;子系統(tǒng)I可能依賴于多個子系統(tǒng)。在本發(fā)明中通過定義多個用于獲取遠程服務(wù)及實現(xiàn)遠程消息的訂閱的遠程通信對象與其他子系統(tǒng)進行通信。
[0039]本發(fā)明的分布式系統(tǒng)中的通信服務(wù)容器的主要功能為發(fā)布遠程服務(wù)、獲取遠程服務(wù)、發(fā)布消息和訂閱遠程消息,并根據(jù)上述功能定義分布式子系統(tǒng)間通信的框架及標準接口,但是具體服務(wù)、消息以何種技術(shù)實現(xiàn)則根據(jù)分布式系統(tǒng)的實際需求來確定,從而加強了系統(tǒng)功能模塊復用性和可維護性。
[0040]參照圖1,本發(fā)明的分布式系統(tǒng)中通信服務(wù)容器包括子系統(tǒng)連接管理模塊1、子系統(tǒng)連接模塊2、遠程通信對象3、遠程服務(wù)發(fā)布模塊4和遠程消息發(fā)布模塊5。