Abstract:
An information processing system comprises a legacy application, a web services consumption copybook, and a set of application program interfaces for enabling the legacy application to access a selected web service via a web services consumption server. The web services consumption copybook represents data structures of the selected web service. The system can either connect to or include a set of web service proxies that each correspond to a web service available via a network connection. A web services consumption server is optionally used to route service requests from the application to the appropriate web service proxy. The system can also optionally include a developer tool for adapting legacy systems or environments to be able to consume web services using modern protocols thus allowing the migration of legacy subsystems to a networked loosely-coupled environment.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation of U.S. application Ser. No. 10/923,969 filed Aug. 23, 2004 and entitled “SYSTEM AND METHOD FOR MIGRATING APPLICATIONS FROM A LEGACY SYSTEM.” 
    
    
     STATEMENT REGARDING FEDERALLY SPONSORED-RESEARCH OR DEVELOPMENT 
     Not Applicable. 
     INCORPORATION BY REFERENCE OF MATERIAL SUBMITTED ON A COMPACT DISC 
     Not Applicable. 
     FIELD OF THE INVENTION 
     The invention disclosed broadly relates to the field of information processing systems and more particularly relates to the field of migration of software from mainframe environments to non-mainframe architectures and platforms. 
     BACKGROUND OF THE INVENTION 
     Business process control software was historically performed on mainframe platforms. The introduction of microprocessor-driven computing apparatus in the 1980s changed the world of computing and introduced a new paradigm for enterprise business process software that is not run on mainframes. However many enterprises have invested substantial sums of money on legacy mainframe software. There are typically 200-300 billion lines of application code consisting of millions of applications that currently reside on mainframe computers such as those provided by International Business Machines Corporation of Armonk, N.Y. These applications run the core business applications for approximately 6,000 companies and organizations, including most of the Global 1000. There is a need for a system and method to migrate these applications form a mainframe platform to non-mainframe platforms or architectures such as those running Windows operating systems. 
     SUMMARY OF THE INVENTION 
     Briefly according to an embodiment of the invention an information processing system comprises a legacy application, a web services consumption copybook, and a set of application program interfaces for enabling the legacy application to access a selected web service via a web services consumption server. The web services consumption copybook represents data structures of the selected web service. The system can either connect to or include a set of web service proxies that each correspond to a web service available via a network connection. A web services consumption server is optionally used to route service requests from the application to the appropriate web service proxy. 
     The system can also optionally include a developer tool for adapting legacy systems or environments to be able to consume web services using modern protocols thus allowing the migration of legacy subsystems to a networked loosely-coupled environment. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram depicting an architecture according to the invention. 
         FIG. 2  is a block diagram depicting a computer readable medium comprising components according to an embodiment of the invention. 
         FIG. 3  is a flow chart illustrating a method according to the present invention. 
     
    
    
     DETAILED DESCRIPTION 
     A system and method using the invention solve a critical issue facing global corporations as they evaluate strategies to move their business applications from legacy mainframe computing platforms to modern architectures and platforms and technologies such as those using client-server or distributed computing paradigms. 
     Referring to  FIG. 1 , there is shown an information-processing system  100  according to an embodiment of the invention. The system  100  comprises a legacy system  110 , a server  106 , a set of web services  104  and a developer tool  120 . The invention however can be used in a variety of configurations that generally enable systems that use the services of tightly coupled subsystems (legacy systems) to also use loosely coupled subsystems such as web services or other network services. The legacy applications include applications programs such as the COBOL (Common business Oriented Language) application program  102  that uses (i.e., consumes) services of legacy sub-systems. An example is an insurance system (application) that requests and receives services from a rating module or sub-system that is tightly coupled with the insurance system. According to an embodiment of the invention the application  102  can be adapted to use services of a web service provider  104  via a server  106  and the Internet  108  as opposed to the legacy subsystems hosted by the legacy system  110 . This process, called sub-system migration, has many advantages that will be apparent to those skilled in the art. One such advantage is that the use of service resources available through a network such as the world-wide web (web services) eliminates the need for an enterprise using the system  110  to maintain applications (sub-systems) hosted in the system  110 . Using the invention the application  102  can be a web service consuming application using the services provided by various software agents  104 . 
     As used herein, a “legacy” program or application is one that cannot directly consume web services. In most cases the legacy system is a mainframe computer such as those provided by International Business Machines Corporation but in other cases it could be any system or architecture that is not able to consume Web Services or other loosely coupled services directly. 
     According to an embodiment of the invention, the mainframe computer  110  is adapted to enable the application  102  to consume web services  104  that use data types that are not specific to common encoding schemes. Thus, the mainframe computer  110  is adapted in part by installing a set of application program interfaces (APIs)  112  into it that enable the application  102  to request the selected web services via a server  106 . The mainframe  110  uses these APIs  112  to direct requests or information to the web service consumption server software  114  hosted in the server  106 . The mainframe computer  110  is further adapted to allow for the application  102  to consume web services  104  by modifying the application  102  and integrating a web services consumption copybook  103  into the web service consuming application  102 . Alternatively, the copybook  103  can be stored in the system  110  so that the application  102  can interact with it without integration into the application  102 . The copybook  103  represents the data structures of the web services inbound and outbound operation messages that the application  102  needs to consume. COBOL and other mainframe applications readily use copybooks. The application  102  requires a transformation process that converts web messages (e.g., using an XML-compatible messaging protocol) into data and instructions that can be used by the application  102 . This transformation is delegated to an external web service proxy  116 . We use the term “web services” to refer to services provided by a web-based application using a common messaging protocol such as SOAP (simple object access protocol), XML-RPC (extensible markup language-remote procedure call), or XMLP (XML protocol). 
     The server  106  preferably uses a microcomputer operating system with a graphical user interface such as Windows™ operating system provided by Microsoft Corporation or a UNIX operating system and comprises a Web service consumption (WsC) server software  114  and a Web services consumption proxy  116 , conceptually disposed between the server  114  and the Web service source  104 . The web services consumption proxy  116  is preferably a dynamic link library (DLL) that is used to communicate with the web service  104 . 
     The system  100  addresses the business and technical requirements of systematically migrating these applications from the legacy mainframe computing platform to modern architectures and to integrate these systems into their service-oriented architecture (SOA) by allowing the legacy application  102  to consume web services  104  while a full migration to a web-services environment is completed. An SOA is an architecture that achieves loose coupling among interacting software agents. An example of a loose coupling is a set of computers that are linked to each other via a network and share each other&#39;s services. 
     The adaptation of the system  100  such that the application  102  consumes the web services  104  is preferably done at development time using a developer tool  120  that obtains information from the web services  104  and creates a copybook  103  for each service, a proxy  116  for the server  106 , and the APIs  112  for the legacy system  110 . The developer tool  120  includes in each proxy  116  web service access information such as the location of a particular web service. 
     Using the structure identified in the web services consumption copybook  103 , the COBOL program  102  can consume a web service  104  using the APIs  112  to request the service and the web services consumption server  112  to select the appropriate web services consumption proxy  104 . Then, the Server  114  channels the request through to the corresponding WsC proxy  116 . The proxy  116  converts the request including associated data into an appropriate format and communicates with the Web service  104  to fulfill the request. Once the service  104  returns processed information or other service, the system  100  directs the processed information back to the calling mainframe program  110  for use by the application  102 . The proxy  116  converts the information provided by the Web service  104  into a data format usable by the application  102  and sends that processed information using an appropriate transport mechanism or protocol. 
     Referring to  FIG. 2 , the developer tool  120  can be implemented as a set of program instructions stored in a computer-readable medium such as a CD ROM or DVD or downloaded by users. The medium would include software for creating a web service interface  122 , a copybook  124 , and a set of APIs  126 . The information stored in the medium includes both instructions and data. The instructions and data are preferably installed into a computer system that is preferably separate from the mainframe legacy system  110 . 
     The program instructions in the medium are for seeking the information, from the various web services, that is required to create the components used to create the copybooks, APIs and proxies discussed herein. The set of APIs  126  comprises the APIs  112  for installation in the mainframe  110 . The Web Service Consumption software  114  is used for loading into a server, for example using an operating system such as the Windows™ operating system or other suitable operating system, a set of proxies  116  (one for each Web service  104 ); and a set of copybooks for defining the variables (working storage) for each Web service to be integrated into a new or existing legacy program. 
     A sub-system is a group of business functions that tightly relate to each other. The sub-systems are rewritten on SOA architectures, one at a time. While this is happening, the WsC system  100  allows an enterprise to still run the backend application on the mainframe and consume Web services from a large number of platforms. Sub-systems are not isolated from one another. For the entire system to operate, sub-systems need to communicate with each-other. During the long transition period that our approach mandates, communication must flow inbound to the Legacy system and outbound from the Legacy system. Over time, the logic on the mainframe can be completely moved to another platform, once the code has been re-written and tested. 
     This type of migration can span several years, and provides a pragmatic way of migrating legacy applications to SOA. Migration costs can now be spread across multiple years and therefore high priority developments are not disrupted. 
     Referring to  FIG. 3 , there is illustrated a method  300  according to an embodiment of the invention that involves using a subsystem migration approach. The method  300  is preferably performed with the developer tool  120 . In step  302  the system parses a set of data expressed in a web services description language into a legacy structure. The data is associated with a request for processing by a selected web service. 
     In step  304 , a copybook is generated for the selected web service. The copybook defines a set of variables for the selected web service so that the web service consuming application can use the requested web service. 
     In step  306  a proxy for handing the selected web service is created. In step  308  the copybook is installed into a legacy system. 
     In step  308  an application program interface (API) is called for use by the application to request the selected web service from a proxy for that web service. The API is preferably installed in the legacy system so that it can use the web services consumption server software to request the selected web service from a corresponding web services proxy. 
     What has been shown and discussed is a highly-simplified depiction of a programmable computer apparatus. Those skilled in the art will appreciate that other low-level components and connections are required in any practical application of a computer apparatus. Therefore, while there has been described what is presently considered to be the preferred embodiment, it will be understood by those skilled in the art that other modifications can be made within the spirit of the invention.