US20060247057A1 - Logic Interface Engine System and Method - Google Patents

Logic Interface Engine System and Method Download PDF

Info

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
Application number
US11/278,937
Inventor
Anthony Green
Jordan Strub
Patel Pravinkumar
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LNW Gaming Inc
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to US11/278,937 priority Critical patent/US20060247057A1/en
Priority to PCT/US2006/012832 priority patent/WO2006115723A2/en
Publication of US20060247057A1 publication Critical patent/US20060247057A1/en
Priority to US11/938,249 priority patent/US8900054B2/en
Assigned to SG GAMING, INC. reassignment SG GAMING, INC. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: BALLY GAMING, INC.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • G07F17/3202Hardware aspects of a gaming system, e.g. components, construction, architecture thereof
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • G07F17/3202Hardware aspects of a gaming system, e.g. components, construction, architecture thereof
    • G07F17/3223Architectural aspects of a gaming system, e.g. internal configuration, master/slave, wireless communication
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • G07F17/3225Data transfer within a gaming system, e.g. data sent between gaming machines and users
    • G07F17/323Data 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

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • 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.
  • COPYRIGHT NOTICE
  • A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever.
  • FIELD OF THE INVENTION
  • 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.
  • BACKGROUND OF THE INVENTION
  • 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.
  • SUMMARY OF THE INVENTION
  • 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.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • 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.
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
  • 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 a logic interface engine 10 constructed in accordance with the claimed invention. Specifically, with respect to the preferred embodiment logic interface engine 10 shown in FIG. 1, data flow is illustrated as a bidirectional path through the various components of the logic interface engine. As shown in FIG. 1, 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.
  • 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., the command router 30, the message processor 40, and the transport layer 50). In such an embodiment, different manufactures/platforms can provide persistent memory API points that the grand transport block 60 can reference indirectly.
  • Preferably, the logic controller 20 provides command generation and processing for the grand 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 the logic controller 20 may be required in order for the BSP to properly interface with devices and components from varying manufactures. Preferably, the logic controller 20 further includes a logic manager 24 for managing logic commands.
  • As shown in FIG. 2, in another aspect of a preferred embodiment, 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. Preferably, 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.
  • Referring again to FIG. 2, 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. Referring again to FIG. 2, 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.
  • In one preferred embodiment shown in FIG. 2, with respect to outbound information, the EMG object classes 26 are capable of sending fully formed commands to the command router 30. Correspondingly, with respect to inbound information, the EMG object classes 26 are capable of receiving fully formed commands from the command router 30. In another aspect of a preferred embodiment, 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) are unique in that they contain the necessary information (i.e., additional logic) to control (or react to) events related to the command router 30, the message processor 40, and the transport layers 50. The additional logic provided to the deviceClass 26 1 and communicationClass 26 2 simplifies the connection between the logic manager 24 and the command router 30. With respect to the deviceClass 26 1, as described in full detail below, the command router 30 uses the device-to-host subscription lists to direct the outbound commands to the appropriate message processor 40.
  • With respect to the communicationClass 26 2, as described below, 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.
  • In one aspect of a preferred embodiment, 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 then, in turn, registers each instance with the command router 30. Additionally, the default owner host references are presented to the command router 30 via the EGM deviceClass 26 1. Preferably, 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. In one preferred embodiment, logic manager 24 initializes the EGM communicationClass 26 2 and automatically subscribes each registered host to the communicationClass 26 2.
  • In one preferred embodiment of the logic interface engine 10, the EMG object classes 26 are responsible for class specific content XML formatting. Preferably, 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. 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 the logic 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 core EMG object classes 26 are identified along with the command router 30. 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.
  • In a preferred embodiment of the logic interface engine 10, the EMG object classes 26 of the logic controller 20 send complete (logic interface engine-compliant) commands to the command router 30. Similarly, the message processors 40 preferably send complete (logic interface engine-compliant) commands to the command router 30. Notably, in one preferred embodiment, 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.
  • 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 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. Specifically, 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. 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 the logic 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 the logic interface engine 10. By using centralized logic in command router 30 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.
  • Accordingly, as shown in FIG. 3, the command router 30 uses the device-to-host subscription lists to direct the outbound commands to the appropriate message processor 40. Similarly, 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. In one preferred embodiment, 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.
  • In a preferred embodiment of the logic interface engine 10, 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.
  • Referring now to FIG. 4, regarding outbound information, 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. Notably, the message processors 40 in a preferred embodiment of the logic interface engine 10 are intelligent message processors 40. In this regard, 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. Similarly, when a system host (from across a network and outside of the logic interface engine 10) sends a message to the gaming device, the intelligent message processors 40 decompose the message into its constitute commands. Preferably, 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. In a preferred embodiment, the logic 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 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.
  • As described above, for outbound information, 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. Additionally, the message processors 40 1,2, . . . n manage retry logic. Preferably, the message processors 40 1,2, . . . n also notify the command router 30 when a host 44 1,2, . . . n dies or is established. Further, the message processors 40 1,2, . . . n manage an independent process or thread for each host 44 1,2, . . . n.
  • As shown in FIG. 4, for inbound information, 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. 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 the other message processors 40 1,2, . . . n. Additionally, for inbound information processing, 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. It will be appreciated by one of ordinary skill in the art that 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.
  • 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 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.
  • 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, 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.
  • Referring now to FIG. 5, in one preferred embodiment, 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. 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 the command router 30. Additionally, communication status information is preferably passed to the EMG object classes 26 through the command 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 the logic 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 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 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 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.
  • 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.
US11/278,937 2005-04-28 2006-04-06 Logic Interface Engine System and Method Abandoned US20060247057A1 (en)

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)

* Cited by examiner, † Cited by third party
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 (63)

* Cited by examiner, † Cited by third party
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
US8257170B2 (en) * 2006-11-14 2012-09-04 Igt Dynamic gaming library
US9231824B2 (en) * 2007-01-26 2016-01-05 Bally 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
US20090124369A1 (en) * 2007-11-09 2009-05-14 Bally Gaming, Inc. Reconfigurable Gaming Machine Method
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)
US9092944B2 (en) 2008-04-30 2015-07-28 Bally Gaming, Inc. Coordinating group play events for multiple game devices
US8613655B2 (en) 2008-04-30 2013-12-24 Bally Gaming, Inc. Facilitating group play with 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
US8231471B2 (en) * 2008-07-22 2012-07-31 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
US11385758B2 (en) 2008-10-09 2022-07-12 Aristocrat Technologies Australia Pty Limited Gaming system and gaming system processor module
AU2009222627B2 (en) 2008-10-09 2011-07-21 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
EP2583174A1 (en) 2010-06-18 2013-04-24 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
US8971144B2 (en) 2012-01-19 2015-03-03 Quixant Plc Hardware write-protection
US9311777B2 (en) 2012-08-17 2016-04-12 Bally Gaming, Inc. Systems, methods and devices for configuring wagering game systems and devices
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
WO2017160917A2 (en) 2016-03-15 2017-09-21 Skillz Inc. Across-match analytics in peer-to-peer gaming tournaments
CN114768245A (en) 2016-03-15 2022-07-22 思奇里兹平台股份有限公司 Synchronization model for virtual ranking games
EP3429712A1 (en) 2016-03-16 2019-01-23 Skillz Inc. 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
CN114448986B (en) * 2022-01-04 2024-03-01 上海弘积信息科技有限公司 License control method based on MC centralized management system

Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
EP1433078A4 (en) * 2001-09-10 2006-11-15 Igt Reno Nev 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
CA2518466C (en) * 2003-03-10 2011-06-21 Cyberscan 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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8870647B2 (en) 2006-04-12 2014-10-28 Bally Gaming, Inc. Wireless gaming environment
US9786123B2 (en) 2006-04-12 2017-10-10 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
US9111078B2 (en) 2006-11-10 2015-08-18 Bally Gaming, Inc. Package manager service in gaming system
US9275512B2 (en) 2006-11-10 2016-03-01 Bally Gaming, Inc. Secure communications in gaming system
US8784212B2 (en) 2006-11-10 2014-07-22 Bally Gaming, Inc. Networked gaming environment employing different classes of gaming machines
US8920233B2 (en) 2006-11-10 2014-12-30 Bally Gaming, Inc. Assignment template and assignment bundle in a gaming configuration and download system
US9508218B2 (en) 2006-11-10 2016-11-29 Bally Gaming, Inc. Gaming system download network architecture
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
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
US8920236B2 (en) 2007-11-02 2014-12-30 Bally Gaming, Inc. Game related systems, methods, and articles that combine virtual and physical elements
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
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
US8616958B2 (en) 2007-11-12 2013-12-31 Bally Gaming, Inc. Discovery method and system for dynamically locating networked gaming components and resources
US8856657B2 (en) 2008-04-30 2014-10-07 Bally Gaming, Inc. User interface for managing network download and configuration tasks
US8721431B2 (en) 2008-04-30 2014-05-13 Bally Gaming, Inc. Systems, methods, and devices for providing instances of a secondary game
US9005034B2 (en) 2008-04-30 2015-04-14 Bally Gaming, Inc. Systems and methods for out-of-band gaming machine management
US9483911B2 (en) 2008-04-30 2016-11-01 Bally Gaming, Inc. Information distribution in gaming networks
US8366542B2 (en) 2008-05-24 2013-02-05 Bally Gaming, Inc. Networked gaming system with enterprise accounting methods and apparatus
US8382584B2 (en) 2008-05-24 2013-02-26 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
US20130231190A1 (en) * 2008-07-11 2013-09-05 Bally Gaming, Inc. Integration gateway
US8412768B2 (en) 2008-07-11 2013-04-02 Ball Gaming, Inc. Integration gateway
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
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
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
WO2006115723A3 (en) 2009-04-23
US8900054B2 (en) 2014-12-02
WO2006115723A2 (en) 2006-11-02
US20080064501A1 (en) 2008-03-13

Similar Documents

Publication Publication Date Title
US20060247057A1 (en) Logic Interface Engine System and Method
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
US20180167476A1 (en) Meta broker for publish-subscribe-based messaging
JP3837291B2 (en) Application independent messaging system
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
CN113051086B (en) Data processing method and device, electronic equipment and storage medium
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