Siwpas, More than Apache Tomcat
Join the DZone community and get the full member experience.Join For Free
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 for implementing the Java™ EE Web Profile specification. In this article, the components of Siwpas, its current state and the level of compatibility regarding to the Web Profile Specification will be discussed.
Java EE 6 WEB PROFILE
Java™ EE Platform Specification consists of huge number of specifications (APIs). For platform provider companies, it is not easy to developfully 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, Java™ EE Expert Group (EG) has defined Profiles in Java™ EE v6 and first standard profile has been defined, “Java™ Platform, Enterprise Edition 6 (Java EE 6) Web Profile Specification”.
The Web Profile is aimed for developers of modern web applications. Aiming “modern” web applications then implies offering a reasonably complete stack, composed of standard APIs, and capable out-of-the-box of addressing the needs of a large class of web applications. Furthermore, this stack should be easy to grow, so as to address any remaining developer needs5. Web Profile stack has consisted of the following technologies;
- Servlet 3.0
- Java Server Pages 2.2
- Expression Language 2.2
- Debugging Support for Other Languages 1.0
- Standard Tag Library for JSP 1.2
- Java Server Faces 2.0
- Common Annotations for the Java Platform 1.0
- Enterprise Java Beans Lite 3.1
- Java Transaction API 1.1
- Java Persistence API 2.0
- Bean Validation 1.0
- Managed Beans 1.0
- Interceptors 1.1
- Context and Dependency Injection for Java EE 1.0
- Dependency Injection for Java 1.0
As known, 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, below components are not defined for Java™ EE Web Profile specification, JAX-WS, JAX-RPC, JAX-R, SAAJ, JAX-RS, JAX-B, JMS, JAAS, JASPIC, JACC, JCA, JavaMail, JSR77, JSR88.
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 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.
- Apache Tomcat 7™ Servlet, JSP,EL and related components
- Apache MyFaces 2™ Java Server Faces component
- Apache OpenEJB™ EJB 3.1 Lite and related components : Siwpas EJB Lite container is powered by the OpenEJB.
- Apache OpenWebBeans™ Dependency Injection components: Siwpas CDI container is powered by the OpenWebBeans.
- Apache Bean Validation™ Validation component
- Apache OpenJPA™ Persistence API component
MECHSOFT Siwpas Application Server
What is Siwpas
Siwpas (pronounced as Simple Web Profile Application Server) is a lightweight Java™ application server platform for developing enterprise quality Java EE web applications. Siwpas integrates above ASF Java™ EE based projects for providing Java™ EE Web Profile compatible runtime platform.
Integrating different set of projects on the same runtime is not an easy task . MechSoft has been writing integration layer component to integrate Apache Tomcat 7 runtime with Siwpas EJB 3.1 Lite container runtime. Moreover, cool web based management console to manage all aspects of the Siwpas has been written.
Siwpas management console provides the following management operations.
- Overall realtime view of the current running system
- CPU, Memory, OS, JVM Heap size
- Server configuration
- Applications view and deployment operations
- JMX, JNDI and ClassLoader views
- Web and EJB Container runtime status
- And more...
Here is the login screen of the Siwpas Console
Why another server?
Nowadays, huge number of application developers and enterprise companies want to use lightweight application servers for deploying and running their web applications. They do not want to use heavyweight Java™ EE Servers that are fully compliant with Java™ EE Specifications. They do want to manage lightweight, cloud environment friendly servers. Nonetheless, they also need more techonlogy stack for implementing their web based applications, such as using “JPA, JSF, JTA , EJB etc.” Moreover, most of them deploy their critical enterprise web applications into the Apache Tomcat in their production systems.
Siwpas is aimed to provide lightweight application server runtime based on Apache Tomcat 7 . It also fills web applications technology requirements via ASF Java EE projects. In summary, Siwpas translates the Apache Tomcat 7 into more powerful enterprise web server.
The benefits of using Siwpas can be listed as follows;
- It has lightweight but powerful runtime environment,
- It is based on very-well known JSP & Servlet Container, Apache Tomcat 7,
- It consists of Web Profile Specification technology stack,
- It consists of powerful, commerical quality ASF Java EE Projects,
- It is an open source project,
- It is supported by MechSoft (7x24 enterprise support),
- It is light and will be always light,
- It has very cool JSF based administration console.
Web Profile Compliance
Currently Siwpas is not claimed to be compatible (compliance) with Java™ EE Web Profile Specification becauase it has not been tested with Java™ EE Web Profile TCK. This does not mean that Siwpas will never be certified as a Web Profile Compliance application server. In order to test Siwpas with Java™ EE Web Profile TCK, MechSoft has to be licensee of Oracle and the issue is being discussed with Oracle to find a reasanable way to obtain TCK. As mentioned on the above paragraphs, except Apache OpenEJB, ASF Java™ EE projects are TCK compliant with their respective specificiations on themselves.
About JSR-299 and JSR-303 TCKs
Siwpas has passed "JSR-299 Web Profile TCK" and "JSR-303 TCK" succesfully. Therefore Siwpas provides JSR-299 and JSR-303 compatible CDI and Bean Validation runtime environment.
JSR-299 and JSR-303 TCKs are licensed by the Redhat as ASL v2. To get more information, visit
- JSR-303 TCK Home : http://community.jboss.org/wiki/BeanValidationTCK
- JSR-299 TCK Home : http://seamframework.org/Weld/CDITCKReleases
There are two different editions of Siwpas
- Community Edition
- Enterprise Edition
Check Compare Editions page to get more details.
The Java™ EE Web Profile Specification is the first standard profile specification in the Java™ EE Profiles that is explained in the Java™ EE Platform Specification. Instead of using a full profile compatible Java™ EE servers, now developers are able to use more lightweight server runtimes for developing their Java™ based web applications. This does not mean that full profile application servers such as Apache Geronimo will be useless. Some enterprise applications still need to use other cool features of Java™ EE full profile, such as Remote EJB Invocation, Asynchronous Message Processing via JMS, CORBA Integration etc. In an incoming version of the Java™ EE platform, a more number of specific profiles can be seen.
Siwpas is a lightweight web application server based on the ASF Java EE projects. It provides Java™ EE Web Profile components with a powerful web based administration console. It is one of the lightweight application servers to implement Java™ EE Web Profile Specification.
Siwpas Home Page
To get more information about Siwpas, visit http://siwpas.mechsoft.com.tr
Opinions expressed by DZone contributors are their own.