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.
1. Technical Field
The present disclosure relates to validation of software modules in a software system, and in particular to module validation for ensuring the integrity of a software module in systems where modules may be provided by different groups.
2. Description of the Related Art
Software systems have been developed which use software modules to perform functions. As systems have become more complicated, different groups, sometimes within an organization and sometimes across different organizations, develop software modules for performing functions which are important to and within the competence of the group. Systems have been developed which integrate software modules from across different groups into a unified whole executable application. Such systems enable new features and functionality, maximize code reuse, improve user interface design, maximize efficiency and exploit talents and strengths of the different groups, enable collaboration among the groups, improve interoperability, and enable visual and non-visual software parts to be built, assembled, and deployed by independent teams on independent schedules.
However, in such systems, it is possible that during the integration process, one or more modules may not be in correct condition to be integrated into the whole executable application. For example, a module may have been modified, altered or tampered with. It is desirable to ensure that all modules to be integrated into the executable application are valid before integrating them into the executable application.
In accordance with principles of the disclosure, software modules are validated at runtime. The validation process verifies that the software module has not been modified since it was installed in the executable application. Such a process may also enforce licensing restrictions.
A computer implemented method of providing security to a workstation having a processor and a processor-readable storage medium with a plurality of modules stored therein, the plurality of modules consisting of a first number (N, where 1<N) of modules, may be summarized as including executing a user-interface application with the processor of the workstation, the user-interface application being stored in the storage medium and having an application shell for at least a second number (M, 1<M≦N) of modules, the second number of modules consisting of modules of the plurality of modules, and the application shell providing a desktop window on a display device; and for each one of the second number of modules, retrieving a respective module of the second number of modules from the storage medium and a corresponding respective authentic module validation indicator from a database of the user-interface application, the database stored in the storage medium, calculating a respective comparison module validation indicator based at least on the retrieved respective module, comparing the comparison module validation indicator with the authentic module validation indicator, and loading the respective retrieved module in the application shell only if the comparison module validation and the authentic module validation indicator are the same.
The method may further include determining whether a first user is authorized for a respective module of the plurality of modules; and preventing the respective module from being loaded in the application shell if the first user is not authorized for the respective module. Determining whether the first user is authorized for a respective module of the plurality of modules may include receiving authentication information indicative of whether the first user is or is not authorized for the respective module from a remote server; and determining whether the first user is or is not authorized based at least on the received authentication information.
The method may further include retrieving a respective user profile from a plurality of user profiles stored in the storage medium of the workstation, the plurality of user profiles including a respective user profile of the first user and at least a respective profile of at least a second user; and determining whether the first user is authorized for a respective module of the plurality of modules based at least on the respective profile of the first user.
The method may further include, prior to retrieving a corresponding respective authentic module validation indicator, decrypting a first password stored in the storage medium, and opening a first connection to the database from which the respective authentic module validation indicator is retrieved based at least on the first password.
The method may further include associating a first password with the first user; encrypting the first password; and storing the encrypted first password in the storage medium, wherein the encrypted first password stored in the storage medium is one of a plurality of encrypted passwords, the plurality of encrypted passwords including a second encrypted password being associated with the at least second user.
The method may further include determining whether the second user is authorized for a respective module of the plurality of modules based at least on the respective profile of the second user.
The method may further include, prior to retrieving a corresponding respective authentic module validation indicator, decrypting a second password stored in the storage medium, and opening a second connection to the database from which the respective authentic module validation indicator is retrieved based at least on the second password.
A networked gaming system may be summarized as including a network; a plurality of gaming machines coupled to the network; and a workstation communicatively coupled to the plurality of gaming machines via the network, the workstation comprising at least one processor and at least one processor-readable storage medium that stores a user-interface application having an application shell, a plurality of modules for the application shell, the plurality of modules consisting of a first number (N, where 1<N) of modules, and instructions that cause the at least one processor to provide a respective graphical user interface, by: initializing the application shell for at least a second number (M, 1<M≦N) of modules in response to input from a respective user of the plurality of users, the second number of modules consisting of modules of the plurality of modules; and for each respective module of the second number of modules, determining whether a respective user of the plurality of users is authorized for the respective module of the second number of modules, determining whether the respective module of the second number of modules is valid, and loading the respective module in the application shell only if both the respective module is valid and the respective user is authorized for the respective module.
The networked gaming system wherein the at least one processor-readable storage medium stores instructions that cause the at least one processor to provide a respective graphical user interface, wherein determining whether the respective module of the second number of modules is valid includes retrieving the respective module of the second number of modules from the storage medium and a corresponding respective authentic module validation indicator from a database of the user-interface application, the database stored in the storage medium; calculating a respective comparison module validation indicator based at least on the retrieved respective module; and comparing the comparison module validation indicator with the authentic module validation indicator, wherein the respective module is valid only if the comparison module validation indicator and the authentic module validation indicator are the same.
The networked gaming system wherein the at least one processor-readable storage medium stores instructions that cause the at least one processor to provide a respective graphical user interface, wherein determining whether a respective user of the plurality of users is authorized for the respective module of the second number of modules includes receiving authentication information indicative of whether the respective user is or is not authorized for the respective module from a remote server, and determining whether the first user is or is not authorized based at least on the received authentication information.
The networked gaming system wherein the at least one processor-readable storage medium stores instructions that cause the at least one processor to provide a respective graphical user interface, further by retrieving a respective user profile from a plurality of user profiles stored in the storage medium of the workstation; and determining whether the respective user is authorized for a respective module of the plurality of modules based at least on the respective profile of the respective user.
The networked gaming system wherein the at least one processor-readable storage medium stores instructions that cause the at least one processor to provide a respective graphical user interface, further by: decrypting a password stored in the storage medium and associated with the respective user; and opening a connection to the database from which the respective authentic module validation indicator is retrieved based at least on the password.
The networked gaming system wherein the at least one processor-readable storage medium stores instructions that cause the at least one processor to provide a respective graphical user interface, further by: associating the password with the respective user; encrypting the password; and storing the encrypted password in the storage medium, wherein the encrypted password stored in the storage medium is one of a plurality of encrypted passwords, each one of the encrypted passwords being associated with another respective user.
A module validation system that validates modules used by a shell application providing a graphical user interface may include a processor-readable storage medium having a database and a plurality of modules stored therein and at least one client database having a respective authentic module validation indicator associated with a respective module included therewith; and a database module enumerator that retrieves a list of modules available for use by a respective user, and for each module in the list of modules, compares a respective comparison module validation indicator with a respective authentic module validation indicator, and loads the respective module in a shell only if the respective comparison module validation indicator and the respective authentic module validation indicator are the same. The database module enumerator may generate the respective comparison module validation indicator based at least on a respective corresponding module stored in the storage medium. The database module enumerator may generate the respective comparison module validation indicator based at least on a secure hash function.
The module validation system may further include a database installer that installs the at least one client database in the storage medium.
The module validation system may further include a module installer that installs the modules in the storage medium.
Other features and numerous advantages of the various embodiments will become apparent from the following detailed description when viewed in conjunction with the corresponding drawings.
FIGS. 2 and 2-1 are a class diagram of a security class structure, according to one illustrated embodiment.
A software system in which embodiments may be implemented is described below.
The software system is loaded into a storage medium of a computer system such as a commercially available Bally control panel or workstation or Bally Desktop computer station, personal computer etc. The software system includes a Desktop application such as a commercially available Bally Desktop application that employs Client Framework architecture. The Desktop application and Client Framework enables the consolidation of the myriad of software products into a single User Interface (UI). It provides usability to users while creating a custom user experience depending upon the users' security role and the installed products.
The Desktop's loosely coupled and modular architecture make it easier to extend and maintain and enables new capabilities to be deployed to customers incrementally, while minimizing downtime. This modularity enables independent development and QA cycles between independent development teams.
The Desktop executable application increases productivity, quality, and the consistency of development, while reducing the overall development time by providing a central UI infrastructure, and enabling independent teams to focus on domain-specific business logic. It increases the reusability between independent teams by providing proven solutions to common client UI development challenges.
As used herein: Modular Design means the application is composed of loosely coupled parts which allows for the modular construction of the application. A UI framework is a prefabricated software infrastructure which enables this loose coupling. An Application Shell is a container that hosts user facing functionality provided by one or more Modules. Business logic is logically separated into Modules or Plug-ins based on the business logic that is implemented. Modules can be developed independently by independent teams.
The Desktop application is a UI development platform/framework that provides a consistent look and feel to Client UI screens while maximizing code reuse. The following are some of the architectural goals considered during the design of the Desktop Architecture: (a) Create reusable source-code components that provide proven solutions to common development challenges; (b) Provide a modular architecture that enables independent development cycles between development pods; (c) Deploy multiple functional UI's with a consistent look and feel; (d) Dynamically load UI elements based on user/role assignments; (e) Create a central infrastructure for security, Data Access, Logging, Web Service Interfaces, etc.; (f) Employ an infrastructure for common architecture patterns like the Model View Controller, Model View Presenter, Publish/Subscribe, or Command Pattern; (g) Enable Windows Presentation Foundation (WPF) development; (h) Provide a transition plan from Win32 forms based development to WPF; and (i) Separate the design and developer roles.
A composite pattern is developed and chosen to enable the manipulation of UI elements in a homogeneous fashion. A Smart Client—Composite UI Application Block (CAB) was developed as the composite pattern implementation starting point for the Desktop application as it provides a proven infrastructure for the composite pattern.
A Smart Client Software Factory (SCSF) is developed and chosen to help provide guidance for the Desktop application's implementation of the composite pattern. The SCSF provides a collection of reusable components, templates, wizards, architectural documentation and patterns, and implementation references. In general the SCSF provides the Desktop application with a high quality starting point for implementing the composite pattern.
Logging in the Desktop application is provided as a service. There are different levels of messages that can be logged depending on the severity of the messages. Following is the list of the severity level in descending severity order:
1. Error
2. Warn
3. Info
4. Verbose
The Desktop framework also provides security functions, such as authentication, authorization and module validation.
FIGS. 2 and 2-1 show a security class structure 200, according to one illustrated embodiment.
In some embodiments, the AuthWeb Security Service 312 may be implemented by a remote computing system or server.
If the authentication fails then the user is informed and the Login dialog reappears. If the user credentials are authenticated then an EnumerateModules method of DatabaseModuleEnumerator 314 is called, which fetches the respective names of the modules to be loaded from a local Desktop Database 316. The user operations corresponding to each module that needs to be loaded are added, and the operations that are permitted for the current user are authorized. The ClientAuthenticationService 306 may call the SecurityProvider Service 310, which may in turn call the AuthWeb Security Service 312 for authorization of the current user for each one or selected ones of the modules. Based on the permitted operations, a decision is made whether a respective module will be loaded or not for some or all of the fetched modules. Below are two conditions under which a module is not loaded:
1. If a user has no operation permission on a given module.
2. If a validation check fails. This is described in more detail below.
Discussed below is an exemplary method for preventing unauthorized users from accessing the database 316.
The client database 408 may be a local database which may be used by the Desktop application and/or Desktop application components, e.g., client application 404 to store and retrieve data.
The installer 502 gets a user to provide a password. The password may be different from a password to logon to the user's workstation. The installer 502 creates a client database 506 for the client application 504. The installer 502 may create the client database 506 based at least on the password.
The installer 502 may create a client configuration file 508, and may encrypt the password and write the encrypted password to the client configuration file 508 file. This encrypted password is used by a Desktop Client application to connect to database 506. The installer 502 creates tables in the database 506 and adds the appropriate data to them. The installer 502 may store a key used to encrypt the password in the client database 506.
A Status Bar is added to the RootWorkItem's UIExtensionSite. A status panel is added to this status bar which is shared by all the modules and the Shell. This status panel is also added to the RootWorkItem's Item collection (to facilitate the retrieval of the object in different modules). Each view generated by the Desktop SCSF Guidance package provides a way to add a message to the status bar. Every view also has a state variable to hold the last displayed message by the view, which facilitates the framework to show status messages relevant to the view in context.
In one embodiment, all views generated by a Desktop SCSF package implement an IViewActivate interface. A Desktop SCSF Guidance package also implements this function in a Generated View class where the Desktop SCSF Guidance package loads the Last Displayed Message by the View to the Status Bar.
Referring to
When modules 1608 are installed (see
Referring to
The memory 1702 may include, among other things, any one or combination of volatile memory elements such as a read-only memory (ROM) and a random access memory (RAM). The random access memory (RAM) may include dynamic random-access memory (DRAM), static random-access memory (SRAM), synchronous dynamic random-access memory (SDRAM), flash RAM, etc.
The memory 1702 may store one or more logic modules or logic routines, each of which may comprise an ordered listing of executable instructions for implementing logical functions. In particular, the memory 1702 stores an operating system 1710 and, among other things, software such as module validation logic 1712 and modules 1714 such as a Desktop Module, for example Bally Desktop, with a user interface (UI) and Enterprise Environment module. The execution of the operating system 1710 by the processor 1704 essentially controls the execution of other logic, such as the desktop application software and provides scheduling, input-output control, file and data management, memory management, and communication control and related services.
The memory 1702 may also store databases 1716 of various ones of the modules 1714, authentic module validation indicators 1718, configuration files, 1720, user profiles 1722, and a respective password 1724 for one or more users of the computing system 1700. A user's password 1724 and/or user profile may be used in determining which ones of the modules 1714 the user is authorized to access or use. A user's password may also be employed in opening a connection to a respective module or modules 1714.
The processor 1704 may be a device for executing software, particularly that stored in the memory 1702. The processor may be a custom made or commercially available processor, a central processing unit (CPU), a semiconductor based microprocessor (in the form of a microchip or chip set), or generally any device for executing software instructions.
In some embodiments, the processor 1704 may execute one or more of the modules 1714 to provide a user of the computing system 1700 with a user interface such as a graphical user interface. One or more of the modules 1714 may be loaded into a shell that provides the user interface. In some embodiments, the processor 1704 may execute the validation logic 1712 at a time before loading a respective module 1714 into a shell such as, but not limited to, during bootup of the computing system 1700, during a login procedure, and/or during an initialization period of an application or module.
The I/O devices 1706 include, among other things, a computer mouse, keyboard, input pad, display devices, touch screens, and speakers.
While the example embodiments have been described with relation to a gaming environment, it will be appreciated that the above concepts can also be applied to any system in which modules and/or plugins are installed at run-time in an executable application.
The foregoing description, for purposes of explanation, uses specific nomenclature and formula to provide a thorough understanding of the embodiments of the invention. It should be apparent to those of skill in the art that the specific details are not required in order to practice the invention. The embodiments have been chosen and described to best explain the principles of the invention and its practical application, thereby enabling others of skill in the art to utilize the invention, and various embodiments with various modifications as are suited to the particular use contemplated. Thus, the foregoing disclosure is not intended to be exhaustive or to limit the invention to the precise forms disclosed, and those of skill in the art recognize that many modifications and variations are possible in view of the above teachings.
This application claims benefit under 35 U.S.C. 119(e) of U.S. Patent Application Ser. No. 61/115,690 filed Nov. 18, 2008 and entitled “Module Validation,” which is incorporated herein by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
4339798 | Hedges et al. | Jul 1982 | A |
4373726 | Churchill et al. | Feb 1983 | A |
4592377 | Paulsen et al. | Jun 1986 | A |
4725079 | Koza et al. | Feb 1988 | A |
4832341 | Muller et al. | May 1989 | A |
4948138 | Pease et al. | Aug 1990 | A |
5083800 | Lockton | Jan 1992 | A |
5179517 | Sarbin et al. | Jan 1993 | A |
5199710 | Lamle | Apr 1993 | A |
5258837 | Gormley | Nov 1993 | A |
5275400 | Weingardt et al. | Jan 1994 | A |
5321241 | Craine | Jun 1994 | A |
5324035 | Morris et al. | Jun 1994 | A |
5326104 | Pease et al. | Jul 1994 | A |
5386103 | DeBan et al. | Jan 1995 | A |
5398932 | Eberhardt et al. | Mar 1995 | A |
5472194 | Breeding et al. | Dec 1995 | A |
5493613 | Denno et al. | Feb 1996 | A |
5505449 | Eberhardt et al. | Apr 1996 | A |
5507489 | Reibel et al. | Apr 1996 | A |
5562284 | Stevens | Oct 1996 | A |
5580311 | Haste, III | Dec 1996 | A |
5605334 | McCrea, Jr. | Feb 1997 | A |
5605506 | Hoorn et al. | Feb 1997 | A |
5613680 | Groves et al. | Mar 1997 | A |
5613912 | Slater | Mar 1997 | A |
5643086 | Alcorn et al. | Jul 1997 | A |
5643088 | Vaughn et al. | Jul 1997 | A |
5651548 | French et al. | Jul 1997 | A |
5655961 | Acres et al. | Aug 1997 | A |
5707287 | McCrea, Jr. | Jan 1998 | A |
5735742 | French | Apr 1998 | A |
5737418 | Saffari et al. | Apr 1998 | A |
5741183 | Acres et al. | Apr 1998 | A |
5745110 | Ertemalp | Apr 1998 | A |
5759102 | Pease et al. | Jun 1998 | A |
5770533 | Franchi | Jun 1998 | A |
5779545 | Berg et al. | Jul 1998 | A |
5800268 | Molnick | Sep 1998 | A |
5813912 | Shultz | Sep 1998 | A |
5823879 | Goldberg et al. | Oct 1998 | A |
5830067 | Graves et al. | Nov 1998 | A |
5830068 | Brenner et al. | Nov 1998 | A |
5850447 | Peyret | Dec 1998 | A |
5851149 | Xidos et al. | Dec 1998 | A |
5890963 | Yen | Apr 1999 | A |
5911626 | McCrea, Jr. | Jun 1999 | A |
5919090 | Mothwurf | Jul 1999 | A |
5936527 | Isaacman et al. | Aug 1999 | A |
5941769 | Order | Aug 1999 | A |
5957776 | Hoehne | Sep 1999 | A |
5971851 | Pascal et al. | Oct 1999 | A |
5999808 | LaDue | Dec 1999 | A |
6001016 | Walker et al. | Dec 1999 | A |
6042150 | Daley | Mar 2000 | A |
6047322 | Vaid et al. | Apr 2000 | A |
6068553 | Parker | May 2000 | A |
6077161 | Wisler | Jun 2000 | A |
6080063 | Khosla | Jun 2000 | A |
6089980 | Gauselmann | Jul 2000 | A |
6093103 | McCrea, Jr. | Jul 2000 | A |
6102799 | Stupak | Aug 2000 | A |
6104815 | Alcorn et al. | Aug 2000 | A |
6106396 | Alcorn et al. | Aug 2000 | A |
6110041 | Walker et al. | Aug 2000 | A |
6110043 | Olsen | Aug 2000 | A |
6117012 | McCrea, Jr. | Sep 2000 | A |
6135887 | Pease et al. | Oct 2000 | A |
6146273 | Olsen | Nov 2000 | A |
6149522 | Alcorn et al. | Nov 2000 | A |
6152824 | Rothschild et al. | Nov 2000 | A |
6165069 | Sines et al. | Dec 2000 | A |
6166763 | Rhodes et al. | Dec 2000 | A |
6168523 | Piechowiak et al. | Jan 2001 | B1 |
6183366 | Goldberg et al. | Feb 2001 | B1 |
6186892 | Frank et al. | Feb 2001 | B1 |
6210277 | Stefan | Apr 2001 | B1 |
6217447 | Lofink et al. | Apr 2001 | B1 |
6219836 | Wells et al. | Apr 2001 | B1 |
6234898 | Belamant et al. | May 2001 | B1 |
6244958 | Acres | Jun 2001 | B1 |
6251014 | Stockdale et al. | Jun 2001 | B1 |
6254483 | Acres | Jul 2001 | B1 |
6254484 | McCrea, Jr. | Jul 2001 | B1 |
6264109 | Chapet et al. | Jul 2001 | B1 |
6264561 | Saffari et al. | Jul 2001 | B1 |
6275586 | Kelly | Aug 2001 | B1 |
6287202 | Pascal et al. | Sep 2001 | B1 |
6302793 | Fertitta, III et al. | Oct 2001 | B1 |
6312332 | Walker et al. | Nov 2001 | B1 |
6346044 | McCrea, Jr. | Feb 2002 | B1 |
6362836 | Shaw et al. | Mar 2002 | B1 |
6383076 | Tiedeken | May 2002 | B1 |
6389126 | Bjornberg et al. | May 2002 | B1 |
6394900 | McGlone et al. | May 2002 | B1 |
6400272 | Holtzman et al. | Jun 2002 | B1 |
6409602 | Wiltshire et al. | Jun 2002 | B1 |
6439996 | LeMay et al. | Aug 2002 | B2 |
6443839 | Stockdale et al. | Sep 2002 | B2 |
6459882 | Palermo et al. | Oct 2002 | B1 |
6460848 | Soltys et al. | Oct 2002 | B1 |
6464584 | Oliver | Oct 2002 | B2 |
6488581 | Stockdale | Dec 2002 | B1 |
6488585 | Wells et al. | Dec 2002 | B1 |
6503147 | Stockdale et al. | Jan 2003 | B1 |
6505772 | Mollett et al. | Jan 2003 | B1 |
6508709 | Karmarkar | Jan 2003 | B1 |
6508710 | Paravia et al. | Jan 2003 | B1 |
6517435 | Soltys et al. | Feb 2003 | B2 |
6517436 | Soltys et al. | Feb 2003 | B2 |
6520857 | Soltys et al. | Feb 2003 | B2 |
6527271 | Soltys et al. | Mar 2003 | B2 |
6527638 | Walker et al. | Mar 2003 | B1 |
6530836 | Soltys et al. | Mar 2003 | B2 |
6530837 | Soltys et al. | Mar 2003 | B2 |
6533276 | Soltys et al. | Mar 2003 | B2 |
6533662 | Soltys et al. | Mar 2003 | B2 |
6575829 | Coleman et al. | Jun 2003 | B2 |
6575833 | Stockdale | Jun 2003 | B1 |
6578847 | Hedrick et al. | Jun 2003 | B1 |
6579180 | Soltys et al. | Jun 2003 | B2 |
6579181 | Soltys et al. | Jun 2003 | B2 |
6581747 | Charlier et al. | Jun 2003 | B1 |
6585598 | Nguyen et al. | Jul 2003 | B2 |
6595857 | Soltys et al. | Jul 2003 | B2 |
6607441 | Acres | Aug 2003 | B1 |
6609978 | Paulsen | Aug 2003 | B1 |
6612928 | Bradford et al. | Sep 2003 | B1 |
6628939 | Paulsen | Sep 2003 | B2 |
6629184 | Berg et al. | Sep 2003 | B1 |
6629591 | Griswold et al. | Oct 2003 | B1 |
6629889 | Mothwurf | Oct 2003 | B2 |
6638169 | Wilder et al. | Oct 2003 | B2 |
6638170 | Crumby | Oct 2003 | B1 |
6641484 | Oles et al. | Nov 2003 | B2 |
6645077 | Rowe | Nov 2003 | B2 |
6652378 | Cannon et al. | Nov 2003 | B2 |
6656048 | Olsen | Dec 2003 | B2 |
6663490 | Soltys et al. | Dec 2003 | B2 |
6675152 | Prasad et al. | Jan 2004 | B1 |
6676522 | Rowe et al. | Jan 2004 | B2 |
6682421 | Rowe et al. | Jan 2004 | B1 |
6682423 | Brosnan et al. | Jan 2004 | B2 |
6685564 | Oliver | Feb 2004 | B2 |
6685567 | Cockerille et al. | Feb 2004 | B2 |
6688979 | Soltys et al. | Feb 2004 | B2 |
6699128 | Beadell et al. | Mar 2004 | B1 |
6702291 | Grebler et al. | Mar 2004 | B2 |
6702672 | Angell et al. | Mar 2004 | B1 |
6712695 | Mothwurf et al. | Mar 2004 | B2 |
6712696 | Soltys et al. | Mar 2004 | B2 |
6718361 | Basani et al. | Apr 2004 | B1 |
6726099 | Becker et al. | Apr 2004 | B2 |
6728740 | Kelly et al. | Apr 2004 | B2 |
6739975 | Nguyen et al. | May 2004 | B2 |
6743102 | Fiechter et al. | Jun 2004 | B1 |
6745330 | Maillot | Jun 2004 | B1 |
6746330 | Cannon | Jun 2004 | B2 |
6752312 | Chamberlain et al. | Jun 2004 | B1 |
6755741 | Rafaeli | Jun 2004 | B1 |
6758751 | Soltys et al. | Jul 2004 | B2 |
6800029 | Rowe et al. | Oct 2004 | B2 |
6811488 | Paravia et al. | Nov 2004 | B2 |
6817948 | Pascal et al. | Nov 2004 | B2 |
6823419 | Berg et al. | Nov 2004 | B2 |
6837789 | Garahi et al. | Jan 2005 | B2 |
6846238 | Wells | Jan 2005 | B2 |
6848994 | Knust et al. | Feb 2005 | B1 |
6866581 | Martinek et al. | Mar 2005 | B2 |
6866586 | Oberberger et al. | Mar 2005 | B2 |
6884173 | Gauselmann | Apr 2005 | B2 |
6884174 | Lundy et al. | Apr 2005 | B2 |
6896618 | Benoy et al. | May 2005 | B2 |
6899627 | Lam et al. | May 2005 | B2 |
6905411 | Nguyen et al. | Jun 2005 | B2 |
6908387 | Hedrick et al. | Jun 2005 | B2 |
6962530 | Jackson | Nov 2005 | B2 |
6971956 | Rowe et al. | Dec 2005 | B2 |
6972682 | Lareau et al. | Dec 2005 | B2 |
6993587 | Basani et al. | Jan 2006 | B1 |
6997803 | LeMay et al. | Feb 2006 | B2 |
7005985 | Steeves | Feb 2006 | B1 |
7025674 | Adams et al. | Apr 2006 | B2 |
7035626 | Luciano, Jr. | Apr 2006 | B1 |
7050056 | Meyringer | May 2006 | B2 |
7062470 | Prasad et al. | Jun 2006 | B2 |
7086947 | Walker et al. | Aug 2006 | B2 |
7099035 | Brooks et al. | Aug 2006 | B2 |
7112138 | Hedrick et al. | Sep 2006 | B2 |
7114718 | Grauzer et al. | Oct 2006 | B2 |
7116782 | Jackson et al. | Oct 2006 | B2 |
7147558 | Giobbi | Dec 2006 | B2 |
7168089 | Nguyen et al. | Jan 2007 | B2 |
7179170 | Martinek et al. | Feb 2007 | B2 |
7186181 | Rowe | Mar 2007 | B2 |
7197765 | Chan et al. | Mar 2007 | B2 |
7198571 | LeMay et al. | Apr 2007 | B2 |
RE39644 | Alcorn et al. | May 2007 | E |
7271727 | Steeves | Sep 2007 | B2 |
7291068 | Bryant et al. | Nov 2007 | B2 |
7303475 | Britt et al. | Dec 2007 | B2 |
7309065 | Yoseloff et al. | Dec 2007 | B2 |
7311605 | Moser | Dec 2007 | B2 |
7329185 | Conover et al. | Feb 2008 | B2 |
7330822 | Robson et al. | Feb 2008 | B1 |
7331520 | Silva et al. | Feb 2008 | B2 |
7337330 | Gatto et al. | Feb 2008 | B2 |
7346682 | Basani et al. | Mar 2008 | B2 |
7349920 | Feinberg et al. | Mar 2008 | B1 |
7351147 | Stockdale et al. | Apr 2008 | B2 |
7356770 | Jackson | Apr 2008 | B1 |
7363342 | Wang et al. | Apr 2008 | B1 |
7364510 | Walker et al. | Apr 2008 | B2 |
7370282 | Cary | May 2008 | B2 |
7384339 | LeMay et al. | Jun 2008 | B2 |
7398327 | Lee | Jul 2008 | B2 |
7410422 | Fine | Aug 2008 | B2 |
7419428 | Rowe | Sep 2008 | B2 |
7427233 | Walker et al. | Sep 2008 | B2 |
7427236 | Kaminkow et al. | Sep 2008 | B2 |
7434805 | Grauzer et al. | Oct 2008 | B2 |
7435179 | Ford | Oct 2008 | B1 |
7438221 | Washington et al. | Oct 2008 | B2 |
7438643 | Brosnan et al. | Oct 2008 | B2 |
7455591 | Nguyen | Nov 2008 | B2 |
7460863 | Steelberg et al. | Dec 2008 | B2 |
7465231 | Lewin et al. | Dec 2008 | B2 |
7473178 | Boyd et al. | Jan 2009 | B2 |
7483394 | Chang et al. | Jan 2009 | B2 |
7500915 | Wolf et al. | Mar 2009 | B2 |
7510474 | Carter, Sr. | Mar 2009 | B2 |
7515718 | Nguyen et al. | Apr 2009 | B2 |
7534169 | Amaitis et al. | May 2009 | B2 |
7549576 | Alderucci et al. | Jun 2009 | B2 |
7559080 | Bhargavan et al. | Jul 2009 | B2 |
7566274 | Johnson et al. | Jul 2009 | B2 |
7575234 | Soltys et al. | Aug 2009 | B2 |
7577847 | Nguyen et al. | Aug 2009 | B2 |
7578739 | Gauselmann | Aug 2009 | B2 |
7585217 | Lutnick et al. | Sep 2009 | B2 |
7594030 | Teodosiu et al. | Sep 2009 | B2 |
7611407 | Itkis et al. | Nov 2009 | B1 |
7611409 | Muir et al. | Nov 2009 | B2 |
7617151 | Rowe | Nov 2009 | B2 |
7618317 | Jackson | Nov 2009 | B2 |
7629886 | Steeves | Dec 2009 | B2 |
7634550 | Wolber et al. | Dec 2009 | B2 |
7637810 | Amaitis et al. | Dec 2009 | B2 |
7644861 | Alderucci et al. | Jan 2010 | B2 |
7648414 | McNutt et al. | Jan 2010 | B2 |
7674179 | Baerlocher et al. | Mar 2010 | B2 |
7682249 | Winans et al. | Mar 2010 | B2 |
7684874 | Schlottmann et al. | Mar 2010 | B2 |
7685516 | Fischer | Mar 2010 | B2 |
7685593 | Solomon et al. | Mar 2010 | B2 |
7686688 | Friedman et al. | Mar 2010 | B2 |
7690995 | Frankulin et al. | Apr 2010 | B2 |
7699697 | Darrah et al. | Apr 2010 | B2 |
7699703 | Muir et al. | Apr 2010 | B2 |
7702719 | Betz et al. | Apr 2010 | B1 |
7722453 | Lark et al. | May 2010 | B2 |
7730198 | Ruppert et al. | Jun 2010 | B2 |
7744462 | Grav et al. | Jun 2010 | B2 |
7747741 | Basani et al. | Jun 2010 | B2 |
7753790 | Nguyen et al. | Jul 2010 | B2 |
7769877 | McBride et al. | Aug 2010 | B2 |
7778635 | Crookham et al. | Aug 2010 | B2 |
7780525 | Walker et al. | Aug 2010 | B2 |
7780526 | Nguyen et al. | Aug 2010 | B2 |
7780529 | Rowe et al. | Aug 2010 | B2 |
7783881 | Morrow et al. | Aug 2010 | B2 |
7785204 | Wells et al. | Aug 2010 | B2 |
7824267 | Cannon et al. | Nov 2010 | B2 |
7828649 | Cuddy et al. | Nov 2010 | B2 |
7841946 | Walker et al. | Nov 2010 | B2 |
7846020 | Walker et al. | Dec 2010 | B2 |
7850528 | Wells | Dec 2010 | B2 |
7857702 | Hilbert | Dec 2010 | B2 |
7862425 | Cavagna | Jan 2011 | B2 |
7874920 | Hornik et al. | Jan 2011 | B2 |
7874921 | Baszucki et al. | Jan 2011 | B2 |
7898679 | Brack et al. | Mar 2011 | B2 |
7901294 | Walker et al. | Mar 2011 | B2 |
7937464 | Ruppert et al. | May 2011 | B2 |
8028046 | Elliott et al. | Sep 2011 | B2 |
8057297 | Silvestro | Nov 2011 | B2 |
8073657 | Moore, III et al. | Dec 2011 | B2 |
8117461 | Bigelow et al. | Feb 2012 | B2 |
20010019966 | Idaka | Sep 2001 | A1 |
20020004824 | Cuan et al. | Jan 2002 | A1 |
20020111213 | McEntee et al. | Aug 2002 | A1 |
20020113371 | Snow | Aug 2002 | A1 |
20020115487 | Wells | Aug 2002 | A1 |
20020142844 | Kerr | Oct 2002 | A1 |
20020142846 | Paulsen | Oct 2002 | A1 |
20030004871 | Rowe | Jan 2003 | A1 |
20030032474 | Kaminkow | Feb 2003 | A1 |
20030042679 | Snow | Mar 2003 | A1 |
20030064798 | Grauzer et al. | Apr 2003 | A1 |
20030075869 | Breeding et al. | Apr 2003 | A1 |
20030078103 | LeMay et al. | Apr 2003 | A1 |
20030090064 | Hoyt et al. | May 2003 | A1 |
20030104865 | Itkis et al. | Jun 2003 | A1 |
20030130024 | Darby | Jul 2003 | A1 |
20030195037 | Vuong et al. | Oct 2003 | A1 |
20030203755 | Jackson | Oct 2003 | A1 |
20030206548 | Bannai et al. | Nov 2003 | A1 |
20030224858 | Yoseloff et al. | Dec 2003 | A1 |
20030228912 | Wells et al. | Dec 2003 | A1 |
20030232651 | Huard et al. | Dec 2003 | A1 |
20040002386 | Wolfe et al. | Jan 2004 | A1 |
20040002388 | Larsen et al. | Jan 2004 | A1 |
20040029635 | Giobbi | Feb 2004 | A1 |
20040043815 | Kaminkow | Mar 2004 | A1 |
20040043820 | Schlottmann | Mar 2004 | A1 |
20040048671 | Rowe | Mar 2004 | A1 |
20040068654 | Cockerille et al. | Apr 2004 | A1 |
20040082385 | Silva et al. | Apr 2004 | A1 |
20040087375 | Gelinotte | May 2004 | A1 |
20040092310 | Brosnan et al. | May 2004 | A1 |
20040106452 | Nguyen et al. | Jun 2004 | A1 |
20040110119 | Riconda et al. | Jun 2004 | A1 |
20040127291 | George et al. | Jul 2004 | A1 |
20040133485 | Schoonmaker et al. | Jul 2004 | A1 |
20040142744 | Atkinson et al. | Jul 2004 | A1 |
20040166940 | Rothschild | Aug 2004 | A1 |
20040185936 | Block et al. | Sep 2004 | A1 |
20040219982 | Khoo et al. | Nov 2004 | A1 |
20040229682 | Gelinotte | Nov 2004 | A1 |
20050026680 | Gururajan | Feb 2005 | A1 |
20050043094 | Nguyen et al. | Feb 2005 | A1 |
20050051965 | Gururajan | Mar 2005 | A1 |
20050054408 | Steil et al. | Mar 2005 | A1 |
20050054438 | Rothschild et al. | Mar 2005 | A1 |
20050054445 | Gatto et al. | Mar 2005 | A1 |
20050070358 | Angell et al. | Mar 2005 | A1 |
20050080898 | Block | Apr 2005 | A1 |
20050116020 | Smolucha et al. | Jun 2005 | A1 |
20050119052 | Russell et al. | Jun 2005 | A1 |
20050124411 | Schneider et al. | Jun 2005 | A1 |
20050153778 | Nelson et al. | Jul 2005 | A1 |
20050164761 | Tain | Jul 2005 | A1 |
20050176507 | Ephrati | Aug 2005 | A1 |
20050192099 | Nguyen et al. | Sep 2005 | A1 |
20050222891 | Chan et al. | Oct 2005 | A1 |
20050239542 | Olsen | Oct 2005 | A1 |
20050282626 | Manfredi et al. | Dec 2005 | A1 |
20060004618 | Brixius | Jan 2006 | A1 |
20060009282 | George et al. | Jan 2006 | A1 |
20060015716 | Thornton et al. | Jan 2006 | A1 |
20060019745 | Benbrahim | Jan 2006 | A1 |
20060026499 | Weddle | Feb 2006 | A1 |
20060035707 | Nguyen et al. | Feb 2006 | A1 |
20060035713 | Cockerille et al. | Feb 2006 | A1 |
20060046849 | Kovacs | Mar 2006 | A1 |
20060116208 | Chen et al. | Jun 2006 | A1 |
20060121970 | Khal | Jun 2006 | A1 |
20060183541 | Okada et al. | Aug 2006 | A1 |
20060195847 | Amano et al. | Aug 2006 | A1 |
20060196686 | Gatto et al. | Sep 2006 | A1 |
20060205508 | Green | Sep 2006 | A1 |
20060247013 | Walker et al. | Nov 2006 | A1 |
20060247057 | Green et al. | Nov 2006 | A1 |
20060248161 | O'Brien et al. | Nov 2006 | A1 |
20060253702 | Lowell et al. | Nov 2006 | A1 |
20060277487 | Poulsen et al. | Dec 2006 | A1 |
20070004501 | Brewer et al. | Jan 2007 | A1 |
20070015583 | Tran | Jan 2007 | A1 |
20070026935 | Wolf et al. | Feb 2007 | A1 |
20070032288 | Nelson et al. | Feb 2007 | A1 |
20070033247 | Martin | Feb 2007 | A1 |
20070054740 | Salls et al. | Mar 2007 | A1 |
20070057453 | Soltys et al. | Mar 2007 | A1 |
20070057454 | Fleckenstein | Mar 2007 | A1 |
20070057469 | Grauzer et al. | Mar 2007 | A1 |
20070060259 | Pececnik | Mar 2007 | A1 |
20070060307 | Mathis et al. | Mar 2007 | A1 |
20070060365 | Tien et al. | Mar 2007 | A1 |
20070077995 | Oak et al. | Apr 2007 | A1 |
20070082737 | Morrow et al. | Apr 2007 | A1 |
20070093298 | Brunet | Apr 2007 | A1 |
20070105628 | Arbogast et al. | May 2007 | A1 |
20070111775 | Yoseloff | May 2007 | A1 |
20070111791 | Arbogast et al. | May 2007 | A1 |
20070111794 | Hogan et al. | May 2007 | A1 |
20070117608 | Roper et al. | May 2007 | A1 |
20070124483 | Marples et al. | May 2007 | A1 |
20070129145 | Blackburn et al. | Jun 2007 | A1 |
20070150329 | Brook et al. | Jun 2007 | A1 |
20070155490 | Phillips et al. | Jul 2007 | A1 |
20070167235 | Naicker | Jul 2007 | A1 |
20070191102 | Coliz et al. | Aug 2007 | A1 |
20070192748 | Martin et al. | Aug 2007 | A1 |
20070198418 | MacDonald et al. | Aug 2007 | A1 |
20070208816 | Baldwin et al. | Sep 2007 | A1 |
20070214030 | Shear et al. | Sep 2007 | A1 |
20070218998 | Arbogast et al. | Sep 2007 | A1 |
20070235521 | Mateen et al. | Oct 2007 | A1 |
20070241497 | Soltys et al. | Oct 2007 | A1 |
20070241498 | Soltys | Oct 2007 | A1 |
20070243925 | LeMay et al. | Oct 2007 | A1 |
20070243927 | Soltys | Oct 2007 | A1 |
20070243935 | Huizinga | Oct 2007 | A1 |
20070259709 | Kelly et al. | Nov 2007 | A1 |
20070259711 | Thomas | Nov 2007 | A1 |
20070287535 | Soltys | Dec 2007 | A1 |
20070298868 | Soltys | Dec 2007 | A1 |
20080004108 | Klinkhammer | Jan 2008 | A1 |
20080009344 | Graham et al. | Jan 2008 | A1 |
20080026832 | Stevens et al. | Jan 2008 | A1 |
20080026848 | Byng | Jan 2008 | A1 |
20080038035 | Shuldman et al. | Feb 2008 | A1 |
20080045341 | Englman | Feb 2008 | A1 |
20080064501 | Patel | Mar 2008 | A1 |
20080065590 | Castro et al. | Mar 2008 | A1 |
20080076572 | Nguyen et al. | Mar 2008 | A1 |
20080085772 | Iddings et al. | Apr 2008 | A1 |
20080090651 | Baerlocher | Apr 2008 | A1 |
20080096659 | Kreloff et al. | Apr 2008 | A1 |
20080108433 | DiMichele et al. | May 2008 | A1 |
20080113764 | Soltys | May 2008 | A1 |
20080113773 | Johnson et al. | May 2008 | A1 |
20080113781 | Soltys et al. | May 2008 | A1 |
20080119284 | Luciano, Jr. et al. | May 2008 | A1 |
20080146337 | Halonen et al. | Jun 2008 | A1 |
20080153599 | Atashband et al. | Jun 2008 | A1 |
20080153600 | Swarna | Jun 2008 | A1 |
20080154916 | Atashband | Jun 2008 | A1 |
20080155665 | Ruppert et al. | Jun 2008 | A1 |
20080162729 | Ruppert | Jul 2008 | A1 |
20080171588 | Atashband | Jul 2008 | A1 |
20080171598 | Deng | Jul 2008 | A1 |
20080200255 | Eisele | Aug 2008 | A1 |
20080243697 | Irving et al. | Oct 2008 | A1 |
20080244565 | Levidow et al. | Oct 2008 | A1 |
20080261701 | Lewin et al. | Oct 2008 | A1 |
20080287197 | Ruppert et al. | Nov 2008 | A1 |
20080293494 | Adiraju et al. | Nov 2008 | A1 |
20080311971 | Dean | Dec 2008 | A1 |
20080318685 | Oak et al. | Dec 2008 | A9 |
20090005176 | Morrow et al. | Jan 2009 | A1 |
20090005177 | Kishi et al. | Jan 2009 | A1 |
20090011833 | Seelig et al. | Jan 2009 | A1 |
20090029775 | Ruppert et al. | Jan 2009 | A1 |
20090325708 | Matsumura | Feb 2009 | A9 |
20090115133 | Kelly et al. | May 2009 | A1 |
20090117994 | Kelly et al. | May 2009 | A1 |
20090118001 | Kelly et al. | May 2009 | A1 |
20090118005 | Kelly et al. | May 2009 | A1 |
20090118006 | Kelly et al. | May 2009 | A1 |
20090124329 | Palmisano | May 2009 | A1 |
20090124392 | Ruppert et al. | May 2009 | A1 |
20090124394 | Swarna | May 2009 | A1 |
20090125603 | Atashband et al. | May 2009 | A1 |
20090131144 | Allen | May 2009 | A1 |
20090131163 | Arbogast et al. | May 2009 | A1 |
20090132720 | Ruppert et al. | May 2009 | A1 |
20090170594 | Delaney et al. | Jul 2009 | A1 |
20090176556 | Gagner et al. | Jul 2009 | A1 |
20090176580 | Herrmann et al. | Jul 2009 | A1 |
20090181776 | Deng | Jul 2009 | A1 |
20090253483 | Pacey et al. | Oct 2009 | A1 |
20090270170 | Patton | Oct 2009 | A1 |
20090275394 | Young et al. | Nov 2009 | A1 |
20090275400 | Rehm et al. | Nov 2009 | A1 |
20090275401 | Allen et al. | Nov 2009 | A1 |
20090275402 | Backover et al. | Nov 2009 | A1 |
20090276341 | McMahan et al. | Nov 2009 | A1 |
20090298583 | Jones | Dec 2009 | A1 |
20090307069 | Meyerhofer | Dec 2009 | A1 |
20100016067 | White et al. | Jan 2010 | A1 |
20100016068 | White et al. | Jan 2010 | A1 |
20100029385 | Garvey et al. | Feb 2010 | A1 |
20100048291 | Warkentin | Feb 2010 | A1 |
20100093441 | Rajaraman et al. | Apr 2010 | A1 |
20100124990 | Crowder | May 2010 | A1 |
20100125851 | Singh et al. | May 2010 | A1 |
20100130280 | Arezina et al. | May 2010 | A1 |
20100131772 | Atashband et al. | May 2010 | A1 |
20100151926 | Ruppert et al. | Jun 2010 | A1 |
20100161798 | Ruppert et al. | Jun 2010 | A1 |
20100234104 | Ruppert et al. | Sep 2010 | A1 |
20100248842 | Ruppert | Sep 2010 | A1 |
20110009184 | Byng | Jan 2011 | A1 |
20110009188 | Adiraju et al. | Jan 2011 | A1 |
20110124417 | Baynes et al. | May 2011 | A1 |
20120110649 | Murphy | May 2012 | A1 |
Number | Date | Country |
---|---|---|
19940954 | Mar 2001 | DE |
1074955 | Feb 2001 | EP |
1291045 | Mar 2003 | EP |
1463008 | Sep 2004 | EP |
2380143 | Apr 2003 | GB |
8255059 | Oct 1996 | JP |
2001-0084838 | Sep 2001 | KR |
2002-0061793 | Jul 2002 | KR |
2003-0091635 | Dec 2003 | KR |
9603188 | Feb 1996 | WO |
9636253 | Nov 1996 | WO |
0205914 | Jan 2002 | WO |
03060846 | Jul 2003 | WO |
2005035084 | Apr 2005 | WO |
2007033207 | Mar 2007 | WO |
Entry |
---|
Bally Technologies, Inc., iVIEW, http://ballytech.com/systems/product.cfm?id=9, download date Nov. 6, 2007, 2 pages. |
Bally TMS, “MP21—Automated Table Tracking/Features,” 2 pages, Nov. 2005. |
Bally TMS, “MPBacc—Specifications/Specifications,” 2 pages, Nov. 2005. |
Bally TMS, “MPLite—Table Management System/Features,” 2 pages, Nov. 2005. |
Bulavsky, J., “Tracking the Tables,” Casino Journal, May 2004, pp. 44-47, accessed Dec. 21, 2005, URL = http://www.ascendgaming.com/cj/vendors—manufacturers—table/Trackin916200411141AM.htm, 5 pages. |
Burke, A., “Tracking the Tables,” reprinted from International Gaming & Wagering Business, Aug. 2003, 4 pages. |
Gros, R., “All You Ever Wanted to Know About Table Games,” reprinted from Global Gaming Business, Aug. 1, 2003, 2 pages. |
Hewlett Packard Handhelds, accessed Sep. 8, 2003, URL = http:/www.shopping.hp.com/cgi-bin/hpdirect/shopping/scripts/home/store—access.jsp?temp . . ., 2 pages. |
International Guild of Hospitality & Restaurant Managers, “Shuffle Master, Inc. (NasdaqNM:SHFL),” accessed Dec. 30, 2003, URL = http://hospitalityguide.com/Financial/Casinos/Shuffle.htm, 3 pages. |
MagTek, “Port Powered Swipe Reader,” Technical Reference Manual, Manual Part No. 99875094 Rev 12, Jun. 2003, 20 pages. |
Mikohn, “Mikohn Tablelink—The Industry's Premier Table Tracking Solution Delivers Improvements Straight to the Bottom Line,” 2 pages, before Jan. 1, 2004. |
Palermo, V. “Near-field magnetic comms emerges,” EE Times Design, Oct. 31, 2003. |
Semtek PDA & Handheld Devices, Compaq iSwipe™ Magnetic Card Reader, accessed Sep. 8, 2003, URL = http:/www.semtek.com/products/iswipe.html, 3 pages. |
Terdiman, D., “Who's Holding the Aces Now?”, reprinted from Wired News, Aug. 18, 2003, 2 pages. |
Winkler, C., “Product Spotlight: MindPlay,” reprinted from Gaming and Leisure Technology, Fall 2003, 2 pages. |
Number | Date | Country | |
---|---|---|---|
20100131772 A1 | May 2010 | US |
Number | Date | Country | |
---|---|---|---|
61115690 | Nov 2008 | US |