U.S. patent application number 13/405146 was filed with the patent office on 2012-06-21 for download progress management gaming system.
This patent application is currently assigned to Bally Gaming, Inc.. Invention is credited to Christopher P. Arbogast, Ryan Ruppert, Geethanand Vellore.
Application Number | 20120157213 13/405146 |
Document ID | / |
Family ID | 40295879 |
Filed Date | 2012-06-21 |
United States Patent
Application |
20120157213 |
Kind Code |
A1 |
Ruppert; Ryan ; et
al. |
June 21, 2012 |
DOWNLOAD PROGRESS MANAGEMENT GAMING SYSTEM
Abstract
A modified form of the UDP multicast protocol is disclosed to
implement a one-way download progress notification system between a
server and one or more clients. The UDP multicast download progress
notification system enables UDP messages to be sent only to
registered clients, not broadcasted to all clients. This
architecture minimizes network traffic and enhances system
security, since only registered clients receive the UDP message.
The configuration of the UDP multicast download progress
notification system does not require the configuration of network
devices in order to support a UDP multicast. Furthermore, any
number of the clients may be on a different network domain than the
DCM engine.
Inventors: |
Ruppert; Ryan; (Reno,
NV) ; Vellore; Geethanand; (Reno, NV) ;
Arbogast; Christopher P.; (Reno, NV) |
Assignee: |
Bally Gaming, Inc.
Las Vegas
NV
|
Family ID: |
40295879 |
Appl. No.: |
13/405146 |
Filed: |
February 24, 2012 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
12113095 |
Apr 30, 2008 |
8135793 |
|
|
13405146 |
|
|
|
|
11938121 |
Nov 9, 2007 |
|
|
|
12113095 |
|
|
|
|
11938228 |
Nov 9, 2007 |
|
|
|
12113095 |
|
|
|
|
11938155 |
Nov 9, 2007 |
|
|
|
11938228 |
|
|
|
|
11938190 |
Nov 9, 2007 |
|
|
|
11938155 |
|
|
|
|
11938163 |
Nov 9, 2007 |
|
|
|
11938190 |
|
|
|
|
60865332 |
Nov 10, 2006 |
|
|
|
60865550 |
Nov 13, 2006 |
|
|
|
Current U.S.
Class: |
463/42 |
Current CPC
Class: |
H04L 67/26 20130101;
H04L 67/34 20130101; H04L 67/38 20130101; H04L 67/06 20130101; H04L
12/18 20130101 |
Class at
Publication: |
463/42 |
International
Class: |
A63F 13/00 20060101
A63F013/00 |
Claims
1. A gaming architecture system using a modified form of User
Datagram Protocol (UDP) multicast download progress notification
system in a client-server architecture that otherwise allows only
client initiated messages, the system comprising: one or more
clients, wherein each client executes a graphical user interface
display; a server having one or more processors, the server
connected to the one or more clients via a network, wherein the
server identifies download progress notification information that
has potential for inclusion in a download progress notification
message; a database connected to the server, wherein the server
queries the database for a list of clients, wherein the database
replies with a list of clients, wherein the server sends download
progress notification to all clients on the list using an assigned
port number from a UDP broadcast processor, and wherein the
download progress notification is presented on the graphical user
interface display.
2. The system of claim 1, wherein the clients are control panel
applications.
3. The system of claim 2, wherein the control panel applications
are installed on control stations.
4. The system of claim 3, wherein the control stations are utilized
in a casino gaming environment.
5. The system of claim 3, wherein the control stations are utilized
for downloading and configuration of games and/or game operating
systems of connected gaming devices.
6. The system of claim 1, wherein the server is a Download and
Configuration Management (DCM) engine.
7. The system of claim 6, wherein the DCM engine communicates with
a database containing UDP multicast notification system data.
8. The system of claim 6, wherein the DCM engine includes DCM
engine services, business libraries, and a data access layer.
9. The system of claim 8, wherein the DCM engine services include
user interface notification processor and a UDP broadcast
processor.
10. A gaming architecture system using a modified form of User
Datagram Protocol (UDP) multicast download progress notification
system in a client-server architecture that otherwise allows only
client initiated messages, the system comprising: one or more
control stations, wherein each control station executes a control
panel; a server having one or more processors, the server connected
to the one or more control stations via a network, wherein the one
or more control stations send a registration message to the server
with a client IP address in the registration message, wherein the
registration message designates that download progress notification
is desired to be received by the client, wherein the control
station requests a port number from the server, wherein the server
responds to the control station with the port number on which the
control station should listen, and wherein the server identifies
download progress notification information; and a database
connected to the server, wherein the server queries the database
for a list of clients, wherein the database replies with a list of
clients, wherein the server sends notification to all clients on
the list using an assigned port number from a UDP broadcast
processor, and wherein the download progress notification is
presented on the graphical user interface display.
11. The system of claim 10, wherein the clients are control panel
applications.
12. The system of claim 11, wherein the control panel applications
are installed on control stations.
13. The system of claim 12, wherein the control stations are
utilized in a casino gaming environment.
14. The system of claim 12, wherein the control stations are
utilized for downloading and configuration of games and/or game
operating systems of connected gaming devices.
15. The system of claim 10, wherein the server is a Download and
Configuration Management (DCM) engine.
16. The system of claim 15, wherein the DCM engine communicates
with a database containing UDP multicast notification system
data.
17. The system of claim 15, wherein the DCM engine includes DCM
engine services, business libraries, and a data access layer.
18. The system of claim 17, wherein the DCM engine services include
user interface notification processor and a UDP broadcast
processor.
19. A gaming architecture system using a modified form of User
Datagram Protocol (UDP) multicast download progress notification
system in a client-server architecture that otherwise allows only
client initiated messages, the system comprising: one or more
clients, wherein each client executes a graphical user interface
display; a server having one or more processors, the server
connected to the one or more clients via a network, wherein the
server identifies download progress notification information for
inclusion in a download progress notification message, wherein the
UDP multicast download progress notification system is configured
without requiring configuration of network devices to support a UDP
multicast; a database connected to the server, wherein the server
queries the database for a list of clients, wherein the database
replies with a list of clients, wherein the server sends download
progress notification to all clients on the list using an assigned
port number from a UDP broadcast processor, wherein the download
progress notification is presented on the graphical user interface
display, and wherein the system enables any number of clients to be
on a different network domain than the server and still receive a
download progress notification message.
20. The system of claim 19, wherein the clients are control panel
applications.
21. The system of claim 20, wherein the control panel applications
are installed on control stations.
22. The system of claim 21, wherein the control stations are
utilized in a casino gaming environment.
23. The system of claim 21, wherein the control stations are
utilized for downloading and configuration of games and/or game
operating systems of connected gaming devices.
24. The system of claim 19, wherein the server is a Download and
Configuration Management (DCM) engine.
25. The system of claim 24, wherein the DCM engine communicates
with a database containing UDP multicast notification system
data.
26. The system of claim 24, wherein the DCM engine includes DCM
engine services, business libraries, and a data access layer.
27. The system of claim 26, wherein the DCM engine services include
user interface notification processor and a UDP broadcast
processor.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of U.S. patent
application Ser. No. 12/113,095 filed Apr. 30, 2008, entitled
DOWNLOAD PROGRESS MANAGEMENT GAMING SYSTEM, which is a
continuation-in-part of U.S. patent application Ser. No. 11/938,121
filed Nov. 9, 2007, entitled GAMING SYSTEM DOWNLOAD NETWORK
ARCHITECTURE, (Atty. Docket. No. 110184.454), which claims benefit
under 35 U.S.C. .sctn.119(e) to U.S. provisional patent application
Ser. No. 60/865,332, filed Nov. 10, 2006; and to U.S. provisional
patent application Ser. No. 60/865,550, filed Nov. 13, 2006. U.S.
patent application Ser. No. 12/113,095 is also a
continuation-in-part of U.S. patent application Ser. No. 11/938,228
filed Nov. 9, 2007 and entitled "GAMING SYSTEM CONFIGURATION CHANGE
REPORTING" (Atty. Docket. No. 110184.45401). U.S. patent
application Ser. No. 12/113,095 is also a continuation-in-part of
U.S. patent application Ser. No. 11/938,155 filed Nov. 9, 2007 and
entitled "REPORTING FUNCTION IN GAMING SYSTEM ENVIRONMENT" (Atty.
Docket. No. 110184.45402). U.S. patent application Ser. No.
12/113,095 is also a continuation-in-part of U.S. patent
application Ser. No. 11/938,190 filed Nov. 9, 2007 and entitled
"SECURE COMMUNICATIONS IN GAMING SYSTEM" (Atty. Docket. No.
110184.45403). U.S. patent application Ser. No. 12/113,095 is also
a continuation-in-part of U.S. patent application Ser. No.
11/938,163 filed Nov. 9, 2007 and entitled "METHODS AND SYSTEMS FOR
CONTROLLING ACCESS TO RESOURCES IN A GAMING NETWORK" (Atty. Docket.
No. 110184.45404), all of which are hereby incorporated by
reference in their entirety.
COPYRIGHT NOTICE
[0002] A portion of the disclosure of this patent document contains
material that is subject to copyright protection. The copyright
owner has no objection to the facsimile reproduction by anyone of
the patent document or the patent disclosure, as it appears in the
Patent and Trademark Office patent files or records, but otherwise
reserves all copyright rights whatsoever.
FIELD
[0003] This disclosure pertains generally to management systems and
methods. More particularly, this disclosure relates to a
computerized method and system for downloading gaming software and
configuring gaming machines.
BACKGROUND
[0004] Various networked gaming systems have been developed over
the years beginning at least in the 1980's. With acceptance and
utilization, users such as casino operators have found it desirable
to increase the computer management of their facilities and expand
features available on networked gaming systems. For instance, there
are various areas in the management of casinos that is very labor
intensive, such as reconfiguring gaming machines, changing games on
the gaming machines, and performing cash transactions for
customers.
[0005] Until recently, the gaming industry has been a collection of
proprietary systems and communication protocols. In many cases, a
casino had to buy the entire system (games, controllers, backend
systems, and the like) from one company. Most casinos would prefer
to use a mix of different manufacturer's games on the gaming floor,
and then pick the best backend system that suits their needs. Until
recently, this was not a realistic expectation.
[0006] A few years ago, several gaming entities formed the Gaming
Standards Association (GSA) to define standardized protocols by
which games, gaming controllers, and backend systems could
communicate. This allows interoperability of different
manufacturer's equipment, as well as giving the casinos the freedom
to choose whatever manufacturers they want for the various
components of a gaming system. One of the GSA protocols is the
Game-to-System (G2S) protocol, which is designed to define the
messages between a gaming machine and a backend system. This
protocol does include messages for handling software download and
configuration of the gaming machines.
[0007] The introduction of download and configuration capabilities
in the gaming environment creates considerable operational
challenges. Downloading typically requires a considerable volume of
gaming content to be transferred over the network. Many casinos are
open twenty four hours a day, seven days a week, which requires
downloading to take place necessary to limit download bandwidth, at
the expense of download time, in order to not overly tax the
network resources. Thus, a way of easily monitoring download
progress would be invaluable to casino operators.
[0008] In one configuration, a download system may be centralized
and "push" the data down to the games. In this case, the content
server knows how much has been downloaded at any time. However, in
a "pull" system, where the gaming devices are told where to go for
the data and the games are taking ("pulling") the data from the
content server, the server generally does not know how much data a
given game has downloaded. Thus, a way is needed for the games to
keep the download management system appraised of how far along they
are in the download process.
SUMMARY
[0009] In one aspect of the invention, a computerized download and
configuration server-based system and method for use with game
devices, systems, and methods is provided to enable users to
monitor, control, and modify game devices and other related
activities.
[0010] At least one embodiment may be summarized as a download and
configuration management system to manage a plurality of gaming
machines distributed throughout at least one casino property, the
download and configuration management system including a plurality
of download distribution points geographically distributed
throughout the at least one casino property; and a download and
configuration management server that is configured to determine a
relatively optimal one of the download distribution points for at
least one of the gaming machines and configured and communicatively
coupled to provide an indication to the at least one of the gaming
machines that indicates the relatively optimal one of the download
distribution points to be used by the at least one of the gaming
machines to download configuration instructions. Each of the
download distribution points may be a respective server. Each of
the download distribution points may also be a respective secured
server. The download distribution points may include a
computer-readable memory that stores a plurality of configuration
files, at least some of the configuration files including
executable instructions to be downloaded to selected ones of the
gaming machines that define the operation of any of the gaming
machines that execute the executable instructions.
[0011] The download distribution points may include a
computer-readable memory that stores a secured library of a
plurality of software packages that are downloadable to the gaming
machines and executable by the gaming machines to control operation
of the gaming machines. The download distribution points may
include a firewall. The download and configuration management
server may be configured to determine a relatively optimal one of
the download distribution points based at least in part on a
network location of the download distribution points with respect
to a network location of the at least one of the gaming machines.
The download and configuration management server may be configured
to determine a relatively optimal one of the download distribution
points based at least in part on an availability of the respective
ones of the download distribution points with respect to an
availability of other ones of the download distribution points. The
download and configuration management server may be configured to
determine a relatively optimal one of the download distribution
points based at least in part on a connection speed between
respective ones of the download distribution points and the at
least one gaming machine relative to a connection speed between
other ones of the download distribution points and the at least one
gaming machine.
[0012] The download and configuration management server may be
configured to determine a relatively optimal one of the download
distribution points for a collection of the gaming machines that
includes at least two different ones of the gaming machines. The
download and configuration management server may be configured to
provide the indication to the at least one of the gaming machines
that indicates the relatively optimal one of the download
distribution points to be used in the form of a port identifier and
an Internet protocol address. The plurality of download
distribution points may cache a plurality of packages of
instructions that are downloadable to the gaming machines to
configure the operation of the gaming machines, some of the
packages of instructions cached by less then all of the download
distribution points, and wherein the download and configuration
management server stores information indicative of which of the
packages of instructions are available on which of the download
distribution points.
[0013] At least one embodiment may be summarized as a method of
managing a plurality of gaming machines distributed throughout at
least one casino property including determining a relatively
optimal one of a plurality of download distribution points
geographically distributed throughout the at least one casino
property for at least one of the gaming machines; and providing an
indication to the at least one of the gaming machines that
indicates the relatively optimal one of the download distribution
points to be used by the at least one of the gaming machines to
download configuration instructions. The method of determining a
relatively optimal one of the download distribution points may
include determining the relatively optimal one of the download
distribution points based at least in part on a physical location
of the download distribution points with respect to a physical
location of the at least one of the gaming machines. The method of
determining a relatively optimal one of the download distribution
points may include determining the relatively optimal one of the
download distribution points based at least in part on an
availability of respective ones of the download distribution points
with respect to an availability of other ones of the download
distribution points. The method of determining a relatively optimal
one of the download distribution points may include determining the
relatively optimal one of the download distribution points based at
least in part on a connection speed between respective ones of the
download distribution points and the at least one gaming machine
relative to a connection speed between other ones of the download
distribution points and the at least one gaming machine.
[0014] The method of determining a relatively optimal one of the
download distribution points may include determining the relatively
optimal one of the download distribution points for a collection of
the gaming machines that includes at least two different ones of
the gaming machines. The method of determining a relatively optimal
one of the download distribution points may include determining the
relatively optimal one of the download distribution points based on
a combination of a connection speed between respective ones of the
download distribution points and the at least one gaming machine
relative to a connection speed between other ones of the download
distribution point and the at least one gaming machine and an
availability of respective ones of the download distribution points
with respect to an availability of other ones of the download
distribution points. The method of providing an indication to the
at least one of the gaming machines that indicates the relatively
optimal one of the download distribution points to be used by the
at least one of the gaming machines to download configuration
instructions may include providing an Internet protocol
address.
[0015] At least one embodiment may be summarized as a method of
managing a plurality of gaming machines distributed throughout at
least one casino property including caching at the plurality of
download distribution points a plurality of packages of
instructions that are downloadable to the gaming machines to
configure the operation of the gaming machines, some of the
packages of instructions cached by less then all of the download
distribution points; storing information at the download and
configuration management server indicative of which of the packages
of instructions are available at which of the download distribution
points.
[0016] At least one embodiment may be summarized as a gaming system
including a plurality of gaming machines distributed throughout at
least one casino property; a plurality of download distribution
points geographically distributed throughout the at least one
casino property; a download and configuration management server
that is configured to determine a relatively optimal one of the
download distribution points for at least one of the gaming
machines and configured and communicatively coupled to provide an
indication to the at least one of the gaming machines that
indicates the relatively optimal one of the download distribution
points to be used by the at least one of the gaming machines to
download configuration instructions.
[0017] The gaming system may further include at least one wide area
network communicatively coupling at least some of the gaming
machines, the download distribution points and the download and
configuration management server. The download distribution points
may include a respective server and a respective computer-readable
memory that stores a plurality of configuration files, at least
some of the configuration files including executable instructions
to be downloaded to selected ones of the gaming machines that
define the operation of any of the gaming machines that execute the
executable instructions. The download distribution points may
include a respective server including a firewall and a respective
computer-readable memory that stores a library of software packages
downloadable to and executable by the gaming machines. The download
distribution points may be configured to download specified game
information to the gaming machines over the wide area network via a
secure transmission protocol.
[0018] In one embodiment, a method is disclosed for sending a
notification message using a modified form of User Datagram
Protocol (UDP) multicast notification system in a client-server
architecture that otherwise allows only client initiated messages.
The method includes: identifying information at a server that has
potential for inclusion in a notification message; querying a
database for a list of clients that have registered for a
particular type of notification by a UDP broadcast processor;
replying with a list of clients that have registered for a
particular type of notification from the database; sending
notification to all clients on the list using an assigned port
number from the UDP broadcast processor.
[0019] In another embodiment, a method is disclosed for using a
modified form of User Datagram Protocol (UDP) multicast protocol to
implement a one-way notification system that includes: configuring
the UDP multicast notification system without requiring
configuration of network devices to support a UDP multicast;
enabling UDP messages to be sent only to registered clients without
broadcasting the UDP messages to all clients in the client-server
architecture; and enabling any number of clients to be on a
different network domain than the server.
[0020] Further aspects, features and advantages of various
embodiments of the invention will be apparent from the following
detailed disclosure, taken in conjunction with the accompanying
sheets of drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
[0021] In the drawings, identical reference numbers identify
similar elements or acts. The sizes and relative positions of
elements in the drawings are not necessarily drawn to scale. For
example, the shapes of various elements and angles are not drawn to
scale, and some of these elements are arbitrarily enlarged and
positioned to improve drawing legibility. Further, the particular
shapes of the elements as drawn, are not intended to convey any
information regarding the actual shape of the particular elements,
and have been solely selected for ease of recognition in the
drawings.
[0022] FIG. 1 is a block diagram of a slot management system,
according to one illustrated embodiment.
[0023] FIGS. 2A(1)-2A(2) are a context diagram of operation of a
download configuration server system according to one illustrated
embodiment.
[0024] FIG. 2B is a tiered layer diagram of a download and
configuration system architecture, according to one illustrated
embodiment.
[0025] FIGS. 2C(1) and 2C(2) are a block diagram showing various
components of a download and configuration system architecture,
according to one illustrated embodiment.
[0026] FIG. 2D is a schematic diagram of a download and
configuration network, according to one illustrated embodiment.
[0027] FIG. 2E is a schematic diagram showing a download and
configuration network, according to one illustrated embodiment.
[0028] FIG. 3 is a flow diagram showing a download and
configuration user tree logic, according to one illustrated
embodiment.
[0029] FIG. 4 is a flow diagram showing a download and
configuration user tree logic to manage a package library (SDDP),
according to one illustrated embodiment.
[0030] FIG. 5 is a flow diagram showing a download and
configuration user tree logic to manage downloads, according to one
illustrated embodiment.
[0031] FIG. 6 is a flow diagram showing a download and
configuration user tree logic to edit download assignments,
according to one illustrated embodiment.
[0032] FIG. 7 is a flow diagram showing a download and
configuration user tree logic to manage a collection, according to
one illustrated embodiment.
[0033] FIG. 8 is a flow diagram showing a download and
configuration user tree logic to download views, according to one
illustrated embodiment.
[0034] FIG. 9 is a flow diagram showing a download and
configuration user tree logic to manage configurations, according
to one illustrated embodiment.
[0035] FIG. 10 is a flow diagram showing a download and
configuration user tree logic to edit configuration assignments,
according to one illustrated embodiment.
[0036] FIG. 11 is a flow diagram showing a download and
configuration user tree logic of various configuration views,
according to one illustrated embodiment.
[0037] FIG. 12 is a flow diagram showing a download and
configuration user tree logic to manage reports, according to one
illustrated embodiment.
[0038] FIG. 13 is a flow diagram showing a download and
configuration user tree logic to interact with various electronic
game machines (EGMs) 213, according to one illustrated
embodiment.
[0039] FIG. 14 is a flow diagram showing a download and
configuration user tree logic to execute configuration jobs,
according to one illustrated embodiment.
[0040] FIG. 15 is a flow diagram showing a download and
configuration user tree logic to execute download jobs, according
to one illustrated embodiment.
[0041] FIG. 16 is a flow diagram showing a method of handling
download and configuration messages, according to one illustrated
embodiment.
[0042] FIG. 17 is a flow diagram showing a method of downloading
packages, according to one illustrated embodiment.
[0043] FIG. 18 is a block diagram showing various components of a
DCL control panel, according to one illustrated embodiment.
[0044] FIG. 19 is a block diagram showing a download handler,
according to one illustrated embodiment.
[0045] FIG. 20 is a block diagram showing a configuration handler,
according to one illustrated embodiment.
[0046] FIG. 21 is a block diagram illustrating a scheduler service,
according to one illustrated embodiment.
[0047] FIG. 22 is a block diagram illustrating a user interface
download Web service, according to one illustrated embodiment.
[0048] FIG. 23 is a block diagram illustrating a user interface
configuration Web service, according to one illustrated
embodiment.
[0049] FIG. 24 is a block diagram illustrating a scheduler Web
service, according to one illustrated embodiment.
[0050] FIG. 25 is a block diagram showing an executive unit,
according to one illustrated embodiment.
[0051] FIG. 26 is a block diagram illustrating a download handler
Web service, according to one illustrated embodiment.
[0052] FIG. 27 is a block diagram illustrating an option
configuration handler Web service, according to one illustrated
embodiment.
[0053] FIG. 28A is a flow diagram illustrating a method of viewing
packages, according to one illustrated embodiment.
[0054] FIG. 28B is a flow diagram illustrating a method of viewing
package modules, according to one illustrated embodiment.
[0055] FIG. 28C is a flow diagram illustrating a method of viewing
package management logs, according to one illustrated
embodiment.
[0056] FIG. 29 is a flow diagram illustrating a method of creating
a download assignment, according to one illustrated embodiment.
[0057] FIG. 30 is a flow diagram illustrating a method of creating
a configuration assignment, according to one illustrated
embodiment.
[0058] FIG. 31 is a flow diagram illustrating a method of
initiating a package installation, according to one illustrated
embodiment.
[0059] FIG. 32 is a flow diagram illustrating a method of editing a
download assignment, according to one illustrated embodiment.
[0060] FIG. 33 is a flow diagram illustrating a method of editing a
configuration assignment, according to one illustrated
embodiment.
[0061] FIG. 34 is a flow diagram illustrating a method of
performing an EGM configuration discovery, according to one
illustrated embodiment.
[0062] FIG. 35 is a flow diagram illustrating a method of
performing an EGM download discovery, according to one illustrated
embodiment.
[0063] FIG. 36 is a flow diagram illustrating a method of obtaining
a configuration, according to one illustrated embodiment.
[0064] FIG. 37 is a flow diagram illustrating a method of
refreshing an inventory, according to one illustrated
embodiment.
[0065] FIG. 38 is a flow diagram illustrating a method of obtaining
an inventory job, according to one illustrated embodiment.
[0066] FIG. 39 is a flow diagram illustrating a method of setting
configuration changes jobs, according to one illustrated
embodiment.
[0067] FIG. 40 is a flow diagram illustrating a method of
cancelling an option change, according to one illustrated
embodiment.
[0068] FIG. 41 is a flow diagram illustrating a method of
performing an unsolicited options list, according to one
illustrated embodiment.
[0069] FIG. 42 is a flow diagram illustrating a method of
performing an unsolicited options change status, according to one
illustrated embodiment.
[0070] FIG. 43 is a flow diagram illustrating a method of
downloading a package, according to one illustrated embodiment.
[0071] FIG. 44 is a flow diagram illustrating a method of
installing a package, according to one illustrated embodiment.
[0072] FIG. 45 is a flow diagram illustrating a method of canceling
a pending download of a package, according to one illustrated
embodiment.
[0073] FIG. 46 is a flow diagram illustrating a method of
scheduling a job execution, according to one illustrated
embodiment.
[0074] FIG. 47A is a flow diagram illustrating a method of managing
packages, according to one illustrated embodiment.
[0075] FIG. 47B is a flow diagram illustrating a method of
performing a package management system configuration, according to
one illustrated embodiment.
[0076] FIGS. 48A-48L are a block diagram of a download ERD,
according to one illustrated embodiment.
[0077] FIGS. 49A-49I are a block diagram of a configuration ERD,
according to one illustrated embodiment.
[0078] FIG. 50 is a block diagram of a schedule ERD, according to
one illustrated embodiment.
[0079] FIG. 51A is a screen print of a download and configuration
control panel, according to one illustrated embodiment.
[0080] FIG. 51B is a screen print of a login control panel,
according to one illustrated embodiment.
[0081] FIG. 51C is a screen print of a change login password
control panel, according to one illustrated embodiment.
[0082] FIG. 51D is an EGM navigation control panel, according to
one illustrated embodiment.
[0083] FIG. 51E is a screen print of a collection navigator control
panel, according to one illustrated embodiment.
[0084] FIG. 51F is a screen print of an assignment navigator
control panel, according to one illustrated embodiment.
[0085] FIG. 51G is a screen print of a manual override control
panel, according to one illustrated embodiment.
[0086] FIG. 51H is a screen print of an inventory control panel,
according to one illustrated embodiment.
[0087] FIG. 51I is a screen print of a search, query and display
control panel, according to one illustrated embodiment.
[0088] FIG. 51J is a screen print of an activity log query and
display control panel, according to one illustrated embodiment.
[0089] FIG. 52A is a screen print of a download wizard control
panel to assist in choosing EGMs, according to one illustrated
embodiment.
[0090] FIG. 52B is a screen print of a download wizard control
panel assist in choosing packages, according to one illustrated
embodiment.
[0091] FIG. 52C is a screen print of a download wizard control
panel assist in scheduling changes, according to one illustrated
embodiment.
[0092] FIG. 52D is a screen print of a download wizard control
panel assist in reviewing assignments, according to one illustrated
embodiment.
[0093] FIG. 53A is a screen print of a configuration assignment
wizard control panel assist in choosing EGMs, according to one
illustrated embodiment.
[0094] FIG. 53B is a screen print of a configuration assignment
wizard control panel assist in choosing options, according to one
illustrated embodiment.
[0095] FIG. 53C is a screen print of a configuration assignment
wizard control panel assist in choosing game options, according to
one illustrated embodiment.
[0096] FIG. 53D is a screen print of a configuration assignment
wizard control panel assist in making schedule changes, according
to one illustrated embodiment.
[0097] FIG. 53E is a screen print of a configuration assignment
wizard control panel assist in choosing reviewing assignments,
according to one illustrated embodiment.
[0098] FIG. 54A is a screen print of a floor layout control panel,
according to one illustrated embodiment.
[0099] FIG. 54B is a screen print of a schedule control panel,
according to one illustrated embodiment.
[0100] FIG. 54C is a screen print of a task lists control panel,
according to one illustrated embodiment.
[0101] FIG. 55 is a screen print of an exemplary casino floor
display, according to one illustrated embodiment.
[0102] FIG. 56 is a schematic diagram of a casino network including
corporate, back-office and floor networks, according to one
illustrated embodiment.
[0103] FIG. 57 shows a method of operating a download and
configuration management system to manage a plurality of gaming
machines distributed throughout at least one casino property,
according to one illustrated embodiment.
[0104] FIG. 58 shows a method of operating a download and
configuration management system to manage a plurality of gaming
machines distributed throughout at least one casino property,
according to one illustrated embodiment.
[0105] FIG. 59 shows a method of operating a download and
configuration management system to manage a plurality of gaming
machines distributed throughout at least one casino property,
according to one illustrated embodiment.
[0106] FIG. 60 shows a method of operating a download and
configuration management system to manage a plurality of gaming
machines distributed throughout at least one casino property,
according to one illustrated embodiment.
[0107] FIG. 61 shows a method of operating a download and
configuration management system to manage a plurality of gaming
machines distributed throughout at least one casino property,
according to one illustrated embodiment.
[0108] FIG. 62 shows a method of operating a download and
configuration management system to manage a plurality of gaming
machines distributed throughout at least one casino property,
according to one illustrated embodiment.
[0109] FIG. 63 shows a method of operating a download and
configuration management system to manage a plurality of gaming
machines distributed throughout at least one casino property,
according to one illustrated embodiment.
[0110] FIG. 64 shows a method of operating a download and
configuration management system to manage a plurality of gaming
machines distributed throughout at least one casino property,
according to one illustrated embodiment.
[0111] FIG. 65 illustrates a typical client-server architecture
system with multiple clients requesting information from a server,
in which a UDP multicast notification system enables UDP
notification messages to be sent reporting that a change has
occurred to database table-1 and database table-4.
[0112] FIG. 66 illustrates the UDP multicast notification system of
FIG. 65 being used to send job status updates to BCP clients 2 and
"n."
[0113] FIG. 67 illustrates a UDP Broadcast Processor displayed as
one component in the DCM engine.
[0114] FIG. 68 illustrates the client registration process in a UDP
multicast notification system.
[0115] FIG. 69 illustrates the process of sending a notification
message in a UDP multicast notification system.
[0116] FIG. 70 illustrates the process of un-registering a client
from the UDP multicast notification system.
[0117] FIG. 71 illustrates the UDP multicast notification system of
being used to send individual client download progress and total
download progress.
DETAILED DESCRIPTION
[0118] In the following description, certain specific details are
set forth in order to provide a thorough understanding of various
disclosed embodiments. However, one skilled in the relevant art
will recognize that embodiments may be practiced without one or
more of these specific details, or with other methods, components,
materials, etc. In other instances, well-known structures
associated with computing systems, networks including servers,
routers, bridges, firewalls, etc., and gaming devices including
electronic gaming machines have not been shown or described in
detail to avoid unnecessarily obscuring descriptions of the
embodiments.
[0119] Unless the context requires otherwise, throughout the
specification and claims which follow, the word "comprise" and
variations thereof, such as, "comprises" and "comprising" are to be
construed in an open, inclusive sense, that is as "including, but
not limited to." Reference throughout this specification to "one
embodiment" or "an embodiment" means that a particular feature,
structure or characteristic described in connection with the
embodiment is included in at least one embodiment. Thus, the
appearances of the phrases "in one embodiment" or "in an
embodiment" in various places throughout this specification are not
necessarily all referring to the same embodiment. Further more, the
particular features, structures, or characteristics may be combined
in any suitable manner in one or more embodiments.
[0120] As used in this specification and the appended claims, the
singular forms "a," "an," and "the" include plural referents unless
the content clearly dictates otherwise. It should also be noted
that the term "or" is generally employed in its sense including
"and/or" unless the content clearly dictates otherwise. The
headings and Abstract of the Disclosure provided herein are for
convenience only and do not interpret the scope or meaning of the
embodiments.
[0121] FIG. 1 shows slot management system 101, according to one
illustrated embodiment. One conventional gaming machine management
system is the XYZ One System, which is designed to provide
essential functionality for gaming facilities. The present example
embodiment provides for a unified gaming machine management system
that offers the full feature sets which are desirable for a Class
III casino floor with a rich gaming environment and providing the
flexibility to mix Class II and Class III machines on the same
gaming floor. To accommodate this unification, many features and
functions are needed to provide a robust functional capability. In
the example embodiment, an architectural framework is provided that
enables the addition of modules and functionality. Slot management
system 101 may use standards based communications protocols, such
as HTTP, XML, SOAP, SSL. Slot management system 101 may be a
scaleable system, which may advantageously employ off-the-shelf
components, such as conventional servers and storage devices. Slot
management system 101 may utilize standard user interfaces for all
system front ends, such as a display, keyboard, mouse, and
conventional windows software. An example front-end may be a
management terminal (server) 103 from which an operator can utilize
a user interface to communicate with player account system server
105 and review and/or modify player information contained in a
player database managed by player account system server 105. Slot
management system 101 may use standardized authentication,
authorization and/or verification protocols, which may be
implemented and/or controlled by a server-to-server (S2S) server
107 which enables the secure communication of data and information
between the respective servers within the slot management system
101. Third party interface 109 may further provide for the
incorporation of third party servers and storage devices, such as
IGT/Rocket server 111 and Gaming Database 113, using the
standardized authentication, authorization and verification
protocols. Slot management system 101 may support a wide range of
promotional tools to enable various promotional and marketing
programs which may be used in conjunction with casino market place
server 115, such as a CMP, or another system gaming subsystem. Slot
management system 101 includes transaction server 117, for example
an iView transaction server that communicates with iView
apparatuses which are incorporated with gaming machines connected
to the network, where iView apparatuses include a secondary display
connected to a motherboard including a microprocessor or
controller, memory, and selected communication, player, and/or
gaming software, such as a conventional video wagering game or
multi-media presentations which may be enabled by a player, the
gaming machine, or the slot management system. It may be
appreciated that transaction server 117 can be designed to drive
and communicate with other network connected apparatuses having a
display and user interface. In the contemplated embodiments, the
networked apparatuses, such as the iView apparatuses, are
incorporated with slot management system 101 to multi-task as both
a presentation engine and a game management unit (GMU). To provide
flexibility, slot management system 101 utilizes open standard GSA
(Gaming Standards Association) protocols for ease of integrating
various manufacturers devices and a windows-based system for ease
of operators (users) in programming and obtaining data from, and
adding data to the system.
[0122] FIGS. 2A(1)-2A(2) show operation of a download and
configuration server system 201, according to one illustrated
embodiment.
[0123] The download and configuration server system 201 includes
control station 203, which may include a display and a user
interface. The download and configuration server system 201 may
also include a download and configuration services block 205
(including for example a download server or Web accessible service,
a download handler server or Web accessible service, a
configuration server or Web accessible service, an option
configuration server or Web accessible service, a scheduler server
or Web accessible service and a scheduler server or Web accessible
service). The download and configuration server system 201 may
further include a download and configuration database block 207,
which may include, for example, conventional storage depositories
such as a download database 227, a schedule database 229, and a
configuration database 228. The download and configuration server
system 201 may additionally include a network components block 209,
for example, conventional hardware and software to support HS 260,
MSMQ, and DNS, a SQL report server, an active directory 245, a
certificate server, a download library 234, and an SDDP (Software
Download Distribution Point) 252. The download and configuration
server system 201 may further include a Game-to-Server (G2S) host
block 211, that may, for example, include a download handler 233,
an executive service 220, an option configuration handler 232, a
G2S engine 280, a delivery agent, and a G2S Web accessible service.
The download and configuration server system 201 may even further
include an electronic game machine (EGM) block 213, that may, for
example, include a facility floor of network connected gaming
machines and tables which may each include an iView or similar
product features and/or a gaming management processor unit which
are individually identifiable and addressable over the network. The
referenced Web services may utilize a secure HTTPs transmission
protocol used to communicate with the slot management service and
vice-versa. The system 201 may operate using Web protocol and Web
services to serve information and process transactions, in contrast
to serving Web pages in the traditional sense.
[0124] Download and configuration server system 201 enables the
transmission of software files, packages or modules to one or more
clients, such as gaming machines or gaming tables, via, for
example, a casino network using the Gaming Standard Association's
(GSA's) Game to System (G2S) message protocols. The configuration
portion of server system 201 enables the selecting of specific
settings and options on one or more clients using GSA's G2S message
protocols, such as to modify the Alpha operating system on
conventionally available gaming machines or third party gaming
machine or table operating systems. The respective subsystems of
server system 201 communicatively couple to control station 203.
The control station 203 includes a common user interface
application, such as a control panel (e.g., Bally Control Panel 216
or BCP 216) software application, so that a user can request data
and issue commands for the processing of download and configuration
operations throughout the network.
[0125] Download and configuration server system 201 provides for
the following G2S download class features: 1) the G2S download
class provides a standardized protocol to manage the downloaded
content on all G2S compliant gaming machines or tables (i.e., EGMs
213) from all G2S compliant host systems; 2) the G2S download class
enables installation of downloaded packages; 3) the G2S download
class enables the removal of software (uninstall); 4) the G2S
download class enables scheduling of installation and/or removal of
software including enabling scheduling options that relate to a
specific time, EGM state, or interaction with a host server or
technician; 5) the G2S message class supports reading an inventory
of downloaded packages and installed modules, which provides the
capability to effectively manage the content on the EGM 213; and 6)
the G2S message class enables recording transaction logs for
packages and scripts on a transaction database accessible through
control station 203. This feature provides an audit capability or
transaction tracer for determining how content came to be on an EGM
213.
[0126] Download and configuration server system also provides the
following G2S option configuration (optionConfig) class features
which allows for the selection of various configuration options: a)
the optionConfig class provides a convenient and efficient
mechanism to remotely configure EGMs 213 and b) the G2S
optionConfig class provides for downloading options available from
within an EGM 213.
[0127] Download and Configuration server system 201 implemented G2S
classes (optionConfig, download, and scheduler) are also
integratable through secondary displays, such as the iView, by
incorporating, for example an iView transaction server. Thus,
download, configuration, and configuration options may be
implemented at selected EGMs 213 through their respective Main
Processor Unit (MPU) or through iViews. In the case of using the
iViews for network communications, a separate processor board is
provided along with a display and user interfaces. Communication
channels are connectable between the iViews and the MPU to enable
the download, configuration, and configuration option processes.
Some definitions of terms and components follow:
[0128] Databases--The databases return information based on the
results of a stored procedure call. For example, the following
databases, which are descriptively named, may be utilized: Core;
Configuration; Download; Activity; and Schedule.
[0129] Control panel 216 (BCP)--As an example, the control panel
application, such as a BCP 216, can be a smart client implemented
on control station 203 encapsulating all the functionality to
support the command and control portions of the download and
configuration features of a facility or facilities. Downloads and
configuration options can be remotely scheduled or deployed
immediately by a user through control station 203. Notifications,
approvals, searches, and reports produced through server system 201
can be viewed by a user through a display or by hardcopy provided
by a printer connected to control station 203.
[0130] Control station 203 can be utilized for remote downloading
and configuration of games and game operating systems of connected
EGMs 213. Also, control station 203 can be utilized to download
content to or to configure the iView (or similar components) and
second game displays or monitors (for instance, in cases in which
an EGM 213 has two or more major displays) (which may also include
an additional processor unit such as for example in the case of
multiple games operable on a single EGM 213 on separate displays),
as well as peripheral software for components in the games like
bill validators and ticket printers.
[0131] Control station 203 can be utilized for the throttling of
system resources based on the requested changes. For example if the
user requests several high bandwidth consuming jobs be initiated
concurrently, the control station 203 would advise the user that
this would utilize more than allocated bandwidth and require
changes to the proposed schedule. It is also contemplated that the
control station 203 could recommend changes to the schedule to ease
the work requirement for the user.
[0132] Control station 203 can be utilized for the broad based
change to gaming floors to support special events. For example on
Halloween a specialized background or theme could be downloaded or
configured on all capable games and devices for the duration of the
event. This concept can be further extended to enabling specialized
bonus games on other player centric activities relating to the
special event or holiday. This allows a user of control station 203
to fully customize the property without the manual effort required
with current systems and technologies.
[0133] Control station 203 can be utilized to fully view in a
graphical fashion gaming floor configurations that have occurred in
the past or are proposed for the future. This allows the user of
control station 203 to easily and quickly compare past gaming floor
configurations to configurations proposed for the future in an easy
to understand graphical manner. It is contemplated that these
configurations be animated in a manner that realistically depicts
the activity on the gaming floor over a period of time allowing the
user of control station 203 to visually assess the impact of the
proposed changes.
[0134] Control station 203 can be utilized to view machine
utilization information over time to determine where certain groups
of players spend their time while at a property. For example if
certain demographic groups are inclined to utilize gaming machines
configured at $0.25 per play and this control station 203
capability can illustrate the fact that during certain times of the
day this gaming machine configuration is completely utilized and
that a large group of this demographic is scheduled to visit the
property, the casino manager could opt to enable more of this type
of game so players are not waiting for an opportunity to play. It
is contemplated that this feature is presented in an animated
fashion such that the user of control station 203 may select a date
range and analyze in real time game usage by time of day and by
player demographic. This feature also requires control station 203
have access to, and the capability of processing, information from
the player marketing system or have access to a data stream feeding
the player marketing system.
[0135] Control station 203 has the capability to allow groups of
gaming machines to be identified and operated upon via a number of
query options. This aids the user in quickly and effectively
finding the gaming machines to apply changes. It is contemplated
that advanced selection criteria such as performance over the last
30 days be considered as a query parameter. The control station 203
can provide the capability to utilize a graphical representation of
the gaming floor. This allows selected groups of games to be
graphically represented on a floor map as well as in a list
form.
[0136] Control station 203 can utilize historical slot game
performance data to provide guidance for new floor configuration
options. The historical data may be accessed in the download system
data stores or from an external business intelligence system. It is
contemplated that the control station 203 may be programmed to
allow for automated floor configuration changes based on the
historical performance data. This capability may be applied
automatically or via an interface requiring only approval from the
user prior to applying the changes.
[0137] Database Web Services--These are World-Wide Web (Web)
services that are conventionally available to be re-used by other
user interfaces and service applications connected to slot
management system 101. In other words, this is a secure closed
system network using Web services connected on demand with the slot
management system 101 (FIG. 1).
[0138] Handlers--These are the logic libraries that are responsible
for executing the business logic of the system.
[0139] Network Components--The following list of network
components, or portions thereof, may be implemented and/or required
by the download and configuration server system 201: Certificate
Server; DNS; DHCP, Application Firewalls, Hardware Firewalls,
Network Load Balancers.
[0140] Third Party Software Applications--the following list of
3.sup.rd party applications my be utilized or required by the
server system 201: IIS 260, MSMQ, SQL Server, SQL Server Reporting
Services, Active Directory 245, Microsoft Windows 2003 Server.
[0141] G2S Engine 280--This service will receive G2S messages
directly from EGMs 213 and dispatch them to the respective
subsystem of server system 201 based on the message component
type.
[0142] EGMs 213--Electronic Gaming Machines, which may include
gaming tables with processor and/or display components.
[0143] iView--For example, a conventional apparatus providing a
player or employee user interface and display at EGMs 213 connected
to the network including the player tracking server and enabling a
player or employee to request and receive information, to receive
award notifications, to transfer credits, and to conduct such
activities through the apparatus as is enabled on slot management
system 101. One usage of an iView-type apparatus may be to display
marketing and player tracking information and various shows on the
occurrence of an award or win by a player. Such apparatuses may
also allow gaming, such as with server-based games or even
independent games stored on their respective processor boards.
Thus, separate games may be implemented through the iView-type
device, apart from the main game of EGM 213 controlled by the MPU.
In turn, the content of the iView may be separately modified as
through downloads or configurations or configuration options.
[0144] Control station 203 is able to retrieve from the database
and view all login attempts to the server both successful and
failed. A user may be locked out of access to the control panel
application at control station 203 after too many failed login
attempts. The recorded transaction log may include the login ID,
data, time of login and duration.
[0145] The Web services may support functionality between control
station 203 and database block 207. The Web services may also
support unsolicited messages between the G2S handlers and control
station 203.
[0146] Server system 201 may maintain a record or transaction log
of login attempts to the server both successful and failed. The log
may include the login ID, data, time of login and duration. Server
system 201 may also maintain a transaction record or log of all
events and activity occurring on server system 201. The log may
include a record of which login session in which the event
occurred.
[0147] Server system 201 may also maintain a log of communication
events with any EGM 213. Server system 201 may also maintain the
status of each EGM 213 including: game history data; download
status (available, requested, downloading, applied, rejected);
package information (available for install, requested, being
downloaded, downloaded, installed); hardware information; software
module information; and/or error conditions.
[0148] The configuration and download server system 201 may
dynamically build packages to be downloaded based on EGM 213
inventory and available updates, fixes and new data for EGMs 213.
The configuration and download server system 201 may verify
requests from EGM 213 including whether or not the EGM 213 is valid
and is in a functional or operational state to make the request.
All requests may be logged and contain the requesting EGM 213
identifier, time and date, specific request, and EGM 213
operational status. The configuration and download server system
201 may communicate with Software Distribution Point servers (SDDP)
252 to maintain a list of packages that are available for supported
EGMs 213. The configuration and download server system 201 may
supply the location of the SDDP 252 when instructing an EGM 213 to
add a package. The configuration and download server system 201 may
verify that all required hardware and software for a package to be
sent to an EGM 213 exists before instructing EGM 213 to retrieve
the package. The configuration and download server system 201 may
support multiple EGMs 213 in multiple sites and/or facilities and
EGMs 213 produced by multiple manufacturers. The configuration and
download server system 201 may verify that a software package can
be installed on a selected EGM 213 before instructing EGM 213 to
add a package. Such verification may, for example, use information
in the package header and information stored about selected EGM
213. The configuration and download server system 201 may be able
to track which packages are installed on any given EGM 213 and
verify the data by requesting a selected EGM 213 to send package
install information. The configuration and download server system
201 may report bad images and errors and log them when failed
package installation information is received from an EGM 213. The
configuration and download server system 201 and SDDP 252 may be
used to control all network pacing, bandwidth, error recovery, and
monitoring. The configuration and download server system 201 may be
used to maintain the location of all SDDP 252 and the packages
available on each.
[0149] Software Download Distribution Point (SDDP 252) server may
be utilized to maintain all downloaded software packages in a
secure library with the required number of secure backups defined
by a jurisdiction. The SDDP server 252 may be used to restrict
access to the library that stores all software download packages to
only authorized personnel. The access may limit access, such as to
only allow write access to those authorized to add, delete, and
update packages and read access for all others authorized to access
the library. The SDDP server 252 may provide secure software level
firewalls to restrict access to everything saved on the server. The
SDDP server 252 may maintain a log of login attempts to the server
both successful and failed. The log may include the login ID of a
user, data, time of login and duration. The SDDP server 252 may
maintain a log of all events and activity occurring on server
system 201. The log may include which login session in which an
event occurred.
[0150] Software packages added to the software library may be
verified from the package data using an MD5 or SHA1 hashing
algorithm to validate the data or some other verification tool. The
verification string may be added to a package header and used to
re-verify the package when it is downloaded to the EGM 213.
[0151] All verification failures and related errors may be logged
and the log entry may contain the date and time, the ID of the
person running the process at the time, and the specific type of
error that occurred. They may also be displayed on the correct
display area.
[0152] The SDDP server 252 may be utilized to provide selected EGMs
213 with the communications port location and IP address used for
sending software package data to the EGM 213. All data within a
download package may be compressed using conventional compression
techniques and transmitted in compressed format. On receipt, EGM
213 may decompress the downloaded software package.
[0153] FIG. 2B shows a tiered layer architecture of a download and
configuration system according to one illustrated embodiment.
[0154] A presentation layer 214 may include the control panel
application 216. The control panel application 216 is loaded on
control station 203 (FIGS. 2A(1)-2A(2)) which provides a user
interface and display through which the download and configuration
portion of the slot management system 101 (FIG. 1) is managed.
[0155] A business logic layer 218 may include G2S Host 219, which
may include G2S engine 280 components. G2S Host 219 may be used to
send and receive G2S protocol messages to and from EGMs 213 and
other configurable devices. G2S Host 219 may also be used for the
packaging and unpackaging of the internal system messages and G2S
protocol messages. The business logic layer 218 may also comprise
of Download and Configuration logic libraries, Executive Service
220, and the Scheduler Service 221 which are responsible for
implementing the Business Logic of the system.
[0156] A data access layer 222 may be comprised of Web Services
223, which may be used to enable methods and/or processes for
interacting with a data layer 224. A network services layer 225
provides network services 226.
[0157] The data layer 224 may comprise various databases, for
example a download database 227, configuration database 228,
schedule database 229, activity database 230, and core database
231, as may be useful for storing download and configuration system
data.
[0158] EGM layer 212 may comprise the EGMs 213 and other
configurable components like iViews and game controllers.
[0159] FIGS. 2C(1) and 2C(2) show a componentization of a download
and configuration system, according to one illustrated
embodiment.
[0160] The presentation layer includes the control panel
application 216. The control panel application 216 may be loaded on
control station 203 which may include a user interface and display
for user to manage the download and configuration server system
201.
[0161] The business logic layer includes Download Service and
Logging. The Logging library may be used to store job logs and may
include storing error and debug logs.
[0162] The scheduler 221 may implement the shared base classes for
assignments and jobs, maintain the job queues, and/or provide
execution contexts for host-originated activities. The scheduler
221 may also include upkeep (e.g., flush) of outdated job and job
log entries.
[0163] G2S Host core 219 may provide the mechanisms to separate
protocol specifics from application logic. G2S Host core may
receive information from the application libraries (e.g.,
Configuration), and may be utilized to implement the interfaces
that application and protocol components require to fulfill their
needs.
[0164] An option configuration handler 232 may be utilized to
implement the G2S class's specific to the Option Configuration
context.
[0165] A download handler 233 may be utilized to implement the G2S
class's specific to the download context.
[0166] A download library 234 may be part of the library of
software packages available for download to EGM's 213.
[0167] The SDDP 252 may be comprised of a Website responsible for
downloading software packages to EGMs 213.
[0168] The data access layer 222 may connect Web-based structure
and services with the download database 227. The data access logic
required for the download and configuration system 201 to interact
with the download database 227 may be contained within the
download
[0169] Web service 236 (FIG. 2B). The download Web service 236 may
also provide structure and services for communicating download
commands, such as between the BCP 216 and a download handler 237
via the executive component 220 (e.g., via an executive Web service
240).
[0170] A configuration Web service 238 (FIG. 2B) may provide
Web-based structure and services allowing the interaction with the
configuration database 228. The data access logic required for the
download and configuration system 201 to interact with the
configuration database 228 may be contained within the
configuration Web service 238. The configuration Web service 238
may also provide Web-based structure and service for communicating
configuration commands, such as between the BCP 216 and a
configuration handler 239 via the executive component 220 (e.g.,
via the executive Web service 240).
[0171] A scheduler Web service 241 (FIG. 2B) may provide Web-based
structure and services to consuming components to allow the
interaction with the schedule database 229. The data access logic
required for the configuration and download system 201 to interact
with the schedule database 229 may be contained within the
scheduler Web service 241.
[0172] A core Web service 242 may provide Web-based structure and
services to consuming components to allow the interaction with the
core database 231. The data access logic required for the system to
interact with the core database 231 may be contained within the
core Web service 242.
[0173] An activity Web service 243 may provide Web-based structure
and services to consuming components to allow the interaction with
the activity database 230. The data access logic required for the
system to interact with the activity database 230 may be contained
within the activity Web service 243.
[0174] A security Web service 244 may provide Web-based structure
and services to consuming components to allow the interaction with
active directory 245 for security purposes (e.g., authentication,
verification, encryption, etc.). The security Web service 244 may
be used as a Web based interface for retrieving and storing
security data in the active directory 245 or other directories,
databases or other security repositories.
[0175] At the Data layer 224, the configuration schema may
implement the configuration database 228; download schema may
implement the download database 227; activity schema may implement
the logging database 230; core schema may implement the translator
or core 231 database; and schedule schema may implement the
schedule database 229.
[0176] FIGS. 2D and 2E show a download and configuration server 15
system network according to one illustrated embodiment.
[0177] Download and configuration server network 201 is a portion
of slot management system 101 which provides a suite of subsystems
designed to provide customizable solutions by allowing users to
select products within the suite to meet their needs for particular
facilities, such as a casino manager seeking to manage single or
multiple properties. Download and Configuration (Download and
Config) are two of the subsystems offered in the suite that
provides a user, such as the Slot Operations staff, an efficient
mechanism to remotely configure electronic gaming machine (EGM)
213.
[0178] The Download and Config Software utilized together with the
apparatuses as shown in the figures may be used to enable a casino
Slot Operations staff to schedule and change a game(s) on the
casino floor from a keyboard.
[0179] Using the Control Panel (BCP) interface 203, the staff may
be able to schedule, configure, download and activate changes to
games on the floor, without touching an EGM 213 on the floor.
Download and Config software application may be loaded on control
station 203 to enable the sending of information over the casino
network using G2S & HTTPS standardized message protocols that
manage the downloaded content. From control station 203, a user,
such as casino staff, can change cabinet or game options, or games
in EGMs 213. There are numerous selections that the staff can
schedule to configure or make a minor change. Some examples of the
types of software that may be downloaded or options which may be
re-configured are:
TABLE-US-00001 Cabinet Options Game Options Download Options Sound
Game/Theme Change a game, theme, &/or Reel spin speed Paytable
paytable Background color Denomination Change game operating system
Attract mode
[0180] In order to implement the download and configuration
features, one approach is to install slot management system 101 at
a facility, such as, for example, the Live slot management system
101. The implementation of the download and configuration features
further contemplates the implementation of server hardware and
related equipment as shown in the figures, and particularly FIGS.
2A(1)-2E, including software to perform the needed functions for
communicating relevant data and instructions, the implementation of
download ready EGMs 213, such as EGMs 213 with an Alpha operating
system with remote download and configuration capability. An
example system for implementing the download and configuration
network 201 may be a XYZ One System together with the Live Floor
program. Another example implementation of the Download and
Configuration server network 201 may be in conjunction with other
slot management systems incorporating the Live Core program.
[0181] An example process for using the download and configuration
server 25 network 201 is as follows: A casino operator decides to
change game themes on the Alpha V20D-20 EGMs 247. The software game
themes are located on the SDDP Server 252. The Download management
tools are located on the Application/Database Server System 251.
One or more servers separate from the SDDP Server 252 contain the
game theme software, such as for security or redundancy purposes.
The Alpha EGMs 247 are identified on the casino floor using the BCP
216. A Download management tool, such as the BCP scheduler may be
used through a menu to identify: the date and time to download the
game packages; the game packages to send to the specific EGMs 213;
the date and time to automatically activate the games on the EGMs
213 after the download. At the selected date and time, the EGM 213
may open communication with the Download Database 227. The EGM 213
request software from the SDDP server 252. The SDDP server 252
downloads the specified game information to the EGM 213 using a
secure transmission protocol such as HTTPS. The download to the EGM
213 may occur in the background operation of the Alpha OS, so that
game play is not interfered with. The EGM 213 may de-activate game
operation for a predetermined amount of time subsequent to the last
play on the EGM 213, such as five minutes, and issue a message on
one of its display panels that it is temporarily offline, at which
point the EGM 213 can initiate installation of the downloaded
software. A record of the transmissions and corresponding activity
of the EGM 213 is relayed to a retrievable storage on the network,
such that a privileged user may operate the BCP 216 to run the
reports identifying the old and new games, date changed, and by
whom. User privileges may be restricted as discussed previously to
provide additional levels of security and flexibility within the
system and for the casino operator or users of slot management
system 101 and download and configuration server network 201.
[0182] Example download and configuration components that are shown
in FIGS. 2D and 2E indicate a system that supports up to 10 EGMs
213 through a single Cisco 2950 switch. As the number of EGMs 213
increase, the type and/or number of servers, switches, firewalls,
and pipelines may be changed to accommodate higher traffic volumes
and improve or avoid degradation of performance. In an example
embodiment, the following apparatuses and software are
incorporated. An SDDP server 252, which includes a download
software library. The SDDP server 252 executes game server
software, and the download software library stores download game
software.
[0183] An application/database server 227 includes core databases,
and provides core services as well as download services. The core
databases may include a core database, a meter database and an
activity database. The core services may include: communications,
initiation and validation, certificate, IIS, MSMQ, DNS, DHCP, and
active directory services. The core services may also include:
meter services, activity services, cabinet services, and game play
services. The download services may include certificate, IIS, MSMQ,
DNS, DHCP, and active directory services. The download services may
further include: a Web service, a configuration Web service, a
scheduler Web service, a download handler Web service, an option
configuration handler Web service and a scheduler service.
[0184] A panel control (BPC) 203. A G2S may include certificate,
IIS, MSMQ, DNS, DHCP, and active 20 directory services. The G2S may
also include a SQL Report, Web Service, and delivery agent.
Download and configuration databases may include: a download
database, a configuration database and a scheduler database.
[0185] An adaptive security appliance (ASA) may create a firewall
between back-end and floor systems. Such may provide proactive
threat defense that stops attacks before they spread through the
network, controls network activity and application traffic, and
delivers flexible VPN connectivity.
TABLE-US-00002 Example Components Example Hardware Example Software
SDDP server Pentium IV 2 GB RAM OS - Microsoft Windows 252 (SDDP
252 100 GB 2003 Microsoft SQL 2005 may be placed SATA 2 NIC cards
on its own server to comply with some jurisdiction requirements.)
Application Pentium IV 2 GB RAM OS--Microsoft Windows Library
Server 100 GB SATA 2 NIC 2003 Microsoft SQL 2005 cards Databases:
Pentium IV 2 GB RAM OS--Microsoft Windows Scheduler 100 GB SATA 2
NIC 2003 Microsoft SQL 2005 Download cards Configuration Networking
Cisco 2950 Switch, 24-port Cisco ASA 5510 (firewall) Connecting
CAT-5 cables 15 feet wiring between long 2 cables per devices EGM
213
[0186] FIG. 3 shows an exemplary download and configuration
user-based tree logic flow diagram, according to one illustrated
embodiment. The exemplary users shown in the diagram have the
following descriptive names: Reviewer, Approver, Editor, Casino
Manager, and Casino Analyst. The Reviewer is a user who can view
tasks that are only related to view; this user doesn't have the
right to change anything in the system. The responsibility of the
Approver is to approve the tasks that need to be approved by an
additional user. The Editor has the right to edit, view, set and
cancel tasks. The Casino Manager is a user who may or may not be
directly involved with day to day management of gaming terminals,
approves changes to configuration, and views gaming performance
data. The Casino Analyst (i.e., performance analyst) may generally
report directly to the Casino Manager and may be tasked with
analyzing the financial performance of the casino, including the
network of electronic gaming machines. After analysis, the Casino
Analyst may produce a list of recommendations to the Casino Manager
designed to optimize the electronic gaming network performance.
[0187] The following devices and systems may be included within the
described slot management network system and may have the
referenced capabilities:
[0188] EGM--G2S Protocol: An Electronic Gaming Machine (EGM) 5 213
that implements the Game To System (G2S) protocol for download and
configuration.
[0189] iView--G2S Protocol: Device for player touch point services.
It may be used to display marketing and player tracking
information. It may be incorporated within the network to provide
gaming independent of or incorporated with an EGM 213. It has a
separate network connection as indicated in the prior figures.
[0190] 3rd Party Server: Third party server that provides download
and configuration management of non-G2S EGM 213 devices. The
Control Panel (BCP) 216 may use an extension of System to System
(S2S) protocol to manage download and configuration of proprietary
EGMs 213 through the proprietary (3rd party) server.
[0191] Slot Management System: Central system responsible for
accounting, vouchering, player tracking, etc. (e.g., Slot Data
System).
[0192] FIG. 4 shows an exemplary download tree-logic flow diagram
for managing a software package library with the SDDP 252,
according to one illustrated embodiment. In the illustrated
example:
[0193] Install Package--A package is a transport container designed
to deliver one or more modules to a downloadable device (like an
EGM 213, iView or GC hereafter referred to as EGM 213). This use
case allows users to install packages to the SDDP 252. This may
include three primary functions. 1) copy the package files
themselves from the CD to the correct directories on the SDDP 252;
2) update the SDDP 252 inventory tables in the download database
227; and 3) log all of this activity.
[0194] Uninstall Package--Removes the package from the SDDP 252,
updates the download database 227 inventory and logs the
activity.
[0195] View Packages--This use case allows the users to examine the
packages that exist at the SDDP 252.
[0196] View Package Modules--This use case indicates that users may
view the modules contained in a package.
[0197] View Package Management Logs--All activities like installing
and uninstalling of packages are logged by the system; this use
case denotes the user's ability to review these logs.
[0198] Verify Packages--Check the hash values and certificates of
the packages in the SDDP 252 directories to confirm no tampering
has occurred. Confirm that no unauthorized packages exist on the
SDDP 252.
[0199] FIG. 5 shows an exemplary download management tree logic
flow diagram, according to one illustrated embodiment:
[0200] Create Download Assignment--Create an assignment of
packages(s) to a collection. A new assignment is inactive, and has
a default schedule of now, an empty collection, and contains no
packages.
[0201] Edit Download Assignment--Described in detail below with
regard to FIG. 6. This includes managing the collection membership,
what is assigned for download, whether the assignment is active,
and its schedule.
[0202] Download Views--Described in detail below with regard to
FIG. 8. Users can examine current EGM 213 inventory, the package
library (via packages, or via modules), pending jobs (scheduled,
active assignments), running jobs (changes in progress), and
completed jobs.
[0203] Initiate Package Installation--When a package has been
distributed to one or more EGMs 213, the EGM 213 escrows the
package, verifies it is what it is professed to be, and awaits an
"initiating event." What that means varies by jurisdiction; it may
be an attendant action at the EGM 213, at the system, or allowed to
occur automatically. This use case covers the concept that a BCP
user may manually initiate a package installation, or it may be
automated at the system level.
[0204] Purge--This refers to the function of purging old
assignments from the database. Assignments are marked deleted and
may become invisible to the user interface (UI) tools. Deleted
assignments may be purged if they were never active.
[0205] Approve Assignment--This use case shows that an assignment
may be approved by an Approver. This is a user with approval role
in the system.
[0206] FIG. 6 shows an exemplary flow diagram for editing download
assignments, according to one illustrated embodiment.
[0207] Manage Collection--A collection may be used by more than one
assignment. The user can modify the membership of the
collection:
[0208] Add and remove EGMs 213. Dynamic collection may be allowed.
These are based on matching some criteria such as, for example, all
EGMs 213 playing nickel poker.
[0209] In the case of dynamic collections, change how a dynamic
collection's members are determined and convert a dynamic
collection to a static one.
[0210] Managing a collection is described in more detail below with
regard to FIG. 7.
[0211] Set Collections--Choose which EGMs 213, directly or via
other collections that this assignment will affect.
[0212] Add or Remove Package--The user can pick from available
packages and add them to the assignment for download. The modules
included within packages are also displayed for reference.
[0213] Edit Download Schedule--The user can edit scheduling options
for download.
[0214] User can schedule a start date for download using the BCP
216. It may be noted that the start date indicates the date the
download process begins. It may take indeterminate amount of time
for the downloaded package to be ready to be installed on a given
EGM 213. This is the case where download occurs in a facility that
is operating. If the facility is shutdown at a selected point in
time or if it is not yet operational, download may occur as rapidly
as the throughput pipelines and bandwidth of the servers and
routers will allow on the system. Also, according to one
embodiment, to avoid download conflict when multiple download
assignments exist for the same module type on an EGM 213, the
assignment with the latest creation date may take precedence.
[0215] Edit Install Schedule--The user can edit scheduling options
to install packages.
[0216] Edit Assignment Attributes--The user can edit the name and
description of an assignment. According to one embodiment, one of
the most important attributes is active. Assignments can be
created, edited, scheduled, and saved without having them take
effect. For an assignment to be scheduled and affect the
collection, it must be made active. The user may also de-activate
an assignment.
[0217] FIG. 7 shows an exemplary download and configuration flow
diagram for managing a collection, according to one illustrated
embodiment.
[0218] Create--Create an empty EGM collection. A collection is a
list of EGMs 213. A collection may also include other collections.
On the BCP 216 user interface and display, these may be referred to
as EGM groups.
[0219] Delete--Remove EGMs 213 or EGM collection from a
collection.
[0220] Edit--Add or remove EGMs 213 or EGM collection from a
collection
[0221] Duplicate--Make a copy of an existing collection and give it
a new name.
[0222] View--View EGMs 213 or EGM collection.
[0223] Purge--Remove a deleted collection from the Database if it
is unreferenced.
[0224] FIG. 8 shows an exemplary flow diagram of download views,
according to one illustrated embodiment.
[0225] View EGM Inventory--The user may select any EGM within the
currently selected download assignment, and see the EGM module 213,
component, and package inventory.
[0226] Refresh Inventory--Force an obtain inventory job to run on
the EGM 213 and update the BCP 216 to display the newest data.
Additionally and/or alternatively the refresh inventory may report
on differences detected. Normally, the DB inventory may be expected
to substantially match the actual EGM inventory.
[0227] View Available Modules--The download system maintains a
library of packages, which deliver (i.e., install or un-install)
modules. The user can browse which packages are available for
download. According to some embodiments, only the package(s) that
are compatible with the referenced EGMs 213 are shown. In other
embodiments, other choices may be permitted, like packages
compatible with the reference EGM in a collection.
[0228] View Available Packages--The download system maintains a
library of packages, which deliver (install or un-install) modules.
The user can browse which packages are available (in the library)
for download. The borne module(s) are displayed in association with
each available package, including any module or [hardware]
component that the package depends on for its installation to
succeed.
[0229] View Download Jobs Status--This use case allows the users to
view the current status of download jobs. The download jobs may
have different status such as, for example, Pending, Running or
Completed. Individual package downloads may, for example, have
states as defined by the G2S protocol that are sub states of the
pending jobs. The individual package downloads may include, for
example:
[0230] Pending Download Jobs: The host maintains a job queue of
upcoming download jobs, based on the schedule. (e.g., an active
download assignment scheduled to run in the future will have a
pending job).
[0231] Running Download Jobs: The host monitors download jobs that
are in progress. This allows the user to examine which jobs are
currently running, their status, and any log entries against that
job. It is noted that each assignment-level job may have one or
more EGM-level jobs. The user interface displays such relationship
by nesting EGM-level jobs under each assignment-level job.
[0232] Completed Download Jobs: Once a job has completed, the job
and its log entries may be archived for 180 days. The user can
examine the history of completed jobs for an assignment. Similarly
to running jobs, each assignment-level job may have one or more
EGM-level jobs. The user interface may display such relationship by
nesting EGM-level jobs under each assignment-level job.
[0233] Cancel Jobs--Informs the host system via the BCP 216 to
abort an existing job. Any new commands for the jobs are not run.
An attempt may be made to send cancel commands to the EGM 213 if
appropriate.
[0234] FIG. 9 shows an exemplary flow diagram for managing
configurations, according to one illustrated embodiment.
[0235] Create Configuration Assignment--A configuration assignment
supports the definition and scheduling of EGM configuration
changes. This use case identifies different ways for the user to
create new configuration assignments.
[0236] Edit Configuration Assignment--Once created, the
configuration assignment provides powerful and flexible means to
manage the configuration of EGM collections over time. The
configuration assignment is described in more detail below with
regard to FIG. 10.
[0237] Configuration Views--Users may examine current EGM settings,
pending jobs (e.g., scheduled, active assignments), running jobs
(e.g., changes in progress), and completed jobs. Configuration
views are described below in more detail with regards to FIG.
11.
[0238] Purge--This refers to the function of purging old
assignments from the database. Assignments may be marked as deleted
and become invisible to the UI tools.
[0239] Approve Assignment--This use case shows that an assignment
is approved by an approver.
[0240] FIG. 10 shows an exemplary flow diagram for editing
configuration assignments, according to one illustrated
embodiment.
[0241] Manage Collection--As described in detail above with regards
to FIG. 7, a collection may be used by more than one
assignment.
[0242] Set Collection--Specify the collection to be used for an
assignment.
[0243] Edit EGM Options--The user may select one or more option
groups for the assignment to affect, and edit the options within
each selected group. EGM options are described with reference to
FIG. 14.
[0244] Define Game Play Devices--User may create, delete, or modify
the game play device that is available on the EGM 213. A game play
device is defined as a game theme and pay table with one or more
denominations. For example, Alpha OS EGMs may support up to 100
game play devices. Each may have additional options which can be
configured directly at the EGM 213 or remotely through the BCP 216
once the Game Play Device is defined on the EGM 25 213.
[0245] Edit Game Play Device Options--The user may select one or
more game devices to be activated by the assignment, and edit the
options within each device activated by the assignment.
[0246] Validate Assignment--Using configuration assignments may
provide a fully automated slot floor reconfiguration such as, for
example, defining a default configuration, then overriding it for
weekends or a holiday. Such may be accomplished by layering or
stacking assignments, which may be conflicting. The `validate
assignment` operation performs a conflict analysis that reports on
such conflicts and may be reportable in the case of a conflict,
such as at the BCP 216. It is noted that by allowing dynamic
collections or non-permanent collections a point-in-time analysis
is provided.
[0247] Edit Assignment Schedule--Configuration assignment
scheduling may advantageously be flexible. In one embodiment the
configuration assignment scheduling may be restricted as download
assignments are. Scheduling may be understood in terms of how the
host arrives on proper EGM settings at a given moment in time.
Configuration assignments may be run in order of schedule type such
as, for example, Permanent, Permanent with start date, Re-occurring
Override and One Time Override. Within the schedule types, the one
with the earlier start date goes first. Within matching start
dates, assignments with static collections run before dynamic. If
the assignments have matching start dates also have matching
collection types, the assignments with earlier create dates run
first. It is noted that in some embodiments configuration
assignments of permanent and permanent with the start date may
include static collections.
[0248] Edit Assignment Attributes--Names and description are
editable. According to one embodiment, an important attribute is
Active. The user can create, edit, schedule, and save assignments
without having it take effect. For an assignment to be scheduled
and affect the collection, the assignment is made active. The user
may also de-activate an assignment.
[0249] FIG. 11 shows an exemplary flow diagram of configuration
views, according to one illustrated embodiment.
[0250] View EGM Options--Within the configuration context, the user
may select any EGM in the currently selected assignment, and view
the current settings for that EGM.
[0251] View Game Play Device Options--View the options which have
been set for each individual game play device on an EGM.
[0252] Refresh Options--From the BCP 216, a user may instruct the
host to re-obtain the configuration options from an EGM. These are
compared to the current settings and differences may be noted.
Normally the host may have an exact copy in its DB as changes are
to be reported to the host according to GSA G2S.
[0253] View Configuration Jobs Status--This use case allows the
users to view the current status of Configuration jobs. The
configuration jobs can have different status like Pending, Running
or Completed. Pending jobs will have a sub-status of the
configuration set itself as defined by the G2S protocol.
[0254] Pending Configuration Jobs--The host maintains a job queue
of upcoming configuration jobs, based on the schedule. For example,
an active recurring assignment may have a job pending, scheduled
for the next occurrence. When that job runs, a new pending job is
created for that assignment.
[0255] Running Configuration Jobs--The host monitors configuration
jobs that are in progress. This allows the user to examine which
jobs are currently running, their status, and any log entries
against that job. Note that each assignment-level job may have one
or more EGM-level jobs. The user interface is operable to display
this relationship by nesting EGM-level jobs under each
assignment-level job.
[0256] Completed Configuration Jobs--Once a job has been completed,
the job and its log entries may be archived for 180 days. The user
can examine the history of completed jobs for an assignment.
Similarly to running jobs, each assignment-level job may have one
or more EGM-level jobs. The user interface may display this
relationship by nesting EGM-level jobs under each assignment-level
job.
[0257] Cancel Jobs--A user may cancel pending jobs and, in
response, the system may discontinue the pending jobs if they are
in progress. If possible, the system will also send the cancel
command for each open configuration set.
[0258] Clear Override--An optional item is considered overridden if
it has been changed via the machine's touch screen menus. In this
case the host receives an unsolicited optionList to report the
changes. The host will respect these overridden settings, even if a
subsequent assignment would modify them, until such time as the
user clears the override via this function.
[0259] View Configuration Assignment--A user may view but not
modify the configuration assignment. This may be a read only
version of the complete wizard or it may be just a view of the
review page of the wizard.
[0260] FIG. 12 shows an exemplary flow diagram for managing
reports, according to one illustrated embodiment.
[0261] View Report--This use case may be used to view reports from
the Report user interface.
[0262] Print Report--This use case may be used to print reports
from Report user interface.
[0263] Export Report--This use case may be used to export reports
via the Report user interface.
[0264] FIG. 13 shows an exemplary flow diagram for communicating
(interacting) with EGMs 213, according to one illustrated
embodiment.
[0265] Handle New Connection--When a G2S EGM first comes up, it
will connect to a host address set manually at the EGM 213 or
discovered via DNS or LDAP. This use case addresses the initial
configuration activities that take place when the host accepts a
new connection. For download and configuration, each handler
listens for the commsStatus event and proceeds from there. By the
time commsStatus says open, the initial handshake with the rest of
the floor system may be completed and the EGM 213 may exist in the
core database 231.
[0266] Obtain Configuration--Each EGM reports its current
configuration settings, and reports the options it supports along
with the range of valid settings for each option.
[0267] Obtain Inventory--EGMs 213 may report hardware and software
inventory to the system.
[0268] Execute Configuration Jobs--Such is described in detail 10
below with reference to FIG. 14.
[0269] Execute Download Jobs--Such is described in detail below
with reference to FIG. 15.
[0270] FIG. 14 shows an exemplary flow diagram for executing
configuration jobs (assignments), according to one illustrated is
shown:
[0271] Set Game Play Device--Send the sequence of commands used to
define games on the EGM 213 as defined by the configuration
assignment.
[0272] Set Configuration Change--Send the sequence of commands used
to set options for all devices except game play devices as defined
by the configuration assignment.
[0273] Set Game Play device options--Send the sequence of commands
to set options for all game play devices as defined by the
configuration assignment.
[0274] Unsolicited Option List--Handle an unsolicited OptionList
command from an EGM. This command may cause the setting of EGM
overrides in the configuration database 228.
[0275] Unsolicited Option Change--Handle an unsolicited Option
Change command from an EGM. This may be logged as warning.
[0276] Cancel Option Change--When reviewing job status, a user may
choose to cancel any job that has not completed. The host may send
the required commands to the EGM 213 to cancel this job. If the job
completes before this happens the cancel may fail.
[0277] FIG. 15 shows an exemplary flow diagram for executing
download jobs (assignments), according to one illustrated
embodiment.
[0278] Download Package--Carry out the sequence of commands
required to move the package from the SDDP 252 to the EGM 213
escrow area.
[0279] Install Package--When a package has been downloaded to one
or more devices, the device escrows the package, verifies it is
what it is professed to be, and awaits an "initiating event." In
some embodiment the initiating event may be an attendant action at
the EGM 213, at the system, or allowed to occur automatically. This
use case covers the concept that a BCP user may manually initiate a
package installation, or it may be automated at the system level to
carry out the sequence of command required to install the package
on the EGM 213.
[0280] Cancel Download Jobs--When reviewing job status, a user may
choose to cancel any job that has not completed. The host may send
the required commands to the EGM 213 to cancel this job. If the job
completes before this happens the cancel will fail. Some EGMs 213
may not support canceling a download in midstream. If so, they will
report this error and it will be displayed in the job status for
the cancel job.
[0281] FIG. 16 shows an exemplary flow diagram for handling
configuration jobs (assignments), according to one illustrated
embodiment.
[0282] FIG. 17 shops an exemplary flow diagram for handling
download packages, according to one illustrated embodiment.
[0283] FIG. 18 shows an exemplary block diagram of a control panel
216 componentization, according to one illustrated embodiment. In
one embodiment, the Control panel 216 (BCP) is a window's forms
Smart Client application that operates on control station 203 which
may, for example, be a Pentium PC with a Microsoft Windows
operating system or a Linux-based operating system with windows.
The BCP 216 Application may encapsulate all the functionality to
support the command and control portions of the download and
configuration features of the project. The BCP 216 provides
operators with an interface to remotely specify and control
download and configuration functions for the EGM 213 or devices
acting as EGMs 213 such as, for example, an iView or Game
Controller. The BCP 216 also provides regulators and managers with
the ability to review and approve these functions. The BCP 216
combines the functions of Download and Configuration into one
application since they may be tightly linked and the metaphors or
concepts used to make them visible to users may be substantially
the same. Some terms associated with Download and Configuration are
Named Collections, Assignments, Jobs, Manual Overrides,
Notifications, Packages, Device Classes, Game. Play Devices, Option
Groups, and Option Items:
[0284] Named Collection: A set of EGMs 213 can be treated as or
operated on as a group in a manner similar to an Email Group.
[0285] Assignment: A set of download or configuration instructions
grouped together as a "document" that can be saved, recalled, and
reused. Common to Download and Configuration assignments are a
name, description, and a group of EGMs 213 to which the assignment
will apply. A schedule may be attached to any assignment as
well.
[0286] Download Assignment: An assignment that lists the packages
that should be downloaded to the EGMs 213 in the assignment's
collection as well as the installation rules to use.
[0287] Configuration Assignment: An assignment that lists the
configuration options to be set on the EGMs 213 in the assignment's
collection includes option items in option groups for ordinary
device classes as well as G2S_gameplay device option groups.
[0288] Job: Encapsulation of the data and commands used to carry
out an assignment. An assignment job will normally be split in to
EGM jobs for each EGM referenced by the assignment.
[0289] Manual Overrides: If an operator opens the game cabinet and
sets configuration options via the menus, these options are
considered overridden by the EGM 213 and may retain their settings
unless the override is explicitly cleared via an interface in the
BCP 216.
[0290] Notifications: Any tasks or results that must be displayed
to the user. In some embodiments, notifications require action of
some sort such as, for example, approval. In other embodiments,
notifications can simply be acknowledged. For example, if a
download is saved and ready to run, it may first require regulator
approval. The regulator can look in the notifications list, examine
this entry, and approve or deny it.
[0291] Package: A structured file containing header information and
the downloadable payload. This payload could be a Game OS, Game
Theme, Removal Scripts, or any set of modules defined by the
manufacturer. Packages are stored on the Software Download
Distribution Point (SDDP 252)
[0292] Device Class: One of the predefined G2S device classes such
as G2S_cabinet or G2S_gamePlay.
[0293] Game Play Device: A type of Device Class representing a game
bundle or combination that is ultimately selectable by a player on
the EGM 213. A Game Play device specifies a particular theme, pay
table and denomination list.
[0294] Option Group: Each device class may have many option items
which are arranged into named option groups.
[0295] Option Item: The root level configurable item. Option items
are defined to have among other things an ID, name, type, value,
default value, min and max values. Option items may also include a
list of values. For example, "car_color" might have the values
"red" and "gold". One embodiment of the user interface is modeled
after many common windows applications with dockable panes to show
items one can navigate on or to display options. Another embodiment
of the user interface includes a document area much like Visual
Studio for displaying things like assignments that can be saved.
The main windows or pains are listed in the composition section
below.
[0296] The BCP 216 is a smart client application that may depend on
the Dot Net 2.0 or similar framework. It may be deployed via the
Systems Web site. Any software dependencies may be automatically
downloaded with the application. The BCP 216 may run on Windows
2000 or newer OS machines. In one embodiment, as illustrated in
FIG. 18, the BCP 216 communicates with the rest of the download and
configuration network system solely through Web Services 223. The
BCP 216 may, for example, utilize the Dot Net 2.0, Infragistics
5.3, and various conventional utility DLLs. These may be
automatically downloaded and installed as part of an initial
deployment on control station 201. In order to operate with the
Web-based services, control station 201 may be connected to the Web
and the BCP 216 application may be able to reach the Web server
running said Web-based services. A user with proper credentials may
be required to log in. Also, the workstation (control station 201)
upon which the BCP 216 application is operating may need to be
registered with the system (or identifiable as an authorized
apparatus and/or software) via the System Web site before it may be
allowed to connect.
[0297] The following are exemplary windows of the BCP 216
application that may be available.
[0298] EGM Navigator: A list of EGMs 213 that can be selected or
dragged onto other windows.
[0299] Collection Navigator: List of named collections that have
been saved.
[0300] Override Navigator: List of EGMs 213 with a current Manual
override in affect.
[0301] Assignment Navigator: List of assignments that have been
saved.
[0302] Inventory Pane: Show full details of one or more selected
EGMs 213.
[0303] Find Results: Shows results of a search function.
[0304] Activity Pane: Show log of what has occurred since the
application has launched. May also provide access to transaction
logs throughout the system for selected periods of time including
tracing activity related to a specific EGM, specific server, or any
other network connected device receiving and/or transmitting data
or instructions.
[0305] Download Assignment Wizard: Allows user to specify a
download assignment. For example, the download assignment wizard
may have panes such as: Identity, Packages, Schedule, and
Review.
[0306] Configuration Assignment Wizard: Allows user to specify a
configuration assignment. For example, the configuration assignment
wizard may have panes such as: Identity, Device Options, Game
Bundles, Schedule, and Review.
[0307] Floor Layout: A visual representation of the floor that can
be used for navigation and selection in a manner equivalent to the
EGM 213 navigator.
[0308] Notifications Tab: List of notifications for the currently
logged in user.
[0309] Schedule Tab: Allows user to review jobs, see their status
and or progress.
[0310] The application may also have a menu bar, toolbar, and
status bar. Other dialogs such as an about box, logon dialog,
change password dialog and error dialogs may be included.
[0311] In an example embodiment, the BCP 216 interacts directly
with the following
[0312] Web-based services: Activity, User Authentication, Download,
and Configuration.
[0313] In addition to the Web Services 223, the BCP 216 may require
file system access for local debug/trace logging. It may have no
direct Database access. It may be capable of printing but does not
require a printer to perform its functions. The BCP 216 uses the
tradition .net processing model.
[0314] FIG. 19 shows an exemplary block diagram of a download
handler 233, according to one illustrated embodiment. The
responsibilities of the Download handler 233 may include the
following. [0315] Poll for job requests [0316] Translate job
requests to G2S download class commands [0317] Send G2S host
command to destination EGMs 213 [0318] Process G2S command
responses from EGMs 213 [0319] Process G2S events [0320] Update job
status [0321] Update EGM State through Data Access Layer 222
[0322] In an example implementation, communication with EGM devices
may be exclusively via G2S messages, and there may not be a
connection with BCP or other clients which create work requests.
The Download handler 233 may be a .Net assembly. The assembly may
be loaded by the G2S Engine 280 and may run in the context of this
process (service).
TABLE-US-00003 Subcomponent Description Configuration Private
storage of settings, limits and constants Job Reader Poll work
queue from data tier Protocol Translator Transform job context to
G2S commands G2S Message Handlers Process responses from EGMs to
G2S host commands Event Handlers Process exceptions and state
changes from EGMs Logging Output of event and diagnostics
Controller Controls the processing
[0323] The Download handler 233 may interact with the Data Tier
224, G2S Core, Activity (EGM events), and Microsoft Enterprise
Library Logging components. In an example embodiment, there is no
direct interaction to/from the end users. Job requests may be
output to the database (Data Access Layer 222) and polled by the
Download component.
Example Resources for the Download Handler 233
[0324] CPU The Download handler may not require a dedicated
processor. CPU utilization may be proportional to the quantity of
messages processed. The traffic pattern of download messages may be
a "burst" pattern where average/mean traffic is minimal, but peak
message rates can be high. [0325] Generally, the Download handler
may not require more than a single processor, but during peak
download message peaks the G2S server may be processor constrained
and enhancements may be anticipated for the G2S Engine to scale the
application across multiple servers. [0326] Disk In an example
embodiment, the download handler does not directly access disk
resources. The Download handler interfaces to the Data Access
Layer, Activity and Logging. Only minimal disk space for the
assembly file (All) may be required. [0327] Network In an example
embodiment, the download handler does not directly access network
resources. The messages sent to/from EGMs are normally small and
don't consume significant network resources apart from the
bandwidth that may be required to download/update package files
from the Download Services Point.
[0328] The Data access layer 222 may store configuration and state
information for the objects being managed by the download handler.
Configuration files may be used to store all persistent data that
is not stored in the Data tier 224. The distinction between storing
a value in the configuration files instead of adding the element to
the Data access layer 222 database and interface(s) can be
arbitrary. For example, if there is a requirement to limit the
maximum size for a package, this value could be added to the Data
access layer 222, or stored in a configuration file.
[0329] The configuration files may include, but are not limited to,
values for: 1) settings required for testing; 2) limits and
constraints; 3) constants.
[0330] The hierarchy for a value stored in a configuration data
store may be: i) File; ii) Section; and iii) Key/Value pairs.
[0331] Programmatic access to the configuration files may, for
example, be with the
Microsoft.Practices.EnterpriseLibrary.Configuration namespace
classes. These classes allow a single application to use multiple
configuration files, and for multiple applications to share common
configuration files. The details of the data store implementation
are hidden from the Download component.
[0332] In an example embodiment, the Download handler 233 does not
receive work requests directly from the Control panel 216 (BCP)
client or the scheduling component. These components add/modify job
records in the database via the Data Access Tier. The Download
Service may have a subcomponent that will poll the job data via the
Data Access Tier and update job status.
[0333] The interface between the Download Service and the Data tier
224 is a Web service. The required methods for polling and updating
the job data may include: 1) GetJobList--
[0334] A collection of all job requests. (The method includes
filtering parameters); 2) GetJob--Get a single job request; and 3)
UpdateJob--Change the status of a job request.
[0335] The G2S Core may provide communication between the Download
Service and the EGM 213 devices. Host commands may be sent from the
Download Service to an EGM via the G2S Core Interface, and the G2S
Core Interface may provide the response from the EGM 213. The G2S
Core component(s) may provide persistent storage.
[0336] From G2S Message Protocol Download Class Draft v0.8 (hereby
incorporated by reference), the requirements implicitly mandate
that this interface provide the capability to send the following
G2S host commands to an EGM: [0337] Enable/Disable EGM download
(setDownloadStatus) [0338] Refresh EGM Enable/Disable State
(getDownloadStatus) [0339] Refresh EGM Download Profile
(getDownloadProfile) [0340] Download Package To EGM (addPackage)
[0341] Create Package For Upload (createPackage) [0342] Upload
Package From EGM (updatePackage) [0343] Delete Package From EGM
(deletePackage) [0344] Refresh Package Status (getPackageStatus)
[0345] Refresh EGM Package List (getPackageContents) [0346] Refresh
all EGM Packages Status (getPackageList) [0347] Refresh Package Log
Status (getPackageLogStatus) [0348] Refresh Current Package Log
(getPackageLog) [0349] Set EGM Package Installation Script
(setScript) [0350] Remove Script from EGMs List of Scripts
(deleteScript) [0351] Authorize Script (authorizeScript) [0352]
Refresh EGM Script Status (getScriptStatus) [0353] Refresh EGM
Script List (getScriptList) [0354] Refresh EGM Script Log Status
(getScriptLogStatus) [0355] Refresh EGM Script Log (getScriptLog)
[0356] Refresh EGM Module List (getModuleList)
[0357] Each of the above G2S host commands may need a response and
the server system 201 may utilize handler(s) to process the EGM 213
response.
[0358] The Download Service may "register" to receive the following
Events: a) G2S_DLX (download exceptions). There are approximately
25 DLX events to be handled, and b) G2S_DLE (download events).
There are approximately 30 DLE events to be handled.
[0359] The events indicate a change in the state of processing an
SMP (Service Management Platform) command by an EGM 213. The
processing of these events will update the database via the Data
Access Layer interface. The processing actions are specified in the
sequence diagrams for the download class commands.
[0360] The Data tier 224 provides an API (Application Program
Interface) between the Download Service component and the database
for storing the configuration/state information of the objects
being managed by slot management system 101, and the "job"
information that is the primary input source for the Download
Service. Because these two sets of data objects (i.e., config/state
and job) may be loosely coupled, they may be implemented as
separate classes.
[0361] All download class command responses from the EGMs 213 may
result in a database operation through the Data access layer 222,
excluding event class commands, which may be processed through the
Activity Interface independently of the Download Service. The
methods required may correlate directly with the EGM 213 command
responses except as noted. The required methods for processing
command responses from the EGM 213 may include: [0362]
DownloadStatus [0363] DownloadProfile [0364] PackageStatus [0365]
PackageContents [0366] PackageList (Collection of PackageStatus
Nodes) [0367] PackageLogStatus [0368] PackageLogList [0369]
ScriptStatus [0370] ScriptList [0371] ScriptLogStatus [0372]
ScriptLog List [0373] ModuleList
[0374] The implementation of the Data access layer 222 interfaces
may be a "synchronous" transaction, meaning that the
success/failure of the database operation is included in the
response.
[0375] In an example embodiment, some Business Rules include: a) an
event record may be created for every request/response process with
an EGM, via the Activity Web Service 243; b) package sizes may be
limited to a configurable maximum size; and c) the OptionConfig
handler may replicate the required EGM data from the Core database
231 to the Configuration database 228 in order to support
reporting.
[0376] The Download handler 233 may consist of a single .Net
assembly file. This assembly may be deployed to the disk location
required by the G2S Engine 280.
[0377] FIG. 20 shows an exemplary block diagram of a configuration
handler 232, according to one illustrated embodiment. Example
responsibilities of 15 OptionConfig handler may include: [0378]
Received unsolicited messages from EGMs 213 [0379] Persist the data
the from the unsolicited messages to the Config Database [0380]
Manage and route G2S Messages [0381] Process G2S command responses
from EGMs 213 [0382] Process G2S events [0383] Update job
status
[0384] Example Constraints may include: a) communication with EGM
devices may be exclusively via G2S messages; and b) there may be no
connection with BCP or other clients which create work requests.
[0385] An example composition may include:
TABLE-US-00004 [0385] Subcomponent Description Configuration
Private storage of settings, limits and constants Job Reader Poll
work queue from data tier Protocol Translator Transform job context
to G2S commands G2S Message Handlers Process responses from EGMs to
G2S host commands Event Handlers Process exceptions and state
changes from EGMs Logging Output of event and diagnostics
Controller Controls the processing
[0386] The OptionConfig Service component may interact with the
Data tier 224, G2S Core and the Activity (EGM events) components.
The Data access layer 222 may store configuration and state
information for the objects being managed by slot management system
101.
[0387] Configuration files may be used to store all persistent data
that is not stored in the Data tier 224. The distinction between
storing a value in the configuration files instead of adding the
element to the Data Access Layer database and interface(s) can be
arbitrary. For example, if there is a requirement to limit the
maximum size for a package, this value could be added to the Data
Access Layer, or stored in a configuration file. The configuration
files may include, but are not limited to, values for: 1) settings
required for testing; 2) limits and constraints; and constants.
[0388] Programmatic access to the configuration files may be with
the .Net Framework 2.0 System, incorporated by reference herein.
Configuration namespace classes and the Microsoft Practices,
Enterprise, Library, and Common Configuration classes, are all
incorporated by reference herein. These classes allow a single
application to use multiple configuration files, and for multiple
applications to share common configuration files.
[0389] In an example embodiment, the Option Config handler does not
receive work requests directly from the Control panel 216 (BCP)
client or the scheduling component. These components add/modify job
records in the database via the Data Access Tier. The Download
Service may have a subcomponent that will poll the job data via the
Data Access Tier and update job status.
[0390] The interface between the Option Config Service and the Data
tier 224 may be a Web service. Methods for polling and updating the
job data may include: a) GetJobList--
[0391] A collection of all job requests. (The method includes
filtering parameters); b) GetJob--Get a single job request; and c)
UpdateJob--Change the status of a job request.
[0392] The G2S Core may provide the communication between the
Option 10 Config Service and the EGM 213 devices. In which case,
Host commands may be sent from the Option Config Service to an EGM
via the G2S Core.
[0393] According to some embodiments, the Option Config Service may
"register" to receive the following Events: a) G2S_DLX (download
exceptions). For example, there may be 25 DLX events to be handled;
and b) G2S_DLE (download events). For example, there may be 30 DLE
events to be handled.
[0394] The events may indicate a change in the state of processing
an SMP (Service Management Platform) command by an EGM. The
processing of these events will update the database via data access
layer 222 interface. The processing actions may be specified in the
sequence diagrams for the download class commands.
[0395] The Data tier 224 provides an API (Application Program
Interface) between the OptionConfig Service component and the
database for storing the configuration/state information of the
objects being managed by slot management system 101, and the "job"
information that may be the primary input source for the Download
Service. Because these two sets of data objects (config/state vs
job) may be loosely coupled, they may be implemented as separate
classes.
[0396] All Option Config class command responses from the EGMs 213
may result in a database operation through data access layer 222.
The methods may correlate directly with the EGM 213 command
responses except as otherwise noted. According to one embodiment,
the methods for processing command responses from the EGM 213 may
include: [0397] optionList [0398] optionChangeStatus [0399]
setOptionConfigStatus [0400] getOptionList [0401] setOptionChange
[0402] cancelOptionChange [0403] authorizeOptionChange [0404]
getOptionChangeLogStatus [0405] getOptionChangeLog
[0406] FIG. 21 shows an exemplary block diagram of a scheduler
service 221, according to one illustrated embodiment, the Scheduler
(Scheduler Service) 221 may be implemented as an executable
program. According to one embodiment, there may be two types of
Scheduling: Download Scheduling and Config Scheduling.
[0407] Configuration assignments may be run in order by schedule
type: Permanent, Permanent with start date, Re-occurring Override,
One Time Override. Within a schedule type, the assignment with the
earlier start date may be initiated first. Within matching start
dates, assignments having static collections may be initiated
before dynamic; if still tied, those assignments with earlier
create dates may be initiated first. Configuration assignments of
permanent and permanent with start date may include static
collections.
[0408] Download Scheduling gets the start date that download
process begins. It may take an indeterminate amount of time for the
downloaded package to be ready to be installed on a given EGM.
Also, to avoid download conflict, if multiple download assignments
exist for the same module type on an EGM, the assignment with the
latest creation date takes precedence.
[0409] The Scheduler may be reliant upon the Schedule database 229.
[0410] An example scheduler composition may include:
TABLE-US-00005 [0410] Subcomponent Description Error Handlers
Process and gracefully handle exceptions Logging Output of event
and diagnostics
[0411] Exemplary Interactions may include: 1) scheduler listens to
Schedule database 229; 2) scheduler interacts with Schedule Web
service; 3) the Web Service may, for example, include a Windows
Server version 2000 or 2003 (hereby incorporated by reference) with
the following Windows components running: a).Net Framework version
2.0 and/or b) Internet Information Server (IIS 260).
[0412] Processing--The Scheduler service 221 may query the Schedule
database 229 for jobs that are scheduled to be run. The Scheduler
may initiate the processing of the jobs by notifying the GUI
Download Web Service 262 or the GUI Configuration Web Service
264.
[0413] Interface/Exports--The Scheduler service 221 may consume the
Activity Web Service 243 to log its processing events. The
Scheduler service 221 may also interact with the Schedule SQL
database with ActiveX Data Objects (ADO) commands.
[0414] FIG. 22 shows an exemplary block diagram of a user interface
download Web service 262 according to one illustrated
embodiment.
[0415] Classification--Web Service
[0416] Definition--The Web Service may expose Web Methods to
consuming components to allow the interaction with the Download
database 227.
[0417] The data access logic for the BCP 216 to interact with the
Download database 227 may be included within the Download Web
service 236.
[0418] The GUI Download Web Service 262 may be responsible for
interacting with the Data tier 224 for those components that are
consuming its exposed methods.
[0419] The BCP 216 may consume this Web Service and utilize its Web
Methods to create and read necessary Download data in the
database.
[0420] The GUI Download Web Service 262 may be used by the BCP 216
as a communication layer with the Download database 227.
[0421] Example Constraints may include: 1) consuming components may
need to communicate via the Simple Object Access Protocol (SOAP) in
order to consume the Web Service; 2) the Web Service may publish a
Web Service Description Language (WSDL) to describe the Web
service, the message format and protocol details; and 3) the Web
Service may return its requested results in the form of a
Serialized DataSet. [0422] An example Composition may include:
TABLE-US-00006 [0422] Subcomponent Description SOAP Proxy
Communication Data Access Handlers Process requests made by
consuming components by communicating with the database with
ActiveX Data Objects (ADO) logic Error Handlers Process and
gracefully handle exceptions Logging Output of event and
diagnostics
[0423] Example Interactions may include:
[0424] The GUI Download Web Service 262 may interact specifically
with the Control panel 216 (BCP) via Simple Object Access Protocol
(SOAP).
[0425] The GUI Download Web Service 262 may interact with the
Download SQL database with ActiveX Data Objects (ADO) logic.
[0426] The Web Service may, for example, include a Windows Server
version 2000 or 2003 with the following Windows components running:
a).Net Framework version 2.0 and/or b) Internet Information Server
(IIS 260).
[0427] Processing--The GUI Download Web Service 262 may process
requests made by consuming components. The requests may be made by
the consuming component calling the GUI Download Web Service 262
exposed Web Methods. A successful request may be dependent upon the
consuming component calling a Web Method by supplying the
appropriate query parameters as dictated by the Web Service
Description Language (WSDL) file. The Web Service processes the
request by executing its embedded Business Logic while logging
exceptions and events. The resulting output is returned to the
consuming component.
Interface/Exports
[0428] The GUI Download Web Service 262 may consume the Activity
Web Service 243 to log its processing events. It may also interact
with the Download SQL database with ActiveX Data Objects (ADO)
commands. Its capabilities may be exposed as Web Methods which are
accessed via the Simple Object Access Protocol (SOAP).
[0429] FIG. 23 shows an exemplary block diagram of a user interface
20 configuration Web service, according to one illustrated
embodiment.
Classification--Web Service
[0430] Definition--This Web Service may expose Web Methods to
consuming components to allow the interaction with the
Configuration database 228. The data access logic used for the BCP
216 to interact with the Configuration database 228 may be arranged
within the Configuration Web service 238.
[0431] The Configuration Web service 238 may be responsible for
interacting with the Data tier 224 for those components that are
consuming its exposed methods.
[0432] The BCP 216 may consume the Configuration Web service 238
and utilize its Web Methods to create and read necessary Option
Configuration data in the database.
[0433] The Configuration Web service 238 may be advantageously used
by the BCP 216 as communication layer with the Configuration
database 228.
[0434] Example Constraints may include: 1) consuming components may
communicate via the Simple Object Access Protocol (SOAP) in order
to consume the Web Service; b) the Web Service may publish a Web
Service Description Language (WSDL) to describe the Web service,
the message format and protocol details; and c) the Web Service may
return its requested results in the form of a Serialized DataSet.
[0435] An example Composition may include:
TABLE-US-00007 [0435] Subcomponent Description SOAP Proxy
Communication Data Access Handlers Process requests made by
consuming components by communicating with the database with
ActiveX Data Objects (ADO) logic Error Handlers Process and
gracefully handle exceptions Logging Output of event and
diagnostics
Example Interactions may include:
[0436] The GUI Configuration Web Service may interact with the
Control panel 216 (BCP) via Simple Object Access Protocol
(SOAP).
[0437] The Configuration Web service 238 may interact with the
Configuration SQL database with ActiveX Data Objects (ADO)
logic.
[0438] The Web Service may, for example, include a Windows Server
version 2000 or 2003 with the following Windows components running:
a).net Framework version 2.0 and/or b) Internet Information Server
(IIS 260).
[0439] The GUI Configuration Web Service may process requests made
by consuming components. The requests may be made by the consuming
component calling the GUI Configuration Web Services exposed Web
Methods. A successful request may be dependent upon the consuming
component calling a Web Method by supplying the appropriate query
parameters as dictated by the Web Service Description Language
(WSDL) file. The Web Service processes the request by executing its
embedded Business Logic while logging exceptions and events. The
resulting output is returned to the consuming component.
Example Interface/Exports may include:
[0440] The GUI Configuration Web Service may consume the Activity
Web Service 243 to log its processing events. It may also interact
with the Configuration SQL database with ActiveX Data Objects (ADO)
commands. Its capabilities may be exposed as Web Methods which are
accessed via the Simple Object Access Protocol (SOAP).
[0441] FIG. 24 shows an exemplary block diagram of a scheduler Web
service 241, according to one illustrated embodiment.
Classification--Web Service
[0442] Definition--According to one embodiment, the scheduler Web
service 241 exposes Web Methods to consuming components to allow
the interaction with the Scheduler database. The data access logic
used for the Scheduler to interact with the Scheduler database may
be included within the Scheduler Web service 241.
[0443] Exemplary Constraints may include: 1) consuming components
may communicate via the Simple Object Access Protocol (SOAP) in
order to consume the Web Service; 2) the Web Service may publish a
Web Service Description Language (WSDL) to describe the Web
service, the message format and protocol details; and 3) the Web
Service may return its requested results in the form of a
Serialized DataSet. [0444] An example Composition may include:
TABLE-US-00008 [0444] Subcomponent Description SOAP Proxy
Communication Data Access Handlers Process requests made by
consuming components by communicating with the database with
ActiveX Data Objects (ADO) logic Error Handlers Process and
gracefully handle exceptions Logging Output of event and
diagnostics
Example Uses/Interactions may include:
[0445] The Scheduler Web service 241 interacts specifically with
the Scheduler component via Simple Object Access Protocol
(SOAP).
[0446] The Scheduler Web service 241 interacts with the Scheduler
SQL database with ActiveX Data Objects (ADO) logic.
[0447] Example platform for the Web Service may include a Windows
Server version 2000 or 2003 with the following Windows components
running a).net Framework version 2.0 and/or b) Internet Information
Server (IIS 260).
Example Processing may include:
[0448] The Scheduler Web service 241 may process requests made by
consuming components. The requests are made by the consuming
component calling the Scheduler Web service 241 exposed Web
Methods. A successful request may be dependent upon the consuming
component calling a Web Method by supplying the appropriate query
parameters as dictated by the Web Service Description Language
(WSDL) file.
[0449] The Web Service may process the request by executing its
embedded Business Logic while logging exceptions and events. The
resulting output may return to the consuming component.
Example Interface/Exports may include:
[0450] The Scheduler Web service 241 may consume the Activity Web
Service 243 to log its processing events. It may also interact with
the Scheduler SQL database with ActiveX Data Objects (ADO)
commands. Its capabilities may be exposed as Web Methods which are
accessed via the Simple Object Access Protocol (SOAP).
[0451] FIG. 25 shows an exemplary block diagram of an executive
unit, according to one illustrated embodiment. According to one
embodiment, the responsibilities of the Executive component may
include: 1) receive job notifications from the Scheduler; 2)
determine destination G2S Host for a given EGM assignment; 3)
deliver an assignment job to the destination G2S Host; 4) receive
status updates from G2S Hosts; 5) update job assignment status in
the data store (via Web Services 223 Tier); 6) manage workflow of
job and job steps; and 7) automatic recovery of work flow
processing upon start up.
[0452] Example Constraints may include: a) there may be no direct
connection with the Presentation Layer (BCP) or EGM devices and/or
b) inter server communications may be secure. For example, a Secure
Sockets Label (SSL) Web service is one approach to provide secure
communications.
An example Composition may include:
[0453] The Executive component may be multiple components.
Deployment may include an executable program deployed as, for
example, a Windows Service, IIS 260 Web services deployed on the
same server as the Windows Service, and IIS 260 Web services
deployed on each G2S Host Server 211.
TABLE-US-00009 Subcomponent Description Job Creator Interface for
receiving job requests. Transforms jobs to individual EGM
Assignments and adds to the EGM 213 Assignment Queue for delivery
to the destination EGM host. Assignment Reads the EGM 213
Assignment Queue. Dispatcher Determines the G2S Host currently
providing the G2S Host device for a given EGM/Device pair and
delivers EGM assignment to that G2S Host. EGM Assignment Receive
job status updates and updates the device Status Reader class
database (e.g., Config and Download) and notifies the Workflow
Manager of the status change. Workflow Manager Determines changes
to job status and assignment status from the EGM 213 assignment
status. Controls the order and flow of multi-sequence assignment
jobs. DAL Interfaces Encapsulate database access to the job
assignment data and EGM Core data. G2S Executive Receives EGM
assignment from the Assignment Interface Dispatcher. The assignment
is relayed to the G2S Host's Executive Queue, which is read by the
G2S Host and forwarded to the destination EGM. EGM Job Status Sends
EGM status data from the G2S Host to the Executive's EGM Delivery
Assignment Status Reader. Logging Output of event and
diagnostics
Example Uses/Interactions may include:
[0454] The Executive component interacts with the Scheduler, Data
Tier Web Services, G2S Core, Activity (EGM events), and Logging
components. There may be no direct interaction to/from the end
users (Presentation Layer) or the EGM 213 devices.
[0455] The Executive may receive the following from the Scheduler
via the Job Reader interface: a) run new job (See e.g., FIG. 14 and
FIG. 15) and/or b) cancel pending job (See e.g., FIG. 11 and FIG.
14) [0456] Example Resources may include: [0457] CPU The traffic
pattern of incoming requests is not expected to be high and the
processing requirements are minimal. This component may not require
a dedicated processor and should scale to 2500 EGMs utilizing under
20% CPU resources. [0458] Disk The Executive component may not
directly access disk resources. The interactions to data access
layer 222, Activity and Logging may require disk space. The
Scheduler queue and G2S Host queue, if the quantity and size of the
messages in these queues is not significant. Only minimal disk
space for the assembly file (.dll) may be required. [0459] Database
The Execute component may generate a small number of database read,
insert and update queries, the quantity of which is proportional to
the number of assignment operations. [0460] Network This component
interacts with the Scheduler, G2S Host and Web Services data tier
across the network. The quantity of data for all these transactions
is small and should not create significant traffic on the network.
Example Configuration Interface may include:
[0461] Data access layer 222 may store configuration and state
information for the objects being managed by slot management system
101. Configuration files will be used to store all persistent data
that is not stored in the Data tier 224. The configuration files
may include, but are not limited to, values for: a) settings
required for testing; b) limits and constraints; and c)
constants.
[0462] Configuration data values that may be shared across multiple
applications include: 1) executive host; 2) G2S host(s); 3)
executive job interface Uri (referenced by Scheduler); 4) outbound
G2S Host job queue (referenced by G2SHost) and/or 5) inbound G2S
Host job status queue (referenced by G2SHost).
[0463] Programmatic access to the configuration files may be with
the Microsoft.Practices.EnterpriseLibrary.Configuration namespace
classes. These classes allow a single application to use multiple
configuration files, and for multiple applications to share common
configuration files. The details of the data store implementation
are hidden from the Executive component.
[0464] The configuration for the Job Reader Interface may be in the
system.runtime.remoting section of the application configuration
file. The Scheduler may require the client configuration, and the
Executive may use the service and channels configuration. The host
name (or some form of identification) may be used for the client
remoting configuration. If the Scheduler and Executive are not
collocated on the same server and failover is required then a
virtual IP address or host name in the client configuration may be
used.
An example Job Creator may be incorporated as follows:
[0465] The Executive receives job requests from the Scheduler via a
Web service interface. This Web service interfaces with the Job
Creator component and may comprise two methods of calls: RunJob and
CancelJob. The parameters may include the data that identifies the
job.
[0466] The Job Creator reads the EGM 213 assignments comprising the
job from the database via data access layer 222 subcomponents and
outputs the individual EGM assignments to the Assignment Dispatcher
via a Message Queue. The items in the queue are an internal
representation of the EGM 213 assignment. That is, the items may
not be G2S messages or any standard representation and may be
consumed by internal components.
[0467] The Web service interface may be encapsulated into a proxy
class whose assembly may be used by the caller (Scheduler). The
classes referenced by the interface may be in an assembly shared by
both the Scheduler and Executive classes.
[0468] The name of the EGM 213 Assignment message queue may be
known to both the Job Creator (writer) and Assignment Dispatcher
(reader) and may be included in the configuration data store for
the respective components.
An example Assignment Dispatcher may be incorporated as
follows:
[0469] The EGM 213 assignments created by the Job Creator are
consumed by the Executive service 220, transformed to the
destination format and dispatched to the appropriate G2S Host which
is providing G2S services to the destination host.
[0470] The destination information for the EGM 213 Assignment is
determined by a database query via data access layer 222
subcomponents. The destination information includes the target
server and delivery method/protocol (only G2S for this
project).
[0471] The objects read from the EGM 213 Assignment Queue are
transformed from an internal representation to the format required
by the destination. For G2S, the delivery method is a Web service
interface.
[0472] This interface to the G2S Host is encapsulated into a proxy
class. The classes referenced by the interface will be in an
assembly shared by both the Assignment Dispatcher and Executive EGM
Web service component.
An example EGM Assignment Web Service may be incorporated as
follows:
[0473] The G2S Host Handlers will send progress and/or completing
status of the EGM 213 assignment to the Job Status Reader
subcomponent. This interface will be a private Message Queue. The
handlers write to this queue and the EGM 213 Assignment Delivery
component will read from the queue and deliver to the Executive's
Job Status Reader.
[0474] The EGM 213 Assignment Delivery component is a thread within
the G2S Host and may require modification to the G2S Host to launch
and terminate this thread.
[0475] This interface to the Job Status Reader is encapsulated into
a 25 proxy class. The classes referenced by the interface will be
in an assembly shared by both this component and the Job Status
Reader.
An example Job Status Reader may be incorporated as follows:
[0476] The Job Status Reader is the interface between the G2S
Host's EGM Assignment Delivery and the Executive. This component
updates the EGM 213 Assignment status in the appropriate
database(s), and notifies the Workflow Manager of the state
change.
[0477] The Job Status Reader is a Web service deployed on the same
server as the Executive service 220 to allow intra-server
communication methods to the Workflow Manager rather than requiring
yet another Web service interface.
An example Workflow Manager may be incorporated as follows:
[0478] The Workflow manager may be responsible for determining when
updating a job's status based of the status of the EGM 213
assignments of which the job is composed. For example, if there is
an assignment for 5 EGMs 213, then after the fifth EGM assignment
is at a terminal state then the job status is at a terminal
state.
[0479] The Workflow Manager will also contain business logic for
controlling workflow of multi-sequence job assignments with
conditional logic between job assignment sequences. For example, a
denomination change is executed after a game theme change is
successfully completed. Conditional logic may not be within the
scope of this project.
[0480] The Workflow Manager may be a thread within the Executive
service 220.
An example EGM Job Status Deliver may be incorporated as
follows:
[0481] The G2S Host Handlers will send progress and/or completing
status of the EGM 213 assignment to the Job Status Reader
subcomponent. This interface will be a private Message Queue. The
handlers write to this queue and the EGM 213 Assignment Delivery
component will read from the queue and deliver to the Executive's
Job Status Reader.
[0482] The EGM 213 Assignment Delivery component is a thread within
the G2S Host and may require modification to the G2S Host to launch
and terminate this thread.
[0483] This interface to the Job Status Reader may be encapsulated
5 into a proxy class. The classes referenced by the interface may
be in an assembly shared by both this component and the Job Status
Reader.
An example Activity Interface may be incorporated as follows:
[0484] The Executive may send log information to the Activity
Recorder via the Activity Recorder Web Service. The interfaces
implemented for 10 the Floor System may be used and no enhancements
required.
An example Data Access Layer Interfaces may be incorporated as
follows:
[0485] The Data tier 224 provides an API between the Executive
component and the database for storing the configuration/state
information of the objects being managed by Download and
Configuration server network 201, and the "job" information. While
there are three separate databases, the database may hide the
details of the physical implementation from the Executive.
[0486] The Executive may request or effectuate the following
transactions via data access layer 222: 1) query job assignments
for a given schedule; 2) query EGM server identify given the EGM
213 ID and G2S host class; 3) update EGM Job status; 4) update
Assignment Job status; and 5) get next EGM Job step.
[0487] The implementation of data access layer 222 interface may be
a "synchronous" transaction, meaning that the success/failure of
the database operation may be included in the response.
[0488] Example Business Rules may include an event record and may
be created for every request read from the Job Reader
interface.
[0489] Example Deployment Requirements may include the Executive
being deployed in four
[0490] separate components: 1) executive Windows Service, 2)
executive IIS 260 Web services (2), 3) G2S Executive IIS 260 Web
service; and 4) G2S Host.
[0491] Configuration file(s) may also be used for the
deployment.
[0492] FIG. 26 shows an exemplary block diagram of a download 5
handler Web service, according to one illustrated embodiment.
Classification--Web Service
[0493] Definition--This Web Service may expose Web Methods to
consuming components to allow the interaction with the Download
database 227. The data access logic required for the Download
Handler to interact with the Download database 227 is contained
within the Download Handler Web Service.
[0494] Example Constraints may include: a) consuming components may
need to communicate via the Simple Object Access Protocol (SOAP) in
order to consume the Web Service; b) the Web Service may publish a
Web Service Description Language (WSDL) to describe the Web
service, the message format and protocol details and/or c) the Web
Service may return its requested results in the form of a
Serialized DataSet. [0495] An example Composition may include:
TABLE-US-00010 [0495] Subcomponent Description SOAP Proxy
Communication Data Access Handlers Process requests made by
consuming components by communicating with the database with
ActiveX Data Objects (ADO) logic Error Handlers Process and
gracefully handle exceptions Logging Output of event and
diagnostics
Example Uses/Interactions may include:
[0496] The Download Handler Web Service interacts specifically with
the Download Handler via Simple Object Access Protocol (SOAP).
[0497] The Download Handler Web Service interacts with the Download
SQL database with ActiveX Data Objects (ADO) logic.
Example Resources may include:
[0498] The Web Service may utilize a Windows Server version 2000 5
or 2003 platform with the following Windows components running:
a).net Framework version 2.0 and/or b) Internet Information Server
(IIS 260).
Example Processing may include:
[0499] The Download Handler Web Service processes requests made by
consuming components. The requests may be made by the consuming
component calling the Download Handler Web Services exposed Web
Methods. A successful request is dependent upon the consuming
component calling a Web Method by supplying the appropriate query
parameters as dictated by the Web Service Description Language
(WSDL) file. The Web Service processes the request by executing its
embedded Business Logic while logging exceptions and events. The
resulting output is returned to the consuming component.
Example Interface/Exports may include:
[0500] The Download Handler Web Service may consume the Activity
Web Service 243 to log its processing events. The Download Handler
Web Service may also interact with the Download SQL database with
ActiveX Data Objects (ADO) commands. Its capabilities are exposed
as Web Methods which are accessed via the Simple Object Access
Protocol (SOAP).
[0501] FIG. 27 shows an exemplary block diagram of an alternative
configuration handler Web service 239, according to one illustrated
embodiment.
Classification--Web Service
[0502] Definition--This component may expose Web Methods to
consuming components to allow the interaction with the
Configuration database 228. The data access logic required for the
Configuration Handler 232 to interact with the Configuration
database 228 is contained within the Configuration Handler Web
Service 239.
[0503] Example Constraints may include: a) consuming components may
communicate via the Simple Object Access Protocol (SOAP) in order
to consume the Web Service and/or b) the Web Service may publish a
Web Service Description Language (WSDL) to describe the Web
service, the message format and protocol details.
[0504] The Web Service may return its requested results in the form
of a Serialized DataSet. [0505] Example Composition may
include:
TABLE-US-00011 [0505] Subcomponent Description SOAP Proxy
Communication Data Access Handlers Process requests made by
consuming components by communicating with the database with
ActiveX Data Objects (ADO) logic Error Handlers Process and
gracefully handle exceptions Logging Output of event and
diagnostics
Example Uses/Interactions may include:
[0506] The Configuration Handler Web Service 239 interacts with the
Configuration Handler 232 via Simple Object Access Protocol
(SOAP).
[0507] The Configuration Handler Web Service 239 interacts with the
Configuration SQL database with ActiveX Data Objects (ADO)
logic.
Example Resources may include:
[0508] The Web Service may utilize a Windows Server version 2000 or
2003 platform with the following Windows components running. a).net
Framework version 2.0 and/or b) Internet Information Server (IIS
260).
Example Processing may include:
[0509] The Configuration Handler Web Service 239 may process
requests made by consuming components. The requests may be made by
the consuming component calling the Configuration Handler Web
Services 239 exposed Web Methods. A successful request is dependent
upon the consuming component calling a Web Method by supply the
appropriate query parameters as dictated by the Web Service
Description Language (WSDL) file. The Web Service processes the
request by executing its embedded Business Logic while logging
exceptions and events. The resulting output is returned to the
consuming component.
Example Interface/Exports may include:
[0510] The Configuration Handler Web Service 239 may consume the
Activity Web Service 243 to log its processing events. It may also
interact with the Configuration SQL database with ActiveX Data
Objects (ADO) commands. Its capabilities are exposed as Web Methods
which are accessed via the Simple Object Access Protocol
(SOAP).
[0511] FIGS. 28, 28B, and 28C show sequence diagrams of an
exemplary view package, view package modules, and view package
management logs, according to one illustrated embodiment. Some
examples of possible message sequences are shown that may be used
to accomplish the tasks described herein. As most of the Control
panel 216 driven user interface tasks have similar sequences, a few
have been shown to demonstrate the several sequences which are
generalizable and representative of the various procedures
available to a user. Web Services 223 may be designed with fewer
and chunkier messages than what might be done if these were simple
procedure or function calls. Thus the sequence may be one message
such as, for example, GetAssignmentData which would return a
complex XML response spelling out all the attributes of an
assignment. Later the BCP 216 may call SaveAssignment and pass the
entire structure back with modifications.
[0512] The SaveAssignment sequence may be created as part of a
detailed design and implementation. The SaveAssignment sequence may
serve as a bridge between the UI and the database, both of which
have been specified in detail herein.
[0513] Other sequences in this section document the message flow
between the host and an EGM. These have been implemented for all
major use cases as this is an external integration point. While the
G2S protocol documents may specify how these should work, they are
often open to multiple interpretations. These sequences allow the
iView and Alpha teams to compare their expectations with ours and
give the whole team a chance to resolve differences earlier in the
development cycle when it is cheaper.
[0514] An example Verify Package (described in FIG. 4) Sequence may
include:
[0515] The Verify Package use case may perform verification and
authentication on the Software Download Distribution Point (SDDP
252). It may use an encryption algorithm that is stored on a
read-only media so that the regulators can place a tape seal over
the media to prevent any un-authorized DVD/CD into the media.
[0516] There may be two actors who can perform the verification
process. The first actor may be a user on the BCP 216 with the
security role of the Approver. That user can initiate a
verification process on demand from the GUI interface. The second
actor may be the Host System which may be a scheduled task that
runs the verification process once every 24 hours.
[0517] The verification process may be to read an encryption
algorithm and content hash values from a read-only media and
perform the algorithm on the content server to produce new hash
values. Then the two hash values may be compared with each other to
detect if the content has been tampered with. The results from the
verification process may be logged to the database so that audit
reports can be run that show when the process was initiated, by
who, and what the results were. The verification process may also
report if any un-authorized files have been copied to the Software
Download Distribution Point.
[0518] FIGS. 29-46 show exemplary sequence diagrams, according to 5
some illustrated embodiments.
[0519] FIGS. 47A and 47B show exemplary sequence diagrams of a
package management process and a package management system
configuration, according to one illustrated embodiment.
Example Package Management Sequence may include:
[0520] This sequence diagram depicts the four major steps that may
be done to install a package from read only drive (DVD Drive 276)
to SDDP server 252 disk.
[0521] 1-Obtaining SDDP server 252 Disks list: To allow users to
choose the destinations of a package, obtaining SDDP server 252
disks list sequence diagram shows the steps to be implemented to
request SDDP server 252 disks list from core database 231 and send
the result back to Package Management GUI 274, so that the user may
select appropriate destination disk.
[0522] 2-Verifying Hash Codes: Before copying a package from read
only drive to SDDP server 252 disks the validity of the package may
be verified. Verifying hash codes process may compare the hash code
which may be one of read only drive with another hash code that may
be available in package drive, and may verify that those two are
identical.
[0523] 3-Storing Package Info: In this process the package info
which may include hash code, may be stored in Download database
227. Also, the path of SDDP server 252 disk may be stored in this
database.
[0524] 4-Copying Package: In this process the package may be copied
from read only drive to SDDP server 252 disk.
[0525] In one embodiment, the read only drives may be in the same
machine which runs the Package Management GUI 274. Also, SDDP
server 252 disks paths may be hard coded in Package Management GUI
274 (Console Application). Connections to databases may be through
Download GUI Web Service 262.
[0526] FIGS. 48A-48L show an example block diagram of a download 5
ERD database organization, according to one illustrated
embodiment.
An Example Data View--Download
[0527] The download database 227 may encapsulate all the storage
needed to support the download component of the system. It may hold
the current inventory of all EGMs 213 as discovered via the G2S
protocol (which is hereby incorporated) via the communications and
download classes. It may store the assignments used to change that
inventory via download class commands. It may store job state
information for the jobs those assignments use to carry out
downloads and installations. And it may store the inventory of the
SDDP 252.
[0528] Download may be coupled directly or indirectly to the
Schedule and Core databases 231. It leverages schedule to store
assignment schedules for download and install and to queue pending
jobs. It references core to replicate basic EGM information and to
manage EGM collections. As with at least some components, activity
history may be posted to the activity database 230 through Web
Services 223 and may be stored locally in a limited fashion.
[0529] G2S may use the concept of scripts to install downloads and
specify the approvals and other conditions that must be met for an
install to occur. In the Download Database 227 the Script table
with it related command tables may be linked to an assignment. When
a script is sent to an individual EGM to be used, the script data
from these tables may be used as a template to create the
ScriptStatus and related Command Status tables. The ScriptStatuslD
may be used as the script ID in the setScript command. Status for
this script may be tracked within these Script Status tables and
the rows may be used for that instance of the script.
Data Dictionary
[0530] An Example JobQueue
[0531] Hold jobs that are waiting to be run. Scheduler may poll
this table and kick off jobs when the start time has passed. If the
schedule a job is tied to is recurring, then once the current
instance succeeds, the scheduler may create a new row in this table
for the next occurrence of the job using the same parameter data as
the current job.
TABLE-US-00012 QueuedDateTm datetime Date time job placed in queue
PrevCalledDateTm datetime Date time last attempt to call Web method
occurred NextCallDateTm datetime Date time that this job is meant
to be run. Job is run by calling the Web method. CallSucceeded
tinyint Defaults 0. Set to 1 when call succeeds and scheduler can
purge this record. ScheduleID int FK to schedule record this job is
controlled by JobQueueID int Identity PK MaxRetries int Max retries
scheduler should attempt when Web service is unavailable, 0 if no
retries Retries int Number of re-tries attempted. Set to 1 only
after the first retry RetryIntervalSeconds int Number of seconds
between retries ParamData xml Parameter to pass to Web service
WebServiceURI varchar URI of Web service to call WebMethod varchar
Web method on service to call
[0532] An Example Schedule
[0533] May Hold schedule records used by any parts of the system
that stores a schedule. In one embodiment, simple schedule types
with a start date may be supported. In another embodiment,
recurring tasks may also be supported.
TABLE-US-00013 DateCreated datetime Date record created in DB
ScheduleTypeID int FK to the type of schedule ScheduleID int
Identity PK EndDateTm datetime Optional end date and time
StateDateTm datetime Start date and time
[0534] An Example ScheduleType
[0535] May Hold schedule records used by any parts of the system
that stores a schedule. In one embodiment, simple schedule types
with a start date may be supported. In another embodiment,
recurring tasks may also be supported.
TABLE-US-00014 Description varchar Description of the schedule type
ScheduleTypeID int Identity PK ScheduleType varchar Permanent,
PermanentVVithStart, OneTimeOverride, RecurringOverride
[0536] An Example Assignment
[0537] Data for what, when, and who to download or install.
TABLE-US-00015 Deleted tinyint NULL DateTmDeleted datetime NULL
TimeStmp timestamp NULL Active tinyint 1 is active and will be
applied to floor. 0 is not active Approved tinyint 1 is approved.
Must be approved and active to take effect Name varchar Assignment
name. DateCreated datetime Date the assignment was created.
DateTmUpdated datetime Date the assignment was last updated.
DateTmApproved datetime date time approved SetSelection varchar
Defines the selection range for options. (0 all, 1 intersection, 2
union) CoreCollectionID int FK to Associated collection of EGMs
DownloadScheduleID int FK to download schedule for assignment
InstallScheduleID int FK to install schedule for assignment
AssignmentID int Identity PK UpdateUserName varchar login name of
the user who last updated the assignment. ApproveUserName varchar
login name of user who approved assignment Type varchar Type of
assignment. Configuration or Download Description varchar User
entered description of the assignment
[0538] An Example AssignmentJob
[0539] Storage for state and status associated with an assignment
job.
TABLE-US-00016 DateCreated datetime DateTime record created
DateTmUpdated datetime DateTime Status list updated AssignmentID
int FK to Assignment for Job. 0 or more Jobs per Assignment
AssignmentJobID int Identity PK JobState varchar Queued,
InProgress, Complete JobSummary varchar Text to summarize jobs
status for GUI. i.e., 4 of 5 EGMs completed without error 1 of 5
not found.
[0540] An Example AssignmentPackage
[0541] One or more packages that are part of this assignment.
TABLE-US-00017 AssignmentID int NULL PackageID int NULL
[0542] An Example CoreEGM
[0543] EGM data replicated as encountered in messages from Core
TABLE-US-00018 DateTmUpdated datetime NULL DownloadEnabled tinyint
1 if the download class functionally is enabled for the EGM 213, 0
otherwise AssetNumber varchar Asset number as replicated from Core
BankCode varchar Bank Code as replicated from Core GSAEGMID varchar
EGM ID used by GSA G2S messages Manufacturer varchar EGM
Manufacturer Code replicated from Core Serial Number varchar EGM
Serial Number replicated from Core LocationCode varchar Location
Code as replicated from Core CoreEGMID int Same value as replicated
from the Core DB ZoneCode varchar Zone Code as replicated from
Core
[0544] An Example EGMJob
[0545] Sub job of assignment job that applies to a particular
EGM
TABLE-US-00019 CommandID bigint CommandID of last command sent.
This will be returned in the response. JobData xml Data containing
state needed to carry out job - define by job type DateCreated
datetime DateTime record created DateTmUpdated datetime DateTime
Status last updated JobCompleteState varchar Error or Success.
Should we have a look up table? CoreEGMID int FK to EGM for this
Job EGMJobID int Identity PK JobState varchar Queued, InProgress,
Complete. Should we have a look-up table? JobSummary varchar Text
to summarize jobs status for GUI. (e.g., 4 of 5 EGMs completed
without error 1 of 5 not found.) TransactionID bigint Transaction
ID sent by EGM in response to command. Used to tie events to
commands.
[0546] An Example EgmPackage
[0547] Packages that may be on an EGM. From the PackageList
response.
TABLE-US-00020 CoreEgmID int NULL PackageID int NULL PackageState
varchar NULL InstallStartDateTm datetime NULL InstallEndDateTm
datetime NULL
[0548] An Example Package
[0549] Data about a package in the SDDP.
TABLE-US-00021 PackageID int NULL GSAPackageID varchar NULL
Description varchar NULL Type varchar NULL Location varchar NULL
PackageDescriptor xml NULL GSAManufacturerID char Manufacturer
identifier.
[0550] An Example ScheduleSchedule
[0551] Replicated data from the Schedule table in the Schedule
database 229. Allows for enforcing RI locally.
TABLE-US-00022 ScheduleScheduleID int ID of the corresponding
schedule record in the Schedule database.
[0552] FIGS. 49A-49I show an exemplary block diagram of a
configuration ERD database organization or tree, according to one
illustrated embodiment.
An example Configuration may include:
[0553] The configuration database 228 may encapsulate all the
storage needed to support the option configuration component of the
system. It holds the current option configuration of all EGMs 213
as discovered via the G2S protocol in the communications,
optionConfig, and gamePlay classes. This includes options items for
ordinary devices and games which are known in the protocol as game
play devices. It also stores the potential or available option item
choices for each EGM. It stores the assignments used to change
options item values via optionConfig class commands. And it stores
job state information for the jobs those assignments use to carry
out option changes.
[0554] Configuration may be directly or indirectly coupled to the
Schedule and Core databases 231. It leverages schedule to store
assignment schedules and to queue pending jobs. It references core
to replicate basic EGM information and to manage EGM collections.
As with all other components, activity history may be posted to the
activity database 230 through Web Services 223 and may be stored
locally.
[0555] An Example Configuration Database Dictionary
TABLE-US-00023 AllowedEGMTheme AllowedEGMThemeID int NULL
AllowedEGMTheme CoreEGMID int Associated EGM identifier.
AllowedEGMTheme Theme varchar Associated game theme identifier.
AllowedThemeDenom AllowedEGMThemeID int NULL AllowedThemeDenom
Denom int NULL AllowedThemeDenom AllowedThemeDenomID int Primary
key allowable EGM denomination, e.g., 5 cents. AllowedThemePaytable
AllowedThemePayTable int NULL ID AllowedThemePaytable
AllowedEGMThemeID int NULL AllowedThemePaytable PayTable varchar
NULL Assignment DateTmDeleted datetime NULL Assignment TimeStmp
timestamp NULL Assignment Deleted tinyint NULL Assignment Active
tinyint 1 is active and will be applied to floor. 0 is not active
Assignment Approved tinyint 1 is approved. Must be approved and
active to take effect Assignment Name varchar Assignment name.
Assignment DateCreated datetime Date the assignment was created.
Assignment DateTmUpdated datetime Date the assignment was last
updated. Assignment DateTmApproved datetime date time approved
Assignment ManageGameOptions tinyint Defines if the Assignment is
managing game combos. Assignment SetSelection varchar Defines the
selection range for options. (0 all, 1 intersection, 2 union)
Assignment CoreCollectionID int FK to Associated collection of EGMs
Assignment ScheduleID int FK to schedule for assignment Assignment
AssignmentID int Identity PK Assignment ApproveUserName varchar
login name of user who approved assignment Assignment
UpdateUserName varchar Name of the user who last updated the
assignment. Assignment Type varchar Type of assignment.
Configuration or Download Assignment Description varchar User
entered description of the assignment
AssignmentAvailableGamePlayDevice Active tinyint 1 means the
assignment is meant to make this an active game on the EGM 213
AssignmentAvailableGamePlayDevice AssignmentID int FK to assignment
for this GamePlayDevice AssignmentAvailableGamePlayDevice
AllowedThemePaytable int FK to Paytable for ID this GamePlayDevice
AssignmentAvailableGamePlayDevice AllowedEGMThemeID int FK to Theme
for this GamePlayDevice AssignmentAvailableGamePlayDevice
AssignmentAvailableGame int Identity PK PlayDeviceID
AssignmentAvailableGamePlayDeviceDenom AssignmentGamePlay int NULL
DeviceDenomID AssignmentAvailableGamePlayDeviceDenom
AssignmentAvailableGame int NULL PlayDeviceID
AssignmentAvailableGamePlayDeviceDenom Denom int NULL AssignmentJob
DateCreated datetime DateTime record created AssignmentJob
DateTmUpdated datetime DateTime Status last updated AssignmentJob
AssignmentID int FK to Assignment for Job. 0 or more Jobs per
Assignment AssignmentJob AssignmentJobID int Identity PK
AssignmentJob JobState varchar Queued, InProgress, Complete
AssignmentJob JobSummary varchar Text to summarize jobs status for
GUI, i.e., 4 of 5 EGMs completed without error 1 of 5 not found.
AssignmentOptionItem AssignmentOptionItem int NULL ID
AssignmentOptionItem AssignmentID int NULL AssignmentOptionItem
OptionItemDefinitionID int NULL AssignmentOptionItemValue
AssignmentOptionItem int NULL ValueID AssignmentOptionItemValue
AssignmentOptionItem int NULL ID AssignmentOptionItemValue
AssignedValue varchar NULL CoreCollection CoreCollectionID int ID
of the collection in the Core Database CoreEGM DateCreated datetime
NULL CoreEGM DateTmUpdated datetime NULL CoreEGM
OptionConfigEnabled tinyint 1 if the optionConfig class
functionality is enabled for the EGM 213, 0 otherwise CoreEGM
AssetNumber varchar Asset number as replicated from Core CoreEGM
BankCode varchar Bank Code as replicated from Core CoreEGM GSAEGMID
varchar EGM ID used by GSA G2S messages CoreEGM Manufacturer
varchar EGM Manufacturer Code replicated from Core CoreEGM
SerialNumber varchar EGM Serial Number replicated from Core CoreEGM
LocationCode varchar Location Code as replicated from Core CoreEGM
CoreEGMID int Same value as replicated from the Core DB CoreEGM
ZoneCode varchar Zone Code as replicated from Core
EGMAvailableGamePlayDevice EGMAvailableGamePlay int NULL DeviceID
EGMAvailableGamePlayDevice CoreEGMID int NULL
EGMAvailableGamePlayDevice AllowedEGMThemeID int NULL
EGMAvailableGamePlayDevice AllowedEGMPaytableID int NULL
EGMAvailableGamePlayDevice Active tinyint NULL
EGMAvailableGamePlayDevice AssignedActive tinyint NULL
EGMGamePlayDeviceDenom EGMGamePlayDevice int NULL DenomID
EGMGamePlayDeviceDenom EGMAvailableGamePlay int NULL DeviceID
EGMGamePlayDeviceDenom Denom int NULL EGMJob AssignmentJobID int
NULL EGMJob CommandID bigint CommandID of last command sent. This
may be returned in the response. EGMJob JobData xml Data containing
state used to carry out job - define by job type EGMJob DateCreated
datetime DateTime record created EGMJob DateTmUpdated datetime
DateTime Status last updated EGMJob JobCompleteState varchar Error
or Success. Should we have a look up table? EGMJob CoreEGMID int FK
to EGM for this Job EGMJob EGMJobID int Identity PK EGMJob JobState
varchar Queued, InProgress, Complete. Should we have a look-up
table? EGMJob JobSummary varchar Text to summarize jobs status for
GUI, i.e., 4 of 5 EGMs completed without error 1 of 5 not found.
EGMJob TransactionID bigint Transaction ID sent by EGM in response
to command. Used to tie events to commands. OptionDevice deviceID
int Device ID as reported by optionList command OptionDevice
CoreEGMID int FK to EGM this device was reported with via
optionList. 1 or more devices per EGM OptionDevice deviceClass
varchar G2S class enumeration value like G2S_cabinet or
G2S_gamePlay OptionDevice OptionDeviceID int Identity PK
OptionDevice DateCreated datetime Rows in this table are never
modified so we only keep create date OptionGroup DateCreated
datetime DateTime record created OptionGroup OptionDeviceID int FK
to device this group belongs to. 1 or more groups per device.
OptionGroup GroupProtocolID varchar ID of group as defined by
protocol OptionGroup OptionGroupID int Identity PK OptionGroup
GroupProtocolName varchar Name of group as defined by protocol
OptionGroup DateTmUpdated datetime Updates would only occur if name
changes for a give ID OptionItemAssignedValue
OptionItemDefinitionID int 1 or more assigned values may exist for
the referenced definition OptionItemAssignedValue AssignmentID int
Assignment for which value was derived OptionItemAssignedValue
DateTmAssigned datetime DateTime of update OptionItemAssignedValue
OptionItemAssignedValue int Identity PK ID OptionItemAssignedValue
AssignedValue varchar Value the system calculated that the EGM 213
should currently have for this item. It may not match current until
the setChange operation succeeds OptionItemCurrentValue
DateTmUpdated datetime NULL OptionItemCurrentValue
OptionItemDefinitionID int 1 or more current values may exist for
the referenced definition OptionItemCurrentValue CurrentValue
varchar Current Value of this item as reported by EGM
OptionItemCurrentValue OptionItemCurrentValue int Identity PK ID
OptionItemDefaultValue DateTmUpdated datetime NULL
OptionItemDefaultValue OptionItemDefinitinonID int 1 or more
default values may exist for
the referenced definition OptionItemDefaultValue
OptionItemDefaultValue int Identity PK ID OptionItemDefaultValue
DefaultValue varchar The default value as reported by EGM
OptionItemDefinition OptionProtocolID varchar NULL
OptionItemDefinition OptionProtocolName varchar NULL
OptionItemDefinition OptionHelp varchar NULL OptionItemDefinition
OptionType varchar NULL OptionItemDefinition SecurityLevel varchar
NULL OptionItemDefinition CanModEgm tinyint NULL
OptionItemDefinition CanModHost tinyint NULL OptionItemDefinition
MinValue numeric NULL OptionItemDefinition MaxValue numeric NULL
OptionItemDefinition FractionaIDigits int NULL OptionItemDefinition
MinLength int NULL OptionItemDefinition MaxLength int NULL
OptionItemDefinition CurrencyID varchar NULL OptionItemDefinition
DenomID numeric NULL OptionItemDefinition ExchangeRate numeric NULL
OptionItemDefinition MinSelections int NULL OptionItemDefinition
MaxSelections int NULL OptionItemDefinition Duplicates tinyint NULL
OptionItemDefinition DateCreated datetime NULL OptionItemDefinition
DateTmUpdated datetime NULL OptionItemDefinition OptionGroupID int
Group this item belongs to. 1 or more items per group.
OptionItemDefinition OptionItemDefinitionID int Identity PK
OptionItemEnum EnumValue varchar A possible legal value for this
referenced definition. OptionItemEnum OptionItemDefinitionID int FK
to the related Option Item Definition. OptionItemEnum
OptionItemEnumID int Identity PK OptionItemOverrideValue
OptionItemOverrideValue int NULL ID OptionItemOverrideValue
OptionItemDefinitionID int NULL OptionItemOverrideValue
OverrideValue varchar NULL OptionItemOverrideValue DateTmOverridden
datetime NULL ScheduleSchedule ScheduleScheduleID int ID of the
corresponding schedule record in the Schedule database.
[0556] FIG. 50 shows an exemplary block diagram of the schedule
database 229, according to one illustrated embodiment.
An example Schedule database 229 may include:
[0557] The schedule database 229 may have a few tables which
reflects its scope. It may support functions, such as storing
schedule data for other system components as needed, and kicking
off jobs at the scheduled time for those components. Jobs are
kicked off by calling the Web service provided with the parameter
data provided at the time a job is registered with the
scheduler.
[0558] The schedule databases and corresponding sub-system may be
loosely coupled. Its reference to data in other components may be
indirect via the Web method references it stores or it may be
directly coupled to respective components. As with other
components, activity history may be posted to the activity database
230 through Web Services 223 and may be stored locally.
An example Schedule Database Dictionary may include:
[0559] An example JobQueue that may Hold jobs that are waiting to
be run. Scheduler may poll this table and kick off jobs when the
start time has passed. If the schedule a job is tied to is
recurring, then once the current instance succeeds, the scheduler
will create a new row in this table for the next occurrence of the
job using the same parameter data as the current job.
TABLE-US-00024 QueuedDateTm datetime Date time job placed in queue
PrevCalledDateTm datetime Date time last attempt to call Web method
occurred NextCalIDateTm datetime Date time that this job is meant
to be run. Job is run by calling the Web method. CallSucceeded
tinyint Defaults 0. Set to 1 when call succeeds and scheduler can
purge this record. Schedule ID int FK to schedule record this job
is controlled by JobQueueID int Identity PK MaxRetries int Max
retries scheduler should attempt when Web service is unavailable; 0
if no retries Retries int Number of re-tries attempted. Set to 1
only after the first retry RetryIntervalSeconds int Number of
seconds between retries ParamData xml Parameter to pass to Web
service WebServiceURI varchar URI of Web service to call WebMethod
varchar Web method on service to call
[0560] An example Schedule that may Hold schedule records used by
any parts of the system that stores a schedule. In one embodiment,
simple schedule types with a start date may be supported. In
another embodiment, recurring tasks may also be supported.
TABLE-US-00025 DateCreated datetime Date record created in DB
ScheduleTypeID int FK to the type of schedule Schedule ID int
Identity PK EndDateTm datetime Optional end date and time
StateDateTm datetime Start date and time
[0561] An example ScheduleType may Hold schedule records used by
any parts of the system that stores a schedule. In one embodiment,
simple schedule types with a start date may be supported. In
another embodiment, recurring tasks may also be supported.
TABLE-US-00026 Description varchar Description of the schedule type
ScheduleTypeID int Identity PK ScheduleType varchar Permanent,
PermanentWithStart, OneTimeOverride, RecurringOverride
[0562] FIGS. 51A-51Z show exemplary diagrams of menu screens for a
15 control panel 216, according to one illustrated embodiment.
[0563] Example User Interfaces--Control Panel 216
[0564] The client may encapsulate all the functionality to support
the command and control portions of the download and configuration
features of the project. Downloads and configuration options can be
scheduled, or deployed immediately. Notifications, approvals,
searches, and reports in these areas can be viewed.
[0565] Control panel--login to control panel. A user can change the
password through a login password menu.
[0566] FIG. 51D shows an example list of EGMS 213 that may be
selected or dragged onto other windows, according to one
illustrated embodiment.
[0567] FIG. 51E shows an example Collection Navigator menu is shown
that includes a List of named collections that have been saved,
according to one illustrated embodiment.
[0568] FIG. 51F shows an example Assignment Navigator menu is shown
that includes a List of assignments that have been saved, according
to one illustrated embodiment.
[0569] FIG. 51G shows an example Manual Override Navigator menu is
shown that includes a List of EGMs 213 with a current Manual
override in effect, according to one illustrated embodiment.
[0570] FIG. 51H shows an example Inventory menu that lists the full
details of a currently selected EGM, according to one illustrated
embodiment. FIG. 51I shows an example Search menu that presents the
results of a search function, according to one illustrated
embodiment.
[0571] FIG. 51J shows an example Activity Log query and display
which displays a record of what has occurred since the application
was launched, according to one illustrated embodiment.
[0572] FIG. 52A-D shows an example set of Download Assignment
Wizard menus such that the wizard will let the user specify a
download assignment, according to one illustrated embodiment. In
one embodiment, it may have: Identity, packages, schedule, and
review panes.
[0573] A Download Assignment Wizard may be included to pop-up and
provide users with helpful tips or ask if the user needs assistance
and then direct a user to a menu of information, similar to the
Microsoft Windows Wizard. This feature can be disabled by a user,
either by closing the Wizard display or selecting disablement from
an options menu.
[0574] FIG. 53A-E show an example set of Configuration Assignment
Wizard menus such that the wizard may let the user specify a
configuration assignment, according to one illustrated embodiment.
In one embodiment, it may have: Identity, device options, game
bundles, schedule, and review panes.
[0575] Similar to the Download Assignment Wizard, a Configuration
Assignment Wizard may be included to assist users.
[0576] FIG. 54A shows an exemplary floor layout panel that provides
a visual representation of the floor that can be used for
navigation and selection by a user with the BCP in a manner
equivalent to the EGM 213 navigator, according to one illustrated
embodiment.
[0577] FIG. 54B shows an exemplary schedule menu and display that
lets user review jobs, see their status and/or progress, according
to one illustrated embodiment.
[0578] FIG. 54C shows an example tasks list display and menu that
provides a list of tasks where the currently logged in user are
displayed, according to one illustrated embodiment. This window may
have three panels indicating notifications, pending tasks, and
completed tasks. When applicable the user may click on it and
obtain more details about each task. Controls may be utilized to
acknowledge notifications and to mark tasks complete.
[0579] FIG. 55 shows an exemplary casino floor display providing a
visual representation of the casino floor, according to one
illustrated embodiment.
[0580] FIG. 56 shows an exemplary schematic illustration of a
casino network including corporate, back-office and floor networks,
according to one illustrated embodiment.
[0581] FIG. 57 shows a method 5700 of operating a download and
configuration management system to manage a plurality of gaming
machines distributed throughout at least one casino property,
according to one illustrated embodiment.
[0582] At 5702, a download and configuration management system
determines a relatively optimal one of a plurality of download
distribution points geographically distributed throughout the at
least one casino property for at least one of the gaming machines.
At 5704, the download and configuration management system provides
an indication to the at least one of the gaming machines that
indicates the relatively optimal one of the download distribution
points to be used by the at least one of the gaming machines to
download configuration instructions.
[0583] FIG. 58 shows a method 5800 of operating a download and
configuration management system to manage a plurality of gaming
machines distributed throughout at least one casino property,
according to one illustrated embodiment.
[0584] At 5802, the download and configuration management system
determines a relatively optimal one of the download distribution
points based at least in part on a physical location of the
download distribution points with respect to a physical location of
the at least one of the gaming machines. For example, the download
and configuration management system may determine that the optimal
one of the download distribution points is the download and
distribution point that is geographically closest to the particular
gaming machine(s), or the one of the download distribution points
that has the desired downloadable instructions that is
geographically closest to the gaming machine(s).
[0585] FIG. 59 shows a method 5900 of operating a download and
configuration management system to manage a plurality of gaming
machines distributed throughout at least one casino property,
according to one illustrated embodiment.
[0586] At 5902, the download and configuration management system
determines a relatively optimal one of the download distribution
points based at least in part on an availability of respective ones
of the download distribution points with respect to an availability
of other ones of the download distribution points. Thus, the
download and configuration management system may take into account
a current availability, avoiding delays that might otherwise result
from using a download distribution point that is already busy
downloading to other gaming machines. In doing so, the download and
configuration management system may also take into account whether
the download distribution points have the desired downloadable
instructions that are geographically closest to the gaming
machine(s).
[0587] FIG. 60 shows a method 6000 of operating a download and
configuration management system to manage a plurality of gaming
machines distributed throughout at least one casino property,
according to one illustrated embodiment.
[0588] At 6002, the download and configuration management system
determines a relatively optimal one of the download distribution
points based at least in part on a connection speed between
respective ones of the download distribution points and the at
least one gaming machine relative to a connection speed between
other ones of the download distribution point and the at least one
gaming machine. Thus, at 59002, the download and configuration
management system may avoid delays by accounting for differences in
connection speeds. In doing so, the download and configuration
management system may also take into account whether the download
distribution points have the desired downloadable instructions that
are geographically closest to the gaming machine(s).
[0589] FIG. 61 shows a method 6100 of operating a download and
configuration management system to manage a plurality of gaming
machines distributed throughout at least one casino property,
according to one illustrated embodiment.
[0590] At 6102, the download and configuration management system
determines a relatively optimal one of the download distribution
points for a collection of the gaming machines, where each of the
collection of gaming machines include at least two different ones
of the gaming machines. Thus, gaming machines may be grouped or
otherwise placed into collections or sets. The gaming machines may,
for example, be grouped by game type, manufacturer, and or version.
The gaming machines may, for example, be grouped by type of
hardware installed in the gaming machines and/or by the type of
firmware or software, or by a version of the firmware or software.
This may advantageously simplify the configuration and management
of the gaming machines.
[0591] FIG. 62 shows a method 6200 of operating a download and
configuration management system to manage a plurality of gaming
machines distributed throughout at least one casino property,
according to one illustrated embodiment.
[0592] At 6202, the download and configuration management system
determines a relatively optimal one of the download distribution
points based on a combination of a connection speed between
respective ones of the download distribution points and the at
least one gaming machine relative to a connection speed between
other ones of the download distribution point and the at least one
gaming machine and an availability of respective ones of the
download distribution points with respect to an availability of
other ones of the download distribution points. As previously
noted, the download and configuration management system may also
take into account whether the download distribution points have the
desired downloadable instructions that is geographically closest to
the gaming machine(s).
[0593] FIG. 63 shows a method 6300 of operating a download and
configuration management system to manage a plurality of gaming
machines distributed throughout at least one casino property,
according to one illustrated embodiment.
[0594] At 6302, the download and configuration management system
provides an indication to the at least one of the gaming machines
that indicates the relatively optimal one of the download
distribution points to be used by the at least one of the gaming
machines to download configuration instructions, for example by
providing an Internet protocol address. Such causes the gaming
machines to look to the identified download distribution point for
configuration and downloads of instructions (e.g., software,
firmware).
[0595] FIG. 64 shows a method 6400 of operating a download and
configuration management system to manage a plurality of gaming
machines distributed throughout at least one casino property,
according to one illustrated embodiment.
[0596] At 6402, the download and configuration management system
caches a plurality of packages of instructions at the plurality of
download distribution points. The packages of instructions are
downloadable to the gaming machines to redefine the operation of
the gaming machines. Some of the packages of instructions may be
cached by less then all of the download distribution points.
Consequently, there may be identical packages located at two or
more download distribution points, although there may be download
distributions points that do not each have the same packages of
instructions.
[0597] At 6404, the download and configuration management system
stores information at the download and configuration management
server indicative of which of the packages of instructions are
available at which of the download distribution points. Such may
allow the download and configuration management server to determine
a most optimal one of the download distribution points since the
download and configuration management server can determine if the
particular download distribution points has a certain or desired
package of instructions.
[0598] Example Reports software configuration and download project
reports, may provide real-time and historical data. An example
embodiment provides for Download and Configuration reports to be
run on an inter/intranet browser, such as on SSRS. Windows
authentication may be used for security. In other embodiments, the
reports may also or alternatively be run from the BCP. The download
reports may include reports in the Reports Detail Section. In
addition, reports from the Floor System may be imported into the
Download and Configuration project in order for the Download and
Configuration applications to run independently of the floor
system. One or more of the databases from the Floor System may be
included as well.
[0599] An example Detailed Reports Design may include reports which
are generated through and/or based upon the Software Download FRD
2.8 (which is 10 hereby incorporated by reference) and the G2S
specifications.
[0600] Example User Reports may include:
[0601] User Listing with Roles and Group--This report may be
written for the Floor System project and may be imported from that
project.
[0602] Password to Expire in 15 days--This report may be written
for 15 the Floor System project and may be imported from that
project.
[0603] Role with Capabilities--This report may be written for the
Floor System project and may be imported from that project.
[0604] User Activity Role--This report may be written for the Floor
System project and may be imported from that project.
[0605] Assignment Reports--These reports may be provided to show
lists of assignments with summary information. Detail reports are
also available for detailed assignments. They can include the
history of the jobs that have been run on behalf of that
assignment.
An example Package Assignment by EGM--Summary may include:
[0606] Input Parameters: Start Date to End Date range for Package
Create Date.
[0607] Logo: Tech Logo
[0608] Title: Package Assignment by EGM--Summary
[0609] Columns:
[0610] Group: Site Name
[0611] Group: EGM Group
[0612] Detail:
[0613] Package ID, Assignment ID, Module ID, Component, 5 Created
Date, Created By, Approved Date, Approved By, Total packages
assigned, Total EGMs
[0614] Group By: Site, EGM Group (Collection)
[0615] Sort By: Package ID, Module ID
[0616] Sub-Total field: (Example dynamic groupings/collections)
Sub:Total Columns: (Example dynamic groupings/collections)
[0617] Group Total field: Site Name
[0618] Group Total Columns: Total packages assigned, Total EGMs
Grand Total? Yes
[0619] Grand Total Columns: Total packages assigned, Total EGMs
Example Package Assignment by EGM--Summary
XYZ Test Casino
mm/dd/yyyy to mm/dd/yyyy
TABLE-US-00027 [0620] Total Package Assignment Module Component
Create Create Approved Approved Total EGMs ID ID ID ID Date By Date
By Packages Assigned Site: North Tahoe Casino EGM Group: Main Isle
12345987 1000001 200000 128981 10/08/2006 123987 10/08/2006 123999
22 20 Site Sub-Totals: 22 20 Site: South Tahoe Casino EGM Group:
Entrance One 12345999 1000002 200000 128981 10/08/2006 123987
10/08/2006 123999 5 5 EGM Group: Entrance Two 123459600 1000003
200000 128981 10/08/2006 123987 10/08/2006 123999 2 2 Site
Sub-Totals: 7 7 Grand-Totals: 29 27
An example Package Assignment by EGM--Detail may include:
[0621] Input Parameters: [Start Date] to [EndDate] range for
Package Create Date
[0622] Logo: Tech Logo
[0623] Title: Package Assignment by EGM--Summary
[0624] Columns
[0625] Group: Site Name
[0626] Group: EGM Group
[0627] Detail:
[0628] EGM ID, Package ID, Assignment ID, Module ID, Component ID,
Created Date, Created By, Approved Date, Approved By, Total
packages assigned, Total EGMs
[0629] Group By: Site, EGM Group (Collection)
[0630] Sort By: EGM Internal Identifier, Package ID, Module ID
Sub-Total field: n/a
[0631] Sub:Total Columns: n/a Group Total field: Site Name
[0632] Group Total Columns: Total packages assigned, Total EGMs
[0633] Grand Total? Yes
[0634] Grand Total Columns: Total packages assigned, Total EGMs
Example Package Assignment by EGM--Detail
XYZ Test Casino
mm/dd/yyyy to mm/dd/yyyy
TABLE-US-00028 [0635] Total EMG Package Assignment Module Component
Create Create Approved Approved Packages ID ID ID ID ID Date By
Date By Assigned Site: North Tahoe Casino EGM Group: Main Isle
11102 12345987 1000001 200000 128981 10/08/2006 123987 10/08/2006
123999 22 Site Sub-Totals: 22 Site: South Tahoe Casino EGM Group:
Entrance One 21071 12345999 1000002 200000 128981 10/08/2006 123987
10/08/2006 123999 5 EGM Group: Entrance Two 31025 12345600 1000003
200000 128981 10/08/2006 123987 10/08/2006 123999 2 Site
Sub-Totals: 7 Grand-Totals: 29 Total EGMs: 3
Example Module Assignment by EGM--Summary may include:
[0636] Input Parameters: [Start Date] to [EndDate] range for
Assignment Approved Date
[0637] Logo: Tech Logo
[0638] Title: Module Assignment by EGM--Summary
[0639] Columns
[0640] Group: Site Name
[0641] Group: EGM Group
[0642] Detail: Module ID, Package ID, Assignment ID, Component ID,
Created 10 Date, Created By, Approved Date, Approved By, Total
packages assigned, Total EGMs
[0643] Group By: Site, EGM Group (Collection)
[0644] Sort By: Module ID, Package ID Sub-Total field: n/a
[0645] Sub:Total Columns: n/a
[0646] Group Total field: Site Name
[0647] Group Total Columns: Total packages assigned, Total EGMs
[0648] Grand Total? Yes
[0649] Grand Total Columns: Total packages assigned, Total EGMs
Module Assignment by EGM--Summary
XYZ Test Casino
mm/dd/yyyy to mm/dd/yyyy
TABLE-US-00029 [0650] Total Module Package Assignment Component
Create Create Approved Approved Total EGMs ID ID ID ID Date By Date
By Packages Assigned Site: abc casino EGM Group: Main Isle 2000000
12345987 1000001 128981 10/08/2006 123987 mm/dd/yyyy 123999 22 20
Site Sub-Totals: 22 20 Site: def casino EGM Group: Entrance One
200000 12345999 1000002 128981 10/08/2006 123987 10/08/2006 123999
5 5 EGM Group: Entrance Two 200000 123459600 1000003 128981
10/08/2006 123987 10/08/2006 123999 2 2 Site Sub-Totals: 7 7 Grand
Totals: 29 27
An example Module Assignment by EGM--Detail may include:
[0651] Input Parameters: [Start Date] to [EndDate] range for
Assignment Approved Date
[0652] Logo: Tech Logo
[0653] Title: Module Assignment by EGM--Summary
[0654] Columns
[0655] Group: Site Name
[0656] Group: EGM Group
[0657] Detail:
[0658] EGM ID, Module ID, Package ID, Assignment ID, Component ID,
Created Date, Created By, Approved Date, Approved By
[0659] Group By: Site, EGM Group (Collection)
[0660] Sort By: EGM Internal Identifier, Module ID, Package ID
[0661] Sub-Total field: EGM Group
[0662] Sub:Total Columns: Total packages assigned, Total EGMs
[0663] Group Total field: Site Name
[0664] Group Total Columns: Total packages assigned, Total EGM
Groups, Total EGMs
[0665] Grand Total? Yes
[0666] Grand Total Columns: Total packages assigned, Total EGM
Groups, Total EGMs
Example Module Assignment by EGM--Detail
abc Casino
mm/dd/yyyy to mm/dd/yyyy
TABLE-US-00030 [0667] Total EMG Module Package Assignment Component
Create Create Approved Approved Packages ID ID ID ID ID Date By
Date By Assigned Site: abc Casino EGM Group: Main Isle 11102
2000000 12345987 1000001 128981 10/08/2006 123987 mm/dd/yyyy 123999
22 Site Sub-Totals: 22 Site: def Casino EGM Group: Entrance One
21071 2000000 12345999 1000002 128981 10/08/2006 123987 mm/dd/yyyy
123999 5 EGM Group: Entrance Two 31025 2000000 12345600 1000003
128981 10/08/2006 123987 mm/dd/yyyy 123999 2 Site Sub-Totals: 7
Grand-Totals: 29 Total EGMs: 3
[0668] Example User Assignments by Module may include:
[0669] Input Parameters: Start Date to End Date range for
Assignment Approved Date
[0670] Logo: Tech Logo
[0671] Title: User Assignments by Module
[0672] Columns
[0673] Group: Site Name
[0674] Group: User
[0675] Detail:
[0676] User Name, User ID, Module ID, Package ID, Assignment ID,
Component ID, Created Date, Created By, Approved Date, Approved
By
[0677] Group By: Site, User Name
[0678] Sort By: Module ID
[0679] Sub-Total field: EGM Group
[0680] Sub:Total Columns: Total modules assigned
[0681] Group Total field: Site Name
[0682] Group Total Columns: Total modules assigned
[0683] Grand Total? Yes
[0684] Grand Total Columns: Total modules assigned,
[0685] An example Assignment History may include:
[0686] Input Parameters: Start Date to End Date range for
Assignment Approved Date
[0687] Logo: Tech Logo
[0688] Title: Assignment History
[0689] Columns
[0690] Group: Site Name
[0691] Detail:
[0692] User Name, User ID, Module ID, Package ID, Assignment ID,
Component ID, Created Date, Created By, Approved Date, Approved
By
[0693] Group By: Site
[0694] Sort By: Assignment Date Created, Module ID
[0695] Sub-Total field: N/A
[0696] Sub:Total Columns: N/A
[0697] Group Total field: Site Name
[0698] Group Total Columns: Total modules assigned
[0699] Grand Total? Yes
[0700] Grand Total Columns: Total modules assigned,
Job Reports
[0701] Example Job Status History by Assignment may include:
[0702] Input Parameters: Start Date to End Date range for Job
Submit Date
[0703] Logo: Tech Logo
[0704] Title: Job Status History by Assignment
[0705] Columns
[0706] Group: Site Name
[0707] Group: Job ID
[0708] Detail:
[0709] Assignment, Job ID, Package ID, Component ID, Submit Date,
Submitted By, Complete Date, Status
[0710] Group By: Site, Assignment ID
[0711] Sort By: Submit Date
[0712] Sub-Total field: n/a
[0713] Sub:Total Columns: n/a
[0714] Group Total field: Site Name
[0715] Group Total Columns: Total assignments
[0716] Grand Total? Yes
[0717] Grand Total Columns: Total packages assigned
[0718] An example Job Status History by EGM may include:
[0719] Input Parameters: [Start Date] to [EndDate] range for Job
Submit Date
[0720] Logo: Tech Logo
[0721] Title: Job Status History by Assignment
[0722] Columns
[0723] Group: Site Name
[0724] Group: EGM
[0725] Detail:
[0726] Assignment ID, Job ID, Package ID, Component ID, Submit
Date, Submitted By, Complete Date, Status
[0727] Group By: Site, EGM
[0728] Sort By: Job ID, Submit Date
[0729] Sub-Total field: n/a
[0730] Sub:Total Columns: n/a
[0731] Group Total field: Site Name
[0732] Group Total Columns: Total assignments
[0733] Grand Total? Yes
[0734] Grand Total Columns: Total packages assigned
[0735] An example Failed Job History may include:
[0736] Input Parameters: [Start Date] to [EndDate] range for Job
Submit Date
[0737] Internal Select: `Failed` Job Status
[0738] Logo: Tech Logo
[0739] Title: Job Status History by Assignment
[0740] Columns
[0741] Group: Site Name
[0742] Group: Assignment ID
[0743] Detail: Assignment ID, Job ID, Package ID, Component ID
(DownLoad) or
[0744] OptionitemID(Config), Submit Date, Submitted By, Event,
Event Date
[0745] Group By: Site, EGM
[0746] Sort By: Job ID, Submit Date, event, event date
[0747] Sub-Total field: n/a
[0748] Sub:Total Columns: n/a
[0749] Group Total field: Site Name
[0750] Group Total Columns: Total Failed Jobs
[0751] Grand Total? YES
[0752] Grand Total Columns: Total Failed Jobs
[0753] Example Audit Reports may include:
[0754] 1) User Activity;
[0755] 2) EGM Activity;
[0756] 3) Activity Report for Regulators;
[0757] 4) Module Inventory;
[0758] 5) List of Revoked/Outdated Packages;
[0759] 6) Detailed EGM Job;
[0760] 7) Failed EGM Job and/or
[0761] 8) List of Revoked/Outdated Packages.
Example EGM Reports may include:
[0762] EGM Device Inventory Report
[0763] This report may be written for the Floor System project and
may be imported from that project.
[0764] EGM Event
[0765] This report may be written for the Floor System project and
may be imported from that project.
[0766] EGM Meter
[0767] This report may be written for the Floor System project and
may be 10 imported from that project.
[0768] EGM Daily Financial (audited data)
[0769] This report may be written for the Floor System project and
may be imported from that project.
[0770] EGM Listing
[0771] This report may be written for the Floor System project and
may be imported from that project.
[0772] EGM Media
[0773] This report may be written for the Floor System project and
may be imported from that project.
[0774] EGM Game Theme
[0775] This report may be written for the Floor System project and
may be imported from that project.
[0776] Example EGM Group Reports may include:
[0777] Input Parameters: [Start Date] to [EndDate] range for Group
Create Date
[0778] Internal Select: n/a
[0779] Logo: Tech Logo
[0780] Title: EGM Groups
[0781] Columns
[0782] Group: Site Name
[0783] Group: EGM Group
[0784] Detail:
[0785] 1.sup.st header line: EGM ID, Manufacturer ID, Install Date,
. . . Game Combinations . . .
[0786] 2.sup.nd header line Game Theme, PayTable, Denomination
[0787] Group By: Site, EGM Group
[0788] Sort By: EGM ID, Game Theme, Paytable, Denom
[0789] Sub-Total field: n/a
[0790] Sub:Total Columns: n/a
[0791] Group Total field: n/a
[0792] Group Total Columns: n/a
[0793] Grand Total? n/a
[0794] Grand Total Columns: n/a
APPENDIX
TABLE-US-00031 [0795] Definitions, Acronyms, and Abbreviations
Definition, Acronym, Abbreviation Description Control Panel (BCP)
This smart client encapsulates all the functionality to support the
command and control portions of the download and configuration
features of the project. Live Services These are the windows
services which are responsible for executing the Business Logic of
the system. Business Logic Layer Tier The Business Logic Layer is
comprised of the Download and Configuration Windows Services which
are responsible for implementing the Business Logic of the system.
Database SQL Server 2005 returns information based on the results
of retrieving data from the following databases Core Configuration
Download Activity Schedule Database Web Services These are the Web
services that will be able to be re-used by other GUI and Service
Applications in slot management system 101. Data Access Layer Tier
The Data Access Layer is comprised of Web Services which expose
methods for interacting with the Data Tier. EGM Tier The Data Tier
is comprised of Electronic Game Machines (EGM) and other
configurable components like iView and Game Controllers. Electronic
Gaming Machine Gaming machines and/or tables which may include
electo- (EGM) mechanical devices and/or video displays. G2S (Game
to System) The G2S (Game to System) protocol provides a messaging
standard, using XML, for communications between gaming devices
(such as game software, meters, and hoppers) and gaming management
systems (such as progressives, cashless, and accounting). G2S
Engine This service will receive G2S messages from the EGM 213 and
dispatch them to the Live Service based on the message component
type. G2S Download Protocol The G2S download protocol will provide
a standardized protocol to manage the downloaded content on all G2S
compliant EGM from all G2S compliant host systems. G2S Message
Command messages sent to an EGM to update or configure the EGM 213.
G2S optionConfig Protocol The G2S optionConfig protocol will
download options available from within and EGM. The SDDP server
will maintain all down load software packages in a secure library
with a required number of secure backups as defined by the
jurisdiction. G2S Engine Tier The G2S Engine Tier is comprised of
the G2S engine components. Its job is to send and receive G2S
protocol messages to and from EGM and other configurable devices.
It is also responsible for the packaging and unpacking of the
internal system messages and G2S protocol messages. iView
Proprietary device for player touch point services. It is used to
display marketing and player tracking information. While not
currently capable of "gaming", it likely will be downstream, so it
is treated herein as an EGM. Module A manufacturer-defined element
that is a uniquely identifiable unit within the EGM. For example: A
module can be an operating system, or a game theme, firmware for a
printer; etc. A module may be a single WAV sound file that is
shared by other modules. Presentation Tier The Presentation Tier is
comprised of the Control Panel application. The Control Panel
application is the Graphical Interface through which the Download
and Configuration portion of the Live system is managed. SDDP
Server Will maintain all download software packages in a secure
library with a required number of secure backups as defined by the
jurisdiction. package A manufacturer-defined element that can be
thought of as a single file, which contains: an optional download
header that contains information about the package payload. The
package payload, with the payload being a ZIP file, TAR file, an
XML configuration file, a single BIN file, or any file format that
makes sense. The point is that the specific format of the payload
is of no interest to the command and control of the transfer.
Software download The ability to send packages between a Software
Download Distribution Point and one or more EGMs.
[0796] The above description of illustrated embodiments, including
what is described in the Abstract, is not intended to be exhaustive
or to limit the embodiments to the precise forms disclosed.
Although specific embodiments of and examples are described herein
for illustrative purposes, various equivalent modifications can be
made without departing from the spirit and scope of the disclosure,
as will be recognized by those skilled in the relevant art. For
instance, the foregoing detailed description has set forth various
embodiments of the devices and/or processes via the use of block
diagrams, schematics, and examples. Insofar as such block diagrams,
schematics, and examples contain one or more functions and/or
operations, it will be understood by those skilled in the art that
each function and/or operation within such block diagrams,
flowcharts, or examples can be implemented, individually and/or
collectively, by a wide range of hardware, software, firmware, or
virtually any combination thereof. In one embodiment, the present
subject matter may be implemented via Application Specific
Integrated Circuits (ASICs). However, those skilled in the art will
recognize that the embodiments disclosed herein, in whole or in
part, can be equivalently implemented in standard integrated
circuits, as one or more computer programs running on one or more
computers (e.g., as one or more programs running on one or more
computer systems), as one or more programs running on one or more
controllers (e.g., microcontrollers) as one or more programs
running on one or more processors (e.g., microprocessors), as
firmware, or as virtually any combination thereof, and that
designing the circuitry and/or writing the code for the software
and or firmware would be well within the skill of one of ordinary
skill in the art in light of this disclosure. It will also be
appreciated that many of the methods or processes may omit some
acts, include additional acts, and/or may perform the acts in a
different order than described herein, so long as the desired end
result or functionality is achieved.
[0797] In addition, those skilled in the art will appreciate that
the mechanisms as taught herein are capable of being distributed as
a program product in a variety of forms, and that an illustrative
embodiment applies equally regardless of the particular type of
signal bearing media used to actually carry out the distribution.
Examples of signal bearing media include, but are not limited to,
the following: recordable type media such as floppy disks, hard
disk drives, CD ROMs, digital tape, and computer memory; and
transmission type media such as digital and analog communication
links using TDM or IP based communication links (e.g., packet
links).
UDP-Multicast Protocol for a User Interface in a Download and
Configuration Gaming System
[0798] Referring now to FIG. 65, a typical client-server
architecture system with multiple clients requesting information
from a server is shown. In a strict client-server system, the
server never initiates any messages. Accordingly, any messages the
server sends to the client are in response to a client's prior
request. Thus, a problem arises if the server becomes aware of
something that has changed in the system and it needs to notify one
or more of the clients of the change, which the client(s) would
likely be interested in knowing. While a client could "poll" the
server, this is an inefficient use of resources and a poor
architectural design. A preferred embodiment, uses a modified form
of the UDP (User Datagram Protocol) multicast protocol to implement
a one-way notification system 6500 and method between the server
6502 (e.g., DCM (Download and Configuration Manager) engine) and
one or more clients 6504 (e.g., Bally Control Panel (BCP)). UDP is
a connectionless protocol that runs on top of IP network, and
offers a direct way to send and receive datagrams over an IP
network.
[0799] The UDP multicast notification system 6500 enables UDP
messages to be sent only to registered clients, not broadcasted to
all clients. This architecture minimizes network traffic and
enhances system security, since only registered clients receive the
UDP message. The configuration of the UDP multicast notification
system 6500 is relatively easy and does not require the
configuration of network devices in order to support a UDP
multicast. Furthermore, any number of the clients 6504 may be on a
different network domain than the DCM engine 6502. Each of the
clients 6504 contains a display 6506 (e.g., user interface) on
which the UDP messages are displayed.
[0800] FIGS. 65 and 66 illustrate one embodiment of the UDP
multicast notification system 6500. As shown in FIG. 65, a change
has occurred to database table-1 and database table-4. In this
specific non-limiting embodiment, BCP client-1 has registered to
receive notifications concerning table-4, so a notification message
is only sent to BCP client-1. Additionally, in this specific
non-limiting embodiment, BCP client-2 and BCP client-n have
registered to receive notifications about changes to database
table-1. As such, FIG. 65 shows a notification regarding database
table-1 being sent to only clients 2 and "n." Continuing, FIG. 66
shows the UDP multicast notification system 6500 being used to send
jobs status updates to BCP clients 2 and `n` since the "Job Status"
GUI (graphic user interface) is displayed on their monitors. In
this embodiment, the GUI on BCP client-1 does not involve job
status information so BCP client-1 is not interested in Job Status.
Thus, BCP client-1 does not get sent Job Status notification
messages.
[0801] Referring now to FIG. 67, in this embodiment the UDP
Broadcast Processor 6512 is displayed as one component in the DCM
engine 6502. The UDP Broadcast Processor 6512 is responsible for
sending UDP messages to the registered clients 6504 in the network
6510. In one embodiment, the UDP Broadcast Processor 6512 sends UDP
messages to all registered clients 6502 which are listening to
receive UDP messages on a specific port. This enables one-way,
server-to-client(s), communications in what is otherwise a strict
client-to-server-to-client architecture by using the UDP multicast
notification system 6500.
[0802] FIG. 68 illustrates the client registration process.
Implementation of the UDP multicast notification system 6500 begins
with a client application (which in one embodiment is the BCP)
sending a registration message to the DCM engine 6502 with its IP
address in the message. In one embodiment, as shown in FIG. 68, the
registration message also includes what types of notifications the
client 6504 wants to receive. The client 6504 then requests the
port number from the DCM engine 6502, and the DCM engine responds
with the port number on which the client 6504 should listen.
[0803] FIG. 69 illustrates the process of sending a notification
message, and more specifically, illustrates the process that occurs
when the DCM engine 6502 wants to send out a notification message.
In one embodiment, the UDP broadcast processor 6512 queries the
database 6514 for a list of clients 6504 that have registered for a
particular type of notification. The database 6514 then replies
with the list. The UDP broadcast processor 6512 then formats and
sends the notification to all clients 6504 on the list using the
assigned port number.
[0804] FIG. 70 illustrates the process of un-registering a client
6504 from the UDP multicast notification system 6500. Otherwise
stated, FIG. 69 displays the message sequence that occurs when a
client wants to "unregister" from the UDP multicast notification
system 6500. If a user terminates the BCP client application, the
client 6504 asks the DCM engine 6502 to un-register it from the UDP
multicast notification system 6500. This includes deleting the
client's IP address from the database 6514.
Download Progress Management Gaming System
[0805] Referring now to FIG. 71, in one embodiment, the download
and configuration system uses standard G2S messages to convey
progress information from the gaming devices 6520 to the host
server 6530 (e.g., a G2S host server). In this embodiment, the
download and configuration system uses a "packageStatus" message.
The host server 6502 then puts that message into a message queue
6540. The Download and Configuration Manager (DCM) application
reads the message from the message queue 6540 and processes the
message. In one embodiment, the communication chain, message
structure, and protocol are standard G2S protocol, and uses
standard Microsoft Message Queues (MSMQs).
[0806] The vast majority of communication between a Bally Control
Panel (BCP) client 6504, which includes a display 6506 (e.g., the
GUI) and the DCM server 6502 is via a standard communication
protocol, SOAP (Simple Object Access Protocol), which is a true
client-server architecture in which the server 6502 never initiates
any communication. Therefore, if any information (e.g., job
progress information or the like) that needs to be asynchronously
sent to the BCP client 6504, the normal communication channel
cannot be used. A preferred technique, which is described above
with reference with FIGS. 65-70, sends one-way messages from the
DCM server 6502 to the clients 6504 (e.g., BCPs) using is a UDP
broadcast processor 6512.
[0807] In one embodiment, a modified form of the UDP (User Datagram
Protocol) multicast protocol is used to implement a one-way
notification system 6500 between the DCM engine 6502 and other
backend applications and/or system components. In such an
embodiment, the "packageStatus" message is converted and given to
the UDP Broadcast Processor 6512 for distribution to the BCP
clients 6504 that have registered with the UDP Broadcast Processor
6512 to receive download progress notification messages. The UDP
Broadcast Processor 6512 uses a modified form of UDP-multicast for
distributing the notification messages to the BCP client(s) 6504.
Since this is a targeted multicast and not a true broadcast to all
devices on the network, the bandwidth used to notify clients is
minimized.
[0808] This download progress notification feature provides the
ability to view the percentage download progress in the host server
user interface 6506 (part of a BCP client 6504) using a messaging
scheme which overcomes the BCP-initiated protocol used for all
other messaging between BCP client 6504 and DCM server 6502 (i.e.,
client-server). The host server user interface 6506 displays the
progress bar based on the percentage download communicated from the
gaming device (i.e., downloading entity) to the DCM engine 6502.
All downloading gaming devices also send a "download complete"
message. This information can also be used by the server 6502 and
client 6504 to estimate future download time and bandwidth
requirements.
[0809] Finally, it is to be appreciated that the invention has been
described hereabove with reference to certain examples or
embodiments, but that various additions, deletions, alterations and
modifications may be made to those examples and embodiments without
departing from the intended spirit and scope of the disclosed
embodiments. For example, any element or attribute of one
embodiment or example may be incorporated into or used with another
embodiment or example, unless to do so would render the embodiment
or example unpatentable or unsuitable for its intended use. Also,
for example, where the steps of a method are described or listed in
a particular order, the order of such steps may be changed unless
to do so would render the method unpatentable or unsuitable for its
intended use. All reasonable additions, deletions, modifications
and alterations are to be considered equivalents of the described
examples and embodiments and are to be included within the scope of
the following claims.
[0810] The various embodiments described above are provided by way
of illustration only and should not be construed to limit the
disclosed embodiments. Those skilled in the art will readily
recognize various modifications and changes that may be made to the
disclosed embodiments without following the example embodiments and
applications illustrated and described herein, and without
departing from the true spirit and scope of the disclosed
embodiments, which is set forth in the following claims.
* * * * *