基于RapidIO的實時CORBA中間件實現(xiàn)
RIOP傳輸協(xié)議類之間的關系如圖3所示,圖中的Endpoint、NetCircuit、NetCircuit Factory、NetCollector、NetCollectorFactory、NetFlow、NetFlowFactory、NetAcceptor、NetAcceptorFactory都是ORB用于傳輸?shù)幕悾?a class="contentlabel" href="http://2s4d.com/news/listbylabel/label/實現(xiàn)">實現(xiàn)RIOP需要從這些類派生出新類,如RIOEndpo int、RIONetCircuit、RIONetCircuitFactory、RIONetAcceptor、RIONetAcceptorFactory,并且可以實現(xiàn)RIOPortRegistry、PortTransport類。
端點(Endpoint)類負責管理網(wǎng)絡連接需要的地址信息:網(wǎng)絡電路(NetCircuit)類用于管理連接,負責建立連接(客戶端)及數(shù)據(jù)收發(fā),網(wǎng)絡連接一旦建立,就可以從NetCircuit讀取或?qū)懭霐?shù)據(jù);網(wǎng)絡收集器(NetCollector)類用于在連接的服務器端接收請求,網(wǎng)絡收集器負責在NetCircuit的服務器端接收數(shù)據(jù)的激活對象,通過NetCollectorFactory可創(chuàng)建收集器的實例;網(wǎng)絡收集器(Collector)和收集器工廠(NetCo llectorFactory)類能實現(xiàn)GIOP的語法要求,因此,傳輸協(xié)議開發(fā)者不需要開發(fā)收集器類;網(wǎng)絡流控(NetFlow)類是為未來功能擴展的保留類,對應的NetFlowFactory也會被定義,因此,傳輸協(xié)議開發(fā)者不需要重寫該類;網(wǎng)絡接收器(NetAcceptor)類負責服務端監(jiān)聽網(wǎng)絡連接請求,如檢測到網(wǎng)絡請求,NetCollectorFactory實例即被創(chuàng)建,此后,NetCollectorFactory會再創(chuàng)建一個收集器(Collector)和網(wǎng)絡電路(NetCircuit),當Server開始在一個Endpoint監(jiān)聽時,ORB就會使用NetAcceptorFactory實例;RIOPortRegistry類負責將RIOP注冊到ORB的傳輸協(xié)議列表;RIOTransport類則負責初始化RIOP傳輸協(xié)議。
2.3 驗證測試
基于Rapid IO總線的實時CORBA中間件驗證環(huán)境如圖圖4所示。圖中的兩塊板卡之間通過1x模式1.25GbpsRapidIO交換網(wǎng)絡互聯(lián),板卡由1片PPC處理器(MPC8548)和1片RIO交換芯片(TSI578)構成,板卡處理器上運行的是VxWorks5.5.1操作系統(tǒng)。
測試使用客戶端調(diào)用服務端echoPacket方法,輸入不同長度字節(jié)序列的數(shù)據(jù),眼務端即可將數(shù)據(jù)原樣返回客戶端。IDL接口的定義如下:
typedefsequenceoctet>OctetSequence;
interface Echo{
oneway OctetSequence echoPacket(in OctetSequencepayload);
};
OctetSequence echoPacket(OctetSequence pavload);
服務器端可創(chuàng)建基于R10協(xié)議的對象引用,IOR里面包含有客戶端訪問服務器的RIO尋址信息,客戶通過字符串或命名服務的方式獲得對象引用,再利用該對象引用向服務器發(fā)送請求,并接收應答。IOR是一個數(shù)據(jù)結構,它提供了關于類型、協(xié)議支持和可用ORB服務的信息。ORB可創(chuàng)建、使用并維護該IOR。許多ORB供應商提供有一個實用程序,可窺視IOR的內(nèi)部,如orbix的iordump.exe。使用iordump.exe能解析、使用RIOP服務端生成的字符串化的IOR。
波段開關相關文章:波段開關原理
評論