IP Library Granted Patent US 12,288,047
Granted Patent B2
US 12,288,047 · App. 17/877,756 · Granted Apr 29, 2025

Extensible binding mechanism for translating between application programming interface description languages

Inventors: Matthew Daniel Fuchs (Los Gatos, CA); Antonio Garrote (San Francisco, CA); Kelly Henvy (San Francisco, CA); Pawel Uchida-Psztyc (San Francisco, CA)
Assignee: Salesforce, Inc.
G06F8/35G06F8/31G06F8/34G06F8/433
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 12,288,047
App. No.
17/877,756
Granted
Apr 29, 2025
Kind
B2
Abstract

A system allows translation across API models represented using different API description languages. The system stores model bindings from a common visualization model format to multiple API description languages. The model bindings map constructs of the API description language to and from modeling constructs of the common visualization model format. The system uses the model bindings to convert API models to and from representations based on API description languages to the common visualization model format. The system used the common visualization model format to generate visualizations of the API model that can be displayed via a user interface and also allow users to modify the API model.

Claims (52)

1. A computer-implemented method for modeling using application programming interface (API) description languages, the computer-implemented method comprising:

storing model bindings from a common visualization model format to a plurality of API description languages, comprising, a set of model bindings between the common visualization model format and an API description language, the set of model bindings mapping a first construct of the API description language to a modeling construct of the common visualization model format and including display information that specifies how the API description language should be displayed using the common visualization model format;

receiving an API model specified using the API description language, the API model using a first instance of the first construct;

converting based on the set of model bindings, the API model to a representation in the common visualization model format, the converting mapping according to the set of model bindings, the first instance of the first construct to an instance of the modeling construct;

displaying, via a user interface, a visualization of the API model using the representation of the common visualization model format to a user according to the display information included in the set of model bindings;

receiving a modification to the API model via the user interface to obtain a modified API model;

converting based on the set of model bindings, the modified API model from the common visualization model format to a second representation based on the API description language, the converting of the modified API model mapping according to the set of model bindings, the instance of the modeling construct to a second instance of the first construct in the second representation; and

wherein the set of model bindings fails to specify a portion of visualization information for the first instance of the first construct, wherein the visualization of the API model configures a visual representation of the API model that displays the first instance of the first construct according to default visualization information of the common visualization model format.

2. The computer-implemented method of claim 1 , wherein the set of model bindings is a first set of model bindings, the API description language is a first API description language, the computer-implemented method further comprising:

storing a second set of model bindings between the common visualization model format and a second API description language, the second set of model bindings mapping a second construct of the second API description language to the modeling construct of the common visualization model format; and

converting based on the second set of model bindings, the modified API model from the common visualization model format to a third representation based on the second API description language, the converting of the modified API model from the common visualization model format to the third representation, mapping according to the second set of model bindings, the instance of the modeling construct to an instance of the second construct in the third representation.

3. The computer-implemented method of claim 1 , wherein the set of model bindings specifies visualization information for the first instance of the first construct, wherein the visualization of the API model configures the visual representation of the API model that displays the first instance of the first construct according to the visualization information specified in the set of model bindings.

4. The computer-implemented method of claim 1 , wherein the API description language is one of:

a database query language,

a graph query language,

an object-oriented modeling language, or

a restful API modeling language.

5. The computer-implemented method of claim 1 , further comprising:

creating an in-memory graph representation of the API model specified using the API description language; and

performing a traversal of the in-memory graph representation to generate the API model representation based on the common visualization model format.

6. A non-transitory computer readable storage medium storing instructions that when executed by one or more computer processors cause the one or more computer processors to execute the instructions for performing steps comprising:

storing model bindings from a common visualization model format to a plurality of application programming interface (API) description languages, comprising, a set of model bindings between the common visualization model format and an API description language, the set of model bindings mapping a first construct of the API description language to a modeling construct of the common visualization model format and including display information that specifies how the API description language should be displayed using the common visualization model format;

receiving an API model specified using the API description language, the API model using an instance of the first construct;

converting based on the set of model bindings, the API model to a representation in the common visualization model format, the converting mapping according to the set of model bindings, the instance of the first construct to an instance of the modeling construct;

displaying, via a user interface, a visualization of the API model using the representation of the common visualization model format to a user according to the display information included in the set of model bindings;

receiving a modification to the API model via the user interface to obtain a modified API model;

converting based on the set of model bindings, the modified API model from the common visualization model format to a second representation based on the API description language, the converting of the modified API model mapping according to the set of model bindings, the instance of the modeling construct to a second instance of the first construct in the second representation; and

wherein the set of model bindings fails to specify a portion of visualization information for a first instance of the first construct, wherein the visualization of the API model configures a visual representation of the API model that displays the first instance of the first construct according to default visualization information of the common visualization model format.

7. The non-transitory computer readable storage medium of claim 6 , wherein the set of model bindings is a first set of model bindings, the API description language is a first API description language, the instructions further causing the one or more computer processors to perform steps comprising:

storing a second set of model bindings between the common visualization model format and a second API description language, the second set of model bindings mapping a second construct of the second API description language to the modeling construct of the common visualization model format; and

converting based on the second set of model bindings, the modified API model from the common visualization model format to a third representation based on the second API description language, the converting of the modified API model from the common visualization model format to the third representation, mapping according to the second set of model bindings, the instance of the modeling construct to an instance of the second construct in the third representation.

8. The non-transitory computer readable storage medium of claim 6 , wherein the set of model bindings specifies visualization information for the first instance of the first construct, wherein the visualization of the API model configures the visual representation of the API model that displays the first instance of the first construct according to the visualization information specified in the set of model bindings.

9. The non-transitory computer readable storage medium of claim 6 , wherein the API description language is one of: a database query language, a graph query language, an object-oriented modeling language, or a restful API modeling language.

10. The non-transitory computer readable storage medium of claim 6 , the instructions further causing the one or more computer processors to perform steps comprising:

creating an in-memory graph representation of the API model specified using the API description language; and

performing a traversal of the in-memory graph to generate the API model representation based on the common visualization model format.

11. A computer system comprising:

a computer processor; and a non-transitory computer readable storage medium storing instructions that when executed by one or more computer processors cause the one or more computer processors to execute the instructions for performing steps comprising:

storing model bindings from a common visualization model format to a plurality of application programming interface (API) description languages, comprising, a set of model bindings between the common visualization model format and an API description language, the set of model bindings mapping a first construct of the API description language to a modeling construct of the common visualization model format and including display information that specifies how the API description language should be displayed using the common visualization model format;

receiving an API model specified using the API description language, the API model using an instance of the first construct;

converting based on the set of model bindings, the API model to a representation in the common visualization model format, the converting mapping according to the set of model bindings, the instance of the first construct to an instance of the modeling construct;

displaying, via a user interface, a visualization of the API model using the representation of the common visualization model format to a user according to the display information included in the set of model bindings;

receiving a modification to the API model via the user interface to obtain a modified API model;

converting based on the set of model bindings, the modified API model from the common visualization model format to a second representation based on the API description language, the converting of the modified API model mapping according to the set of model bindings, the instance of the modeling construct to a second instance of the first construct in the second representation; and

wherein the set of model bindings fails to specify a portion of visualization information for a first instance of the first construct, wherein the visualization of the API model configures a visual representation of the API model that displays the first instance of the first construct according to default visualization information of the common visualization model format.

12. The computer system of claim 11 , wherein the set of model bindings is a first set of model bindings, the API description language is a first API description language, the instructions further causing the one or more computer processors to perform steps comprising:

storing a second set of model bindings between the common visualization model format and a second API description language, the second set of model bindings mapping a second construct of the second API description language to the modeling construct of the common visualization model format; and

converting based on the second set of model bindings, the modified API model from the common visualization model format to a third representation based on the second API description language, the converting of the modified API model from the common visualization model format to the third representation, mapping according to the second set of model bindings, the instance of the modeling construct to an instance of the second construct in the third representation.

13. The computer system of claim 11 , wherein the set of model bindings specifies visualization information for the first instance of the first construct, wherein the visualization of the API model configures the visual representation of the API model that displays the first instance of the first construct according to the visualization information specified in the set of model bindings.

14. The computer system of claim 11 , the instructions further causing the one or more computer processors to perform steps comprising:

creating an in-memory graph representation of the API model specified using the API description language; and

performing a traversal of the in-memory graph representation to generate the API model representation based on the common visualization model format.

Assignments (3)
CHANGE OF NAME Recorded Nov 20, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069406/0699 →
CORRECTIVE ASSIGNMENT TO CORRECT THE 4TH INVETOR'S LAST NAME FROM "PSZTYC" TO --UCHIDA-PSZTYC-- PREVIOUSLY RECORDED AT REEL: 061125 FRAME: 0245. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 28, 2023
From: FUCHS, MATTHEW DANIEL; GARROTE, ANTONIO; HENVY, KELLY; UCHIDA-PSZTYC, PAWEL
To: SALESFORCE, INC.
Reel/Frame 064160/0513 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 16, 2022
From: FUCHS, MATTHEW DANIEL; GARROTE, ANTONIO; HENVY, KELLY; PSZTYC, PAWEL
To: SALESFORCE, INC.
Reel/Frame 061125/0245 →
Continuity (1)
Related Publication 20240036831A1 · Feb 1, 2024
References Cited (13)
US 7681119B2 · Fong · 2010 [cited by examiner]
US 8392151B1 · Grace · 2013 [cited by examiner]
US 20090265684A1 · Fuchs · 2009 [cited by examiner]
US 20100325605A1 · Ding · 2010 [cited by examiner]
US 20120042299A1 · Perrin · 2012 [cited by examiner]
US 20160004516A1 · Ivanov · 2016 [cited by examiner]
US 20180081645A1 · Alurralde Iturri · 2018 [cited by examiner]
Alexander Senger et al., “API Modeling and Description Languages,” 2019 [retrieved on Dec. 9, 2024], Seminar Web ENgineering WS 2018/2019, pp. 1-13, downloaded from <url>:https://agrawalshyam.com/reports/Seminar_Web_Eng… [cited by examiner]
Embarcadero, Inc., “Importing and Exporting UML Models,” Jan. 4, 2016, 2 pages, [Online] [Retrieved on Jul. 12, 2023] Retrieved from the Internet URL: <https://docwiki.embarcadero.com/RADStudio/Alexandria/en/Importing_a… [cited by applicant]
IBM, “Importing and exporting UML models,” Mar. 5, 2021, 2 pages, [Online] [Retrieved on Jul. 12, 2023] Retrieved from the Internet URL: <https://www.ibm.com/docs/en/rsar/9.5?topic=diagrams-importing-exporting-uml-model… [cited by applicant]
Sparx Systems, “Import ArchiMate Model Exchange File,” Oct. 20, 2018, 2 pages, [Online] [Retrieved on Jul. 12, 2023] Retrieved from the Internet URL: <https://sparxsystems.com/enterprise_architect_user_guide/14.0/model_… [cited by applicant]
UML, “UML Package Import,” Nov. 4, 2017, 1 page, [Online] [Retrieved on Jul. 12, 2023] Retrieved from the Internet URL: <https://www.uml-diagrams.org/package-import.html>. [cited by applicant]
Visual Paradigm, “How to Import/Export ArchiMate Model Exchange File?” Sep. 14, 2017, 4 pages, [Online] [Retrieved on Jul. 12, 2023] Retrieved from the Internet URL: <https://www.visual-paradigm.com/support/documents/vp… [cited by applicant]