IP Library Granted Patent US 12,445,537
Granted Patent B2
US 12,445,537 · App. 18/523,143 · Granted Oct 14, 2025

Scheduler for transaction processing system, and system incorporating such scheduler

Inventors: Grant Michael Smith (Union Mills, IM); Scott Xavier Dukes (KwaZulu-Natal, ZA); Matthew John Harris (Berkhamsted, GB)
Assignee: Games Global Operations Limited
H04L67/63G06F9/5083
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 12,445,537
App. No.
18/523,143
Granted
Oct 14, 2025
Kind
B2
Abstract

An implementation may involve: receiving, by a web site, selection of a server application, wherein the server application is associated with a path, wherein the path includes a set of steps, wherein the set of steps is associated with program logic to perform a set of functions; receiving, by an application launcher, a request on behalf of a client device; determining, by the application launcher, the server application based on the request, and also based on metadata that relate to the server application and an operator of the web site; providing, by the application launcher, a client application to the client device, the client application configured to interact with the server application; executing, by an orchestrator, the path, wherein at least some of the set of steps include interaction with an external service, wherein a context of the execution is written in a database between execution of some of the steps.

Claims (41)

1. A system comprising:

one or more processors; and

memory storing instructions that are executable by the one or more processors to perform operations of software components comprising:

a web site configured to allow selection of a server application, wherein the server application is associated with a path, wherein the path includes a set of steps, and wherein each of the set of steps is respectively associated with program logic to perform a discrete set of functions;

storage containing metadata that relate to the server application and an operator of the web site;

an application launcher configured to: receive a request on behalf of a client device, determine the server application based on the request and the metadata, and provide a client application to the client device, wherein the client application is configured to interact with the server application; and

an orchestrator configured to execute the path, wherein at least some of the set of steps include interaction with one or more external services remotely accessible to the system, and wherein a context of the execution is written in a database between execution of at least some of the set of steps.

2. The system of claim 1 , wherein the web site is also configured to allow selection of a second server application, wherein the second server application is associated with a second path, wherein the second path includes a second set of steps, wherein each of the second set of steps is respectively associated with second program logic to perform a second discrete set of functions,

wherein the metadata also relates to the second server application,

wherein the application launcher is also configured to: receive a second request from the client device, determine the second server application based on the second request and the metadata, and provide a second client application to the client device, wherein the second client application is configured to interact with the second server application,

wherein the orchestrator configured to execute the second path, wherein at least some of the second set of steps include interaction with the one or more external services, and wherein a second context of the execution is written in the database between execution of at least some of the second set of steps.

3. The system of claim 1 , wherein the software components further comprise:

a second web site configured to allow selection of a second server application, wherein the second server application is associated with a second path, wherein the second path includes a second set of steps, and wherein each of the second set of steps is respectively associated with second program logic to second perform a second discrete set of functions,

wherein the metadata also relates to the second server application and a second operator of the second web site,

wherein the application launcher is also configured to: receive a second request from the client device, determine the second server application based on the second request and the metadata, and provide a second client application to the client device, wherein the second client application is configured to interact with the second server application,

wherein the orchestrator configured to execute the second path, wherein at least some of the second set of steps include interaction with the one or more external services, and wherein a second context of the execution is written in the database between execution of at least some of the second set of steps.

4. The system of claim 1 , wherein providing the client application to the client device is based on determining, by way of a geolocation service, that the client device is permitted to access the server application.

5. The system of claim 1 , wherein the client application is executable within a web browser of the client device.

6. The system of claim 1 , wherein the set of steps include one or more of: session management, retrieving application state, establishing a path identifier, getting application settings, handling requests from the client device, generating results, finalizing execution of the path, ending execution of the path, or logging data relating to execution of the path.

7. The system of claim 1 , wherein the path indicates that: at least two of the set of steps can be performed in parallel to one another, and a pair of steps in the set of steps are to be performed serially.

8. The system of claim 1 , wherein a particular step of the set of steps has either pre-step processing or post-step processing defined thereof, wherein the pre-step processing occurs before execution of the particular step and is configured to modify the context, and wherein the post-step processing occurs after execution of the particular step and also is configured to modify the context.

9. The system of claim 1 , wherein each of the set of steps is configured to execute independently of other steps of the set of steps.

10. The system of claim 1 , wherein the path defines a boundary separating the set of steps into a first group of steps and a second group of steps, wherein the first group of steps are configured to be performed before the second group of steps, wherein a failure that occurs during execution of the first group of steps causes the context to be rolled back and the path to be restarted, and wherein a further failure that occurs during execution of the second group of steps causes at least some of the second group of steps to be retried.

11. The system of claim 1 , further comprising:

a plurality of orchestrators, each configured to execute paths, wherein the orchestrator is one of the plurality of orchestrators; and

a load balancer configured to distribute representations of the paths across the plurality of orchestrators according to a load balancing discipline.

12. The system of claim 11 , wherein the plurality of orchestrators scales in number proportionally to orchestrator demand.

13. The system of claim 1 , wherein a particular step of the set of steps is configured to interact with a particular external service of the one or more external services, wherein a plurality of server components are configured to perform the particular external service, the system further comprising:

a load balancer configured to distribute interactions across the plurality of server components according to a load balancing discipline.

14. The system of claim 13 , wherein the plurality of server components scales in number proportionally to server component demand.

15. The system of claim 1 , wherein the application launcher is configured to facilitate loading of the server application in parallel to determining whether a user associated with the client device is permitted to access the server application.

16. The system of claim 1 , wherein the orchestrator and the one or more external services are hosted within different virtual private cloud systems.

17. The system of claim 1 , wherein the context represents an intermediate or final state of the execution of the path.

18. The system of claim 1 , wherein the orchestrator receives a representation of the path from the application launcher.

19. The system of claim 1 , wherein at least some of the external services operate in a stateless fashion.

20. A computer-implemented method comprising:

receiving, by a web site, selection of a server application, wherein the server application is associated with a path, wherein the path includes a set of steps, and wherein each of the set of steps is respectively associated with program logic to perform a discrete set of functions;

receiving, by an application launcher, a request on behalf of a client device;

determining, by the application launcher, the server application based on the request, and also based on metadata that relate to the server application and an operator of the web site;

providing, by the application launcher, a client application to the client device, wherein the client application is configured to interact with the server application; and

executing, by an orchestrator, the path, wherein at least some of the set of steps include interaction with one or more external services, and wherein a context of the execution is written in a database between execution of at least some of the set of steps.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2024
From: SMITH, GRANT MICHAEL; DUKES, SCOTT XAVIER; HARRIS, MATTHEW JOHN
To: GAMES GLOBAL OPERATIONS LIMITED
Reel/Frame 066543/0184 →
CHANGE OF ADDRESS Recorded Feb 9, 2024
From: GAMES GLOBAL OPERATIONS LIMITED
To: GAMES GLOBAL OPERATIONS LIMITED
Reel/Frame 066544/0909 →
Continuity (1)
Related Publication 20250175538A1 · May 29, 2025
References Cited (102)
US 7490153B1 · Krishnan · 2009 [cited by applicant]
US 8956220B2 · Melton · 2015 [cited by applicant]
US 9098329B1 · Shepherd · 2015 [cited by examiner]
US 9286766B2 · Igesund · 2016 [cited by applicant]
US 9685043B2 · Naicker · 2017 [cited by applicant]
US 9722927B2 · Zhang · 2017 [cited by applicant]
US 10171567B2 · Huang · 2019 [cited by applicant]
US 10269220B2 · Harpur · 2019 [cited by applicant]
US 10282689B1 · Johnston · 2019 [cited by examiner]
US 10749992B2 · Gowda · 2020 [cited by applicant]
US 10798187B2 · Mullender · 2020 [cited by applicant]
US 10824981B2 · Koutyrine · 2020 [cited by applicant]
US 10950084B2 · Watkeys · 2021 [cited by applicant]
US 10951691B2 · Mishra · 2021 [cited by applicant]
US 11005708B1 · Gheorghe · 2021 [cited by applicant]
US 11356525B2 · Miedema · 2022 [cited by applicant]
US 11379461B2 · Raman · 2022 [cited by applicant]
US 11467858B2 · Liguori · 2022 [cited by examiner]
US 11489738B2 · Palladino · 2022 [cited by applicant]
US 11577162B2 · Slabbert · 2023 [cited by applicant]
US 11651653B2 · Ross · 2023 [cited by applicant]
US 11669594B2 · Gibb · 2023 [cited by applicant]
US 20030069055A1 · Moody · 2003 [cited by applicant]
US 20040107168A1 · Millner · 2004 [cited by applicant]
US 20050215304A1 · Moshal · 2005 [cited by applicant]
US 20060079331A1 · Moshal · 2006 [cited by applicant]
US 20060121968A1 · Daniel · 2006 [cited by applicant]
US 20060189381A1 · Daniel · 2006 [cited by applicant]
US 20060194628A1 · Novellie · 2006 [cited by applicant]
US 20060229949A1 · Moshal · 2006 [cited by applicant]
US 20060287097A1 · Moshal · 2006 [cited by applicant]
US 20070063443A1 · Moshal · 2007 [cited by applicant]
US 20070093297A1 · Moshal · 2007 [cited by applicant]
US 20070197282A1 · Moshal · 2007 [cited by applicant]
US 20070213121A1 · Moshal · 2007 [cited by applicant]
US 20070225057A1 · Moshal · 2007 [cited by applicant]
US 20080018049A1 · Hebden · 2008 [cited by applicant]
US 20080045288A1 · Moshal · 2008 [cited by applicant]
US 20080076501A1 · Mares · 2008 [cited by applicant]
US 20080090632A1 · Kumar · 2008 [cited by applicant]
US 20080090662A1 · Verardi · 2008 [cited by applicant]
US 20080176618A1 · Toompere · 2008 [cited by applicant]
US 20080214259A1 · Novellie · 2008 [cited by applicant]
US 20090023490A1 · Moshal · 2009 [cited by applicant]
US 20090093296A1 · Gerson · 2009 [cited by applicant]
US 20090098920A1 · Toompere · 2009 [cited by applicant]
US 20090124352A1 · Gerson · 2009 [cited by applicant]
US 20090286586A1 · Heymann · 2009 [cited by applicant]
US 20090318231A1 · Lange · 2009 [cited by applicant]
US 20090325688A1 · Naicker · 2009 [cited by applicant]
US 20100052255A1 · Naicker · 2010 [cited by applicant]
US 20100167808A1 · Moshal · 2010 [cited by applicant]
US 20100210362A1 · Toompere · 2010 [cited by applicant]
US 20110028202A1 · Naicker · 2011 [cited by applicant]
US 20120178518A1 · Moshal · 2012 [cited by applicant]
US 20130023324A1 · Lange · 2013 [cited by applicant]
US 20130090164A1 · Moshal · 2013 [cited by applicant]
US 20130276101A1 · Rautenbach · 2013 [cited by applicant]
US 20130276102A1 · Rautenbach · 2013 [cited by applicant]
US 20130276103A1 · Rautenbach · 2013 [cited by applicant]
US 20130290178A1 · Masie · 2013 [cited by applicant]
US 20140289107A1 · Moshal · 2014 [cited by applicant]
US 20140310117A1 · Moshal · 2014 [cited by applicant]
US 20150119129A1 · Igesund · 2015 [cited by applicant]
US 20150126264A1 · Igesund · 2015 [cited by applicant]
US 20150141115A1 · Vermaak · 2015 [cited by applicant]
US 20150170460A1 · Marais · 2015 [cited by applicant]
US 20150221162A1 · Peters · 2015 [cited by applicant]
US 20150248811A1 · Wortmann · 2015 [cited by applicant]
US 20150324777A1 · Moshal · 2015 [cited by applicant]
US 20150358235A1 · Zhang · 2015 [cited by applicant]
US 20150381493A1 · Bansal · 2015 [cited by applicant]
US 20160203671A1 · Vermaak · 2016 [cited by applicant]
US 20170046704A1 · Büchner · 2017 [cited by applicant]
US 20170213416A1 · Wortmann · 2017 [cited by applicant]
US 20180122184A1 · Wortmann · 2018 [cited by applicant]
US 20180122189A1 · Wortmann · 2018 [cited by applicant]
US 20180349871A1 · Moshal · 2018 [cited by applicant]
US 20180367621A1 · Mullender · 2018 [cited by applicant]
US 20190004871A1 · Sukhomlinov · 2019 [cited by applicant]
US 20190005473A1 · De Villiers · 2019 [cited by applicant]
US 20190220834A1 · Moshal · 2019 [cited by applicant]
US 20200057618A1 · Alex · 2020 [cited by applicant]
US 20200204492A1 · Sarva · 2020 [cited by applicant]
US 20200312085A1 · Rottcher · 2020 [cited by applicant]
US 20200382420A1 · Suryanarayana · 2020 [cited by applicant]
US 20210034997A1 · Harpur · 2021 [cited by applicant]
US 20220005018A1 · White · 2022 [cited by applicant]
US 20220143505A1 · Mathieson · 2022 [cited by applicant]
US 20220197597A1 · Harpur · 2022 [cited by applicant]
US 20220308911A1 · Barkett · 2022 [cited by examiner]
US 20230035443A1 · Harpur · 2023 [cited by applicant]
US 20230162559A1 · Harpur · 2023 [cited by applicant]
US 20230315819A1 · Guy · 2023 [cited by applicant]
WO 2023193971A1 · 2023 [cited by applicant]
“Architecting a Highly Available Serverless, Microservices-Based Ecommerce Site”, Jul. 15, 2021 (Jul. 15, 2021), XP093257148, Retrieved from the Internet: URL:https://aws.amazon.com/blogs/architecture/architecting-a-hig… [cited by applicant]
Anonymous: “Amazon Gamelift Developer Guide”, Dec. 16, 2022 (Dec. 16, 2022), XP093257041, Retrieved from the Internet: URL:https://web.archive.org/web/20221216055550if_/https://docs.aws.amazon.com/pdfs/gamelift/latest/d… [cited by applicant]
Anonymous: “AWS Lambda Developer Guide—first 400 pages”, Oct. 17, 2023 (Oct. 17, 2023), XP093257048, Retrieved from the Internet: URL:https://web.archive.org/web/20231017155908if_/https://docs.aws.amazon.com/pdfs/lambda… [cited by applicant]
Anonymous: “Choosing between AWS Lambda data storage options in web apps”, Oct. 28, 2020 (Oct. 28, 2020), XP093257397, Retrieved from the Internet: URL:https://aws.amazon.com/blogs/compute/choosing-between-aws-lambda-da… [cited by applicant]
Anonymous: “How to build online multiplayer games using Amazon GameLift, AWS Serverless, and C++ ¦ AWS for Games Blog”, Sep. 15, 2021 (Sep. 15, 2021), XP093257033, Retrieved from the Internet: URL:https://aws.amazon.com… [cited by applicant]
Extended European Search Report, European Patent Application No. 24212300.8, mailed Apr. 1, 2025. [cited by applicant]
Junichi Tatemura, Wang-Pin Hsiung, Web service decomposition: Edge computing architecture for cache-friendly e-commerce applications, Electronic Commerce Research and Applications, vol. 5, Issue 1, 2006, pp. 57-65, ISSN… [cited by applicant]