Author: Jiangnan Baiyi
When I checked the J2EE 5 specification yesterday, gossip looked at the specifications that should be met if I wanted to assemble an application server:
EJB container:
Enterprise JavaBeans (EJB) 3.0JSR-220)
Java Message Service (JMS) 1.1
Java transaction API (JTA) 1.1
Java Authorization Service Provider contract for containers (jacc) 1.1
Java platform, Enterprise Edition management API 1.1 (JSR-77)
Java platform, Enterprise Edition deployment API 1.2
Java EE Connector Architecture 1.5
Web:
Explorerver faces 1.2 (JSR-252)
Servlet 2.5
Assumerver pages (JSP) 2.1
Standard tag library for JavaServer Page (jstl) 1.2 (JSR-52)
Web Services:
Javaapi for XML Web Services (JAX-WS) 2.0
Javaarchitecture for XML binding (jaxb) 2.0 (JSR-222)
Web services metadata for the Java platform 1.1 (JSR-181)
Web Services for Java EE 1.2 (JSR-109)
Java API for XML-based RPC (JAX-RPC) 1.1
Soap with attachments API for Java (SAAJ) 1.3
Java API for XML registries (jaxr) 1.0
Other:
Javamail 1, 1.4
JavaBeans activation Framework 1.1
Streaming API for XML (Stax) 1.0JSR-173)
Common annotations for the Java platform 1.0 (JSR-250)
Debugging support for other ages (JSR-45)
Looking at the practice of Geronimo, we can't help but laugh at it. It's actually playing with the form of a team of open-source software to deal with these specifications (but only to j2ee1.4 ):
1. tomcat/jetty handles Web Servlet 2.5, JSP, and jstl.
2. Axis packages everything about WebService and jaxr of Apache scout.
3. openejb handles ejb2.1, which is the most stubborn part of the chain. In addition, it is also prepared for the development of ejb3.
4. activemq JMS, mx4j JMX, jotm, and howl are used as transaction logs.
5. Wadi-A clustering, load-balancing and fail-over Solution
For more information, see 《Geronimo! Part 1: Taming the Mustang J2EE 2nd"
In addition to the above specifications, Geronimo also integrates spring and ServiceMix that supports jbi. It has used more than 50 open-source projects, and almost exhausted the projects on Apache and codehaus, bole and the North Group are empty. In this way, the appserver construction method has indeed broken a certain market status, blurred the boundaries of the application server, and played well.
The crazy integration of Geronimo relies on its gbean architecture. For details, see 《Integrate third-party components into Geronimo, While gbean references and interactions depend on the dynamic proxy generated by cglib. If you have time to learn more about this inclusive architecture, I don't know whether it is advanced or backward.
PS. TSS three messages in the last two days
1. terracotta announces clustered spring runtime -- terracotta adds cluster capabilities to spring.
2. JBoss adds Arjuna transaction engine -- JBoss integrates the transaction technology of bluestone appserver under HP and supports WebService transactions.
3. jmanage 1.0, JMX client, and released -- a JMX client with a web version (better than mx4j) and a console version.
Traditional applicaton server providers are getting worse and worse.