IONA Orbix 2000 V2.0技术白皮书 - 2 Orbix 2000 结构概要


(by huihoo.com fat1 , Allen 整理)

2 Orbix 2000 结构概要

Orbix 2000 是市场上最先进的 CORBA 平台,从最初就设计为支持企业级分布系统。Orbix 2000 提供了够建 Java、C++、COBOL 和 PL/1 企业 CORBA 应用程序的开发环境,并可以用于从 NT 到 UNIX 和 OS/390 的广泛平台。

利用开发 Orbix 产品线的多年经验,IONA 工程师为 Orbix 2000 设计了新的模块化结构,即Adaptive Runtime Technology (ART) 结构,它提供了缩放性、性能和部署灵活性方面的主要先进功能。如图 2 所示 ART 结构及其插件框架比以前为分布式应用程序提供了更大的灵活性和可缩放性。



图 2 适应性运行时技术结构。


插件是一个可以在链接时或运行时装入 Orbix 2000 应用程序的代码库。插件可以包含任何类型的代码,一般它包含一些将自身向 ORB 运行时注册并提供功能的对象。可以将插件与应用程序直接链接,并在应用程序启动时装入,或在应用程序运行过程中按照需要装入。 可以在 OMG? IDL? 中定义与 ART 插件框架的接口,因此整个插件结构独立于任何特定程序设计语言 。IONA 提供了一套作为 Oribx 2000 中一部分的 ART 插件。

合格的 ART 插件开发人员能够构建新的或特定于应用程序的插件。IONA 提供了 ART 插件开发工具包作为单独订购的 IONA 产品。IONA 工程部门提供了使用的认证和培训课程。

2.1 Orbix 2000 内部结构

对象请求代理 (ORB) 提供了一个隐含了许多网络程序设计复杂性(诸如线程池控制、请求调遣等)的抽象层。ORB 创造了所有对象都是本地对象,都可以由应用程序本身的程序设计语言来访问的图景。从内部的角度来看,在 ORB 水线下,也就是说 ART 基础结构提供了插件框架。对于诸如特定网络协议、加密机制和数据库存储等实际功能的支持被集中在插件中,可以根据运行时的配置设置动态地将这些插件装入 ORB。这为您提供了准确选择所需 ORB 功能的灵活性。

因为 ORB 功能是配置到应用程序中,而不是“编译”到应用程序中的,所以可以根据需要更改选择,而不必重写或重新编译应用程序。例如,可以通过简单地配置不同的输送插件,将使用 IIOP 协议的应用程序重新配置为使用安全 SSL 协议。Adaptive Runtime Technology 基础结构提供了明确的结构,用于封装 ORB 内核和插件以将它们相互隔离开。

可以开发诸如直接 ATM 或 HTTP-NG 协议支持等新功能,而不必访问 ORB 内核代码。这意味着与单一 ORB 相比可以更容易地添加功能,并在很大程度上减少版本依赖性。从而使 Orbix 2000 得以发展,适应软件行业不断化的需求。并且其发展速度是单一的 ORB 或应用程序服务器无法比拟的。

还为将来的功能增强开放了 Orbix 2000 配置和位置域结构。Orbix 2000 定位器守侯程序 结构现在可以让用户在很大的程度上将可缩放负载平衡和容错策略应用于应用程序服务,这些应用程序服务对使用它们的客户机而言是完全透明的。通过新的配置插件,ORB 可以从其它配置管理系统透明地获得配置信息。

下面是两个实例,说明了 ART 插件如何使灵活的 Orbix 2000 应用程序开发更为简单:

实例 1 – 日志

Orbix 2000 将诊断消息记录到了日志流对象中。日志流以 ART 插件形式提供。在开发应用程序时,您可能会使用本地日志流,它记录到标准输出或文件。您可能想要在部署的系统中使用系统日志流,它记录到操作系统的日志服务(UNIX syslogd 或 Windows NT 事件日志服务)。您可以配置相同的可执行文件,根据运行该应用程序的环境装入一个或两个插件。可以扩展日志流集合以透明地支持其它日志集合服务。

实例 2 – 传送

大部分应用程序使用 IIOP 传输插件,它是标准的 CORBA ORB 内部传输协议;也可以在 Orbix 2000 企业版中使用其它协议。Orbix 2000 企业版提供了共享内存传输以在单一主机上优化通信,还提供了多路广播传输以实现大规模的订阅式通信。没有一种传输是 ORB 内核固有的,您只是简单地配置最适合您的应用程序的传输集合。该结构使 IONA 在今后支持附加传输变的很容易。

增加了一系列完整的 CORBA 服务和连接器套件后,Orbix 2000 获得了灵活性和更高的性能。Orbix 2000 可以与现今的 Orbix 3 和 OrbixWeb 共存并实现互操作,所以您可以开始够建与现有的基于 Orbix 3 和 OrbixWeb 的系统集成的 Orbix 2000 组件,并逐渐移植到 Orbix 2000 平台。

2.1.1 ORB 内核

内核 ORB 处理一些关键的抽象内容: CORBA 对象、请求、拦截器和插件。ORB 内核为开发人员提供了统一的程序设计界面,所有的内容都是 CORBA 对象。在 C++ 术语中,这表示流程中的所有内容都是作为本地 C++ 对象出现的。在现实中,对象可以是本地的,也可以是通过某个网络协议能够到达的远程对象。

ORB 将应用程序请求递送到正确的对象,而无论该对象在哪里。要完成这项工作,ORB 按照 ORB 配置设置指定的内容装入一系列插件集合。某些插件可以在启动时装入,另一些插件可以在应用程序需要时按照需要装入。在访问远程对象时,ORB 拦截本地函数调用,并把它们转换为 CORBA 可以在网络上发送的请求。

为了按这样的方式发送请求,ORB 内核建立一系列拦截器以为每个对象处理请求。ORB 内核不知道也不关心这些拦截器执行了什么操作,它只是简单地沿拦截器链传送请求。该链可以由使用标准 IIOP 协议发送请求的单一拦截器构成,也可以由用于增加交易信息,对消息进行加密,以及用 SSL 等安全协议请求的多个拦截器构成。

拦截器链对于应用程序是透明的,因此通过简单地配置不同的拦截器集合,您可以更改应用程序使用的协议或服务。无需重新编译,或者设置无需重新链接应用程序。

下面总结了 Orbix 2000 ART 基础结构的好处:

。可以将功能配置到应用程序中,而不是将功能编译到应用程序中。这大大减少了开发和测试时间,因为可以在不重新对应用程序编码或重建应用程序的情况下更改 ORB 功能。

。ART 被明确定义的接口封装在 ORB 内核之外。这使得 ORB 更为健壮,并且更易于通过新的功能进行扩展。它还可以帮助避免内核与插件之间的版本依赖性。

2.1.2 性能特性

Orbix 2000 从开始便设计为提供高性能,并提供了从最小的应用程序到最大的企业范围电子商务系统的有效缩放。 对容纳大量的客户机和服务器的可扩展性

在许多 CORBA 系统中,主要的资源瓶颈是可供进程使用的 TCP/IP 套接字连接数量有限。Orbix 2000 提供了活动连接管理,从而能够收回空闲的连接并将它们重新分配供当前使用。如果重新需要回收的连接,将自动并透明的重新建立该连接。 对大量对象的可扩展性

可移植对象适配器 (POA) 为包含大量对象的服务器提供了很高的可缩放性。POA 让您能够实现复杂的对象缓存,或只使用一个已装入内存的对象来代表数据库中的无数个 CORBA 对象。

使用大量对象的客户机和服务器都必须处理许多对象调用。对象引用包括网络寻址和对象识别信息,这些信息允许客户机连接到对象。给定进程使用的对象引用通常是为相同主机或相同服务器上的对象设定的,这些对象引用共享相同的位置信息。

Orbix 2000 使用复杂的内存管理技术,其中包括“flyweight”设计模式以避免复制对象引用中的相同部分。每条惟一的寻址信息只在内存中存储一次,然后供使用它的每个对象引用使用。

用于优化通信的共享内存

除了运行在 TCP/IP 连接上的标准 IIOP 协议外,Orbix 2000 还提供共享内存协议 (SIOP),当客户机和服务器运行在相同的主机上时,能够提供更高的性能。