基于RapidIO的实时CORBA中间件实现
扩展的保留类,对应的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。
例如:iordump.exe“IOR:000000000000000D494443A4563686F3A312E3000000000000000014F49535500000050000100000000000C72696 F3A2F2F353A393030000000003385416486B558506564697465353230305F39373332323832343085526F6F74504F4185303030303030303031413538
324644460000000000”的解析结果如图5所示。
接口类型为Echo,ProfileId是之前定义的1330205525,地址信息为rio://5:900。
图6所示是COBRA over RIO与COBRA over TCP的性能测试结果,图中的横坐标是输入输出数据的长度,纵坐标是示波器测得的客户端调用echoPacket方法前后的时间差,系列1是板卡间客户端通过CORBA over RIO调用服务端方法的时间开销,系列2是扳卡间客户端通过CORBAover TCP(千兆以太网)调用服务端方法的时间开销。
3 结语
本文将基于RapidIO总线的通信协议插入到CORBA中间件中,从而大大提高了中间件的实时性。因此,该方法在对实时性要求比较高的军事、电信和航空控制等领域的分布式系统中将有巨大的应用前景。
中间件 实现 CORBA 实时 RapidIO 基于 相关文章:
- 基于ARM平台的RFID中间件系统设计(05-16)
- 分析JMX的RFID中间件设计(09-01)
- RFID应用集成中间件技术研究与开发(05-15)
- NEC 电子标签解决方案简要介绍(04-16)
- 中间件——RFID系统的神经中枢(04-16)
- 基于RFID的EPC中间件的设计(04-14)