Runtime generation of application programming interfaces for remote procedure call services

US9699249B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9699249-B2
Application numberUS-201414562418-A
CountryUS
Kind codeB2
Filing dateDec 5, 2014
Priority dateDec 5, 2014
Publication dateJul 4, 2017
Grant dateJul 4, 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.

An application specific interface (API) for a service that is accessible by remote procedure calls is generated at run-time from an interface language definitions file. In operation, a client application requests a connection to a server and then a runtime API generator connects to the server and downloads an interface definition language (IDL) file that defines services provided by the server. The runtime API generator parses the IDL file and generates the corresponding service API. Subsequently, upon receiving a client application request, the API generator generates a set of instructions that, when executed, emit one or more remote procedure calls that cause the server to implement the client application request. Because the API is generated at run-time, the runtime API generator enables client applications that are implemented in dynamically typed languages to access the service by providing access to the data type metadata that cannot be expressed in such languages.

First claim

Opening claim text (preview).

I claim: 1. A method, performed by a client, to dynamically generate an application programming interface that enables the client to access a service provided by a server, the method comprising: receiving a request to connect to the server that provides the service, and in response thereto, connecting to the server; downloading an interface definition language file, wherein the interface definition languages file defines the service; generating interface metadata based on the interface definition language file, wherein the interface metadata includes methods, data types, and messages supported by the server; storing the generated interface metadata in a local memory or storage of the client; and in response to a request to execute a method of the service: generating instructions which implement interface bindings for the method based on the stored interface metadata, and executing the method, wherein the executing of the method includes exchanging messages with the server and receiving a result of the method execution from the server. 2. The method of claim 1 , wherein the interface definition language file specifies at least one method and one data type. 3. The method of claim 1 , wherein the interface definition language file is written in Web Services Description Language format. 4. The method of claim 1 , wherein the exchanged messages include a first message that invokes the method corresponding to the request, wherein the first message is formatted to comply with an interface protocol supported by the server; and the first message is transmitted to the server. 5. The method of claim 4 , wherein the interface protocol is Simple Object Access protocol. 6. The method of claim 4 , wherein the request is received from a client, and further comprising: returning the result of the method execution to the client. 7. The method of claim 1 , wherein executing the method comprises implementing a call-back function. 8. The method of claim 1 , wherein executing the method comprises invoking an object that implements an asynchronous function and returns a status that indicates whether the asynchronous function succeeded. 9. The method of claim 8 , wherein the method is a JavaScript method and the object is a Promise object. 10. The method of claim 1 , further comprising: storing the generated instructions which implement interface bindings for the method in a cache; and if another request to execute the method is received, retrieving the stored instructions from the cache. 11. The method of claim 1 , wherein the request is received via a web browser. 12. The method of claim 1 , wherein the service exposes virtualization functionality. 13. A non-transitory computer-readable storage medium comprising instructions, which when executed in a client computer system causes the client computer system to carry out the steps of: receiving a request to connect to a server that provides a service, and in response thereto, connecting to the server; downloading an interface definition language file, wherein the interface definition languages file defines the service; generating interface metadata based on the interface definition language file, wherein the interface metadata includes methods, data types, and messages supported by the server; storing the generated interface metadata in a local memory or storage of the client computer system; and in response to a request to execute a method of the service: generating instructions which implement interface bindings for the method based on the stored interface metadata, and executing the method, wherein the executing of the method includes exchanging messages with the server and receiving a result of the method execution from the server. 14. The non-transitory computer-readable storage medium of claim 13 , wherein the interface definition language file specifies at least one method and one data type. 15. The non-transitory computer-readable storage medium of claim 13 , wherein the interface definition language tile is written in Web Services Description Language format. 16. The non-transitory computer-readable storage medium of claim 13 , wherein: the exchanged messages include a first message that invokes the method corresponding to the request, wherein the first message is formatted to comply with an interface protocol supported by the server; and the first message is transmitted to the server. 17. A client computing device connected to a server that is configured to provide a service that is specified in an interface definition language file, the client computing device comprising a processor programmed to execute code stored in a memory, to dynamically generate an application programming interface that enables a client application running in the client computing device to access a service provided by the server, the code including steps comprising: receiving a request to connect to the server, and in response thereto, connecting to the server; downloading the interface definition language file; generating interface metadata based on the interface definition language file, wherein the interface metadata includes methods, data types, and messages supported by the server; storing the generated interface metadata in a local memory or storage of the client computing device; and in response to a request to execute a method of the service: generating instructions which implement interface bindings for the method based on the stored interface metadata, and executing the method, wherein the executing of the method includes exchanging messages with the server and receiving a result of the method execution from the server. 18. The client computing device of claim 17 , wherein the interface definition language tile specifics at least one method and one data type. 19. The client computing device of claim 17 , wherein the interface definition language file is written in Web Services Description Language format. 20. The client computing device of claim 17 , wherein: the exchanged messages include a first message that invokes the method corresponding to the request, wherein the first message is formatted to comply with an interface protocol supported by the server; and the first message is transmitted to the server.

Assignees

Inventors

Classifications

  • Subscription-based services using application servers or record carriers, e.g. SIM application toolkits · CPC title

  • Remote procedure calls [RPC]; Web services · CPC title

  • H04L67/10Primary

    in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46) · CPC title

  • Electricity · mapped topic

  • Electricity · mapped topic

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 US9699249B2 cover?
An application specific interface (API) for a service that is accessible by remote procedure calls is generated at run-time from an interface language definitions file. In operation, a client application requests a connection to a server and then a runtime API generator connects to the server and downloads an interface definition language (IDL) file that defines services provided by the server.…
Who is the assignee on this patent?
Vmware Inc
What technology area does this patent fall under?
Primary CPC classification H04L67/10. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Jul 04 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).