论文部分内容阅读
随着嵌入式系统硬件和软件的不断发展,嵌入式系统之间的协同工作越来越多,各种嵌入式系统的异构性,使得多个系统之间的协同工作变得很困难。为了解决嵌入式系统和实时系统的异构问题,CORBA体系被OMG组织引入到嵌入式领域,形成了《MiniCORBA规范》和《实时CORBA规范》。符合这两个规范的嵌入式实时CORBA产品能够很好地满足嵌入式实时应用开发者在资源确定性、可预测性上的需求,为开发者提供一个嵌入式分布式系统开发的基础平台。
在CORBA体系中,定义了IDL语言(InterfaceDefinitionLanguage)用于对多个节点之间的接口进行描述。对于具体的CORBA产品而言,需要将用户定义的IDL接口转换成具体实现语言相关的代码,这个工作由IDL编译器来实现。
IDL编译器作为CORBA产品的一个必须的组成部分,对嵌入式实时CORBA产品的功能和性能影响巨大。为了保证CORBA应用的可移植性,IDL编译器生成的代码必须要符合《IDL到C++语言映射规范》。同时,IDL编译器生成的代码需要与具体的CORBA产品很好地配合,在CORBA调用过程中,很大一部分执行代码都是IDL编译生成的,所以IDL编译器生成的代码的执行效率直接影响着CORBA调用的性能。
本课题的目标是为嵌入式实时CORBA产品RTCORBA1.0设计和实现一个支持《CORBA2.6规范》和《IDL到C++语言映射规范》的IDL编译器。笔者首先对CORBA体系,以及相关规范进行介绍,通过对编译器和IDL编译器的分析,提出了一个IDL编译器的通用结构,并根据课题的需求提出了一个可行的技术路线。通过对开源IDL编译器TAO_id1的深入分析,设计和实现了针对嵌入式实时CORBA产品RTCORBA1.0的IDL编译器,该IDL编译器能够生成符合规范,同时适应嵌入式实时系统特点的目标代码,通过使用该目标代码,RTCORBA1.0能够表现出优异的性能。