I am looking to get some thoughts.
I have worked with a few companies that are running J2EE applications and have adopted an enterprise-wide SOA strategy. The way applications are abstracted/designed where the service and/or session beans are wrappers for the business logic being invoked. What are the advantages of using a service rather than a Session Bean between the J2EE application and the j2EE Service? Any good thoughts or links to other discussions, articles, books, etc. would be greatly appreciated.
Web Services are self-contained, self-describing, and independent of each other. Web Services promote loose coupling using Service-Oriented Architecture. You use Enterprise Service Bus to dynamiclly connect, mediate, and control Web Service endpoints.
On the other hand, Session Beans are based on component-based architecture, they are related to each other in some ways. For example, a session facade has dependency on other Session Beans or Entities, and it cannot provide a business service without other component support.
Hope it helps.
I would agree with Michael on the most of his comments about Webservice but not sure whether explanation about Session beans were justifying the usage of web service instead of session beans directly? Also there is nothing like "Web services" as "Services". That term is a really confusing term. - Web service simply means "Connectivity" based on interface, standards and message. Behind the scene you are really connecting to existing services. If you think point-to-point connection is fine for your scenarios, i wouldnt say no to it, even thought current hype is SOA, Reusability, loose coupling etc:-)
Keep in mind there are so many direct adaptors for EJB etc from ESBs to directly interact with your existing session beans. Also keep in mind, Session Facades are the "interface" we usually expose as services, irrespective of whether they interact with entity beans or other components. If there are scenarios where u dont want to expose entire methods, you can either create a Proxy Facade session bean interface to expose as web service methods to your original session bean or modify generated webservice interface?
Did I confuse anyone? May be hard to explain?