论文部分内容阅读
对象请求代理中间件ORB虽具有良好的集成分布异构应用的能力,但不能有效支持实时消息通信;面向消息的中间件MOM虽能满足企业应用中的异步松散耦合通信,但一般MOM缺乏实时QoS支持且不同厂商的MOM产品难以互操作,给系统集成带来不便。 针对这种不足,结合面向卫星测控等分布实时应用的需求,论文在深入研究分布异构应用间通信模式(RPC、RMI和Messaging)并分析总结各种模型优缺点的基础上,提出了基于CORBA/ORB构造实时消息中间件RTPS(Real-Time Publish-Subscribe)的技术方案。 在设计基于ORB的实时发布-订阅消息中间件RTPS体系结构的基础上,论文重点论述了RTPS的两个关键技术及实现:其一,面向对象的多线程架构。通过将事件的输送与处理解耦以避免阻塞所带来的影响、改善系统的实时响应能力,通过面向对象的多线程并发以支持异步事件的实时并发处理并获得系统结构上的灵活性;其二,池式内存分配。通过内存池分配方式将客户的大量动态系统调用转化为一次静态系统调用和数次固定时间的用户接口调用以减少动态内存分配的时空开销,从而改善实时发布-订阅系统的动态性能与提高其运行时端对端服务质量的(End-to-End QoS)可预测性。同时还分析和总结了两种技术的应用场景、优势与局限。 论文主要的技术贡献有: 论证了ORB与MOM两种技术相结合构建实时消息中间件RTPS的可行性;设计实现RTPS的体系结构:该结构以分布式实时发布-订阅为核心,通过职责精简消除了系统瓶颈,采用客户/服务器并置(Collocation)实现了对等模式通信; 指出异步并发处理对于动态响应系统的重要性,深入研究了用以提高发布-订阅并发程度的面向对象多线程架构、设计实现了对象化线程管理器RTPS_Thread_Manager,详细论述了将对象的方法执行与方法调用分离在不同线程内的设计模式,即主动对象(Active Obiect)的原理及核心实现RTPS_Task,并结合RTPS设计实现指出了主动对象的几个变种。 在全面分析总结各种内存分配模式及其优缺点与适用环境的基础上,针对实时响应系统对动态性能和QoS可预测性的需求,设计实现了一个 能够有效减少内存分配开销的池式分配器RTPSMacheMllocator,提 出了一个内存池管理框架MPMF。