Wagering web service system and method

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.

BACKGROUND

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).

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.

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.

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.

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.

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.

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'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 the 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.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

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. . . . )

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.

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.

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.

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.

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 power22stars; every star could then have 6.8×10 to the 15 universally unique GUIDs. The term GUID generally refers to Microsoft'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's replacement for master boot records under EFI.

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.

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.

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 March Madness/NCAA Basketball tournament can be provided utilizing a final 2, final 4, or elite 8 pools or the entire64tournament 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.

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 the 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).

This is in alternative embodiment to the wagering application42as seen inFIG. 5. 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 application84to 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 applications34the banking applications38and the clients12as seen inFIGS. 1 and 2of U.S. patent application Ser. No. 11/215,633 filed Aug. 29, 2005.

The wagering web service method700as seen inFIG. 1utilizes in this particular embodiment XML requests and responses. This wagering web service method700operates on the wagering web service database800as seen inFIG. 20which 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.

A discussion of the wagering web service method700will be provided followed by a detailed discussion of the database800and then an implementation will be discussed inFIGS. 3 through 10of the wagering web service950as seen inFIG. 3implementing the web service wagering application.

Referring toFIG. 1, the wagering web service method700utilizes 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 application950at step702. Once the event is created the event is displayed in the casino application34(seeFIG. 2of U.S. patent application Ser. No. 11/215,633) at step704. The system then checks to see if a bet start date and time has been reached at step706. In order to determine this, the wagering service will send a request to the casino application or service34to display whether or not betting can begin at step708. If the bet's start date and time has not been reached, the event continues be displayed in the casino application704. If it has been reached, then the wagering application or wagering service950and/or wagering application42inFIG. 5of U.S. patent application Ser. No. 11/215,633, will set the pool to active status at step710.

With the pool set to active status, the event is displayed as being open for betting in the casino application at step712. 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 step714. The wager is sent to the banking application at step716and the wagering service requests from the either banking application or the casino application if the charge was successful at step720. If not, the wager is declined and the transaction ends at step722. If the charge was successful than the wager details are sent to the wagering database800or wagering database40(seeFIG. 5of  U.S. patent application Ser. No. 11/215,633) at step724. The wager is created at step726in the wagering web service system950or in other words the wagering application42(seeFIG. 5. of U.S. patent application Ser. No. 11/215,633). Once the wager is created, player odds are calculated at step728.

One way of calculating player odds at step728steps is to use the previously discussed method of calculating odds for large pools in parimutuel wagering on a large number of entrants as seen inFIG. 11A of U.S. patent application Ser. No. 11/215,633 where the set bet types98or bet set that pools110as seen inFIG. 6of 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 method854as seen inFIG. 3. The wager is created and a wager ID which is a GUID ID1056as seen inFIG. 10is sent back to the bettor in the casino application at step730and 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 maybe generated electronically and provided to the individuals cell phone or PDA or client laptop computer or desktop computer.

The web service then returns to the casino application the updated player odds which the casino application displays at step732. The casino application continues to poll the web service to determine if the bet end date and time have been reached at step734. This occurs when at step736the 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 step738, then the web service sets the pool status to pending at step740. 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.

The results are then posted in the web service application at step742and once all results have been posted at step744the web service sends the casino application the event results at step746. The wagering web service will send a request to the casino service to display the event results at step748. Then the wagering application or web service sets the pool status to close at step750and the web service determines if there was a winner at step752. If there was no winner, the web service determines if the pool was a progressive pool at step760. If the progressive pool was active, then the event is complete at step762. If there was a winner at step752or there was no progressive pool, the wagering application/web service updates the wager status to win, loss, or push along with payout amount at step754.

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 step756. The event is complete at step764and 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.

Still referring toFIG. 1, if a player is scratched or taken out of the tournament or competition for whatever reason, the web service application at step770will then refund at step772all wagers for that player and the odds are then updated. New wager ID's as previously discussed GUIDS, are sent back to the casino application with a refund flag at step774. The casino application displays the scratched player at step776, the wager service sends a request to the casino application to display the scratched player step780, a wager refund is sent to the banking applications of782, and the banking application refunds the wagering amount at step784.

Now referring toFIG. 2, discussion of the wagering database20which supports with the wagering web service methods will be provided. The wagering web service database800keeps 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.

In discussingFIG. 2, reference will also be made to the wagering web service application950which shows some administrative features of the site as seen inFIGS. 3 through 10.

The wagering web service database800(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 object802. The event category object802correlates with the event categories page957as seen inFIG. 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 name1034which correlates to the category name object806, which is accounted with a category ID804. The administrator can enter in the category names in a category name field1036. The administrator can edit, delete, update, or cancel the various category names.

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 page952as seen inFIG. 4draws from a series of objects in the event object class808. When a new event is created, an event ID810is assigned. The administrator can enter by adding an event at the add component972and in doing so creates a series of available fields for the add event component954. The add event component includes a field for entering the name at field956which correlates to the name object812which is the name of the event.

A description field958correlates to a description object814within the database a location field960correlates to a location object816in the database where the location is the physical or virtual location where the event is happening.

The website field962correlates to the asset object818in 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 ID804in the category or the event category object802.

The administrator can select an event start date from an event start date object964which is correlated to a database object in the event object808which is the event start date time object822. The event end time component966will 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 object824in the database.

One can also set the bet start date end time in field968which is correlated to the bet start date time object826in the event object as well as enter the betting end date and time information in field970which correlates to the bet end date time object830in the database.

Once the administrator enters in this information, it is reflected in the event management fields978which are displayed in the event page952for monitoring and quick reference.

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 object832which correlates to the event results page959as seen inFIG. 3, the player object840which correlates to the players page953FIG. 3, the pool object870which correlates to the pool page955FIG. 3, and then additional objects extend from these secondary object pages to be discussed further below.

Referring toFIG. 5and in conjunction with a discussion of the player object840FIG. 2, the wagering web service950can either get players, edit players, or add players to a selected event. The players' page953allows 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 name956and then choose the get players component/button980. This will then load the player names which include a first name object844, a last name object845, as well as a field designation846. The players are correlated to the particular event ID object810and each of the players is assigned a player ID object/account number842. If a player, for example, has defaulted or scratches then the player is flagged with the scratch object852.

In the player page953, the players once they are loaded into the database, are shown in a players' field992. Here the administrator can edit the player utilizing the edit player component994, add additional players982, indicate whether the player is in the field at988, add or edit the player's first and last names in the fields984and986, as well as cancel the player at990.

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 toFIG. 6, discussion of the wagering pool page955will be provided in conjunction with reference to the database pool object870FIG. 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 component998allows the administrator to upload via the XML feed, the pool settings for a particular event or named event956selected in the selecting location. The pool can be named in the title field1002which correlates to the pool title object878in the database.

When the pool is created, a pool status ID object876is assigned. The pool page and object has a bet type object880which is correlated to the bet-type selector1004. 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 type1006can either be a win or a mandatory payout within the set pool types fields1000of the pools' page955. The pool type1006correlates to the pool type object892in the database.

Also within the set pool types1000section is a commission field1008which correlates to a commission object882in the database. If the pick (n) bet-type1004is chosen, then the administrator can choose the number of pick counts in the pick count field1012which correlates to the pick count object890in the database.

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 field1016correlates to the wager maximum object886in the database. The minimum wager field1010correlates to the wager minimum object884in the database.

The wager max field1014correlates to the wager maximum object888in the database. The administrators can also choose a flat payout field1018which correlates to a flat payout object894in the database.

The service allows the pool page955to display the pool status and pool status field1020, the gross total number of wagers in the gross total field1022whether the pool has paid out in either true or false in field1024and whether or not this was a previous pool in field1026. These also correlate to the database objects including the gross total object896, the paid out object898, and the previous pool ID object900. The administrators can update at1028and cancel at1030as desired, and can also display the current active/closed pool types within the pool type field display1032for each particular selected event956.

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 object854. The service will then allow individuals as seen inFIG. 9to utilize a client side page of the place a wager page961for example at a casino location. The web service950will receive wager placements from the event location client and the bettor will be able to view the various events by selecting an event at component956, get the pools for the particular event at1052, 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.

During the wagering phase, the player odds object854as previously discussed will update the odds for each particular player with the odds object860. The wager object902includes a wager ID object904the wager object itself908, a wager status ID910and a payout amount912. 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 object862which includes the sequence the players placed in the wager sequence object868. Each particular wager also has a wager status object associated with it914which states whether the wager is open or closed and maintains the status object918.

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 page959as seen inFIG. 8. Here the administrators can select an event name956and get the particular players at1038. Players are listed in the players' field1040, and the administrators can utilize selector field arrows1044to choose the players who have finished in a particular event and display these players in the finished event field1042. The players can be ranked and adjusted according to their finishing placements at1046.

The administrators can save the progress of a particular event if it's still occurring in1048, and they can also finalize and close the event in1050. Once the players have or the entrants have finished their play and the particular event is closed, the event finish characteristics field1042dictates the end result of the particular pools which were wagered upon and individuals who did wager, can utilize the cash ticket page963to enter in their ticket ID at field1056and obtain the payout1058.