IP Library Granted Patent US 11,461,218
Granted Patent B1
US 11,461,218 · App. 17/237,012 · Granted Oct 4, 2022

Analyzing user API usage from recorded API macros for software product improvement

Inventors: Mark Malamut (Aliso Viejo, CA); Adam Brenner (Mission Viejo, CA); Arun Murti (Mission Viejo, CA)
Assignee: EMC IP Holding Company LLC
G06F11/3612G06F9/543
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,461,218
App. No.
17/237,012
Granted
Oct 4, 2022
Kind
B1
Abstract

Embodiments for recording application program interface (API) calls through an API recorder component or process that captures API calls as they are used by a number of users. API flows can be recorded to define recorded macros. An API collector collects API data for executed APIs and macros for storage in an API collection database and API performance analysis using at least one of a sequence analyzer, a runtime analyzer, a usage frequency analyzer, and an error analyzer. Output from the analyzers is provided to a user for review and determination of API improvement with respect to error reduction, API sequencing, runtime reduction, and usage frequency.

Claims (36)

1. A method of analyzing application program interface (API) performance using API recording and playback processes, comprising:

capturing, by an API recorder, all API calls for one or more APIs invoked by one or more users, wherein the one or more APIs are part of a macro recorded on-demand by a user of the API recorder, wherein the macro comprises a series of API calls that the user has considered important enough to preserve as a single workflow;

extracting API data from the API recorder for upload to an API collector, wherein the extracted API data comprises API calls, macros, API return codes, and execution times of the APIs;

obfuscating data determined to be or tagged as sensitive data;

transforming relevant non-sensitive data to defined values;

executing one or more analysis functions on the transformed data; and

providing output from the one or more analysis functions to a user for analysis of performance of the one or more APIs, wherein the one or more analysis functions comprises a sequence analyzer identifying APIs that are called in succession as user-defined macros or synthetic macros, a runtime analyzer, a usage frequency analyzer, and an error analyzer.

2. The method of claim 1 wherein the runtime analyzer determines execution run times for each of the APIs, for identifying successful long-running APIs and inefficient APIs that take an excessive amount of time to complete execution.

3. The method of claim 1 wherein the usage frequency analyzer determines a number of times each API is executed to identify APIs with excessively low total execution counts that may be deprecated, or APIs with high counts that may be further evaluated for improvement.

4. The method of claim 1 wherein the error analyzer examines return codes from the APIs to help determine if any remedial measures can be taken to reduce error counts from APIs showing high return codes.

5. The method of claim 1 wherein the sensitive data comprises password data for the one or more users, and the relevant data comprises API parameter information, including device IDs, GUIDs, and serial numbers.

6. A method of analyzing application program interface (API) performance using API recording and playback processes, comprising:

extracting API data for one or more APIs executed individually or as part of a defined macro, the API data comprising API calls, macros, API return codes, and an execution time of the APIs;

storing the API data in an API collection database; and

performing one or more analysis functions on the stored API data using at least one of:

sequence analysis identifying APIs that are called in succession in the macro,

runtime analysis determining execution run times for each of the APIs, for identifying successful long-running APIs and inefficient APIs that take an excessive amount of time to complete execution,

usage frequency analysis determining a number of times each API is executed to identify APIs with excessively low total execution counts that may be deprecated, or APIs with high counts that may be further evaluated for improvement, and

error analysis examining return codes from the APIs to help determine if any remedial measures can be taken to reduce error counts from APIs showing high return codes.

7. The method of claim 6 further comprising providing output from the one or more analysis functions to a user for analysis of performance of the one or more APIs.

8. The method of claim 7 further comprising obfuscating data determined to be or tagged as sensitive data, wherein the sensitive comprises at least password data of users executing the one or more macros.

9. The method of claim 8 further comprising transforming relevant non-sensitive data to defined values, wherein the relevant non-sensitive data comprises API parameter information, including device IDs, GUIDs, and serial numbers of devices used by the one or more users.

10. The method of claim 6 wherein the extracting step is performed periodically based on telemetry upload processes defined by a system administrator.

11. A system for analyzing application program interface (API) performance using API recording and playback processes, comprising:

an API collector hardware component extracting API data for one or more APIs executed individually or as part of a defined macro, the API data comprising API calls, macros, API return codes, and an execution time of the APIs;

an API collection database storing the API data in a database; and

an API analyzer hardware component performing one or more analysis functions on the stored API data using at least one of:

a sequence analyzer component identifying APIs that are called in succession in the macro,

a runtime analyzer component determining execution run times for each of the APIs, for identifying successful long-running APIs and inefficient APIs that take an excessive amount of time to complete execution,

a usage frequency analyzer component determining a number of times each API is executed to identify APIs with excessively low total execution counts that may be deprecated, or APIs with high counts that may be further evaluated for improvement, and

an error analyzer component examining return codes from the APIs to help determine if any remedial measures can be taken to reduce error counts from APIs showing high return codes.

12. The system of claim 11 further an output interface providing output from the one or more analysis functions to a user for analysis of performance of the one or more APIs.

13. The system of claim 12 further comprising an API recorder hardware component obfuscating data determined to be or tagged as sensitive data, wherein the sensitive comprises at least password data of users executing the one or more macros.

14. The system of claim 13 further comprising an API collector hardware component transforming relevant non-sensitive data to defined values.

15. The system of claim 14 wherein the relevant data comprises API parameter information, including device IDs, GUIDs, and serial numbers of devices used by the one or more users.

16. The system of claim 11 wherein the API collector collects and extracts the API data on a periodic based on telemetry upload processes defined by a system administrator.

Assignments (10)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0280) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0255 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0124) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0012 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0001) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062021/0844 →
RELEASE OF SECURITY INTEREST Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058297/0332 →
SECURITY INTEREST Recorded May 19, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056295/0124 →
SECURITY INTEREST Recorded May 19, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056295/0001 →
SECURITY INTEREST Recorded May 19, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056295/0280 →
CORRECTIVE ASSIGNMENT TO CORRECT THE MISSING PATENTS THAT WERE ON THE ORIGINAL SCHEDULED SUBMITTED BUT NOT ENTERED PREVIOUSLY RECORDED AT REEL: 056250 FRAME: 0541. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 17, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 056311/0781 →
SECURITY AGREEMENT Recorded May 14, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 056250/0541 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2021
From: MALAMUT, MARK; BRENNER, ADAM; MURTI, ARUN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 055995/0883 →