Java RMI over IIOP combines RMI technology with CORBA technology.
See: Description
Interface Summary | |
---|---|
PortableRemoteObjectDelegate | A delegate, implementing the functionality, provided by the {@link PortableRemoteObject}. |
StubDelegate | A delegate, implementing the functionality, provided by the {@link Stub}. |
Tie |
A Tie serves as a CORBA Servant or implementation base. |
UtilDelegate | A delegate, implementing the functionality, provided by the {@link Util}. |
ValueHandler | Serializes Java objects to and from CDR (GIOP) streams. |
ValueHandlerMultiFormat | This interface extends the previous ValueHandler, supporting various stream format versions. |
Class Summary | |
---|---|
ClassDesc | This class is used to marshal java.lang.Class objects over IIOP. |
Stub | A Stub descendants provide access to the object on the client side. |
Util | Provides utility methods used by stubs and ties to perform common operations. |
Java RMI over IIOP combines RMI technology with CORBA technology. Like plain RMI, RMI over IIOP allows to work completely in the Java programming language (no IDL). When CORBA needs a separate helper class for each structure being passed, RMI over IIOP only needs stubs and ties for the objects that are remotely accessible. As a result, development with RMI-IIOP is easier. However the specialised pure CORBA helpers needs no reflection to transfer they structures and hence may be faster than methods, used by both RMI-IIOP and plain RMI.
Like RMI, RMI over IIOP provides flexibility by allowing to pass any serializable Java object (Objects By Value) between application components. A certain "imaginary IDL" is automatically supposed; this IDL can be explicitly generated and later used to interoperate with non-java application.
Like CORBA, RMI over IIOP is based on open standards defined with the participation of hundredsof vendors and users in the OMG. It uses IIOP communication protocol that provides much better interoperability with other programming languages.
With RMI/IIOP you can use advanced CORBA features: multiple objects per servant and servants per object, servant activators and locators, servant, client and ior interceptors, CORBA naming service, various ORB policies, stringified object references and so on. This functionality is based on CORBA value type standard. RMI/IIOP supports (and GNU Classpath implements) transferring of the arbitrary connected object graphs (graph flattenning).
GNU Classpath RMI-IIOP functionality is implemented as described in OMG formal/03-09-04 (IDL to Java mapping v1.3). Value types are written as described in formal/04-03-12 (CORBA 3.0.3).