Hi, EJB is used in distributed programming, where objects in one JVM communicate with objects in another JVM, which may reside anywhere. For this you need remote communication which can be implemented by Remote interfaces. But if your EJBs reside in the same JVM then you might not want to use overhead of Remote interfaces. In that case you go for Local interfaces. Remote communication suffers network overhead.