基于RapidIO的實時CORBA中間件實現
RIOP傳輸協議類之間的關系如圖3所示,圖中的Endpoint、NetCircuit、NetCircuit Factory、NetCollector、NetCollectorFactory、NetFlow、NetFlowFactory、NetAcceptor、NetAcceptorFactory都是ORB用于傳輸的基類,實現RIOP需要從這些類派生出新類,如RIOEndpo int、RIONetCircuit、RIONetCircuitFactory、RIONetAcceptor、RIONetAcceptorFactory,并且可以實現RIOPortRegistry、PortTransport類。

端點(Endpoint)類負責管理網絡連接需要的地址信息:網絡電路(NetCircuit)類用于管理連接,負責建立連接(客戶端)及數據收發,網絡連接一旦建立,就可以從NetCircuit讀取或寫入數據;網絡收集器(NetCollector)類用于在連接的服務器端接收請求,網絡收集器負責在NetCircuit的服務器端接收數據的激活對象,通過NetCollectorFactory可創建收集器的實例;網絡收集器(Collector)和收集器工廠(NetCo llectorFactory)類能實現GIOP的語法要求,因此,傳輸協議開發者不需要開發收集器類;網絡流控(NetFlow)類是為未來功能擴展的保留類,對應的NetFlowFactory也會被定義,因此,傳輸協議開發者不需要重寫該類;網絡接收器(NetAcceptor)類負責服務端監聽網絡連接請求,如檢測到網絡請求,NetCollectorFactory實例即被創建,此后,NetCollectorFactory會再創建一個收集器(Collector)和網絡電路(NetCircuit),當Server開始在一個Endpoint監聽時,ORB就會使用NetAcceptorFactory實例;RIOPortRegistry類負責將RIOP注冊到ORB的傳輸協議列表;RIOTransport類則負責初始化RIOP傳輸協議。
2.3 驗證測試
基于Rapid IO總線的實時CORBA中間件驗證環境如圖圖4所示。圖中的兩塊板卡之間通過1x模式1.25GbpsRapidIO交換網絡互聯,板卡由1片PPC處理器(MPC8548)和1片RIO交換芯片(TSI578)構成,板卡處理器上運行的是VxWorks5.5.1操作系統。

測試使用客戶端調用服務端echoPacket方法,輸入不同長度字節序列的數據,眼務端即可將數據原樣返回客戶端。IDL接口的定義如下:
typedefsequenceoctet>OctetSequence;
interface Echo{
oneway OctetSequence echoPacket(in OctetSequencepayload);
};
OctetSequence echoPacket(OctetSequence pavload);
服務器端可創建基于R10協議的對象引用,IOR里面包含有客戶端訪問服務器的RIO尋址信息,客戶通過字符串或命名服務的方式獲得對象引用,再利用該對象引用向服務器發送請求,并接收應答。IOR是一個數據結構,它提供了關于類型、協議支持和可用ORB服務的信息。ORB可創建、使用并維護該IOR。許多ORB供應商提供有一個實用程序,可窺視IOR的內部,如orbix的iordump.exe。使用iordump.exe能解析、使用RIOP服務端生成的字符串化的IOR。
波段開關相關文章:波段開關原理









評論