An XML approach for legacy code reuse

https://doi.org/10.1016/S0164-1212(01)00104-2Get rights and content

Abstract

In this paper, we investigate a hybrid approach of wrapping and migration for the reuse of legacy applications through a case study. This approach is based on eXtensible Markup Language (XML), client/server architecture and the concepts used by Netron Fusion. To implement wrapping and migration of legacy applications, necessary information is achieved by gaining the understanding of the information flow and logic, and tracing users' interactions with systems, aiming at minimal modifications of the original applications. We present, through a case study, a way of applying this approach to an application.

Introduction

Today's legacy systems may be defined informally as large software systems that were written using procedural languages (Bennett, 1995, Rugaber and White, 1998) and have character-based, “green screen” interfaces. Unfortunately, such systems offer very limited ways to organize and present information to users in an emerging environment such as the Internet. The proprietary nature of these systems prevents organizations from making use of the opportunities that the World Wide Web (WWW) presents and from offering direct access to the systems for their internal or external partners and customers. Thus, the problem of migrating legacy systems into a new graphical environment, such as the Internet browser-based platform, has emerged as one of the most interesting and challenging issues in software engineering.

To this end, one might attempt to understand a legacy system in terms of the data structures and control flows by examining its code, isolate the system into a collection of functional and independent code fragments, and subsequently reconstruct the system within a new graphical environment (Sneed, 1995). However, legacy systems tend to be rather large and complex. To some extent, the principles of their original design are likely to have been compromised with the final production of the implementation. In this sense, code may not conform to the original design described in the documentation. Even worse this code may have been developed by people who were not involved in the original design process and therefore unaware of the design rationale. For these reasons, the approach may be prohibitively costly or even impossible.

An alternative approach is to try to understand the information and the process logic which is embodied in the front end interface of legacy applications. In general, most the systems developed for midrange machines have a purpose of supporting large tasks of data-processing, including data entry, database querying and report generation (Merlo et al., 1995). Their common characteristics lie in the frequent interactions with users to get input or return the output of transactions. Therefore, examining how the system is being used, based on how its users interact with it, can potentially provide an alternative approach to understanding the processes that the system performs in an organisation. Clearly, if the goal is to migrate the system interface to a newer environment or to wrap it with well-defined Application Programming Interface (APIs) to enable its interaction with other systems, then this alternative interaction-based understanding approach is suitable.

In this paper, we present a novel method for migrating a legacy system to the Internet browser-based platform, which consists of two tasks. The first is based on traces of the users' interaction with a simple application that has a character-based interface, the structure of a graphical interface will be identified, containing the possible relations among the entries or fields on a character-based interface. Transitions between the fields on a character-based interface or from one interface screen to another are formulated as a sequence of user actions, such as keystrokes and cursor movements. The second is to simulate the actions of a character-based interface and map them onto a new graphical interface through a new interface specification language built on XML technology. These two tasks involve modeling a legacy application into a client/server architecture to be implemented by integrating Java Remote Method Invocation (RMI), Java Native Interface (JNI), JavaScript and eXtensible Stylesheet Language (XSL). In the following sections, we use a case study to explain the three stages in our process: (1) analysing user interactions, (2) moving from a character-based interface to a web-based interface and (3) migrating to server components.

Section snippets

Related work

Various attempts have been made at investigating reuse of legacy applications. As described in (Bisbal et al., 1999) that several solutions have been proposed, which can be generally divided into three categories. The first is redevelopment, which rewrites or reconstructs existing applications. The second is wrapping, which surrounds an existing component with a new, more accessible wrapping component. The last is migration, which moves legacy applications to a new environment, while retaining

Application background

The industrial partner for the work reported in this project is Unibol which has over 20 years of experience with the IBM AS/400 or System/36 midrange applications. The company has recently focused on enabling these applications to work with Windows NT, UNIX or Linux. Unibol's traditional products, such as print spoolers, were developed using C, RPG or COBOL which are based on the AS/400 or System/36 legacy environment, and the layout of the screens are defined using source members. They are

The case description

As mentioned previously, our problem derives from practical C, RPG or COBOL legacy applications residing on IBM AS/400 midranges. A specific requirement is to migrate the legacy applications into a thin client/server and aim for minimising modifications to the original applications. For the RPG case, the interface functions of the applications residing on such a midrange are relatively independent of the rest of the system, and is isolated in identified modules that are specified by S + D

Netron Fusion

To implement the migration of the application shown in Fig. 2, we first examine the Netron Fusion toolkit. In fact, the version 3.2 of Netron Fusion does not support reconstruction of C code, but our objective is to investigate the reuse paradigm or process, rather than a practical application. Thus programming language is not an issue.

Frame technology (Bassett, 1997) is regarded as an advanced form of object-orientation, an automatical assembly line that manufactures software modules from

Our paradigm: XML markup, wrapping and migration

Given the drawbacks of the Netron Fusion approach, we look at an alternative approach for the migration of our case application.

The most widely used implementation of wrapping is screen scraping, which replaces a character-based front end with a client-based graphical interface (Wu et al., 1997). Implementing the Graphical User Interface (GUI) effectively leverages legacy data and lets users employ common graphical data manipulation tools to input data and process system output. However it is

XML and S+D

XML is an extensible markup language, which is the recommended standard for next-generation Web applications by the WWW Consortium (W3C) (Emmerich et al., 2000). It allows users to define their own set of mark-up tags for structuring documents. These user-defined markup tags are defined in DTDs, providing a precise syntax for the use of the tags and validation of the documents. These tags can serve the same role as S + D specifications defining the fields of a record for screen layout. In fact, a

Java Native Interface

Having described the methods associated with the client side, we look at how we can wrap an application on the server side. The idea of wrapping an application based on the server may be different from that of the wrapping approaches widely used for screen scraping (Wu et al., 1997). The major difference lies in that the migration techniques are used to move the character-based interface from a native host environment to the Internet-based platform locally or remotely, and the wrapper methods

Conclusion

This case study demonstrates our approach for wrapping and migrating legacy applications using XML and distributed object technology. Breaking down a legacy application to a thin client and wrapping the existing application on the server and migrating the character-based interface to the Internet-based platform. We produced separately controllable global/local data streams to aid our approach.

To provide the approach with the necessary information, the paradigm is based on tracing users'

Acknowledgements

The work reported in this paper is funded by an R + D grant (ST198) from IRTU, DETI (Northern Ireland) in collaboration with Unibol Ltd.

Professor Elizabeth Hull has 20 years research experience having held posts at The Queen's University of Belfast and the University of Ulster, where she has been Professor of Computing Science since 1989. She has significant experience in Software Engineering, Systems Engineering, Software Design Methods and Processes and Concurrent Systems. Research projects have focused mainly on real industrial problems and applications.

In recent years Professor Hull has attracted substantial funding from

References (19)

  • P.G Bassett

    Framing Software Reuse: Lessons from the Real World

    (1997)
  • K Bennett

    Legacy systems: coping with success

    IEEE Software

    (1995)
  • J Bisbal et al.

    Legacy information systems: issues and directions

    IEEE Software

    (1999)
  • ClientSoft Gives Application Developers Direct XML Access to Mainframe Data, 2000....
  • D Denoncourt

    XML: the language of confusion

    Midrange Computing

    (1999)
  • W Emmerich et al.

    Implementing incremental code migration with XML

  • Java Tutorial: a practical guide for programmers, 2000. http://java.sun.com/docs/books/tutorial/...
  • Jguru, Fundamentals of RMI, 2000. http://developer.java.sun.com/developer/onlineTraining/rmi...
  • E Merlo et al.

    Reengineering user interface

    IEEE Software

    (1995)
There are more references available in the full text version of this article.

Cited by (8)

  • LAG: Achieving transparent access to legacy data by leveraging grid environment

    2011, Future Generation Computer Systems
    Citation Excerpt :

    One or more approaches could be involved when tackling the legacy applications. Bi et al. [11] investigated a hybrid approach of wrapping and migration for the reuse of legacy applications from its original environment to the Internet-based platform based on a thin client using Java RMI. However, for those companies and organizations that have a large number of diverse and legacy data, the conversion of all legacy data or the upgrading of all legacy applications could take a lot of time and money, and raise many technical problems.

  • A wrapping approach for migrating legacy system interactive functionalities to Service Oriented Architectures

    2008, Journal of Systems and Software
    Citation Excerpt :

    As to the reengineering of a traditional system into a Web-based application, Zdun (2002) identified four main steps in a possible migration process and proposed a reference architecture for bringing a legacy application to the Web. Harry Sneed (2001, 2003) discussed reengineering solutions based on wrapping for encapsulating host COBOL programs with an XML interface, while Bi et al. (2002) explored the possibility of migrating a legacy application to the Internet-based platform using XML and distributed object technology (such as Java RMI and JNI) and a wrapping approach exploiting the knowledge of users’ interactions with the original systems. Stroulia et al. (2002) presented a method based on interaction modelling for migrating a legacy system to the Web in the context of the CelLEST project.

  • Reusing of C source code based on C-XML

    2020, ACM International Conference Proceeding Series
  • Code reuse based on information items pool and application in WMS

    2008, IEEE International Conference on Industrial Informatics (INDIN)
  • An XML model for use across heterogeneous client-server applications

    2008, IEEE Transactions on Instrumentation and Measurement
  • Migrating interactive legacy systems to Web Services

    2006, Proceedings of the European Conference on Software Maintenance and Reengineering, CSMR
View all citing articles on Scopus

Professor Elizabeth Hull has 20 years research experience having held posts at The Queen's University of Belfast and the University of Ulster, where she has been Professor of Computing Science since 1989. She has significant experience in Software Engineering, Systems Engineering, Software Design Methods and Processes and Concurrent Systems. Research projects have focused mainly on real industrial problems and applications.

In recent years Professor Hull has attracted substantial funding from EPSRC and DTI in the UK and from R&D Programmes in Europe. Research has concentrated on criteria for the assessment of software design methods, software reuse and the establishment of software development processes in the management information systems and real-time systems problem domains. She has a significant number of publications in this area.

Professor Hull is a Chartered Engineer and a Fellow of the British Computer Society.

Dr. Peter N. Nicholl received his DPhil in Computer Science from the University of Ulster in 1994. Since then, he has been with the School of Computing and Mathematical Sciences at the University of Ulster as a Lecturer. Dr. Nicholl has research interests that include image compression and investigating processes for component software reuse. He is a member of both the British Computer Society and Institute of Learning and Teaching.

Yaxin Bi obtained a BSc and a MSc in Computer Science from Jilin University and Graduate School, University of Science and Technology, China, respectively. He is planing to complete his PhD study at the beginning of 2002. Currently he is a Research Fellow in CES, The University of Edinburgh. Previously, he was a Research Officer in School of Computing and Mathematical Sciences at the University of Ulster. He is researching in the areas of distributed computing, integration of multiple information sources, knowledge-based systems, information and knowledge discovery using supervised learning techniques, object-oriented design and programming, processes for component software reuse, and the World Wide Web technologies (XML, XSL, etc.).

View full text