專利名稱:一種分布式通信系統(tǒng)及其方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域中分布式的通信系統(tǒng)及其方法,具體地說(shuō),是如何將信息由一個(gè)通信實(shí)體傳送到另一個(gè)通信實(shí)體的系統(tǒng)及其方法,這里的通信實(shí)體是指一個(gè)可以接收消息和發(fā)送消息的程序?qū)嵗?,通信?shí)體的位置不受限制,可以位于分布式系統(tǒng)中的任意位置。
在現(xiàn)有技術(shù)中,分布式通信有兩類常用的方案,一類是使用遠(yuǎn)程過(guò)程調(diào)用機(jī)制(RPC),另一類是使用網(wǎng)絡(luò)應(yīng)用程序接口。RPC處理過(guò)程的調(diào)用在本質(zhì)上是同步的,這就意味著提出請(qǐng)求的應(yīng)用程序在請(qǐng)求接收程序完成該過(guò)程之前必須等待,并且使用RPC的應(yīng)用程序常常必須理解網(wǎng)絡(luò)傳輸?shù)囊恍└拍?,并?fù)責(zé)定位滿足請(qǐng)求的接收者。網(wǎng)絡(luò)應(yīng)用程序接口(APIs)雖然支持同步通信和異步通信,但它是建立在傳統(tǒng)進(jìn)程間通信的系統(tǒng)調(diào)用基礎(chǔ)上的,而這些調(diào)用在本質(zhì)上只提供同步實(shí)現(xiàn)方式,同時(shí)網(wǎng)絡(luò)APIs并沒(méi)有提供編碼數(shù)據(jù)設(shè)備以使多個(gè)平臺(tái)上有不同數(shù)據(jù)表示的應(yīng)用程序能夠理解這些數(shù)據(jù),使用網(wǎng)絡(luò)APIs常常要求創(chuàng)建和使用額外的軟件,這些軟件通常是標(biāo)準(zhǔn)的底層的軟件,諸如處理不同平臺(tái)上數(shù)據(jù)表示差異的軟件。另外,用戶還要為打包和傳送請(qǐng)求以及解包和把請(qǐng)求傳遞到例程而編寫(xiě)代碼,可能還要作大量的緩沖區(qū)操作并注意不同平臺(tái)的細(xì)小差別?,F(xiàn)有的通信機(jī)制存在著同步和異步兩種形式,同步通信是指一個(gè)通信實(shí)體向另一個(gè)通信實(shí)體發(fā)送消息,然后等待回答;異步通信是指一個(gè)通信實(shí)體向另一個(gè)通信實(shí)體發(fā)送消息,然后繼續(xù)工作,期待過(guò)些時(shí)候會(huì)有應(yīng)答。從以上分析可以看出,上述兩種方案只支持同步通信方式。因此,缺乏對(duì)異步通信的全面支持和應(yīng)用程序過(guò)多的涉及底層通信是目前分布式處理系統(tǒng)中存在的主要問(wèn)題。
本發(fā)明的目的是提供一種能實(shí)現(xiàn)通用的、完備的、與操作平臺(tái)無(wú)關(guān)的、對(duì)通信實(shí)體透明的且對(duì)異步通信全面支持的分布式處理系統(tǒng)及其方法。
為了實(shí)現(xiàn)上述目的,本發(fā)明提出的分布式處理系統(tǒng)包括五層結(jié)構(gòu),從下到上依次分為
操作系統(tǒng)層該層提供系統(tǒng)的操作平臺(tái);虛擬操作系統(tǒng)層用于封裝各操作系統(tǒng)的系統(tǒng)調(diào)用,為上層提供用于通信和其他相關(guān)的服務(wù);進(jìn)程間通信層利用虛擬操作系統(tǒng)層提供的各種服務(wù),實(shí)現(xiàn)有限狀態(tài)機(jī)所屬進(jìn)程/機(jī)器之間的消息傳送;有限狀態(tài)機(jī)實(shí)現(xiàn)層通過(guò)調(diào)用虛擬操作系統(tǒng)的服務(wù),實(shí)現(xiàn)有限狀態(tài)機(jī)的消息接受和分發(fā)調(diào)用,向上一層的應(yīng)用程序?qū)犹峁┙y(tǒng)一的接口與服務(wù),并提供上層實(shí)現(xiàn)模板;應(yīng)用程序?qū)痈鶕?jù)有限狀態(tài)機(jī)模板填寫(xiě)自己的應(yīng)用代碼來(lái)實(shí)現(xiàn)具體的應(yīng)用功能。
所述的分布式處理系統(tǒng)中,是將通信實(shí)體當(dāng)作有限狀態(tài)機(jī),每個(gè)有限狀態(tài)機(jī)分為系統(tǒng)執(zhí)行部分和用戶執(zhí)行部分。系統(tǒng)執(zhí)行部分負(fù)責(zé)處理消息的接收和分發(fā),維護(hù)信箱;用戶執(zhí)行部分負(fù)責(zé)填寫(xiě)消息分配表和消息處理函數(shù)。
如上所述的分布式處理系統(tǒng)中,實(shí)現(xiàn)有限狀態(tài)機(jī)之間的消息傳送,需要對(duì)每個(gè)有限狀態(tài)機(jī)進(jìn)行編址,包括物理地址和名字地址的編址。
如上所述的分布式處理系統(tǒng)中,所述的物理地址是在每一個(gè)有限狀態(tài)機(jī)生成時(shí)由系統(tǒng)自動(dòng)分配的,該物理地址分為三個(gè)組成部分機(jī)器地址+進(jìn)程地址+有限狀態(tài)機(jī)地址。
如上所述的分布式處理系統(tǒng)中,所述的名字地址是每個(gè)有限狀態(tài)機(jī)向系統(tǒng)自行注冊(cè)的,每個(gè)名字地址對(duì)應(yīng)著自己的物理地址。
基于所述的分布式處理系統(tǒng)的通信方法是這樣完成的1、當(dāng)有限狀態(tài)機(jī)之間發(fā)送消息時(shí),發(fā)送方有限狀態(tài)機(jī)調(diào)用通信底冊(cè)提供的通信方法,將消息發(fā)送后立即返回;2、通信底層查看消息的接收方有限狀態(tài)機(jī)的地址,進(jìn)行判斷;3、通信底層判斷結(jié)束后,發(fā)送消息;4、當(dāng)接收方有限狀態(tài)機(jī)的信箱中接收到消息后,其系統(tǒng)執(zhí)行部分開(kāi)始運(yùn)行;5、系統(tǒng)執(zhí)行部分運(yùn)行結(jié)束后,轉(zhuǎn)入用戶執(zhí)行部分;6、該有限狀態(tài)機(jī)的用戶執(zhí)行部分則對(duì)接收到的消息進(jìn)行處理;7、處理結(jié)束后,轉(zhuǎn)入系統(tǒng)執(zhí)行部分;8、系統(tǒng)執(zhí)行部分根據(jù)處理后的信息驅(qū)動(dòng)應(yīng)用程序?qū)油瓿删唧w的應(yīng)用功能。
如上所述的分布式處理系統(tǒng)的通信方法,其特征在于,所述通信底層判斷結(jié)束后,發(fā)送消息包括(1)如果接收方有限狀態(tài)機(jī)和發(fā)送方有限狀態(tài)機(jī)在同一進(jìn)程,則直接將消息投放到接收方有限狀態(tài)機(jī)的信箱中;(2)如果不在同一進(jìn)程內(nèi)部,通信底層將消息發(fā)往發(fā)送方有限狀態(tài)機(jī)的本地郵局;(3)發(fā)送方有限狀態(tài)機(jī)的本地郵局收到消息后,進(jìn)一步進(jìn)行判斷;(4)如果接收方有限狀態(tài)機(jī)與發(fā)送方有限狀態(tài)機(jī)在同一機(jī)器內(nèi)部,本地郵局將消息發(fā)往接收方有限狀態(tài)機(jī)本地郵局,由接收方本地郵局發(fā)送到接收方有限狀態(tài)機(jī)的信箱中;(5)如果兩者不在同一機(jī)器內(nèi)部,本地郵局將消息發(fā)往本機(jī)器全局郵局,該全局郵局在將消息發(fā)送到接收方有限狀態(tài)機(jī)所在機(jī)器的全局郵局,接收到消息的全局郵局通過(guò)接收方所在地的本地郵局將消息放入接收方有限狀態(tài)機(jī)的信箱中。
如上所述的分布式處理系統(tǒng)的通信方法,所述的有限狀態(tài)機(jī)的系統(tǒng)執(zhí)行部分的運(yùn)行主要包括以下步驟(1)從信箱中取出收到的消息;(2)根據(jù)消息分配表,調(diào)用用戶填寫(xiě)的處理函數(shù);(3)將接收到的消息傳入用戶處理函數(shù)。下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明。
圖1為本發(fā)明提出的分布式通信系統(tǒng)的結(jié)構(gòu)。圖2為有限狀態(tài)機(jī)的具體結(jié)構(gòu)。圖3為本發(fā)明中所給出的有限狀態(tài)機(jī)的通信實(shí)例。
圖1是本發(fā)明所描述的基于有限狀態(tài)機(jī)的分布式處理系統(tǒng)。該系統(tǒng)的最底層為操作系統(tǒng)層,向不同的應(yīng)用平臺(tái)提供操作,根據(jù)不同的硬件和軟件的具體設(shè)置而有所不同;其上層為虛擬操作系統(tǒng)層,該層提供進(jìn)/線程管理、信號(hào)量管理、內(nèi)存管理、時(shí)鐘管理、異常處理等等機(jī)制;再上層為進(jìn)程間通信層,負(fù)責(zé)進(jìn)程間/機(jī)器間的消息傳送;再上層為有限狀態(tài)機(jī)的實(shí)現(xiàn)層,它為應(yīng)用程序提供所有應(yīng)用程序接口以及對(duì)信箱的維護(hù),并負(fù)責(zé)消息的分發(fā);最上層為應(yīng)用程序?qū)?,它根?jù)底層提供的各種服務(wù)和編程約定實(shí)現(xiàn)所有應(yīng)用功能。
本發(fā)明將通信實(shí)體當(dāng)作有限狀態(tài)機(jī),其結(jié)構(gòu)如圖2所示。每個(gè)有限狀態(tài)機(jī)包括系統(tǒng)執(zhí)行部分和用戶執(zhí)行部分,系統(tǒng)執(zhí)行部分負(fù)責(zé)處理消息的接收和分發(fā),維護(hù)信箱;用戶執(zhí)行部分負(fù)責(zé)填寫(xiě)消息分配表和消息處理函數(shù)。其中,系統(tǒng)執(zhí)行部分維護(hù)一個(gè)信箱和一個(gè)狀態(tài)相關(guān)的消息分發(fā)表,每一個(gè)消息分發(fā)表項(xiàng)是一個(gè)四元組<當(dāng)前狀態(tài),消息/事件,消息處理函數(shù),下一狀態(tài)>,該四元組表示有限狀態(tài)機(jī)在當(dāng)前狀態(tài),收到一個(gè)消息/事件,會(huì)調(diào)用相應(yīng)的消息處理函數(shù)進(jìn)行處理,然后遷移到下一狀態(tài)。
進(jìn)行消息交互的有限狀態(tài)機(jī)之間的相對(duì)物理位置有以下幾種情況(1)相同進(jìn)程內(nèi)部通信,(2)相同機(jī)器不同進(jìn)程之間通信,(3)不同機(jī)器不同進(jìn)程之間通信。每個(gè)進(jìn)程內(nèi)有一個(gè)通信代理,稱為本地郵局,本地郵局知道如何找到本機(jī)內(nèi)所有進(jìn)程;每個(gè)機(jī)器內(nèi)有一個(gè)通信代理,稱為全局郵局,全局郵局知道如何找到系統(tǒng)中所有機(jī)器。有限狀態(tài)機(jī)在發(fā)送消息時(shí),只需將消息發(fā)送出去即可返回,實(shí)現(xiàn)異步通信,不需了解消息的具體發(fā)送過(guò)程。
下面結(jié)合圖3就這三種情況分別描述圖3中的A和B分別表示一個(gè)機(jī)器,1和2是機(jī)器A中若干進(jìn)程中的兩個(gè)不同進(jìn)程,3表示機(jī)器B中若干進(jìn)程中的一個(gè)進(jìn)程。
對(duì)于相同進(jìn)程內(nèi)部通信,例如進(jìn)程1中有限狀態(tài)機(jī)101和102之間的通信,發(fā)送方101直接將消息投放到接收方102的信箱中即可完成;對(duì)于相同機(jī)器不同進(jìn)程,例如進(jìn)程1中有限狀態(tài)機(jī)101和進(jìn)程2中有限狀態(tài)機(jī)201之間的通信,發(fā)送方101將消息發(fā)送到本進(jìn)程內(nèi)的本地郵局103信箱中,由本地郵局103負(fù)責(zé)將消息進(jìn)一步通過(guò)接收方所在的本地郵局203發(fā)送到接收方201,對(duì)于發(fā)送方201實(shí)現(xiàn)異步通信;對(duì)于不同機(jī)器不同進(jìn)程的有限狀態(tài)機(jī)之間的通信,例如機(jī)器A的進(jìn)程1中的有限狀態(tài)機(jī)101與機(jī)器B的進(jìn)程3中有限狀態(tài)機(jī)301之間的通信,有限狀態(tài)機(jī)101調(diào)用通信底層提供的通信方法,將消息發(fā)送出去后立即返回,通信底層查看消息的接收地址,發(fā)現(xiàn)接收方與發(fā)送方不在同一進(jìn)程內(nèi)部,就將消息發(fā)送到本地郵局103,本地郵局103查看接收方不在本機(jī)器內(nèi),即將消息發(fā)往全局郵局4,全局郵局4根據(jù)接收方地址,將消息發(fā)往接收方所在機(jī)器的全局郵局5,該全局郵局5再將消息發(fā)送至接收方所在進(jìn)程的本地郵局302,該本地郵局302最終將消息放入接收方301的信箱中。
由有限狀態(tài)機(jī)系統(tǒng)執(zhí)行部分接收并調(diào)度處理函數(shù),到此完成一個(gè)跨機(jī)器的通信過(guò)程,如果兩臺(tái)機(jī)器的操作系統(tǒng)不同,該通信過(guò)程仍可完成,并且對(duì)于上層通信實(shí)體來(lái)說(shuō)是透明的。
本發(fā)明中提出的識(shí)別有限狀態(tài)機(jī)的位置的編碼方法中,物理地址是在通信實(shí)體生成時(shí)由系統(tǒng)自動(dòng)分配的,每一個(gè)有限狀態(tài)機(jī)在整個(gè)通信系統(tǒng)中擁有一個(gè)唯一標(biāo)識(shí)自身位置的物理地址。而名字地址是有限狀態(tài)機(jī)向系統(tǒng)自行注冊(cè)的,其唯一性是由系統(tǒng)保證的,對(duì)于相同的名字地址,本方法采用時(shí)間優(yōu)先的原則,先注冊(cè)先使用。兩種方法同時(shí)采用,即使有限狀態(tài)機(jī)的物理地址發(fā)生變化,系統(tǒng)也可以使用名字地址正確投遞信息。名字地址的使用可以更好的屏蔽機(jī)器和進(jìn)程等物理概念。
本發(fā)明提出的分布式通信系統(tǒng)及其方法,可以為應(yīng)用程序提供完全透明的通信服務(wù),應(yīng)用程序無(wú)須關(guān)心通信的具體細(xì)節(jié),無(wú)須考慮傳入消息的接收與分發(fā)調(diào)度;可以實(shí)現(xiàn)充分的異步通信,應(yīng)用程序可以實(shí)現(xiàn)并發(fā)操作;基于名字的通信機(jī)制可以為應(yīng)用程序提供更為便捷的通訊機(jī)制;對(duì)于有限狀態(tài)機(jī)的引用和虛擬操作系統(tǒng)的服務(wù)可以使本方法的使用更加通用,不受應(yīng)用平臺(tái)軟硬件種類的限制,完全可以工作在異種平臺(tái)環(huán)境中。
權(quán)利要求
1.一種分布式通信系統(tǒng),其特征在于該系統(tǒng)包括五個(gè)層次,從下往上依次為操作系統(tǒng)層提供系統(tǒng)的操作平臺(tái);虛擬操作系統(tǒng)層封裝各操作系統(tǒng)的系統(tǒng)調(diào)用,為上層提供用于通信的接口和其他相關(guān)的服務(wù);進(jìn)程間通信層利用虛擬操作系統(tǒng)層提供的各種服務(wù),實(shí)現(xiàn)有限狀態(tài)機(jī)所屬進(jìn)程/機(jī)器之間的消息傳送;有限狀態(tài)機(jī)實(shí)現(xiàn)層通過(guò)調(diào)用虛擬操作系統(tǒng)的服務(wù),實(shí)現(xiàn)有限狀態(tài)機(jī)的消息接受和分發(fā)調(diào)用,向上一層的應(yīng)用程序?qū)犹峁┙y(tǒng)一的接口與服務(wù),并提供上層實(shí)現(xiàn)模板;應(yīng)用程序?qū)釉搶痈鶕?jù)有限狀態(tài)機(jī)提供的模板填寫(xiě)自己的應(yīng)用代碼來(lái)實(shí)現(xiàn)具體的應(yīng)用功能。
2.如權(quán)利要求1所述的一種分布式通信系統(tǒng),其特征在于所述的有限狀態(tài)機(jī)實(shí)現(xiàn)層,是將通信實(shí)體當(dāng)作有限狀態(tài)機(jī);每個(gè)有限狀態(tài)機(jī)分為系統(tǒng)執(zhí)行部分和用戶執(zhí)行部分,用戶執(zhí)行部分完成消息分發(fā)表的填寫(xiě)和消息處理函數(shù)的編寫(xiě),而消息的接收和消息的分發(fā)完全由系統(tǒng)執(zhí)行部分完成。
3.如權(quán)利要求2所述的一種分布式通信系統(tǒng),其特征在于所述有限狀態(tài)機(jī)的系統(tǒng)執(zhí)行部分,維護(hù)一個(gè)狀態(tài)相關(guān)的消息分發(fā)表,每一個(gè)消息分發(fā)表項(xiàng)是一個(gè)四元組<當(dāng)前狀態(tài),消息/事件,消息處理函數(shù),下一狀態(tài)>,該四元組表示有限狀態(tài)機(jī)在當(dāng)前狀態(tài),收到一個(gè)消息/事件,會(huì)調(diào)用相應(yīng)的消息處理函數(shù)進(jìn)行處理,然后遷移到下一狀態(tài)。
4.如權(quán)利要求1所述的一種分布式通信系統(tǒng),其特征在于所述的有限狀態(tài)機(jī)的實(shí)現(xiàn)層,需要對(duì)每個(gè)有限狀態(tài)機(jī)進(jìn)行編址,包括物理地址和名字地址的編址。
5.如權(quán)利要求4所述的一種分布式通信系統(tǒng),其特征在于所述的物理地址是在每一個(gè)有限狀態(tài)機(jī)生成時(shí)由系統(tǒng)自動(dòng)分配的,該物理地址包括三個(gè)組成部分機(jī)器地址+進(jìn)程地址+有限狀態(tài)機(jī)地址。
6.如權(quán)利要求4所述的一種分布式通信系統(tǒng),其特征在于所述的名字地址是每個(gè)有限狀態(tài)機(jī)自行向系統(tǒng)注冊(cè)的,每個(gè)名字地址對(duì)應(yīng)著自己的物理地址。
7.如權(quán)利要求6所述的一種分布式通信系統(tǒng),其特征在于所述的名字地址注冊(cè)時(shí),對(duì)于相同的名字地址,系統(tǒng)采用時(shí)間優(yōu)先的原則,先注冊(cè)先使用。
8.一種通過(guò)權(quán)利要求1所述的分布式處理系統(tǒng)實(shí)現(xiàn)的通信方法,其特征在于它包括以下的步驟(1)當(dāng)有限狀態(tài)機(jī)之間發(fā)送消息時(shí),發(fā)送方有限狀態(tài)機(jī)調(diào)用通信底層提供的通信方法,將消息發(fā)送后立即返回;(2)通信底層查看消息的接收方有限狀態(tài)機(jī)的地址,進(jìn)行判斷;(3)通信底層判斷結(jié)束后,發(fā)送消息;(4)當(dāng)接收方有限狀態(tài)機(jī)的信箱中接收到消息后,其系統(tǒng)執(zhí)行部分開(kāi)始運(yùn)行;(5)系統(tǒng)執(zhí)行部分運(yùn)行結(jié)束后,轉(zhuǎn)入用戶執(zhí)行部分;(6)該有限狀態(tài)機(jī)的用戶執(zhí)行部分則對(duì)接收到的消息進(jìn)行處理;(7)處理結(jié)束后,轉(zhuǎn)入系統(tǒng)執(zhí)行部分;(8)系統(tǒng)執(zhí)行部分根據(jù)處理后的消息,驅(qū)動(dòng)應(yīng)用程序?qū)油瓿删唧w的應(yīng)用功能。
9.如權(quán)利要求8所述的通信方法,其特征在于所述步驟(3)中的通信底層判斷結(jié)束后,發(fā)送消息包括以下步驟(1)如果接收方有限狀態(tài)機(jī)和發(fā)送方有限狀態(tài)機(jī)在同一進(jìn)程,則直接將消息投放到接收方有限狀態(tài)機(jī)的信箱中;(2)如果不在同一進(jìn)程內(nèi)部,通信底層將消息發(fā)往發(fā)送方有限狀態(tài)機(jī)的本地郵局;(3)發(fā)送方有限狀態(tài)機(jī)的本地郵局收到消息后,進(jìn)一步進(jìn)行判斷;(4)如果接收方有限狀態(tài)機(jī)與發(fā)送方有限狀態(tài)機(jī)在同一機(jī)器內(nèi)部,本地郵局將消息發(fā)往接收方有限狀態(tài)機(jī)本地郵局,由接收方本地郵局發(fā)送到接收方有限狀態(tài)機(jī)的信箱中;(5)如果兩者不在同一機(jī)器內(nèi)部,本地郵局將消息發(fā)往本機(jī)器全局郵局,該全局郵局在將消息發(fā)送到接收方有限狀態(tài)機(jī)所在機(jī)器的全局郵局,接收到消息的全局郵局通過(guò)接收方所在地的本地郵局將消息放入接收方有限狀態(tài)機(jī)的信箱中。
10.如權(quán)利要求8所述的通信方法,其特征在于所述步驟(4)中的有限狀態(tài)機(jī)的系統(tǒng)執(zhí)行部分的運(yùn)行包括以下步驟(1)從信箱中取出收到的消息;(2)根據(jù)消息分配表,調(diào)用用戶填寫(xiě)的處理函數(shù);(3)將接收到的消息傳入用戶處理函數(shù)。
全文摘要
本發(fā)明公開(kāi)了一種分布式通信系統(tǒng)及其方法。系統(tǒng)包括五層結(jié)構(gòu),操作系統(tǒng)層、虛擬操作系統(tǒng)層、進(jìn)程間通信層、有限狀態(tài)機(jī)實(shí)現(xiàn)層和應(yīng)用程序?qū)印1景l(fā)明中,將通信實(shí)體當(dāng)作有限狀態(tài)機(jī),有限狀態(tài)機(jī)之間的通信采用了郵政系統(tǒng)的通信路由方式。有限狀態(tài)機(jī)的位置識(shí)別采用物理地址和名字地址的編址方式。本發(fā)明可以為應(yīng)用程序提供完全透明的、異步的通信機(jī)制,并且不受應(yīng)用平臺(tái)軟硬件種類的限制,完全可以工作在異種平臺(tái)環(huán)境中。
文檔編號(hào)H04L29/02GK1325217SQ0011987
公開(kāi)日2001年12月5日 申請(qǐng)日期2000年8月29日 優(yōu)先權(quán)日2000年8月29日
發(fā)明者譚震, 林曉東, 余冰 申請(qǐng)人:深圳市中興通訊股份有限公司