现在的位置: 首页 > 综合 > 正文

WebLogic RMI 编程(四)

2013年02月21日 ⁄ 综合 ⁄ 共 3340字 ⁄ 字号 评论关闭

使用 IIOP 上的 RMI

以下部分提供 IIOP 上的 RMI 的高级视图:

 


什么是 IIOP 上的RMI?

IIOP 上的 RMI 将 RMI 扩展为可在 IIOP 协议中工作。这样带来了两个可以利用的好处。在 Java 到 Java 模式中,这使您能够按照标准化的互联网内部对象请求代理协议(Internet Interop-Orb-Protocol,简称 IIOP)编程。如果您不是在纯 Java 环境下工作,则使用它可以使 Java 程序与通用对象请求代理体系结构(Common Object Request Broker Architecture,简称 CORBA)客户端交互,并执行 CORBA 对象。CORBA 客户端可使用各种语言(包括 C++)编写,并使用接口定义语言(Interface Definition Language,简称 IDL)与远程对象交互。

 


WebLogic RMI-IIOP 概述

WebLogic Server 提供了自己的 ORB 实现,默认情况下,它在程序调用 ORB.init() 时或在 JNDI 中查找 "java:comp/ORB" 时进行实例化。有关 WebLogic Server 如何符合 J2SE 1.4 中有关 CORBA 支持的规范的信息,请参阅 CORBA 对 WebLogic Server 的支持

RMI-IIOP 的 WebLogic Server 实现使您能够:

  • 使用标准化的 IIOP 协议将 Java RMI 客户端连接到 WebLogic Server
  • 将 CORBA/IDL 客户端(包括用 C++ 编写的客户端)连接到 WebLogic Server
  • 在 WebLogic Server 和 Tuxedo 客户端之间进行互操作
  • 将各种客户端连接到 WebLogic Server 上承载的 EJB

RMI-IIOP 应用程序的开发方式取决于要集成的服务和客户端。有关如何为使用 RMI 和 RMI-IIOP 的各种客户端类型创建应用程序的详细信息,请参阅独立客户端编程

图 7-1 显示了使用 IIOP 的对象的 RMI 对象关系。

图 7-1 RMI 对象关系

RMI 对象关系

 

对 RMI (Java) 客户端上使用 RMI-IIOP 的支持

可对 Java/RMI 客户端使用 RMI-IIOP,充分利用标准 IIOP 协议。WebLogic Server 为在 Java 到 Java 的环境中使用 RMI-IIOP 提供了多种选择,其中包括新的 J2EE 应用程序客户端(瘦客户端,基于占用较小空间的新客户端 JAR)。要使用这个新的瘦客户端,需要在客户端的 CLASSPATH 中包含 wlclient.jar(位于 WL_HOME/server/lib 中)。有关 RMI-IIOP 客户端选项的详细信息,请参阅独立客户端编程

对 Tuxedo 客户端上使用 RMI-IIOP 的支持

WebLogic Server 包含了 WebLogic Tuxedo Connector 的实现,这是一种使您能够与 Tuxedo 服务器进行互操作的底层技术。使用 WebLogic Tuxedo Connector,可以将 Tuxedo 作为 ORB 利用,或者将旧版 Tuxedo 系统与在 WebLogic Server 上开发的应用程序集成。有关详细信息,请参阅 WebLogic Tuxedo Connector 编程人员指南

对 CORBA/IDL 客户端上使用 RMI-IIOP 的支持

开发人员社区要求能够从 CORBA/IDL 客户端访问 J2EE 服务。但是,Java 和 CORBA 所基于的对象模型有很大不同。因此,直到现在,在用两种编程模式创建的对象间共享数据仍然仅限于 Remote 和 CORBA 基元数据类型。在异构对象间,不论是 CORBA 结构还是 Java 对象,都不能及时传递。为解决这方面的限制,Object Management Group (OMG) 创建了 Objects-by-Value 规范。此规范定义了将 Java 对象模型导出到 CORBA/IDL 编程模型中的实现技术,它允许在两种模型间互换复杂数据类型。通过正确实现规范的任意 CORBA ORB,WebLogic Server 能够支持 Objects-by-Value。

 


协议兼容性

在下列场景中,支持 WebLogic Server 9.x 与 WebLogic Server 7.0 及 8.1 之间的互操作性:

服务器与服务器之间的互操作性

下表标识了所支持的用于在两个 WebLogic Server 实例之间进行互操作的选项。

表 7-1 WebLogic Server 之间的互操作性
目标服务器
源服务器
WebLogic Server 7.0
WebLogic Server 8.1
WebLogic Server 9.x
WebLogic Server 7.0
RMI/T3
RMI/IIOP1
HTTP
Web Service
RMI/T3
RMI/IIOP2
HTTP
Web Service3
RMI/T3
RMI/IIOP4
HTTP
Web Service5
WebLogic Server 8.1
RMI/T3
RMI/IIOP6
HTTP
Web Service7
RMI/T3
RMI/IIOP
HTTP
Web Service
RMI/T3
RMI/IIOP
HTTP
Web Service
WebLogic Server 9.x
RMI/T3
RMI/IIOP8
HTTP
Web Service9
RMI/T3
RMI/IIOP
HTTP
Web Service
RMI/T3
RMI/IIOP
HTTP
Web Service
Sun JDK ORB 客户端 10
RMI/IIOP11
RMI/IIOP12
RMI/IIOP13

1 不支持群集 URL

2 不支持群集 URL

3 必须使用从“目标服务器”版本生成的可移植的客户端存根控件

4 不支持群集 URL

5 必须使用从“目标服务器”版本生成的可移植的客户端存根控件

6 不支持群集 URL 并且无事务传播

7 必须使用从“目标服务器”版本生成的可移植的客户端存根控件

8 不支持群集 URL 并且无事务传播

9 必须使用从“目标服务器”版本生成的可移植的客户端存根控件

10 此选项涉及从 WebLogic Server 上承载的应用程序直接调用 JDK ORB

11 JDK 1.3.x 或 1.4.1。无群集。无事务传播

12 JDK 1.3.x 或 1.4.1。无群集。无事务传播

13 JDK 5.0。无群集。无事务传播

 

客户端与服务器之间的互操作性

下表标识了所支持的用于在独立 Java 客户端应用程序和 WebLogic Server 实例间进行互操作的选项。

表 7-2 客户端与服务器之间的互操作性
目标服务器
独立客户端
WebLogic Server 7.0
WebLogic Server 8.1
WebLogic Server 9.x
WebLogic Server 7.0
RMI/T3
RMI/IIOP1
HTTP
Web Service
RMI/T3
RMI/IIOP2
HTTP
Web Service3
RMI/T3
RMI/IIOP4
HTTP
Web Service5
WebLogic Server 8.1
RMI/T3
RMI/IIOP6
HTTP
Web Service7
RMI/T3
RMI/IIOP
HTTP
Web Service
RMI/T3
RMI/IIOP
HTTP
Web Service
WebLogic Server 9.x
RMI/T3
RMI/IIOP8
HTTP
Web Service9
RMI/T3
RMI/IIOP
HTTP
Web Service
RMI/T3
RMI/IIOP
HTTP
Web Service
Sun JDK ORB 客户端 10
RMI/IIOP11
RMI/IIOP12
RMI/IIOP13

1 不支持群集或故障转移

2 不支持群集或故障转移

3 必须使用从“目标服务器”版本生成的可移植的客户端存根控件

4 不支持群集或故障转移

5 必须使用从“目标服务器”版本生成的可移植的客户端存根控件

6 不支持群集或故障转移,并且无事务传播。已知存在异常编组问题

7 必须使用从“目标服务器”版本生成的可移植的客户端存根控件

8 不支持群集或故障转移,并且无事务传播。已知存在异常编组问题

9 必须使用从“目标服务器”版本生成的可移植的客户端存根控件

10 此选项涉及从客户端应用程序直接调用 JDK ORB

11 JDK 1.3.x 或 1.4.1。无群集。无事务传播

12 JDK 1.3.x 或 1.4.1。无群集。无事务传播

13 JDK 5.0。无群集。无事务传播

 

抱歉!评论已关闭.