Simple Web Profile Application Server
The Java EE 6 Web Profile specification defines the Java EE Web Profile ("Web Profile"), a profile of the Java Platform, Enterprise Edition specifically targeted at web applications. Siwpas, (Simple Web Profile Application Server) is an application server aimed at implementing the Java EE Web Profile specification. In this article, the components of Siwpas, its current state and the level of compatibility regarding the Web Profile Specification will be discussed.
Java Enterprise Edition (Java EE or formerly known as Java 2 Platform, Enterprise Edition or J2EE) is an enterprise platform for developing highly available, secure, reliable and scalable business applications. The Java EE platform has undergone several changes from its first release version J2EE 1.2 (December 12, 1999). The latest version of the specification is Java Platform, Enterprise Edition (Java EE) Specification, v6. In this white paper, Java EE and Java Platform, Enterprise Edition (Java EE) Specification, v6 will be used interchangebly. The Java EE Specification defines "Java EE Profiles". A Java EE profile (simply "a profile") represents a configuration of the platform suited to a particular class of applications.
"Java EE Web Profile" is a "Java EE Profile" that consists of several independent specifications related to web application development. Siwpas is an open source (LGPL license) application server based on Apache Software Foundation (ASF) Java EE projects. The latest version of Siwpas is "CR-5" and the first commerical quality version is planned to be released at the end of March. This white paper has been organized as follows: Java EE Web Profile section gives some details about Web Profile. The next section talks about the ASF and its Java EE based projects. The MechSoft Siwpas section explains the components of Siwpas and its compatibility regarding the Web Profile specification. This white paper ends with Summary and References sections.
Java EE 6 Web Profile
The Java EE Platform Specification consists of a huge number of specifications (APIs). For platform provider companies, it is not easy to develop a fully compliant Java EE Platform that implements all of the required components of the Java EE Platform Specification. For application developers, it is not necessary to use all of the Java EE APIs for developing enterprise applications. Because of these observations, the Java EE Expert Group (EG) has defined Profiles in Java EE v6 and the first standard profile has been defined, "Java Platform, Enterprise Edition 6 (Java EE 6) Web Profile Specification".
The Web Profile is aimed at developers of modern web applications. Aiming "modern" web applications then implies offering a reasonably complete stack, composed of standard APIs, and out-of-the-box capability to address the needs of a large class of web applications. Furthermore, this stack should be easy to grow, so as to address any remaining developer needs. The Web Profile stack has consisted of several technologies. Table 1 shows the Web Profile required components. Java web applications are generally written as 3-tiers. These tiers are "Web Tier", "Business Tier " and "Persistence Tier". Each of the Web Profile component sits on these tiers as follows:
• Web Tier: Servlet, Java Server Pages, Debugging Support for Other Languages, Standard Tag Library for JSP, Java Server Faces.
• Business Tier: Enterprise Java Beans Lite, Persistence Tier, Java Persistence API
Some of the components are used for general functionality. These components and their functions are as follows:
• Common Annotations for the Java Platform: This JSR will develop annotations for common semantic concepts in the J2SE and J2EE platforms that apply across a variety of individual technologies:
• Java Transaction API: Transaction management and demarcation
• Bean Validation: Management of business constraints
• Managed Beans: Common lifecycle of managed beans
• Interceptors: Aspect Oriented Programming (AOP) operations
• Context and Dependency Injection for Java EE: Dependency injection for Java EE
• Dependency Injection for Java: Dependency injection for standard Java
As we know, the Java EE Web Profile is a subset of the Java EE Platform specification. Lots of Java EE Platform specification required components are not contained in the Java EE Web Profile. For exampe, these are components that not defined for the Java EE Web Profile specification: JAX-WS, JAX-RPC, JAX-R, SAAJ, JAX-RS, JAX-B, JMS, JAAS, JASPIC, JACC, JCA, JavaMail, JSR77, JSR88. Finally, it is worth remembering that Web Profile products are allowed to ship with additional technologies, to the required ones. It is conceivable that products will offer choices during installation between different configurations, some richer in extensions, or even allow for complete customization beyond the required core ("à la carte" installation).
Apache EE Projects
The Apache Software Foundation provides organizational, legal, and financial support for a broad range of open source software projects. The Foundation provides an established framework for intellectual property and financial contributions that simultaneously limits the contributors' potential legal exposure. Through a collaborative and meritocratic development process, Apache projects deliver enterprise-grade, freely available software products that attract large communities of users. The pragmatic Apache License makes it easy for all users, commercial and individual, to deploy Apache products.
In Siwpas, we use ASF Java EE projects for satisfying Java EE Web Profile required components. These projects and their correspondence to Web Profile components are shown below.
With the exception of the Apache OpenEJB project, each of the above ASF projects is standalone compatible with TCK (Technology Compatibility Kit). In other words, Tomcat 7, MyFaces 2, OpenWebBeans, Bean Validation and OpenJPA are TCK compliant projects on their own.
EJB Lite container in Siwpas is a subset of the Apache OpenEJB project and is called a Siwpas EJB Lite Container. Currently Siwpas EJB Lite Container has not been tested with EJB 3 Lite TCK.
- Java EE 6 Web Profile
- Mechsoft Siwpas Application Server