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