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.
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.
The life cycle phases shown in the preceding figure can be divided into the following general groupings:
Predeployment. In these phases, a business need is translated into a deployment scenario, which is a logical architecture and a set of quality of service requirements. The deployment scenario serves as a specification for designing 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 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
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:
New system. Starting with no existing software system, you deploy Java ES 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 ES software. You typically 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.
Extension. Starting with an existing IT infrastructure, you deploy Java ES software that is not currently part of your system. You typically extend your software system because you need to meet new business needs. You might need new functional capabilities such as personalized aggregation of existing services through a Java ES portal or Java authentication and authorization for existing services.
Upgrade. Starting with an IT infrastructure consisting of an earlier version of Java ES or of Sun products that predate Java ES, you upgrade to the most current version of Java ES components.
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:
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 ES 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 ES adoption scenarios.
Table 1–6 Java ES Adoption Scenario Concerns