IP Library › Granted Patent US 11,263,201
Granted Patent B2
US 11,263,201 · App. 16/923,371 · Granted Mar 1, 2022

Interface for supporting integration with cloud-based service providers

Inventors: Tom Bar Oz (Herzliya, IL); Robert Bitterfeld (Petach tikva, IL); Boris Erblat (Tel Aviv, IL); Aviya Aron (Shafir, IL); Asaf Garty (Sdei Hemed, IL); Daniel Badyan (Tel Aviv, IL); Hail Tal (Kohav Yair, IL)
Assignee: ServiceNow, Inc.
G06F16/2365G06F16/215G06F16/219G06F16/27H04L29/06H04L67/025H04L67/10H04L67/40H04N21/21
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 11,263,201
App. No.
16/923,371
Granted
Mar 1, 2022
Kind
B2
Abstract

An example system includes persistent storage and a discovery application configured to perform operations including obtaining a uniform resource locator (URL) that addresses a function of an application programming interface (API) provided by a remote computing system of remote computing systems that provide computing resources. The function returns attributes of computing resources specified by the URL. The operations additionally include generating (i) a system-specific portion of a request that invokes execution of the function and (ii) a system-invariant portion of the request. The system-specific portion adheres to first rules adopted by the remote computing system for interacting with the API. The system-invariant portion adheres to second rules adopted by each of the remote computing systems for interacting with respective APIs thereof. The operations yet further include transmitting the request to the remote computing system, receiving therefrom a response containing the attributes, and storing, in the persistent storage, the attributes.

Claims (48)

1. A system comprising:

a processor; and

a memory accessible by the processor, the memory storing instructions that, when executed by the processor, cause the processor to perform operations comprising:

obtaining, by a discovery application configured to obtain data that identifies attributes of computing resources assigned to a managed network, a uniform resource locator (URL) that addresses a function of a particular application program interface (API) of a plurality of APIs, wherein the particular API is associated with a remote computing system of a plurality of remote computing systems that provide the computing resources to the managed network;

generating, by the discovery application, a request to execute the function of the particular API, wherein the request includes a system-invariant portion and a system-specific portion, wherein the system-invariant portion is generated by one or more rules associated with each of the plurality of APIs, and wherein the system-specific portion is generated by one or more rules specific to the particular API;

transmitting, by the discovery application, the request to the remote computing system;

receiving, from the remote computing system, a response comprising an output of the function of the particular API; and

parsing, by the discovery application, the response to identify the attributes of the computing resources of the remote computing system.

2. The system of claim 1 , wherein the discovery application includes one or more rules specific to a respective remote computing system of the plurality of remote computing systems, and wherein the operations comprise:

accessing, by the discovery application, the one or more rules specific to the remote computing system; and

generating the system-specific portion based on the one or more rules specific to the remote computing system.

3. The system of claim 1 , wherein the system-specific portion includes an authentication component to access the function of the particular API.

4. The system of claim 1 , wherein the system-specific portion defines pagination rules for the response and a subsequent response.

5. The system of claim 4 , wherein the operations comprise:

transmitting a second request to the remote computing system; and

receiving, from the remote computing system, the subsequent response.

6. The system of claim 1 , wherein the system-specific portion includes a region-identifier configured to cause discovery of computing resources of the remote computing system located in a particular geographical region based on the region-identifier.

7. The system of claim 1 , wherein the remote computing system includes geographically-distributed computing resources, wherein the URL includes a region-invariant identifier, and wherein the operations comprise:

iterating, by the discovery application, through multiple geographic regions based on the region-invariant identifier to discover the attributes of the computing resources of the remote computing system including attributes of the geographically-distributed computing resources across the multiple geographic regions.

8. The system of claim 1 , wherein the operations comprise:

providing instructions to store the identified attributes of the computing resources of the remote computing system in a database.

9. The system of claim 1 , wherein the URL includes a resource path parameter or a query parameter, or a combination thereof, specifying the computing resources and the attributes of the computing resources of the remote computing system.

10. The system of claim 1 , wherein the operations are performed in accordance with a schedule.

11. A method comprising:

obtaining, by a discovery application configured to obtain data that identifies attributes of computing resources assigned to a managed network, a uniform resource locator (URL) that addresses a function of a particular application program interface (API) of a plurality of APIs, the particular API associated with a remote computing system of a plurality of remote computing systems that provide the computing resources to the managed network;

generating, by the discovery application, a request to execute the function of the particular API, wherein the request includes a system-invariant portion and a system-specific portion, wherein the system-invariant portion is generated by one or more rules associated with each of the plurality of APIs, and wherein the system-specific portion is generated by one or more rules specific to the particular API;

transmitting, by the discovery application, the request to the remote computing system;

receiving, from the remote computing system, a response comprising an output of the function of the particular API; and

parsing, by the discovery application, the response to identify the attributes of the computing resources of the remote computing system.

12. The method of claim 11 , comprising requesting and confirming storage of the identified attributes of the computing resources of the remote computing system in a database by the discovery application.

13. The method of claim 11 , wherein the discovery application includes one or more rules specific to a respective remote computing system of the plurality of remote computing systems, and wherein the method comprises:

accessing, by the discovery application, the one or more rules specific to the remote computing system; and

generating the system-specific portion based on the one or more rules specific to the remote computing system.

14. The method of claim 11 , wherein the system-specific portion defines pagination rules for the response and a subsequent response.

15. The method of claim 11 , wherein the URL includes a resource path parameter or a query parameter, or a combination thereof, specifying the attributes and the computing resources.

16. The method of claim 11 , wherein the remote computing system includes geographically-distributed computing resources, wherein the URL includes a region-invariant identifier, and wherein the method comprises:

iterating, by the discovery application, through multiple geographic regions based on the region-invariant identifier to discover the attributes of the computing resources of the remote computing system including attributes of the geographically-distributed computing resources across the multiple geographic regions across the multiple geographic regions.

17. One or more non-transitory computer-readable media, storing instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:

obtaining, by a discovery application configured to obtain data that identifies attributes of computing resources assigned to a managed network, a uniform resource locator (URL) that addresses a function of a particular application program interface (API) of a plurality of APIs, the particular API associated with a remote computing system of a plurality of remote computing systems that provide the computing resources to the managed network;

generating, by the discovery application, a request to execute the function of the particular API, wherein the request includes a system-invariant portion and a system-specific portion, wherein the system-invariant portion is generated by one or more rules associated with each of the plurality of APIs, and wherein the system-specific portion is generated by one or more rules specific to the particular API;

transmitting, by the discovery application, the request to the remote computing system;

receiving, from the remote computing system, a response comprising an output of the function of the particular API; and

parsing, by the discovery application, the response to identify the attributes of the computing resources of the remote computing system.

18. The one or more non-transitory computer-readable media of claim 17 , wherein the system-specific portion includes an authentication portion to access the function of the particular API.

19. The one or more non-transitory computer-readable media of claim 17 , wherein the system-specific portion defines pagination rules for the response and a subsequent response.

20. The one or more non-transitory computer-readable media of claim 19 , wherein the operations comprise:

transmitting a second request to the remote computing system; and

receiving, from the remote computing system, the subsequent response.

Priority Claims (1)
EP 19305483 · Apr 12, 2019 · regional
Continuity (2)
Continuation 16402045 · May 2, 2019
Related Publication 20200409934A1 · Dec 31, 2020
Cited By (1)
US 12,585,514