欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

過程間通信方法及其設(shè)備的制作方法

文檔序號(hào):6602147閱讀:159來源:國知局
專利名稱:過程間通信方法及其設(shè)備的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及執(zhí)行過程間通信(IPC)的通信系統(tǒng)。更具體地說,本發(fā)明涉及統(tǒng)一過程間通信(UIPC)的方法及其設(shè)備,它們獨(dú)立于通信物理設(shè)備和操作系統(tǒng)。
背景技術(shù)
過程間通信使用各種方法來實(shí)現(xiàn)過程間消息通信,例如,管道、旗語(semaphore)、消息隊(duì)列,或共享的存儲(chǔ)器。這些方法都是基于操作系統(tǒng)的。所以,提供具有基于操作系統(tǒng)的多種過程間通信方法是可能的。換而言之,過程間通信方法依操作系統(tǒng)而定。因此,每次要實(shí)現(xiàn)過程間通信和過程時(shí),根據(jù)通信系統(tǒng)中用到的操作系統(tǒng),應(yīng)用軟件要做相應(yīng)的改變。同樣,假設(shè)在硬件設(shè)備之間進(jìn)行過程間通信,對于提供的不同的物理設(shè)備,要用到不同的物理設(shè)備驅(qū)動(dòng)器。這樣,對于一個(gè)使用設(shè)備驅(qū)動(dòng)器的過程,過程間通信函數(shù)將要根據(jù)使用的設(shè)備驅(qū)動(dòng)器的種類而改變。
通信系統(tǒng)中的這種過程間通信方法依操作系統(tǒng)和物理設(shè)備。結(jié)果,當(dāng)通信系統(tǒng)中的操作系統(tǒng)和物理設(shè)備變化時(shí),系統(tǒng)開銷(overhead)就重復(fù)地出現(xiàn)。這樣不但惡化了軟件的可重復(fù)使用性和可移植性,而且增加了相關(guān)行業(yè)開發(fā)新的通信系統(tǒng)時(shí)在時(shí)間和成本上的負(fù)擔(dān)。

發(fā)明內(nèi)容
因此,本發(fā)明的一個(gè)目的是提供靈活的統(tǒng)一過程間通信的方法及其設(shè)備,它們是獨(dú)立于通信系統(tǒng)的操作系統(tǒng)和物理設(shè)備的。
本發(fā)明的另外一個(gè)目的是提供一種統(tǒng)一過程間通信方法及其設(shè)備,不管通信系統(tǒng)中用到的操作系統(tǒng)怎樣,都能夠高可重復(fù)性和高可移植性地執(zhí)行過程間通信。
本發(fā)明的又另一個(gè)目的就是提供一種獨(dú)立于通信系統(tǒng)的物理設(shè)備的統(tǒng)一過程間通信的方法及其設(shè)備,
本發(fā)明的又另一個(gè)目是提供一種不管在通信裝置中用到的通信方法(例如異步傳輸模式(ATM)、因特網(wǎng)協(xié)議(IP)、同步數(shù)字序列(SDH),等等)的種類如何而從起始點(diǎn)向終點(diǎn)傳遞消息的通信裝置。
為實(shí)現(xiàn)上述目的,提供了一種從起始點(diǎn)向終點(diǎn)傳遞消息的通信方法,該方法包括步驟在操作系統(tǒng)獨(dú)立訪問(0IA)層提供一個(gè)統(tǒng)一操作系統(tǒng)接口函數(shù),該統(tǒng)一操作系統(tǒng)接口函數(shù)對通信裝置的操作系統(tǒng)是可獨(dú)立訪問的;在設(shè)備獨(dú)立訪問(DIA)層提供一個(gè)設(shè)備統(tǒng)一接口函數(shù),該設(shè)備統(tǒng)一接口函數(shù)對通信裝置的物理設(shè)備是可獨(dú)立訪問的;在統(tǒng)一過程間通信層,通過操作系統(tǒng)獨(dú)立訪問層和設(shè)備獨(dú)立訪問層中間的至少一個(gè),使用由一個(gè)終點(diǎn)任務(wù)提供的關(guān)于終點(diǎn)的信息,以及使用基于任務(wù)的基本公共控制流程(flow)的一個(gè)公共任務(wù)結(jié)構(gòu),從起始點(diǎn)向終點(diǎn)傳遞消息。
本發(fā)明的另一個(gè)方面是提供一種從起始點(diǎn)到終點(diǎn)傳遞消息的通信裝置,該裝置包括用于提供操作系統(tǒng)統(tǒng)一接口功能的操作系統(tǒng)獨(dú)立訪問層,該操作系統(tǒng)統(tǒng)一接口功能對通信裝置的操作系統(tǒng)是可獨(dú)立訪問的;提供設(shè)備統(tǒng)一接口功能的設(shè)備獨(dú)立訪問層,該設(shè)備統(tǒng)一接口功能對通信裝置的物理設(shè)備是可獨(dú)立訪問的;統(tǒng)一過程間通信層,用于通過操作系統(tǒng)獨(dú)立訪問層和設(shè)備獨(dú)立訪問層中的至少一個(gè),使用由一個(gè)終點(diǎn)任務(wù)提供的關(guān)于終點(diǎn)的信息,以及使用基于任務(wù)的基本公共控制流程的一個(gè)公共任務(wù)結(jié)構(gòu),從起始點(diǎn)向終點(diǎn)傳遞消息。
在本發(fā)明的實(shí)施例中需要注意的一件事是象“過程”、“應(yīng)用”、或“任務(wù)”這些術(shù)語可以互換使用,他們都是指存在于統(tǒng)一過程間通信層的上部的任務(wù)。


通過下面結(jié)合附圖的詳細(xì)描述,本發(fā)明的上述的以及其它目的、特點(diǎn)和優(yōu)點(diǎn)將會(huì)會(huì)變得更顯而易見。
圖1是根據(jù)本發(fā)明的一個(gè)優(yōu)選實(shí)施例的在每一個(gè)架間交換消息的網(wǎng)絡(luò)的原理圖;圖2是根據(jù)本發(fā)明的優(yōu)選實(shí)施例的應(yīng)用了統(tǒng)一過程間通信的通信系統(tǒng)的詳細(xì)配置的示范圖;圖3是根據(jù)本發(fā)明的優(yōu)選實(shí)施例的包括作為一個(gè)組件的統(tǒng)一過程間通信的公共軟件平臺(tái)的結(jié)構(gòu)圖;
圖4是根據(jù)本發(fā)明的優(yōu)選實(shí)施例的表示每一個(gè)卡(每一個(gè)單元)的統(tǒng)一過程間通信配置的方框圖;圖5是使用公共任務(wù)結(jié)構(gòu)的過程的流程圖,即,一個(gè)任務(wù)的基本控制流程圖;圖6是解釋根據(jù)本發(fā)明的優(yōu)選實(shí)施例的統(tǒng)一過程間通信應(yīng)用程序接口(API)配置和公共任務(wù)結(jié)構(gòu)的方框圖。
具體實(shí)施例方式
下面將參照附圖,在此對本發(fā)明的一個(gè)優(yōu)選實(shí)施例進(jìn)行描述。在下面的描述里,眾所周知的功能或結(jié)構(gòu)就不再詳細(xì)描述,由于它們可能在不必要的細(xì)節(jié)上讓本發(fā)明變得不清楚。
下面的外文文獻(xiàn)揭示了本發(fā)明的背景和附加的信息,對理解本發(fā)明的原理有幫助。
Open Systems Interconnection,Basic Reference Model(開放系統(tǒng)互連,基本參考模型),ITU-T X.200;Open Systems Interconnection,Data Link Service Definition(開放系統(tǒng)互連,數(shù)據(jù)鏈路業(yè)務(wù)定義),ITU-T X.212;Open Systems Interconnection,Network Service Definition(開放系統(tǒng)互連,網(wǎng)絡(luò)業(yè)務(wù)定義),ITU-T X.213;以及Open Systems Interconnection,Transport Service Definition(開放系統(tǒng)互連,傳輸業(yè)務(wù)定義),ITU-T X.214。
圖1是在每一個(gè)架之間交換消息的網(wǎng)絡(luò)的原理圖,體現(xiàn)了本發(fā)明的原理。圖中描述的網(wǎng)絡(luò)拓?fù)浒ㄔ毓芾硐到y(tǒng)(EMS)8、裝備了包括卡12在內(nèi)的多個(gè)卡的系統(tǒng)控制器架10、裝備有智能設(shè)備6以及包括卡22a在內(nèi)的多個(gè)卡的第一擴(kuò)充架201、裝備有包括卡22b在內(nèi)的多個(gè)卡的第二擴(kuò)充架20b、裝備有包括卡22c在內(nèi)的多個(gè)卡的第三擴(kuò)充架30c。
參考圖1,由于第三擴(kuò)充架20c可以和系統(tǒng)控制器架10之間進(jìn)行通信,雖然第三擴(kuò)充架20c和系統(tǒng)控制器架10之間的通信可以物理地通過第二擴(kuò)充架20b,但是根據(jù)本發(fā)明的原理,第三擴(kuò)充架20c和系統(tǒng)控制器架10之間存在一個(gè)虛擬的直接信道。
圖1主要是為了解釋應(yīng)用了本發(fā)明的統(tǒng)一過程間通信功能的網(wǎng)絡(luò)配置。盡管稍后將參照圖2做詳盡的描述,粗略描述本發(fā)明的統(tǒng)一過程間通信就是它支持每一個(gè)卡上任務(wù)間的消息交換,同一架上不同卡的任務(wù)之間的消息交換,以及某一特定架和附屬的智能設(shè)備6(例如,數(shù)字用戶線調(diào)制解調(diào)器和統(tǒng)一訪問設(shè)備)的任務(wù)之間的消息交換。應(yīng)當(dāng)注意的是上面描述的功能是基于這樣的假設(shè),即,如果必要的話,系統(tǒng)控制器架10決定兩個(gè)架間的將要傳遞的消息的路徑。這樣簡化了全部協(xié)議,減少了與協(xié)議相關(guān)的象因特網(wǎng)協(xié)議處理一個(gè)更一般的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)那樣的系統(tǒng)開銷。同樣,消息可以發(fā)送到元素管理系統(tǒng)8和一個(gè)架上的特定卡之間的路徑上。至于涉及的統(tǒng)一過程間通信,元素管理系統(tǒng)8象另一個(gè)架一樣工作。
圖2說明了應(yīng)用本發(fā)明的統(tǒng)一過程間通信功能的通信系統(tǒng)的詳細(xì)的配置。
圖2中的擴(kuò)充架20i是圖1中描述的多個(gè)擴(kuò)充架中的一個(gè),而系統(tǒng)控制器架10是用來控制多個(gè)擴(kuò)充架20a、20b和20c的架。每一個(gè)架10、20i包括多個(gè)控制卡14、16、24和26,和用來控制多個(gè)控制卡14、16、24和26的主控制卡12、22。對每一個(gè)控制卡14、16、24、26和主控制卡12、22都提供了統(tǒng)一過程間通信30作為過程間消息通信的公共軟件平臺(tái)32的部分組件。統(tǒng)一過程間通信30是為過程間消息通信提供一條信道的裝置,這些消息通信是在卡上的過程間、卡之間、架上、和架之間進(jìn)行的。每一個(gè)統(tǒng)一過程間通信30都象圖2中所示的P1、P2那樣連接到過程(應(yīng)用任務(wù))上。
如圖2中所示,統(tǒng)一過程間通信30有三種格式“卡內(nèi)的過程通信(處理器內(nèi)部通信)”、“一個(gè)架內(nèi)的卡之間的過程通信(處理器間通信)”、“架之間的過程通信(處理器間通信)”。尤其是,“一個(gè)架內(nèi)的卡之間的過程通信(處理器間通信)”和“架之間的過程通信(處理器間通信)”需要一個(gè)單獨(dú)的物理設(shè)備驅(qū)動(dòng)器。
圖3是部分包括作為一個(gè)組件體現(xiàn)本發(fā)明的原理的統(tǒng)一過程間通信30的公共軟件平臺(tái)32的方框圖。
圖3中描述的公共軟件平臺(tái)32是用于提供可應(yīng)用到很多不同的通信系統(tǒng)的一般的和公共功能。公共軟件平臺(tái)32存在于圖2中所說明的單元10、20中的卡12、14、16、22、24和26中的每一個(gè),并且,它的組件被劃分為多個(gè)功能單元。
如圖3中所示,公共軟件平臺(tái)32大致上可以分成水平排列的組件(其后,稱為水平組件)和垂直排列的組件(其后,稱為垂直組件)。更具體地,諸如公共代理40、公共操作管理和維護(hù)(OAM)42、統(tǒng)一過程間通信30、設(shè)備獨(dú)立訪問層46、物理設(shè)備驅(qū)動(dòng)器48、實(shí)時(shí)操作系統(tǒng)(RTOS)50和硬件52之類的水平組件,都是各種通信系統(tǒng)所需要的公共功能塊,它們特定的技術(shù)功能都由垂直組件提供的。另一方面,諸如異步傳輸模式(ATM)56、同步數(shù)字序列(SDH)+準(zhǔn)同步數(shù)字序列(PDH)58、分組語音(VoP)160之類的垂直組件,都是根據(jù)通信系統(tǒng)的種類所需要的技術(shù)功能塊。和前面類似,垂直組件的技術(shù)功能由水平組件提供,并且,它們根據(jù)通信系統(tǒng)的種類而不同。例如,在其它水平組件中的公共操作管理和維護(hù)42是為通信系統(tǒng)的管理和維護(hù)特別提供報(bào)警、收集操作(performance)數(shù)據(jù)、管理操作數(shù)據(jù)。所以,如果公共操作管理和維護(hù)42做一些與異步傳輸模式相關(guān)的處理,例如為一個(gè)異步傳輸模式相關(guān)的通信系統(tǒng)提供一個(gè)異步傳輸模式相關(guān)的警報(bào)或收集操作數(shù)據(jù),那么一個(gè)垂直設(shè)備,精確地說是異步傳輸模式56提供這些數(shù)據(jù)。在使用或增加一個(gè)商業(yè)軟件的情況下,就使用圖2中帶有斜線的功能塊50、162、164、166、168和170。
上部模塊,即,從圖3中所示的“公共代理40”到“公共操作管理和維護(hù)42”都依賴于軟件的應(yīng)用。
通常地,各種通信系統(tǒng)包括一個(gè)如圖3中所示的公共軟件平臺(tái)32,并且,通信系統(tǒng)致力在將來實(shí)現(xiàn)的所有應(yīng)用,都將以公共軟件平臺(tái)32提供的垂直組件與水平組件相結(jié)合的功能的形式來開發(fā)。
下面解釋了圖3中所示的公共軟件平臺(tái)32的水平組件的具體功能1.操作系統(tǒng)獨(dú)立訪問層54它提供了操作系統(tǒng)統(tǒng)一接口功能,用于應(yīng)用和統(tǒng)一過程間通信30的實(shí)現(xiàn),使得可以獨(dú)立訪問操作系統(tǒng)(OS)而不依賴如實(shí)時(shí)操作系統(tǒng)50的任何操作系統(tǒng)。結(jié)果,增強(qiáng)了應(yīng)用和統(tǒng)一過程間通信30的可移植性。換一句話說,軟件應(yīng)用和統(tǒng)一過程間通信30可以在不同的通信系統(tǒng)中被不同的操作系統(tǒng)重復(fù)使用。
2.設(shè)備獨(dú)立訪問層46通過隱藏物理設(shè)備驅(qū)動(dòng)器48的更具體的部分,為各種設(shè)備提供了一種公共模型,那就是,設(shè)備統(tǒng)一接口功能,這使得可以實(shí)現(xiàn)對不同設(shè)備的獨(dú)立訪問而不依賴該設(shè)備。這是設(shè)備獨(dú)立訪問層46的益處,現(xiàn)在,即使改變象圖3中所示的硬件52這樣的硬件芯片,也可以重復(fù)使用該應(yīng)用和統(tǒng)一過程間通信30/操作系統(tǒng)獨(dú)立訪問層54。
3.統(tǒng)一過程間通信30依照用于過程間通信的操作系統(tǒng)、如實(shí)時(shí)操作系統(tǒng)50的底層軟件、和底層硬件52,通過隱藏關(guān)于過程間通信機(jī)制的細(xì)節(jié)信息,當(dāng)為了實(shí)現(xiàn)一個(gè)應(yīng)用而改變操作系統(tǒng)時(shí),不特別地需要單獨(dú)的任務(wù)。
4.公共操作管理和維護(hù)42為各種類型的通信系統(tǒng)的操作、管理和維護(hù)提供了一種公共方法。
5、公共代理軟件40為了通信系統(tǒng)中的更有效的網(wǎng)絡(luò)操作,為外部網(wǎng)絡(luò)操作系統(tǒng)提供了一個(gè)接口。
簡言之,通過提供不需要從事特定功能的公共功能,公共軟件平臺(tái)32的存在主要是為了實(shí)現(xiàn)一種軟件結(jié)構(gòu),該軟件結(jié)構(gòu)對不同種類的通信系統(tǒng)是可以重復(fù)使用的,并且是獨(dú)立于操作系統(tǒng)和硬件設(shè)備的。并且,統(tǒng)一過程間通信30是用來實(shí)現(xiàn)過程間消息通信方法的公共軟件平臺(tái)32的一個(gè)組件。
到此為止,為了更好的理解本發(fā)明,對公共軟件平臺(tái)32已經(jīng)進(jìn)行了描述。從現(xiàn)在起,將對統(tǒng)一過程間通信30的配置和它的功能進(jìn)行詳細(xì)的解釋。
與圖2中相似,統(tǒng)一過程間通信30在每一個(gè)控制單元,即控制卡12、14、16、22、24和26內(nèi)工作。主要是在一塊卡內(nèi)、一個(gè)架上、或不同的架中的過程間提供一個(gè)消息通信功能。
通過本發(fā)明的統(tǒng)一過程間通信30的消息通信,需要應(yīng)用識(shí)別符(ID)APP_ID和網(wǎng)絡(luò)地址N_ADDR。應(yīng)用識(shí)別符APP_ID是一個(gè)用來對通信區(qū)別有關(guān)過程的識(shí)別符,網(wǎng)絡(luò)地址N_ADDR是表示有關(guān)過程的物理地址的一個(gè)地址值。網(wǎng)絡(luò)地址N_ADDR尺寸為4字節(jié),并包括柜-架-槽-端口(rack-shelf-slot-port)信息。所以,通過使用網(wǎng)絡(luò)地址N_ADDR就可以容易地獲得相對應(yīng)的過程的物理地址。網(wǎng)絡(luò)地址N_ADDR只給統(tǒng)一過程間通信30使用一個(gè)架和槽(卡就固定在這里)識(shí)別符,柜和端口識(shí)別符用于其它目的。再參考圖2,舉一個(gè)例子,一個(gè)消息從系統(tǒng)主控制器架10的主控制卡12的過程1(P1)傳遞到擴(kuò)充架20i的主控制卡22的過程1(P1)。假設(shè)系統(tǒng)控制器架10的識(shí)別符是“1”,擴(kuò)充架20的識(shí)別符是“2”,而主控制卡12、22的槽識(shí)別符是“22”。首先,起始點(diǎn)和終點(diǎn)應(yīng)用識(shí)別符APP_ID分別是P1。然后,起始網(wǎng)絡(luò)地址N_ADDR是16進(jìn)制數(shù)“0x00010200”(柜-架-槽-端口),終點(diǎn)網(wǎng)絡(luò)地址N_ADDR也是16進(jìn)制數(shù)“0x00020200”(柜-架-槽-端口)。當(dāng)把網(wǎng)絡(luò)地址N_ADDR和應(yīng)用識(shí)別符APP_ID與網(wǎng)絡(luò)協(xié)議相比較時(shí),就會(huì)發(fā)現(xiàn)網(wǎng)絡(luò)地址N_ADDR近似對應(yīng)于一個(gè)因特網(wǎng)協(xié)議地址,而應(yīng)用識(shí)別符APP_ID對應(yīng)于一個(gè)傳輸控制協(xié)議(TCP)的端口號(hào)。
下面是體現(xiàn)本發(fā)明的原理的統(tǒng)一過程間通信30的功能。
統(tǒng)一過程間通信30傳遞一個(gè)雙向的消息到網(wǎng)絡(luò)組件中任何地方的任務(wù)。
統(tǒng)一過程間通信30允許應(yīng)用異步傳遞消息。應(yīng)用程序接口給出一個(gè)沒有阻塞的立即響應(yīng)。
統(tǒng)一過程間通信30允許任務(wù)在暫時(shí)停止工作時(shí),傳遞消息和同步地響應(yīng)。
統(tǒng)一過程間通信30提取出一個(gè)底層物理傳輸機(jī)制。
統(tǒng)一過程間通信30提供用于廣播消息的機(jī)制。
統(tǒng)一過程間通信30使得低層的統(tǒng)一過程間通信協(xié)議可變而不改變高層協(xié)議,反之亦然。
統(tǒng)一過程間通信30檢測基于鏈接到鏈接的傳輸錯(cuò)誤,并對錯(cuò)誤的分組進(jìn)行再選取。這意味著用于控制每一個(gè)鏈接的協(xié)議的數(shù)據(jù)鏈路層應(yīng)該可以做可靠的鏈接。
公共統(tǒng)一過程間通信應(yīng)用程序接口是用在處理器內(nèi)部通信和外部過程通信。
公共統(tǒng)一過程間通信30分割并重新組裝大容量的消息。
統(tǒng)一過程間通信30提供一個(gè)能輸出糾錯(cuò)的機(jī)制。
統(tǒng)一過程間通信協(xié)議參數(shù)在運(yùn)行期間也可以配置。
統(tǒng)一過程間通信30提供用來給每一個(gè)鏈接指派最大的傳輸單元的機(jī)制。
統(tǒng)一過程間通信30支持具有可變最大傳輸單元的鏈接。
統(tǒng)一過程間通信30支持關(guān)于實(shí)時(shí)敏感消息的消息優(yōu)先級(jí)。
統(tǒng)一過程間通信30是獨(dú)立于操作系統(tǒng)的。
統(tǒng)一過程間通信30使得消息透明地從控制器通過,并最終到達(dá)固定在卡上的設(shè)備。
雖然統(tǒng)一過程間通信30從起始點(diǎn)向終點(diǎn)傳遞消息,只要涉及到消息的內(nèi)容,它就充當(dāng)一個(gè)應(yīng)用。這樣,對于特定的系統(tǒng)消息,不提供表示機(jī)制。系統(tǒng)消息的表示機(jī)制類似一個(gè)表示層,但是根據(jù)本發(fā)明的統(tǒng)一過程間通信30并不包括表示層,因?yàn)榻y(tǒng)一過程間通信30是針對實(shí)時(shí)協(xié)議。
圖4是表示每一個(gè)卡(每一個(gè)單元)的統(tǒng)一過程間通信30的配置的圖,體現(xiàn)了本發(fā)明的原理。應(yīng)該理解,在圖中,“任務(wù)”和“過程”是可以互換使用的。
參照圖4,包括在每一個(gè)卡(單元)內(nèi)的統(tǒng)一過程間通信30可以大致分為統(tǒng)一過程間通信應(yīng)用程序接口60和統(tǒng)一過程間通信協(xié)議堆棧70。這樣就可以更加有效的區(qū)分需要統(tǒng)一過程間通信協(xié)議堆棧70的處理器間的通信和不需要統(tǒng)一過程間通信協(xié)議堆棧70的處理器內(nèi)部的通信。具體地說,處理器間通信是一種情況,其中,其網(wǎng)絡(luò)地址N_ADDR不是它自身,這樣,消息應(yīng)該從它的卡上傳遞到另外一塊卡上,而處理器內(nèi)部通信是另一種情況,其中,其網(wǎng)絡(luò)地址N ADDR就是其本身,這樣,消息直接傳遞到卡內(nèi)部一個(gè)對應(yīng)的任務(wù)。同時(shí),統(tǒng)一過程間通信應(yīng)用程序接口60以一種庫的形式提供,從一個(gè)任務(wù)調(diào)用。大體上,任務(wù)調(diào)用統(tǒng)一過程間通信應(yīng)用程序接口60來收發(fā)消息,與統(tǒng)一過程間通信協(xié)議堆棧70通信,以控制處理器間通信的消息。
首先,將參照圖4進(jìn)一步詳細(xì)解釋根據(jù)本發(fā)明的優(yōu)選實(shí)施例的統(tǒng)一過程間通信應(yīng)用程序接口60。
統(tǒng)一過程間通信應(yīng)用程序接口60統(tǒng)一過程間通信應(yīng)用程序接口60是一個(gè)公共庫,可以被任何種類的任務(wù)(,過程)共享,并且提供與統(tǒng)一過程間通信30提供的每一個(gè)內(nèi)部操作相關(guān)的一個(gè)接口。換句話說,統(tǒng)一過程間通信應(yīng)用程序接口60提供一個(gè)接口,使得任意類型的應(yīng)用任務(wù)都能夠使用統(tǒng)一過程間通信功能。另外,統(tǒng)一過程間通信應(yīng)用程序接口60決定了基于網(wǎng)絡(luò)地址N ADDR和應(yīng)用軟件識(shí)別符APP_ID的過程間和過程內(nèi)部通信路徑。在這期間,統(tǒng)一過程間通信應(yīng)用程序接口60對處理器內(nèi)部通信并不使用統(tǒng)一過程間通信協(xié)議堆棧70。而且,統(tǒng)一過程間通信應(yīng)用程序接口60搜索出網(wǎng)絡(luò)地址N ADDR,試圖找出相對應(yīng)的應(yīng)用任務(wù)(過程)的物理地址,并且,如果涉及處理器內(nèi)部通信,那么將消息通過由圖3的操作系統(tǒng)獨(dú)立訪問層54提供的操作系統(tǒng)獨(dú)立訪問應(yīng)用程序接口直接傳遞到一個(gè)相對應(yīng)的任務(wù)(過程)的消息隊(duì)列。另一方面,如果涉及處理器間通信,統(tǒng)一過程間通信應(yīng)用程序接口60把消息傳遞到統(tǒng)一過程間通信協(xié)議堆棧70的一個(gè)消息隊(duì)列,來選定到達(dá)目的地的路徑。
統(tǒng)一過程間通信應(yīng)用程序接口60對任務(wù)(應(yīng)用)提供的最有重要的功能中的一個(gè)就是公共軟件平臺(tái)32的一個(gè)公共任務(wù)結(jié)構(gòu),它使得任務(wù)可以使用統(tǒng)一過程間通信。根據(jù)本發(fā)明的公共任務(wù)結(jié)構(gòu)的主要功能如下面所列1.開發(fā)者不需要再重新設(shè)計(jì)任務(wù)結(jié)構(gòu)。
2.在一個(gè)呼叫者的任務(wù)上執(zhí)行異步回呼功能。
3.開發(fā)者不必致力于公共組件(例如,公共操作管理和維護(hù))和應(yīng)用的集成。
4.基于消息隊(duì)列方法的任務(wù)間的通信現(xiàn)在變?yōu)榭赡?,因?yàn)檫@是所有操作系統(tǒng)都提供的公共過程間通信機(jī)制。
在公共軟件平臺(tái)32的組件中(水平組件+垂直組件),特別是統(tǒng)一過程間通信層30的上層塊的軟件應(yīng)用,例如,公共代理任務(wù)40、公共操作管理和維護(hù)任務(wù)42等等,通過使用體現(xiàn)本發(fā)明的原理的公共任務(wù)結(jié)構(gòu)而成功實(shí)現(xiàn)。圖5是使用具有上述的那四個(gè)功能的公共任務(wù)結(jié)構(gòu)的一個(gè)任務(wù)(過程)的基本的公共控制流程。
參照圖5,任務(wù)等待一個(gè)使用隊(duì)列的消息。任務(wù)異步地接收消息(S100),對接收到的消息進(jìn)行解碼和分析(S102),執(zhí)行消息處理(S104)。如果需要單獨(dú)的處理,則任務(wù)就處理其它特定的應(yīng)用(S106),然后等待返回到步驟100的消息。
表1和表2示出了傳統(tǒng)的繼承任務(wù)結(jié)構(gòu)與具有根據(jù)本發(fā)明的如圖5中所示的一個(gè)基本公共控制流程的任務(wù)的公共任務(wù)結(jié)構(gòu)的比較結(jié)果。如表1中所說明的,由于傳統(tǒng)的繼承任務(wù)不是一個(gè)公共結(jié)構(gòu),它將會(huì)按照開發(fā)者和任務(wù)操作被單獨(dú)設(shè)計(jì)成不同的格式。所以,即使在開發(fā)期間任務(wù)是值得考慮的系統(tǒng)開銷,但它必須重新設(shè)計(jì)。相反,如下面的表2中所示的,根據(jù)本發(fā)明的公共任務(wù)結(jié)構(gòu)實(shí)現(xiàn)了具有如圖5中所示那樣的任務(wù)的基本的公共控制流程,這里避免了系統(tǒng)開銷。用這種方式,可以大大縮短開發(fā)時(shí)間。
(繼承任務(wù)結(jié)構(gòu)>

<公共任務(wù)結(jié)構(gòu)>

現(xiàn)在參照圖6對表2中描述的公共任務(wù)結(jié)構(gòu)進(jìn)行詳細(xì)的描述。
圖6是根據(jù)本發(fā)明的統(tǒng)一過程間通信應(yīng)用程序接口的配置和公共任務(wù)結(jié)構(gòu)的一個(gè)示范圖。參照圖6,每一個(gè)卡的主要任務(wù)在統(tǒng)一過程間通信的內(nèi)部產(chǎn)生類似表3中所示的一個(gè)全局的信息表,并產(chǎn)生服務(wù)任務(wù),任務(wù)1和任務(wù)2,這些任務(wù)執(zhí)行它們自己特定的功能(例如報(bào)警任務(wù)、操作任務(wù)等等)。


為了更多地解釋統(tǒng)一過程間通信內(nèi)部的統(tǒng)一過程間通信全局信息表,該全局信息表包括關(guān)于在一個(gè)特定卡上的所有任務(wù)的信息。全局信息表的每一個(gè)入口是一個(gè)任務(wù)控制塊(TSB)。假定每一個(gè)任務(wù)控制塊都有統(tǒng)一指定的信息。
任務(wù)控制塊的第一字段是‘任務(wù)識(shí)別符’。任務(wù)控制塊的第二字段是‘應(yīng)用識(shí)別符’,這就是任務(wù)的“主隊(duì)列”的“應(yīng)用識(shí)別符”。
每一個(gè)任務(wù)都有一個(gè)動(dòng)態(tài)消息處理器表、一個(gè)靜態(tài)消息處理器表、和一個(gè)動(dòng)態(tài)消息類表。每當(dāng)任務(wù)調(diào)用Uipc RegisterOneTimeApi(),就在動(dòng)態(tài)消息處理器表里創(chuàng)建一個(gè)入口。動(dòng)態(tài)消息處理器表中的這種任務(wù)不是固定的。實(shí)際上,只要從應(yīng)用程序接口接收到響應(yīng),該入口就被刪除。通過使用平衡的二進(jìn)制樹,可以實(shí)現(xiàn)該動(dòng)態(tài)消息處理器表。無論何時(shí),當(dāng)一個(gè)任務(wù)創(chuàng)建Uipc_RegisterMsgHandler()時(shí),就在該靜態(tài)消息處理器表內(nèi)創(chuàng)建一個(gè)入口。這里,該靜態(tài)消息處理器表專用于一個(gè)監(jiān)控程序(supervisor)的應(yīng)用程序接口。與動(dòng)態(tài)消息處理器表中的入口不一樣,靜態(tài)消息處理器表中的入口是固定的。這樣,該靜態(tài)消息處理器表可以通過使用數(shù)組實(shí)現(xiàn)。
無論何時(shí),當(dāng)一個(gè)任務(wù)調(diào)用Uipc GenerateTempMsgClass()時(shí),該消息類返回到上述的任務(wù),任何必要的更新都在動(dòng)態(tài)消息類表中進(jìn)行,使得一個(gè)特定的消息類處于繁忙狀態(tài)(busy)。同樣,無論何時(shí),當(dāng)該任務(wù)調(diào)用Uipc_FreeTempMsgClass()時(shí),統(tǒng)一過程間通信對動(dòng)態(tài)消息類表中做必要的修正,使得一個(gè)特定的消息類對后面的一個(gè)使用是可獲得的。動(dòng)態(tài)消息類表被實(shí)現(xiàn)為另外的一個(gè)數(shù)組。
全局信息表包括用于每一個(gè)上述的表的指針。而且,全局信息表包括用于任務(wù)的‘空閑消息處理器’功能的指針。全局信息表也包括潛伏(latency)時(shí)間,該潛伏時(shí)間被假定為用于僅僅每一個(gè)任務(wù)的Uipc_RcvLoop()中。在Uipc_RcvLoop_API內(nèi),將對全局信息表審查潛伏時(shí)間。既然每一個(gè)任務(wù)對全局信息表都是可訪問的,一個(gè)指定的旗語信號(hào)就保護(hù)該全局信息表。這種旗語信號(hào)在Uipc_InitCardContext()期間產(chǎn)生。
再參考圖6,在統(tǒng)一過程間通信應(yīng)用程序接口中,Uipc_InitCardContext()被假定是根據(jù)本發(fā)明對統(tǒng)一過程間通信30進(jìn)行初始化的。由主任務(wù)運(yùn)行的Uipc_InitCardContext()指定一塊存儲(chǔ)器以使用統(tǒng)一過程間通信30,并產(chǎn)生一個(gè)數(shù)據(jù)內(nèi)部結(jié)構(gòu)。這里,Uipc_InitCardContext()應(yīng)該為每一個(gè)卡(單元)只調(diào)用一次。
關(guān)于從屬任務(wù)task1和task2的公共任務(wù)結(jié)構(gòu)將進(jìn)行進(jìn)一步的解釋,task1和task2由主任務(wù)產(chǎn)生。
在公共任務(wù)結(jié)構(gòu)內(nèi),無論何時(shí),當(dāng)產(chǎn)生一個(gè)任務(wù)來幫助許多的任務(wù),以使之能夠使用統(tǒng)一過程間通信30相互通信時(shí),Uipc_InitTaskContext()就指定一個(gè)全局信息表,并寄存指定到全局表入口的全局信息表。同樣,Uipc_InitTaskContext()為每一個(gè)任務(wù)應(yīng)該只能被調(diào)用一次。
Uipc_CreateQueue(TASK1_APP_ID,&Task1Queue)創(chuàng)建一個(gè)隊(duì)列來幫助每一個(gè)任務(wù),以使之可以使用統(tǒng)一過程間通信來接收消息。Uipc_CreateQueue(TASK1_APP_ID,&Task1Queue)將一個(gè)創(chuàng)建的隊(duì)列識(shí)別符寄存到用于任務(wù)的應(yīng)用識(shí)別符的隊(duì)列表中。
Uipc_SetmainQueue(hTask1Queue)將一個(gè)相對應(yīng)的隊(duì)列設(shè)置為用于接收消息的一個(gè)主隊(duì)列。一旦作為主隊(duì)列被寄存起來,它將在Uipc_RcvLoop()內(nèi)部被用作消息等待隊(duì)列。
Uipc_RegisterMsgHandler(TASK1_MSG_CLASS,&Task1MessageHandler)將用來處理從一個(gè)任務(wù)接收到的消息的消息(消息類)和用于消息處理的處理器函數(shù)(handler function)寄存到一個(gè)全局信息表中。它們用于處理在Uipc_RcvLoop()內(nèi)部接收到的消息。
當(dāng)一個(gè)任務(wù)要執(zhí)行除消息處理外其它功能時(shí),Uipc_RegisterIdleHandler(&Task1IdleHander)將處理器函數(shù)寄存到一個(gè)全局信息表中,當(dāng)沒有從Uipc_RcvLoop()接收到任何消息時(shí),執(zhí)行給定的一個(gè)另外的工作。
一個(gè)任務(wù)從主隊(duì)列接收消息并處理這些接收到的消息的過程是在Uipc_RcvLoop()中進(jìn)行的。它從不回應(yīng),但內(nèi)部執(zhí)行一個(gè)無限的循環(huán)。而且,它執(zhí)行象消息接收/消息解碼/消息處理/附加工作這樣的事情。
現(xiàn)在參照圖4對統(tǒng)一過程間通信30的統(tǒng)一過程間通信協(xié)議堆棧70進(jìn)行詳細(xì)描述。
統(tǒng)一過程間通信協(xié)議堆棧70統(tǒng)一過程間通信協(xié)議堆棧70是用于處理器間的通信。當(dāng)統(tǒng)一過程間通信應(yīng)用程序接口60使用出自統(tǒng)一過程間通信協(xié)議堆棧70的一個(gè)隊(duì)列傳遞消息時(shí),就進(jìn)行處理器間的通信。統(tǒng)一過程間通信協(xié)議堆棧70需要一個(gè)路由庫,用于基于應(yīng)用識(shí)別符APP_ID和網(wǎng)絡(luò)地址N_ADDR來決定消息的路由。為進(jìn)行路由,統(tǒng)一過程間通信應(yīng)用程序接口60使用應(yīng)用識(shí)別符APP_ID和網(wǎng)絡(luò)地址N_ADDR調(diào)用由路由庫提供的應(yīng)用程序接口,并決定接收到的消息屬于哪一種,即,處理器間的消息或處理器內(nèi)部的消息。如果是一個(gè)處理器間的消息,統(tǒng)一過程間通信應(yīng)用程序接口60將該消息發(fā)送到統(tǒng)一過程間通信協(xié)議堆棧70的一個(gè)隊(duì)列中。典型地,這個(gè)協(xié)議堆棧符合開放系統(tǒng)互連(OSI)模型,但是在本發(fā)明中,它并非支持所有的7個(gè)層,而是只支持其中的3層。更具體地講,體現(xiàn)本發(fā)明原理的統(tǒng)一過程間通信協(xié)議堆棧70支持?jǐn)?shù)據(jù)鏈路層72、網(wǎng)絡(luò)層74、和傳輸層76。數(shù)據(jù)鏈路層72有一個(gè)數(shù)據(jù)鏈接隊(duì)列,而網(wǎng)絡(luò)層74有一個(gè)網(wǎng)絡(luò)隊(duì)列,以及傳輸層76有一個(gè)傳輸隊(duì)列。
那三個(gè)層的操作將會(huì)在稍后做詳細(xì)的解釋。然而,在對每層做進(jìn)一步的細(xì)節(jié)描述之前,有必要引入應(yīng)用到每層的一些一般要求。這樣做的目的是為了實(shí)現(xiàn)上述的層。
首先,每一層的頭部(header)應(yīng)該包括一個(gè)協(xié)議鑒別器。該鑒別器表明是否有一個(gè)特定的協(xié)議或一個(gè)協(xié)議的組合伴隨著這條消息。通常,該協(xié)議鑒別器在頭部包括2比特或3比特。這種實(shí)現(xiàn)不需要改變其它協(xié)議就可以進(jìn)行。例如,被網(wǎng)絡(luò)層74處理的接收到的消息在它的網(wǎng)絡(luò)層的頭部具有一個(gè)協(xié)議鑒別器,該協(xié)議鑒別器指示下一步那個(gè)協(xié)議模塊將要處理該消息。如果統(tǒng)一過程間通信想要支持類似傳輸控制協(xié)議或用戶數(shù)據(jù)報(bào)協(xié)議(UDP)那樣的傳輸層協(xié)議,則協(xié)議鑒別器就通知網(wǎng)絡(luò)層74這個(gè)消息是否要傳遞到傳輸控制協(xié)議或用戶數(shù)據(jù)報(bào)協(xié)議模塊。這時(shí),用戶數(shù)據(jù)報(bào)協(xié)議就參考提供數(shù)據(jù)報(bào)服務(wù)的因特網(wǎng)標(biāo)準(zhǔn)網(wǎng)絡(luò)層、傳輸層和會(huì)話層協(xié)議。與傳輸控制協(xié)議類似,用戶數(shù)據(jù)報(bào)協(xié)議也是因特網(wǎng)協(xié)議的頂層的一個(gè)無連接的協(xié)議。
有些協(xié)議層依賴于其它層,或者說它們也不能夠獨(dú)立的使用。例如,D信道鏈路訪問過程(LAPD),一種數(shù)據(jù)鏈路層協(xié)議,依賴于物理高級(jí)數(shù)據(jù)鏈路控制(HDLC)層。這里,“D信道鏈路訪問過程”意思是D信道上的一個(gè)鏈接訪問過程。
每層都具有一個(gè)消息優(yōu)先權(quán)。所以,具有高優(yōu)先權(quán)的消息或段(段如果一個(gè)消息足夠長,就要對它進(jìn)行分段)就在其它消息和段之前傳遞。最好是,兩個(gè)優(yōu)先權(quán),即,本發(fā)明中引入了“普通”和“高級(jí)”優(yōu)先權(quán),因?yàn)檫M(jìn)一步的劃分只會(huì)把事情弄得更混亂。但是,如果有必要的話,在任何時(shí)候都可以對優(yōu)先權(quán)進(jìn)行另外劃分。
此外,每一層可以定義具體的控制消息,這些控制消息在一個(gè)端點(diǎn)的相同層之間交換。這些控制消息與一個(gè)層協(xié)商協(xié)議參數(shù)或允許一個(gè)層來執(zhí)行一個(gè)流程控制。
下面將描述每一個(gè)協(xié)議層的特征和職責(zé)。每一部分都有一個(gè)由每一層提供的原語(primitive)列表。這些原語是假定用來顯示對另外的軟件提供的外部接口(即,下一個(gè)協(xié)議層)。它們不必解釋在兩個(gè)端點(diǎn)之間通信的實(shí)際消息。同樣,對于這些消息以及它們的狀態(tài)機(jī)構(gòu)的定義,也不需要解釋,因?yàn)楫?dāng)一個(gè)更具體的設(shè)計(jì)建立起來時(shí),它們將會(huì)被定義。
這些原語將依照國際電聯(lián)(ITU)的術(shù)語系統(tǒng)來命名,并將按如下所示劃分為“請求”、“響應(yīng)”、“指示”和“確認(rèn)”。
請求它的意思是一個(gè)層應(yīng)該支持的一項(xiàng)功能,通常是該層的下一層調(diào)用它來請求某一個(gè)操作。
響應(yīng)當(dāng)收到一個(gè)請求回應(yīng)的命令時(shí),它被一個(gè)遠(yuǎn)處或遠(yuǎn)程的終端調(diào)用。從而,上面‘請求’的請求者將接收該確認(rèn)。
指示它是一個(gè)通知,用來告知一件事情發(fā)生了。通常,它指示向上數(shù)的下一層,或表示由稍后產(chǎn)生的代碼接收這種命令。大部分的‘指示’都是遠(yuǎn)處(遠(yuǎn)程)終端通過一個(gè)‘請求’初始化一個(gè)操作的結(jié)果。
確認(rèn)它是響應(yīng)‘請求’的一個(gè)證實(shí)。
每一個(gè)原語都有這樣的數(shù)據(jù),這些數(shù)據(jù)有一個(gè)指定的與之相關(guān)的原語。對于通過層之間的原語的機(jī)制,由于它是層的詳細(xì)設(shè)計(jì)的一部分,在這里將不做詳細(xì)的說明。
另一方面,意識(shí)到定義一個(gè)最大傳輸單元(MTU)的必要性是非常重要的。最大傳輸單元定義了一個(gè)最大消息尺寸。任何比最大尺寸小的的消息都可以作為單個(gè)的消息進(jìn)行傳遞。
實(shí)際上,確定最大傳輸單元就是一個(gè)應(yīng)用設(shè)計(jì)的一部分。所以,它不是作為統(tǒng)一過程間通信的一部分來定義的。然而,要指定最大傳輸單元,統(tǒng)一過程間通信定義了一個(gè)只對統(tǒng)一過程間通信組件可見的內(nèi)部應(yīng)用程序接口。最大傳輸單元的確定是基于用于執(zhí)行一個(gè)應(yīng)用的請求、消息被假定采用的跳(hop)的數(shù)目(跳一個(gè)路由器與另一個(gè)路由器之間的段)、以及當(dāng)前使用的通信鏈接速率。
在用于從一個(gè)節(jié)點(diǎn)到下一個(gè)節(jié)點(diǎn)指引消息路徑的網(wǎng)絡(luò)可能存在很多復(fù)雜的問題。例如,如果每跳的最大傳輸單元不一樣,就必須要采取一些措施來解決這種不平衡。問題是,當(dāng)一個(gè)節(jié)點(diǎn)傳遞具有大的最大傳輸單元的消息,并且這條消息是通過超出一跳之后的另一個(gè)節(jié)點(diǎn)用一個(gè)小的最大傳輸單元進(jìn)行廣播時(shí),經(jīng)常會(huì)出現(xiàn)問題。當(dāng)然,對于一個(gè)特定的節(jié)點(diǎn)來說,要知道消息經(jīng)過的每一個(gè)鏈接的最大傳輸單元是非常困難的。事實(shí)上,一個(gè)起始的節(jié)點(diǎn)甚至可能不知道這條消息將被傳遞到哪一條鏈接。所有的起始節(jié)點(diǎn)所知道的是如何把消息發(fā)送到下一個(gè)節(jié)點(diǎn)。所以,每一個(gè)節(jié)點(diǎn)的協(xié)議堆棧應(yīng)該可以克服在連接到一個(gè)相對應(yīng)的節(jié)點(diǎn)上的鏈接的最大傳輸單元大小上的差異。網(wǎng)絡(luò)層74有分段功能,在稍后的“網(wǎng)絡(luò)層74”部分中將會(huì)描述。它將被用來把一個(gè)大的最大傳輸單元分段成小的最大傳輸單元。如果網(wǎng)絡(luò)層不執(zhí)行分段,一個(gè)端到端的連接可以作為一個(gè)選擇而嘗試,其中,所有的節(jié)點(diǎn)都參與確定最大傳輸單元的討論。然而不幸的是,這種方法會(huì)產(chǎn)生系統(tǒng)開銷,并且對于無連接的消息沒有什么效果。
數(shù)據(jù)鏈路層72在統(tǒng)一過程間通信協(xié)議堆棧70支持的三層中,首先對數(shù)據(jù)鏈路層72進(jìn)行解釋。數(shù)據(jù)鏈路層72連接端點(diǎn)間的一個(gè)數(shù)據(jù)鏈接,并且負(fù)責(zé)鏈接之間的無差錯(cuò)數(shù)據(jù)傳輸,以及提供下面的這些操作。
1、通過提供數(shù)據(jù)優(yōu)先權(quán)而進(jìn)行排隊(duì)。
2、通過提供一個(gè)流程控制而支持?jǐn)?shù)據(jù)的平穩(wěn)收發(fā)。
3、支持無差錯(cuò)數(shù)據(jù)傳輸。
4、提供無連接的模式和面向連接模式,并且在面向連接的模式下,進(jìn)行數(shù)據(jù)鏈接的連接/釋放。
5、當(dāng)存在錯(cuò)誤時(shí),可以重發(fā)相對應(yīng)的數(shù)據(jù)。
表4是在數(shù)據(jù)鏈路層72上的面向連接的模式的原語的一個(gè)內(nèi)容和它們的描述,該數(shù)據(jù)鏈路層至少需要面向連接的數(shù)據(jù)鏈接。表5所示的是在數(shù)據(jù)鏈路層72上的無連接模式的原語的一個(gè)內(nèi)容和它們的描述,該數(shù)據(jù)鏈路層至少需要無連接的數(shù)據(jù)鏈接。
<數(shù)據(jù)鏈路層72上的面向連接的模式的原語以及它們的描述>
<數(shù)據(jù)鏈路層72上的無連接模式的原語以及它們的描述>

下面解釋的是由統(tǒng)一過程間通信協(xié)議堆棧70支持的三個(gè)層中的網(wǎng)絡(luò)層74。網(wǎng)絡(luò)層74在處理器間通信的處理器間負(fù)責(zé)消息的路由。下面描述網(wǎng)絡(luò)層72的功能。
1、它提供一個(gè)消息路由功能。
它基于網(wǎng)絡(luò)地址N ADDR確定消息路由。更具體地講,網(wǎng)絡(luò)層決定一個(gè)消息是應(yīng)該作為一個(gè)過程的消息被發(fā)送到一個(gè)傳輸層,還是應(yīng)該經(jīng)過另一個(gè)接口傳遞以到達(dá)最終的目的地。
2、它支持消息分段和重組。
消息進(jìn)行路由時(shí),在消息被送到具有跟該數(shù)據(jù)鏈路層不同的最大傳輸單元的接口的情況下,就要對消息進(jìn)行分段和重組。
3、它執(zhí)行一個(gè)無狀態(tài)操作。
由于網(wǎng)絡(luò)層74不支持消息重傳功能,它執(zhí)行一個(gè)沒有狀態(tài)機(jī)制的無狀態(tài)操作。當(dāng)一個(gè)消息被發(fā)送時(shí),無論接收器是否接收到了這個(gè)消息,這個(gè)發(fā)送的消息并不被保存,最后將消失。如果需要在端點(diǎn)間更可靠地發(fā)送/接收消息,需要將它置于傳輸層76。
統(tǒng)一過程間通信30定義了附加的地址相關(guān)原語,以便具有可以執(zhí)行上述的網(wǎng)絡(luò)層74的操作的接口。下面的表6是網(wǎng)絡(luò)層74的原語的內(nèi)容及其描述。
<在網(wǎng)絡(luò)層74上的原語及其描述>

最后,對統(tǒng)一過程間通信協(xié)議堆棧70支持的三個(gè)層中的傳輸層76進(jìn)行解釋。大體上,傳輸層76負(fù)責(zé)任務(wù)間的端到端的通信。下面關(guān)于傳輸層76的功能做更多的解釋。
1、它提供消息路由功能。
它將接收到的消息發(fā)送到目的應(yīng)用。最后,傳輸層76負(fù)責(zé)基于應(yīng)用識(shí)別符APP_ID建立一個(gè)路由表。該路由表可以通過一個(gè)統(tǒng)一過程間通信應(yīng)用程序接口60使用的內(nèi)部應(yīng)用程序接口形成。
2、它提供無連接模式和面向連接模式。在下層(例如,數(shù)據(jù)鏈路層)保障端到端的可靠性來減少通信過程中的系統(tǒng)開銷的條件下,就用到無連接模式。所以,在無連接的模式下,如在數(shù)據(jù)鏈路層72中,根本不檢查目標(biāo)應(yīng)用是否接收到了消息。另一方面,在面向連接模式下,端到端的應(yīng)用的連接應(yīng)該被建立起來,以便可以發(fā)送/接收消息,在功能方面,它與傳輸控制協(xié)議的一個(gè)插口(socket)類似。另外,由于面向連接的模式有額外的系統(tǒng)開銷,并且在建立/釋放連接的時(shí)候非常的復(fù)雜,最好不要過于經(jīng)常地使用這種模式,尤其是當(dāng)一個(gè)低層具有比較低的可靠性以及當(dāng)對實(shí)時(shí)通信請求的要求并不很多的時(shí)候。
3、它提供消息多路復(fù)用功能。
當(dāng)從許多的應(yīng)用那里接收到大量消息時(shí),傳輸層76基于起始點(diǎn)的網(wǎng)絡(luò)地址N ADDR組合這些消息,并把這些組合的消息傳遞到一個(gè)相對應(yīng)的應(yīng)用。
表7是在傳輸層76的面向連接的模式的原語的內(nèi)容和它的描述,它是一個(gè)外部接口功能所要求的。表8是在傳輸層76中的無連接的模式的原語的內(nèi)容及其描述,它是一個(gè)外部接口功能所要求的。
<在傳輸層76中的面向連接的模式的原語和它們的描述>
<在傳輸層76中的無連接的模式的原語及其描述)

下面將參照圖1到圖6說明體現(xiàn)本發(fā)明原理的用于從起始任務(wù)向終止任務(wù)傳遞消息數(shù)據(jù)的一般過程。
為傳遞一條消息到一個(gè)目的任務(wù),起始任務(wù)就調(diào)用函數(shù)Uipc_SendMsg(數(shù)據(jù),目的地址),該函數(shù)可以從統(tǒng)一過程間通信應(yīng)用程序接口提供目的任務(wù)的網(wǎng)絡(luò)地址N_ADDR、應(yīng)用識(shí)別符APP_ID和消息數(shù)據(jù)。其后,該任務(wù)將目的任務(wù)的網(wǎng)絡(luò)地址N_ADDR、應(yīng)用軟件識(shí)別符APP_ID、和消息數(shù)據(jù)載入到函數(shù)Uipc_SendMsg(數(shù)據(jù),目的地址),統(tǒng)一過程間通信應(yīng)用程序接口60決定該目的地址,即,網(wǎng)絡(luò)地址N_ADDR是否和它自己卡上的網(wǎng)絡(luò)地址一樣。如果是一樣的,也就是說,如果目的地址,或網(wǎng)絡(luò)地址,就是它自己卡上的網(wǎng)絡(luò)地址,那么,處理器內(nèi)部通信統(tǒng)一過程間通信把消息傳遞到目的地。但是,如果目的地址與它自己卡上的網(wǎng)絡(luò)地址不一樣,那么,處理器間的通信統(tǒng)一過程間通信把消息傳遞到目的地。如果載入到函數(shù)Uipc_SendMsg(數(shù)據(jù),目的地址)的網(wǎng)絡(luò)地址N_ADDR是它自己卡上的網(wǎng)絡(luò)地址,即,為處理器內(nèi)部通信統(tǒng)一過程間通信,那么,統(tǒng)一過程間通信應(yīng)用程序接口60通過操作系統(tǒng)獨(dú)立訪問應(yīng)用程序接口庫直接把消息傳遞到卡內(nèi)的目的任務(wù)的一個(gè)消息隊(duì)列,該操作系統(tǒng)獨(dú)立訪問應(yīng)用程序接口庫由圖3中的操作系統(tǒng)獨(dú)立訪問層54提供。在涉及到處理器內(nèi)部通信統(tǒng)一過程間通信的情況下,協(xié)議堆棧70根本就用不著。同時(shí),由于已經(jīng)接收到了消息,通過使用Uipc_RcvLoop()函數(shù),基于圖5和圖6中所示的公共任務(wù)結(jié)構(gòu)的基本公共控制流程,目的任務(wù)就控制諸如消息接收、消息解碼、消息處理和按照請求由任務(wù)單獨(dú)執(zhí)行的其它處理之類的相關(guān)的操作。
另一方面,如果目的地址,或網(wǎng)絡(luò)地址N_ADDR,與它自己卡上的網(wǎng)絡(luò)地址不一樣,也就是說,如果是處理器間的通信統(tǒng)一過程間通信,那么,統(tǒng)一過程間通信應(yīng)用程序接口60把消息傳遞到統(tǒng)一過程間通信協(xié)議堆棧70的一個(gè)消息隊(duì)列,用于進(jìn)行到一個(gè)外部目的地的路由搜索。更具體地說,統(tǒng)一過程間通信應(yīng)用程序接口60把消息傳遞到統(tǒng)一過程間通信協(xié)議堆棧70的一個(gè)傳遞隊(duì)列。然后,傳輸層76就引導(dǎo)針對發(fā)送到傳遞隊(duì)列的消息的傳輸層的具體操作,并處理這些消息,以及把處理過的消息發(fā)送到網(wǎng)絡(luò)層74的一個(gè)網(wǎng)絡(luò)隊(duì)列。網(wǎng)絡(luò)層74引導(dǎo)針對發(fā)送到網(wǎng)絡(luò)隊(duì)列中的網(wǎng)絡(luò)層的具體操作,并把這些消息傳遞到數(shù)據(jù)鏈路層72的一個(gè)數(shù)據(jù)鏈接隊(duì)列。類似的,數(shù)據(jù)鏈路層72引導(dǎo)針對發(fā)送到數(shù)據(jù)鏈接隊(duì)列中的消息的數(shù)據(jù)鏈路層的具體操作,并把這些消息傳遞到設(shè)備獨(dú)立訪問層(請參照圖3中的46)、通過設(shè)備獨(dú)立訪問層(請參照圖3中的46)發(fā)送到目的卡上的設(shè)備驅(qū)動(dòng)器48、發(fā)送到設(shè)備驅(qū)動(dòng)器48。
以后,發(fā)送到目的卡的設(shè)備獨(dú)立訪問層(請參照圖3的46)、設(shè)備驅(qū)動(dòng)器48的消息通過協(xié)議層70的數(shù)據(jù)鏈路層72、網(wǎng)絡(luò)層74和傳輸層76被發(fā)送到目的任務(wù)。同樣,網(wǎng)絡(luò)地址N_ADDR和應(yīng)用識(shí)別符APP_ID可以被用來識(shí)別目的卡和目的任務(wù)。相應(yīng)的,通過使用由統(tǒng)一過程間通信應(yīng)用程序接口庫提供的Uipc_RcvLoop()函數(shù),基于圖5和圖6中所示的公共任務(wù)結(jié)構(gòu)的基本控制流程,目的任務(wù)控制諸如消息接收、消息解碼、消息處理和按照請求由任務(wù)單獨(dú)執(zhí)行的其它處理之類的相關(guān)的操作。
下面的表9說明了關(guān)于Uipc_SendMsg(數(shù)據(jù),目的地址)函數(shù)的一段程序,這段程序在一個(gè)任務(wù)里執(zhí)行,該函數(shù)已經(jīng)被統(tǒng)一過程間通信應(yīng)用程序接口60調(diào)用。[表91


類似的,下面的表10說明了關(guān)于Uipc RcvLoop()函數(shù)的一段程序,這段程序在一個(gè)任務(wù)里執(zhí)行,已經(jīng)被統(tǒng)一過程間通信應(yīng)用程序接口60調(diào)用。表10

最后,本發(fā)明的統(tǒng)一過程間通信使得所有的應(yīng)用(過程)都可以通過稱為公共任務(wù)結(jié)構(gòu)的一個(gè)結(jié)構(gòu)而具有一個(gè)公共結(jié)構(gòu),并且終于減輕了開發(fā)新通信系統(tǒng)的負(fù)擔(dān)和縮短其開發(fā)時(shí)間。此外,公共軟件平臺(tái)的益處、水平組件和垂直組件結(jié)合的益處是不會(huì)因?qū)聿僮飨到y(tǒng)和設(shè)備的改變而做另外的工作。
雖然已經(jīng)參考本發(fā)明的優(yōu)選實(shí)施例對本發(fā)明進(jìn)行了展示和描述,那些本領(lǐng)域的技術(shù)人員應(yīng)該理解,在不脫離由所附權(quán)利要求書中定義的本發(fā)明的精神和范圍的前提下,可以進(jìn)行各種形式上的和細(xì)節(jié)上的改變。
權(quán)利要求
1.一種用于從起始點(diǎn)到終點(diǎn)傳遞消息的過程間通信方法,該方法包括步驟在操作系統(tǒng)獨(dú)立訪問(OIA)層,提供一個(gè)操作系統(tǒng)統(tǒng)一的接口函數(shù),該操作系統(tǒng)統(tǒng)一的接口函數(shù)對于通信裝置的操作系統(tǒng)是可以獨(dú)立訪問的;在設(shè)備獨(dú)立訪問(DIA)層,提供一個(gè)設(shè)備統(tǒng)一的接口函數(shù),該設(shè)備統(tǒng)一的接口函數(shù)對于通信裝置的物理設(shè)備是可以獨(dú)立訪問的;以及在統(tǒng)一過程間通信(UIPC)層,通過操作系統(tǒng)獨(dú)立訪問層和設(shè)備獨(dú)立訪問層中的至少一個(gè),使用由終點(diǎn)任務(wù)提供的關(guān)于終點(diǎn)的信息,以及使用基于該任務(wù)的基本公共控制流程(flow)的一個(gè)公共任務(wù)結(jié)構(gòu),從起始點(diǎn)到終點(diǎn)傳遞消息。
2.如權(quán)利要求1的方法,其中,統(tǒng)一過程間通信層包括統(tǒng)一過程間通信應(yīng)用程序接口(API),用于提供一個(gè)接口,使得任務(wù)可以使用統(tǒng)一過程間通信函數(shù),還用于基于關(guān)于終點(diǎn)的信息來確定處理器內(nèi)部通信和處理器間通信的路徑;以及統(tǒng)一過程間通信協(xié)議堆棧,用于使用由統(tǒng)一過程間通信應(yīng)用程序接口確定其通行路徑的消息,為處理器內(nèi)部的通信進(jìn)行單元間的路由。
3.如權(quán)利要求1的方法,其中,統(tǒng)一過程間通信協(xié)議堆棧包括數(shù)據(jù)鏈路層,用于連接端點(diǎn)之間的一個(gè)數(shù)據(jù)鏈接,以及在鏈接之間傳輸無差錯(cuò)數(shù)據(jù);網(wǎng)絡(luò)層,用于在處理器內(nèi)部的通信期間,在任務(wù)之間進(jìn)行消息路由;傳輸層,用于任務(wù)間的端到端通信。
4.如權(quán)利要求1的方法,其中,關(guān)于終點(diǎn)的信息包括一個(gè)應(yīng)用鑒別器和一個(gè)網(wǎng)絡(luò)地址,該應(yīng)用鑒別器用于鑒別與之通信的相對應(yīng)的任務(wù),該網(wǎng)絡(luò)地址用于定位相對應(yīng)的任務(wù)的一個(gè)物理地址。
5.如權(quán)利要求4的方法,其中,網(wǎng)絡(luò)地址包括柜-架-槽-端口(Rack-Shelf-Slot-Port)信息。
6.如權(quán)利要求4的方法,其中,統(tǒng)一過程間通信應(yīng)用程序接口是對任何種類的任務(wù)都可以應(yīng)用的公共庫。
7.如權(quán)利要求1的方法,其中,公共任務(wù)結(jié)構(gòu)的基本公共控制流程包括消息接收、消息解碼、消息處理、和一個(gè)任務(wù)將要根據(jù)請求而執(zhí)行的其它相關(guān)的功能。
8.一種用于從起始點(diǎn)到終點(diǎn)傳遞消息的處理器間通信的裝置,該裝置包括操作系統(tǒng)獨(dú)立訪問層,用于提供一個(gè)操作系統(tǒng)統(tǒng)一接口功能,該操作系統(tǒng)統(tǒng)一接口功能對于通信裝置的操作系統(tǒng)是可以獨(dú)立訪問的;設(shè)備獨(dú)立訪問層,用于提供一個(gè)設(shè)備統(tǒng)一接口功能,該設(shè)備統(tǒng)一接口功能對于通信裝置的物理設(shè)備是可以獨(dú)立訪問的;以及統(tǒng)一過程間通信層,用于通過操作系統(tǒng)獨(dú)立訪問層和設(shè)備獨(dú)立訪問層中的至少一個(gè),使用由終點(diǎn)任務(wù)提供的關(guān)于終點(diǎn)的信息,以及使用基于該任務(wù)的基本公共控制流程的一個(gè)公共任務(wù)結(jié)構(gòu),從起始點(diǎn)到終點(diǎn)傳遞消息。
9.如權(quán)利要求8的裝置,其中,統(tǒng)一過程間通信層包括統(tǒng)一過程間通信應(yīng)用程序接口,用于提供一個(gè)接口,使得任務(wù)可以使用統(tǒng)一過程間通信功能,還用于基于關(guān)于終點(diǎn)的信息來確定處理器內(nèi)部通信和處理器間通信的路徑;統(tǒng)一過程間通信協(xié)議堆棧,用于使用由統(tǒng)一過程間通信應(yīng)用程序接口確定其通行路徑的消息,為處理器內(nèi)部通信進(jìn)行單元間的路由。
10.如權(quán)利要求8的裝置,其中,統(tǒng)一過程間通信協(xié)議堆棧包括數(shù)據(jù)鏈路層,用于在端點(diǎn)之間連接一個(gè)數(shù)據(jù)鏈接,和用于在鏈接之間傳輸無差錯(cuò)數(shù)據(jù);網(wǎng)絡(luò)層,用于在處理器內(nèi)部通信期間,在任務(wù)之間進(jìn)行消息的路由;傳輸層,用于任務(wù)間的端到端的通信。
11.如權(quán)利要求8的裝置,其中,關(guān)于終點(diǎn)的信息包括一個(gè)應(yīng)用鑒別器和一個(gè)網(wǎng)絡(luò)地址,該應(yīng)用鑒別器用于鑒別與之通信的相對應(yīng)的任務(wù),該網(wǎng)絡(luò)地址用于定位相對應(yīng)的任務(wù)的一個(gè)物理地址。
12.如權(quán)利要求11的裝置,其中,網(wǎng)絡(luò)地址包括柜-架-槽-端口信息。
13.如權(quán)利要求9的裝置,其中,統(tǒng)一過程間通信應(yīng)用程序接口是對任何種類的任務(wù)都可以應(yīng)用的公共庫。
14.如權(quán)利要求8的裝置,其中,公共任務(wù)結(jié)構(gòu)的基本公共控制流程包括消息接收、消息解碼、消息處理、和一個(gè)任務(wù)將要根據(jù)請求而執(zhí)行的其它相關(guān)的功能。
15.一種用于從起始點(diǎn)到終點(diǎn)傳遞消息的處理器間通信的方法,該方法包括的步驟提供具有一個(gè)任務(wù)的基本公共控制流程的一個(gè)公共任務(wù)結(jié)構(gòu),作為統(tǒng)一過程間通信的一個(gè)接口;如果一個(gè)起始任務(wù)使用公共任務(wù)結(jié)構(gòu)來提供一條消息和關(guān)于終點(diǎn)的信息,就基于關(guān)于終點(diǎn)的信息,確定該消息是一塊卡(card)內(nèi)的處理器間通信消息,還是卡之間的處理器內(nèi)部通信消息;如果該消息屬于卡之間的處理器內(nèi)部通信消息,那么把這條消息傳遞到統(tǒng)一過程間通信協(xié)議堆棧的一個(gè)隊(duì)列進(jìn)行路由;如果該消息屬于一塊卡內(nèi)的處理器間通信消息,那么通過由操作系統(tǒng)獨(dú)立訪問層提供的應(yīng)用程序接口庫,把消息傳遞到卡內(nèi)的相對應(yīng)的任務(wù)的一個(gè)消息隊(duì)列。
16.如權(quán)利要求15的方法,其中,統(tǒng)一過程間通信協(xié)議堆棧包括數(shù)據(jù)鏈路層,用于在端點(diǎn)之間連接一個(gè)數(shù)據(jù)鏈接,和用于在鏈接之間傳輸無差錯(cuò)數(shù)據(jù);網(wǎng)絡(luò)層,用于在處理器內(nèi)部通信期間,在任務(wù)之間進(jìn)行消息的路由;傳輸層,用于任務(wù)間的端到端的通信。
17.一種用于從起始點(diǎn)到終點(diǎn)傳遞消息的處理器間通信的裝置,該裝置包括操作系統(tǒng)塊,用于在裝置中獨(dú)立地處理內(nèi)部通信;以及硬件塊,用于獨(dú)立地處理從外部向該裝置的或從該裝置向外部的外部通信。
全文摘要
從起始點(diǎn)到終點(diǎn)傳遞消息的過程間通信方法,該方法包括步驟在操作系統(tǒng)獨(dú)立訪問(OIA)層提供一個(gè)操作系統(tǒng)統(tǒng)一的接口函數(shù),該操作系統(tǒng)統(tǒng)一的接口函數(shù)對于通信裝置的操作系統(tǒng)是可以獨(dú)立訪問的;在設(shè)備獨(dú)立訪問(DIA)層,提供一個(gè)設(shè)備統(tǒng)一的接口函數(shù),該設(shè)備統(tǒng)一的接口函數(shù)對于通信裝置的物理設(shè)備是可以獨(dú)立訪問的;以及在統(tǒng)一過程間通信(UIPC)層,通過操作系統(tǒng)獨(dú)立訪問層和設(shè)備獨(dú)立訪問層中的至少一個(gè),使用由終點(diǎn)任務(wù)提供的關(guān)于終點(diǎn)的信息,以及使用基于該任務(wù)的基本公共控制流程(flow)的一個(gè)公共任務(wù)結(jié)構(gòu),從起始點(diǎn)到終點(diǎn)傳遞消息。
文檔編號(hào)G06F15/167GK1441366SQ0215455
公開日2003年9月10日 申請日期2002年9月4日 優(yōu)先權(quán)日2001年9月4日
發(fā)明者尹寧鉉 申請人:三星電子株式會(huì)社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
武陟县| 定边县| 平遥县| 吕梁市| 罗定市| 庆阳市| 台州市| 普安县| 麦盖提县| 尚义县| 耿马| 庄浪县| 仪陇县| 南开区| 宾阳县| 长宁县| 绥化市| 双柏县| 武川县| 北票市| 溧阳市| 靖西县| 平果县| 应城市| 吉安市| 龙南县| 云霄县| 杨浦区| 延长县| 新干县| 大关县| 新宾| 湘潭市| 楚雄市| 黄陵县| 水富县| 江都市| 柳河县| 屯门区| 周至县| 息烽县|