IP Library Granted Patent US 10,796,356
Granted Patent B2
US 10,796,356 · App. 15/884,272 · Granted Oct 6, 2020

Transformation and aggregation engine

Inventors: Raj Anand (Santa Clara, CA); Ponsankar Shanmugam Semmandampalayam (Cupertino, CA); Ruchitkumar Shah (Fremont, CA); ManoharReddy Vummadi (Fremont, CA)
Assignee: Walmart Apollo, LLC
G06Q30/0633G06F16/00H04L67/2833H04L12/66H04L67/02H04L67/2823
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,796,356
App. No.
15/884,272
Granted
Oct 6, 2020
Kind
B2
Abstract

A system has a gateway cluster having a gateway processor for communication with an external processor of an external user using a first protocol and data format. A non-transitory storage medium is configured for storing a database containing unfilled orders associated with the external user. An application cluster has a processor in communication with the storage medium for accessing the database. The gateway processor can communicate with the application processor using a second protocol and data format different from the first protocol and data format. The application processor is configured for fetching and aggregating unfilled orders from the database, and transmitting an aggregation of orders to the external processor via the gateway cluster in response to a number of unfilled orders being at least a threshold number, a size of the aggregation of orders being at least a threshold size, or expiration of a predetermined time period.

Claims (60)

1. A system comprising:

a gateway cluster having at least one gateway processor configured for communication with a first external processor of a first external user using a first communication protocol and a first data format,

a non-transitory machine readable storage medium configured for storing a database containing a plurality of unfilled orders associated with the first external user,

an application cluster having at least one application processor comprising a first virtual machine and a second virtual machine, the at least one application processor in communication with the storage medium for accessing the database, the at least one gateway processor configured for communicating with the at least one application processor using a second communication protocol and a second data format different from the first communication protocol and the first data format, the at least one application processor configured for fetching and aggregating unfilled orders from the database, and transmitting an aggregation of orders to the first external processor via the gateway cluster in response to a total number of unfilled orders associated with the first external user being at least a threshold number, a size of the aggregation of orders being at least a threshold size, or expiration of a predetermined time period, and

a lock manager coupled to each of the first and second virtual machines, the lock manager capable of giving one of the first and second virtual machines a first lock for obtaining exclusive access to form the aggregation of orders for the first external user.

2. The system of claim 1 , wherein the first and second virtual machines are configured for:

requesting the first lock from the lock manager,

generating an aggregation of order in response to receiving the first lock; and

releasing the first lock after transmitting the aggregation of orders.

3. The system of claim 1 , wherein:

the database further stores a plurality of unfilled orders associated with a second external user having a second external processor,

the lock manager is configured for providing a second lock to one of the first and second virtual machines while one of the first and second virtual machines has the first lock, where the second lock is for obtaining exclusive access to form an aggregation of orders for the second external user, and transmitting the aggregation of orders to the second external processor via the gateway cluster.

4. The system of claim 1 , wherein the first virtual machine is configured to exclude from the aggregation of orders an additional order that is added to the database while the first virtual machine has the first lock.

5. The system of claim 1 , further comprising a streaming server for fetching a metadata from the database and streaming the aggregation of orders from an object storage to the gateway cluster for delivery to the first external processor, wherein each virtual machine in the at least one application processor is configured for initiating the streaming.

6. The system of claim 5 wherein the gateway cluster further comprises at least one secure file transfer server coupled to the streaming server for transmitting the aggregation of orders to the first external processor.

7. The system of claim 1 , wherein

the lock manager is capable of giving one of the first and second application processors a second lock for obtaining exclusive access to form an aggregation of orders and transmit the aggregation of orders to the first external processor via the gateway cluster.

8. The system of claim 7 , wherein the first and second application processors are configured for:

requesting the second lock from the lock manager,

generating an aggregation of order in response to receiving the second lock; and

releasing the second lock after transmitting the aggregation of orders.

9. The system of claim 8 , wherein the at least one application processor is configured for:

serving displays to request on-boarding information from the first external processor,

receiving the onboarding information from the first external processor; and

storing profile information in the database regarding rules for transmitting the aggregation of orders to the first external processor.

10. A method comprising:

receiving data from a first external processor of a first external user via a gateway cluster having at least one gateway processor, the receiving using a first communication protocol and a first data format between the first external processor and the gateway cluster,

fetching a plurality of unfilled orders associated with the first external user from a database,

aggregating the unfilled orders into a single file or message containing the aggregation of orders,

transmitting the aggregation of orders to the first external processor via the gateway cluster in response to a total number of unfilled orders associated with the first external user being at least a threshold number, a size of the aggregation of orders being at least a threshold size, or expiration of a predetermined time period, the transmitting including communicating between the at least one application processor and the gateway cluster using a second communication protocol and a second data format different from the first communication protocol and the first data format, and

receiving a first lock for obtaining exclusive access to form the aggregation of orders for the first external user.

11. The method of claim 10 , further comprising:

requesting the first lock from the lock manager,

generating an aggregation of order in response to receiving the first lock; and

releasing the first lock after transmitting the aggregation of orders.

12. The method of claim 10 , wherein:

fetching a plurality of unfilled orders associated with a second external user having a second external processor,

receiving a second lock while having the first lock, where the second lock is for obtaining exclusive access to form an aggregation of orders for the second external user, and

transmitting the aggregation of orders to the second external processor via the gateway cluster.

13. The method of claim 10 , comprising excluding from the aggregation of orders an additional order that is added to the database while the first virtual machine has the first lock.

14. A non-transitory, machine readable storage medium encoded with program instructions, wherein when a processor executes the programmed instructions, the processor performs the method comprising:

receiving data from a first external processor of a first external user via a gateway cluster having at least one gateway processor, the receiving using a first communication protocol and a first data format between the first external processor and the gateway cluster,

fetching a plurality of unfilled orders associated with the first external user from a database,

aggregating the unfilled orders into a single file or message containing the aggregation of orders,

transmitting the aggregation of orders to the first external processor via the gateway cluster in response to a total number of unfilled orders associated with the first external user being at least a threshold number, a size of the aggregation of orders being at least a threshold size, or expiration of a predetermined time period, the transmitting including communicating between the at least one application processor and the gateway cluster using a second communication protocol and a second data format different from the first communication protocol and the first data format, and

receiving a first lock for obtaining exclusive access to form the aggregation of orders for the first external user.

15. The non-transitory, machine readable storage medium of claim 14 , wherein the program instructions further configure the processor for:

requesting the first lock from the lock manager,

generating an aggregation of order in response to receiving the first lock; and

releasing the first lock after transmitting the aggregation of orders.

16. The non-transitory, machine readable storage medium of claim 14 , wherein the program instructions further configure the processor for:

fetching a plurality of unfilled orders associated with a second external user having a second external processor,

receiving a second lock having the first lock, where the second lock is for obtaining exclusive access to form an aggregation of orders for the second external user, and transmitting the aggregation of orders to the second external processor via the gateway cluster.

17. The non-transitory, machine readable storage medium of claim 14 , wherein the program instructions further configure the processor for excluding from the aggregation of orders an additional order that is added to the database while the first virtual machine has the lock.

18. The method of claim 10 comprising fetching a metadata from the database and streaming the aggregation of orders from an object storage to the gateway cluster for delivery to the first external processor.

19. The method of claim 10 comprising:

serving displays to request on-boarding information from the first external processor,

receiving the onboarding information from the first external processor; and

storing profile information in the database regarding rules for transmitting the aggregation of orders to the first external processor.

20. The non-transitory, machine readable storage medium of claim 14 , wherein the program instructions further configure the processor for fetching a metadata from the database and streaming the aggregation of orders from an object storage to the gateway cluster for delivery to the first external processor.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 29, 2018
From: WAL-MART STORES, INC.
To: WALMART APOLLO, LLC
Reel/Frame 045392/0554 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2018
From: ANAND, RAJ; SEMMANDAMPALAYAM, PONSANKAR SHANMUGAM; SHAH, RUCHITKUMAR; VUMMADI, MANOHARREDDY
To: WAL-MART STORES, INC.
Reel/Frame 044779/0001 →
Continuity (1)
Related Publication 20190236683A1 · Aug 1, 2019