Sun Java Enterprise System 5 Technical Overview

Chapter 1 Introduction to Java Enterprise System

Sun JavaTM Enterprise System (Java ES) is a set of software components that provides services needed to support enterprise-strength applications distributed across a network or Internet environment. These applications are referred to as distributed enterprise applications. This book focuses on the software components of Java ES and the services they provide.

This chapter introduces Java ES and the tasks involved in using the system. The chapter contains the following sections:

Why You Need Java ES

Today’s business requirements demand software solutions that are distributed across a network or Internet environment and have high levels of performance, availability, security, scalability, and serviceability.

Java ES provides infrastructure services needed to support such distributed enterprise applications, which generally have the following characteristics:

Distributed enterprise applications require underlying infrastructure services that allow their distributed components to communicate with each other, coordinate their work, implement secure access, and so forth. These infrastructure services are supported by a hardware environment of computers and network links. This hardware environment includes SPARC® and x86 (Intel and AMD) hardware architectures.

The overall layering scheme is shown in the following figure. For the most part, Java ES provides the distributed infrastructure services layer shown in the figure.

Figure 1–1 Support Needed for Distributed Enterprise Applications

Diagram showing a distributed enterprise application
on distributed infrastructure services on a networked hardware environment.

Among the featured services provided by Java ES are the following:

Java ES also provides services that enhance availability, scalability, serviceability, and other application or system qualities. Among the quality of service features provided by Java ES are the following:

You can deploy one or more Java ES services, each of which might include a number of Java ES components.

Java ES Components

Java ES is an integration of discrete software products and components into a single software system. This integration is facilitated by a number of system-level features, as listed below:

These features are described in subsequent chapters of this book. The focus of this section is to introduce the components that are integrated into Java ES. These system components can be grouped into three main categories, as shown in the following figure.

Figure 1–2 Categories of Java ES Components

Diagram showing categories of Java ES components and
their relationship to one another.

The components provide services as follows:

For a list of Java ES components, see Appendix A, Java ES Components.

System Service Components

A number of Java ES components provide the main services that support distributed software solutions. These system services include portal services, identity and security services, web container services, J2EE application services, and persistence services.

The system service components that provide these distributed services and the services they provide are listed alphabetically and briefly described in the following table. Each system service component is a multithreaded server process capable of supporting a large number of clients. For more details on each component, see System Service Components.

Table 1–1 Java ES System Service Components

Component 

System Services Provided 

Sun Java System Access Manager

Provides access management and digital identity administration services. Access management services include authentication (including single sign-on) and role-based authorization for access to applications and/or services. Administration services include centralized administration of individual user accounts, roles, groups, and policies.

Sun Java System Application Server

Provides J2EE container services for Enterprise JavaBeansTM (EJB) components, such as session beans, entity beans, and message-driven beans. The container provides the infrastructure services needed for tightly coupled distributed components to interact, making the Application Server a platform for the development and execution of e-commerce applications and web services. Application Server also provides web container services.

Sun Java System Directory Server

Provides a central repository for storing and managing intranet and Internet information such as identity profiles (employees, customers, suppliers, and so forth), user credentials (public key certificates, passwords, and pin numbers), access privileges, application resource information, and network resource information. 

Java DB [Java ES 5 is the first release to include Java DB as a product component. Java DB was first released as a shared component named Derby Database and was included in Java ES 2005Q4.]

Provides a lightweight database for Java application development. Java DB is Sun's supported distribution of the open source Apache Derby 100% Java technology database.

Sun Java System Message Queue

Provides reliable, asynchronous messaging between loosely coupled distributed components and applications. Message Queue implements the Java Message Service (JMS) API specification and adds enterprise features such as security, scalability, and remote administration.

Sun Java System Portal Server

Provides key portal services, such as content aggregation and personalization, to browser-based clients accessing business applications or services. Portal Server also provides a configurable search engine. 

Sun Java System Service Registry

Provides a registry and repository to support web service-oriented architecture (SOA) applications. Service Registry implements industry standards for registering and discovering web services as well as for managing the associated information and facts, artifacts, such as XML schema, business process rules, access control, version control, and so forth. 

Sun Java System Web Server

Provides J2EE web container services for Java web components, such as Java servlet and JavaServer PagesTM (JSPTM) components. Web Server also supports other web application technologies for delivering static and dynamic web content, such as CGI scripts and Sun Java System Active Server Pages.

Service Quality Components

In addition to the system service components shown in Table 1–1, Java ES includes a number of components used to enhance the quality of services provided by system service components. Service quality components can also enhance custom-developed application services. The service quality components fall into the following categories:

Availability Components

Availability components provide near-continuous uptime for system service components and custom application services. The availability components included in Java ES and the services they provide are shown in the following table. For more details on each component, see Availability Components.

Table 1–2 Java ES Availability Components

Component 

Availability Services Provided 

High Availability Session Store

Provides a data store that makes application data, especially session state data, available even in the case of failure. 

Sun Cluster

Provides high availability and scalability services for Java ES, the applications that run on top of the Java ES infrastructure, and the hardware environment in which both are deployed. 

Sun Cluster Geographic Edition [Java ES 5 is the first release to include Sun Cluster Geographic Edition as a Java ES product component.]

Protects applications from unexpected disruptions using multiple clusters that are geographically separated and a redundant infrastructure that replicates data between these clusters. Sun Cluster Geographic Edition software is a layered extension of Sun Cluster software. 

Access Components

Access components provide front-end access to system services, often secure access from Internet locations outside an enterprise firewall. In addition to providing such access, many provide a routing and caching function as well. The access components included in Java ES and the services they provide are shown in the following table. For more details on each component, see Access Components.

Table 1–3 Java ES Access Components

Component 

Access Services Provided 

Sun Java System Portal Server (includes Secure Remote Access)

Provides secure, Internet access from outside a corporate firewall to Portal Server content and services, including internal portals.  

Sun Java System Web Proxy Server

Provides for caching, filtering, and distribution of web content for both outgoing and incoming Internet requests. 

Monitoring Components

Java ES includes a new monitoring feature that provides real-time system status and customizable monitoring jobs. Monitoring is implemented by the Sun Java System Monitoring Console product component, which is supported by the Sun Java System Monitoring Framework shared component. For more information, see Monitoring Components.

Shared Components

Java ES includes a number of locally installed shared libraries upon which many system service components and service quality components depend. Java ES shared components provide local services to Java ES product components running on the same host computer.

Shared components are often used to provide portability across different operating systems. Examples of Java ES shared components include: Java 2 Platform, Standard Edition (J2SE), Netscape Portable Runtime (NSPR), Network Security Services (NSS), Java Security Services for Java (JSS), and so forth. For a complete list, see Shared Components.

Shared components are installed automatically by the Java ES installer depending on the system service and service quality components that are being installed.

Components in Sun Java Suites

Java ES is available both as a single, end-to-end infrastructure software distribution and as individual suite distributions that target critical business needs. Java ES includes all Java ES components, while Sun Java System Suites include subsets of those components selected to meet particular business needs. The Java ES installer and uninstaller are included in all suite distributions, but are pared down to handle just the components in the suite. All shared components are also included in all suite distributions.

The contents of the individual suites and the business requirements each suite is intended to meet are listed in the following table.

Table 1–4 Components in Sun Java Suites

Suite 

Business Requirement 

Contents 

Sun Java Application Platform Suite

Develop, deploy, and manage next-generation service-oriented architectures (SOA) 

Access Manager 

Application Server 

Directory Server 

HADB 

Java DB 

Message Queue 

Monitoring Console 

Portal Server (includes Secure Remote Access and Mobile Access) 

Service Registry  

Web Proxy Server 

Web Server 

Sun Java Availability Suite

Disaster recovery and high availability for mission-critical applications 

Sun Cluster software 

Sun Cluster Agents 

Sun Cluster Geographic Edition 

Sun Java Communications Suite [Components with asterisks (*) are communications components that are no longer included with Java ES or installed through the Java ES installer. These components are available as part of the Sun Java Communications Suite.]

Secure and reliable messaging and collaboration services 

Access Manager 

Application Server 

Calendar Server* 

Communications Express* 

Delegated Administrator*  

Directory Server 

HADB 

Instant Messaging* 

Java DB 

Message Queue 

Messaging Server* 

Monitoring Console  

Web Proxy Server 

Web Server 

Sun Java Identity Management Suite

User identity management across computing infrastructures and application environments 

Access Manager 

Application Server 

Directory Server 

HADB  

Java DB  

Message Queue 

Monitoring Console 

Web Server 

Sun Java Web Infrastructure Suite

Web applications and services for small to medium-sized enterprises 

Access Manager 

Application Server 

Directory Server 

HADB 

Java DB 

Message Queue 

Monitoring Console 

Service Registry 

Web Proxy Server 

Web Server 

Working With Java ES

Creating business solutions based on Java ES software involves a number of standard tasks. These tasks vary in scope and difficulty depending on your starting point for the adoption of Java ES and on the nature of the solution that you are trying to create and deploy.

This section discusses two aspects of working with Java ES: the Java ES solution life cycle and the adoption scenarios that are typically involved.

Java ES Solution Life Cycle

The tasks involved in creating business solutions based on Java ES software can be divided into several phases, as shown in the following figure. The illustration also shows the category of Java ES user that generally performs the tasks.

Figure 1–3 Solution Life Cycle Phases and User Categories

Diagram showing life cycle phases and the categories
of Java ES users that perform tasks associated with each phase.

The life cycle phases shown in the preceding figure can be divided into the following general groupings:

The tasks in each life cycle phase shown in Figure 1–3 are discussed more fully in Chapter 4, Java ES Solution Life Cycle.

Figure 1–3 shows the Java ES users who typically perform the tasks shown for the life cycle phases. The following table describes the skills and background for each category of user.

Table 1–5 Java ES User Categories for Life Cycle Tasks

User 

Skills and Background 

Phases 

Business planner

System analyst 

Has general rather than in-depth technical knowledge. 

Understands strategic direction of the enterprise. 

Knows business processes, objectives, and requirements. 

Business analysis 

Technical requirements 

Logical design 

Architect

Is highly technical. 

Has broad knowledge of deployment architectures. 

Is familiar with latest technologies. 

Understands business requirements and constraints. 

Technical requirements 

Logical design 

Deployment design 

System integrator

Field engineer 

System administrator 

System manager 

Is highly technical. 

Is intimately familiar with information technology environments. 

Is experienced in implementing distributed software solutions. 

Knows network architecture, protocols, devices, and security. 

Knows scripting and programming languages. 

Deployment design 

Deployment implementation 

Specialized system administrator

Delegated administrator 

Support engineer 

Has specialized technical or product knowledge. 

Is familiar with hardware, platforms, directories, and databases. 

Is skilled at monitoring, troubleshooting, and upgrading software. 

Knows system administration for operating system platforms. 

Operations 

Java ES Adoption Scenarios

The business needs that lead to the adoption of Java ES vary widely. However, the high-level goal for nearly every Java ES deployment fits into one of the following adoption scenarios:

Each adoption scenario has its own considerations and challenges. Depending on your adoption scenario, the issues you need to address and the resources you need to invest in the life cycle phases shown in Figure 1–3 might vary.

The following considerations apply in varying degrees to the adoption scenarios:

The following table summarizes the nature of the concerns that apply to each of the Java ES adoption scenarios.

Table 1–6 Java ES Adoption Scenario Concerns

Adoption Scenario 

Migration 

Integration 

Training 

Hardware 

New system 

Not a concern 

Relatively easy to integrate new components 

Can be a significant concern 

Trade-offs between equipment costs and labor costs [Using a few powerful computers generally increases equipment costs while requiring fewer IT resources. Using many smaller computers generally decreases equipment costs while requiring more IT resources.]

Enhancement 

Can be a major concern 

Need to integrate new components with existing system 

Can be a significant concern 

Can involve significant constraints due to existing equipment 

Extension 

Not normally a concern 

Might need to integrate new components with existing system 

Might be a significant concern 

Usually requires new hardware with same trade-offs as with a new system 

Upgrade 

Can be a significant concern 

Relatively easy to integrate upgraded components 

Relatively minor concern 

Relatively minor concern 

Key Terms in This Chapter

This section explains key technical terms used in this chapter, with an emphasis on clarifying how these terms are used in the Java ES context.

adoption scenario

An overall reason for deploying Java ES software that describes the software system you start with and the goal you are trying to achieve. Four basic Java ES adoption scenarios exist: new system, replacement, extension, and upgrade.

component

A unit of software logic from which distributed applications are built. A component can be one of the system components included in Java ES or an application component that is custom developed. An application component usually conforms to a distributed component model (such as CORBA or the J2EETM platform) and performs a specific computing function. These components, singly or combined, provide business services and can be encapsulated as web services.

distributed enterprise application

An application with logic that spans a network or Internet environment (the distributed aspect) and with a scope and scale that meet the needs of a production environment or service provider (the enterprise aspect).

end user

A person who uses a distributed application often through a graphical user interface such as an Internet browser or mobile device GUI. The number of concurrent end users supported by an application is an important determinant of the deployment architecture of the application.

service

A software function performed for one or more clients. This function might be at a very low level such as a memory management service or at a high level such as a credit check business service. A high-level service can consist of a family of individual services. Services can be local (available to local clients) or distributed (available to remote clients).

product component

Java ES system service components, which provide the main Java ES infrastructure services, and Java ES service quality components, which enhance those system services. Product components are selectable within the Java ES installer.

service quality component

A type of system component included in Java ES. These components enhance the availability, security, scalability, serviceability, and other qualities of system service components and distributed application components.

shared component

A type of system component included in Java ES. Shared components, usually libraries, provide local services to other system components.

system component

Any software package or set of packages included in Java ES and installed by the Java ES installer. Several kinds of system components exist: product components that provide Java ES infrastructure services, and shared components that provide local services to other system components.

system service

One or more distributed services that define the unique functionality provided by Java ES. System services normally require the support of a number of service quality components, a number of shared components, or some of both.

system service component

A type of system component included in Java ES. System services components provide the main Java ES infrastructure services: portal services, identity and security services, web and application services, and availability services.