US2010160047A1PendingUtilityA1

Scalable Game Primitives / Distributed Real-Time Aggregation Of Player Data

44
Assignee: MICROSOFT CORPPriority: Dec 22, 2008Filed: Dec 22, 2008Published: Jun 24, 2010
Est. expiryDec 22, 2028(~2.4 yrs left)· nominal 20-yr term from priority
H04L 67/131A63F 2300/531A63F 2300/534H04L 67/1095
44
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Disclosed herein is a set of coordinated game service primitives that allows for custom, per-game, logic. A new game with new custom logic can be added without needing to change any public api or database schema or write any new server code. The same hardware may be shared across many games. And the system scales linearly. That is, if the number of servers is doubled, then so is the number of concurrent users that can be supported. Also disclosed are systems and methods for two-stage aggregation. Pre-aggregation may take place on a plurality of front-end server. Final aggregation may take place on one or more back-end servers. A name value store may be used to reliably store state.

Claims

exact text as granted — not AI-modified
1 . A network-based gaming system, comprising:
 a plurality of front-end servers, each said front-end server executing thereon respective front-end controllers;   a back-end server; and   a partitioned name/value store,   wherein users are enabled to post messages to the front-end controllers, each said message having a respective name and body, messages are routed by name to the appropriate front-end controllers, the front-end controllers aggregate values from a batch of messages, and write the aggregated values to a persistent data store, and   wherein the back-end servers periodically read aggregated values from the data store, and write to the data store final values aggregated over the plurality of front-end servers.   
     
     
         2 . The system of  claim 1 , wherein the front-end servers perform primitive logic on the incoming messages, store results in the data store, read from the data store, and supply aggregated results back to the users. 
     
     
         3 . The system of  claim 1 , wherein the front-end servers are adapted to process incoming messages from users, to perform custom game logic on the incoming messages, to store results in the name/value store, and to read from the name/value store. 
     
     
         4 . The system of  claim 1 , wherein the back-end servers are adapted to perform time-based operations and other custom game logic, and to read and write from the name/value store. 
     
     
         5 . The system of  claim 1 , wherein the data store is a partitioned name/value store with a single-table schema. 
     
     
         6 . The system of  claim 5 , wherein the single table is a name/value table having a first column for name and a second column for value. 
     
     
         7 . In network-based gaming system comprising a plurality of front-end servers, each front-end server being associated with a respective plurality of game consoles, a single back-end server associated with the plurality of front-end servers, and a partitioned name/value store, a method comprising:
 receiving at each of the front-end servers, a set of messages from the respective plurality of game consoles associated therewith, each said message having a respective name and XML body;   aggregating at each of the front-end servers values from the received messages;   writing the aggregated values from the front-end servers to the name/value store;   periodically reading the aggregated values at the back-end server from the name/value store; and   writing from the back-end server to the name/value store a final value aggregated over the plurality of front-end servers.   
     
     
         8 . The method of  claim 7 , further comprising:
 routing the messages by name to the front-end controllers.   
     
     
         9 . The method of  claim 7 , further wherein data is tracked in the system in accordance with name/value pairs. 
     
     
         10 . The method of  claim 7 , wherein each front-end server performs pre-aggregation of input data provided by each of the plurality of clients associated with the front-end server. 
     
     
         11 . The method of  claim 10 , wherein the back-end server aggregates the data globally. 
     
     
         12 . The method of  claim 11 , wherein the aggregation is performed using a set of basic primitives. 
     
     
         13 . A network-based gaming system, comprising:
 a plurality of front-end servers, each said front-end server executing thereon respective front-end controllers;   a back-end server; and   a partitioned name/value store,   wherein each front-end server performs pre-aggregation of input data provided by each of a plurality of clients associated with the front-end server,   wherein the back-end server aggregates the data globally, and   wherein the aggregation is performed using a set of basic primitives.   
     
     
         14 . The system of  claim 13 , wherein users are enabled to post messages to the front-end servers, each said message having a respective name and XML body. 
     
     
         15 . The system of  claim 14 , wherein each message contains a respective value associated with said name, and the back-end server aggregates the data by summing the values over a set of messages containing the name. 
     
     
         16 . The system of  claim 13 , wherein the set of primitives includes at least get and set primitives. 
     
     
         17 . The system of  claim 13 , wherein the set of primitives includes at least sum and get primitives. 
     
     
         18 . The system of  claim 13 , wherein the front-end server communicates pre-aggregated values to the name/value store, and does not communicate directly with the back-end server. 
     
     
         19 . The system of  claim 18 , wherein the back-end server picks up pre-aggregated values from the name/value store, and writes aggregated values back to the name/value store. 
     
     
         20 . The system of  claim 19 , wherein the back-end server picks up the aggregated values from the name/value store for communication to the users.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.