IP Library Granted Patent US 9,672,071
Granted Patent B2
US 9,672,071 · App. 14/023,282 · Granted Jun 6, 2017

Method and system for distributed processing of HTTP requests

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,672,071
App. No.
14/023,282
Granted
Jun 6, 2017
Kind
B2
Abstract

The current document is directed to an interface and authorization service that allows users of a cloud-director management subsystem of distributed, multi-tenant, virtual data centers to extend the services and functionalities provided by the cloud-director management subsystem. A cloud application programming interface (“API”) entrypoint represents a request/response RESTful interface to services and functionalities provided by the cloud-director management subsystem as well as to service extensions provided by users. The API entrypoint includes a service-extension interface and an authorization-service management interface. The cloud-director management subsystem provides the authorization service to service extensions that allow the service extensions to obtain, from the authorization service, an indication of whether or not a request directed to the service extension through the API entrypoint is authorized. Requests for service-extension URIs within the API entrypoint are processed by a cloud API entrypoint server that dispatches requests, in a predetermined order, to service-extension servers.

Claims (74)

1. A cloud-connector subsystem comprising:

one or more cloud-connector nodes, each cloud-connector node associated with a single cloud-computing facility; and

a cloud-connector server that includes one or more processors, one or more memories, one or more data-storage devices, and computer instructions that, when executed on the one or more processors, control the cloud-director server to provide, in cooperation with the one or more cloud-connector nodes

a management user interface that provides native management services and functionalities for creating, administering, and managing virtual data centers within one or more cloud-computing facilities, each cloud-computing facility associated with a cloud-connector node;

an API entrypoint request/response interface to

native services,

a service-extension interface, and

service extensions created through the service-extension interface; and

a cloud API server application that processes requests for native services and service extensions received through the API entrypoint request/response interface, dispatching requests for service extensions to service-extension servers that execute the service extensions in a predetermined order.

2. The cloud-connector subsystem of claim 1 wherein the API entrypoint request/response interface is a hierarchical, URI-based RESTful interface.

3. The cloud-connector subsystem of claim 1 further comprising:

an authorization-service-management-interface provided through the API entrypoint request/response interface; and

an authorization service that controls access to the service extensions created through the service-extension interface.

4. The cloud-connector subsystem of claim 3 wherein the authorization service comprises:

an authorization-service database; and

an authorization routine that is called to determine whether a request directed to a service extension through the API entrypoint request/response interface is authorized to access the service extension.

5. The cloud-connector subsystem of claim 3 wherein the cloud API server application comprises:

an initial-processing and post-processing component that receives requests from clients accessing the API entrypoint request/response interface and that returns responses to the clients;

one or more filters, each of which processes one or more of the client requests and responses;

an extension filter that dispatches the client requests and responses to the service-extension servers for further processing; and

a processing component that processes the client requests and returns the client responses.

6. The cloud-connector subsystem of claim 5 wherein the extension filter accesses a dispatch table that contains entries that are ordered by priority, each entry including:

an indication of a service-extension server address, and

a URI pattern.

7. The cloud-connector subsystem of claim 6 wherein the extension filter dispatches a request received from a filter by:

for each entry in the dispatch table accessed in decreasing-priority order,

when the URI pattern in the entry matches a URI requested by the request,

dispatching the request to the service-extension server address of the entry.

8. The cloud-connector subsystem of claim 7 wherein

when, after dispatching the request to the service-extension server address, the service extension at the service-extension server address returns a response to the extension filter, the extension filter returns the response to a client from which the request was received.

9. The cloud-connector subsystem of claim 6 wherein the extension filter dispatches a response received from the processing component by:

for each entry in the dispatch table accessed in increasing-priority order,

when the URI pattern in the entry matches a URI requested by the response,

dispatching the response to the service-extension server address of the entry.

10. The cloud-connector subsystem of claim 5 wherein the initial-processing and post-processing component, upon receiving a request from a filter:

stores the request;

associates the stored request with a requested URI; and

calls the authorization service to determine whether or not the request is authorized.

11. A method for extending services provided by one or more cloud-connector nodes, each cloud-connector node associated with a single cloud-computing facility, and a cloud-connector server that includes one or more processors, one or more memories, one or more data-storage devices, the method comprising:

providing, by the cloud-connector server in cooperation with the one or more cloud-connector nodes, a management user interface that provides native management services and functionalities for creating, administering, and managing virtual data centers within one or more cloud-computing facilities, each cloud-computing facility associated with a cloud-connector node;

providing an API entrypoint request/response interface to

native services,

a service-extension interface, and

service extensions created through the service-extension interface; and

processing, by a cloud API server application, requests for native services and service extensions received through the API entrypoint request/response interface, dispatching requests for service extensions to service-extension servers that execute the service extensions in a predetermined order.

12. The method of claim 11 wherein the API entrypoint request/response interface is a hierarchical, URI-based RESTful interface.

13. The method of claim 11 wherein the API entrypoint request/response interface further comprises:

an authorization-service-management-interface provided through the API entrypoint request/response interface; and

an authorization service that controls access to the service extensions created through the service-extension interface.

14. The method of claim 13 wherein the authorization service comprises:

an authorization-service database; and

an authorization routine that is called to determine whether a request directed to a service extension through the API entrypoint request/response interface is authorized to access the service extension.

15. The method of claim 13 wherein the cloud API server application comprises:

an initial-processing and post-processing component that receives requests from clients accessing the API entrypoint request/response interface and that returns responses to the clients;

one or more filters, each of which processes one or more of the client requests and responses;

an extension filter that dispatches the client requests and responses to the service-extension servers for further processing; and

a processing component that processes the client requests and returns the client responses.

16. The method of claim 15 further comprising accessing, by the extension filter, a dispatch table that contains entries that are ordered by priority, each entry including:

an indication of a service-extension server address, and

a URI pattern.

17. The method of claim 16 wherein the extension filter dispatches a request received from a filter by:

for each entry in the dispatch table accessed in decreasing-priority order,

when the URI pattern in the entry matches a URI requested by the request,

dispatching the request to the service-extension server address of the entry.

18. The method of claim 17 wherein

when, after dispatching the request to the service-extension server address, the service extension at the service-extension server address returns a response to the extension filter, the extension filter returns the response to a client from which the request was received.

19. The method of claim 16 wherein the extension filter dispatches a response received from the processing component by:

for each entry in the dispatch table accessed in increasing-priority order,

when the URI pattern in the entry matches a URI requested by the response,

dispatching the response to the service-extension server address of the entry.

20. The method of claim 15 wherein the initial-processing and post-processing component, upon receiving a request from a filter:

stores the request;

associates the stored request with a requested URI; and

calls the authorization service to determine whether or not the request is authorized.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2013
From: GERGANOV, RADOSLAV
To: VMWARE, INC.
Reel/Frame 031436/0007 →