IP Library Granted Patent US 11,416,314
Granted Patent B2
US 11,416,314 · App. 17/178,079 · Granted Aug 16, 2022

Adaptive application version integration support

Inventors: James Wilbert Devine (Columbus, OH); Daniel Craig Manges (Powell, OH); Michael A. Panetta (Grandview Heights, OH)
Assignee: Caret Holdings, Inc.
G06F9/541G06F2209/542
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 11,416,314
App. No.
17/178,079
Granted
Aug 16, 2022
Kind
B2
Abstract

An Application Programming Interface (API) call that is directed from a first application to a second application is intercepted. A first version number is identified for the first application and a second version number is identified for the second application. One or more transformations are processed on the API call to produce a compatible API call that is compatible with the second application. The compatible API call is provided to the second application for processing on behalf of the first application.

Claims (46)

1. A method, comprising:

obtaining an out-of-date version of an Application Programming Interface (API) call initiated from a mobile application of a mobile device and directed to a network service;

determining a current version of the API call being processed by the network service, wherein determining further includes determining a total number of one or more API transformations based on the out-of-date version of the API call and the current version of the API call supported by the network service;

chaining the one or more API transformations on the API call and converting the API call into a second API call associated with the current version, wherein chaining further includes serially processing, in an ascending order, the one or more API transformations for a total number of iterations equal to the total number, wherein serially processing further includes transforming with each iteration an API operation associated with the API call and provided as output from a prior iteration, if any, and transforming with each iteration a packet payload associated with data provided with the API call as output from the prior iteration, if any; and

providing the second API call to the network service for processing on behalf of the mobile application.

2. The method of claim 1 further comprising:

obtaining a response produced by the network service and sent to the mobile application using a third API call associated with the current version;

chaining the one or more API transformations and converting the third API call into a fourth API call associated with the out-of-date version by processing the one or more API transformations in a reverse order from an original order processed when converting the API call from the out-of-date version into the second API call in the current version; and

providing the fourth API call to the mobile application as the response to the API call provided by the network service.

3. The method of claim 1 , wherein obtaining further includes monitoring a session between the mobile application and the network service for communications between the mobile application and the network service and detecting the API call in the out-of-date version as a first communication of the session.

4. The method of claim 3 , wherein monitoring further includes maintaining version identifiers for the out-of-date version and the current version as metadata associated with the session.

5. The method of claim 1 , wherein chaining further includes identifying one or more adapters for the one or more API transformations, each adapter associated with converting an operation identifier for an operation associated with the API call and any data provided with the operation from a specific version of the API call to a next version of the API call.

6. The method of claim 1 , wherein identifying the one or more adapters further includes obtaining the adapters as executable scripts that are serially processed in the ascending order or obtaining the adapters as files that are serially read, interpreted as instructions, and processed in the ascending order.

7. A method, comprising:

issuing a first communication directed to a network service from a mobile device using a first version of an Application Programming Interface (API) associated with a mobile application of the mobile device, wherein the network service communicates via a different version of the API; and

causing by the issuing, the first communication to be delivered to the network service in the different version of the API, wherein causing further includes causing serial processing, in an ascending order, one or more API transformations for a total number of iterations equal to a computed difference between the different version and the first version, wherein causing serial processing further includes causing transforming with each iteration an API operation associated with the first communication and provided as output from a prior iteration, if any, and causing transforming with each iteration a packet payload associated with data provided with the first communication as output from the prior iteration, if any.

8. The method of claim 7 further comprising:

receiving a second communication in the first version of the API as a response from the network service to the first communication;

wherein the second communication is provided in the first version of API;

wherein the network service provided an original response in the different version of the API;

wherein the original response is transformed from the original response in the different version to the response in the first version of the API by processing one or more API adapters for the one or more API transformations.

9. The method of claim 8 further comprising:

establishing a session between the mobile application and the network service for additional communications;

wherein the one or more API adapters are processed in the ascending order for any given additional communication originating from the mobile application during the session;

wherein the one or more API adapters are processed in a descending order for any given additional communication originating from the network service during the session.

10. The method of claim 7 , wherein causing further includes causing initiation of an API adapter manager based on the first version of the API associated with the first communication and the different version of the API supported by the network service.

11. The method of claim 10 , wherein causing further includes providing the first version identifier for the first version as metadata with the first communication for detection by the API adapter manager.

12. The method of claim 11 , wherein providing further includes providing a mobile application identifier for the mobile application along with the first version identifier in the metadata with the first communication.

13. The method of claim 7 further comprising:

processing the method as the mobile application on the mobile device.

14. The method of claim 7 further comprising:

processing the method as the mobile application within a web-browser on the mobile device.

15. A system, comprising:

a mobile device comprising a mobile processor and a mobile non-transitory computer-readable storage medium;

the mobile non-transitory computer-readable storage medium comprises executable instructions for a mobile application;

a cloud environment comprising at least one server having at least one processor and a non-transitory computer-readable storage medium having executable instructions representing an Application Programming Interface (API) version manager;

the mobile application when executed by the mobile processor from the mobile non-transitory computer-readable storage medium causes the mobile processor to perform first operations comprising:

engaging a network service in a session using API calls associated with a first version of an API when the network service expects the API calls in a current supported version of the API, wherein the first version is not the current supported version;

the API version manager when executed by the at least one processor from the non-transitory computer-readable storage medium causes the at least one processor to perform second operations comprising:

detecting establishment of the session;

intercepting first communications originating from the mobile application during the session;

processing API adapters in an ascending order on the first communications and delivering the first communications in the current supported version of the API calls to the network service, wherein the API adapters are chained together and are processed serially in the ascending order, a total number of the API adapters processed is equal to a difference between the current supported version and the first version, each API adapter performs an API transformation that transforms an API operation associated with a given API call processed and provides as output from a previous API adapter to a next API adapter, if any, and transforming with each API adapter a packet payload associated with data provided with the given API call as output from the previous API adapter to the next API adapter, if any;

intercepting second communications originating from the network service during the session; and

processing the API adapters in a descending order on the second communications and delivering the second communications to the mobile application in the first version of the API calls.

16. The system of claim 15 , wherein the mobile application is a browser-based application that processes within a browser on the mobile device.

17. The system of claim 15 , wherein the network service is an additional set of executable instructions processed from the cloud environment with the API version manager.

Assignments (10)
RELEASE OF PATENT SECURITY INTEREST RECORDED AT R/F 065478/0131 Recorded May 13, 2026
From: ACQUIOM AGENCY SERVICES LLC
To: CARET HOLDINGS, INC.
Reel/Frame 075573/0260 →
RELEASE OF PATENT SECURITY INTEREST RECORDED AT R/F 066538/0718 AND CORRECTED AT R/F 066947/0212 Recorded May 13, 2026
From: ACQUIOM AGENCY SERVICES LLC
To: CARET HOLDINGS, INC.
Reel/Frame 075623/0317 →
RELEASE OF PATENT SECURITY INTEREST RECORDED AT R/F 061715/0333 Recorded May 13, 2026
From: ACQUIOM AGENCY SERVICES LLC
To: CARET HOLDINGS, INC.
Reel/Frame 075573/0214 →
SECURITY INTEREST Recorded May 4, 2026
From: CARET HOLDINGS, INC.
To: THE HUNTINGTON NATIONAL BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 074552/0233 →
CORRECTIVE ASSIGNMENT TO CORRECT THE THE CORRECT APPLICATION NUMBER IS 17/929,552 PREVIOUSLY RECORDED AT REEL: 66538 FRAME: 718. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Mar 22, 2024
From: ROOT, INC.; CARET HOLDINGS, INC.
To: ACQUIOM AGENCY SERVICES, LLC, AS THE ADMINISTRATIVE AGENT
Reel/Frame 066947/0212 →
SECURITY INTEREST Recorded Feb 23, 2024
From: ROOT, INC.; CARET HOLDINGS, INC.
To: ACQUIOM AGENCY SERVICES, LLC, AS THE ADMINISTRATIVE AGENT
Reel/Frame 066538/0718 →
SECURITY INTEREST Recorded Nov 7, 2023
From: ROOT, INC.; CARET HOLDINGS, INC.
To: ACQUIOM AGENCY SERVICES LLC, AS THE ADMINISTRATIVE AGENT
Reel/Frame 065478/0131 →
SECURITY INTEREST Recorded Nov 10, 2022
From: ROOT INC.; CARET HOLDINGS, INC.
To: ACQUIOM AGENCY SERVICES, LLC, AS ADMINISTRATIVE AGENT
Reel/Frame 061715/0333 →
CHANGE OF NAME Recorded Mar 23, 2021
From: ROOT, INC.
To: CARET HOLDINGS, INC.
Reel/Frame 055687/0647 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 23, 2021
From: DEVINE, JAMES W.; MANGES, DANIEL C.; PANETTA, MICHAEL A.
To: ROOT, INC.
Reel/Frame 055687/0434 →
Continuity (2)
Continuation 16592314 · Oct 3, 2019
Related Publication 20210173723A1 · Jun 10, 2021
Cited By (1)
US 12,314,783