Analytics for application programming interfaces

US9720746B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9720746-B2
Application numberUS-201514822189-A
CountryUS
Kind codeB2
Filing dateAug 10, 2015
Priority dateNov 7, 2013
Publication dateAug 1, 2017
Grant dateAug 1, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

API analytics systems and methods are provided. Frequently occurring API usage patterns may be determined from API call data collected from across an API ecosystem. Alternatively or in addition, a classification structure, such as a decision tree, may be generated from the API usage patterns. A type of activity that resulted in a set of API calls being invoked may be determined from the classification structure. A similarity or difference between the set of API calls and the frequently occurring API usage patterns may also be determined and/or identified.

First claim

Opening claim text (preview).

What is claimed is: 1. An application programming interface (API) analytics system comprising: a memory comprising API call data that identifies a set of API calls detected during performance of an activity, and a classification structure that maps predetermined API usage patterns to predetermined types of activities, the classification structure comprising a plurality of nodes connected by a plurality of branches, the nodes representing tests, the branches representing outcomes of the tests, leaf nodes of the nodes representing the predetermined types of activities; and a processor configured to: form truncated API call data in which duplicated API calls in the set of API calls are consolidated in the truncated API call data; and classify the activity as one of the predetermined types of activities based on a traversal of at least one of the branches of the classification structure to a leaf node that represents the one of the predetermined types of activities, the traversal governed by an application of a set of the tests to the truncated API call data, the set of the tests including any of the tests represented by any of the nodes on a path that includes the at least one of the branches of the classification structure and that ends at the leaf node. 2. The system of claim 1 , wherein each API call in the set of API calls is a respective programmatic procedure. 3. The system of claim 1 , wherein the processor is configured to identify any differences between the truncated API call data and a predetermined API usage pattern that matches the truncated API call data. 4. The system of claim 1 wherein the tests include a test related to an execution time of a programmatic procedure identified in the truncated API call data. 5. The system of claim 1 wherein an API call repeated n times in the API call data is represented as a transition from the API call to the API call in the truncated API call data when n is greater than a repetition threshold. 6. The system of claim 1 wherein the tests include a test related to an amount of time elapsed between execution of two programmatic procedures identified in the truncated API call data. 7. The system of claim 1 further comprising an API monitor that monitors an API ecosystem and collects the API call data. 8. A non-transitory computer readable storage medium comprising computer executable instructions, the computer executable instructions executable by a processor, the computer executable instructions comprising: instructions executable to detect a set of API calls invoked during performance of an activity, the set of API calls identified in API call data; instructions executable to provide a classification structure that maps predetermined API usage patterns to predetermined types of activities, the classification structure comprising a plurality of nodes connected by a plurality of branches, the nodes representing tests, the branches representing outcomes of the tests, leaf nodes of the nodes representing the predetermined types of activities; instructions executable to generate truncated API call data through consolidation of API calls that are duplicated in the set of API calls; and instructions executable to determine that the activity is one of the predetermined types of activities as a result of a traversal of a path that includes a test node, a branch and a leaf node of the classification structure, the leaf node representing the one of the predetermined types of activities, wherein the traversal is in accordance with application of a test associated with the test node, and proceeding down the path along the branch, which corresponds to a result of the test. 9. The computer readable storage medium of claim 8 further comprising instructions executable to convert the truncated API call data to directed graphs. 10. The computer readable storage medium of claim 9 further comprising instructions executable to identify API usage patterns that occur above a threshold frequency in the truncated API call data with a frequent subgraph mining algorithm applied to the directed graphs, wherein. 11. The computer readable storage medium of claim 8 , wherein each API call in the set of API calls is for a corresponding programmatic procedure that was invoked over a network in response to a corresponding API request. 12. The computer readable storage medium of claim 8 further comprising instructions executable to monitor an API ecosystem and collect the API call data in memory. 13. The computer readable storage medium of claim 8 further comprising instructions executable to group the API call data into sets of API calls based on a context included in API requests that invoked the API calls in each one of the sets of API calls. 14. The computer readable storage medium of claim 8 further comprising instructions executable to group the API call data into sets of API calls based on a context identified by an API management gateway. 15. A method to determine an activity type, the method comprising: detecting a set of API calls invoked during performance of an activity; identifying the set of API calls in API call data; providing a classification structure that maps predetermined API usage patterns to predetermined types of activities, the classification structure comprising a plurality of nodes connected by a plurality of branches, the nodes representing tests, the branches representing outcomes of the tests, leaf nodes of the nodes representing the predetermined types of activities; forming truncated API call data by consolidating duplicated API calls in the set of API calls into the truncated API call data; and determining that the activity is one of the predetermined types of activities as a result of traversing at least one of the branches of the classification structure to a leaf node that represents the one of the predetermined types of activities, wherein the traversing comprises applying a test to the truncated API data, the test associated with a node on a path that includes the at least one of the branches of the classification structure and ends at the leaf node, and proceeding down the path along a branch corresponding to a result of the test. 16. The method of claim 15 , further comprising determining a difference between the API usage pattern and an extracted API usage pattern that is extracted from the set of API calls invoked during the activity. 17. The method of claim 15 , wherein the classification structure comprises a classification decision tree, and wherein the determining that the activity is one of the predetermined types of activities comprises applying attributes of the set of API calls, which is represented by truncated API call data, to the classification decision tree. 18. The method of claim 15 further comprising generating the API call data by monitoring an API ecosystem. 19. The method of claim 18 , wherein the API ecosystem is monitored and the type of activity that resulted in the set of API calls is determined in real-time. 20. The method of claim 15 further comprising producing an alert in response to a determination that the activity is the one of the predetermined types of activities.

Assignees

Inventors

Classifications

  • Probabilistic graphical models, e.g. probabilistic networks · CPC title

  • where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting · CPC title

  • Structural analysis for program understanding · CPC title

  • Explanation of inference; Explainable artificial intelligence [XAI]; Interpretable artificial intelligence · CPC title

  • Reverse engineering; Extracting design information from source code · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9720746B2 cover?
API analytics systems and methods are provided. Frequently occurring API usage patterns may be determined from API call data collected from across an API ecosystem. Alternatively or in addition, a classification structure, such as a decision tree, may be generated from the API usage patterns. A type of activity that resulted in a set of API calls being invoked may be determined from the classif…
Who is the assignee on this patent?
Accenture Global Services Ltd, Accenture Global Service Ltd
What technology area does this patent fall under?
Primary CPC classification G06F11/302. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 01 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).