This chapter provides a brief overview of Sun JavaTM Enterprise System (Java ES), discusses deployment planning concepts, and introduces the solution life cycle, which outlines the various steps for planning and designing enterprise software systems. This chapter contains the following sections:
Java Enterprise System is a software infrastructure that provides a complete set of middleware services to support enterprise applications distributed across a network or Internet environment. The Java Enterprise System components that provide the services are installed using a common installer, synchronized on a common set of shared libraries, and share an integrated user identity and security management system.
The main infrastructure services provided by Java Enterprise System components can be categorized as follows:
Portal services. These services enable mobile employees, telecommuters, knowledge workers, business partners, suppliers, and customers to securely access their personalized corporate portal from anywhere outside the corporate network through the Internet. These services provide anytime, anywhere access capabilities to user communities, delivering integration, aggregation, personalization, 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, and calendar scheduling in the context of the user\qs 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 and application services. These services enable distributed components to communicate with one another 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 (J2EETM) technology.
Availability services. These services provide near-continuous availability and scalability for applications and web services.
The following table lists the preceding service categories and specifies the Java Enterprise System components that provide services for each category.Table 1–1 Java Enterprise System Service Categories
Java Enterprise System Components
Portal Server, Portal Server Secure Remote Access, Access Manager, Directory Server, Application Server or Web Server
Communication and collaboration services
Messaging Server, Calendar Server, Instant Messaging, Access Manager, Directory Server, Application Server or Web Server
Network identity services
Access Manager, Directory Server, Web Server
Web and application services
Application Server, Message Queue, Web Server
Sun Cluster, Sun Cluster Agents
For more information about Java Enterprise System services, components, and Java Enterprise System architectural concepts, refer to the Sun Java Enterprise System 5 Technical Overview.
Deployment solutions based on Java Enterprise System typically fall into two general categories:
The 80:20 and 20:80 categories are broad generalizations. The exact percentage of the type of services offered is not important. However, the percentage indicates the amount of customization a solution contains.
Java Enterprise System is well suited for 80:20 deployments because of the rich set of services provided by Java ES. For example, it is relatively easy to deploy an enterprise-wide communications system or an enterprise-wide portal system using services provided by Java Enterprise System.
For deployments that require custom development, Java Enterprise System supports the creation and integration of custom-developed services and applications.
Most of the service categories listed in System Services can be used to deliver 80:20 deployments. For example, communications and collaboration services provide email, calendar, and instant messaging services to end users, allowing them to aggregate and personalize the content. Similarly, the network identity and enterprise portal categories of services allow you to install and configure enterprise-wide applications without developing or integrating custom services.
Enterprise solutions that require custom development of J2EE platform services can leverage Application Server, Message Queue, or Web Server which are provided with Java Enterprise System web and application services.
Enterprise deployments can vary greatly in the number of custom-developed services they require. Because of the interoperability between Java Enterprise System services, you can create your own suite of services tailored to your particular enterprise needs.
The planning, designing, and implementing of an enterprise solution that uses Java Enterprise System depends largely on your current deployment strategy. For enterprises that are planning a first-time deployment solution, the planning, design, and implementation is driven largely by the specific needs of your enterprise. However, first-time deployments solutions are not typical. More likely are solutions that use Java Enterprise System to enhance existing enterprise solutions or to upgrade from earlier versions of Java Enterprise System components.
When replacing or upgrading existing solutions, you must take additional planning, design, and implementation steps to ensure that existing data is preserved and that software is properly upgraded to current versions. As you proceed through the analysis and design outlined in this guide, keep in mind the preparation and planning required to replace and upgrade existing software systems.
For more information about upgrading to the current version of Java Enterprise System and strategies for migration from other applications, refer to the Java Enterprise System Upgrade and Migration Guide.
Deployment planning is a critical step in the successful implementation of a Java Enterprise System solution. Each enterprise has its own set of goals, requirements, and priorities to consider. Successful planning starts with analyzing the goals of an enterprise and determining the business requirements to meet those goals. The business requirements must then be converted into technical requirements that can be used as a basis for designing and implementing a system that can meet the goals of the enterprise.
Successful deployment planning is the result of careful preparation, analysis, and design. Errors and missteps that occur anywhere during the planning process can result in a system that can misfire in many ways. Significant problems can arise from a poorly planned system. For example, the system could under-perform, be difficult to maintain, be too expensive to operate, could waste resources, or could be unable to scale to meet increasing needs.
The solution life cycle shown in the following figure depicts the steps in the planning, design, and implementation of an enterprise software solution based on Java Enterprise System. The life cycle is a useful tool for keeping a deployment project on track.
The life cycle consists of ordered phases. Each phase consists of related tasks that result in outputs that are carried forward as inputs to subsequent phases. The tasks within each phase are iterative, requiring thorough analysis and design before generating the outputs for that phase. The early phases can be iterative also. For example, during the deployment design phase, you might discover that the analysis in earlier phases is insufficient and requires more work.
The following sections in this chapter briefly describe each life cycle phase.
During business analysis, you define the business goals of a deployment project and state the business requirements that must be met to achieve those goals. When stating the business requirements, consider any business constraints that might affect the ability to achieve the business goal. Throughout the life cycle, you measure the success of your deployment planning, and ultimately your deployment solution, according to the analysis performed in the business analysis phase.
During the business analysis phase you create business requirements documents that you later use as inputs to the technical requirements phase.
For more information on the business analysis phase, refer to Chapter 2, Business Analysis
The technical requirements phase starts with the business requirements and business constraints defined during the business analysis phase and translates them into technical specifications that can be used to subsequently design the deployment architecture. The technical requirements specify quality of service (QoS) features, such as performance, availability, security, and others.
During the technical requirements phase, you create documents that contain the following information:
Analysis of user tasks and usage patterns
Use cases that model user interaction with the planned system
Quality of service requirements derived from the business requirements, possibly taking into consideration the analysis of user tasks and usage patterns
The resulting usage analysis, use cases, and QoS requirements documents are inputs to the logical design phase of the solution life cycle. The usage analysis also plays a significant role in the deployment design phase.
During the technical requirements phase, you might also specify service level requirements that are the basis for subsequently creating service level agreements (SLA). Service level agreements specify the terms under which customer support must be provided to maintain the system and are generally signed as part of project approval in the deployment design phase.
For more information on technical requirements, refer to Chapter 3, Technical Requirements
During logical design, using use cases from the technical requirements phase as inputs, you identify the Java Enterprise System components necessary to implement a solution. You identify components that provide support to those Java ES components, and also identify any additional custom-developed components necessary to meet the business requirements. You then map the components within a logical architecture that shows the interrelationships among the components. The logical architecture does not specify any hardware required to implement the solution.
The output of the logical design phase is the logical architecture. The logical architecture by itself is not sufficient to begin deployment design. You also need the QoS requirements from the technical requirements phase. The logical architecture and the QoS requirements from the technical requirements phase form a deployment scenario. This deployment scenario is the input to the deployment design phase.
For more information on logical design, refer to Chapter 4, Logical Design
During deployment design, you map the components specified in the logical architecture to a physical environment, producing a high-level deployment architecture. You also create an implementation specification, which provides low-level details specifying how to build the deployment architecture. Additionally, you create a series of plans and specifications that detail different aspects of implementing the software solution.
Project approval occurs during the deployment design phase. During project approval, the cost of the deployment is assessed. If approved, contracts for implementation of the deployment are signed, and resources to build the project are acquired. Often, project approval occurs after the implementation specification has been detailed. However, approval can also occur upon completion of the deployment architecture.
The outputs of the deployment design phase include the following:
Deployment architecture. A high-level design document that represents the mapping of components to network hardware and software.
Implementation specifications. Detailed specifications used as blueprints for building the deployment.
Implementation plans. A group of plans and specifications that cover various aspects of implementing an enterprise software solution. Implementation plans include a migration plan, installation plan, user management plan, test plan, and others.
For more information about deployment design, refer to Chapter 5, Deployment Design
During the implementation phase, you work from specifications and plans created during deployment design to build the deployment architecture and implement the solution. Depending on the nature of your deployment project, this phase includes some or all of the following tasks:
Installing and configuring the hardware infrastructure
Installing and configuring the software
Modeling users and resources within an LDAP directory design
Migrating data from existing directories and databases according to a user management plan
Creating and deploying pilot and prototype deployments in a test environment
Designing and running functional tests to measure compliance with system requirements
Designing and running stress tests to measure performance under peak loads
Developing and integrating any custom enterprise applications
Creating a production deployment, which might be phased into production in stages
Once a deployment is in production, you proceed to the operations phase of the solution life cycle.
For more information on the implementation phase, refer to Chapter 6, Implementation of a Deployment Design
The operations phase covers tasks necessary to keep the implementation of the deployment running smoothly. This phase includes the following:
Monitoring the deployment to ensure that the system is running according to plans
Performance tuning to ensure that the deployed software runs at optimal levels
Providing scheduled maintenance for smooth operations and unscheduled maintenance as the need arises
Upgrading software and hardware as the need arises
Details about the operations phase are out of scope for this guide.