|
Comments
|
Today's Top SOA Links
Enterprise Leveraging Open Source Solutions to Improve Productivity While Using EJBs
Improving enterprise-level business services productivity
Sep. 25, 2005 05:00 PM
This article provides a solution for improving productivity in scenarios where EJBs are used to implement business services using Spring, an Open Source POJO container, as a lightweight mock container for testing and using XDoclet attributes to define design-time considerations. The proposed solution has been validated using a POC. The subsequent sections explain the problem context, the different alternatives and their pros and cons, the industry trends and best practices, and a solution based on these trends and best practices.
Since Spring by itself doesn't provide the equivalent of JMS and MDBs and many of the features required for enterprise application development, including remoting, clustering etc., it can't be used to replace a J2EE container. Developing the business services as POJOs in Spring thus provide higher productivity, but it usually results in the services getting tied to Spring's equivalents of the J2EE container-provided features such as its declarative transaction model, remoting model, Web services stack, etc. J2EE containers usually provide more robust, standards-compliant features than their equivalents provided by Spring. For example, J2EE containers are more likely to support the latest JSRs like JSR 109, which defines a standard and portable mechanism for packaging and deploying Web services, and similarly JSR 181, which defines a simple-to-use annotations-based model for developing Web services. There are several other JSRs such as 104, 105, 106, 156, and 157 for defining standards for Web services that are more likely to be supported by J2EE containers than Spring. Similarly the remoting capabilities provided by most commercial J2EE containers provide advanced features needed by enterprise services like support for clustering with load balancing and failover for the remote calls as well as transaction propagation across the remote calls, etc., through the remote EJB model and for the other models built on them. Similarly as explained in the article that is listed first in the References section, the EJB end-point model provides a simpler mechanism for developing Web services since the container takes care of serializing the requests to the EJBs. In comparison, the Web Tier end-point model is generally supported by POJO containers that require the POJO developers to take care of the synchronization aspects. So, strategically it's better to rely on standards-compliant and vendor-supported J2EE container features than Spring's equivalent features.
Trends
Industry Best Practices
Solution Strategy Using only Spring to model the business services is flawed because it wouldn't be based on standards and wouldn't leverage the high-end features provided by AppServer vendors, and using only EJBs has the disadvantage of low productivity. So, an ideal scenario is to use a J2EE application framework that combines the good aspects of these two options. It should provide a mechanism through which it allows POJO-based development to enable faster build-deploy-test cycles, thus overcoming the productivity issues associated with EJBs, but then translates all of the required features to J2EE/EJB container features so that the application can be deployed in an application server leveraging the vendor-supported container features. It should therefore enable using a POJO container such as Spring as a mock container for testing. Reader Feedback: Page 1 of 1
Your Feedback
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
|
SYS-CON Featured Whitepapers
Most Read This Week |
||||||||||||||||||||||||||||||