IP Library Granted Patent US 7,293,253
Granted Patent B1
US 7,293,253 · App. 10/660,534 · Granted Nov 6, 2007

Transparent interface migration using a computer-readable mapping between a first interface and a second interface to auto-generate an interface wrapper

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 7,293,253
App. No.
10/660,534
Granted
Nov 6, 2007
Kind
B1
Abstract

For a software application that uses a first interface, a method is provided to allow the migration of the software application to a second interface instead of the first interface. The software application may, in some situations, be migrated without having to modify the software application. The method involves the creation of a computer-readable mapping between the first interface and the second interface. The computer-readable mapping is then run through auto-generation software which automatically generates an interface wrapper. The interface wrapper can be used in a system to allow a legacy application to continue to use a legacy interface while a new application uses a new interface. The interface wrapper allows the software application to transparently communicate with the second interface. The details of the auto-generation software are also specified.

Claims (109)

1. For a software application that uses a first interface related to a first piece of software code, a method of migrating the software application to allow the software application to use a second interface instead of the first interface, the method comprising:

creating a computer-readable mapping between the first interface and the second interface;

running the mapping through an auto-generator, wherein the auto-generator uses the mapping to automatically generate interface wrapper;

outputting the interface wrapper to replace the first interface and the first piece of software code, thereby interposing the interface wrapper between the software application and the second interface;

wherein the interface wrapper allows the software application to communicate with the second interface instead of the first interface.

2. The method of claim 1 , wherein the interface wrapper provides for at least one of (a) forward compatibility wherein the interface wrapper allows the software application to transparently communicate with the second interface and (b) backward compatibility wherein the interface wrapper allows the second interface to transparently communicate with the software application.

3. The method of claim 2 , wherein for forward compatibility, creating the computer-readable mapping comprises creating a mapping from the first interface to the second interface.

4. The method of claim 2 , wherein for backward compatibility, creating the computer-readable mapping comprises creating a mapping from the second interface to the first interface.

5. The method of claim 1 , wherein the auto-generator, in an object-oriented environment, is software comprising the following instructions:

a) for each class in the first interface

a-1) from all classes to be included in the interface wrapper mapped from the class in the first interface, select a master class to hold handles to all other classes in the interface wrapper mapped from the class in the first interface;

b) for each class to be included in the interface wrapper as set out in the computer-readable mapping

b-1) if the class to be included in the interface wrapper is the master class, initialize all the handles in the master class;

b-2) for each attribute in the class to be included in the interface wrapper

b-2-1) add code from the computer-readable mapping related to the attribute to the class to be included in the interface wrapper;

b-3) for each method in the class to be included in the interface wrapper

b-3-1) add code from the computer-readable mapping related to the method to the class to be included in the interface wrapper.

6. The method of claim 1 , wherein the auto-generator, in an object-oriented environment, is software comprising the following instructions for each class to be included in the interface wrapper as set out in the computer-readable mapping:

a) define the class to be included in the interface wrapper

b) for each class from the first interface mapped to the class to be included in the interface wrapper as set out in the computer readable mapping:

b-1) upon determining that the class from the first interface is mapped only to the class to be included in the interface wrapper

b-1-1) add a member for the class from the first interface to the class to be included in the interface wrapper;

b-1-2) add construction of the member to all constructors in the class to be included in the interface wrapper;

b-2) upon determining that the class from the interface is not mapped only to the class to be included in the interface wrapper and upon determining that the class to be included in the interface wrapper is the first of all classes in the interface wrapper mapped from the class from the first interface as set out in the computer-readable mapping:

b-2-1) designate the class to be included in the interface wrapper as a master class to hold handles to all other classes in the interface wrapper mapped from the class in the first interface;

b-2-2) add a member for the class from the first interface to the class to be included in the interface wrapper;

b-2-3) add construction of the member to all constructors in the class to be included in the interface wrapper;

b-2-4) for each other class in the interface wrapper mapped from the class from the first interface

b-2-4-1) add a member for the other class in the interface wrapper to the master class;

b-2-4-2) add construction of the other class in the interface wrapper to all constructors in the master class;

b-2-4-3) add a call to initialize the member wherein the member will know that the class to be included in the interface wrapper is the master class in all constructors of the other class in the interface wrapper;

b-2-4-4) add a method to the other class in the interface wrapper to retrieve the member by a type name of the other class;

b-3) upon determining that the class from the first interface is not mapped only to the class to be included in the interface wrapper and upon determining that the class to be included in the interface wrapper is not the first of all classes in the interface wrapper mapped from the class from the first interface as set out in the computer-readable mapping;

b-3-1) add a member for the master class to the class to be included in the interface wrapper;

b-3-2) add a method to the class to be included in the interface wrapper to allow the member to be initialized to point to the master class;

b-3-3) add a method to the class to be included in the interface wrapper to retrieve the member;

c) for each attribute in the class to be included in the interface wrapper

c-1) add code from the computer-readable mapping related to the attribute to the class to be included in the interface wrapper;

d) for each method in the class to be included in the interface wrapper

d-1) add code from the computer-readable mapping related to the method to the class to be included in the interface wrapper.

7. The method of claim 1 , wherein the software application, the first interface and the second interface are written in the Java language.

8. The method of claim 1 , wherein the computer-readable mapping is written in a language selected from one of XML and UML.

9. The method of claim 1 , wherein the auto-generator is software written in a form selected from one of XSL templates, bean script and XDoclet.

10. The method of claim 1 , wherein the software application is migrated from the first interface to the second interface without modifying the software application.

11. A system adapted to assist with the migration of a software application from a first interface to a second interface, the system comprising a processing platform and a computer-readable medium comprising auto-generation software, the system being adapted to receive a computer-readable mapping from the first interface to the second interface, the processing platform being adapted to execute instructions of the auto-generation software to process the mapping to output an interface wrapper wherein the interface wrapper allows the software application to transparently communicate with the second interface.

12. The system of claim 11 , wherein the instructions of the auto-generation software comprises the following instructions:

a) for each class in the first interface

a-1) from all classes to be included in the interface wrapper mapped from the class in the first interface, select a master class to hold handles to all other classes in the interface wrapper mapped from the class in the first interface;

b) for each class to be included in the interface wrapper as set out in the computer-readable mapping

b-1) if the class to be included in the interface wrapper is the master class, initialize all the handles in the master class;

b-2) for each attribute in the class to be included in the interface wrapper

b-2-1) add code from the computer-readable mapping related to the attribute to the class to be included in the interface wrapper

b-3) for each method in the class to be included in the interface wrapper

b-3-1) add code from the computer-readable mapping related to the method to the class to be included in the interface wrapper.

13. The system of claim 11 wherein the instructions from the auto-generation software comprises the following instructions: for each class to be included in the interface wrapper as set out in the computer-readable mapping:

a) define the class to be included in the interface wrapper

b) for each class from the first interface mapped to the class to be included in the interface wrapper as set out in the computer readable mapping:

b-1) upon determining that the class from the first interface is mapped only to the class to be included in the interface wrapper:

b-1-1) add a member for the class from the first interface to the class to be included in the interface wrapper;

b-1-2) add construction of the member to all constructors in the class to be included in the interface wrapper;

b-2) upon determining that the class from the interface is not mapped only to the class to be included in the interface wrapper and upon determining that the class to be included in the interface wrapper is the first of all classes in the interface wrapper mapped from the class from the first interface as set out in the computer-readable mapping:

b-2-1) designate the class to be included in the interface wrapper as a master class to hold handles to all other classes in the interface wrapper mapped from the class in the first interface;

b-2-2) add a member for the class from the first interface to the class to be included in the interface wrapper;

b-2-3) add construction of the member to all constructors in the class to be included in the interface wrapper;

b-2-4) for each other class in the interface wrapper mapped from the class from the first interface

b-2-4-1) add a member for the other class in the interface wrapper to the master class;

b-2-4-2) add construction of the other class in the interface wrapper to all constructors in the master class;

b-2-4-3) add a call to initialize the member wherein the member will know that the class to be included in the interface wrapper is the master class in all constructors of the other class in the interface wrapper;

b-2-4-4) add a method to the other class in the interface wrapper to retrieve the member by a type name of the other class;

b-3) upon determining that the class from the first interface is not mapped only to the class to be included in the interface wrapper and upon determining that the class to be included in the interface wrapper is not the first of all classes in the interface wrapper mapped from the class from the first interface as set out in the computer-readable mapping:

b-3-1) add a member for the master class to the class to be included in the interface wrapper;

b-3-2) add a method to the class to be included in the interface wrapper to allow the member to be initialized to point to the master class;

b-3-3) add a method to the class to be included in the interface wrapper to retrieve the member;

c) for each attribute in the class to be included in the interface wrapper

c-1) add code from the computer-readable mapping related to the attribute to the class to be included in the interface wrapper;

d) for each method in the class to be included in the interface wrapper

d-1add code from the computer-readable mapping related to the method to the class to be included in the interface wrapper.

14. A computer-readable medium containing instructions for automatically generating and outputting an interface wrapper to facilitate migration of a software application from a first interface to a second interface, wherein, given a computer-readable mapping from the first interface to the second interface, the instructions comprise:

a) for each class in the first interface

a-1) from all classes to be included in the interface wrapper mapped from the class in the first interface, select a master class to hold handles to all other classes in the interface wrapper mapped from the class in the first interface;

b) for each class to be included in the interface wrapper as set out in the computer-readable mapping

b-1) if the class to be included in the interface wrapper is a master class, initialize all the handles in the master class;

b-2) for each attribute in the class to be included in the interface wrapper

b-2-1) add code from the computer-readable mapping related to the attribute to the class to be included in the interface wrapper;

b-3) for each method in the class to be included in the interface wrapper

b-3-1) add code from the computer-readable mapping related to the method to the class to be included in the interface wrapper.

15. A computer-readable medium containing instructions for automatically generating and outputting an interface wrapper to facilitate migration of a software application from a first interface to a second interface, wherein, given a computer-readable mapping from the first interface to the second interface, the instructions comprise: for each class to be included in the interface wrapper as set out in the computer-readable mapping,

a) define the class to be included in the interface wrapper

b) for each class from the first interface mapped to the class to be included in the interface wrapper as set out in the computer readable mapping

b-1) upon determining that the class from the first interface is mapped only to the class to be included in the interface wrapper

b-1-1) add a member for the class from the first interface to the class to be included in the interface wrapper;

b-1-2) add construction of the member to all constructors in the class to be included in the interface wrapper;

b-2) upon determining that the class from the interface is not mapped only to the class to be included in the interface wrapper and upon determining that the class to be included in the interface wrapper is the first of all classes in the interface wrapper mapped from the class from the first interface as set out in the computer-readable mapping

b-2-1) designate the class to be included in the interface wrapper as a master class to hold handles to all other classes in the interface wrapper mapped from the class in the first interface;

b-2-2) add a member for the class from the first interface to the class to be included in the interface wrapper;

b-2-3) add construction of the member to all constructors in the class to be included in the interface wrapper;

b-2-4) for each other class in the interface wrapper mapped from the class from the first interface

b-2-4-1) add a member for the other class in the interface wrapper to the master class;

b-2-4-2) add construction of the other class in the interface wrapper to all constructors in the master class;

b-2-4-3) add a call to initialize the member wherein the member will know that the class to be included in the interface wrapper is the master class in all constructors of the other class in the interface wrapper;

b-2-4-4) add a method to the other class in the interface wrapper to retrieve the member by a type name of the other class;

b-3) upon determining that the class from the first interface is not mapped only to the class to be included in the interface wrapper and upon determining that the class to be included in the interface wrapper is not the first of all classes in the interface wrapper mapped from the class from the first interface as set out in the computer-readable mapping

b-3-1) add a member for the master class to the class to be included in the interface wrapper;

b-3-2) add a method to the class to be included in the interface wrapper to allow the member to be initialized to point to the master class;

b-3-3) add a method to the class to be included in the interface wrapper to retrieve the member;

c) for each attribute in the class to be included in the interface wrapper

c-1) add code from the computer-readable mapping related to the attribute to the class to be included in the interface wrapper;

d) for each method in the class to be included in the interface wrapper

d-1add code from the computer-readable mapping related to the method to the class to be included in the interface wrapper.

Assignments (23)
(SECURITY INTEREST) GRANTOR'S NAME CHANGE Recorded Sep 21, 2023
From: AVAYA INC.
To: AVAYA LLC
Reel/Frame 065019/0231 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 53955/0436) Recorded May 18, 2023
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: AVAYA MANAGEMENT L.P.; AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
Reel/Frame 063705/0023 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 61087/0386) Recorded May 18, 2023
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: AVAYA MANAGEMENT L.P.; AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
Reel/Frame 063690/0359 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 045034/0001) Recorded May 18, 2023
From: GOLDMAN SACHS BANK USA., AS COLLATERAL AGENT
To: AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.; ZANG, INC. (FORMER NAME OF AVAYA CLOUD INC.); HYPERQUALITY, INC.; HYPERQUALITY II, LLC; CAAS TECHNOLOGIES, LLC; AVAYA MANAGEMENT L.P.
Reel/Frame 063779/0622 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded May 4, 2023
From: AVAYA INC.; AVAYA MANAGEMENT L.P.; INTELLISIST, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 063542/0662 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded May 3, 2023
From: AVAYA MANAGEMENT L.P.; AVAYA INC.; INTELLISIST, INC.; KNOAHSOFT INC.
To: WILMINGTON SAVINGS FUND SOCIETY, FSB [COLLATERAL AGENT]
Reel/Frame 063742/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS AT REEL 45124/FRAME 0026 Recorded Apr 26, 2023
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: AVAYA HOLDINGS CORP.; AVAYA INC.; AVAYA MANAGEMENT L.P.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
Reel/Frame 063457/0001 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Aug 5, 2022
From: AVAYA INC.; INTELLISIST, INC.; AVAYA MANAGEMENT L.P.; AVAYA CABINET SOLUTIONS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 061087/0386 →
SECURITY INTEREST Recorded Sep 25, 2020
From: AVAYA INC.; AVAYA MANAGEMENT L.P.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 053955/0436 →
SECURITY INTEREST Recorded Jan 23, 2018
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.; ZANG, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 045124/0026 →
RELEASE OF SECURITY INTEREST Recorded Jan 11, 2018
From: CITICORP USA, INC.
To: AVAYA, INC.; SIERRA HOLDINGS CORP.
Reel/Frame 045045/0564 →
SECURITY INTEREST Recorded Jan 10, 2018
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.; ZANG, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 045034/0001 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 023892/0500 Recorded Dec 15, 2017
From: CITIBANK, N.A.
To: AVAYA INC.
Reel/Frame 044891/0564 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 025863/0535 Recorded Dec 15, 2017
From: THE BANK OF NEW YORK MELLON TRUST, NA
To: AVAYA INC.
Reel/Frame 044892/0001 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 041576/0001 Recorded Dec 15, 2017
From: CITIBANK, N.A.
To: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS INC.; OCTEL COMMUNICATIONS LLC (FORMERLY KNOWN AS OCTEL COMMUNICATIONS CORPORATION); VPNET TECHNOLOGIES, INC.
Reel/Frame 044893/0531 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 030083/0639 Recorded Dec 15, 2017
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVAYA INC.
Reel/Frame 045012/0666 →
SECURITY INTEREST Recorded Jan 27, 2017
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS INC.; OCTEL COMMUNICATIONS CORPORATION; VPNET TECHNOLOGIES, INC.
To: CITIBANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 041576/0001 →
SECURITY AGREEMENT Recorded Mar 13, 2013
From: AVAYA, INC.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., THE
Reel/Frame 030083/0639 →
SECURITY AGREEMENT Recorded Feb 22, 2011
From: AVAYA INC., A DELAWARE CORPORATION
To: BANK OF NEW YORK MELLON TRUST, NA, AS NOTES COLLATERAL AGENT, THE
Reel/Frame 025863/0535 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2010
From: NORTEL NETWORKS LIMITED
To: AVAYA INC.
Reel/Frame 023998/0878 →
SECURITY AGREEMENT Recorded Feb 5, 2010
From: AVAYA INC.
To: CITICORP USA, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 023905/0001 →
SECURITY AGREEMENT Recorded Feb 4, 2010
From: AVAYA INC.
To: CITIBANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 023892/0500 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 12, 2003
From: SOUKUP, MARTIN
To: NORTEL NETWORKS LIMITED
Reel/Frame 014494/0930 →