I've heard a long time ago that EJB is based on RMI, and recently some American colleagues have said that there are problems with RMI based remote invocation.
But, after looking at some JBoss documentation, There always a different answer:
First, the JBoss application Server5 EJB is the JBoss EJB3 implementation.
In the JBoss EJB3 reference documentation, it is pointed out that JBoss EJB3 is based on JBoss remoting
and JBoss Remoting's home page that it is the transport protocol support a lot:
Socket (SSL socket)
RMI (SSL RMI)//Mistress identity
HTTP (S)
Bisocket (SSL bisocket)
Servlet (SSL servlet)
The default configuration is the JBoss socket method, not RMI. There are guidelines for configuring EJB3 for other protocols within the JBoss EJB3 wiki.
EJBs can be based on RMI, not on RMI
remote invocation, all the same, is serialization, network transmission, deserialization.
Whether it's com/com+,soap,webservice,rmi,.net remoting.
The same runtime, can be native binary serialization, serialization of high efficiency.
The way in which text is serialized (xml/json/custom format) can be across platforms and languages, generally based on intermediate types. The efficiency of serialization is low and the amount of data is too high.
Network transmission can make socket/http/or custom protocol.
Obviously the redundancy of socket data is minimal and the efficiency is highest. RMI is actually a custom protocol on the socket.
HTTP obviously to take the HTTP message, the text is the most appropriate way to achieve the simplest, development and deployment convenience.