IP Library Granted Patent US 9,262,183
Granted Patent B2
US 9,262,183 · App. 13/453,772 · Granted Feb 16, 2016

Self-service composed web APIs

Inventors: Christian Liensberger (Bellevue, WA); Roger Mall (Sammamish, WA); Piotr Milosz Puszkiewicz (Issaquah, WA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
G06F9/44526
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 9,262,183
App. No.
13/453,772
Granted
Feb 16, 2016
Kind
B2
Abstract

Individual datasets are accessed using an application programming interface (API). Multiple APIs may be combined into a composite API that allows a user to access multiple datasets using a single query. The composite API may be designed to provide a simpler way to consume information from multiple datasets in response to a particular scenario or problem. The composite API may comprise multiple levels of intermediate APIs that call on each other to access desired datasets. A user may select the datasets that the composite API accesses and/or the composite API may require certain specific datasets. The composite API may be offered for sale or use by other users via a website, such as a data market.

Claims (75)

1. A computer-implemented method, comprising:

providing a plurality of data source application programming interfaces (API) to API creators, each of the APIs providing an interface to one or more data sources;

allowing the API creators to create a composite API that allows users to access multiple data source APIs using a single query, the composite API configured to generate intermediate queries to two or more intermediate APIs, wherein each intermediate API is configured to retrieve information from an associated data source based upon an intermediate query and to provide the information to the composite API, the composite API configured to return information from two or more data sources in response to the single query, wherein the response is in a format not available from any of the individual data sources; and

offering the composite API to users.

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

identifying query parameters accepted by the composite API; and

identifying response parameters provided by the composite API.

3. The computer-implemented method of claim 2 , further comprising:

receiving a user selection of one or more query parameters and one or more response parameters to be used with the composite API.

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

identifying, to the composite API, locations of one or more data sources required by the composite API.

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

identifying one or more data sources that are available to users via the composite API.

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

identifying one or more data sources that are required for use with the composite API.

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

identifying a plurality of data sources that are available to users via the composite API; and

receiving information required to access to one or more of the plurality of data sources.

8. The computer-implemented method of claim 1 , wherein the selected APIs use a standardized protocol for querying data.

9. The computer-implemented method of claim 8 , wherein the protocol is Open Data Protocol (OData).

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

combining billing requirements for the selected APIs into a billing model for the composite API.

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

identifying a group of end-user license terms for each of the selected APIs; and

combining the end-user license terms for each of the selected APIs into a composite end-user license agreement (EULA) for the composite API.

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

offering the composite API to users via a website.

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

providing a data marketplace to users, the data marketplace offering a plurality of APIs; and

allowing users to upload the composite API to the data marketplace to be offered to other users.

14. In a computing environment where resources are distributed, a method for accessing datasets on resources distributed in the computing environment, the method comprising:

selecting a composite application programming interface (API) executing on a processor that provides access to one or more datasets through a plurality of intermediate APIs;

identifying the one or more datasets to the composite API;

providing a query to the composite API; and

receiving a response from the composite API, the response generated using data collected from the one or more datasets via the plurality of intermediate APIs, wherein the composite API is configured to provide an output resulting from the query to an intermediate API, and wherein the intermediate API is configured to convert the output into a format required by at least one of the plurality of APIs.

15. The method of claim 14 , further comprising:

selecting one or more query parameters to be supported by the composite API; and

selecting one or more response parameters to be supported by the composite API.

16. The method of claim 14 , wherein the one or more datasets comprise optional datasets, and the method further comprising:

selecting at least one of the optional datasets for use with the composite API.

17. The method of claim 14 , wherein the one or more datasets are identified using one or more of a pointer, an address, a file name, and a uniform resource locator (URL).

18. The computer-implemented method of claim 14 , further comprising:

providing a virtual marketplace offering at least one composite API;

receiving a subscriber query to a selected composite API via the virtual marketplace; and

providing a response from the composite API to the subscriber via the virtual marketplace.

19. A computer-readable storage device storing computer-executable instructions that when executed by at least one processor cause the at least one processor to perform a method for accessing datasets, the method comprising:

providing a plurality of data source application programming interfaces (API) to users, each of the APIs providing an interface to one or more data sources; and

allowing API creators to create a composite API that allows users to access multiple data source APIs using a single query, the composite API configured to generate intermediate queries to two or more intermediate APIs, wherein each intermediate API is configured to retrieve information from an associated data source based upon an intermediate query and to provide the information to the composite API, the composite API configured to return information from two or more data sources in response to the single query, wherein the response is in a format not available from any of the individual datasets.

20. The computer-readable storage device of claim 19 , further comprising:

receiving a user selection of a composite API; and

identifying, to the user-selected composite API, locations of one or more data sources to be accessed by the composite API.

21. The computer-readable storage device of claim 19 , further comprising:

combining billing requirements for the selected APIs into a billing model for the composite API.

22. The computer-readable storage device of claim 19 , further comprising:

identifying a group of end-user license terms for each of the selected APIs; and

combining the end-user license terms for each of the selected APIs into a composite end-user license agreement (EULA) for the composite API.

23. The computer-readable storage medium of claim 19 , further comprising:

allowing users to upload the composite API to a data marketplace to be offered to other users.

24. A dataset access system, comprising:

a processor; and

a memory coupled to the processor, the memory configured to store program instructions executable by the processor to cause the dataset access system to:

select a composite application programming interface (API) that provides access to one or more datasets through a plurality of APIs;

identify the one or more datasets to the composite API;

provide a query to the composite API; and

receive a response from the composite API, the response generated using data collected from the one or more datasets via the plurality of APIs, wherein the composite API is configured to provide an output resulting from the query to a first intermediate API and to a second intermediate API, wherein the first intermediate API is configured to convert the output into a format required by a first of the plurality of APIs by querying a first data source to obtain information needed to query the first of the plurality of APIs, and wherein the second intermediate API is configured to convert the output into a format required by a second of the plurality of APIs by querying a second data source to obtain information needed to query the second of the plurality of APIs.

25. The dataset access system of claim 24 , the program instructions further cause the dataset access system to:

identify one or more query parameters to be supported by the composite API; and

identify one or more response parameters to be supported by the composite API.

26. The dataset access system of claim 24 , the program instructions further cause the dataset access system to:

select at least one optional datasets for use with the composite API.

27. The dataset access system of claim 24 , wherein the one or more datasets are identified using one or more of a pointer, an address, a file name, and a uniform resource locator (URL).

28. The dataset access system of claim 24 , the program instructions further cause the dataset access system to:

provide a virtual marketplace offering at least one composite API;

receive a subscriber query to a selected composite API via the virtual marketplace; and

provide a response from the composite API to the subscriber via the virtual marketplace.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0541 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2012
From: LIENSBERGER, CHRISTIAN; MALL, ROGER; PUSZKIEWICZ, PIOTR MILOSZ
To: MICROSOFT CORPORATION
Reel/Frame 028091/0931 →
Continuity (1)
Related Publication 20130282748A1 · Oct 24, 2013