竇茂森,敬 凱,葉榮飛,周繼華
(1.中國(guó)人民解放軍91404部隊(duì),秦皇島066001;2.重慶金美通信有限責(zé)任公司,重慶400030)
適用于軟件通信體系結(jié)構(gòu)的CORBA技術(shù)研究
竇茂森1,敬凱2,葉榮飛2,周繼華2
(1.中國(guó)人民解放軍91404部隊(duì),秦皇島066001;2.重慶金美通信有限責(zé)任公司,重慶400030)
介紹了軟件通信體系結(jié)構(gòu)和CORBA技術(shù),描述了CORBA技術(shù)運(yùn)行原理及在軟件通信體系結(jié)構(gòu)中的應(yīng)用方式。CORBA技術(shù)為分布式應(yīng)用提供了面向?qū)ο蟮某橄蠓椒?,能夠解決分布式環(huán)境中不同的硬件設(shè)備和軟件系統(tǒng)互聯(lián)的問(wèn)題,增強(qiáng)網(wǎng)絡(luò)間軟件的互操作性,解決傳統(tǒng)分布式計(jì)算模式中的不足等問(wèn)題,但現(xiàn)在的CORBA在ORB通信方面,基于TCP/IP的信息交換效率并不是最高,還有提高空間。針對(duì)軟件通信體系結(jié)構(gòu)實(shí)際需求,對(duì)CORBA信息交換方式進(jìn)行了深入研究,提出了能夠提高ORB之間信息傳輸效率的一種技術(shù)方案,對(duì)軟件通信體系結(jié)構(gòu)交換數(shù)據(jù)的方式進(jìn)行了擴(kuò)展,為軟件通信體系結(jié)構(gòu)的實(shí)現(xiàn)提供了一種高效的信息傳輸方式。
軟件無(wú)線電;軟件通信體系結(jié)構(gòu);公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu);對(duì)象請(qǐng)求代理;ORB間互操作協(xié)議;網(wǎng)際網(wǎng)路ORB間協(xié)定
軟件通信體系結(jié)構(gòu)(Software Communication Architecture,SCA)是美國(guó)聯(lián)合戰(zhàn)術(shù)系統(tǒng)的聯(lián)合項(xiàng)目辦公室(JPO)為建立獨(dú)立于設(shè)備的結(jié)構(gòu)框架,并能夠使開(kāi)發(fā)的產(chǎn)品互通而提出的一種體系框架。SCA規(guī)范了軟件可編程平臺(tái)的軟件體系架構(gòu)、硬件體系結(jié)構(gòu)和安全體系結(jié)構(gòu),定義了平臺(tái)開(kāi)發(fā)的標(biāo)準(zhǔn)框架。SCA已經(jīng)被軟件定義無(wú)線電(SDR,Software Definition Radio)論壇采納為嵌入式系統(tǒng)的標(biāo)準(zhǔn)通信軟件結(jié)構(gòu)[1]。
自2000年JPO發(fā)布第一個(gè)正式版本1.0版,至今SCA已經(jīng)更新到4.0版。1.0版對(duì)SCA進(jìn)行了基本的描述和定義。2001年發(fā)布的2.0版對(duì)SCA的軟件體系結(jié)構(gòu)和硬件體系結(jié)構(gòu)做了定義。2004年發(fā)布2.2.1版和3.0版,3.0版專門定義了數(shù)字信號(hào)處理硬件子系統(tǒng)(SPS)等硬件單元的可移植性附錄,并且增加了安全體系結(jié)構(gòu)附錄,但由于3.0版的不足和低效2006年重新推出了2.2版。SCA2.2.2和它之前的版本都用公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu)(CORBA,Common Object Request Broker Architecture)作為中間件。目前符合SCA規(guī)范的軟件無(wú)線電產(chǎn)品均是基于SCA2.2.2版本來(lái)做的。2012年2月最新的SCA4.0發(fā)布,進(jìn)行了較多改動(dòng),不再要求CORBA為必需的中間件[2]。
SCA規(guī)范雖然不再規(guī)定CORBA作為必需的中間件,但是CORBA作為中間件仍是一個(gè)較好的選擇。CORBA作為通信中間件,基于其消息傳輸技術(shù)可以實(shí)現(xiàn)分布式計(jì)算環(huán)境,能夠屏蔽異構(gòu)的硬件及操作系統(tǒng),并可使用多種編程語(yǔ)言。通過(guò)CORBA,應(yīng)用組件可以獲得良好的可移植性、可重用性和互操作性。
由于CORBA性能直接決定了SCA組件通信效率,因此需要對(duì)CORBA的工作原理進(jìn)行分析,結(jié)合SCA實(shí)際應(yīng)用場(chǎng)景的需求,對(duì)CORBA信息的交換方式進(jìn)行擴(kuò)展,使CORBA能夠更高效的進(jìn)行信息交換,進(jìn)而提高軟件無(wú)線電系統(tǒng)的運(yùn)行效率。
2.1CORBA簡(jiǎn)介
CORBA是由對(duì)象管理工作組(OMG,Object Management Group)基于眾多開(kāi)放系統(tǒng)平臺(tái)廠商提交的分布對(duì)象互操作內(nèi)容基礎(chǔ)上提出的應(yīng)用軟件體系結(jié)構(gòu)和對(duì)象技術(shù)規(guī)范[3]。CORBA核心是一套標(biāo)準(zhǔn)的語(yǔ)言、接口和協(xié)議。
CORBA是為了實(shí)現(xiàn)分布式計(jì)算而引人的,是一種分布對(duì)象中間件(Distributed Object Middleware)。所謂中間件,就是位于操作系統(tǒng)和應(yīng)用軟件之間的一個(gè)軟件層,它向各種應(yīng)用軟件提供服務(wù),能夠屏蔽網(wǎng)絡(luò)硬件平臺(tái)的差異性和操作系統(tǒng)與網(wǎng)絡(luò)協(xié)議的異構(gòu)性,通過(guò)網(wǎng)絡(luò)互相通信,使應(yīng)用軟件相對(duì)獨(dú)立于計(jì)算機(jī)硬件和操作系統(tǒng)平臺(tái)[4]。
CORBA技術(shù)為分布式應(yīng)用提供了面向?qū)ο蟮某橄蠓椒?,能夠解決分布式環(huán)境(DCE,Distributed Computing Environment)中不同的硬件設(shè)備和軟件系統(tǒng)互聯(lián)的問(wèn)題,能夠增強(qiáng)網(wǎng)絡(luò)間軟件的互操作性,解決傳統(tǒng)分布式計(jì)算模式中的不足等問(wèn)題,能夠很好地支持網(wǎng)絡(luò)異構(gòu)環(huán)境下對(duì)數(shù)據(jù)源的訪問(wèn),支持透明的遠(yuǎn)程訪問(wèn)[5]。
2.2CORBA運(yùn)行原理
CORBA的運(yùn)行原理如圖1所示。
CORBA的客戶端是通過(guò)對(duì)象引用來(lái)對(duì)服務(wù)器端的對(duì)象實(shí)現(xiàn)進(jìn)行訪問(wèn)的。對(duì)象引用類似一個(gè)指針,但可以表示不同進(jìn)程中的對(duì)象實(shí)現(xiàn)。
圖1 CORBA運(yùn)行原理圖
“stub”可譯作碼根??蛻舫绦虮仨毰cstub結(jié)合起來(lái)才算完整。stub是自動(dòng)生成的,不需要程序員參與。靜態(tài)框架就像服務(wù)器端的stub,它并不負(fù)責(zé)對(duì)象的實(shí)現(xiàn)??蛻舳顺绦蛞部梢酝ㄟ^(guò)動(dòng)態(tài)調(diào)用接口(DII,Dynamic Invocation Interface)向遠(yuǎn)端對(duì)象發(fā)起調(diào)用??梢詫II看作是一組標(biāo)準(zhǔn)的API,客戶程序可以不需要stub而使用這些API動(dòng)態(tài)發(fā)起一個(gè)CORBA調(diào)用。DII和stub是兩種相互獨(dú)立的調(diào)用途徑。當(dāng)客戶端動(dòng)態(tài)調(diào)用接口的時(shí)候,服務(wù)器端也有相對(duì)應(yīng)的動(dòng)態(tài)框架接口(DSI:Dynamic Skeleton Interface),同樣的,DSI也可以被看作是一組標(biāo)準(zhǔn)的API。動(dòng)態(tài)框架接口不依賴于靜態(tài)框架,客戶端和服務(wù)器端是分開(kāi)實(shí)現(xiàn)的,雙方可以選擇自身合適的方式自由組合。對(duì)象適配器提供了服務(wù)器端對(duì)象實(shí)現(xiàn)與ORB核心之間的適配層,不同的對(duì)象實(shí)現(xiàn)需求會(huì)有不同的適配器。
ORB(Object Request Broker,對(duì)象請(qǐng)求代理)負(fù)責(zé)處理底層網(wǎng)絡(luò)通信細(xì)節(jié)。在客戶端發(fā)起調(diào)用的時(shí)候,輸入的參數(shù)格式與特定的平臺(tái)和特定語(yǔ)言有關(guān),客戶端ORB負(fù)責(zé)將它們編碼成可以在網(wǎng)絡(luò)上傳送的在線格式(on-wire format),這一過(guò)程稱為編組(marshlling)。這種格式在網(wǎng)絡(luò)上傳送后到達(dá)服務(wù)器端的ORB,服務(wù)器端的ORB負(fù)責(zé)將這些在線格式“還原”成本地所使用的特定平臺(tái)和語(yǔ)言格式,這一過(guò)程稱為解組(unmarshalling)。當(dāng)服務(wù)器端調(diào)用結(jié)束以后,服務(wù)器端ORB將輸出參數(shù)和返回參數(shù)編碼成在線格式,并經(jīng)網(wǎng)絡(luò)傳送到客戶端ORB,客戶端ORB再將這些在線格式“還原”成本地所使用的特定平臺(tái)和語(yǔ)言格式,作為輸出參數(shù)和返回參數(shù)送給客戶端程序。編組和解組的引入,使客戶端和服務(wù)器端的平臺(tái)和語(yǔ)言可以不同,帶來(lái)了CORBA平臺(tái)獨(dú)立與語(yǔ)言獨(dú)立的特性。
CORBA中引入了通用的ORB互操作性結(jié)構(gòu)體系,通用ORB間協(xié)議(GIOP,General Inter ORB Protocol)。GIOP是一類抽象協(xié)議,它指定了轉(zhuǎn)換語(yǔ)法和一個(gè)消息格式的標(biāo)準(zhǔn)集,獨(dú)立開(kāi)發(fā)的ORB可以在任何一個(gè)面向連接的傳遞中進(jìn)行通信。TCP/IP上實(shí)現(xiàn)的GIOP稱為因特網(wǎng)ORB間協(xié)議(IIOP,Internet Inter-ORB Protocol)?;谝蕴W(wǎng)的CORBA用IIOP來(lái)交換信息。所有符合CORBA互操作性要求的ORB必須實(shí)現(xiàn)GIOP和IIOP。
2.3CORBA在SCA中的應(yīng)用
SCA定義了用于管理、控制、配置軟件無(wú)線電的軟件體系結(jié)構(gòu)。內(nèi)容包含接口、行為規(guī)范、一般規(guī)則、波形應(yīng)用程序接口(API)程序以及所需的安全。總體來(lái)講,是一組用來(lái)實(shí)現(xiàn)軟件無(wú)線電的規(guī)則、方法和設(shè)計(jì)標(biāo)準(zhǔn)。SCA規(guī)范包含了硬件體系結(jié)構(gòu)定義、軟件體系結(jié)構(gòu)定義、安全體系結(jié)構(gòu)定義以及應(yīng)用程序接口四個(gè)部分。SCA軟件規(guī)范能夠?qū)?yīng)用與操作環(huán)境分離使應(yīng)用功能模塊化。
SCA的架構(gòu)結(jié)構(gòu)如圖2所示。在SCA中,一個(gè)應(yīng)用程序由加載在分布處理系統(tǒng)上的多個(gè)軟件組件組成。這些組件被一個(gè)框架控制接口的實(shí)現(xiàn)管理。這些應(yīng)用組件既可以彼此通信又可以通過(guò)SCA定義的端口接口擴(kuò)展與系統(tǒng)提供的服務(wù)和設(shè)備通信。相似的,應(yīng)用與框架服務(wù)接口的通信通過(guò)CORBA中間件實(shí)現(xiàn)。有這樣的趨勢(shì),這些服務(wù)和設(shè)備(圖中的“系統(tǒng)組件”)接口會(huì)被特定的系統(tǒng)或域標(biāo)準(zhǔn)化,因此與框架接口關(guān)聯(lián),所有的應(yīng)用與系統(tǒng)在不同系統(tǒng)的通信是統(tǒng)一的。然而,對(duì)于系統(tǒng)和域的規(guī)范,這些接口的標(biāo)準(zhǔn)化是在規(guī)范的范圍之外的。
一個(gè)應(yīng)用能夠訪問(wèn)操作系統(tǒng)功能,但被限制在可移植操作系統(tǒng)接口(POSIX,the Portable Operating System Interface)規(guī)范子集SCA應(yīng)用環(huán)境配置文件(SCA標(biāo)準(zhǔn)附錄B)列舉的操作。POSIX是一個(gè)公開(kāi)的工業(yè)標(biāo)準(zhǔn)并且它的實(shí)時(shí)性擴(kuò)展兼容支持OMG的CORBA規(guī)范需求。因?yàn)榍逦腜OSIX配置文件包含更多的功能部件而對(duì)于控制一個(gè)典型的實(shí)現(xiàn)不是必須的,這些規(guī)范定義了一個(gè)最小的POSIX文件促進(jìn)SCA目的的達(dá)成。
圖2 SCA層次結(jié)構(gòu)示意圖
與應(yīng)用組件相似,系統(tǒng)組件被框架控制接口通過(guò)基本設(shè)備接口有限的管理。然而不同于應(yīng)用組件,系統(tǒng)組件對(duì)操作系統(tǒng)提供的功能的使用并不受限,因?yàn)檫@些組件符合通用的系統(tǒng)規(guī)范。
GIOP是一個(gè)指導(dǎo)性協(xié)議,是一個(gè)規(guī)范,它為工作在具體傳輸協(xié)議之上的實(shí)施協(xié)議規(guī)定了編碼方式和消息格式的框架,并不是具體協(xié)議。GIOP可以派生出各種具體的ORB互通協(xié)議,基于TCP/IP的就是IIOP,單機(jī)SCA中用到的CORBA協(xié)議通常為IIOP。
3.1基于TCP/IP的信息交換方式的不足
SCA代表了未來(lái)無(wú)線通信系統(tǒng)設(shè)計(jì)技術(shù)的發(fā)展方向,是軟件無(wú)線電系統(tǒng)的唯一標(biāo)準(zhǔn)[5]。無(wú)線電的服務(wù)正從長(zhǎng)期依賴硬導(dǎo)線連接向軟件無(wú)線電方向演進(jìn)。軟件無(wú)線電的關(guān)鍵思想是構(gòu)建一種通用、開(kāi)放性、標(biāo)準(zhǔn)化的硬件平臺(tái),工作頻段、加密類型、通信協(xié)議等都用軟件來(lái)完成。軟件無(wú)線電是新一代的無(wú)線通信系統(tǒng),是可以用軟件控制和重定義的平臺(tái)。通過(guò)添加卸載不同的軟件模塊來(lái)實(shí)現(xiàn)不同的功能,軟件可以升級(jí)更新[6]。軟件無(wú)線電是對(duì)傳統(tǒng)“純硬件電路”模式的一種替代,是軍隊(duì)無(wú)線電通信發(fā)展的方向。與此同時(shí),硬件功能讓軟件來(lái)替代,必然對(duì)軟件性能有更大的要求,這就需要軟件的運(yùn)行盡可能高效。但是現(xiàn)在的CORBA存在一些問(wèn)題,就是在ORB之間的通信方面,數(shù)據(jù)交換的效率并不是最高的,還有提高的空間。
CORBA規(guī)范將GOIP定義為它基本的互動(dòng)性框架,它描述了特定協(xié)議如何進(jìn)行創(chuàng)建以適用于GIOP框架。CORBA通過(guò)指定IDL(Interface Description Language,接口定義語(yǔ)言)使得開(kāi)發(fā)人員可以使用不同語(yǔ)言來(lái)開(kāi)發(fā)CORBA組件。通過(guò)指定網(wǎng)絡(luò)協(xié)議GIOP,使得開(kāi)發(fā)人員可以在不同的操作系統(tǒng)和不同的硬件平臺(tái)上進(jìn)行跨平臺(tái)開(kāi)發(fā)。GIOP指定了客戶機(jī)和服務(wù)器之間進(jìn)行通信所必需的大部分協(xié)議細(xì)節(jié)。IIOP(Internet Inter-ORB Protocol,因特網(wǎng)對(duì)象代理間通信協(xié)議)是GIOP基于因特網(wǎng)的實(shí)現(xiàn),提供了TCP/IP到GIOP的映射,指出如何通過(guò)TCP/IP連接交換GIOP信息。IIOP為Internet提供了一個(gè)標(biāo)準(zhǔn)的協(xié)作工作協(xié)議,它是TCP/IP環(huán)境下基本的inter-ORB協(xié)議,最普遍的傳輸層。
IIOP是為分布式應(yīng)用組件之間的通信設(shè)計(jì)的,用IIOP機(jī)制可以達(dá)到跨系統(tǒng),跨硬件平臺(tái)的目的。但是,就通信效率而言,它不是現(xiàn)存應(yīng)用通信方式之中效率最高的。由于SCA中應(yīng)用組件是基于單機(jī)通信的,可以采用操作系統(tǒng)提供的其他進(jìn)程的通信方式來(lái)代替基于TCP/IP的IIOP通信機(jī)制,比如管道、信號(hào)量、消息隊(duì)列和共享內(nèi)存等,以提高SCA系統(tǒng)的運(yùn)行效率。這些通信機(jī)制各自適用于不同的情況,大都適合應(yīng)用在同構(gòu)環(huán)境中[7]。
使得多個(gè)進(jìn)程可以訪問(wèn)同一塊內(nèi)存空間,是最快的可用IPC(Inter-Process Communication,進(jìn)程間通信)形式,是針對(duì)其他通信機(jī)制運(yùn)行效率較低而設(shè)計(jì)的,往往與其它通信機(jī)制,如信號(hào)量結(jié)合使用,來(lái)達(dá)到進(jìn)程間的同步及互斥。共享內(nèi)存通信的一個(gè)顯而易見(jiàn)的好處是效率高,因?yàn)檫M(jìn)程可以直接讀寫內(nèi)存,而不需要任何數(shù)據(jù)拷貝。有研究表明,在傳輸數(shù)據(jù)字節(jié)數(shù)在5000字節(jié)以前用共享內(nèi)存的方式最快,傳輸數(shù)據(jù)大小在5000到11000字節(jié)左右時(shí),TCP/IP的方法是效率最高的,大于11000字節(jié)數(shù)時(shí),用管道的方法最優(yōu)[8]。
3.2CORBA信息交換方式研究
3.2.1IIOP協(xié)議的處理
到目前為止,GIOP有五個(gè)版本:GIOP 1.0,GIOP 1.1,GIOP 1.2,GIOP 1.3和GIOP1.4。GIOP規(guī)范由三個(gè)要素組成:編碼方式:GIOP采用的是公共數(shù)據(jù)表示(CDR,The Common Data Representation)傳輸語(yǔ)法[9]。消息格式:GIOP中定義了七種類型的消息用于相互通信。GIOP傳輸要求:GIOP只提出對(duì)底層網(wǎng)絡(luò)傳輸?shù)臈l件,符合傳輸條件的網(wǎng)絡(luò)傳輸層都應(yīng)能提供對(duì)GIOP的支持。CDR是一種傳送語(yǔ)法,它是GIOP用來(lái)表示并傳送數(shù)據(jù)類型的一種編碼方式。GIOP只是一個(gè)指導(dǎo)性協(xié)議,它為工作在具體傳送協(xié)議之上的實(shí)施協(xié)議規(guī)定了編碼方式和消息格式框架。具體的實(shí)施協(xié)議只需在這個(gè)框架中填入特定傳輸協(xié)議所需要的信息。
如圖3所示,IIOP和GIOP的關(guān)系像是一個(gè)指定語(yǔ)言對(duì)OMG IDL的映射。GIOP可以映射到很多不同的傳輸,且具體指定對(duì)于所有的此類映射通用的協(xié)議元素,然而GIOP本身不提供完整的交互,類似IDL不能用作編譯完整的程序。IIOP和其他類似的不同傳輸映射對(duì)于抽象的GIOP定義是具體的實(shí)現(xiàn)。ESIOPs(Environment-Specific Inter-ORB Protocols,特殊環(huán)境ORB之間的協(xié)議)定義了一個(gè)不同ORB之間的接口。環(huán)境特定的ORB間協(xié)議(ESIOP),能夠針對(duì)已使用特定分布式計(jì)算基礎(chǔ)結(jié)構(gòu)的特殊狀況構(gòu)建ORB。IIOP是目前使用最為廣泛的ORB互通協(xié)議,SCA體系中采用IIOP為信息交換的中間格式。
圖3 ORB互通協(xié)議
socket是對(duì)TCP/IP的封裝和應(yīng)用,CORBA的實(shí)現(xiàn)也用到了socket??蛻舳诵枰粋€(gè)對(duì)象的服務(wù)時(shí)必須用連接請(qǐng)求啟動(dòng)與IOR內(nèi)指定地址的連接。監(jiān)聽(tīng)服務(wù)器可以接受或拒絕連接,在一般情況下,服務(wù)器應(yīng)當(dāng)接受連接請(qǐng)求。一旦連接建立起來(lái),客戶端可以通過(guò)寫入它擁有的用于連接的TCP/IP socket發(fā)送請(qǐng)求消息、定位請(qǐng)求消息或刪除請(qǐng)求消息。這個(gè)服務(wù)器可以通過(guò)寫入它的TCP/IP連接發(fā)送應(yīng)答消息、定位應(yīng)答消息和關(guān)閉連接消息。發(fā)送(或接收)一個(gè)關(guān)閉連接消息后,無(wú)論是客戶端或服務(wù)器必須關(guān)閉TCP/IP連接。
3.2.2ORB信息傳輸方式的擴(kuò)展
客戶端與服務(wù)器端的操作只是一個(gè)調(diào)用和返回,因此報(bào)文大小不會(huì)太大,用共享內(nèi)存的方式即可完成ORB之間的信息交換需求,考慮到共享內(nèi)存方式的效率,共享內(nèi)存是一種實(shí)現(xiàn)ORB之間更高效的信息傳輸方式。
不同的ORB實(shí)現(xiàn)對(duì)象引用的封裝過(guò)程各不相同。OMG的CORBA規(guī)范把設(shè)計(jì)不同域邊界之間的溝通成為橋接(bridge)。在每個(gè)域邊界上,直接從一個(gè)域的內(nèi)部格式轉(zhuǎn)換為另一個(gè)域的內(nèi)部格式被稱為直接橋接。在每個(gè)域的邊界上,進(jìn)行域內(nèi)部格式與域外部用的中間格式的交換方式被稱為間接橋接。SCA系統(tǒng)中各個(gè)組件均使用相同的ORB則不存在不同ORB之間的橋接問(wèn)題,因此對(duì)于共享內(nèi)存方式來(lái)說(shuō),不用ORB域之間的數(shù)據(jù)轉(zhuǎn)換,可以直接讀取共享內(nèi)存區(qū)域就可以達(dá)到信息傳輸?shù)哪康摹?/p>
直接存儲(chǔ)器訪問(wèn)技術(shù)(Direct Memory Access,DMA)是計(jì)算機(jī)科學(xué)中的一種內(nèi)存訪問(wèn)技術(shù),它能夠允許某些計(jì)算機(jī)內(nèi)部的硬件子系統(tǒng)獨(dú)立讀寫系統(tǒng)存儲(chǔ)器,而不需要中中央處理器的操作。在同等處理器的情況下,能夠有效降低中央處理器的負(fù)擔(dān),達(dá)到快速傳輸數(shù)據(jù)的目的[10]。DMA的思想對(duì)于高性能嵌入式系統(tǒng)算法是很重要的,DMA的方式可以實(shí)現(xiàn)內(nèi)存與內(nèi)存之間的高速交換。由此可見(jiàn),將共享內(nèi)存和DMA相結(jié)合是一種較好的能夠提高ORB之間數(shù)據(jù)交換效率,進(jìn)而提高軟件無(wú)線電系統(tǒng)運(yùn)行效率的方式。
存儲(chǔ)器到存儲(chǔ)器之間的DMA傳輸過(guò)程:存儲(chǔ)器到存儲(chǔ)器的DMA數(shù)據(jù)傳送采用數(shù)據(jù)塊傳送方式。首先送出內(nèi)存源區(qū)域的地址和控制信號(hào),將選中內(nèi)存單元的的數(shù)據(jù)暫存,接著修改地址及字節(jié)數(shù)寄存器的值,然后輸出內(nèi)存目的區(qū)域的地址及控制信號(hào),將暫存的數(shù)據(jù),通過(guò)系統(tǒng)數(shù)據(jù)總線,寫入到內(nèi)存的目的區(qū)域中去,最后修改地址和字節(jié)數(shù)寄存器的內(nèi)容,當(dāng)字節(jié)計(jì)數(shù)器減到零或外部輸入時(shí)即可結(jié)束一次DMA傳輸過(guò)程。
圖4為在對(duì)SCA和CORBA分析之后提出的一個(gè)ORB之間信息交換方式的模型,可利用該模型對(duì)CORBA信息傳輸方式進(jìn)行擴(kuò)展。該模型運(yùn)用DMA機(jī)制來(lái)操作內(nèi)存到內(nèi)存的訪問(wèn)。保留了TCP/IP信息傳輸方式,提供兩條通路供開(kāi)發(fā)者選出適當(dāng)?shù)姆绞竭M(jìn)行信息傳輸。其中,共享內(nèi)存需要增加互斥鎖或信號(hào)量機(jī)制完成內(nèi)存讀寫的同步。
SCA系統(tǒng)通常是基于單機(jī)的,用軟件取代傳統(tǒng)的硬件方式,因此對(duì)效率要求較高。因此CORBA中基于協(xié)議傳輸?shù)姆绞綋碛锌筛倪M(jìn)的空間。本框架對(duì)軟件通信體系結(jié)構(gòu)交換數(shù)據(jù)的方式進(jìn)行了擴(kuò)展,為軟件通信體系結(jié)構(gòu)的實(shí)現(xiàn)提供了一種高效的信息傳輸方式。共享內(nèi)存是速度最快的進(jìn)程間通信技術(shù),而且非常靈活,還可以把文件映射到內(nèi)存,是加快數(shù)據(jù)訪問(wèn)的理想解決方案。
圖4 ORB信息交換模型
[1]高宏偉,吳宇,施峻武,等.基于SCA的軟件無(wú)線電在FPGA上設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2011,34(19):105-110.GAO Hong-wei,WU Yu,SHI Jun-wu,et al.Design and Implementaion of SCA-based SDR on FPGA[J].Modern Electronics Technique,2011,34(19):105-110.
[2]張瓊.SCA規(guī)范的起源及發(fā)展研究[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2013(4):138-140.ZHANG Qiong.The Research on the Origin and Development of SCA Specifications[J].Computer CD Software and Applications,2013(4):138-140.
[3]周藝林,李仁發(fā),李肯立.無(wú)線CORBA中間件的系統(tǒng)結(jié)構(gòu)分析與研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2005,25(7):1718-1725.ZHOU Yi-lin,LI Ren-fa,LI Ken-li.Research on Architecture and Technology of Wireless CORBA[J].Computer Engineering and Design,2005,25(7):1718-1725.
[4]Richard E.Schantz,Douglas C.Schmidt.Middleware for Distributed Systems:Evolving the Common for Networkcentric Applications[J].chapter in Encyclopedia of Software Engineering,2001.
[5]石賤弟,趙小璞.基于軟件通信體系結(jié)構(gòu)的DSP硬件抽象層研究與設(shè)計(jì)[J].電子設(shè)計(jì)工程,2011,19(17):123-129.SHI Jian-di,ZHAO Xiao-pu.Research and Design of DSP HAL Based on Software Communication Architecture[J].Electronic Design Engineering,2011,19(17):123-129.
[6]陶玉柱,胡建旺,崔佩璋.軟件無(wú)線電技術(shù)綜述[J].通信技術(shù),2011,44(1):37-39.TAO Yu-zhu,HU Jian-wang,CUI Pei-zhang.An Overview of Software Radio[J].Communications Technology,2011,44(1):37-39.
[7]陳華清,吳鍵.開(kāi)放系統(tǒng)桌面進(jìn)程通信機(jī)制研究[J].計(jì)算機(jī)應(yīng)用研究,2006(10):194-197.CHEN Hua-qing,WU Jian.Research on Desktop Inter-Process Communication of Open System[J].Application Research of computers,2006(10):194-197.
[8]孫葉萌.單機(jī)內(nèi)進(jìn)程間三種通信方法效率的比較[J].長(zhǎng)春理工大學(xué)學(xué)報(bào),2003,26(3):81-83.SUN Ye-meng.Research on the Three Methods of Process Communication[J].Journal of Changchun Institute of Optics and Mechanics,2003,26(3):81-83.
[9]薛斐,杜慶偉.GIOP的CDR編碼特性的研究及其應(yīng)用[J].計(jì)算機(jī)應(yīng)用,2003,23(12):48-51.XUE Fei,DU Qing-wei.Research and Application of GIOP CDR Characteristics[J].Comuputer Applications,2003,23(12):48-51.
[10]魏建磊,王茹.DSP芯片中雙通道DMA的研究與設(shè)計(jì)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2008,18(3):36-39.WEI Jian-lei,WANG Ru.Design and Simulation of 2-Channel DMA in DSP[J].Computer Technology and Development,2008,18(3):36-39.
CORBA Technology Research for Software Communication Architecture
Dou Maosen1,Jing Kai2,Ye Rongfei2,Zhou Jihua2
(1.Unit 91404 of Chinese People's Liberation Army,Qinhuangdao 066001,China;2.Chongqing Jinmei Communications Co.,Ltd.,Chongqing 400030,China)
This paper introduces the software communications architecture and CORBA technology,describes CORBA technology operation principle and application in the software communications architecture.CORBA technology,providing an abstraction method of object-oriented for distributed application,can solve the interconnection problems of different hardware and software system in distributed environment,enhance the interoperability between network software and solve the problem of the deficiency of traditional distributed computing model and so on.But now,the efficiency of information exchange,based on TCP/IP,is not the highest in ORB communications.According to the actual demand for software communication architecture,we make a deep research on the mode of CORBA information exchange,put forward a technical scheme to improve the efficiency of information transmission between the ORBs and expand the mode of the software communications architecture data exchange,which provide an efficient way of information transmission for the realization of the software communications architecture.
Software Defined Radio;Software Communication Architecture;CORBA;ORB;GIOP;IIOP
10.3969/j.issn.1002-2279.2016.05.010
TP31
A
1002-2279(2016)05-0038-05
竇茂森(1979-),男,山東省平度市人,工程師/學(xué)士,主研方向:通信及指揮自動(dòng)化。周繼華(1979-),博士,正高級(jí),主研方向:無(wú)線通信與移動(dòng)網(wǎng)絡(luò)。
2016-01-04