Abstract:
A system to coordinate a wagering event using a virtual Web server with an administration application and a server database. The administration application is executable code which can generate a first event page from an event category page. The administration application also has a player management page, a pool page and a ticket management set of pages. The administration application interoperates with a banking application and a casino application. The administration application will send the event information to the casino application, receive wager information from the casino application, coordinate wager amounts with the banking application, close the wagering, monitor the event, update pool, close the pool, and allocate the winnings and losses.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application is a continuation of U.S. patent application Ser. No. 12/472,344 filed May 26, 2009 (now U.S. Pat. No. 8,277,311), which claims priority from U.S. Provisional Patent Application Ser. No. 61/122,364 filed Dec. 13, 2008, both of which are incorporated herein by reference in their entireties. 
       INCORPORATION BY REFERENCE 
       [0002]    This application also incorporates U.S. patent application Ser. No. 11/215,633 filed Aug. 29, 2005 by reference in its entirety. 
     
    
     BACKGROUND 
       [0003]    Totalisator Systems consist of networks of computers and wagering terminals linked by modems and frame relay systems which electronically combined wagers into “pools.” Based on pool totals, the system records and displays changes in betting patterns and recalculates parimutuel odds and projected payoffs in timed intervals. Odds are established based on the proportion of money wagered into the pool on each horse. Odds change throughout the course of the wagering cycle and only become final when the wagering pool was closed at the start of the race. When the race results of a race are official, the system calculates payoffs on all winning wagers and betters can collect winnings. Present state-of-the-art systems operate on the intertote system protocol (ITSP), which is adapted from its original use in inter-track, intratote wagering on live races at individual facilities to support extensive inter-track, interstate, and intertote wagering on simulcasts (such as closed-circuit televisions). 
         [0004]    The present intertote system protocol has two main functions: translation of wagering data into uniform computer language and data transportation. It supports a summation of bets or wagers per wagering combination on a per-pool, per-race basis and enables post event analysis of wagering data. When the system is in a non-wagering mode, for data to be examined the records must be retrieved manually from backup tapes. The system as present does not enable the transfer of wagers themselves to the host site or the combination of actual data across systems, which if it were provided, would aid in the real-time detection of wagering irregularities. 
         [0005]    ITSP transmits wagering data serially, so that each bit of electronic data must remain in precise order throughout the transfer process in order for the data to be retrieved successfully. If transmission interruptions occur or data is lost, manual procedures must be implemented to merge wagering information back into the data stream. 
         [0006]    The ITSP system functions on bandwidth that sustains data transmission speeds ranging from 2.4 Kb per second to 19.2 Kb per second. Delays are observed in posting of final odds, the amount of time it takes for the system totes to collect, process, and merge data from hundreds of sources into the host betting pools and trigger a new round of parimutuel odds which delay is largely a function of the ITSP limited bandwidth. 
         [0007]    With regard to security controls for the parimutuel wagering system, the primary control of security exists at the level of the Totalisator company. Generally, each company provides proprietary security programs, policies, response procedures and managerial controls to respond to security incidents. The policies are not uniform across all companies. Generally, contracts for tote services and for simulcasting provide cross-company security standards. 
         [0008]    With regard to regulatory control, parimutuel wagering largely takes place at the state level. Racing commissions are the licensing entities for horseracing and are statutorily authorized to enforce the rules of parimutuel racing and wagering. Regulations vary between jurisdictions as to levels of regulatory control. To create additional symmetry between the state regulatory associations, a joint model rules of racing developed by the NAPRA and RCI are proposed to incorporate enhanced guidelines for wagering security. 
         [0009]    With regard to verifying and reviewing tickets and determining if they are either winning or fraudulent verification can be difficult. In some cases paperless wagers are made at remote locations, within or outside the United States, so that verification of the wagering specifics (for example via audio or digital tapes) involves the cooperation of multiple parties (for example host track, the tote company, a US wagering hub, the hubs tote company, and the off-track betting facility or wagering account service and it&#39;s tote company). In some cases, the data tapes must be pulled and reviewed by relevant staff for each wagering event to verify the ticket. See thee August 2003 report on “ Improving Security in the United States Parimutuel Wagering System: Status Report and Recommendations ” presented by the NTRA wagering technology working group in conjunction with Giuliani partners LLC. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0010]      FIG. 1  is a flowchart of the wagering web service; 
           [0011]      FIG. 2  as a schematic detail of the database; 
           [0012]      FIG. 3  is a plan view of the wagering web service home page; 
           [0013]      FIG. 4  is a plan view of the events page; 
           [0014]      FIG. 5  is a plan view of the players page; 
           [0015]      FIG. 6  is a plan view of the polls page; 
           [0016]      FIG. 7  is a plan view of the event categories page; 
           [0017]      FIG. 8  is a plan view of the posted event results page; 
           [0018]      FIG. 9  is a plan view of the wager placement page; 
           [0019]      FIG. 10  is a plan view of the ticket page. 
       
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
       [0020]    The present embodiment provides a wagering web service which operates on a wagering web virtual server and coordinates wagering on events such as tournaments, wagering on entrants in such events, wagering event-location applications and databases (such as casino applications and their related databases), financial institutions (such as bank applications and databases), and the individual wagering events themselves (such as various types of wagering scenarios, for example a win bet, a choose n to win, (wagering on large entrant groups) etc..) 
         [0021]    The wagering web service acts to synthesize and coordinate the disparate applications to create a Virtual Totalsator System. This Virtual Totalsator System utilizes a scalable technology platform and encrypted communication channels to provide a secure Web service. The service utilizes in one embodiment a Web Service Definition Language or WSDL. The Web service method interfaces and interacts with the various databases discussed above utilizing a Simple Object Access Protocol or SOAP to exchange the structured information regarding the transactions. The protocol utilizes XML as its message format. 
         [0022]    The bandwidth limitations are only limited to the local portals within which the end transactions are taking place. With regard to security controls, the primary control of security exists at the wagering Web service administration application location, and shares security with each of the locations, for example at the event locations, financial locations, and at the wagering locations. Therefore, security is shared disparately between each location and provides a separation of information. With regard to regulatory control, the pari-mutuel wagering takes place at the local level, and the wagering web service administration can take place off-site because no wagering is taking place there. 
         [0023]    With regard to verification of tickets and IDs, the system uses a GUID regime which provides for near unique ticket ID generation. While each generated GUID is not guaranteed to be unique, the total number of unique keys 2 to the 128th or 3.4×10 to the power 30, is so large that the probability of the same number being generated twice is extremely small. 
         [0024]    A more detailed discussion of the present system will now be provided. The present system provides a scalable technology platform, which enables the development of a centralized database of wagering information, as well as provides an encrypted communication channel for interaction with a secure web service which utilizes WSDL for the web service method interface and interaction with the database via SOAP. Furthermore, the client/system authentication uses public-key encryption where authorized systems, kiosks or websites can communicate with the web service. Additional data integrity includes the use of advanced data validation to ensure the integrity of the data through the lifecycle of the system and a transactional database enables every action taken against the database be rolled up into a transaction where it can then be rolled back for prevention of data loss as well as review of actions which occur during the wagering processes. 
         [0025]    With regard to encryption, all communications are provided with internal systems encrypted via RSA 128 bit public-key encryption which prevents the cashing of unclaimed winning tickets. Each ticket ID is based on a unique ticket identification and is generated as a GUID where the GUID is a 16 byte 128 bit random identifier. The GUID or globally unique identifier is a special type of identifier used in software applications in order to provide a reference number which is unique in any context. For example, in defining the internal reference of a type of access point in the software application, or for creating unique keys in the database, the GUID provides a unique reference number for these purposes. While each generated GUID is not guaranteed to be unique, the total number of unique keys 2 to the 128th or 3.4×10 to the power 30, is so large that the probability of the same number being generated twice is extremely small. As an example, consider the observable universe, which contains about five to the 10 power 22 stars; every star could then have 6.8×10 to the 15 universally unique GUIDs. The term GUID generally refers to Microsoft&#39;s implementation of the universally unique identifier or (UUID) standard. Many systems use the term GUID, including Oracle Database, my SQL, DBase, OpenView Operations, ISIS Papyrus, and Novell E Directory. The GUID is also the basis for the GUID partition table, Intel&#39;s replacement for master boot records under EFI. 
         [0026]    In addition, the present system provides clear authentication of each request which is sent to the web service in order to successfully pass data from one component of the system to another component of the system, for example coordinating the data request from a bank client location to a casino client location. 
         [0027]    Generally speaking, the present system integrates client applications and provides a modular and extensible architecture. The client applications do not communicate with the database directly and are transacted through the intermediate web service thus providing the modularity required for creating the scalable platform. In addition, web services utilize open architecture which allows for any system, device, or websites to interact with the web service as long as it has the ability to communicate with the web service via XML and/or SOAP thus providing the extensibility required for enabling the system within different environments. 
         [0028]    The present system can be ported to various use scenarios as previously discussed in the parent applications. For example, the World Series of Poker or any event can be offered through x-named players and one or multiple field bets. Additionally, the final table pick with an (n) order of finish can be chosen. A 
         [0029]    March Madness/NCAA Basketball tournament can be provided utilizing a final 2, final 4, or elite 8 pools or the entire 64 tournament team pool. Mobile wagering within land-based casino operations utilizing a handheld device or smart phone, as well as networking multiple land-based casinos into large “jumbo” wagering pools. 
         [0030]    The present system also provides additional flexibility over the traditional totalisator systems. This includes event independent feature, configurable wagering pools, and the ability to pick “n” number of entrants within the event to place or win in any particular order. For example, as previously discussed in U.S. patent application Ser. No. 11/215,633 filed Aug. 29, 2005, the event independent features include a system where any event types such as poker, billiards, tennis, golf, basketball with multiple entrants or large number of entrants within the fields can be wagered upon. The configurable betting pools offer features such as commissions, minimum and maximum wager amounts, mandatory payouts, progressive or win/lose pools, maximum number of wagers, all defining various winning criteria from a win bet to pick (n). 
         [0031]    This is in alternative embodiment to the wagering application  42  as seen in FIG. 5 of U.S. patent application Ser. No. 11/215,633 filed Aug. 29, 2005. The main focus of this particular embodiment is in providing the wagering backend application  84  to coordinate the parimutuel wagering events between the various parties. Additionally, get information and add information events are posted and returned for coordination of the casino applications  34  the banking applications  38  and the clients  12  as seen in FIGS. 1 and 2 of U.S. patent application Ser. No. 11/215,633 filed Aug. 29, 2005. 
         [0032]    The wagering web service method  700  as seen in  FIG. 1  utilizes in this particular embodiment XML requests and responses. This wagering web service method  700  operates on the wagering web service database  800  as seen in  FIG. 20  which utilizes a relational database and a transactional database such as MySQL server and as previously discussed interacts with the database via SOAP and includes WSDL method definitions for interface with the database. 
         [0033]    A discussion of the wagering web service method  700  will be provided followed by a detailed discussion of the database  800  and then an implementation will be discussed in  FIGS. 3 through 10  of the wagering web service  950  as seen in  FIG. 3  implementing the web service wagering application. 
         [0034]    Referring to  FIG. 1 , the wagering web service method  700  utilizes a number of steps which can be broken into discrete parts but which will be talked in total here in the present embodiment. Before the wagering web service can host an event, the user must create an event in the wager database through the wagering web service system application  950  at step  702 . Once the event is created the event is displayed in the casino application  34  (see FIG. 2 of U.S. patent application Ser. No. 11/215,633) at step  704 . The system then checks to see if a bet start date and time has been reached at step  706 . In order to determine this, the wagering service will send a request to the casino application or service  34  to display whether or not betting can begin at step  708 . If the bet&#39;s start date and time has not been reached, the event continues be displayed in the casino application  704 . If it has been reached, then the wagering application or wagering service  950  and/or wagering application  42  in FIG. 5 of U.S. patent application Ser. No. 11/215,633, will set the pool to active status at step  710 . 
         [0035]    With the pool set to active status, the event is displayed as being open for betting in the casino application at step  712 . During this time, individuals at the casino application or in a location where individuals can wager legally, can place a wager from the casino application client computer at step  714 . The wager is sent to the banking application at step  716  and the wagering service requests from the either banking application or the casino application if the charge was successful at step  720 . If not, the wager is declined and the transaction ends at step  722 . If the charge was successful than the wager details are sent to the wagering database  800  or wagering database  40  (see FIG. 5 of U.S. patent application Ser. No. 11/215,633) at step  724 . The wager is created at step  726  in the wagering web service system  950  or in other words the wagering application  42  (see FIG. 5 of U.S. patent application Ser. No. 11/215,633). Once the wager is created, player odds are calculated at step  728 . 
         [0036]    One way of calculating player odds at step  728  steps is to use the previously discussed method of calculating odds for large pools in parimutuel wagering on a large number of entrants as seen in FIG. 11A of U.S. patent application Ser. No. 11/215,633 where the set bet types  98  or bet set that pools  110  as seen in FIG. 6 of U.S. patent application Ser. No. 11/215,633 or later on discussed below as web methods for calculating player odds in the player odds web method  854  as seen in  FIG. 3 . The wager is created and a wager ID which is a GUID ID  1056  as seen in  FIG. 10  is sent back to the bettor in the casino application at step  730  and a ticket is generated either electronically or by paper utilizing a relational or the actual GUID ID so that the individual wagering has a ticket in hand to present to the ticket office when redeeming his or her winnings. This is a unique ticket that is only generated once. It is generated either through standard printing means, or may be generated electronically and provided to the individuals cell phone or PDA or client laptop computer or desktop computer. 
         [0037]    The web service then returns to the casino application the updated player odds which the casino application displays at step  732 . The casino application continues to poll the web service to determine if the bet end date and time have been reached at step  734 . This occurs when at step  736  the wager service sends a request to the casino application to display the betting window has been closed. When the event being displayed is closed for betting or wagering in the casino application at step  738 , then the web service sets the pool status to pending at step  740 . This is when the wagering stops and the play begins within the particular event such as the poker tournament as previously mentioned in the parent application or billiards tournament etc. 
         [0038]    The results are then posted in the web service application at step  742  and once all results have been posted at step  744  the web service sends the casino application the event results at step  746 . The wagering web service will send a request to the casino service to display the event results at step  748 . Then the wagering application or web service sets the pool status to close at step  750  and the web service determines if there was a winner at step  752 . If there was no winner, the web service determines if the pool was a progressive pool at step  760 . If the progressive pool was active, then the event is complete at step  762 . If there was a winner at step  752  or there was no progressive pool, the wagering application/web service updates the wager status to win, loss, or push along with payout amount at step  754 . 
         [0039]    The web service wager application updates the pools and gross payouts amount along with an indication of having paid out through the use of the flag of some sort at step  756 . The event is complete at step  764  and the web service then returns to a waiting state for either another event to be created, another bet start date and time to be reached, or another bet and date time to be reached for beginning of another competition. 
         [0040]    Still referring to  FIG. 1 , if a player is scratched or taken out of the tournament or competition for whatever reason, the web service application at step  770  will then refund at step  772  all wagers for that player and the odds are then updated. New wager ID&#39;s as previously discussed GUIDS, are sent back to the casino application with a refund flag at step  774 . The casino application displays the scratched player at step  776 , the wager service sends a request to the casino application to display the scratched player step  780 , a wager refund is sent to the banking applications of  782 , and the banking application refunds the wagering amount at step  784 . 
         [0041]    Now referring to  FIG. 2 , discussion of the wagering database  20  which supports with the wagering web service methods will be provided. The wagering web service database  800  keeps track of the events, players, pools, wagers or bet types, status of the wagers and pools, and the coordination of this information between the casino application, banking application, and the individual wageror either at the casino or at a licensed location. 
         [0042]    In discussing  FIG. 2 , reference will also be made to the wagering web service application  950  which shows some administrative features of the site as seen in  FIGS. 3 through 10 . 
         [0043]    The wagering web service database  800  ( FIG. 2 ) can be hosted on a single server or multiple servers with mirroring of the database for security and access purposes. The wagering web service database includes an event category object  802 . The event category object  802  correlates with the event categories page  957  as seen in  FIG. 7 . The administrator can create various categories, or in other words, types of events such as the previously discussed events in the parent applications like, poker tournaments, basketball tournaments, billiards tournaments, marathons, etc. where the administrator can create a category name  1034  which correlates to the category name object  806 , which is accounted with a category ID  804 . The administrator can enter in the category names in a category name field  1036 . The administrator can edit, delete, update, or cancel the various category names. 
         [0044]    Depending upon the categories themselves are events, where the events are actual contests or tournaments which are either played in real time at a physical location or at a virtual location. These events are organized by category and the event page  952  as seen in  FIG. 4  draws from a series of objects in the event object class  808 . When a new event is created, an event ID  810  is assigned. The administrator can enter by adding an event at the add component  972  and in doing so creates a series of available fields for the add event component  954 . The add event component includes a field for entering the name at field  956  which correlates to the name object  812  which is the name of the event. 
         [0045]    A description field  958  correlates to a description object  814  within the database a location field  960  correlates to a location object  816  in the database where the location is the physical or virtual location where the event is happening. 
         [0046]    The website field  962  correlates to the asset object  818  in the database. The asset object and asset fields allow the administrators to enter in the particular website or URL where the tournament is located or the event is located. To assign a category to a particular event, a category pull down menu is provided which correlates to the category ID  804  in the category or the event category object  802 . 
         [0047]    The administrator can select an event start date from an event start date object  964  which is correlated to a database object in the event object  808  which is the event start date time object  822 . The event end time component  966  will ask the administrator to choose an ending time for the event which includes the date time in hours and minutes. This component is correlated to an event end date time object  824  in the database. 
         [0048]    One can also set the bet start date end time in field  968  which is correlated to the bet start date time object  826  in the event object as well as enter the betting end date and time information in field  970  which correlates to the bet end date time object  830  in the database. 
         [0049]    Once the administrator enters in this information, it is reflected in the event management fields  978  which are displayed in the event page  952  for monitoring and quick reference. 
         [0050]    With the event category and the event itself established, a number of additional objects and software components are ready to obtain and/or display information. They include the event results object  832  which correlates to the event results page  959  as seen in  FIG. 3 , the player object  840  which correlates to the players page  953   FIG. 3 , the pool object  870  which correlates to the pool page  955   FIG. 3 , and then additional objects extend from these secondary object pages to be discussed further below. 
         [0051]    Referring to  FIG. 5  and in conjunction with a discussion of the player object  840   FIG. 2 , the wagering web service  950  can either get players, edit players, or add players to a selected event. The players&#39; page  953  allows the web service to either receive or send the player information from the casino or event application/location dynamically through the XML service or the administrator can enter in manually the players themselves which are then affiliated with a particular event. If acquiring the player information dynamically through an XML feed, the administrator may select the event name  956  and then choose the get players component/button  980 . This will then load the player names which include a first name object  844 , a last name object  845 , as well as a field designation  846 . The players are correlated to the particular event ID object  810  and each of the players is assigned a player ID object/account number  842 . If a player, for example, has defaulted or scratches then the player is flagged with the scratch object  852 . 
         [0052]    In the player page  953 , the players once they are loaded into the database, are shown in a players&#39; field  992 . Here the administrator can edit the player utilizing the edit player component  994 , add additional players  982 , indicate whether the player is in the field at  988 , add or edit the player&#39;s first and last names in the fields  984  and  986 , as well as cancel the player at  990 . 
         [0053]    Before the event begins and before the betting or wagering phase of the process, the wagering pools must be established so that individuals who wish to wager on a particular contest can do so. Referring to  FIG. 6 , discussion of the wagering pool page  955  will be provided in conjunction with reference to the database pool object  870   FIG. 2 . The pools can be established either administratively at the wagering web service site or can be established at the event host sites such as the casino or tournament location. Furthermore, a third site unaffiliated with the casino location hosted on a remote computer may be used depending upon the configuration requirements. In order to receive the pool information from a remote location, the get pools component  998  allows the administrator to upload via the XML feed, the pool settings for a particular event or named event  956  selected in the selecting location. The pool can be named in the title field  1002  which correlates to the pool title object  878  in the database. 
         [0054]    When the pool is created, a pool status ID object  876  is assigned. The pool page and object has a bet type object  880  which is correlated to the bet-type selector  1004 . This selector allows the wagering web service to choose the type of winning ticket. For example, picking either a single individual or entrant to win the contest, or choosing a number of entrants (n) to win in any order or in a particular order within the event or contest. Depending upon the bet type, a pool type  1006  can either be a win or a mandatory payout within the set pool types fields  1000  of the pools&#39; page  955 . The pool type  1006  correlates to the pool type object  892  in the database. 
         [0055]    Also within the set pool types  1000  section is a commission field  1008  which correlates to a commission object  882  in the database. If the pick (n) bet-type  1004  is chosen, then the administrator can choose the number of pick counts in the pick count field  1012  which correlates to the pick count object  890  in the database. 
         [0056]    This pick count field enables the administrator to choose the number of individuals or entrants within a particular contest or event to place in any order or place in a particular order depending upon how the particular rules are set for the wager, up to the number of entrants within the field. The administrator can also enter a maximum wagers amount within the max wagers field  1016  correlates to the wager maximum object  886  in the database. The minimum wager field  1010  correlates to the wager minimum object  884  in the database. 
         [0057]    The wager max field  1014  correlates to the wager maximum object  888  in the database. The administrators can also choose a flat payout field  1018  which correlates to a flat payout object  894  in the database. 
         [0058]    The service allows the pool page  955  to display the pool status and pool status field  1020 , the gross total number of wagers in the gross total field  1022  whether the pool has paid out in either true or false in field  1024  and whether or not this was a previous pool in field  1026 . These also correlate to the database objects including the gross total object  896 , the paid out object  898 , and the previous pool ID object  900 . The administrators can update at  1028  and cancel at  1030  as desired, and can also display the current active/closed pool types within the pool type field display  1032  for each particular selected event  956 . 
         [0059]    With the pool set and the players set for a particular event, and before the wagering begins, initial player odds are calculated in the player odds object  854 . The service will then allow individuals as seen in  FIG. 9  to utilize a client side page of the place a wager page  961  for example at a casino location. The web service  950  will receive wager placements from the event location client and the bettor will be able to view the various events by selecting an event at component  956 , get the pools for the particular event at  1052 , and enable the bettor to choose a particular entrant or series of entrants for wagering on in a particular event or contest within a particular pool type. 
         [0060]    During the wagering phase, the player odds object  854  as previously discussed will update the odds for each particular player with the odds object  860 . The wager object  902  includes a wager ID object  904  the wager object itself  908 , a wager status ID  910  and a payout amount  912 . This wager object is reflected in a physical ticket or electronic ticket which the bettor holds to redeem the win. For each particular player, there is a wager detail object  862  which includes the sequence the players placed in the wager sequence object  868 . Each particular wager also has a wager status object associated with it  914  which states whether the wager is open or closed and maintains the status object  918 . 
         [0061]    After the wagering is complete the bidding ends and the event is held. After the event or stage has ended, the administrators can either obtain or enter in the post event results page  959  as seen in  FIG. 8 . Here the administrators can select an event name  956  and get the particular players at  1038 . Players are listed in the players&#39; field  1040 , and the administrators can utilize selector field arrows  1044  to choose the players who have finished in a particular event and display these players in the finished event field  1042 . The players can be ranked and adjusted according to their finishing placements at  1046 . 
         [0062]    The administrators can save the progress of a particular event if it&#39;s still occurring in  1048 , and they can also finalize and close the event in  1050 . Once the players have or the entrants have finished their play and the particular event is closed, the event finish characteristics field  1042  dictates the end result of the particular pools which were wagered upon and individuals who did wager, can utilize the cash ticket page  963  to enter in their ticket ID at field  1056  and obtain the payout  1058 .