What's your opinion about using the new EJB3.0 specs for creating soa architectures? Will this be a stamped way and how do you see java ee's role in the future of soa architectures.
King regards, Cristian Popovici
Mark D. Hansen
Joined: May 29, 2007
My sense is that Java EE will be accepted as the foundation for SOA based on Java Web Services (JWS). See this post.
The adoption time for new Java EE releases is long because application servers have become embedded in the IT infrastructure of most large enterprise. So, its not that easy to "flip a switch" and upgrade from J2EE 1.4 to Java EE 5.
EJB 3.0 is a great step forward for ease of use. Deploying Web services as using stateless session beans with EJB 3.0 is covered in Chapters 7 and 8 of my book.
However, my sense is that servlet based deployment (i.e., services deployed without using the @Stateless annotation) will be more common that EJB based deployment except for situations (e.g., persistence, transactions) where programmers need EJB capabilities underlying the Web service.
As defined in JSR-109, the basic unit of Web services deployment in Java EE is the port component. A port component must include a service implementation bean (SIB) - which is the class that implements the service and is annotated with either @WebService or @WebServiceProvider. If you add the @Stateless annotation to the class, it gets deployed as an EJB3.0 stateless session bean. Otherwise, it gets deployed as a servlet.