- Understanding the Concepts
- Evaluating the Environment
- Examining Strategies
- Choosing a Strategy and Developing Tactics
Choosing a Strategy and Developing Tactics
The ideal migration solution incorporates a number of the strategies listed in this chapter, where appropriate. Each of the strategies identified in the preceding section has a number of closely aligned supporting techniques. The selection of a strategy will define the obvious and most effective technique, but it might need to be supplemented with techniques more appropriate to other strategies.
The following table summarizes the strong alignments of particular migration techniques with the migration strategies.
Table 3-2. Strategy and Technique Alignment
Strategy |
Complementary Technique |
---|---|
Refronting |
Redeveloping, reverse engineering, source code porting |
Replacement |
Reverse engineering |
Rehosting |
Source code porting, technology porting |
Rearchitecting |
Reverse engineering, redeveloping |
Interoperation |
Technology porting, emulation |
Retirement |
Reverse engineering |
As with the migration decision itself, the tactical approach used to solve a problem or to provide functionality must be evaluated in terms of its effectiveness, its impact on the ability to meet business needs, and its cost. Tactical decisions made to resolve technical issues might impact the overall project, either beneficially or adversely, in terms of systemic qualities, manageability, training, and cost.
As described in the preceding sections, there are a number of migration solutions for you to choose from. Each has its own benefits, as well as its own drawbacks. Selecting the correct solution should realize the associated value proposition.
Decision Factors
One factor in your decision should be based on your application architecture. Most modern application architectures are now based on n-tier models. This decomposition allows for different strategies to be applied to different tiers, when appropriate. This might mean that more than one strategy will drive your migration.
Conversely, older legacy applications might be monolithic or client-server in design and implementation, which offers the opportunity to rearchitect to an n-tier model. The following table outlines some common (not exclusive) approaches for each tier.
Table 3-3. n-Tier Migration Strategies
Tier |
Purpose |
Common Approaches |
---|---|---|
Presentation |
Hosts the processing that adapts the display and interaction as appropriate for the accessing client device, be it a desktop computer, a cell phone, a PDA, or any other device. |
Refronting, rehosting, interoperating, and replacing |
Application or Business Logic |
Hosts the logic that embodies the rules of the enterprise, irrespective of access device or resource implementation. |
Rehosting, interoperating, and replacing |
Integration |
Allows for the connection of disparate applications and data sources. |
Rehosting, interoperating, and replacing |
Resource or Database |
Consists of legacy systems, relational databases, data warehouses, or any other back-end or external processing system that accesses and organizes data. |
Rehosting and replacing |
Persistence |
Holds the permanent data for the enterprise. In the past, this was considered part of the Resources tier, but with the growth of intelligent storage (SANs, NAS, and intelligent arrays), it has become a tier in itself. |
Rehosting and replacing |
Another factor to consider is the relationship between value and effort, as shown in the following figure. Typically, value is proportional to the amount of effort that is expended on a project. In the following paragraphs, we examine each of the proposed migration solutions as they relate to value versus effort.
-
Interoperation. This solution requires the least amount of effort but also provides the least amount of benefit. The existing architecture and infrastructure stay in place and simple connector technology is deployed to support the interaction with new applications or hardware that might be deployed. Because no new functionality is introduced, this effort requires minimal time and expense.
-
Rearchitecting. This solution occupies the other end of the scale. Rearchitecting the application has great benefits: it supports tailored functionality; modular, tiered design; and a modern implementation language. However, the amount of effort (and associated cost) can be significant. As well as incurring significant expense, time, and effort, this solution can also introduce errors, so it requires a rigorous validation and verification effort.
-
Refronting or replacement. This solution is targeted toward enhancing an application that has already been deemed to be somewhat unacceptable in meeting business needs. This solution is targeted to applications that are not meeting business needs but that do not have any IT-related problems relating to Service Level Agreements (SLAs), QoS, TCO, and the like. Enhancing the application by adding a presentation layer will add new functionality, but given that the application has already been found to be somewhat unacceptable, this enhancement adds minimal overall benefit compared with the amount of effort that it requires.
-
Rehosting. As illustrated in FIGURE 3-4, rehosting is the solution that provides the most value for the least effort. Rehosting typically involves modifying the source code and build environment for an application so that it compiles and runs on the new target system. During this process, new features and functionality are not added. Many companies often want to add new features or functionality when they migrate, but these steps should take place after the application has been migrated.
Figure 3-4. Relationship of Value to Effort
Business logic remains the same when an application is rehosted. The only application changes usually relate to the APIs of the target OS. Over time, standards (SVR4, POSIX, and the like) have converged so that differences between versions of UNIX are minimal; therefore, migrations of applications between different versions of UNIX require minimal effort.
Rehosting applications from proprietary, non-UNIX environments that do not adhere to open standards can prove to be more challenging.
In certain cases, an application must be changed to not only adhere to the APIs of the OS but to interact with third-party product code as well. For example, consider the rehosting of a CICS application from MVS to MTP/MBM application running on the Solaris OS. The application's interaction with the MVS environment must be recoded in such a way that similar calls and functionality are used in the Solaris OS, but the CICS interaction requires minimal conversion because the CICS functionality and APIs have been redeveloped under the Solaris OS by the MTP and MBM product set.
Rehosting has the following characteristics:
-
Least expensive and requires the least effort. Rehosting requires minimal changes to applications to enable them to run under the new environment. Therefore, the cost and effort involved in this strategy are minimal.
-
Quickest implementation. Because little or no code is written and no new functionality is added, this solution can be completed in minimal time, compared with the other migration solutions.
-
Business logic remains the same. Rehosting doesn't typically include the addition of new features or functionality. Consequently, the business logic remains the same, meaning that minimal or no staff training is required and few, if any, changes have to be made to the organizational structure.
Case Studies
In the last three chapters of this book, we examine three case studies, each of which uses a different migration strategy.
-
Case 1: Small business, Linux. This example is based on a small software and services development company that is looking to move from Linux to the Solaris OS. Approximately 20 servers are being used: 10 for production, 5 for development and testing, and 5 for office support tasks. Their application is mostly Java-based, but they use MySQL for the database. Significant shell scripting has also been used for utilities in the product.
-
Case 2: Custom application, Tru64. In this example, we examine the migration of a mythical inventory application implemented in the C programming language. The application is integrated with a Sybase database running under the Tru64 environment. The exercise involves porting the application so that it runs under the Solaris environment and replacing the Sybase database with an Oracle relational database.
-
Case 3: General ledger, HP-UX. In this example, an insurance company planned to move its accounting, risks, and claims software from HP/UX to the Solaris OS to achieve superior scalability against planned business and system growth. This exercise employs the rehost strategy, in which the technology porting approach is used to minimize risk and cost.