A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever.
The present invention relates generally to communications to and from gaming machines that support wagering on wagering games, and more particularly to the flow of information between gaming machines and remote servers that support the gaming machines.
Gaming machines, such as slot machines and video poker machines, have been a cornerstone of the gaming industry for several years. Generally, the popularity of such machines with players is dependent on the likelihood (or perceived likelihood) of winning money at the machine and the intrinsic entertainment value of the machine relative to other available gaming options. Different players, changing popularity of types of games, geographic location of a gaming machine, time of day and day of the week may cause players to be attracted to different types of gaming machines. This gives rise to a desire by operators for gaming machines that are flexible and configurable.
Microprocessor-based gaming machines that follow a client/server configuration provide flexibility through software control and the ability to communicate data and download software from a supporting server. The gaming machines are clients of one or more remotely located servers. While the gaming machines will typically contain a gaming application, i.e. game software currently in play by a user, other data or management control (gaming information) related to the current gaming application or the gaming machine may need to be obtained from a remote server.
Where the ongoing play of the current game is dependent on the gaming machine receiving such gaming information from the server, the inherent delay in gaming machine obtaining the information from the server will be a disruption to the user if the delay is long enough. For example, a delay of 0.01 second in the ongoing game would not likely be noticed, but a delay of a few seconds in a continuously changing image would likely be annoying to the user. Delays are commonly encountered when a browser initiates an information request from a remote server. The typical browser will delay other processing until the information has been received, i.e. an hourglass being commonly displayed on the screen to indicate the browser is awaiting a reply or event. Therefore, there is a need to minimize such disruptions for gaming machines operating as clients in the client/server mode.
According to one aspect of the present invention, an embodiment includes a computing apparatus operating as a gaming machine that permits wagering on games. A browser generates a request for information contained on a remote server. An intermediate client-side processing, ICSP, engine coupled with the browser receives the request and generates a corresponding request that is transmitted to the remote server. The browser, following the transmission of the first message, is released to process other actions without having yet received a reply to the first message.
According to another aspect of the invention, an embodiment includes a communication method implemented by a computing apparatus operating as a gaming machine that permits wagering on games. A first message is received from a browser residing on the computing apparatus by an intermediate client-side processing, ICSP, engine also residing on the computing apparatus, where the first message is a request for information contained on a remote server. A second message is generated by the ICSP engine responsive to receipt of the first message and transmitted to the remote server, where the second message seeks the information from the remote server. The browser, following the transmission of the first message to the ICSP engine, is released to continue processing other tasks without having received the reply from the remote server responding to the request by the browser.
According to yet another aspect of the invention, a computer readable storage medium is encoded with instructions for enabling a computing apparatus to perform the above method.
Additional aspects of the invention will be apparent to those of ordinary skill in the art in view of the detailed description of various embodiments, which is made with reference to the drawings, a brief description of which is provided below. The use of the same reference numeral in the drawings is utilized to denote identical or similar elements.
Various embodiments of this invention can be utilized. The drawings and descriptions of embodiments of the invention exemplify its principles and are not intended to limit the broad aspect of the invention to only the illustrated embodiments.
Referring to
The central gaming facility 12 may represent a control location of a gaming business operator that supports individual gaming users, e.g. users of PDA 26 and laptop 24, as well as other gaming facilities of the operator such as casino 18. The central gaming facility 12 in this illustrative example is geographically separated from the casino 18 and the individual users. The central gaming facility 12 includes a workstation 30 supported by data storage element 32 and a server 34 that serves as a communication host for casino 18 and the individual users via firewall 36. Requests for information and/or data received from the individual users by server 34 are processed, the requested information and/or data obtained from support resources, e.g. workstation 30 and data residing in storage element 32, and replies with the requested information sent from the server 34 to the requesting user's devices.
The local gaming facility 18 represents a casino and includes a server 40 supported by a workstation 42, data storage element 44 and a router 46. The router 46 supports communications with different gaming machines GM(1)-GM(N) 50 by wired links 48. A wireless access point 52 is connected by a wired link 48 to router 46 and by wireless communication links to wireless gaming machines WGM(1)-WGM(N) 54.
At least some of the gaming machines 50 and some of the wireless gaming machines 54 support the play of wagering games in which the user's gaming machine functions in the client/server communication model with the user's gaming machine being a client of server 40. The user's gaming machine contains software which is responsible for the ongoing play of the game. However, some information or data associated with the play of the game must be obtained during the ongoing play of the game from server 40. Consistent with one objective of the embodiments of the present invention, disruptions to the ongoing play of the game from the perspective of the user due to delays in obtaining such information are minimized, if not eliminated, by the use of a communication engine operating on the user's gaming machine.
In a typical implementation, the user generates an input 106 causing the user's client browser to generate an HTTP request that is transmitted as represented by arrow 108 to a server. For example, the HTTP request may represent a question as to the meaning of a particular acronym that is directed to a hosted web site on the server containing a database of acronyms. Line 110 represents processing of the received request by the server. In this example, the acronym web site will generate a query to its associated data base to locate the particular acronym. Upon the web site receiving a response to the query from the associated data base, a reply 112 is transmitted to the user's browser from the web site such as utilizing hypertext markup language (HTML)+cascading style sheet (CSS) data. The reply may contain the located definition of the requested particular acronym or an indication that such an acronym could not be located. An important aspect of this example is represented by the sequential nature of this series of communications. That is, for time T1 the user will typically be watching a screen display of an hourglass icon indicating that the client browser is awaiting an answer to the request. This is due to the normal web application model in which a reply to a request must be received (or a predetermined time out representing a reply failure) before the client browser application is made ready, i.e. released, to act on a further user input or to facilitate further processes. When the time T1 is substantial relative to an expected rate of screen image changes/refreshes, the user will likely be annoyed by the disruption.
In the following example a user input 146 is entered giving rise to a request for information from the server 144. A transmission 148 corresponding to this request is received by the AJAX engine 142 which also resides on the client side and operates in close cooperation with the user's browser from which the user input 146 originated. The transmission 148 may be a call of a JavaScript function already loaded in an html document. The AJAX engine generates and transmits a further request 150 to the server 144 seeking the information originally requested by input 146. The AJAX engine 142 may generate a response 152 that is received by the browser with very little time delay relative to a T1 time interval (e.g. less than 10% of time T1). The response 152 represents that the browser is free to proceed to receive further user input or execute further processes without the browser having to await a response originating from the server.
Upon receiving the request 150, the server processes the request and generates a reply utilizing appropriate resources during the time indicated by arrow 154. The server transmits the reply 156 that is received and processed by the AJAX engine 142 and forwarded as reply 158 to the browser 140. This completes the return of the requested information. It is important to recognize that the previously required sequential processing cycle, for a conventional browser request requiring an answer from the server before the client browser was released for further processing, is no longer required.
This permits the client browser to minimize time delays such that from the user's perspective, no delay or no significant delay is perceived. For example, in a gaming application where the client browser implements at least part of the game or a related game function and where data from the server is needed to determine an event such as whether the user has won a bonus in a multi-player gaming competition, in accordance with embodiments of the present invention, the user's screen does not become frozen while awaiting the information from the server. The user's screen can continue to show changing images depicting the ongoing play of the game with the bonus information being updated when it becomes available, i.e. on receipt of reply 158. Thus, only the relatively small time interval between the transmission of the user input 146 and the receipt of a reply 152, if required, will cause a delay, which due to the co-location of the AJAX engine with the client browser, will be small enough to be not noticeable to the user during the ongoing gaming, play.
In the following example the user's computing apparatus utilizes browser 200 to implement and run at least a portion of a wagering game. During the ongoing play of the game a determination is to be made of whether the user has won a bonus as part of a multiple player gaming activity. Such a determination requires the receipt of information from the server. This example generally follows the signal flow diagram described and
The user interface 202 generates a JavaScript call 220 representing the information request that is transmitted to the AJAX engine 204 by JavaScript. Since the request 220 is a JavaScript call, the user interface can proceed with further processing. Alternatively, with only a small time delay, e.g. less than 0.1 second, the AJAX engine 204 may transmit a Javascript reply 221 to the user interface 202 thereby permitting the user interface to continue processes relating to the ongoing game. A typical round trip information retrieval time is substantially longer than the time before the reply 221 is received by the browser, e.g. 10 times longer. Although the reply 221 does not contain a specific answer to the request 220 since the required information from the server has not yet been obtained, a relevant reply 221 or acknowledgement enables the ongoing game to continue without a delay to wait for the reply from the server. The AJAX engine 204 generates an asynchronous HTTP request 222 (XMLHttpRequest) transmitted by HTTP links 206 to the server 208. The server responds by generating a resource request 224 transmitted to the server support 210 seeking information sought by the request. The server support 210 generates a reply 226 received by server 208 where the reply 226 provides the answer to the user's request. It will be understood that the answer may comprise data sought by the request or may comprise an indication that such data is not available or could not be found. The server 208 transmits this information in an XML data reply 228 coupled by HTTP links 206 to the AJAX engine 204. The AJAX engine processes this reply and transmits the contained information as an HTML+CSS data signal 230 to the user interface 202. This completes the information cycle and provides information responsive to the initial request generated by the user interface 202.
The AJAX engine represents a combination of technologies. It incorporates a standards-based combination using XHTML and CSS; dynamic display and interaction using the document object model (DOM); data interchange and manipulation using XML and XSLT; asynchronous data retrieval using XMLHttpRequest; and JavaScript that integrates these technologies together. Applications which utilize the AJAX model include web based services such as Google's Gmail and Maps.
In this example a wagering game as being played by a user on a PDA using a wireless link. The PDA periodically polls the web server to determine if its coordinates are within the permitted area for playing wagering games, e.g. inside the building of a casino. During the continuous ongoing play of the game, a background function running on the AJAX engine 252 monitors a timer that sets a predetermined time interval 260 in which the PDA has to be periodically validated as being within the permitted game playing area. Upon the timer indicating that a new validation is required, the AJAX engine 252 generates and transmits a validation request 262 to the remote web server 254. The web server 254 transmits the identity of the PDA and a request for its coordinates to network services 256 by a query 264. The network services 256 determine the coordinates of the PDA such as by radio triangulation or other known location techniques. Network services 256 generates and transmits a report 266 to the remote web server 254 identifying the particular PDA and providing its coordinates. The remote web server 254 then compares 268 the coordinates of the PDA with stored coordinates defining the permitted area for gaming.
In the illustrative example, the PDA had moved to a location outside the permitted area of play since the last validation. The remote web server 254 saves the user's state of the play of the game at step 270. Remote web server 254 transmits a signal 272 to the local AJAX engine 252 indicating that the current PDA coordinates are invalid. This causes the AJAX engine 252 to generate and transmit a message 274 to the co-resident client web browser 250 causing an “Out Of Permitted Playing Area” notice to be displayed on the screen of the PDA to the user. If the user returns to a permitted location, the game will be reinstated utilizing the saved game states for the user upon the periodic validation determining that the PDA is within a permitted gaming area. Alternatively, if the PDA has remained within a permitted playing area, signal 272 will contain a valid coordinate signal which will be recognized by the AJAX engine 252 as indicating that the ongoing play of the game is permitted to continue until the next coordinate validation check. This example illustrates that a client browser in association with an AJAX engine can permit the ongoing play of a game without causing a disruption of the user due to the delay in obtaining information related to the play the game from a remote server.
The AJAX engine/technology is merely representative of one embodiment of various types of intermediate client-side processing (ICSP) engines used in cooperation with a browser that permits asynchronous replies to be received from a server by the browser without the user having to endure a wait state while the browser awaits the receipt of the reply from the server. For example, a different ICSP engine, ATLAS, is proposed by Microsoft Corporation.
The computing apparatus in one example employs one or more computer readable signal bearing media. The computer-readable signal-bearing media store software, firmware and/or assembly language for performing one or more portions of one or more embodiments of the invention. The computer-readable signal-bearing medium for the computing apparatus in one example comprises one or more of a magnetic, electrical, optical, biological, and atomic data storage medium. For example, the computer-readable signal-bearing medium may comprise floppy disks, magnetic tapes, CD-ROMs, DVD-ROMs, hard disk drives, USB flash memory and electronic memory modules. In another example, the computer-readable signal-bearing medium comprises a modulated carrier signal or digital baseband signal transmitted over a network coupled with the apparatus, for instance, one or more of a telephone network, a local area network (“LAN”), a wide area network (“WAN”), the Internet, and a wireless network.
The steps or operations described herein are just exemplary. There may be many variations to these steps or operations without departing from the spirit of the invention. For instance, the steps may be performed in a differing order, or steps may be added, deleted, or modified.
Each of these embodiments and obvious variations thereof is contemplated as falling within the spirit and scope of the claimed invention, which is set forth in the following claims.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US2006/033295 | 8/25/2006 | WO | 00 | 5/6/2008 |
Number | Date | Country | |
---|---|---|---|
60734947 | Nov 2005 | US |