Basic information
miniRMI is a free opensource library that serves as a lightweight replacement for
the original java.rmi [2] packages, which have the following
painful limitations for applets:
- RMI packages are missing in Microsoft Internet Explorer (MSIE),
because of "political" reasons. Microsoft even provides a RMI patch [5],
but installation requires administrator privileges on Windows machines and most users are not
willing to do such thing.
- Encryption (like SSL) cannot be used with java.rmi without signing
the code, which forces the developer buying a certificate, and requires special coding
for Netscape Navigator (NN) - not counting in "Java Plugin" and other browsers specialities.
Benefits of using miniRMI
- miniRMI is easy to use - only cosmetic changes are required to the existing RMI code.
- No installation on client/browser side necessary - unlike the official patches
([5], [6]), miniRMI works seeminglessly with any
browser supporting Java 1.1 (like NN 4.05+ or MSIE 4+) or higher (like Netscape 6.x or Mozilla
with Java Plug-in).
- In contrast to other solutions (Corba, SOAP, XML-RPC etc.), miniRMI is an ultrathin library
- miniRMI_client.jar has only 18 kB!
- SSL encryption can be used without applet signing - internal browser https protocol
provider is used (without any proprietary coding). Applications can use JSSE [7]
(integrated into JDK 1.4+) or similar library.
- miniRMI calls can share the same session with servlets - ideal for combining applets and
servlets - see miniRMI connector for ActionServlet [8].
- miniRMI works through firewals and uses the browser's proxy settings automatically.
- miniRMI can prevent tampering of remote object IDs and therefore can protect the client
from pretending to be someone else (no cryptographic libraries are needed on client).
- miniRMI calls can be intercepted by overriding
invokeMethod() method.
- Custom replacement of objects sent in miniRMI response is possible in replaceObject()
method (useful to handle problems with Java versions).
Limitations
- Although miniRMI mimics java.rmi, it is not a full 1:1 implementation.
- miniRMI sends data over http/https - this is slower than using direct socket
connections (not possible for Internet applications, where proxies are used, anyway).
- Callbacks are not supported because of the HTTP nature - use the polling technique as a workaround (see examples/bbsdemo).
[this may be solved by implementing HTTP streaming in future versions]
Documentation
Download
|
|
*JBuilder 4+ is also needed if you want to use minirmic in JBuilder
(installation: copy 'lib\miniRMIC.jar' to JBuilder's 'lib\ext' directory and restart JBuilder)
**or any servlet container compatible with Servlet specification 2.2/2.3
|
Latest news
Related projects
References
- [1] RMI Tutorial
- [2] RMI Documentation
- [3] RMI over IIOP
- [4] The Scoop on RMI and SSL
- [5] Microsoft RMI patch
- [6] IBM RMI patch
- [7] Java Secure Socket Extension (JSSE)
- [8] miniRMI Connector for ActionServlet
|
|