IONA Orbix 2000 V2.0技术白皮书 - 5 Orbix 2000 中的 CORBA 支持


(by huihoo.com fat1 , Allen 整理)

5.1 标准的重要性

企业应用程序必须从不同的供应商那里集成服务,这些服务包括各种的技术、应用程序模型和标准的集合。它们需要将不同的技能集合和资源、旧系统数据和旧系统代码合并在一起。业界经验显示集成这些资源最多可以占去 50% 的开发时间。

符合业界标准将降低开发和部署系统时的风险,因为不会将您固定在一个专用的解决方案中。您具有选择使用支持这些标准的任何工具的自由,并且可以选择一个最符合您的需要的工具。只要业务或其它问题能够保证,您就可以在一个环境中进行开发,在另一个环境中进行部署。

“通用对象请求代理结构” (CORBA) 和and Java 2 平台,企业版本 (J2EE) 可以接纳广泛的企业系统标准,这些系统包括数据库管理系统、交易监视程序、命名和目录服务等等。它们使用统一的基于模块的应用程序模型来绕过多层应用程序需要的现有资源。

该标准的重要性是它们能够让应用程序与底层技术和产品的更改隔离开。使用基于标准的软件意味着您的应用程序可以使用下一代组件、工具和系统来解决系统的策略需求,同时将混乱降低到现有系统和应用程序的水平。

IONA 的 Total Business Integration? 电子商务平台正完全支持 CORBA 和 J2EE 标准。这些标准是您所熟悉的,并且是成熟的,使用这些标准能够保证在这些技术领域具有专业技术的人员能够持续可用,从而保护了您的投资。这些标准还能够确保开发人员将注意力集中在业务逻辑的集成上,而不是基础结构上,从而轻松而迅速地构建关键的业务应用程序。这样便降低了培训成本和上市时间。

5.2 CORBA 的益处

CORBA 是一个用于创建分布式应用程序的开放的标准解决方案。使用 CORBA,系统可以直接在网络上进行通信,而不管使用了什么程序设计语言来创建系统,也不管对象运行在哪些操作系统和平台上。

每个常用的环境都可以使用 CORBA 解决方案,并且可以将它用于集成用 Java、C++、C、Visual Basic 和 COBOL 编写的应用程序,它可以运行在嵌入式系统、PC、UNIX 主机和大型机上。如果 CORBA 在这些环境中运行,那么应用程序可以无缝地交互。

除了它广泛的可用性以外,CORBA 还具有广泛的基础结构,该结构支持分布式业务对象需要的所有功能。该基础结构包括诸如交易、安全性和消息发送等重要的分布式服务。CORBA 广泛可用,提供成熟的基础结构,并在集成多个现有企业过程中起到重要的作用。这些因素组合在一起使得 CORBA 称为当今最重要的系统集成技术。

Orbix 2000 完全符合最新的 CORBA 2.4 规范,并且支持 CORBA 3.0 草案标准的许多功能。

5.3 CORBA 2.4 支持

5.3.1 可移植对象适配器

Orbix 2000 servers use the Portable Object Adapter (POA).POA 是编写可移植服务器代码的 CORBA 标准方式。POA 为将抽象的 CORBA 对象映射到具体的程序设计语言对象提供了灵活的框架。可以从各种不同的 POA 策略中进行选择,这些策略控制着高可缩放性系统中内存与速度的平衡。例如,使用 POA 策略可以:

。按照需要创建服务器对象

。保留了一个最近使用的服务器对象的高速缓存范围

。在内存用用单一的 C++ 或 Java 对象实现了多个 CORBA 具有相同类型的 CORBA 对象

5.3.2 异步消息传送接口和质量服务策略

Orbix 2000 实现了 CORBA 3.0 中 CORBA 消息发送规范中的某些主要功能。异步消息传送接口 (AMI) 允许客户机对常规 CORBA 操作进行安全类型的异步调用。IDL 编译程序从常规同步端口生成 AMI 存根,客户机可以使用 AMI 存根进行请求,并执行其它操作,直到应答就绪为止。

ORB 通过调用一个客户机提供的回调对象来传送回复。客户机对 AMI 的使用不需要对实现原始同步接口的服务器有任何特殊支持。

标准的客户机端质量服务 (QoS) 策略为 ORB 处理请求和回复的方式提供了更详细的控制。例如,RebindMode QoS 策略指定 ORB 是否用透明地方式重新打开关闭的连接并重新绑定转发的对象。

5.3.3 动态类型支持:DynAny 和 IFR

Orbix 2000 具有对编译时的未知数据类型进行处理的完全支持。接口库 (IFR) 存储了所有系统能够识别的 CORBA 类型的相关信息,并且可以在运行时查询这些类型。客户机可以使用“动态调用接口”(DII) 根据该运行时类型信息构建请求,服务器可以实现“全局”对象,这些对象可以在运行时通过使用“动态骨干接口”(DSI) 来实现任何接口。

虽然从 CORBA 规范的早期发行版开始,所有的这些功能都已经可用了,但是如果没有添加 DynAny 接口,它们还是不完整的。该接口允许客户机和服务器完全基于运行时信息解释或构建值,而不必编译入任何数据类型。它们是构建通用对象浏览器、类型仓库或协议网关的理想功能,它们可以将 CORBA 请求映射到某些其它对象协议。