jakarta-eeejb-3.1ejb-2.x

Support for Distributed Interoperability


EJB 3.1 specification states the following in chapter 10. "This chapter describes the interoperability support for accessing an enterprise bean through the EJB 2.1 remote client view from clients distributed over a network, and the distributed interoperability requirements for invocations on enterprise beans from remote clients that are Java Platform, Enterprise Edition (Java EE) components. Distributed Interoperability is not defined for the EJB 3.x remote client view."

Does that means from EJB 3.x , EJB providers are free to select the protocol for Remote EJB call? Also why it was decided not to define the interoperability from EJB 3.x?


Solution

  • Yes, implementations are free to select their protocol.

    The software industry had been (and is still) moving away from RMI-IIOP/CORBA, which is probably the only viable protocol that already exists that could have been used, and the EJB 3 expert group (and vendors) likely couldn't justify the huge effort that would have been required to specify (and implement) a custom protocol. It's unclear to me that EJB 3 should have defined @Remote at all rather than just adding @RemoteHome (i.e., just define an annotation equivalent for existing capability rather than adding new capability), but I would guess the EJB expert group decided to add it just for consistency.