Sun Java Enterprise System 2005Q1 Technical Overview |
Chapter 1
Introduction to Java Enterprise SystemSun Java Enterprise System (Java ES) is a set of software components that provide services needed to support enterprise-strength applications distributed across a network or Internet environment. These applications are referred to in this book as distributed enterprise applications.
Java Enterprise System also represents a Sun software release and delivery methodology and a business and pricing strategy. The focus of this book, however, is on the software components of Java Enterprise System and the services they provide.
This chapter introduces Java Enterprise System and the tasks involved in using the system. It covers the following topics:
Why Do You Need Java Enterprise System?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 Enterprise System provides infrastructure services needed to support such distributed enterprise applications, that is, applications that generally have the following characteristics:
- Distributed. The application consists of interacting software components deployed across a networked environment that might include geographically remote sites. These distributed components, running on the various computers in the environment, work together to deliver specific business functions to end users and to other business applications.
- Enterprise-strength. The application’s scope and scale meet the needs of a production environment or Internet service provider. The application typically spans an entire enterprise, integrating many departments, operations, and processes into a single software system. The application must meet high quality of service requirements regarding performance, availability, security, scalability, and serviceability.
Distributed enterprise applications require an underlying set of infrastructure services that allows their distributed components to communicate with each other, coordinate their work, implement secure access, and so forth. These infrastructure services are, in turn, 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 Enterprise System provides the distributed infrastructure services layer shown in Figure 1-1. However, Java Enterprise System services also include a number of application-level services accessible to end users.
Figure 1-1 Support Needed for Distributed Enterprise Applications
Among the featured services provided by Java Enterprise System are the following:
- Portal services. These services enable employees, telecommuters, knowledge workers, business partners, suppliers, and customers to access corporate resources from anywhere inside or outside the corporate network. These services provide access capabilities to user communities anytime, anywhere, delivering personalized integration, aggregation, security, mobile access, and search.
- Communications and collaboration services. These services enable the secure interchange of information among diverse user communities. Specific capabilities include messaging, real-time collaboration such as instant messaging and conferencing, and calendar scheduling in the context of the user's business environment.
- Network identity and security services. These services improve security and protection of key corporate information assets by ensuring that appropriate access control policies are enforced across all communities, applications, and services on a global basis. These services work with a repository for storing and managing identity profiles, access privileges, and application and network resource information.
- Web container and application services. These services enable distributed components to communicate with one another at runtime and support the development, deployment, and management of applications for a broad range of servers, clients, and devices. These services are based on Java 2 Platform, Enterprise Edition (J2EE) technology.
Java Enterprise System also provides service that enhance availability, scalability, serviceability, and other application or system qualities. Among the quality of service features provided by Java Enterprise System are the following:
- Availability services. These services provide near-continuous availability and for application components and for the infrastructure components that support them.
- Access services. These services provide Internet or browser-based access to Java Enterprise System services.
- Administrative services. These services help maintain and tune the performance of applications supported by Java Enterprise System.
You can deploy one or more Java Enterprise System services, each of which might include a number of Java Enterprise System components.
Java Enterprise System ComponentsJava Enterprise System is an integration of previously discrete software products into a single software system. The components of this system have been tested together to ensure interoperability. Their integration is facilitated by a number of system-level features:
These features are described in subsequent chapters of this book. The focus of this section is to introduce the various components that are integrated into Java Enterprise System. These system components can be grouped into three main categories, as shown in the following illustration:
- System service components. These components provide the main Java Enterprise System infrastructure services that support distributed enterprise applications.
- Service quality components. These components enhance the availability, security, scalabililty, serviceability and other qualities of system service components and distributed application components.
- Shared components. These components provide the environment in which many system service components and service quality components run.
Figure 1-2 Categories of Java Enterprise System Components
System Service Components
A number of Java Enterprise System components provide the main services that support distributed software solutions. These system services include portal services, communication and collaboration services, identity and security services, web container services, and J2EE application services.
The system service components that provide these distributed services, and the services they provide are briefly described in the following table. Each system service component is a multi-threaded server process capable of supporting a large number of clients. For more details on any component, see System Service Component Descriptions.
Service Quality Components
In addition to the system service components shown in Table 1-1, Java Enterprise System includes a number of components used to enhance the quality of services provided by system service components or custom-developed application components. These service quality components fall into the following categories:
Availability Components
Availability components provide near-continuous uptime for system service components and application components. The availability components included in Java Enterprise System and the services that they provide are shown in the following table. For more details on any component, see Availability Component Descriptions.
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 function as well. The access components included in Java Enterprise System and the services that they provide are shown in the following table. For more details on any component, see Access Component Descriptions.
Administrative Components
Administrative components provide management functions, such as configuration and monitoring, for system services. The administrative components included in Java Enterprise System and the services that they provide are shown in the following table. For more details on any component, see Administrative Component Descriptions.
Shared Components
Java Enterprise System includes a number of locally installed shared libraries upon which many system service components and service quality components depend. Java Enterprise System shared components provide local services to Java Enterprise System components running on the same host computer.
Shared components are often used to provide portability across different operating systems. Examples of Java Enterprise System shared components include: Java 2 Platform, Standard Edition (J2SE platform), Netscape Portable Runtime (NSPR), Network Security Services (NSS), Network Security Services for Java (JSS), and so forth. For a complete list, see Shared Components.
Working With Java Enterprise SystemCreating business solutions based on Java Enterprise System software involves a number of standard tasks. These tasks vary in scope and difficulty depending on your starting point for the adoption of Java Enterprise System and on the nature of the solution you are trying to create and deploy.
This section discusses two aspects of working with Java Enterprise System: the Java Enterprise System solution life cycle and the various adoption scenarios that are typically involved.
Java Enterprise System Solution Life Cycle
The tasks involved in creating business solutions based on Java Enterprise System software can be divided into several phases, as shown in Figure 1-3. The illustration also shows the category of Java Enterprise System user that generally performs the various tasks.
The life-cycle phases shown in Figure 1-3 can be divided into the following general groupings:
- Predeployment. In these phase, a business need is translated into a deployment scenario: a logical architecture and a set of quality of service requirements. The deployment scenario serves as a specification used to design a deployment architecture.
- Deployment. In these phases a deployment scenario is translated into a deployment architecture. This architecture can be used as a basis for project approval and budgeting. The deployment architecture is also the basis for an implementation specification that provides the details needed to deploy (build, test, and roll out) a software solution in a production environment.
- Postdeployment. In the operations phase, a deployed solution is run under production conditions and monitored and optimized for performance. the deployed solution is also upgraded to include new functionality as necessary.
The solution life cycle and the tasks in each of the phases shown in Figure 1-3 are discussed more fully in Chapter 4, "Java Enterprise System Solution Life-Cycle Tasks."
Figure 1-3 Solution Life-Cycle Phases and User Categories
Figure 1-3 shows the Java Enterprise System users who typically perform the tasks shown for the life-cycle phases. If you are working with Java Enterprise System, your job should fit one or more of the user categories shown in Figure 1-3. The following table describes the skills and background for each category of user.
Java Enterprise System Adoption Scenarios
The business needs that lead to the adoption of Java Enterprise System vary widely. However, the high-level goal for nearly every Java Enterprise System deployment fits into one of the following adoption scenarios:
- New system. Starting with no existing software system, you deploy Java Enterprise System software to support a new business solution.
- Enhancement. Starting with an existing information technology (IT) infrastructure, you replace one, many, or all parts of that system with Java Enterprise System software. You normally replace systems or subsystems because they are too complicated, too limited, or too expensive to maintain. For example, you might require better security, higher availability, increased scalability, more flexibility, less complexity, additional capabilities (such as single sign-on), or better use of IT resources. In other words you want a better return on investment than provided by your existing system.
- Extension. Starting with an existing IT infrastructure, you deploy Java Enterprise System software that is not currently part of your system. You normally extend your software system in this way because you need to meet new business needs. You might need new functional capabilities such as personalized aggregation of existing services through a Java Enterprise System portal, or Java authentication and authorization for existing services.
- Upgrade. Starting with an IT infrastructure consisting of an earlier version of Java Enterprise System or of Sun products that predate Java Enterprise System, you upgrade to the most current version of Java Enterprise System components.
Each adoption scenario has its own concerns and challenges. Regardless of which adoption scenario characterizes your situation, the solution life-cycle process shown in Figure 1-3 applies. Depending on your adoption scenario, however, the issues you need to address and the resources you need to invest in the life-cycle phases might vary.
The following concerns generally apply in varying degrees to the adoption scenarios:
- Migration. Enhancing or upgrading the existing infrastructure with new software often requires the migration of data from the existing system to the new system. The data could be configuration information, user information, or application information. You might also need to migrate business or presentation logic due to new programming interfaces.
- Integration. Adding new software to an existing system or replacing software subsystems often requires that you integrate new software components with the remaining subsystems. Integration might involve developing new interface layers, using J2EE connectors or resource adaptors, reconfiguring existing components, and implementing data transformation schemes.
- Training. Almost any change in infrastructure implies changes in IT procedures and skill sets. Your IT department must have adequate time to acquire new skills or transfer old skills, to support Java Enterprise System technologies.
- Hardware. When you replace or enhance an existing system or subsystem, business constraints might require you to reuse existing hardware. Depending on your adoption scenario, hardware resources can become an important factor.
The following table summarizes the nature of the concerns that apply to each of the Java Enterprise System adoption scenarios.
Table 1-6 Concerns Related to Different Java ES Adoption Scenarios
Adoption Scenario
Migration
Integration
Training
Hardware
New system
Not a concern
Relatively easy to integrate new components
Normally a significant concern
Trade-offs between equipment costs and labor costs.1
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
Generally 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
1Using 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.
Key Terms in This ChapterThis section explains key technical terms used in this chapter, with an emphasis on clarifying the relationships between these terms how they are used in the Java Enterprise System context.
adoption scenario An overall reason for deploying Java Enterprise System software, characterizing the software system you start with and the goal you are trying to achieve. There are four basic Java Enterprise System adoption scenarios: 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 Enterprise System or an application component that is custom developed. An application component usually conforms to a distributed component model (such as CORBA and the J2EE platform) and performs some specific computing function. These components, singly or combined, provide business services and can be encapsulated as web services.
distributed enterprise application An application whose logic spans a network or Internet environment (the distributed aspect) and whose scope and scale 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, 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).
service quality component One of a number of kinds of system components included in Java Enterprise System. Support components, which include access components and administrative components, provide support for system service components.
shared component One of a number of kinds of system components included in Java Enterprise System. Shared components, usually libraries, provide local services to other system components. By contrast, a system service component provides distributed infrastructure services to other system components (or to application components).
system component Any software package or set of packages included in the Java Enterprise System and installed by the Java Enterprise System installer. There are several kinds of system components: system service components that provide distributed infrastructure services, service quality components which support the system services components by providing access and administrative 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 Enterprise System. 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 One of a number of kinds of system components included in Java Enterprise System. System services components provide the main Java Enterprise System infrastructure services: portal services, communication and collaboration services, identity and security services, web and application services, and availability services.