## Rearchitecting: A Better Approach to Migrating Legacy Applications to Open Systems

### Rod Shimasaki

Hewlett-Packard
3000 Hanover Street
Palo Alto, CA 94304-1185
Phone: 714-758-5679
Fax: 714-758-7559
E-mail: rod_shimasaki@hp.com

### Allan Pressel

i-Cube
101 Main Street
Cambridge, MA 02142
Phone: 310-793-9707
Fax: 310-793-6067
E-mail: apressel@i-cube.com

Deregulation, globalization, shortened product cycles, mergers and acquisitions -- such is the face of business today.

If organizations are to keep pace with today’s rapid rate of change, it is crucial their information technology (IT) environment zig or zag with the business environment. But many companies are finding a gap within their organizations -- a gap between their business needs and their information technology.

Companies are confronting a troubling and troublesome fact: Legacy systems were not designed for today's fast paced world. In many respects, today's mission-critical applications have codified the processes and operations. It is not that they are bad applications. On the contrary, they are usually well-developed, robust applications that have been fine-tuned over time. Unfortunately they are written in a language and are running on a platform that has become inherently difficult, time consuming, and costly to maintain. Many organizations have so much invested in their applications they cannot afford the time, expense, or risk of simply discarding their legacy systems and starting from scratch. Leveraging this huge investment is a must.

The Constraints of Legacy Systems

This gap between the business environment and information technology prevents a company from competing effectively. The IT department is limited by the tools and design of legacy systems and cannot react quickly enough to rapid and ever-changing needs. The result is that the demands of customers, hypercompetition, deregulation, and mergers and acquisitions go unmet.

Consider just a few of the constraints of legacy software applications:

- Difficult to maintain, typically taking months, or even years, to adapt to significant new requirements.

- Eat up larger and larger portions of IS funds – funds that should be directed to support new development, migration to new platforms, and even Year 2000 compliance.

- aContain mountains of data – often in the wrong format, out of date, and difficult to integrate with other data. Data must be converted to information and disseminated throughout the entire organization.

- Rarely capable of incorporating radically different processes (e.g. electronic commerce, horizontal integration) using the latest technological innovations quickly or easily.

- Costly to maintain and difficult to scale adequately for growing demands.

- Resources to maintain them are becoming more expensive and harder to find (e.g., COBOL programmers).

The Advantages of Multi-Tier, Client/Server, Open Systems

By transforming existing applications to open, multi-tier, client/server environments, organizations can bridge the gap between strategy and information technology. A move to distributed, open systems can remove the constraints of legacy systems, enable IT to better support the business strategies, integrate future application flexibility, and provide a solid growth path.

Multi-Tier, Client/Server Architecture

Single-tier systems, representing most legacy mainframe systems, are locked into a single, proprietary software architecture for the entire application. But two-tier, client/server systems permit the application's front and back ends to run on different servers, thereby providing hardware independence. Two-tier systems can suffer from an inability to scale. This is due to the heavy amount of business code in an often proprietary language, which makes system distribution and management difficult.

Three-tier or multi-tier, client/server architectures, by contrast, can provide complete freedom of hardware and software choice at all three layers of the architecture – the presentation tier, the functionality tier, and the data tier. In short, the advantage of a multi-tier approach is that you can choose any combination of open hardware and software, which provides a truly distributed, open systems environment.

Open Systems

Open systems, when implemented effectively, can yield significant business benefits. Unfortunately, the business limitations can also be significant when multi-tier, client/server architectures are poorly designed, developed, and implemented. This technology restriction is the result of an application's business functionality being intrinsically dependent upon the underlying technology.

Technology restriction causes slow and costly change, resulting in gaps in an application's ability to meet new organizational, geographic, or marketing directions, and to exploit emerging technologies. Technology-restricted applications have the following flaws:

- Applications are front-end heavy ("fat clients"); new revisions are difficult to roll out.

- Applications are locked into one vendor's products - "vendor-lock".

- Development often lacks discipline, which leads to applications that are weak, unstable, and difficult to maintain.

- Connectivity tools are not equipped to meet the demands of a high-volume environment.

- Applications developed for one solution are often unsuitable for other solutions. This causes a systems management dilemma by employing multiple tools to build an enterprise technology infrastructure.

But consider the benefits of open systems, when "done right":

- Flexibility to quickly adapt applications to ever-changing business conditions and to take advantage of emerging technologies.

- Dramatic IT cost savings in hardware and software acquisition, maintenance, and operating costs.

- Integration of systems on disparate platforms, providing the means to transform mountains of data into useful, timely, and manageable information.

- Independence from hardware, software, or operating system platforms.

- Freedom of choice regarding systems software, application software, and productivity tools.

- Enhanced ease of use with features such as graphical user interfaces (GUIs) and online, seamless integration with other applications and data sources.

- Significant improvement in systems’ scalability, management, and administration by being able to introduce new technologies and tools.

Open systems can be a key to enhancing productivity, increasing quality, shortening development, delivery, and support times, and, ultimately, creating and sustaining a simplified development environment.

Leveraging the Legacy Investment

Most mission critical and strategic information still live in legacy software environments. All are plagued by the limitations discussed above. To keep up with the dizzying pace with which business conditions change, these systems must be migrated to a more flexible architecture.

When discussing open systems migration, most people assume this endeavor entails discarding the existing applications and replacing them with either packaged or custom-built software. Companies will often scrap the code and rewrite or replace it, or redesign it totally. If an automotive manufacturer employed this strategy -- completely redesigning new models from scratch -- they would quickly be out of business. Customers simply could not afford to wait. Yet this is fundamentally how the technology industry has been tackling legacy software migration.

With the proper approach, you can revitalize your largest and most critical applications quickly—often in half the time, and with much less risk and significantly more built-in flexibility for the future than traditional migration methods. For the problem of preserving legacy investment, the solution is rearchitecting. The accompanying chart on the next page depicts the advantages of each alternative.

Options for Migrating Legacy Applications to
Open Systems
Benefits Comparison

BENEFIT | Option 1: REMAIN (keep application on the same frame) | Option 2: REPLACE (with packaged software) | Option 3: REWRITE (custom- developed) | Option 4: REHOST (recompile onto new hardware) | Option 5: REARCHITECT (transform legacy application into 3-tier, client/server, open system using automation)
Enables Year 2000 compliance (Y2K) |  | ? | Y |  | Y
Eases adoption of emerging technologies (e.g., Internet, intranet, etc.) |  | ? | Y |  | Y
Positions applications on cheaper hardware platform |  | Y | Y | Y | Y
Positions applications to reap other open systems benefits |  | ? | Y |  | Y
Positions you in target architecture of your choice (i.e., your choice of GUI, programming language, database, etc.) |  |  | Y |  | Y
Low to moderate implementation cost | Y | ? |  | Y | Y
Low implementation risk | Y |  |  | Y | Y
Low implementation time (e.g., weeks or months, not years) | Y |  |  | Y | Y
Protects/leverages existing investment (in software, documentation, training, organizational process, etc.) | Y |  |  | Y | Y
Minimizes user retraining | Y |  |  | Y | Y
Minimizes disruptions to operations | Y |  |  | Y | Y
Leverages existing IS functional knowledge | Y |  |  | Y | Y
Ensures standards compliance |  |  | ? |  | Y
Eases application reengineering |  |  | ? |  | Y
Facilitates greater access to and integration of data |  | ? | ? |  | Y

Rearchitecting quickly transforms existing applications into open, multi-tier environments. In this way, companies can cast off the constraints of mainframe computing, but preserve the core functionality of their legacy applications and the substantial investment that went into those applications.

Rearchitecting: The Fundamental Components

Source Architecture |  | Target Architecture |  | Example
Character-based screens | GUIs | 3270 ® Visual Basic
Proprietary programming language | Open programming language | COBOL ® ANSI C
Proprietary database | Relational database | IMS or IDMS or VSAM ® Oracle & ANSI SQL
Proprietary operating system | Open operating system | MVS ® UNIX
Monolithic architecture | 3-tier, client/server architecture | Mainframe ® client/server
2-digit year | Full year 2000 compliance | mm/dd/yy ® unlimited date
Available to a limited user group | Fully deployed on intranet or Internet | Communicate with constituents directly over the Net

A few characteristics of an effective rearchitecting methodology include:

- At least 50% and 80% of the work is done by through automated tools; this automated approach gives faster, more accurate results and fewer risks.

- Working functionality is transformed directly, whereas poor functionality may be re-coded and new functionality added.

- Because the new application works the same way as the old, with the exception of an improved user interface, user training is minimized.

- Applications are code compliant with open systems standards.

- Year 2000 compliance can be addressed as part of the project.

- After acceptance the application can be rapidly enhanced to incorporate new requirements.

- The rearchitected application can be deployed on the Internet or on intranets.

- The ability to re-use existing tools and application functionality enables development of new applications in a fraction of the time it would have taken to write all code from "scratch."

Rearchitecting: The Process

Rearchitecting can safely and completely transform applications, often with several million lines of code, in a fraction of the time traditionally needed to implement systems of this size, with reduced risk. This gives companies the ability to quickly and confidently modify their software to respond to fluctuations in the marketplace, or embrace new technologies to build and retain competitive advantage -- the very reasons they implemented the software solution in the first place.

To eliminate technology restriction, we have created a set of guiding principles for all technology transformation services. This template allows its users to transform legacy, mission-critical applications into flexible, open environments. This multi-step transition creates building blocks for platform independence, the ability to link diverse applications, and applications that meet the needs of the flexible enterprise.

The transformation an application undergoes is not magic - it is a well-planned, proven, and disciplined process. Each application goes through rearchitecting in three steps: divide, reconstruct and enhance.

Divide:

The old application is divided into its smallest logical components -- data types, presentation attributes, application logic, etc. The components and other application information are thoroughly inventoried and stored in a central repository.

Reconstruct:

Individual components are then reassembled using new technology, such as standards-based SQL relational databases, objects, and graphical user interfaces. The result is an application that runs in a new environment, while maintaining the same core functionality.

Enhance:

Once in its new form, the application is ready to be rapidly enhanced to meet new business requirements using the latest technology tools.

Rearchitecting: The Tools

The rearchitecting process requires a set of tools, technologies, and methodologies specifically designed to provide a repeatable, consistent template for building independent, organized, future-oriented applications. The entire process is uncoupled from any particular presentation client, platform, or database to provide a completely flexible and open environment. Finally, the process design is scaleable. Users may move to multi-tier client/server environments at their own pace and expand the framework as their needs evolve.

To eliminate technology restriction, as outlined above, we have created a set of guiding principles for all technology transformation services. This template allows its users to transform legacy, mission-critical applications into flexible, open environments. This multi-step transition creates building blocks for platform independence, the ability to link diverse applications, and applications that meet the needs of the flexible enterprise.

The Application Repository

The Application Repository enables technology reorganization. Redefining and reorganizing the underlying application technology is the key to an independent, organized, and future-oriented application.

The transformation tools reduce existing applications to their smallest logical components. The Application Repository then stores these components which can be used as generic "building blocks" to construct platform-independent solutions. Defining, describing, managing, and storing these components as generic application information enables reusability and paves the way for transition to the next targeted technology.

The Transaction Router

Once the transformation tools have reorganized the applications, and the components or generic building blocks have been stored in the Application Repository, the Transaction Router controls runtime access to the newly organized components, based on the request of the presentation client and functionality servers. This is called technology reconfiguration.

The Transaction Router is a software switching station that accesses different technologies and services for integration and implementation of the functionality of applications. In the Transaction Router, graphical user interfaces (GUIs), applications, and databases are integrated, regardless of language or application development methodology.

The Power in Using Tools:

The combination of these powerful tools enables technology revitalization, resulting in:

- Technology-independent applications based on open systems.

- Centralized control.

- Focus on business functionality, not technological implementation.

- Applications enabled for incremental change as requirements evolve.

Conclusion

For those companies faced with a chasm within their organizations, effective rearchitecting tools, technologies, and methodologies can bridge the gap between business strategy and IT, without abandoning the legacy investment.

Application migrations, enabled by a structured rearchitecting approach, have the following benefits:

- Leverage prior investment in legacy applications.

- Develop applications that are quickly adaptable to change.

- Are fast and cost-effective.

- Deploy a common architecture that allows disparate applications to be integrated.

- Exploit emerging technologies for simplifying code development.

- Shift the focus of IT budgets toward developing new applications rather than maintaining the old.

The resulting IT environment provides the competitive advantage that businesses need.

About the authors

Allan Pressel is Manager of Strategic Alliances for International Integration Incorporated (i-Cube) headquartered in Cambridge, Massachusetts. Allan managed the first enterprise-wide open systems migration, transforming a large mainframe-only organization completely to client/server and open systems in 18 months. Prior to joining i-Cube, Allan was an IT consultant with First Consulting Group and Andersen Consulting. Allan has an MBA from UCLA and Computer Science and Economics degrees from Brandeis University and London School of Economics. Allan may be reached at 310-793-9707 or apressel@i-cube.com.

Rod Shimasaki is a Managing Consultant for the Application Transformation Program (ATP) at Hewlett-Packard Company. Rod directs and manages a national team of consultants dedicated to assisting companies in the migration of strategic applications from legacy to multi-tier environments. The ATP is designed to rapidly move strategic, legacy applications to a multi-tier, client/server environment. By taking advantage of industry standards and new technologies, clients can effectively and efficiently respond to changing business requirements (e.g., Year 2000, four-digit area codes) and technological opportunities (e.g., Internet, intranet, electronic commerce). As a joint offering from Hewlett-Packard and i-Cube, the ATP has developed powerful methodologies and rearchitecting tools to quickly transform existing applications into open, multi-tier environments, while preserving the core, strategic functionality. Rod may be reached at 714-758-5679 or rod_shimasaki@hp.com.