IP Library Granted Patent US 10,802,891
Granted Patent B2
US 10,802,891 · App. 16/174,870 · Granted Oct 13, 2020

Application interface governance platform to harmonize, validate, and replicate data-driven definitions to execute application interface functionality

Inventors: Marc MacLeod (Austin, TX); Duane Tharp (Austin, TX)
Assignee: Stoplight, Inc.
G06F9/541G06F30/3312G06K9/6885
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 10,802,891
App. No.
16/174,870
Granted
Oct 13, 2020
Kind
B2
Abstract

Various embodiments relate generally to data science and data analysis, computer software and systems, including a subset of intermediary executable instructions constituting an communication interface between various software and/or hardware platforms, and, more specifically, to an automated application interface governance platform to automate development, maintenance, and governance functions for application interfaces, such as harmonizing, validating, and/or replicating application program interfaces (“APIs”). For example, a method may include identifying a subset of application interfaces, synthesizing a data structure for each application interface, analyzing the data structure against other data structures to identify duplicative portions among multiple data structures, substituting a reference to a location into a portion of multiple application interfaces. Optionally, the method may include evaluating interoperability of multiple application interfaces to validate collective operation of a subset of application interfaces.

Claims (63)

1. A method comprising:

identifying data representing each application interface in a subset of application interfaces;

synthesizing a syntactic data structure for each application interface;

analyzing the syntactic data structure against other syntactic data structures for other application interfaces to identify duplicative constituent portions among multiple syntactic data structures;

detecting a portion of multiple application interfaces associated with the duplicative constituent portions;

substituting data representing a reference to a location into the portion of multiple application interfaces resides; and

evaluating interoperability of a subset of multiple application interfaces to validate collective operation of the subset of application interfaces.

2. The method of claim 1 wherein identifying data representing each application interface comprises:

identifying data representing an application programming interface (“API”) structure in accordance with a specification.

3. The method of claim 1 further comprising:

identifying a pattern of a structure of object types and property types for the syntactic data structure.

4. The method of claim 3 wherein analyzing the syntactic data structure against the syntactic data structures comprises:

comparing the pattern of object types and property types of a first syntactic data structure against another pattern of a second syntactic data structure;

determining a match between the pattern and the another pattern to form a matched pattern.

5. The method of claim 4 wherein detecting the portion of multiple application interfaces comprises:

mapping nodes of the matched pattern of the first syntactic data structure and the second syntactic data structure as the duplicative constituent portions to the portion of multiple application interfaces.

6. The method of claim 4 wherein determining the match between the pattern and the another pattern comprises:

identifying the pattern and the another pattern as candidate duplicate patterns;

accessing data representing one or more threshold criteria;

computing a degree of similarity between the candidate duplicate patterns as a function of the one or more threshold criteria; and

classifying the candidate duplicate patterns as the matched pattern based on the degree of similarity.

7. The method of claim 1 wherein synthesizing the syntactic data structure comprises:

identifying one or more objects as nodes at a first hierarchical level;

determining one or more objects as additional nodes at another hierarchical level;

detecting one or more properties of at least one object; and

determining object types for the object and property types for the properties.

8. The method of claim 7 further comprising:

determining at least one application interface description language with which the application interface is formed; and

determining object types for the objects and property types for the properties in accordance with the application interface description language.

9. The method of claim 7 further comprising:

synthesizing other syntactic data structures for other application interfaces in the subset of application interfaces.

10. The method of claim 7 wherein synthesizing the syntactic data structure comprises:

synthesizing an abstract syntax tree.

11. The method of claim 1 further comprising:

generating a dictionary of objects for the subset of application interfaces, the dictionary of objects including data representing object types and property types, and data representing associations among the object types and the property types from each of the application interfaces.

12. The method of claim 1 wherein identifying the data representing each application interface in the subset of application interfaces comprises:

receiving data representing a legacy application interface;

monitoring exchanges of data among the legacy application interface and one or more other application interfaces in the subset of application interfaces; and

generating an application interface definition for the legacy application interface to form a replicated application interface.

13. The method of claim 12 wherein the replicated application interface is compliant to an application interface specification and the legacy application interface is non-compliant with respect to the application interface specification.

14. The method of claim 1 wherein evaluating the interoperability comprises:

analyzing statically an application interface that is configured to interoperate in a system of application interfaces including the subset of application interfaces.

15. The method of claim 14 further comprising:

building a topology representing electronic communication paths among the system of application interfaces.

16. The method of claim 1 wherein evaluating the interoperability comprises:

analyzing dynamically an application interface that is configured to interoperate in a system of application interfaces including the subset of application interfaces.

17. The method of claim 16 further comprising:

detecting a request via the reference to another application interface;

diverting the request to logic implementing a design time analyzer; and

simulating a response to the request.

18. The method of claim 1 wherein evaluating the interoperability comprises:

analyzing an application interface at run time, the application interface being configured to interoperate in a system of application interfaces including the subset of application interfaces.

19. An apparatus comprising:

a memory including executable instructions; and

a processor, responsive to executing the instructions, is configured to:

identify data representing each application interface in a subset of application interfaces;

synthesize a syntactic data structure for each application interface;

analyze the syntactic data structure against other syntactic data structures for other application interfaces to identify candidate duplicative constituent portions among multiple syntactic data structures;

detect a portion of multiple application interfaces associated with the candidate duplicative constituent portions;

substitute data representing a reference to a location into the portion of multiple application interfaces resides; and

evaluate interoperability of a subset of multiple application interfaces to validate collective operation of the subset of application interfaces.

20. The apparatus of claim 19 wherein a subset of the instructions to identify data representing each application interface further causes the processor to:

identify data representing an application programming interface (“API”) structure in accordance with a specification.

Assignments (4)
ASSIGNMENT OF SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jan 2, 2025
From: BARINGS FINANCE LLC, AS RETIRING AGENT
To: TCG SENIOR FUNDING L.L.C., AS SUCCESSOR AGENT
Reel/Frame 069810/0578 →
SECURITY INTEREST (SECOND LIEN) Recorded Oct 30, 2023
From: STOPLIGHT, INC.
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 065394/0686 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Oct 30, 2023
From: STOPLIGHT, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS THE COLLATERAL AGENT
Reel/Frame 065396/0380 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2020
From: MACLEOD, MARC BELTRAN; THARP, DUANE
To: STOPLIGHT, INC.
Reel/Frame 052817/0578 →
Continuity (1)
Related Publication 20200133744A1 · Apr 30, 2020