Thursday, 21 April 2011

J2EE Platform


As you might be already knowing, J2EE is a platform for executing server side Java applications. Before J2EE was born, server side Java applications were written using vendor specific APIs. Each vendor had unique APIs and architectures. This resulted in a huge learning curve for Java developers and architects to learn and program with each of these API sets and higher costs for the companies. Development community could not reuse the lessons learnt in the trenches. Consequently the entire Java developer community was fragmented, isolated and stunted thus making very difficult to build serious enterprise applications in Java.
Fortunately the introduction of J2EE and its adoption by the vendors has resulted in standardization of its APIs. This in turn reduced the learning curve for server side Java developers. J2EE specification defines a whole lot of interfaces and a few classes. Vendors (like BEA and IBM for instance) have provided
implementations for these interfaces adhering to the J2EE specifications. These implementations are called J2EE Application Servers.

The J2EE application servers provide the infrastructure services such as threading, pooling and transaction management out of the box. The application developers can thus concentrate on implementing business logic. Consider a J2EE stack from a developer perspective. At the bottom of the stack is Java 2 Standard Edition (J2SE). J2EE Application Servers run in the Java Virutal Machine (JVM) sandbox. They expose the standard J2EE interfaces to the application developers. Two types1 of applications can be developed and deployed on J2EE application servers – Web applications and EJB applications. These applications are deployed and executed in “container”s. J2EE specification defines containers for managing the lifecycle of server side  components. There are two types of containers - Servlet containers and EJB containers. Servlet
containers manage the lifecycle of web applications and EJB containers manage the lifecycle of EJBs. Only Servlet containers are relevant to our discussion as Struts, the theme of this book, is a web application framework. 

No comments:

Post a Comment