嵌入式中间件产品ORBacus/E

ORBacus/E 为嵌入式应用系统设计的一个快速的浓缩的ORB。ORBACUS/E是一个理想的基于中间件的嵌入式解决方案的标准,包括VoIP、驱动器信息系统、手持设备比如PDA、手机等等。与其他的嵌入式ORB不同, ORBacus/E提供原码,使得它在任何环境下可以提供最佳的性能。ORBacus/E支持以下语言的映射:
ORBacus/E为C++提供了高性能
ORBacus/E为Java提供了最大的可移植性。
ORBacus/E实现了CORBA2.3的一个子集。

一、最快速、高效性
ORBacus/E增加了一些原始的TCP/IP套接字。例如,在Windows 2000(P3 800)上运行C++版本的ORBacus/E:
大约每秒13500个双向调用
大约每秒46800个单向调用
在相同的机器上,Java版本的ORBacus/E
大约每秒7100个双向调用
大约每秒16600个单向调用
ORBacus/E中使用了高效的技术来减少内存的占用同时提高系统性能。例如,它可以完成服务器端数组以及简单类型序列的"零拷贝"(zero-copy),如果大量的数据要传输,需要附加的性能来支持。

二、ORBacus/E占用极少的系统的资源
ORBacus/E相对于其他基于CORBA2.3标准的ORB具有更少的资源占有性.例如,一个运行在Windows平台Pentium3处理器上的ORBacus在客户端和服务器端程序
Client:内存占用98K
Server:内存占用164K
一个运行在Windows平台在Java环境下,"Hello World"程序:
Client:内存占用63K
Server:内存占用92K

三、一个灵活的、可定置的、高性能的嵌入式ORB
就灵活性而讲,ORBacus/E可以支持开放式的通信接口(OCI)。这意味着新的传输协议可以以插入式方式加入到ORB中,而不必修改ORB的内核。TCP/IP成为OCI插件的最佳选择。ORBacus/E遵循GIOP规范,IIOP作为一个具体的实现。其它的侯选插件如SCCP(Signaling Connection Control Part)、SAAL(Signaling ATM Adaptation Layer)。
尽管有一些协议是不提供可靠性和无连接的,但如果协议插件本身具有可靠性和连接管理,所以可靠性和无连接的协议可以被使用。例如,如果UDP/IP插件可以提供包分类、包备份的功能,则UDP/IP可以使用。
下面的插件可以加入到ORBacus/E中
1. PDA中的红外线接口
2. 加密技术(例如SSL)
3. 为高性能嵌入式计算机系统提供的专有的传输

4. 对容错性扩展的支持
ORBacus/E支持配置服务(multiple profiles).每一个对象引用可以包含一个或多个配置文件,每一个配置文件指向一个不同的协议或不同的服务器。一旦请求失败,ORBacus/E则可以透明的转换到其他的配置文件上。

四、嵌入式服务
ORBacus/E包含嵌入式命名服务和事件服务,作为所有服务的一个子集,它们了快速灵活的特性。在C++环境中,他们可以提供最高的性能;Java环境中,他们可以提供最好的兼容性。ORBacus/E嵌入式命名服务连接着一个类似于分类帐目的数据库,它使得数据不易丢失。Windows下(静态链接),这个嵌入式命名服务大约需要260K内存。ORBacus/E的嵌入式事件服务支持无类型的push模型。Windows环境下(静态链接),它大概要占用270K的内存。在两个事件提供者,十个事件的消费者的情况下(P3 800M,Windows),这个嵌入式事件服务大概每秒可以处理9500个事件。

五、互操作性
ORBacus/E的C++和Java版本可以与所有支持IIOP的ORB实现完全互操作(包括ORBacus/E、Orbix 2000和Orbix 3.3)。ORBacus/E支持所有IIOP1.0的数据类型。

六、优点:
。最小的CORBA v2.3 ORB
。支持C++、Java 语言的映射
。高效率
。极小的内存占有率
。可插入式(OCI)的协议结构,支持标准(TCP/IP、multicast)的传输协议
。灵活性--可提供原码
。配置简单
。支持POA(Portable Object Adapter)
。多线程
。扩展的容错功能