CORBA在分布式嵌入式实时系统中的应用
在多任务嵌入式操作系统中,多个进程可能并发要求网络进行数据传输。传统CORBA一般采用复用技术以降低硬件开销,即只有一个端口和单线连接,程序与通信端口之间的绑定是隐式的,实际的绑定被延迟到有数据传输请求时。但是这种网络复用无法保证实时性。一般情况下,网络资源属于不可抢夺资源,因此高优先级的进程必须等待低优先级进程完成后才能使用网络。为了保证实时性,可以为多个任务申请不同的端口和专线连接,程序与通信端口之间的连接绑定进行预先分配。由于嵌入式系统功能比较单一,在设计系统时事先可以确定所需要的最大连接数目,所以这种方案是可行的,只是网络硬件资源的利用率可能比较低。一种改进的方案是设立不同优先级的端口和连接,ORB根据请求的优先级动态确定使用的端口和连接。为了确保网络连接的实时性,可以针对不同情况选择以下的策略:
①选择协议:除了TCP/IP协议,可以根据实际要求采用其他网络协议以提高数据传输速度。
②私有连接:通过专线连接,线路没有复用和共享。这种方法代价较大,但是对实时性的支持也最大。
③多路连接:可以支持线路复用,也可以提高容错性能,连接的管理可以对应用程序透明。这样,ORB必须提供适当的机制以确保高优先级任务优先获得连接,另外,也可以由程序员显式绑定。
利用上述各种资源管理策略,实时CORBA可实现各种软实时和硬实时系统的QoS要求。
4 用CORBA建立分布式嵌入式系统的方案
目前,针对不同的应用场合,在内存资源受到严格限制的嵌入式设备上建立分布式系统的方法大致分成三类。
(1)减少内存使用
OMG于2002年8月推出了minimum CORBA规范1.0版以满足一些内存受到限制的系统的需求,包括软实时嵌入式系统。minimum CORBA是CORBA的一个子集,它对CORBA的某些部分进行了裁剪,去除了在嵌入式系统中不需要的部分,要求是去除这些部分后的minimal CORBA仍然能满足可移植性和可互操作性等性能。由于嵌入式系统的专用性,通常,在编译时刻都可以确定系统的功能,因此动态调用接口(DII)、动态框架接口(DSI)等部分都被省略。经过裁剪的CORBA(如ORBexpress)的静态内存占用可以降低至100KB以下。minimum CORBA并不提供对硬实时系统的支持。如果需要实现硬实时系统,则必须选择满足Real-Time CORBA规范的产品,如华盛顿大学开发的TAO。
(2)特殊配置
可针对各种设备专门设计ORB系统,如应用在手持设备上的PalmORB。各种设备对资源的需求是不一样的,而且在系统设计时可以确定,因此可以对CORBA进行更多的裁剪。这种方案往往由专业厂商来实现,其特殊性比较强,一般不具备通用性,可扩展性能也比较差,这里不作详细介绍。
(3)利用代理
UORB(Ubiquitous Object Request Broker)是Universidade Federal de Pernambuco大学的G N Rodrigues首先提出的,它类似于sun公司的Jini Surrogate Architecture。UORB不需要在嵌入式设备内安装ORB系统,嵌入式设备通过线路与一台安装了ORB的计算机相连,相互之间通过私有协议进行通信。ORB网关与其他计算机互连,用IIOP进行通信,代理主机上用软件实现对象代理,即构造嵌入式系统的虚拟对象。对除代理主机以外的其他计算机,可以把嵌入式设备当成一般的设备进行通信。
CORBA代理模型不需要在设备上安装ORB库就允许设备加入CORBA网络环境。CORBA处理不是在嵌入式设备上而是位于代理主机上。这种方式是受到Jini Surrogate Architecture的启发而提出的。嵌入式设备不能直接与网络上的其他设备或主机进行通信,而必须通过安装了此设备代理的主机间接地与网络上其他设备进行通信。在嵌入式设备上的存储资源要求很低,对设备的要求只是设备必须与代理主机进行连接和通信。
以上三种方式对嵌入式设备的各种资源要求越来越少,每种方式都有其适用的范围,分别被不同的系统所采用。
分布式嵌入式实时系统 CORBA 公共对象请求代理体系结构 相关文章:
- 用CORBA打造Linux的分布式平台(08-14)
- 基于CORBA平台的嵌入式控制器(09-04)
- GNOME利用CORBA在 Linux上创造分布式平台的方法简介(05-16)
- GNOME是怎样利用CORBA在 Linux上创造分布式平台的(08-25)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)