RMI provides a very simple mechanism to allow both applets and servlets to communicate with one another and invoke one another's methods. RMI is a poor man's distributed object, providing Java developers with the ability to create distributed applications around a simple object-to-object synchronous communication infrastructure. RMI's power is its simplicity. Its weakness has been its difficulty communicating with other distributed objects, including CORBA ORBs. Although both RMI and IIOP are based on TCP/IP (most of IIOP and RMI, actually), they still don't speak the same language. With the advent of RMI-IIOP, this weakness has been overcome. RMI-IIOP provides developers with an implementation of the Java RMI API over IIOP, allowing them to write remote interfaces between clients and servers, and implement them with just Java technology and Java RMI APIs. RMI over IIOP is an exciting development because it allows developers to combine the best features of RMI with the best features of CORBA. Until now, we had to "fudge" such connections or depend on proprietary solutions. RMI over IIOP allows us to work entirely within the Java programming language, with no separate IDL or mapping to learn. This approach is much more flexible. It allows us to pass any serializable Java object between application components, including C++ and Smalltalk CORBA ORBs. This marriage of RMI with IIOP provides more choices for developers who want to mix and match environments. It provides product developers with a better common object-to-object communication mechanism.
|