IP Library Granted Patent US 9,690,577
Granted Patent B1
US 9,690,577 · App. 10/775,654 · Granted Jun 27, 2017

Legacy applications as web services

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,690,577
App. No.
10/775,654
Granted
Jun 27, 2017
Kind
B1
Abstract

A legacy application may be executed as a Web Service by receiving from a client application a request comprising application input data that includes target legacy program identifying information and a template identifier, loading the specified template, translating the input data into a data format compatible with the application, executing the application and translating the output data for transmission to the client application. The template corresponds to the legacy application and comprises metadata describing the application flow and the required input data and output data for the application.

Claims (107)

1. A computer server comprising: one or more processors; and a memory coupled to the processors comprising instructions executable by the processors, the processors being operable when executing the instructions to:

receive a request from a client application, the request comprising:

a legacy application program identifier corresponding to one of a plurality of legacy application programs;

a legacy type program identifier comprising an interface plug-in identifier that identifies a dynamic SQL interface plug-in;

input data; and

a template identifier for a template comprising metadata for use when formatting the input data for use by the corresponding legacy application program and when formatting output data received from the legacy application program for use by the client application;

obtain a template based at least in part on the template identifier, wherein the template comprises a header portion and a plurality of data element descriptor portions, each of the one or more data element descriptor portions used for communicating information between the interface plug-in and the corresponding legacy application program;

generate a test harness for automated testing of the template based at least in part on metadata in the template;

format the input data based at least in part on metadata in the template;

invoke the corresponding legacy application program, the invoking comprising sending the formatted legacy application input data to the legacy application program;

receive, from the corresponding legacy application program, output data;

format the output data based at least in part on the metadata; and

transmit a response to the client application, the response comprising the formatted output data.

2. The computer server of claim 1 , further comprising a network interface.

3. The computer server of claim 1 , wherein the processors utilize the interface plug-in to invoke the corresponding legacy application program.

4. The computer server of claim 1 , wherein the processors utilize a common driver to obtain the template.

5. The computer server of claim 1 , wherein the request comprises:

a Simple Object Access Protocol (SOAP) request;

a Hypertext Transfer Protocol (HTTP) request; or

an MQ request.

6. The computer server of claim 1 , wherein the response comprises:

a Simple Object Access Protocol (SOAP) response;

a Hypertext Transfer Protocol (HTTP) response; or

an MQ response.

7. The computer server of claim 1 , wherein the interface plug-in and a common driver comprise a single application program.

8. The computer server of claim 1 , wherein:

the request comprises a Simple Object Access Protocol (SOAP) request; and

the template maps the SOAP request to an interface.

9. The computer server of claim 1 , wherein:

the request comprises a Simple Object Access Protocol (SOAP) request;

the template maps the SOAP request to an interface; and

the interface comprises a COMMAREA interface.

10. A method comprising:

receiving, by one or more computer servers, a request from a client application, the request comprising:

a legacy application program identifier corresponding to one of a plurality of legacy application programs;

a legacy type program identifier comprising an interface plug-in identifier that identifies a dynamic SQL interface plug-in;

input data; and

a template identifier for a template comprising metadata for use when formatting the input data for use by the corresponding legacy application program for use by the client application;

obtaining, by one or more computer servers, a template based at least in part on the template identifier, wherein the template comprises a header portion and a plurality of data element descriptor portions, each of the one or more data element descriptor portions used for communicating information between the interface plug-in and the corresponding legacy application program;

generating, by one or more computer servers, a test harness for automated testing of the template based at least in part on metadata in the template;

formatting, by one or more computer servers, the input data based at least in part on metadata in the template;

invoking, by one or more computer servers, the corresponding legacy application program, the invoking comprising sending the formatted legacy application input data to the legacy application program;

receiving, by one or more computer servers, from the corresponding legacy application program, output data;

formatting, by one or more computer servers, the output data based at least in part on the metadata; and

transmitting, by one or more computer servers, a response to the client application, the response comprising the formatted output data.

11. The method of claim 10 , wherein the network servers comprise a network interface.

12. The method of claim 10 , wherein the computer servers utilize the interface plug-in to invoke the corresponding legacy application program.

13. The method of claim 10 , wherein the computer server utilizes a common driver to obtain the template.

14. The method of claim 10 , wherein the request comprises:

a Simple Object Access Protocol (SOAP) request;

a Hypertext Transfer Protocol (HTTP) request; or

an MQ request.

15. The method of claim 10 , wherein the response comprises:

a Simple Object Access Protocol (SOAP) response;

a Hypertext Transfer Protocol (HTTP) response; or

an MQ response.

16. The method of claim 10 , wherein the interface plug-in and a common driver comprise a single application program.

17. One or more computer-readable non-transitory storage media embodying software that is operable when executed to:

receive a request from a client application, the request comprising:

a legacy application program identifier corresponding to one of a plurality of legacy application programs;

a legacy type program identifier comprising an interface plug-in identifier that identifies a dynamic SQL interface plug-in;

input data; and

a template identifier for a template comprising metadata for use when formatting the input data for use by the corresponding legacy application program and when formatting output data received from the legacy application program for use by the client application;

obtain a template based at least in part on the template identifier, wherein the template comprises a header portion and a plurality of data element descriptor portions, each of the one or more data element descriptor portions used for communicating information between the interface plug-in and the corresponding legacy application program;

generate a test harness for automated testing of the template based at least in part on metadata in the template;

format the input data based at least in part on metadata in the template;

invoke the corresponding legacy application program, the invoking comprising sending the formatted legacy application input data to the legacy application program;

receive, from the corresponding legacy application program, output data;

format the output data based at least in part on the metadata; and

transmit a response to the client application, the response comprising the formatted output data.

18. The media of claim 17 , wherein a network interface is utilized.

19. The media of claim 17 , wherein the interface plug-in is utilized to invoke the corresponding legacy application program.

20. The media of claim 17 , wherein a common driver is utilized to obtain the template.

21. The media of claim 17 , wherein the request comprises:

a Simple Object Access Protocol (SOAP) request;

a Hypertext Transfer Protocol (HTTP) request; or

an MQ request.

22. The media of claim 17 , wherein the response comprises:

a Simple Object Access Protocol (SOAP) response;

a Hypertext Transfer Protocol (HTTP) response; or

an MQ response.

23. The media of claim 17 , wherein the interface plug-in and a common driver comprise a single application program.

24. A computer server comprising:

means for receiving a request from a client application, the request comprising:

a legacy application program identifier corresponding to one of a plurality of legacy application programs;

a legacy type program identifier comprising an interface plug-in identifier that identifies a dynamic SQL interface plug-in;

input data; and

a template identifier for a template comprising metadata for use when formatting the input data for use by the corresponding legacy application program and when formatting output data received from the legacy application program for use by the client application;

means for obtaining a template based at least in part on the template identifier, wherein the template comprises a header portion and a plurality of data element descriptor portions, each of the one or more data element descriptor portions used for communicating information between the interface plug-in and the corresponding legacy application program;

means for generating a test harness for automated testing of the template based at least in part on metadata in the template;

means for formatting the input data based at least in part on the metadata in the template;

means for invoking the corresponding legacy application program, the invoking comprising sending the formatting legacy application input data to the legacy application program;

means for receiving, from the corresponding legacy application program, output data;

means for formatting the output data based at least in part on the metadata; and

means for transmitting a response to the client application, the response comprising the formatted output data.

25. The computer server of claim 24 , further comprising a network interface.

26. The computer server of claim 24 , wherein the interface plug-in is utilized to invoke the corresponding legacy application program.

27. The computer server of claim 24 , wherein a common driver is utilized to obtain the template.

28. The computer server of claim 24 , wherein the request comprises:

a Simple Object Access Protocol (SOAP) request;

a Hypertext Transfer Protocol (HTTP) request; or

an MQ request.

29. The computer server of claim 24 , wherein the response comprises:

a Simple Object Access Protocol (SOAP) response;

a Hypertext Transfer Protocol (HTTP) response; or

an MQ response.

30. The computer server of claim 24 , wherein the interface plug-in and a common driver comprise a single application program.

Assignments (15)
SECURITY INTEREST Recorded Apr 7, 2026
From: PERFORCE SOFTWARE, INC.; DELPHIX CORP.; AKANA, INC.; ROGUE WAVE SOFTWARE, INC.
To: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
Reel/Frame 075368/0968 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Aug 7, 2019
From: BRIGHTWOOD LOAN SERVICES LLC, AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
To: AKANA, INC.; ROGUE WAVE SOFTWARE, INC.; PERFORCE SOFTWARE, INC.
Reel/Frame 049996/0115 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Jul 22, 2019
From: ANTARES CAPITAL LP, AS COLLATERAL AGENT
To: AKANA, INC.
Reel/Frame 049823/0685 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jul 22, 2019
From: PERFORCE SOFTWARE, INC.; PERFORCE INTERMEDIATE HOLDINGS, LLC; AKANA, INC.; GLIFFY, INC.; KLOCWORK INC.; OPENLOGIC, INC.; ROGUE WAVE HOLDING CORP.; ROGUE WAVE HOLDINGS, INC.; ROGUE WAVE SOFTWARE, INC.; RWS, INC.; TOTALVIEW TECHNOLOGIES, INC.; TOTALVIEW TECHNOLOGIES LLC; VISUAL NUMERICS, INC.; ZEROTURNAROUND USA, INC.; ZEROTURNAROUND, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 049823/0752 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jul 8, 2019
From: AKANA, INC.
To: CORTLAND CAPITAL MARKET SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 049688/0800 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Feb 8, 2019
From: FIRST EAGLE PRIVATE CREDIT, LLC (F/K/A/ NEWSTAR FINANCIAL, LLC (NEWSTAR FINANCIAL, LLC F/K/A NEWSTAR FINANCIAL, INC.))
To: ROGUE WAVE SOFTWARE, INC.; ROGUE WAVE HOLDINGS, INC.; KLOCWORK INC.; TOTALVIEW TECHNOLOGIES, INC.; TOTALVIEW TECHNOLOGIES LLC; RWS, INC.; OPENLOGIC, INC.; VISUAL NUMERICS, INC.; AKANA, INC.
Reel/Frame 048289/0928 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Feb 8, 2019
From: AKANA, INC.; ROGUE WAVE SOFTWARE, INC.; PERFORCE SOFTWARE, INC.
To: BRIGHTWOOD LOAN SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 048290/0223 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Feb 8, 2019
From: AKANA, INC.; ROGUE WAVE SOFTWARE, INC.; PERFORCE SOFTWARE, INC.
To: BRIGHTWOOD LOAN SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 048290/0241 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Feb 8, 2019
From: AKANA, INC.
To: ANTARES CAPITAL LP, AS COLLATERAL AGENT
Reel/Frame 049859/0124 →
RELEASE OF SECURITY INTEREST Recorded Dec 6, 2016
From: MULTIPLIER CAPITAL, LP
To: AKANA, INC.
Reel/Frame 040842/0358 →
SECURITY AGREEMENT Recorded Apr 7, 2016
From: AKANA, INC.
To: MULTIPLIER CAPITAL, LP
Reel/Frame 038381/0780 →
CHANGE OF NAME Recorded May 1, 2015
From: SOA SOFTWARE, INC.
To: AKANA, INC.
Reel/Frame 035566/0196 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 18, 2012
From: BANK OF AMERICA CORPORATION
To: SOA SOFTWARE, INC.
Reel/Frame 028234/0835 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 20, 2010
From: MERRILL LYNCH, PIERCE, FENNER AND SMITH
To: BANK OF AMERICA CORPORATION
Reel/Frame 024863/0066 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2004
From: CREW, JAMES R.; PILLAY, VENKAT RAMAN; CARD, JOSEPH MICHAEL; RAJAN, SUNDAR J.; VITRO, BRUNO
To: MERRILL LYNCH, PIERCE, FENNER AND SMITH
Reel/Frame 015001/0317 →