Introduction Building distributed IT applications involves assembling distributed components and coordinating their behavior to achieve the desired functionality. Specifying, designing, building, and deploying a system or application, based on distributed components, requires significant underlying infrastructure. Instead of developing the infrastructure directly, Java 2 Enterprise Edition (J2EE) offers specifications and tools for creating a standards-based infrastructure that is well understood and documented (Vawter & Roman, 2001). J2EE J2EE is a set of standards for distributed enterprise components and their interconnection. It consists of standards specifying both frameworks for deploying components and methods for coordinating interactions. Components are based on the Java programming language and runtime environment and are deployed in distributed multi-tier architectures (Sun Microsystems, 2005a). A variety of tools and applications programming interfaces (APIs) support J2EE standards through the Java 2 Software Development Kit (J2SDK). J2EE Technologies J2EE exists in many versions that are all backward compatible. The base of J2EE is the Java 2 Standard Edition (J2SE), which includes the Java language, compilation and assembly tools in an SDK, and the Java Runtime Environment (JRE). J2EE standards added to this include XML-Based RPC (JAX-RPC), JavaServer Pages (JSP), Java Servlets, Enterprise JavaBeans components, JavaBeans Activation Framework (JAF), J2EE Connector Architecture, J2EE Management Model, J2EE Deployment API, Java Management Extensions (JMX), J2EE Authorization Contract for Containers, Java API for XML Registries (JAXR), Java Message Service (JMS), Java Naming and Directory Interface (JNDI), Java Transaction API (JTA), CORBA - RMI IIOP, Java IDL, and JDBC data access API. As with other Java standards, the J2EE standards are all developed and refined through the Java Community Process (JCP), which involves members of the public. Components and Containers J2EE applications are assembled from three basic types of components: Application clients and applets, JavaServlets and JavaServer pages (JSPs), and Enterprise Java Beans (EJBs) (Sun Microsystems, 2005c). Application clients and applets generally provide user interface functionality. JavaServlets and 1
JavaServer pages typically implement business logic and coordinate interaction between application clients or applets and other parts of the system (Sun Microsystems, 2005b). Similarly, Enterprise Java Bean components also provide business logic but use a different framework than JSPs and JavaServlets. These components are contained in J2EE containers, which provide the infrastructure or framework, which allows them to exist. A component uses its container-provided functionality to carry out operations such as communicating with other components (Sun Microsystems, 2005a). This figure illustrates common J2EE containers, components, and supporting technologies. (Sun Microsystems, 2005a) Modules and Architecture From a high-level perspective, J2EE applications are generally organized in a three-tier architectural style that represents a client layer, a business logic 2
layer, and an application layer. Within each layer are several types of J2EE Containers. J2EE Containers include EJB containers, Web service containers, and application client containers (Sun Microsystems, 2005c). Application client containers are generally part of a client layer in a system and provide interfaces to users or other systems. Web service containers include JavaServer pages and JavaServlets. Web service containers provide interaction between application client containers and other parts of a system. Generally, EJB Containers and Web service containers are deployed in the middle or businesslogic layer, where the core functionality of a distributed application is implemented (Vawter & Roman, 2001). The following figure illustrates potential layouts for J2EE containers. (more on next page) 3
Summary In providing a standard for deploying and connecting components, J2EE allows developers to focus their effort on the specific functionality of their applications and systems. Developers are free to use the J2EE standards and SDK in their 4
projects, or they may acquire products from numerous vendors that adhere to the J2EE standard. Systems constructed from J2EE are testable against a common framework shared by many other distributed applications and possess a high likelihood of successful integration with other systems constructed from the same standards (Sun Microsystems, 2005b). References Sun Microsystems. (2005a). Java 2 platform: Enterprise edition specification, v1.4 [Image]. Retrieved from http://java.sun.com/j2ee/1.4/download.html#platformspec Sun Microsystems. (2005b). J2EE FAQ. Retrieved from http://java.sun.com/j2ee/faq.html Sun Microsystems. (2005c). J2EE v1.4 glossary. Retrieved from http://java.sun.com/j2ee/1.4/docs/glossary.html Vawter, C., & Roman, E. (2001). J2EE vs. Microsoft.NET: A comparison of building xml-based web services. Retrieved from http://theserverside.com/articles/article.tss?l=j2ee-vs-dotnet 5