Application pattern discovery

US2016019102A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016019102-A1
Application numberUS-201414331892-A
CountryUS
Kind codeA1
Filing dateJul 15, 2014
Priority dateJul 15, 2014
Publication dateJan 21, 2016
Grant date

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 associations among a plurality of service application programming interfaces may be identified by analyzing service API call logs, which contain data associated with invocation of the plurality of application programming interfaces by a plurality of applications, wherein sets of APIs that are determined to be called together are identified. For a set of service APIs, a plurality of applications that invoke the APIs in the set is identified. A sequence of API calls by an application in the plurality of applications is identified, wherein multiples sequences of APIs are identified, one sequence of API calls identified respectively for one application in the plurality of applications. An application pattern is determined based on the multiple sequences of service APIs.

First claim

Opening claim text (preview).

We claim: 1 . A method for application pattern discovery, comprising: receiving application programming interface (API) call logs, the application programming interface call logs comprising data associated with invocation of a plurality of application programming interfaces by a plurality of applications; identifying, by a processor, API associations among said plurality of application programming interfaces by analyzing the API call logs, wherein the identifying API associations identifies sets of APIs that are determined to be called together; selecting a set of APIs from the sets of APIs; identifying, by the processor, a plurality of applications that invoke the set of APIs; identifying, by the processor, a sequence of API calls by an application in the plurality of applications, wherein multiples sequences of APIs are identified, one sequence of API calls identified respectively for one application in the plurality of applications; and determining, by the processor, an application pattern based on the multiple sequences of APIs. 2 . The method of claim 1 , wherein the application pattern comprises calls to one or more generic APIs and APIs in the set of APIs, the method further comprising: determining one or more API dependencies for the one or more generic APIs; and suggesting one or more specific APIs to replace the one or more API dependencies. 3 . The method of claim 1 , further comprising repeating the identifying a plurality of applications, the identifying a sequence of API calls by an application and the determining an application pattern, for each of the sets of APIs. 4 . The method of claim 1 , wherein the identifying a sequence of API calls comprises reverse engineering the API calls based on inputs and outputs of APIs invoked by the application. 5 . The method of claim 4 , wherein the reverse engineering the API calls is further based on timestamp information in the API call logs. 6 . The method of claim 1 , further comprising verifying the application pattern based on text parsing of description associated with the application. 7 . A computer readable storage medium storing a program of instructions executable by a machine to perform a method of application pattern discovery, comprising: receiving application programming interface (API) call logs, the application programming interface call logs comprising data associated with invocation of a plurality of application programming interfaces by a plurality of applications; identifying API associations among said plurality of application programming interfaces by analyzing the API call logs, wherein the identifying API associations identifies sets of APIs that are determined to be called together; selecting a set of APIs from the sets of APIs; identifying a plurality of applications that invoke the set of APIs; identifying a sequence of API calls by an application in the plurality of applications, wherein multiples sequences of APIs are identified, one sequence of API calls identified respectively for one application in the plurality of applications; and determining an application pattern based on the multiple sequences of APIs. 8 . The computer readable storage medium of claim 7 , wherein the application pattern comprises calls to one or more generic APIs and APIs in the set of APIs, the method further comprising: determining one or more API dependencies for the one or more generic APIs; and suggesting one or more specific APIs to replace the one or more API dependencies. 9 . The computer readable storage medium of claim 7 , further comprising repeating the identifying a plurality of applications, the identifying a sequence of API calls by an application and the determining an application pattern, for each of the sets of APIs. 10 . The computer readable storage medium of claim 7 , wherein the identifying a sequence of API calls comprises reverse engineering the API calls based on inputs and outputs of APIs invoked by the application. 11 . The computer readable storage medium of claim 10 , wherein the reverse engineering the API calls is further based on timestamp information in the API call logs. 12 . The computer readable storage medium of claim 7 , further comprising verifying the application pattern based on text parsing of description associated with the application. 13 . A system for application pattern discovery, comprising: a storage device storing application programming interface (API) call logs, the application programming interface call logs comprising data associated with invocation of a plurality of application programming interfaces by a plurality of applications; and a hardware processor operable to identify API associations among said plurality of application programming interfaces by analyzing the API call logs, wherein the identifying API associations identifies sets of APIs that are determined to be called together, the hardware processor further operable to select a set of APIs from the sets of APIs, the hardware processor further operable to identify a plurality of applications that invoke the set of APIs, the hardware processor further operable to identify a sequence of API calls by an application in the plurality of applications, wherein multiples sequences of APIs are identified, one sequence of API calls identified respectively for one application in the plurality of applications, the hardware processor further operable to determine an application pattern based on the multiple sequences of APIs. 14 . The system of claim 13 , wherein the application pattern comprises calls to one or more generic APIs and APIs in the set of APIs, and the hardware processor is further operable to determine one or more API dependencies for the one or more generic APIs, and suggest one or more specific APIs to replace the one or more API dependencies. 15 . The system of claim 13 , wherein the hardware processor is further operable to repeat the identifying a plurality of applications, the identifying a sequence of API calls by an application and the determining an application pattern, for each of the sets of APIs. 16 . The system of claim 13 , wherein the hardware processor identifies a sequence of API calls by reverse engineering the API calls based on inputs and outputs of APIs invoked by the application. 17 . The system of claim 16 , wherein the reverse engineering the API calls is further based on timestamp information in the API call logs. 18 . The system of claim 13 , wherein the hardware processor is further operable to verify the application pattern based on text parsing of description associated with the application. 19 . The system of claim 13 , wherein the hardware processor is further operable to store the application pattern and allow a user to select the application pattern for program development. 20 . The system of claim 13 , wherein the hardware processor is further operable to identify and present logic of the application pattern based on variable transformations of APIs specified in the application pattern.

Assignees

Inventors

Classifications

  • G06F8/36Primary

    Software reuse · CPC title

  • for performance assessment · CPC title

  • where the computing system component is a software system · CPC title

  • G06F9/542Primary

    Event management; Broadcasting; Multicasting; Notifications · 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 US2016019102A1 cover?
API associations among a plurality of service application programming interfaces may be identified by analyzing service API call logs, which contain data associated with invocation of the plurality of application programming interfaces by a plurality of applications, wherein sets of APIs that are determined to be called together are identified. For a set of service APIs, a plurality of applicat…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F8/36. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Jan 21 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). 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).