This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
Hello, 1.I would like to know the difference between RemoteInterface, RemoteHomeInterface and LocalInterface and LocalHomeInterface. 2. Is it true that a Servlet can access a RemoteInterface but not a RemoteHomeInterface on the same machine. Thanks
The EJB interfaces are split into "home" and "remote". The home interface deals with creating and destroying the bean. The remote interface has all the business methods in it. Typically you retrieve a home interface, for example from JNDI, and you it to create the remote interface. The difference between local and remote arose later. The problem is that clients and beans communicate via network protocols. If the client is, for example, another bean, it could be running in the same JVM so commuincating via the network is a huge waste of time. The local home and local interfaces parallel the home and remote interfaces. Usually, they have exactly the same methods. As I said before, you use the home interface to retrieve the remote interface, so it makes no sense that a servlet would be able to access the remote without also being able to access the home. However, a servlet might not be able to access the local interfaces, because it would use a different class loader from the beans. That depends on the app server.