Hi all, Why do we need to use Portable RemoteObject ? I read that the ejb supports RMI over IIOP and RMI over IIOP is CORBA + JAVA standard. Why is EJB using IIOP ? Thanks in advance Hari
posted 14 years ago
We need PortableRemoteObject because some languages do not allow casting and to support this IIOP only allows stubs to implement a single interface. Since Context.lookup() returns an Object, the stub will only implement methods from Object. PortableRemoteObject gives us a way to cast a general Object to a more specific type, in a protocol independent manner. Thus it will work with RMI-IIOP, T3, RMI, etc... J2EE uses RMI-IIOP to allow interoperability with existing Corba systems. IIOP is also a more widely recognized protocol than RMI, hence it is more likely to be allowed thru firewalls. It also allows more interoperability between J2EE vendors. Before RMI-IIOP most vendors had proprietary RMI protocols optimized for their server.