This chapter provides an overview of Red Hat Application Server and the JOnAS J2EE platform.
Red Hat Application Server is a middleware platform—it is layered between the operating system and applications. This middleware links systems and resources that are scattered across the network.
Red Hat Application Server comprises a runtime system and associated development libraries for creating and deploying Java-based Web applications with dynamic content (for example, dynamic Web sites, portal servers, and content management systems). These applications might retrieve, display, or update data in database management systems such as PostgreSQL or Oracle, or they might communicate with standard application software, such as ERP systems, or with proprietary legacy applications.
Red Hat Application Server is a robust platform for the development and deployment of Web applications written in Java and built with JSP, servlet, and Enterprise JavaBeans (EJB) technologies. It has been built to standard protocols and APIs that have emerged from Java, J2EE, Web Services, SOAP (Single Object Access Protocol), XML (Extensible Markup Language), and CORBA (Common Object Request Broker Architecture) standards groups. Developers build their applications using these standards, while Red Hat's middleware infrastructure ensures compatibility with the guidelines set forth by the J2EE specifications.
The Sun J2EE specification (http://java.sun.com/j2ee/), together with related specifications such as EJB (http://java.sun.com/products/ejb/) and JMS (http://java.sun.com/products/jms/), define an architecture and interfaces for developing and deploying distributed Internet Java server applications based on a multi-tier architecture. This specification facilitates and standardizes the development, deployment, and assembling of application components that will be deployable on J2EE platforms. These applications are typically web-based, transactional, database-oriented, multi-user, secure, scalable, and portable.
More precisely, the Sun J2EE specification describes two kinds of information:
The first is the runtime environment, called a J2EE server, that provides the execution environment and the required system services, such as the transaction service, the persistence service, the Java Message Service (JMS), and the security service.
The second is programmer and user information that explains how an application component should be developed, deployed, and used.
Not only will an application component be independent of the platform and operating system (because it is written in Java), it will also be independent of the J2EE platform.
A typical J2EE application is composed of:
Presentation components, also called web components, that define the application Web interface. These are servlets (http://java.sun.com/products/servlet/) and JSPs (http://java.sun.com/products/jsp/).
Enterprise components, the Enterprise JavaBeans (EJB), that define the application business logic and application data.
The J2EE server provides containers for hosting web and enterprise components. The container provides the component with life-cycle management and interfaces the components with the services provided by the J2EE server:
The web container handles servlet and JSP components.
The EJB container handles the Enterprise JavaBeans components.
A J2EE server can also provide an environment for deploying Java clients (accessing EJBs); this is called a client container.