Programming WebLogic RMI over IIOP

 Previous Next Contents View as PDF  

Overview of RMI over IIOP

The following sections provide a high-level view of RMI over IIOP:

 


What Are RMI and RMI over IIOP?

To understand RMI-IIOP, you should first have a working knowledge of RMI. Remote Method Invocation (RMI) is the standard for distributed object computing in Java. RMI enables an application to obtain a reference to an object that exists elsewhere in the network, and then invoke methods on that object as though it existed locally in the client's virtual machine. RMI specifies how distributed Java applications should operate over multiple Java virtual machines. RMI is written in Java and is designed exclusively for Java programs.

RMI over IIOP extends RMI to work across the IIOP protocol. This has two benefits that you can leverage. In a Java to Java paradigm this allows you to program against the standardized Internet Interop-Orb-Protocol (IIOP). If you are not working in a Java-only environment, it allows your Java programs to interact with Common Object Request Broker Architecture (CORBA) clients and execute CORBA objects. CORBA clients can be written in a variety of languages (including C++) and use the Interface-Definition-Language (IDL) to interact with a remote object.

 


Overview of WebLogic RMI-IIOP

RMI over IIOP is based on the RMI programming model and, to a lesser extent, the Java Naming and Directory Interface (JNDI). For detailed information on WebLogic RMI and JNDI, refer to Using WebLogic RMI and Programming with WebLogic JNDI. Both technologies are crucial to RMI-IIOP and it is highly recommended that you become familiar with their general concepts before starting to build an RMI-IIOP application.

The WebLogic Server 7.0 implementation of RMI-IIOP allows you to:

This document describes how to create applications for various clients types that use RMI and RMI-IIOP. How you develop your RMI-IIOP applications depends on what services and clients you are trying to integrate.

The following figure shows an RMI Object Relationships that uses IIOP


 

Support for RMI-IIOP with RMI (Java) Clients

You can use RMI-IIOP with Java/RMI clients, taking advantage of the standard IIOP protocol. The release of the 1.3.1 JDK facilitates this capability, and WebLogic Server 7.0 can readily be used with RMI-IIOP in a Java-to-Java environment. There is also a new "fat" RMI-IIOP RMI Client that can be used to develop fully clusterable RMI-IIOP applications. To use this new WebLogic RMI-IIOP RMI Client, you need to have the weblogic.jar (located in WL_HOME/server/lib) on the client side's CLASSPATH, and use the -Dweblogic.system.iiop.enableClient=true command line option when starting the client.

Support for RMI-IIOP with Tuxedo Clients

WebLogic Server 7.0 contains an implementation of the WebLogic Tuxedo Connector, an underlying technology that enables you to interoperate with Tuxedo servers. Using WebLogic Tuxedo Connector, you can leverage Tuxedo as an ORB, or integrate legacy Tuxedo systems with applications you have developed on WebLogic Server. For more information, see the WebLogic Tuxedo Connector Guide.

Support for RMI-IIOP with CORBA/IDL Clients

The developer community requires the ability to access J2EE services from CORBA/IDL clients. However, Java and CORBA are based on very different object models. Because of this, sharing data between objects created in the two programming paradigms was, until recently, limited to Remote and CORBA primitive data types. Neither CORBA structures nor Java objects could be readily passed between disparate objects. To address this limitation, the Object Management Group (OMG) created the Objects-by-Value specification . This specification defines the enabling technology for exporting the Java object model into the CORBA/IDL programming model--allowing for the interchange of complex data types between the two models. WebLogic Server can support Objects-by-Value with any CORBA ORB that correctly implements the specification.

 


Protocol Compatibility

Interoperability between WebLogic Server 7.0 and WebLogic Server 6.x and 8.1 is supported in the following scenarios:

Server-to-Server Interoperability

The following table identifies supported options for achieving interoperability between two WebLogic Server instances.

Table 1-1 WebLogic Server-to-Server Interoperability

To

Server

From Server

WebLogic Server 6.0

WebLogic Server 6.1 SP2 and any service pack higher than SP2

WebLogic Server 7.0

WebLogic Server 8.1

WebLogic Server 6.0

RMI/T3

HTTP

HTTP

HTTP

Web Services1

HTTP

Web Services2

WebLogic Server 6.1 SP2 and any service pack higher than SP2

HTTP

RMI/T3

RMI/IIOP3

HTTP

Web Services

RMI/T3

RMI/IIOP4

HTTP

Web Services

RMI/T35

RMI/IIOP6

HTTP

Web Services7

WebLogic Server 7.0

HTTP

RMI/T3

RMI/IIOP8

HTTP

RMI/T3

RMI/IIOP9

HTTP

Web Services

RMI/T3

RMI/IIOP10

HTTP

Web Services11

WebLogic Server 8.1

HTTP

RMI/T3

RMI/IIOP12

HTTP

RMI/T3

RMI/IIOP13

HTTP

Web Services14

RMI/T3

RMI/IIOP

HTTP

Web Services

Sun JDK ORB client15

RMI/IIOP16

RMI/IIOP17

RMI/IIOP18

RMI/IIOP19


1. 
Must use portable client stubs generated from the "To Server" version

2. 
Must use portable client stubs generated from the "To Server" version

3. 
No support for clustered URLs and no transaction propagation

4. 
No support for clustered URLs and no transaction propagation

5. 
Known problems with exception marshalling with releases prior to 6.1 SP4

6. 
No support for clustered URLs and no transaction propagation. Known problems with exception marshalling.

7. 
Must use portable client stubs generated from the "To Server" version

8. 
No support for clustered URLs and no transaction propagation

9. 
No support for clustered URLs

10. 
No support for clustered URLs

11. 
Must use portable client stubs generated from the "To Server" version

12. 
No support for clustered URLs and no transaction propagation. Known problems with exception marshalling

13. 
No support for clustered URLs and no transaction propagation

14. 
Must use portable client stubs generated from the "To Server" version

15. 
This option involves calling directly into the JDK ORB from within application hosted on WebLogic Server.

16. 
JDK 1.3.x only. No clustering. No transaction propagation

17. 
JDK 1.3.x only. No clustering. No transaction propagation

18. 
JDK 1.3.x or 1.4.1. No clustering. No transaction propagation

19. 
JDK 1.3.x or 1.4.1. No clustering. No transaction propagation

 

Client-to-Server Interoperability

The following table identifies supported options for achieving interoperability between a stand-alone Java client application and a WebLogic Server instance.

Table 1-2 Client-to-Server Interoperability

To

Server

From Client (stand-alone)

WebLogic Server 6.0

WebLogic Server 6.1

WebLogic Server 7.0

WebLogic Server 8.1

WebLogic Server 6.0

RMI

HTTP

HTTP

HTTP

Web Services1

HTTP

Web Services2

WebLogic Server 6.1

HTTP

RMI/T3

HTTP

Web Services

RMI/T3

HTTP

Web Services3

RMI/T34

HTTP

Web Services5

WebLogic Server 7.0

HTTP

RMI/T3

RMI/IIOP6

HTTP

RMI/T3

RMI/IIOP7

HTTP

Web Services

RMI/T3

RMI/IIOP8

HTTP

Web Services9

WebLogic Server 8.1

HTTP

RMI/T3

RMI/IIOP10

HTTP

RMI/T3

RMI/IIOP11

HTTP

Web Services12

RMI/T3

RMI/IIOP

HTTP

Web Services

Sun JDK ORB client13

RMI/IIOP14

RMI/IIOP15

RMI/IIOP16

RMI/IIOP17


1. 
Must use portable client stubs generated from the "To Server" version

2. 
Must use portable client stubs generated from the "To Server" version

3. 
Must use portable client stubs generated from the "To Server" version

4. 
Known problems with exception marshalling with releases prior to 6.1 SP4

5. 
Must use portable client stubs generated from the "To Server" version

6. 
No Cluster or Failover support. No transaction propagation

7. 
No Cluster or Failover support

8. 
No Cluster or Failover support

9. 
Must use portable client stubs generated from the "To Server" version

10. 
No Cluster or Failover support and no transaction propogation. Known problems with exception marshalling

11. 
No Cluster or Failover support and no transaction propogation. Known problems with exception marshalling

12. 
Must use portable client stubs generated from the "To Server" version

13. 
This option involved calling directly into the JDK ORB from within a client application.

14. 
JDK 1.3.x only. No clustering. No transaction propagation

15. 
JDK 1.3.x only. No clustering. No transaction propagation

16. 
JDK 1.3.x or 1.4.1. No clustering. No transaction propagation

17. 
JDK 1.3.x or 1.4.1. No clustering. No transaction propagation

 

 

Back to Top Previous Next