IP Library Granted Patent US 10,521,284
Granted Patent B2
US 10,521,284 · App. 15/695,988 · Granted Dec 31, 2019

System and method for management of deployed services and applications

Inventors: Thomas Patrick McClory (Carlsbad, CA); Jatil Chandrakant Damania (Jersey City, NJ); Scott Matthew Vidmar (Graham, WA)
Assignee: Datapipe, Inc.
G06F9/546G06F8/30G06F8/41G06F8/60G06F8/71G06F9/45558G06F9/505G06F9/5027G06F11/3684G06F11/3688G06Q10/06398H04L41/5041H04L41/5054H04L63/0236H04L63/0281G06F8/77G06F2009/45583G06F2009/45587G06F2009/45591G06F2209/501G06F2209/541G06F2209/548H04L41/5083H04L63/1433H04L67/10
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 10,521,284
App. No.
15/695,988
Granted
Dec 31, 2019
Kind
B2
Abstract

Disclosed herein are system, apparatus, article of manufacture, method and/or computer program product embodiments, and/or combinations and sub-combinations thereof, for processing requests for a deployed service or application. According to an embodiment, a request for a service may be received by a command application programming interface (API) from a client device. A request identifier and a task message specifying a task to be performed by the service may be generated based on the received request. A read cache may be updated with the request identifier, and the task message may be transmitted to a command task queue. A worker process may detect the task message upon transmission of the task message to the command queue and execute the task specified by the task message. Upon completion of the task, a completion message may be transmitted to an event publish queue.

Claims (106)

1. A system for management of a deployment, the system comprising:

at least one processor; and

a memory operatively coupled to the at least one processor, the at least one processor configured at least in part to:

receive, by a command application programming interface (API) of a service, a request for the service from a client device;

generate, by the command API, a task message and a request identifier based on the request, the task message specifying a task to be performed by the service;

update, by the command API, a read cache, accessible by a worker process and by the command API, to include the request identifier;

transmit, by the command API, the task message to a command task queue;

detect, by the worker process of the service, the task message upon transmission of the task message to the command task queue;

receive, by a stream listener of the service, a published message from an event stream, wherein the event stream comprises communication across a plurality of related services, applications, or a combination thereof, wherein the stream listener is configured to subscribe to the event stream, and wherein multiple instances of the command API, worker process, or stream listener are configured for parallel execution and load balancing;

apply, by the stream listener, one or more filtering rules to the published message to determine whether the published message is relevant to the service;

execute, by the worker process, the task specified by the task message; and

transmit, by the worker process, a completion message to an event publish queue upon completion of the task specified by the task message.

2. The system of claim 1 , wherein the at least one processor is further configured to:

periodically transmit, by the worker process, a status of the task specified by the task message to a read queue;

receive, by a read API, a status request including the request identifier from the client device;

retrieve, by the read API, the status from the read queue in response to receiving the status request; and

transmit, by the read API, the status to the client device.

3. The system of claim 1 , wherein the at least one processor is further configured to:

receive, by a read API, a request for data provided by the service;

validate, by the read API, credentials associated with the request for data to determine whether the request for data is authorized to access the requested data;

verify, by the read API, that a request format of the request for data meets one or more predefined format requirements;

retrieve, by the read API, the requested data from the read cache;

retrieve, by the read API, the requested data from a service data store associated with the service when the requested data does not reside in the read cache;

format, by the read API, the requested data according to a service contract associated with the service and the client device; and

transmit, by the read API, the requested data to the client device.

4. The system of claim 3 , wherein the at least one processor is further configured to:

transmit, by the read API, an update message to the command task queue when the requested data does not reside in the read cache, wherein the update message specifies an update task to refresh the read cache with the requested data;

detect, by the worker process, the update message upon transmission of the update message to the command task queue; and

execute, by the worker process, the update task specified by the update message to refresh the read cache with the requested data.

5. The system of claim 1 , wherein, to execute the task specified by the task message, the at least one processor is further configured to:

retrieve, by the worker process, cached data associated with the task specified by the task message from a service data cache, wherein the service data cache stores data reusable by the service for a plurality of service requests; and

update, by the worker process, the service data cache upon completion of the task specified by the task message.

6. The system of claim 1 , wherein, to execute the task specified by the task message, the at least one processor is further configured to:

determine, by the worker process, task data required to perform the task specified by the task message;

retrieve, by the worker process, the task data from a service data store associated with the service;

execute, by the worker process, one or more predefined instructions upon the retrieved data to generate task result data; and

update, by the worker process, the read cache with the task result data for access by the client device.

7. The system of claim 1 , wherein the at least one processor is further configured to:

retrieve, by a stream publisher, a message from the event publish queue;

apply, by the stream publisher, one or more transformation rules to the message to produce a transformed message; and

publish, by the stream publisher, the transformed message to the event stream.

8. The system of claim 1 , wherein the at least one processor is further configured to:

determine, by the stream listener, whether the published message requires the task to be performed by the service; and

transmit, by the stream listener, the published message to the command task queue in response to determining that the published message requires the task to be performed by the service.

9. The system of claim 1 , wherein the request is routed via an API gateway to the command API.

10. A computer-implemented method for managing a deployment, the method comprising:

receiving, by a command application programming interface (API) of a service, a request for the service from a client device;

generating a task message and a request identifier based on the request, the task message specifying a task to be performed by the service;

updating a read cache, accessible by a worker process and by the command API, to include the request identifier;

transmitting the task message to a command task queue of the service;

detecting, by the worker process of the service, the task message upon transmission of the task message to the command task queue of the service;

receiving, by a stream listener of the service, a published message from an event stream, wherein the event stream comprises communication across a plurality of related services, applications, or a combination thereof, wherein the stream listener is configured to subscribe to the event stream, and wherein multiple instances of the command API, worker process, or stream listener are configured for parallel execution and load balancing;

applying, by the stream listener, one or more filtering rules to the published message to determine whether the published message is relevant to the service;

executing the task specified by the task message; and

transmitting a completion message to an event publish queue upon completion of the task specified by the task message.

11. The method of claim 10 , further comprising:

periodically transmitting a status of the task specified by the task message to a read queue;

receiving, by a read API, a status request including the request identifier from the client device;

retrieving the status from the read queue in response to receiving the status request; and

transmitting the status to the client device.

12. The method of claim 10 , further comprising:

receiving, by a read API, a request for data provided by the service;

validating credentials associated with the request for data to determine whether the request for data is authorized to access the requested data;

verifying that a request format of the request for data meets one or more predefined format requirements;

retrieving the requested data from the read cache;

retrieving the requested data from a service data store associated with the service when the requested data does not reside in the read cache;

formatting the requested data according to a service contract associated with the service: and

transmitting the requested data to the client device.

13. The method of claim 12 , further comprising:

transmitting an update message to the command task queue when the requested data does not reside in the read cache, wherein the update message specifies an update task to refresh the read cache with the requested data;

detecting, by the worker process, the update message upon transmission of the update message to the command task queue; and

executing the update task specified by the update message to refresh the read cache with the requested data.

14. The method of claim 10 , wherein executing the task specified by the task message further comprises:

retrieving cached data associated with the task specified by the task message from a service data cache, wherein the service data cache stores data reusable by the service for a plurality of service requests; and

updating the service data cache upon completion of the task specified by the task message.

15. The method of claim 10 , wherein executing the task specified by the task message further comprises:

determining task data required to perform the task specified by the task message;

retrieving the task data from a service data store associated with the service;

executing one or more predefined instructions upon the retrieved data to generate task result data; and

updating the read cache with the task result data for access by the client device.

16. The method of claim 10 , further comprising;

retrieving, by a stream publisher, a message from the event publish queue;

applying one or more transformation rules to the message to produce a transformed message; and

publishing the transformed message to the event stream.

17. The method of claim 10 , further comprising:

determining whether the published message requires the task to be performed by the service; and

transmitting the published message to the command task queue in response to determining that the published message requires the task to be performed by the service.

18. The method of claim 10 , wherein the request is routed via an API gateway to the command API.

19. A non-transitory tangible computer-readable storage device having instructions stored thereon that, when executed by at least one processor, cause the at least one processor to perform operations to manage a deployment, the operations comprising:

receiving, by a command application programming interface (API) of a service, a request for the service from a client device;

generating a task message and a request identifier based on the request, the task message specifying a task to be performed by the service;

updating a read cache, accessible by a worker process and by the command API, to include the request identifier;

transmitting the task message to a command task queue of the service;

detecting, by a worker process of the service, the task message upon transmission of the task message to the command task queue;

receiving a published message from an event stream, by a stream listener of the service, wherein the event stream comprises communication across a plurality of related services, applications, or a combination thereof, wherein the stream listener is configured to subscribe to the event stream, and wherein multiple instances of the command API, worker process, or stream listener are configured for parallel execution and load balancing;

applying one or more filtering rules to the published message to determine whether the published message is relevant to the service;

executing the task specified by the task message; and

transmitting a completion message to an event publish queue upon completion of the task specified by the task message.

20. The non-transitory computer-readable storage device of claim 19 , the operations further comprising:

receiving, by a read API, a request for data provided by the service;

validating credentials associated with the request for data to determine whether the request is authorized to access the requested data;

verifying that a request format of the request for data meets one or more predefined format requirements;

retrieving the requested data from the read cache;

retrieving the requested data from a service data store associated with the service when the requested data does not reside in the read cache;

formatting the requested data according to a service contract associated with the service; and

transmitting the requested data to the client device.

Assignments (3)
RELEASE OF PATENT SECURITIES Recorded Mar 13, 2024
From: CITIBANK, N.A.
To: DATAPIPE, INC.
Reel/Frame 066794/0853 →
SECURITY INTEREST Recorded Feb 9, 2021
From: DATAPIPE, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 055202/0624 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2018
From: MCCLORY, THOMAS PATRICK; DAMANIA, JATIL CHANDRAKANT; VIDMAR, SCOTT MATTHEW
To: DATAPIPE, INC.
Reel/Frame 045444/0434 →
Continuity (2)
Provisional Application 62503079 · May 8, 2017
Related Publication 20180321993A1 · Nov 8, 2018
Cited By (3)
US 12,425,474 US 12,530,618 US 12,547,609