The EJB Session Bean as a Business Services
I still keep following my integrating concept by treating every single integrated point as an interface. This business services is not an exception. I treat it like a main program for each public services. It also integrates to among of the lower layer, the EJB Session Bean which wraps the JPA Entity with purpose to hide the complexity and difficulty from the caller. It is one and only one who know the complexity of its JPA Entity, including with its business logic.
Since it is the business services which is published as a public accessing remotely by among of others, The interface should be annotated as @Remote to ensure the remote accessing. Again I also create an abstract POJO which implements that interface and wraps the common activities. The business services session bean will be derived from this abstract class and it is annotated as @Stateless
@Remote is an annotation for the interface and declaring it to be accessed remotely.
@Stateless is annotation for the POJO and declaring it to be a stateless session bean.