Funky Shit Explained in Simple Terms — Today: EJB Libraries
EJBs provide a Java specific way for two Java applications to talk to one another. From your application’s perspective it does not matter whether they are running on the same machine or on different hosts.
If Java server A has to interact with server B, it can inject server B’s EJB library and use it as if it were a local object on server A. This mechanism is not a protocol like HTTP because it is not universal. EJBs are specific to the server on which they are running. JBoss EJBs are not compatible with Weblogic EJBs for example.