US20060247057A1 - Logic Interface Engine System and Method - Google Patents
Logic Interface Engine System and Method Download PDFInfo
- Publication number
- US20060247057A1 US20060247057A1 US11/278,937 US27893706A US2006247057A1 US 20060247057 A1 US20060247057 A1 US 20060247057A1 US 27893706 A US27893706 A US 27893706A US 2006247057 A1 US2006247057 A1 US 2006247057A1
- Authority
- US
- United States
- Prior art keywords
- message
- command
- commands
- outbound
- inbound
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F17/00—Coin-freed apparatus for hiring articles; Coin-freed facilities or services
- G07F17/32—Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
- G07F17/3202—Hardware aspects of a gaming system, e.g. components, construction, architecture thereof
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F17/00—Coin-freed apparatus for hiring articles; Coin-freed facilities or services
- G07F17/32—Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F17/00—Coin-freed apparatus for hiring articles; Coin-freed facilities or services
- G07F17/32—Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
- G07F17/3202—Hardware aspects of a gaming system, e.g. components, construction, architecture thereof
- G07F17/3223—Architectural aspects of a gaming system, e.g. internal configuration, master/slave, wireless communication
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F17/00—Coin-freed apparatus for hiring articles; Coin-freed facilities or services
- G07F17/32—Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
- G07F17/3225—Data transfer within a gaming system, e.g. data sent between gaming machines and users
- G07F17/323—Data transfer within a gaming system, e.g. data sent between gaming machines and users wherein the player is informed, e.g. advertisements, odds, instructions
Definitions
- This invention relates generally to a system and method for providing an interface layer between command-driven devices and a logical communication channel, and more particularly, to a system and method for providing a logic interface engine that is utilized as an interface layer between command-driven devices and a logical communication channel.
- network data is gathered and transformed into a standard format before they are transmitted over a network.
- the information is converted into a data stream that corresponds with the packet structure of the network transfer protocol. This is also true with respect to command protocols and message protocols, which often must be converted when transmitting between various locations, systems, and devices.
- interface and transport layers have been designed to package and send individual messages and commands with little or no organization of those commands.
- messages are typically sent on a first-in, first-out (FIFO) basis from a general message stack in which the messages are collected.
- the stack may become bogged down with messages and commands to and from various components in a bus or network structure.
- the order of processing the messages may be altered according to priority, the message stack operates with little or no regard to origin or destination.
- received messages and commands are processed as they are received, usually on a FIFO basis, and without regard to origin or destination.
- one incoming and one outgoing stack is typically used at the transport or command layer in a system.
- the logic interface device includes: a logic controller, a command router, one or more message processors, and a transport layer.
- the logic controller includes a plurality of object classes that correspond to components of the gaming device.
- the object classes send outbound commands.
- the command router receives the outbound commands sent by the object classes.
- the command router includes a plurality of command inQueues (inbound queues) that correspond to the object classes of the logic controller.
- the object classes receive inbound commands sent from the command inQueues (inbound queues) of the command router.
- the command router duplicates commands, as required, and sends outbound commands.
- the one or more message processors each include a corresponding host, message builder, and message splitter.
- the host of each message processor receives an outbound command sent by the command router.
- the message builder of each message processor groups and encapsulates outbound commands into a single outbound message per host.
- the message splitter of each message processor parses inbound messages into multiple inbound commands, Additionally, the command router receives inbound commands from the hosts of the message processors, and the message processors send outbound messages.
- the transport layer receives the outbound messages sent by the message processors, sends inbound messages to the message processors, and sends outbound messages to the logical communication channel.
- the object classes include at least one of a device class, a communication class, a cabinet class, a processor class, or a meters class.
- the command router uses a device-to-host subscription list to direct outbound commands to appropriate message processors. Additionally, the command router uses the device-to-host subscription list to route inbound commands to command inQueues (i.e., inbound queues).
- a communication device class connection provides improved access to host status by enabling communications status information to travel through the command router and the message processor to the communication device class.
- the message splitters include acknowledgement logic that enables the message splitters to send an acknowledgement receipt after commands have been transmitted.
- a logical communication channel comprises a network.
- the logical communication channel comprises an Ethernet, serial, or universal serial bus.
- one or more system hosts are connected to the logical communication channel to enable communication with the gaming devices via the logic interface device.
- the logic interface device is asynchronous.
- each controllable component of the gaming device has a corresponding object class in the logic controller.
- the logic interface device enables a modular breakdown of components on a gaming platform.
- a method for interfacing between a gaming device and a logical communication channel includes: providing control logic, wherein the control logic includes a plurality of object classes that correspond to components of the gaming device, and wherein the object classes send outbound commands; routing inbound and outbound commands using a command router, wherein the command router receives the outbound message commands sent by the object classes, wherein the command router includes a plurality of command inQueues (inbound queues) that correspond to the object classes of the logic controller, wherein the object classes receive inbound message commands sent from the command inQueues (inbound queues) in the command router, and wherein the command router duplicates command as required and sends outbound commands; processing outbound commands and inbound messages using one or more message processors, each message processor including a corresponding host, message builder, and message splitter, wherein the host of each message processor receives an outbound command sent by the command router, wherein the message builder of each message processor groups and encapsulates outbound
- a method for sending outbound information from a gaming device to a logical communication channel includes: providing control logic, wherein the control logic includes a plurality of object classes that correspond to components of the gaming device; sending outbound commands from the object classes to a command router-receiving outbound commands at the command router sent by the object classes; routing outbound commands using a command router, wherein the command router includes a plurality of command inQueues (inbound queues) that correspond to the object classes of the logic controller; duplicating commands as required and sending outbound commands from the command router to one or more message processors; receiving one or more outbound commands at a host of a message processor that are sent by the command router; processing outbound commands using one or more message processors, each message processor including a corresponding host, message builder, and message splitter; grouping and encapsulating outbound commands into a single outbound message per host at a message builder of a message processor; sending outbound messages from the message processors to
- a method for receiving inbound information from a logical communication channel to a gaming device includes: providing control logic, wherein the control logic includes a plurality of object classes that correspond to components of the gaming device; routing inbound commands to the plurality of object classes using a command router, wherein the command router includes a plurality of command inQueues (inbound queues) that correspond to the object classes of the logic controller, wherein the object classes receive inbound message commands sent from the command inQueues (inbound queues) of the command router; processing inbound messages from a transport layer using one or more message processors, each message processor including a corresponding host, message builder, and message splitter, wherein the message splitter of each message processor parses inbound messages into multiple inbound commands, wherein the command router receives inbound commands from the hosts of the message processors; and receiving inbound messages at a transport layer from the logical communication channel.
- a logical interface system interfaces between a non-gaming device (e.g., a non-gaming command-driven device) and a logical interface channel.
- a non-gaming device e.g., a non-gaming command-driven device
- FIG. 1 illustrates a relational diagram of the logic interface engine showing data flow through various components of a preferred embodiment
- FIG. 2 illustrates a relational diagram showing various components of a logic controller, in accordance with a preferred embodiment
- FIG. 3 illustrates a relational diagram showing various components of a command router, in accordance with a preferred embodiment
- FIG. 4 illustrates a relational diagram showing data flow through message processors, in accordance with a preferred embodiment
- FIG. 5 illustrates a relational diagram showing various components of a transport layer, in accordance with a preferred embodiment
- FIG. 6 illustrates a relational diagram showing inbound and outbound data flow through various components of logic interface engine, in accordance with a preferred embodiment.
- a preferred embodiment of a logic interface engine and system constructed in accordance with the claimed invention, is directed towards an interface device that is utilized between an electronic gaming machine (EMG) and a logical communication channel.
- EMG electronic gaming machine
- a preferred embodiment of the logic interface engine increases reliability and expandability with respect to interfacing gaming devices and logical communication channels.
- the logic interface device enables a modular breakdown of components on a gaming platform.
- the logic interface engine is utilized as an interface layer between other generic (non-gaming) devices and other logical communication channels (e.g., Ethernet, serial, USB, or other logical channel).
- the generic (non-gaming) devices are command-driven devices.
- FIGS. 1-5 there is shown one embodiment of a logic interface engine 10 constructed in accordance with the claimed invention.
- the logic interface engine 10 includes a logic controller 20 , a command router 30 , a message processor 40 , and a transport layer 50 .
- the logic interface engine 10 is an interface device that, in one embodiment, is utilized between an electronic gaming machine (EMG) and a logical communication channel.
- EMG electronic gaming machine
- the logic interface engine 10 is defined as the complete interface between the EGM and the logical communication channel, but excludes (i.e., is not utilized for interfacing with) communication channel drivers.
- persistent memory is only available outside of the grand transport block 60 (i.e., the command router 30 , the message processor 40 , and the transport layer 50 ).
- different manufactures/platforms can provide persistent memory API points that the grand transport block 60 can reference indirectly.
- the logic controller 20 provides command generation and processing for the grand transport block 60 .
- logic is highly reusable (i.e., standardized) for different manufactures.
- BSP board support package 22
- the logic controller 20 further includes a logic manager 24 for managing logic commands.
- the logic controller 20 also contains the EMG object classes 26 (e.g., deviceClass 26 1 , communicationClass 26 2 , cabinetClass 26 3 , processorClass 26 4 , metersClass 26 5 , and the like) that are necessary for proper interaction with the electronic gaming machine.
- the EMG object classes 26 manage the associated transaction logs in persistent memory.
- the interaction between the EMG object classes 26 and the grand transport block 60 provides the necessary events for commit, rollback, and/or recovery of complete transactions.
- the core EMG object classes 26 are identified in the generic logic controller 20 .
- FIG. 2 illustrates an exemplary simplification of the logic controller 20 .
- An actual implementation of a preferred embodiment includes every EMG object class 26 , including any multiple instances of the same device, in order for logical commands to be directed to each EMG object class.
- the components 28 to the left of the logic controller 20 are interfaces to the BSP 22 . These interfaces 28 to the BSP 22 are configured to interface with EMG object classes 26 , EMG optioning data, and EMG control logic.
- the EMG object classes 26 are capable of sending fully formed commands to the command router 30 .
- the EMG object classes 26 are capable of receiving fully formed commands from the command router 30 .
- the deviceClass 26 1 and communicationClass 26 2 have a special relationship with the command router 30 , as indicated in FIG. 2 .
- These object classes i.e., the deviceClass 26 1 and communicationClass 26 2
- the command router 30 uses the device-to-host subscription lists to direct the outbound commands to the appropriate message processor 40 .
- communication status information is passed through the command router 30 so that the router can notify the communicationClass 26 2 of changes in status. Otherwise stated, the communicationClass 26 2 connection is simplified in order to provide the communicationClass with improved access to the host status. Accordingly, the communications status travels through each module (e.g., the command router 30 and the message processor 40 ) to the communicationClass 26 2 where the communications status information is most useful. For example, in one preferred embodiment, when a timeout occurs at the transport layer a communication status event is sent to the communicationClass 26 2 .
- the logic manager 24 discovers all instances of the EMG object classes 26 and registers them with EGM deviceClass 26 1 .
- the EGM deviceClass 26 1 registers each instance with the command router 30 .
- the default owner host references are presented to the command router 30 via the EGM deviceClass 26 1 .
- each instance of an EMG object class 26 is aware of its owner. This information is necessary for the EMG object classes 26 to make a determination if a control command should be processed.
- a control command is any command that only the owner has permission to request.
- logic manager 24 initializes the EGM communicationClass 26 2 and automatically subscribes each registered host to the communicationClass 26 2 .
- the EMG object classes 26 are responsible for class specific content XML formatting.
- the EMG object classes 26 send fully formed (logic interface engine-compliant), command content to the command router 30 .
- This is analogous to data marshalling the specific content.
- Data marshalling is the process of gathering data and transforming it into a standard format before the data is transmitted over a network. This allows the data to be able to transcend network boundaries.
- the object In order for an object to be moved over a network, the object must be converted into a data stream that corresponds with the packet structure of the network transfer protocol. After the data is transmitted, the receiving device converts the marshaled data back into an object.
- inbound commands have (logic interface engine-compliant) message class-specific content ‘ripped’ down (e.g., down-converted) into a usable format. This is analogous to data de-marshalling.
- FIG. 3 illustrates an exemplary simplification of the command router 30 .
- An actual implementation of a preferred embodiment includes every EMG object class 26 in the logic controller 20 , including any multiple instances of the same device, in order for logical commands to be directed to each EMG object class.
- the EMG object classes 26 of the logic controller 20 send complete (logic interface engine-compliant) commands to the command router 30 .
- the message processors 40 preferably send complete (logic interface engine-compliant) commands to the command router 30 .
- communication status information is passed through the command router 30 so that the command router can notify the communicationClass 26 2 of changes in status.
- a preferred embodiment of the logic interface engine 10 allows hosts to subscribe to devices that the host does not own. Otherwise stated, the logic interface engine 10 allows guest host subscriptions. These guest host subscriptions are typically managed in the deviceClass 26 1 where they are referred to a subscriptions list.
- all of the subscription list requests and other related subscription list related processes are controlled by the command router 30 .
- the logic manager 24 , the subscription list of the deviceClass 26 1 , and the command router 30 all have special interactions with the subscription lists.
- the subscription logic has been centralized in the command router 30 so that the deviceClass 26 1 do not need to be concerned with guest subscriptions.
- any time a message is sent to an owner host a copy is also sent to any guest subscribers.
- the command router 30 performs this copying and distribution on behalf of the logic interface engine 10 .
- the deviceClass 26 1 in the logic controller 20 does not need to be concerned with (i.e., perform any processing related to) guest subscriptions. Instead, the deviceClass 26 1 need only be concern with talking to their owner host.
- the command router 30 is responsible for determining who is on the subscription list and dispatching the multiple copies as needed.
- the command router 30 uses the device-to-host subscription lists to direct the outbound commands to the appropriate message processor 40 .
- the command router 30 uses the device-to-host subscription lists to route the inbound command to the appropriate command inQueues 34 1,2, . . . n , (i.e., inbound queues) as shown in FIG. 3 .
- Each command InQueue 34 1,2, . . . n (i.e., inbound queues) of the command router 30 transmits inbound information to its corresponding EMG object class 26 1,2, . . . n in the logic controller 20 .
- the command router 30 has no control over the subscriptions. Instead, the command router 30 uses the subscriptions to direct the commands to the appropriate InQueue 34 1,2, . . . n .
- the logic of the command router 30 does not make assumptions with respect to Owner or Guest hosts when directing inbound commands. However, the command router 30 preferably will pass on a hostID to the EMG object classes 26 in order to determine if the inbound command is from the Owner host. Continuing, in one preferred embodiment, the logic of the command router 30 manages the sessionIDs and commandIDs that are used with the commands. In this regard, since a single outbound command may be directed to many hosts, copies of this command must have the same sessionId and unique commandId for every host to which the command is directed.
- a preferred embodiment of the logic interface engine 10 includes a plurality of outbound message processors 40 , namely one outbound message processor 40 1,2, . . . n for each host 44 1,2, . . . n .
- the message processors 40 in a preferred embodiment of the logic interface engine 10 are intelligent message processors 40 .
- outbound messages are composed of commands that are transmitted from the command router 30 .
- the intelligent message processors 40 aggregate these messages and send them out as a single message per host 44 1,2, . . . n .
- the intelligent message processors 40 decompose the message into its constitute commands.
- the intelligent message processor 40 performs this process of monitoring the queues, grouping and encapsulating the commands, and composing a message containing the multiple commands (per host), asynchronously.
- the logic controller 20 is not even aware that this grouping and encapsulating process is occurring.
- the intelligent message processors 40 include acknowledgement functionality in connection with messages (and in some embodiments commands as well). Otherwise stated, when a message is sent out, an acknowledgement receipt is received in reply.
- the acknowledgement logic is encapsulated in the outbound message such that other upstream components do not have to be concern with the aspect. Preferably, this acknowledgement logic is self-contained and automatic, which advantageously simplifies software design.
- outbound commands sent from the command router 30 are grouped and sent out together to each outbound message processor 40 1,2, . . . n and its corresponding host 44 1,2, . . . n .
- Each host 44 1,2, . . . n forwards these outbound commands to a message builder 46 1,2, . . . n (within the outbound message processor 40 1,2, . . . n) that encapsulates the outgoing grouped commands into messages which are, in turn, forwarded to the transport layer 50 , as shown in FIG. 4 .
- the host 44 1,2, . . . n queue of each message processor 40 1,2, . . . n forwards its respective outbound commands to its respective message builder 46 1,2, . . . n (which encapsulates the outgoing grouped commands into messages) which, in turn, forwards the message to the transport layer 50 , until the message that contains the command is acknowledged. Once acknowledged, the command can be removed from the queue.
- the message processors 40 1,2, . . . n manage retry logic.
- the message processors 40 1,2, . . . n also notify the command router 30 when a host 44 1,2, . . . n dies or is established.
- the message processors 40 1,2, . . . n manage an independent process or thread for each host 44 1,2, . . . n .
- the message splitter 48 1,2, . . . n of each message processor 40 1,2, . . . n splits inbound messages into commands and transmits each command to the command router 30 before acknowledging the inbound message.
- utilizing separate message processors 40 1,2, . . . n i.e., having multiple inbound queues
- the message splitter 48 1,2, . . . n of each message processor 40 1,2, . . . n provides duplicate message checking, parsing out of commands, and verification of commandID order.
- a host 44 1,2, . . . n , message builder 46 1,2, . . . n , and message splitter 48 1,2, . . . n may be consolidated into a single component or integrated into one another as part of the message processor 40 1,2, . . . n in other preferred embodiments of the logic interface engine 10 .
- the message processor 40 is responsible for: (1) combining outbound commands into messages, and proving the (logic interface engine-complaint) message header; (2) processing message acknowledgements; (3) managing message retries; (4) splitting inbound messages into commands, passing the commands to the command router 30 , and acknowledging the message; (5) managing the timeout for a keep-alive command.
- a keep-alive command enables clients to keep a connection to a server open and pipeline multiple requests over the connection, without the connection timing out and disconnecting.
- a keep-alive prevents clients from having to re-negotiate a new session for every request due to a connection timing out.
- a communication status event is sent to the appropriate communicationClass 26 2 so that a keep-alive command can be generated.
- the message processor 40 is aware of the communication status for each host 44 1,2, . . . n . As such, the message processor 40 is also a source of communication status information.
- the transport layer 50 of the logic interface engine 10 is not viewable to other components outside of the transport layer itself. Otherwise stated, implicit knowledge of how the transport layer 50 works, and/or what the transport layer does, is not required by either the command router 30 or the communication channel drivers. Additionally, in a preferred embodiment logic interface engine 10 , the transport layer 50 is unaware of the message content that it is transmitting. Preferably, the transport layers 50 are configurable for any number of (logic interface engine-complaint) device instances. In one preferred embodiment of the logic interface engine 10 , the transport layer 50 includes diagnostic and debugging capabilities to facilitate developers with diagnostic issues.
- the transport layer receives messages, handles security, SOAP (Simple Object Access Protocol), SSL (Secure Sockets Layer) HTTP (Hyper Text Transfer Protocol), DHCP (Dynamic Host Configuration Protocol), and the like.
- SOAP Simple Object Access Protocol
- SSL Secure Sockets Layer
- HTTP Hyper Text Transfer Protocol
- DHCP Dynamic Host Configuration Protocol
- no persistent memory is available to the transport layer.
- the persistent memory is provided by the EMG object classes 26 through the command router 30 .
- communication status information is preferably passed to the EMG object classes 26 through the command router 30 .
- the transport layer 50 provides message-envelope, header-specific (logic interface engine-compliant) content for XML formatting. This is analogous to data marshalling the header-specific content.
- inbound commands have message-envelope, header-specific (logic interface engine-compliant) content ‘ripped’ down (e.g., down-converted) into a usable format. This is analogous to data de-marshalling.
- FIG. 6 illustrates inbound and outbound data flow through various components of logic interface engine.
- the invention shown in FIG. 6 displays a method for sending outbound information from a gaming device to a logical communication channel, and receiving inbound information from a logical communication channel to a gaming device. Exemplary embodiments of methods for implementing this invention are described in further detail below.
- a method for sending outbound information from a gaming device to a logical communication channel includes: providing control logic, wherein the control logic includes a plurality of object classes that correspond to components of the gaming device; sending outbound commands from the object classes to a command router; receiving outbound commands at the command router sent by the object classes; routing outbound commands using a command router, wherein the command router includes a plurality of command inQueues (inbound queues) that correspond to the object classes of the logic controller; duplicating commands as required and sending outbound commands from the command router to one or more message processors; receiving one or more outbound commands at a host of a message processor host that are sent by the command router; processing outbound commands using one or more message processors, each message processor including a corresponding host, message builder, and message splitter; grouping and encapsulating outbound commands into a single outbound message per host at a message builder of a message processor; sending outbound messages from the message processors to a transport layer; receiving the outbound messages at the transport layer
- a method for receiving inbound information from a logical communication channel to a gaming device includes: providing control logic, wherein the control logic includes a plurality of object classes that correspond to components of the gaming device; routing inbound commands to the plurality of object classes using a command router, wherein the command router includes a plurality of command inQueues (inbound queues) that correspond to the object classes of the logic controller, wherein the object classes receive inbound message commands sent from the command inQueues (inbound queues) of the command router; processing inbound messages from a transport layer using one or more message processors, each message processor including a corresponding host, message builder, and message splitter, wherein the message splitter of each message processor parses inbound messages into multiple inbound commands, wherein the command router receives inbound commands from the hosts of the message processors; and receiving inbound messages at a transport layer from the logical communication channel.
- logic interface engine 10 While one specific embodiment of the logic interface engine 10 has been described in detail, those of ordinary skill in the art will appreciate that other implementations of the logic interface engine 10 can be utilized without departing from the scope of the above-described technology. Further, those of ordinary skill in the art will appreciate that while the logic interface engine 10 has been described with regard to the gaming environment, the logic interface engine 10 and related technology may be used in other environments as well. By way of example only, and not by way of limitation, the logic interface engine 10 can be used in the telecommunications, computers, network, data transmission, Internet, and other related areas that require passing data and/or information between a message protocol and a command protocol.
Abstract
A logic interface engine 10 is used as an interface between a command driven device and a logical communication channel. The logic interface engine 10 includes a logic controller 20, a command router 30, a message processor 40, and a transport layer 50. The logic controller includes a plurality of object classes that correspond to components of the command-driven device. The command router receives the outbound commands sent by the object classes, and inbound commands sent from the command inQueues of the command router, which the command router duplicates and forwards, as required. The message processor(s) each includes a corresponding host, message builder, and message splitter. The transport layer receives the outbound messages sent by the message processors and sends outbound messages to the logical communication channel. Additionally, the transport layer sends inbound messages to the message processors.
Description
- This application claims the benefit of U.S. provisional patent application No. 60/676,429, filed Apr. 28, 2005, which is hereby incorporated by reference in its entirety.
- 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.
- This invention relates generally to a system and method for providing an interface layer between command-driven devices and a logical communication channel, and more particularly, to a system and method for providing a logic interface engine that is utilized as an interface layer between command-driven devices and a logical communication channel.
- Typically, network data is gathered and transformed into a standard format before they are transmitted over a network. In order for information to be moved across a network, the information is converted into a data stream that corresponds with the packet structure of the network transfer protocol. This is also true with respect to command protocols and message protocols, which often must be converted when transmitting between various locations, systems, and devices.
- Traditionally, interface and transport layers have been designed to package and send individual messages and commands with little or no organization of those commands. In this regard, messages are typically sent on a first-in, first-out (FIFO) basis from a general message stack in which the messages are collected. The stack may become bogged down with messages and commands to and from various components in a bus or network structure. Although the order of processing the messages may be altered according to priority, the message stack operates with little or no regard to origin or destination.
- Similarly, received messages and commands are processed as they are received, usually on a FIFO basis, and without regard to origin or destination. Even in parallel processing systems, one incoming and one outgoing stack is typically used at the transport or command layer in a system. Thus, it would be desirable to provide a system that includes relative parallel processing of incoming and outgoing messages and commands in a system.
- Accordingly, those skilled in the art have long recognized the need for a system that is capable of relative parallel processing of incoming and outgoing messages and commands. This invention clearly addresses these and other needs.
- Briefly, and in general terms, a preferred embodiment resolves the above and other problems by providing a logic interface device for interfacing between a gaming device and a logical communication channel. The logic interface device includes: a logic controller, a command router, one or more message processors, and a transport layer. The logic controller includes a plurality of object classes that correspond to components of the gaming device. The object classes send outbound commands. The command router receives the outbound commands sent by the object classes. Additionally, the command router includes a plurality of command inQueues (inbound queues) that correspond to the object classes of the logic controller. The object classes receive inbound commands sent from the command inQueues (inbound queues) of the command router. The command router duplicates commands, as required, and sends outbound commands.
- The one or more message processors each include a corresponding host, message builder, and message splitter. The host of each message processor receives an outbound command sent by the command router. The message builder of each message processor groups and encapsulates outbound commands into a single outbound message per host. The message splitter of each message processor parses inbound messages into multiple inbound commands, Additionally, the command router receives inbound commands from the hosts of the message processors, and the message processors send outbound messages. Continuing, the transport layer receives the outbound messages sent by the message processors, sends inbound messages to the message processors, and sends outbound messages to the logical communication channel.
- In accordance with one aspect of a preferred embodiment, the object classes include at least one of a device class, a communication class, a cabinet class, a processor class, or a meters class. Preferably, the command router uses a device-to-host subscription list to direct outbound commands to appropriate message processors. Additionally, the command router uses the device-to-host subscription list to route inbound commands to command inQueues (i.e., inbound queues). In accordance with another aspect of a preferred embodiment, a communication device class connection provides improved access to host status by enabling communications status information to travel through the command router and the message processor to the communication device class. Preferably, the message splitters include acknowledgement logic that enables the message splitters to send an acknowledgement receipt after commands have been transmitted.
- In accordance with another aspect of a preferred embodiment, a logical communication channel comprises a network. Preferably, the logical communication channel comprises an Ethernet, serial, or universal serial bus. In another aspect of a preferred embodiment, one or more system hosts are connected to the logical communication channel to enable communication with the gaming devices via the logic interface device. In one embodiment, the logic interface device is asynchronous. Preferably, each controllable component of the gaming device has a corresponding object class in the logic controller. In another aspect of a preferred embodiment, the logic interface device enables a modular breakdown of components on a gaming platform.
- In another preferred embodiment, a method for interfacing between a gaming device and a logical communication channel is disclosed. The method includes: providing control logic, wherein the control logic includes a plurality of object classes that correspond to components of the gaming device, and wherein the object classes send outbound commands; routing inbound and outbound commands using a command router, wherein the command router receives the outbound message commands sent by the object classes, wherein the command router includes a plurality of command inQueues (inbound queues) that correspond to the object classes of the logic controller, wherein the object classes receive inbound message commands sent from the command inQueues (inbound queues) in the command router, and wherein the command router duplicates command as required and sends outbound commands; processing outbound commands and inbound messages using one or more message processors, each message processor including a corresponding host, message builder, and message splitter, wherein the host of each message processor receives an outbound command sent by the command router, wherein the message builder of each message processor groups and encapsulates outbound commands into a single outbound message per host, wherein the message splitter of each message processor parses inbound messages into multiple inbound commands, wherein the command router receives inbound commands from the hosts of the message processors, and wherein the message processors send outbound messages; and providing a transport layer, wherein the transport layer receives the outbound messages sent by the message processors, wherein the transport layer sends inbound messages to the message processors, and wherein the transport layer sends outbound messages to the logical communication channel.
- In still another preferred embodiment, a method for sending outbound information from a gaming device to a logical communication channel is disclosed. The method includes: providing control logic, wherein the control logic includes a plurality of object classes that correspond to components of the gaming device; sending outbound commands from the object classes to a command router-receiving outbound commands at the command router sent by the object classes; routing outbound commands using a command router, wherein the command router includes a plurality of command inQueues (inbound queues) that correspond to the object classes of the logic controller; duplicating commands as required and sending outbound commands from the command router to one or more message processors; receiving one or more outbound commands at a host of a message processor that are sent by the command router; processing outbound commands using one or more message processors, each message processor including a corresponding host, message builder, and message splitter; grouping and encapsulating outbound commands into a single outbound message per host at a message builder of a message processor; sending outbound messages from the message processors to a transport layer; receiving the outbound messages at the transport layer sent by the message processors; and sending outbound messages from the transport layer to the logical communication channel.
- In yet another preferred embodiment, a method for receiving inbound information from a logical communication channel to a gaming device is disclosed. The method includes: providing control logic, wherein the control logic includes a plurality of object classes that correspond to components of the gaming device; routing inbound commands to the plurality of object classes using a command router, wherein the command router includes a plurality of command inQueues (inbound queues) that correspond to the object classes of the logic controller, wherein the object classes receive inbound message commands sent from the command inQueues (inbound queues) of the command router; processing inbound messages from a transport layer using one or more message processors, each message processor including a corresponding host, message builder, and message splitter, wherein the message splitter of each message processor parses inbound messages into multiple inbound commands, wherein the command router receives inbound commands from the hosts of the message processors; and receiving inbound messages at a transport layer from the logical communication channel.
- In another aspect of a preferred embodiment, a logical interface system interfaces between a non-gaming device (e.g., a non-gaming command-driven device) and a logical interface channel.
- Other features and advantages of the invention will become apparent from the following detailed description when taken in conjunction with the accompanying drawings, which illustrate by way of example, the features of the claimed invention.
-
FIG. 1 illustrates a relational diagram of the logic interface engine showing data flow through various components of a preferred embodiment; -
FIG. 2 illustrates a relational diagram showing various components of a logic controller, in accordance with a preferred embodiment; -
FIG. 3 illustrates a relational diagram showing various components of a command router, in accordance with a preferred embodiment; -
FIG. 4 illustrates a relational diagram showing data flow through message processors, in accordance with a preferred embodiment; -
FIG. 5 illustrates a relational diagram showing various components of a transport layer, in accordance with a preferred embodiment; and -
FIG. 6 illustrates a relational diagram showing inbound and outbound data flow through various components of logic interface engine, in accordance with a preferred embodiment. - Briefly stated, a preferred embodiment of a logic interface engine and system, constructed in accordance with the claimed invention, is directed towards an interface device that is utilized between an electronic gaming machine (EMG) and a logical communication channel. In such a device, bidirectional data flow is possible through the various components of the logic interface engine. A preferred embodiment of the logic interface engine increases reliability and expandability with respect to interfacing gaming devices and logical communication channels. In a preferred embodiment, the logic interface device enables a modular breakdown of components on a gaming platform. In other preferred embodiments of the claimed invention, the logic interface engine is utilized as an interface layer between other generic (non-gaming) devices and other logical communication channels (e.g., Ethernet, serial, USB, or other logical channel). In some such embodiments, the generic (non-gaming) devices are command-driven devices.
- Referring now to the drawings, wherein like reference numerals denote like or corresponding parts throughout the drawings and, more particularly to
FIGS. 1-5 , there is shown one embodiment of alogic interface engine 10 constructed in accordance with the claimed invention. Specifically, with respect to the preferred embodimentlogic interface engine 10 shown inFIG. 1 , data flow is illustrated as a bidirectional path through the various components of the logic interface engine. As shown inFIG. 1 , thelogic interface engine 10 includes alogic controller 20, acommand router 30, amessage processor 40, and atransport layer 50. Thelogic interface engine 10 is an interface device that, in one embodiment, is utilized between an electronic gaming machine (EMG) and a logical communication channel. - Preferably, the
logic interface engine 10 is defined as the complete interface between the EGM and the logical communication channel, but excludes (i.e., is not utilized for interfacing with) communication channel drivers. In another aspect of one preferred embodiment, persistent memory is only available outside of the grand transport block 60 (i.e., thecommand router 30, themessage processor 40, and the transport layer 50). In such an embodiment, different manufactures/platforms can provide persistent memory API points that thegrand transport block 60 can reference indirectly. - Preferably, the
logic controller 20 provides command generation and processing for thegrand transport block 60. In one preferred embodiment, logic is highly reusable (i.e., standardized) for different manufactures. However, some customization of the board support package 22 (BSP) in thelogic controller 20 may be required in order for the BSP to properly interface with devices and components from varying manufactures. Preferably, thelogic controller 20 further includes alogic manager 24 for managing logic commands. - As shown in
FIG. 2 , in another aspect of a preferred embodiment, thelogic controller 20 also contains the EMG object classes 26 (e.g.,deviceClass 26 1,communicationClass 26 2,cabinetClass 26 3,processorClass 26 4,metersClass 26 5, and the like) that are necessary for proper interaction with the electronic gaming machine. TheEMG object classes 26 manage the associated transaction logs in persistent memory. Preferably, the interaction between theEMG object classes 26 and thegrand transport block 60 provides the necessary events for commit, rollback, and/or recovery of complete transactions. - Referring again to
FIG. 2 , the coreEMG object classes 26 are identified in thegeneric logic controller 20.FIG. 2 illustrates an exemplary simplification of thelogic controller 20. An actual implementation of a preferred embodiment includes everyEMG object class 26, including any multiple instances of the same device, in order for logical commands to be directed to each EMG object class. Referring again toFIG. 2 , thecomponents 28 to the left of thelogic controller 20 are interfaces to theBSP 22. Theseinterfaces 28 to theBSP 22 are configured to interface withEMG object classes 26, EMG optioning data, and EMG control logic. - In one preferred embodiment shown in
FIG. 2 , with respect to outbound information, theEMG object classes 26 are capable of sending fully formed commands to thecommand router 30. Correspondingly, with respect to inbound information, theEMG object classes 26 are capable of receiving fully formed commands from thecommand router 30. In another aspect of a preferred embodiment, thedeviceClass 26 1 andcommunicationClass 26 2 have a special relationship with thecommand router 30, as indicated inFIG. 2 . These object classes (i.e., thedeviceClass 26 1 and communicationClass 26 2) are unique in that they contain the necessary information (i.e., additional logic) to control (or react to) events related to thecommand router 30, themessage processor 40, and the transport layers 50. The additional logic provided to thedeviceClass 26 1 andcommunicationClass 26 2 simplifies the connection between thelogic manager 24 and thecommand router 30. With respect to thedeviceClass 26 1, as described in full detail below, thecommand router 30 uses the device-to-host subscription lists to direct the outbound commands to theappropriate message processor 40. - With respect to the
communicationClass 26 2, as described below, communication status information is passed through thecommand router 30 so that the router can notify thecommunicationClass 26 2 of changes in status. Otherwise stated, thecommunicationClass 26 2 connection is simplified in order to provide the communicationClass with improved access to the host status. Accordingly, the communications status travels through each module (e.g., thecommand router 30 and the message processor 40) to thecommunicationClass 26 2 where the communications status information is most useful. For example, in one preferred embodiment, when a timeout occurs at the transport layer a communication status event is sent to thecommunicationClass 26 2. - In one aspect of a preferred embodiment, the
logic manager 24 discovers all instances of theEMG object classes 26 and registers them withEGM deviceClass 26 1. TheEGM deviceClass 26 1 then, in turn, registers each instance with thecommand router 30. Additionally, the default owner host references are presented to thecommand router 30 via theEGM deviceClass 26 1. Preferably, each instance of anEMG object class 26 is aware of its owner. This information is necessary for theEMG object classes 26 to make a determination if a control command should be processed. A control command is any command that only the owner has permission to request. In one preferred embodiment,logic manager 24 initializes theEGM communicationClass 26 2 and automatically subscribes each registered host to thecommunicationClass 26 2. - In one preferred embodiment of the
logic interface engine 10, theEMG object classes 26 are responsible for class specific content XML formatting. Preferably, theEMG object classes 26 send fully formed (logic interface engine-compliant), command content to thecommand router 30. This is analogous to data marshalling the specific content. Data marshalling is the process of gathering data and transforming it into a standard format before the data is transmitted over a network. This allows the data to be able to transcend network boundaries. In order for an object to be moved over a network, the object must be converted into a data stream that corresponds with the packet structure of the network transfer protocol. After the data is transmitted, the receiving device converts the marshaled data back into an object. Similarly, in one preferred embodiment of thelogic interface engine 10, inbound commands have (logic interface engine-compliant) message class-specific content ‘ripped’ down (e.g., down-converted) into a usable format. This is analogous to data de-marshalling. - Referring now to
FIG. 3 , the coreEMG object classes 26 are identified along with thecommand router 30.FIG. 3 illustrates an exemplary simplification of thecommand router 30. An actual implementation of a preferred embodiment includes everyEMG object class 26 in thelogic controller 20, including any multiple instances of the same device, in order for logical commands to be directed to each EMG object class. - In a preferred embodiment of the
logic interface engine 10, theEMG object classes 26 of thelogic controller 20 send complete (logic interface engine-compliant) commands to thecommand router 30. Similarly, themessage processors 40 preferably send complete (logic interface engine-compliant) commands to thecommand router 30. Notably, in one preferred embodiment, communication status information is passed through thecommand router 30 so that the command router can notify thecommunicationClass 26 2 of changes in status. - A preferred embodiment of the
logic interface engine 10 allows hosts to subscribe to devices that the host does not own. Otherwise stated, thelogic interface engine 10 allows guest host subscriptions. These guest host subscriptions are typically managed in thedeviceClass 26 1 where they are referred to a subscriptions list. - However, in a preferred embodiment, all of the subscription list requests and other related subscription list related processes are controlled by the
command router 30. Accordingly, in a preferred embodiment thelogic manager 24, the subscription list of thedeviceClass 26 1, and thecommand router 30, all have special interactions with the subscription lists. Specifically, the subscription logic has been centralized in thecommand router 30 so that thedeviceClass 26 1 do not need to be concerned with guest subscriptions. In order to comply with some related protocols, it is beneficial to ensure that when a command is sent to an owner device, that a copy is also sent to any guest hosts. As such, in a preferred embodiment of thelogic interface engine 10, any time a message is sent to an owner host, a copy is also sent to any guest subscribers. - The
command router 30 performs this copying and distribution on behalf of thelogic interface engine 10. By using centralized logic incommand router 30 thedeviceClass 26 1 in thelogic controller 20 does not need to be concerned with (i.e., perform any processing related to) guest subscriptions. Instead, thedeviceClass 26 1 need only be concern with talking to their owner host. Thecommand router 30 is responsible for determining who is on the subscription list and dispatching the multiple copies as needed. - Accordingly, as shown in
FIG. 3 , thecommand router 30 uses the device-to-host subscription lists to direct the outbound commands to theappropriate message processor 40. Similarly, thecommand router 30 uses the device-to-host subscription lists to route the inbound command to the appropriate command inQueues 34 1,2, . . . n, (i.e., inbound queues) as shown inFIG. 3 . Each command InQueue 34 1,2, . . . n (i.e., inbound queues) of thecommand router 30 transmits inbound information to its correspondingEMG object class 26 1,2, . . . n in thelogic controller 20. In one preferred embodiment, thecommand router 30 has no control over the subscriptions. Instead, thecommand router 30 uses the subscriptions to direct the commands to the appropriate InQueue 34 1,2, . . . n. - In a preferred embodiment of the
logic interface engine 10, the logic of thecommand router 30 does not make assumptions with respect to Owner or Guest hosts when directing inbound commands. However, thecommand router 30 preferably will pass on a hostID to theEMG object classes 26 in order to determine if the inbound command is from the Owner host. Continuing, in one preferred embodiment, the logic of thecommand router 30 manages the sessionIDs and commandIDs that are used with the commands. In this regard, since a single outbound command may be directed to many hosts, copies of this command must have the same sessionId and unique commandId for every host to which the command is directed. - Referring now to
FIG. 4 , regarding outbound information, a preferred embodiment of thelogic interface engine 10 includes a plurality ofoutbound message processors 40, namely oneoutbound message processor 40 1,2, . . . n for eachhost 44 1,2, . . . n. Notably, themessage processors 40 in a preferred embodiment of thelogic interface engine 10 areintelligent message processors 40. In this regard, outbound messages are composed of commands that are transmitted from thecommand router 30. Theintelligent message processors 40 aggregate these messages and send them out as a single message perhost 44 1,2, . . . n. Similarly, when a system host (from across a network and outside of the logic interface engine 10) sends a message to the gaming device, theintelligent message processors 40 decompose the message into its constitute commands. Preferably, theintelligent message processor 40 performs this process of monitoring the queues, grouping and encapsulating the commands, and composing a message containing the multiple commands (per host), asynchronously. In a preferred embodiment, thelogic controller 20 is not even aware that this grouping and encapsulating process is occurring. - Additionally, in a preferred embodiment, the
intelligent message processors 40 include acknowledgement functionality in connection with messages (and in some embodiments commands as well). Otherwise stated, when a message is sent out, an acknowledgement receipt is received in reply. In a preferred embodiment, the acknowledgement logic is encapsulated in the outbound message such that other upstream components do not have to be concern with the aspect. Preferably, this acknowledgement logic is self-contained and automatic, which advantageously simplifies software design. - More specifically, as shown in
FIG. 4 , outbound commands sent from thecommand router 30 are grouped and sent out together to eachoutbound message processor 40 1,2, . . . n and itscorresponding host 44 1,2, . . . n. Eachhost 44 1,2, . . . n forwards these outbound commands to a message builder 46 1,2, . . . n (within theoutbound message processor 40 1,2, . . . n) that encapsulates the outgoing grouped commands into messages which are, in turn, forwarded to thetransport layer 50, as shown inFIG. 4 . - As described above, for outbound information, the
host 44 1,2, . . . n queue of eachmessage processor 40 1,2, . . . n forwards its respective outbound commands to its respective message builder 46 1,2, . . . n (which encapsulates the outgoing grouped commands into messages) which, in turn, forwards the message to thetransport layer 50, until the message that contains the command is acknowledged. Once acknowledged, the command can be removed from the queue. Additionally, themessage processors 40 1,2, . . . n manage retry logic. Preferably, themessage processors 40 1,2, . . . n also notify thecommand router 30 when ahost 44 1,2, . . . n dies or is established. Further, themessage processors 40 1,2, . . . n manage an independent process or thread for eachhost 44 1,2, . . . n. - As shown in
FIG. 4 , for inbound information, themessage splitter 48 1,2, . . . n of eachmessage processor 40 1,2, . . . n splits inbound messages into commands and transmits each command to thecommand router 30 before acknowledging the inbound message. In this manner, utilizing separate message processors 40 1,2, . . . n (i.e., having multiple inbound queues) prevents a single slow host from backing up communication through other hosts in theother message processors 40 1,2, . . . n. Additionally, for inbound information processing, themessage splitter 48 1,2, . . . n of eachmessage processor 40 1,2, . . . n provides duplicate message checking, parsing out of commands, and verification of commandID order. It will be appreciated by one of ordinary skill in the art that ahost 44 1,2, . . . n,message builder 46 1,2, . . . n, andmessage splitter 48 1,2, . . . n may be consolidated into a single component or integrated into one another as part of themessage processor 40 1,2, . . . n in other preferred embodiments of thelogic interface engine 10. - Thus, in a preferred embodiment, the
message processor 40 is responsible for: (1) combining outbound commands into messages, and proving the (logic interface engine-complaint) message header; (2) processing message acknowledgements; (3) managing message retries; (4) splitting inbound messages into commands, passing the commands to thecommand router 30, and acknowledging the message; (5) managing the timeout for a keep-alive command. A keep-alive command enables clients to keep a connection to a server open and pipeline multiple requests over the connection, without the connection timing out and disconnecting. A keep-alive prevents clients from having to re-negotiate a new session for every request due to a connection timing out. - In one preferred embodiment, when a timeout occurs, a communication status event is sent to the
appropriate communicationClass 26 2 so that a keep-alive command can be generated. Interestingly, when using this configuration, themessage processor 40 is aware of the communication status for eachhost 44 1,2, . . . n. As such, themessage processor 40 is also a source of communication status information. - Referring now to
FIG. 5 , in one preferred embodiment, thetransport layer 50 of thelogic interface engine 10 is not viewable to other components outside of the transport layer itself. Otherwise stated, implicit knowledge of how thetransport layer 50 works, and/or what the transport layer does, is not required by either thecommand router 30 or the communication channel drivers. Additionally, in a preferred embodimentlogic interface engine 10, thetransport layer 50 is unaware of the message content that it is transmitting. Preferably, the transport layers 50 are configurable for any number of (logic interface engine-complaint) device instances. In one preferred embodiment of thelogic interface engine 10, thetransport layer 50 includes diagnostic and debugging capabilities to facilitate developers with diagnostic issues. Preferably, the transport layer receives messages, handles security, SOAP (Simple Object Access Protocol), SSL (Secure Sockets Layer) HTTP (Hyper Text Transfer Protocol), DHCP (Dynamic Host Configuration Protocol), and the like. - Furthermore, in one preferred embodiment, no persistent memory is available to the transport layer. In such an embodiment, the persistent memory is provided by the
EMG object classes 26 through thecommand router 30. Additionally, communication status information is preferably passed to theEMG object classes 26 through thecommand router 30. - In another aspect of a preferred embodiment, the
transport layer 50 provides message-envelope, header-specific (logic interface engine-compliant) content for XML formatting. This is analogous to data marshalling the header-specific content. Similarly, in one preferred embodiment of thelogic interface engine 10, inbound commands have message-envelope, header-specific (logic interface engine-compliant) content ‘ripped’ down (e.g., down-converted) into a usable format. This is analogous to data de-marshalling. -
FIG. 6 illustrates inbound and outbound data flow through various components of logic interface engine. The invention shown inFIG. 6 displays a method for sending outbound information from a gaming device to a logical communication channel, and receiving inbound information from a logical communication channel to a gaming device. Exemplary embodiments of methods for implementing this invention are described in further detail below. - A method for sending outbound information from a gaming device to a logical communication channel includes: providing control logic, wherein the control logic includes a plurality of object classes that correspond to components of the gaming device; sending outbound commands from the object classes to a command router; receiving outbound commands at the command router sent by the object classes; routing outbound commands using a command router, wherein the command router includes a plurality of command inQueues (inbound queues) that correspond to the object classes of the logic controller; duplicating commands as required and sending outbound commands from the command router to one or more message processors; receiving one or more outbound commands at a host of a message processor host that are sent by the command router; processing outbound commands using one or more message processors, each message processor including a corresponding host, message builder, and message splitter; grouping and encapsulating outbound commands into a single outbound message per host at a message builder of a message processor; sending outbound messages from the message processors to a transport layer; receiving the outbound messages at the transport layer sent by the message processors; and sending outbound messages from the transport layer to the logical communication channel.
- A method for receiving inbound information from a logical communication channel to a gaming device includes: providing control logic, wherein the control logic includes a plurality of object classes that correspond to components of the gaming device; routing inbound commands to the plurality of object classes using a command router, wherein the command router includes a plurality of command inQueues (inbound queues) that correspond to the object classes of the logic controller, wherein the object classes receive inbound message commands sent from the command inQueues (inbound queues) of the command router; processing inbound messages from a transport layer using one or more message processors, each message processor including a corresponding host, message builder, and message splitter, wherein the message splitter of each message processor parses inbound messages into multiple inbound commands, wherein the command router receives inbound commands from the hosts of the message processors; and receiving inbound messages at a transport layer from the logical communication channel.
- While one specific embodiment of the
logic interface engine 10 has been described in detail, those of ordinary skill in the art will appreciate that other implementations of thelogic interface engine 10 can be utilized without departing from the scope of the above-described technology. Further, those of ordinary skill in the art will appreciate that while thelogic interface engine 10 has been described with regard to the gaming environment, thelogic interface engine 10 and related technology may be used in other environments as well. By way of example only, and not by way of limitation, thelogic interface engine 10 can be used in the telecommunications, computers, network, data transmission, Internet, and other related areas that require passing data and/or information between a message protocol and a command protocol. - Several preferred embodiments of a system and method for the
logic interface engine 10 have been described above. Attached in Appendices hereto are materials and protocols that may be used: (1) in support of the above described embodiments and implementations, (2) as one possible environment for the above described embodiments and implementations, and (3) as alternate preferred embodiments of the above described embodiments and implementations. - Although the invention has been described in language specific to computer structural features, methodological acts, and by computer readable media, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific structures, acts, or media described. Therefore, the specific structural features, acts and mediums are disclosed as exemplary embodiments implementing the claimed invention.
- Furthermore, the various embodiments described above are provided by way of illustration only and should not be construed to limit the invention. Those skilled in the art will readily recognize various modifications and changes that may be made to the claimed invention without following the example embodiments and applications illustrated and described herein, and without departing from the true spirit and scope of the claimed invention, which is set forth in the following claims.
Claims (24)
1. A logic interface device for interfacing between a gaming device and a logical communication channel, the device comprising:
a logic controller, wherein the logic controller includes a plurality of object classes that correspond to components of the gaming device, and wherein the object classes send outbound commands;
a command router, wherein the command router receives the outbound commands sent by the object classes, wherein the command router includes a plurality of command inbound queues that correspond to the object classes of the logic controller, wherein the object classes receive inbound commands sent from the command inbound queues of the command router, and wherein the command router duplicates commands as required and sends outbound commands;
one or more message processors each including a corresponding host, message builder, and message splitter, wherein the host of each message processor receives an outbound command sent by the command router, wherein the message builder of each message processor groups and encapsulates outbound commands into a single outbound message per host, wherein the message splitter of each message processor parses inbound messages into multiple inbound commands, wherein the command router receives inbound commands from the hosts of the message processors, and wherein the message processors send outbound messages; and
a transport layer, wherein the transport layer receives the outbound messages sent by the message processors, wherein the transport layer sends inbound messages to the message processors, and wherein the transport layer sends outbound messages to the logical communication channel.
2. The device of claim 1 , wherein the object classes include at least one of a device class, a communication class, a cabinet class, a processor class, or a meters class.
3. The device of claim 1 , wherein the command router uses a device-to-host subscription list to direct outbound commands to appropriate message processors, and wherein the command router uses the device-to-host subscription list to route inbound commands to command inbound queues.
4. The device of claim 1 , wherein a communication device class connection provides improved access to host status by enabling communications status information to travel through the command router and the message processor to the communication device class.
5. The device of claim 1 , wherein the message splitters include acknowledgement logic that enables the message splitters to send an acknowledgement receipt after commands have been transmitted.
6. The device of claim 1 , wherein the logical communication channel comprises a network.
7. The device of claim 1 , wherein the logical communication channel comprises an Ethernet, serial, or universal serial bus.
8. The device of claim 1 , wherein one or more system hosts are connected to the logical communication channel to enable communication with the gaming devices via the logic interface device.
9. The device of claim 1 , wherein the logic interface device is asynchronous.
10. The device of claim 1 , wherein each controllable components of the gaming device has a corresponding object class in the logic controller.
11. The device of claim 1 , wherein the logic interface device enables a modular breakdown of components on a gaming platform.
12. A method for interfacing between a gaming device and a logical communication channel, the method comprising:
providing control logic, wherein the control logic includes a plurality of object classes that correspond to components of the gaming device, and wherein the object classes send outbound commands;
routing inbound and outbound commands using a command router, wherein the command router receives the outbound message commands sent by the object classes, wherein the command router includes a plurality of command inbound queues that correspond to the object classes of the logic controller, wherein the object classes receive inbound message commands sent from the command inbound queues in the command router, and wherein the command router duplicates command as required and sends outbound commands;
processing outbound commands and inbound messages using one or more message processors, each message processor including a corresponding host, message builder, and message splitter, wherein the host of each message processor receives an outbound command sent by the command router, wherein the message builder of each message processor groups and encapsulates outbound commands into a single outbound message per host, wherein the message splitter of each message processor parses inbound messages into multiple inbound commands, wherein the command router receives inbound commands from the hosts of the message processors, and wherein the message processors send outbound messages; and
providing a transport layer, wherein the transport layer receives the outbound messages sent by the message processors, wherein the transport layer sends inbound messages to the message processors, and wherein the transport layer sends outbound messages to the logical communication channel.
13. The method of claim 11 , wherein the object classes include at least one of a device class, a communication class, a cabinet class, a processor class, or a meters class.
14. The method of claim 11 , wherein the command router uses a device-to-host subscription list to direct outbound commands to appropriate message processors, and wherein the command router uses the device-to-host subscription list to route inbound commands to command inQueues (i.e., inbound queues).
15. The method of claim 11 , wherein a communication device class connection provides improved access to host status by enabling communications status information to travels through the command router and the message processor to the communication device class.
16. The method of claim 11 , wherein the message splitters include acknowledgement logic that enables the message splitters to send an acknowledgement receipt after commands have been transmitted.
17. The method of claim 11 , wherein the logical communication channel comprises a network.
18. The method of claim 11 , wherein the logical communication channel comprises an Ethernet, serial, or universal serial bus.
19. The method of claim 11 , wherein one or more system hosts are connected to the logical communication channel to enable communication with the gaming devices via the logic interface device.
20. The method of claim 11 , wherein the logic interface device is asynchronous.
21. The method of claim 11 , wherein each controllable components of the gaming device has a corresponding object class in the logic controller.
22. A method for sending outbound information from a gaming device to a logical communication channel, the method comprising:
providing control logic, wherein the control logic includes a plurality of object classes that correspond to components of the gaming device;
sending outbound commands from the object classes to a command router;
receiving outbound commands at the command router sent by the object classes;
routing outbound commands using a command router, wherein the command router includes a plurality of command inbound queues that correspond to the object classes of the logic controller;
duplicating commands as required and sending outbound commands from the command router to one or more message processors;
receiving one or more outbound commands at a host of a message processor host that are sent by the command router;
processing outbound commands using one or more message processors, each message processor including a corresponding host, message builder, and message splitter;
grouping and encapsulating outbound commands into a single outbound message per host at a message builder of a message processor;
sending outbound messages from the message processors to a transport layer;
receiving the outbound messages at the transport layer sent by the message processors; and
sending outbound messages from the transport layer to the logical communication channel.
23. A method for receiving inbound information from a logical communication channel to a gaming device, the method comprising:
providing control logic, wherein the control logic includes a plurality of object classes that correspond to components of the gaming device;
routing inbound commands to the plurality of object classes using a command router, wherein the command router includes a plurality of command inbound queues that correspond to the object classes of the logic controller, wherein the object classes receive inbound message commands sent from the command inbound queues of the command router;
processing inbound messages from a transport layer using one or more message processors, each message processor including a corresponding host, message builder, and message splitter, wherein the message splitter of each message processor parses inbound messages into multiple inbound commands, wherein the command router receives inbound commands from the hosts of the message processors; and
receiving inbound messages at a transport layer from the logical communication channel.
24. A logic interface system for interfacing between a command-driven device and a logical communication channel, the system comprising:
a logic controller, wherein the logic controller includes a plurality of object classes that correspond to components of the command-driven device, and wherein the object classes send outbound commands;
a command router, wherein the command router receives the outbound commands sent by the object classes, wherein the command router includes a plurality of command inbound queues that correspond to the object classes of the logic controller, wherein the object classes receive inbound commands sent from the command inbound queues of the command router, and wherein the command router duplicates commands as required and sends outbound commands;
one or more message processors, each including a corresponding host, message builder, and message splitter, wherein the host of each message processor receives an outbound command sent by the command router, wherein the message builder of each message processor groups and encapsulates outbound commands into a single outbound message per host, wherein the message splitter of each message processor parses inbound messages into multiple inbound commands, wherein the command router receives inbound commands from the hosts of the message processors, and wherein the message processors send outbound messages; and
a transport layer, wherein the transport layer receives the outbound messages sent by the message processors, wherein the transport layer sends inbound messages to the message processors, and wherein the transport layer sends outbound messages to the logical communication channel.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/278,937 US20060247057A1 (en) | 2005-04-28 | 2006-04-06 | Logic Interface Engine System and Method |
PCT/US2006/012832 WO2006115723A2 (en) | 2005-04-28 | 2006-04-07 | Logic interface engine system and method |
US11/938,249 US8900054B2 (en) | 2005-04-28 | 2007-11-09 | Download and configuration capable gaming machine operating system, gaming machine and method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US67642905P | 2005-04-28 | 2005-04-28 | |
US11/278,937 US20060247057A1 (en) | 2005-04-28 | 2006-04-06 | Logic Interface Engine System and Method |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/470,606 Continuation US8678902B2 (en) | 2000-10-16 | 2006-09-06 | System gaming |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/938,249 Continuation US8900054B2 (en) | 2005-04-28 | 2007-11-09 | Download and configuration capable gaming machine operating system, gaming machine and method |
Publications (1)
Publication Number | Publication Date |
---|---|
US20060247057A1 true US20060247057A1 (en) | 2006-11-02 |
Family
ID=37215199
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/278,937 Abandoned US20060247057A1 (en) | 2005-04-28 | 2006-04-06 | Logic Interface Engine System and Method |
US11/938,249 Active 2031-04-05 US8900054B2 (en) | 2005-04-28 | 2007-11-09 | Download and configuration capable gaming machine operating system, gaming machine and method |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/938,249 Active 2031-04-05 US8900054B2 (en) | 2005-04-28 | 2007-11-09 | Download and configuration capable gaming machine operating system, gaming machine and method |
Country Status (2)
Country | Link |
---|---|
US (2) | US20060247057A1 (en) |
WO (1) | WO2006115723A2 (en) |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8052519B2 (en) | 2006-06-08 | 2011-11-08 | Bally Gaming, Inc. | Systems, methods and articles to facilitate lockout of selectable odds/advantage in playing card games |
US8191121B2 (en) | 2006-11-10 | 2012-05-29 | Bally Gaming, Inc. | Methods and systems for controlling access to resources in a gaming network |
US8201229B2 (en) | 2007-11-12 | 2012-06-12 | Bally Gaming, Inc. | User authorization system and methods |
US8266213B2 (en) | 2008-11-14 | 2012-09-11 | Bally Gaming, Inc. | Apparatus, method, and system to provide a multiple processor architecture for server-based gaming |
US8347303B2 (en) | 2008-11-14 | 2013-01-01 | Bally Gaming, Inc. | Apparatus, method, and system to provide a multi-core processor for an electronic gaming machine (EGM) |
US8366542B2 (en) | 2008-05-24 | 2013-02-05 | Bally Gaming, Inc. | Networked gaming system with enterprise accounting methods and apparatus |
US8412768B2 (en) | 2008-07-11 | 2013-04-02 | Ball Gaming, Inc. | Integration gateway |
US8423790B2 (en) | 2008-11-18 | 2013-04-16 | Bally Gaming, Inc. | Module validation |
US8616958B2 (en) | 2007-11-12 | 2013-12-31 | Bally Gaming, Inc. | Discovery method and system for dynamically locating networked gaming components and resources |
US8631501B2 (en) | 2006-11-10 | 2014-01-14 | Bally Gaming, Inc. | Reporting function in gaming system environment |
US8667457B2 (en) | 2006-11-13 | 2014-03-04 | Bally Gaming, Inc. | System and method for validating download or configuration assignment for an EGM or EGM collection |
US8721431B2 (en) | 2008-04-30 | 2014-05-13 | Bally Gaming, Inc. | Systems, methods, and devices for providing instances of a secondary game |
US8734245B2 (en) | 2007-11-02 | 2014-05-27 | Bally Gaming, Inc. | Game related systems, methods, and articles that combine virtual and physical elements |
US8784212B2 (en) | 2006-11-10 | 2014-07-22 | Bally Gaming, Inc. | Networked gaming environment employing different classes of gaming machines |
US8856657B2 (en) | 2008-04-30 | 2014-10-07 | Bally Gaming, Inc. | User interface for managing network download and configuration tasks |
US8870647B2 (en) | 2006-04-12 | 2014-10-28 | Bally Gaming, Inc. | Wireless gaming environment |
US8920233B2 (en) | 2006-11-10 | 2014-12-30 | Bally Gaming, Inc. | Assignment template and assignment bundle in a gaming configuration and download system |
US9005034B2 (en) | 2008-04-30 | 2015-04-14 | Bally Gaming, Inc. | Systems and methods for out-of-band gaming machine management |
US9058716B2 (en) | 2011-06-06 | 2015-06-16 | Bally Gaming, Inc. | Remote game play in a wireless gaming environment |
US9082258B2 (en) | 2006-11-13 | 2015-07-14 | Bally Gaming, Inc. | Method and system for providing download and configuration job progress tracking and display via host user interface |
US9101820B2 (en) | 2006-11-09 | 2015-08-11 | Bally Gaming, Inc. | System, method and apparatus to produce decks for and operate games played with playing cards |
US9111078B2 (en) | 2006-11-10 | 2015-08-18 | Bally Gaming, Inc. | Package manager service in gaming system |
US9120007B2 (en) | 2012-01-18 | 2015-09-01 | Bally Gaming, Inc. | Network gaming architecture, gaming systems, and related methods |
US9275512B2 (en) | 2006-11-10 | 2016-03-01 | Bally Gaming, Inc. | Secure communications in gaming system |
US9443377B2 (en) | 2008-05-30 | 2016-09-13 | Bally Gaming, Inc. | Web pages for gaming devices |
US9466172B2 (en) | 2006-11-13 | 2016-10-11 | Bally Gaming, Inc. | Download and configuration management engine for gaming system |
US9483911B2 (en) | 2008-04-30 | 2016-11-01 | Bally Gaming, Inc. | Information distribution in gaming networks |
US9792770B2 (en) | 2012-01-18 | 2017-10-17 | Bally Gaming, Inc. | Play for fun network gaming system and method |
CN111722940A (en) * | 2020-05-22 | 2020-09-29 | 百富计算机技术(深圳)有限公司 | Message transmission method, terminal equipment and transmission system based on asynchronous serial port |
US11528232B1 (en) * | 2021-08-27 | 2022-12-13 | Hong Kong Applied Science and Technology Research Institute Company Limited | Apparatus and method for handling real-time tasks with diverse size based on message queue |
Families Citing this family (64)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090082079A1 (en) * | 1998-03-11 | 2009-03-26 | Kuhn Tyler V | Intelligent candle display for game machines |
AU2007205809B2 (en) | 2006-08-17 | 2012-05-17 | Bally Gaming, Inc. | Systems, methods and articles to enhance play at gaming tables with bonuses |
US20080153600A1 (en) * | 2006-11-10 | 2008-06-26 | Bally Gaming, Inc. | Gaming system configuration change reporting |
EP2084681A4 (en) | 2006-11-14 | 2011-01-26 | Mudalla Technology Inc | Dynamic gaming library |
WO2008094242A2 (en) * | 2007-01-26 | 2008-08-07 | Wms Gaming Inc. | Configuration synchronization between electronic gaming machines and a supporting server |
US8239230B2 (en) * | 2007-04-26 | 2012-08-07 | Casta International, Llc | System and method for managing personnel and resources in gaming establishment |
US7986418B2 (en) * | 2007-05-25 | 2011-07-26 | Kabushiki Kaisha Toshiba | Driver apparatus, process control method, process control program |
US20080307109A1 (en) * | 2007-06-08 | 2008-12-11 | Galloway Curtis C | File protocol for transaction based communication |
US8060891B2 (en) * | 2007-06-29 | 2011-11-15 | Microsoft Corporation | Management of external hardware appliances in a distributed operating system |
US9454384B2 (en) * | 2007-07-05 | 2016-09-27 | Microsoft Technology Licensing, Llc | Custom operating system via a web-service |
US20090124344A1 (en) * | 2007-11-09 | 2009-05-14 | Bally Gaming, Inc. | Reconfigurable Gaming Machine |
US11270267B2 (en) * | 2007-12-12 | 2022-03-08 | Avaya Inc. | Sensitive information management |
US8949990B1 (en) * | 2007-12-21 | 2015-02-03 | Trend Micro Inc. | Script-based XSS vulnerability detection |
US8578482B1 (en) | 2008-01-11 | 2013-11-05 | Trend Micro Inc. | Cross-site script detection and prevention |
US8850567B1 (en) | 2008-02-04 | 2014-09-30 | Trend Micro, Inc. | Unauthorized URL requests detection |
US9330540B2 (en) * | 2008-02-05 | 2016-05-03 | Steven R. Michels | Customization apparatus and method |
US8308562B2 (en) * | 2008-04-29 | 2012-11-13 | Bally Gaming, Inc. | Biofeedback for a gaming device, such as an electronic gaming machine (EGM) |
US8613655B2 (en) | 2008-04-30 | 2013-12-24 | Bally Gaming, Inc. | Facilitating group play with multiple game devices |
US9092944B2 (en) | 2008-04-30 | 2015-07-28 | Bally Gaming, Inc. | Coordinating group play events for multiple game devices |
US20090275401A1 (en) * | 2008-04-30 | 2009-11-05 | Bally Gaming, Inc. | Method, system, apparatus, and article of manufacture for profile-driven configuration for electronic gaming machines (egms) |
US9406194B2 (en) | 2008-04-30 | 2016-08-02 | Bally Gaming, Inc. | Method and system for dynamically awarding bonus points |
US11005910B1 (en) | 2008-06-17 | 2021-05-11 | Federal Home Loan Mortgage Corporation (Freddie Mac) | Systems, methods, and computer-readable storage media for extracting data from web applications |
US8489989B1 (en) * | 2008-07-15 | 2013-07-16 | Adobe Systems Incorporated | Methods and systems for preflighting using multiple preflight profiles |
WO2010019356A2 (en) * | 2008-07-22 | 2010-02-18 | Wms Gaming, Inc. | Automated wagering game machine configuration and recovery |
TWI381312B (en) * | 2008-08-27 | 2013-01-01 | Condel Internat Technologies Inc | Method and system for performing interoperable digital rights management among different operating system platforms |
AU2009222627B2 (en) | 2008-10-09 | 2011-07-21 | Aristocrat Technologies Australia Pty Limited | Gaming system and gaming system processor module |
US11385758B2 (en) | 2008-10-09 | 2022-07-12 | Aristocrat Technologies Australia Pty Limited | Gaming system and gaming system processor module |
US11287939B2 (en) | 2008-10-09 | 2022-03-29 | Aristocrat Technologies Australia Pty Limited | Gaming system and gaming system processor module |
US20100124989A1 (en) * | 2008-11-14 | 2010-05-20 | Wms Gaming Inc. | Gaming System Having Multiple Wager Levels Eligible For Progressive Jackpots |
US8316240B2 (en) * | 2009-02-20 | 2012-11-20 | International Business Machines Corporation | Securing computer log files |
US8429464B2 (en) | 2009-11-12 | 2013-04-23 | Bally Gaming, Inc. | Background memory validation for gaming devices |
US8317608B2 (en) * | 2009-11-13 | 2012-11-27 | Bally Gaming, Inc. | Gaming device having hard drive based media and related methods |
US20110250953A1 (en) * | 2010-04-12 | 2011-10-13 | Bally Gaming, Inc. | Systems and methods for configuring a gaming machine |
EP3734449B1 (en) * | 2010-06-18 | 2023-07-12 | Sweetlabs, Inc. | Systems and methods for integration of an application runtime environment into a user computing environment |
US8499142B1 (en) | 2010-07-22 | 2013-07-30 | American Megatrends, Inc. | UEFI boot loader for loading non-UEFI compliant operating systems |
US8468334B1 (en) * | 2011-01-28 | 2013-06-18 | American Megatrends, Inc. | Efficient initial RAM disk creation |
US20120295693A1 (en) * | 2011-05-16 | 2012-11-22 | Bytnar Michael R | Dynamic signature management |
US8475283B2 (en) * | 2011-05-24 | 2013-07-02 | Wms Gaming, Inc | Player incentives for wagering game transfers |
US8918776B2 (en) * | 2011-08-24 | 2014-12-23 | Microsoft Corporation | Self-adapting software system |
US9666241B2 (en) | 2012-01-19 | 2017-05-30 | Quixant Plc | Firmware protection and validation |
US8721436B2 (en) | 2012-08-17 | 2014-05-13 | Wms Gaming Inc. | Systems, methods and devices for configuring wagering game devices based on shared data |
US8775925B2 (en) | 2012-08-28 | 2014-07-08 | Sweetlabs, Inc. | Systems and methods for hosted applications |
US9749440B2 (en) | 2013-12-31 | 2017-08-29 | Sweetlabs, Inc. | Systems and methods for hosted application marketplaces |
US10019247B2 (en) | 2014-05-15 | 2018-07-10 | Sweetlabs, Inc. | Systems and methods for application installation platforms |
US10089098B2 (en) | 2014-05-15 | 2018-10-02 | Sweetlabs, Inc. | Systems and methods for application installation platforms |
US9875618B2 (en) | 2014-07-24 | 2018-01-23 | Igt | Gaming system and method employing multi-directional interaction between multiple concurrently played games |
US9520029B2 (en) | 2014-08-28 | 2016-12-13 | Bally Gaming, Inc. | Wagering game machine having enhanced eligibility for progressive jackpots |
US9349246B1 (en) * | 2014-09-15 | 2016-05-24 | Skillz Inc. | Integrations portal for a peer-to-peer game platform |
US10606804B2 (en) * | 2015-01-28 | 2020-03-31 | Verizon Media Inc. | Computerized systems and methods for distributed file collection and processing |
US9479602B1 (en) | 2015-05-20 | 2016-10-25 | Skillz Inc. | Event platform for peer-to-peer digital gaming competition |
US20170144858A1 (en) * | 2015-11-25 | 2017-05-25 | Otis Elevator Company | Automated passenger conveying system manipulation via an automated remote activation and validation of controller software |
KR102509237B1 (en) | 2016-03-15 | 2023-03-10 | 스킬즈 플랫폼 인크. | Synchronization model for virtual tournaments |
KR102482625B1 (en) | 2016-03-15 | 2022-12-28 | 스킬즈 플랫폼 인크. | Across-match analytics in peer-to-peer gaming tournaments |
KR102378226B1 (en) | 2016-03-16 | 2022-03-24 | 스킬즈 플랫폼 인크. | Management of streaming video data |
US10896577B2 (en) | 2016-11-08 | 2021-01-19 | King Show Games, Inc. | Gaming systems and devices to configure multigame bonuses |
US10698865B2 (en) * | 2017-06-26 | 2020-06-30 | Vmware, Inc. | Management of B-tree leaf nodes with variable size values |
US10713888B2 (en) | 2018-03-01 | 2020-07-14 | Ags Llc | Gaming system having boot locked validation of program installs, data installs and program launches |
US10970968B2 (en) | 2018-04-18 | 2021-04-06 | Igt | System and method for incentivizing the maintenance of funds in a gaming establishment account |
US10846992B2 (en) * | 2018-07-23 | 2020-11-24 | Class II Solutions, LLC | Methods and systems for delivering class II gaming |
US11741196B2 (en) | 2018-11-15 | 2023-08-29 | The Research Foundation For The State University Of New York | Detecting and preventing exploits of software vulnerability using instruction tags |
CN110111082B (en) * | 2019-05-14 | 2023-04-28 | 青岛奥利普奇智智能工业技术有限公司 | Random shooting method for field checking work |
US11610452B2 (en) * | 2020-11-23 | 2023-03-21 | Adrenalineip | Method of calculating the odds of a sports play using data fidelity |
CN112596954A (en) * | 2020-12-25 | 2021-04-02 | 深圳市科力锐科技有限公司 | Data backup and reconstruction method, device, equipment and storage medium |
CN114448986B (en) * | 2022-01-04 | 2024-03-01 | 上海弘积信息科技有限公司 | License control method based on MC centralized management system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040002378A1 (en) * | 1994-10-12 | 2004-01-01 | Acres John F. | Method and apparatus for operating networked gaming devices |
US20040054296A1 (en) * | 2002-09-18 | 2004-03-18 | Ramseth Douglas J. | Method and apparatus for interactive annotation and measurement of time series data with automatic marker sequencing |
US20040132532A1 (en) * | 2001-04-19 | 2004-07-08 | Igt | Open architecture communications in a gaming network |
US20040254006A1 (en) * | 1999-10-06 | 2004-12-16 | Igt | USB software architecture in a gaming machine |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5337275A (en) * | 1992-10-30 | 1994-08-09 | Intel Corporation | Method for releasing space in flash EEPROM memory array to allow the storage of compressed data |
US6092168A (en) * | 1996-10-25 | 2000-07-18 | Hewlett-Packard Co. | Data storage system and method for deallocating space by writing and detecting a predefined data pattern |
US5963982A (en) * | 1997-07-02 | 1999-10-05 | Webtv Networks, Inc. | Defragmentation of stored data without pointer indirection |
US7850522B2 (en) * | 1998-03-31 | 2010-12-14 | Igt | Apparatus, systems and methods for facilitating a payout of a gaming device |
US7111141B2 (en) * | 2000-10-17 | 2006-09-19 | Igt | Dynamic NV-RAM |
US6820183B2 (en) * | 2001-01-05 | 2004-11-16 | International Business Machines Corporation | Methods, systems, and computer program products for memory pool management using variable size sub-pools |
CA2460046C (en) * | 2001-09-10 | 2014-06-10 | Igt | Method for developing gaming programs compatible with a computerized gaming operating system and apparatus |
CA2469839A1 (en) * | 2001-11-26 | 2003-06-05 | Igt | Pass-through live validation device and method |
EP1519775B1 (en) * | 2002-07-05 | 2013-03-20 | Mudalla Technology, Inc. | Secure game download |
CA2724141A1 (en) * | 2003-03-10 | 2004-09-23 | Mudalla Technology, Inc. | Dynamic configuration of a gaming system |
US7549042B2 (en) * | 2003-12-16 | 2009-06-16 | Microsoft Corporation | Applying custom software image updates to non-volatile storage in a failsafe manner |
-
2006
- 2006-04-06 US US11/278,937 patent/US20060247057A1/en not_active Abandoned
- 2006-04-07 WO PCT/US2006/012832 patent/WO2006115723A2/en active Application Filing
-
2007
- 2007-11-09 US US11/938,249 patent/US8900054B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040002378A1 (en) * | 1994-10-12 | 2004-01-01 | Acres John F. | Method and apparatus for operating networked gaming devices |
US20040254006A1 (en) * | 1999-10-06 | 2004-12-16 | Igt | USB software architecture in a gaming machine |
US20040132532A1 (en) * | 2001-04-19 | 2004-07-08 | Igt | Open architecture communications in a gaming network |
US20040054296A1 (en) * | 2002-09-18 | 2004-03-18 | Ramseth Douglas J. | Method and apparatus for interactive annotation and measurement of time series data with automatic marker sequencing |
Cited By (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9786123B2 (en) | 2006-04-12 | 2017-10-10 | Bally Gaming, Inc. | Wireless gaming environment |
US8870647B2 (en) | 2006-04-12 | 2014-10-28 | Bally Gaming, Inc. | Wireless gaming environment |
US8052519B2 (en) | 2006-06-08 | 2011-11-08 | Bally Gaming, Inc. | Systems, methods and articles to facilitate lockout of selectable odds/advantage in playing card games |
US9101820B2 (en) | 2006-11-09 | 2015-08-11 | Bally Gaming, Inc. | System, method and apparatus to produce decks for and operate games played with playing cards |
US8631501B2 (en) | 2006-11-10 | 2014-01-14 | Bally Gaming, Inc. | Reporting function in gaming system environment |
US8191121B2 (en) | 2006-11-10 | 2012-05-29 | Bally Gaming, Inc. | Methods and systems for controlling access to resources in a gaming network |
US9508218B2 (en) | 2006-11-10 | 2016-11-29 | Bally Gaming, Inc. | Gaming system download network architecture |
US9275512B2 (en) | 2006-11-10 | 2016-03-01 | Bally Gaming, Inc. | Secure communications in gaming system |
US9111078B2 (en) | 2006-11-10 | 2015-08-18 | Bally Gaming, Inc. | Package manager service in gaming system |
US8920233B2 (en) | 2006-11-10 | 2014-12-30 | Bally Gaming, Inc. | Assignment template and assignment bundle in a gaming configuration and download system |
US8784212B2 (en) | 2006-11-10 | 2014-07-22 | Bally Gaming, Inc. | Networked gaming environment employing different classes of gaming machines |
US9466172B2 (en) | 2006-11-13 | 2016-10-11 | Bally Gaming, Inc. | Download and configuration management engine for gaming system |
US9082258B2 (en) | 2006-11-13 | 2015-07-14 | Bally Gaming, Inc. | Method and system for providing download and configuration job progress tracking and display via host user interface |
US8667457B2 (en) | 2006-11-13 | 2014-03-04 | Bally Gaming, Inc. | System and method for validating download or configuration assignment for an EGM or EGM collection |
US8734245B2 (en) | 2007-11-02 | 2014-05-27 | Bally Gaming, Inc. | Game related systems, methods, and articles that combine virtual and physical elements |
US9613487B2 (en) | 2007-11-02 | 2017-04-04 | Bally Gaming, Inc. | Game related systems, methods, and articles that combine virtual and physical elements |
US8920236B2 (en) | 2007-11-02 | 2014-12-30 | Bally Gaming, Inc. | Game related systems, methods, and articles that combine virtual and physical elements |
US8616958B2 (en) | 2007-11-12 | 2013-12-31 | Bally Gaming, Inc. | Discovery method and system for dynamically locating networked gaming components and resources |
US8819124B2 (en) | 2007-11-12 | 2014-08-26 | Bally Gaming, Inc. | System and method for one-way delivery of notifications from server-to-clients using modified multicasts |
US8201229B2 (en) | 2007-11-12 | 2012-06-12 | Bally Gaming, Inc. | User authorization system and methods |
US8721431B2 (en) | 2008-04-30 | 2014-05-13 | Bally Gaming, Inc. | Systems, methods, and devices for providing instances of a secondary game |
US8856657B2 (en) | 2008-04-30 | 2014-10-07 | Bally Gaming, Inc. | User interface for managing network download and configuration tasks |
US9483911B2 (en) | 2008-04-30 | 2016-11-01 | Bally Gaming, Inc. | Information distribution in gaming networks |
US9005034B2 (en) | 2008-04-30 | 2015-04-14 | Bally Gaming, Inc. | Systems and methods for out-of-band gaming machine management |
US8382584B2 (en) | 2008-05-24 | 2013-02-26 | Bally Gaming, Inc. | Networked gaming system with enterprise accounting methods and apparatus |
US8366542B2 (en) | 2008-05-24 | 2013-02-05 | Bally Gaming, Inc. | Networked gaming system with enterprise accounting methods and apparatus |
US9443377B2 (en) | 2008-05-30 | 2016-09-13 | Bally Gaming, Inc. | Web pages for gaming devices |
US8412768B2 (en) | 2008-07-11 | 2013-04-02 | Ball Gaming, Inc. | Integration gateway |
US20130231190A1 (en) * | 2008-07-11 | 2013-09-05 | Bally Gaming, Inc. | Integration gateway |
US8851988B2 (en) | 2008-11-14 | 2014-10-07 | Bally Gaming, Inc. | Apparatus, method, and system to provide a multiple processor architecture for server-based gaming |
US8347303B2 (en) | 2008-11-14 | 2013-01-01 | Bally Gaming, Inc. | Apparatus, method, and system to provide a multi-core processor for an electronic gaming machine (EGM) |
US8266213B2 (en) | 2008-11-14 | 2012-09-11 | Bally Gaming, Inc. | Apparatus, method, and system to provide a multiple processor architecture for server-based gaming |
US8423790B2 (en) | 2008-11-18 | 2013-04-16 | Bally Gaming, Inc. | Module validation |
US9058716B2 (en) | 2011-06-06 | 2015-06-16 | Bally Gaming, Inc. | Remote game play in a wireless gaming environment |
US9898889B2 (en) | 2011-06-06 | 2018-02-20 | Bally Gaming, Inc. | Remote game play in a wireless gaming environment |
US9120007B2 (en) | 2012-01-18 | 2015-09-01 | Bally Gaming, Inc. | Network gaming architecture, gaming systems, and related methods |
US9792770B2 (en) | 2012-01-18 | 2017-10-17 | Bally Gaming, Inc. | Play for fun network gaming system and method |
US10403091B2 (en) | 2012-01-18 | 2019-09-03 | Bally Gaming, Inc. | Play for fun network gaming system and method |
CN111722940A (en) * | 2020-05-22 | 2020-09-29 | 百富计算机技术(深圳)有限公司 | Message transmission method, terminal equipment and transmission system based on asynchronous serial port |
US11528232B1 (en) * | 2021-08-27 | 2022-12-13 | Hong Kong Applied Science and Technology Research Institute Company Limited | Apparatus and method for handling real-time tasks with diverse size based on message queue |
Also Published As
Publication number | Publication date |
---|---|
WO2006115723A2 (en) | 2006-11-02 |
WO2006115723A3 (en) | 2009-04-23 |
US8900054B2 (en) | 2014-12-02 |
US20080064501A1 (en) | 2008-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20060247057A1 (en) | Logic Interface Engine System and Method | |
US10645181B2 (en) | Meta broker for publish-subscribe-based messaging | |
JP4566273B2 (en) | Method for reliable messaging using redundant message streams in a high speed, low latency data communication environment | |
US7676562B2 (en) | Computer system for accessing instrumentation information | |
JP3837291B2 (en) | Application independent messaging system | |
US7865606B1 (en) | Adapter framework | |
JP3980596B2 (en) | Method and system for remotely and dynamically configuring a server | |
US6874147B1 (en) | Apparatus and method for networking driver protocol enhancement | |
EP2378741B1 (en) | Systems and Methods for Conducting Communications Among Components of Multidomain Industrial Automation System | |
US9003428B2 (en) | Computer data communications in a high speed, low latency data communications environment | |
US8732258B2 (en) | Method and system for transporting telemetry data across a network | |
CN101371237A (en) | Performing message payload processing functions in a network element on behalf of an application | |
US20060155812A1 (en) | Management of network devices via email | |
US8266630B2 (en) | High-performance XML processing in a common event infrastructure | |
US20020120694A1 (en) | Distributed intelligent information technology operations automation | |
US7934218B2 (en) | Interprocess communication management using a socket layer | |
CA2843284A1 (en) | Computer system, computer-implemented method and computer program product for sequencing incoming messages for processing at an application | |
US20020138605A1 (en) | Message tracking system and method | |
WO2011072230A2 (en) | Proxy-based, distributed computer-aided dispatch system | |
CN112689020B (en) | Message transmission method, message middleware, electronic equipment and storage medium | |
EP1198101A1 (en) | Provisioning mechanism for a service gateway | |
US7937433B1 (en) | Queuing connector to promote message servicing | |
WO2013180255A1 (en) | Communication devices and method | |
CN113810264B (en) | Information transmission method, device, electronic equipment and storage medium | |
US7007094B1 (en) | Object oriented communications system over the internet |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: SG GAMING, INC., NEVADA Free format text: CHANGE OF NAME;ASSIGNOR:BALLY GAMING, INC.;REEL/FRAME:051642/0514 Effective date: 20200103 |