A portion of the disclosure of this patent document contains material to which the claim of copyright protection is made. The copyright owner has no objection to the facsimile reproduction by any person of the patent document or the patent disclosure, as it appears in the U.S. Patent and Trademark Office file or records, but reserves all other rights whatsoever. Copyright 2005, WMS Gaming, Inc.
This invention relates generally to the field of wagering game machines and more particularly to the field of communications in a wager gaming network.
Wagering game machines, wager gaming computer systems, and peripheral devices can be employed in wager gaming networks. In some wager gaming networks, the network devices communicate by exchanging messages. For example, wagering game machines can report jackpot winnings by transmitting messages across a wager gaming network to a jackpot controller. Similarly, wager gaming accounting systems can collect wagering game data (e.g., betting amounts, payout information, etc.) by receiving messages from the wagering game machines.
In some wager gaming networks, each network device includes logic for determining where in the network to transmit messages. In particular, each wagering game machine may be equipped with hardware and/or software for determining where to send jackpot messages, reporting messages, printer messages, security warning messages, participation style wager gaming messages, etc. Each of these messages may be sent to different network devices and the messages may conform to different communication protocols.
One disadvantage of such wager gaming networks is that expensive message transmission logic may be replicated in every wagering game machine and device of the network. Another disadvantage is that each network device's transmission logic may require complete software recompilation when devices are added or removed from the wager gaming network. When software is recompiled, wager gaming regulators may require lengthy testing and analysis.
The present invention is illustrated by way of example and not limitation in the Figures of the accompanying drawings in which:
Systems and methods for processing wager gaming messages are described herein. This description of the embodiments is divided into four sections. The first section describes an overview, while the second section describes an exemplary operating environment and system architecture. The third section describes exemplary operations and the fourth section provides some general comments.
This section provides a broad overview of a wager gaming messaging system. In particular, this section describes a wager gaming network in which devices transmit messages to a central message queue selector that forwards the messages to appropriate message queues. Additional details are discussed below, in the description of
At stage one, a wager gaming message producer 102 transmits a message 104 to a message queue selector 106. The wager gaming message producer 102 can be any wager gaming network device (e.g., a wagering game machine, printer, etc.), while the message queue selector can include a database (e.g., a relational database). In one embodiment, stage one's message transmission can be a result of the wager gaming message producer 102 making a direct database call to the message queue selector 106.
At stage two, the message queue selector 106 transmits the message 104 to a message queue 108. The message queue selector 106 can transmit messages to the message queue 108 using database triggers. The message queue 108 can reside in the same database that includes the message queue selector 106. Alternatively, the message queue 108 can reside in a separate data store.
At stage three, a wager gaming message consumer 110 requests a message from the message queue 108. In response to the message request 112, the message queue 108 transmits the message 104 to the wager gaming message consumer 110. Alternatively, the wager gaming message consumer 110 can “attach” itself to the message queue 108, where the message queue 108 will forward messages to the wager gaming message consumer 110 as the messages arrive in the message queue 108. The message consumer can be any network device, such as a wager gaming machine, printer, jackpot controller, etc. In one embodiment, the message queue 108 transmits the message 104 in response to a request from the wager gaming message consumer 110.
While this overview describes dataflow and operations performed by certain embodiments of the invention, other embodiments exhibit different dataflow and operations, as described in greater detail below. The next section describes an exemplary wager gaming network and network devices, according to embodiments of the invention.
This section describes a wager gaming network and its devices, according to embodiments of the invention. Operations of the system devices will be described in the next section.
These devices of the wager gaming network 200 can communicate over wired and/or wireless connections. The network devices can be connected to the wager gaming network 200 using any suitable connection technology, such as Bluetooth, 802.11x, Ethernet, DSL, etc.
The site controller 208 can be located in a casino and can be used for monitoring wagering game machine information, such as amounts wagered, amounts paid-out, amounts collected, and player tracking information. The message queue selector 206 can receive messages from any network device (e.g., through a direct database call) and forward those messages to appropriate queues in the message queues 212. The message queues 212 can store and transmit the messages to appropriate network devices. In one embodiment, the printer 204 or other network devices can receive messages from the message queues 212 and perform operations based on the messages.
While
The wagering game machine 300 can be operated while players are standing or seated. Additionally, the wagering game machine 300 is preferably mounted on a stand (not shown). However, it should be appreciated that the wagering game machine 300 can be constructed as a pub-style tabletop game (not shown), which a player can operate while sitting. Furthermore, the wagering game machine 300 can be constructed with varying cabinet and display designs. The wagering game machine 300 can incorporate any primary game such as slots, poker, or keno, and additional bonus round games. The symbols and indicia used on and in the wagering game machine 300 can take mechanical, electrical, or video form.
As illustrated in
As shown in
A player may “cash out” by pressing a cash out button 318. When a player cashes out, the wagering game machine 300 dispenses a voucher or currency corresponding to the number of remaining credits. The wagering game machine 300 may employ other payout mechanisms such as credit slips (which are redeemable by a cashier) or electronically recordable cards (which track player credits), or electronic funds transfer.
The wagering game machine also includes a primary display unit 304 and a secondary display unit 310 (also known as a “top box”). The wagering game machine may also include an auxiliary video display 330. In one embodiment, the primary display unit 304 displays a plurality of video reels 320. According to embodiments of the invention, the display units 304 and 310 can include any visual representation or exhibition, including moving physical objects (e.g., mechanical reels and wheels), dynamic lighting, and video images. In one embodiment, each reel 320 includes a plurality of symbols such as bells, hearts, fruits, numbers, letters, bars or other images, which correspond to a theme associated with the wagering game machine 300. Furthermore, as shown in
In one embodiment, the wagering game machine 300 can transmit messages to a message queue selector and receive messages from a message queue, as described herein.
The following discussion of
In one embodiment, the message creation unit 402 can create messages that will be transmitted across a wager gaming network. Messages can include wager gaming information, task requests, system information, or other information used by a device of a wager gaming network.
The message transmission unit 404 can transmit messages across a wager gaming network to a message queue selector 206. The message transmission unit 404 can encapsulate and/or format messages according to any suitable communication protocol, such as the Internet Protocol (IP), RS-232, RS-400, 802.11g, etc. The message transmission unit 404 can be connected to any suitable transmission medium, such as RS-232, RS-400, 802.11g, Ethernet, etc.
The message receiving unit 406 can receive messages from wager gaming network devices, while the message request unit 408 can request messages from ones of the message queues 212.
The message receiving unit 502 can receive messages from network devices. In one embodiment, the message receiving unit 502 can be a stored database procedure that receives messages or parameters from network devices. In another embodiment, the message receiving unit 502 can include any suitable logic (e.g., database functionality, application programs, etc.) for receiving messages from network devices. In one embodiment, the message receiving unit 502 can receive messages in the form of character strings (e.g., XML strings). The message receiving unit 502 can also receive parameter lists, which include parameter values, such as wager gaming device MAC addresses, game theme identifiers, and progressive identifiers.
The message transmission unit 506 can transmit messages to appropriate message queues 212. In one embodiment, the message transmission unit 506 can be a database trigger that transmits messages to the message queues 212. Alternatively, the message transmission unit 506 can include any suitable logic (e.g., database procedure, application program, etc.) for transmitting messages to the message queues 212.
The message queue selection unit 508 uses information in the message queue selection store 504 for determining to which queues it will send messages. In one embodiment, the message queue selection store 504 stores lists of queues that are associated with different message types. These lists can be represented in a set of one or more database tables. For example, the message queue selection store 504 can include database tables including a list of queues associated with printer messages, another list of queues associated with wagering game machine messages, and yet another list of queues associated with cluster controller messages. In one embodiment, the message queue selection unit 508 can designate a particular message for transmission to several message queues, according to the lists stored in the message queue selection store 504. The message queue selection unit 508 can be a database procedure or any other suitable logic.
In one embodiment, the components of the wager gaming network device 400 and the message queue selector 500 can be integrated or divided, forming any number of devices. According to embodiments, the components can include queues, stacks, or other data structures necessary for performing the functionality described herein. Moreover, the modules can be communicatively coupled using any suitable communication method (message passing, parameter passing, signals, etc.).
Any of the devices used in conjunction with embodiments of the invention can include machine-readable media for performing operations described herein. Machine-readable media includes any mechanism that provides (i.e., stores and/or transmits) information in a form readable by a machine (e.g., a computer). For example, machine-readable media includes read only memory (ROM), random access memory (RAM), magnetic disk storage media, optical storage media, flash memory devices, electrical, optical, acoustical or other forms of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.), etc. According to embodiments of the invention, the devices can be other types of logic (e.g., digital logic) for executing the operations for processing messages in a wager gaming network.
This section describes operations performed by embodiments of the invention. In certain embodiments, the operations are performed by instructions residing on machine-readable media (e.g., software), while in other embodiments, the methods are performed by hardware or other logic (e.g., digital logic).
In this section,
At block 602, a message is created, where the message is associated with a message type. For example, a wager gaming network device's message creation unit 402 creates a message. The message can be of any type supported by the message queue selection store 504. For example, the message can be associated with a “printer message type” or a “site controller message type.” In one embodiment, instead of creating the message, the wager gaming network device receives the message from another network device. The flow continues at block 604.
At block 604, the message is transmitted to a message queue selector. For example, the wager gaming network device's message transmission unit 404 transmits the message to a message queue selector 500. In one embodiment, the message is received by other network devices before arriving at the message queue selector 500. From block 604, the flow ends.
While
At block 702, a message is received, where the message is of a message type. For example, a message queue selector 500 receives a message in its message receiving unit 502. The message can be of a particular message type. For example, the message can be of a message type that can be processed by a printer or other wager gaming network device (e.g., a wagering game machine 202 or cluster controller 208). In one embodiment, the message can include an identifier indicating the message type. The flow continues at block 704.
At block 704, the message is stored. For example, the message queue selector's message queue selection unit 508 stores the wager gaming message in a storage buffer (not shown). The flow continues at block 706.
At block 706, based on the wager gaming message type, the message queue selector 500 determines a set of queues to which the wager gaming message will be added. In one embodiment, the message queue selection unit 508 uses the message type, which it determines by inspecting an identifier included in the wager gaming message, as a key into the message queue selection store 504. The message queue selection store 504 maintains lists of queues to which the wager gaming message should be added. In one embodiment, the message queue selection store 504 returns a set of one or more queues corresponding to the key. The flow continues at block 708.
At block 708, the wager gaming message is transmitted to each queue of the set. For example, the message queue selector's message transmission unit 506 transmits the wager gaming message one or more of the queues 212. From block 708, the flow ends.
While the discussion of
At block 802, a message queue is queried for a wager gaming message. For example, a wager gaming network device's message request unit 408 transmits a request for a wager gaming message to one of the message queues 212. The flow continues at block 804.
At block 804, a message is received. For example, a wager gaming network device's message receiving unit 406 receives a wager gaming message from the message queue. In one embodiment, the message queues 212 transmit wager gaming messages to network devices in response to message requests. The flow continues at block 806.
At block 806, based on the message, an operation is performed. For example, based on the message, the wager gaming network device performs an operation. Operations depend on the capabilities of the wager gaming network device and can include printing data included in the wager gaming message, storing wager gaming information contained within the wager gaming message, and authorizing payment of a jackpot. In one embodiment, the wager gaming network device can perform any suitable operation. The flow continues at block 808.
At block 808, a determination is made about whether another query of the message queues will be made. For example, a wager gaming network device's message request unit 408 determines whether it will again query the message queues 212. If another query will be made, the flow continues at block 802. Otherwise, the flow ends.
This section describes some implementation details that can be used with certain embodiments of the invention. While this section describes some implementation details, other embodiments of the invention can be implemented differently. In this section,
The Message table 906 stores information for uniquely identifying a message.
The Message_Queue table 904 shows a relationship between a message (identified as MessageID) and message queue to which the message should be sent. If a particular message relates to multiple message queues, the message can be listed multiple times in the MessageQueue table 904. Likewise, a particular message queue can be listed multiple times in the Message_Queue table 904 if multiple messages should be sent to that queue.
In one embodiment, when the database 900 receives a message, the database first determines the unique identifier associated with the message. Next, the database 900 “looks” into the Message table 906 to determine message queues associated with the message. Finally, the database 900 sends the message to each message queue associated with the message.
In this description, numerous specific details are set forth. However, it is understood that embodiments of the invention may be practiced without these specific details. In other instances, well-known circuits, structures and techniques have not been shown in detail in order not to obscure the understanding of this description. Note that in this description, references to “one embodiment” or “an embodiment” mean that the feature being referred to is included in at least one embodiment of the invention. Further, separate references to “one embodiment” in this description do not necessarily refer to the same embodiment; however, neither are such embodiments mutually exclusive, unless so stated and except as will be readily apparent to those of ordinary skill in the art. Thus, the present invention can include any variety of combinations and/or integrations of the embodiments described herein. Each claim, as may be amended, constitutes an embodiment of the invention, incorporated by reference into the detailed description. Moreover, in this description, the phrase “exemplary embodiment” means that the embodiment being referred to serves as an example or illustration.
Herein, block diagrams illustrate exemplary embodiments of the invention. Also herein, flow diagrams illustrate operations of the exemplary embodiments of the invention. The operations of the flow diagrams are described with reference to the exemplary embodiments shown in the block diagrams. However, it should be understood that the operations of the flow diagrams could be performed by embodiments of the invention other than those discussed with reference to the block diagrams, and embodiments discussed with references to the block diagrams could perform operations different than those discussed with reference to the flow diagrams. Additionally, some embodiments may not perform all the operations shown in a flow diagram. Moreover, it should be understood that although the flow diagrams depict serial operations, certain embodiments could perform certain of those operations in parallel.
This application claims priority under 35 U.S.C. 119(e) from U.S. Provisional Application Ser. No. 60/640,582 filed Dec. 31, 2004, which application is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
60640582 | Dec 2004 | US |