Kom nu ind i (tips)kampen
Jeg ser europamesterskaberne i fodbold! Hvilket implicit viser at jeg kun er en "nørd-wannabe", men jeg finder det spændende og er generelt godt underholdt.
Under hver slutrunde har min familie den tradition at vi spiller på aftenkampen. Dvs alle i hustanden får 10 kr udleveret og skal herefter spille på kampens udfald. Det hele bliver lidt sjovere når vi alle har "skin-in-the-game".
Under dette års euro2008 er det faktisk blevet til en helt fornuftig forretning. Min bedre halvdel var i stand til at forudsige Hollands 3-0 sejr over Italien, mens jeg tog stikket hjem på Sveriges 2-0 sejr i går.
Hos Danske Spil (som jeg er medejer af) er der en glimrende mulighed for at spille på EM kampene via Matchen. Det eneste jeg skal gøre er at bruge en traditionel webbrowser til at se odds og lave min indsats inden kl. 20.40.
At jeg skal bruge pc browseren for at lave mit væddemål er en begrænsning som hverken jeg eller Danske Spil kan være tjent med. For at få flest mulig kunder igennem Danske Spils systemer bør der være flere kanaler og dermed muighed for flere forskellige terminaler - herunder Mobiltlf/PDA.
Der skal selvfølgelig være webservice API til Danskespil.
Lad os ikke starte med den traditionelle SOA big-bang fejl, men begynde i det små. Vi kunne jo starte med Matchens Ciffertips. Denne service skal have to metoder hentMatchen() som returnerer en liste at "Matcher" med Id, holdnavne og odds og koebSpil(xml Matchen) som returnerer en kvittering til print og tager input beskrevet ved dette schema:
<'xml version="1.0" encoding="utf-8"'>
Hvis man bliver en smule mere avanceret kan man udskifte Username og Password med en U/P tokens fra WS-Security, men så bevæger vi os ind i en SOAP only verden.
PS! Det fleste virksomheder og organisationer, som har en online tilstedeværelse lever af de store mængder trafik de er i stand til at tiltrække. For socialenetværk og søgemaskiner gælder det at brugerne kommer forbi hjemmesiden for enten at komme i kontakt med venner, familie og bekendte eller for at frem finde ressourcer. I den proces vil de i større eller mindre grad blive præsenteret for reklamer. Dvs. for søgemaskiner og socialenetværk er det pt vigtig at brugeren ledes forbi den visuelle brugergrænseflade for at blive præsenteret for reklamer. For andre internet sider er det ikke nødvendigvis et must at brugeren kommer forbi hjemmesiden.
Tag for eksempel Amazon. Deres primære model er ikke at vise kunder reklamer for tredie part. Deres model er at få så mange kunder igennem butikken så muligt. Det er i princippet ligegyldigt om kunder handler fra et Amazon website (amazon.com, amazon.co.uk ...) eller et andet domæne, bare kunden køber ydelse eller produkt hos Amazon.
Derfor stiller Amazon en service platform til rådig for trediepart websites, der vil tilbyde bog salg gennem Amazon fra netop deres website.
Med andre ord så er det i Amazons interesse at supplere deres hjemmeside med et API/ webserice som andre kan bruge og bygge nye løsninger oven på. Det er så indlysende god en forretningside at det bør stå på første side i ehandelsvirksomhedens ABC.
Kommentarer (10)
Hej Rene
Vi har godt nok ikke webservices, men prøv at pege mobilen på http://mobil.danskespil.dk/
MVH
Allan Jacobsen
IT-Teknik
Danske Spil
Hej Allan,
Tak for svaret!
Wauv - god service der! Jeg vidste ikke at Danskespil havde en mobil side.
Jeg savner dog stadig Matchen, så jeg on-demand kan komme til at spille på en kamp, som jeg skal se live, på tv eller høre om ...etc.
Jeg vil tro at andre kan forstille sig andre spilmuligheder de gerne ser i en "roaming"-version.
I kan naturligvis ikke løbe efter alle personlige behov og hensyn som jeg eller andre måtte have, så derfor stadig en opfordring herfra til at lave et Webservice API til Matchen, som andre kan lave nye service og klienter til.
Hvis Danskespil laver Webservice til Matchen, lover jeg at lave en OSS webklient, en WinMobile og en Silverlight klient ... fedte, fedte... ;-)
-René
Danske Spil skal selvfølgelig have et REST-API - det er så absolut det der giver mest Street-Cred ;-)
Url'en '/matches' kunne returnere links til alle kampene. Disse kunne organiseres efter følgende Url-templates
/groups/{first_team}/{second_team}
/quarters/{first_team}/{second_team}
/semis/{first_team}/{second_team}
/final
Eksempler på disse Url'er kunne være
'/groups/cro/ger' for gruppekampen mellem Kroatien og Tyskland
'/semis/ned/ger' for en evt. semi-finale mellem Holland og Tyskland.
Et POST til sådan en Url ville så indebære et spil.
Hvad angår 'payload', så kunne følgende være forskellige repræsentationer af 3-0 til Holland over Tyskland.
text/xml
<bet>
<amount>100</amount>
<ned>3</ned>
<ger>0</ger>
</bet>
application/json
{amount: 100, ned: 3, ger: 0}
application/x-www-form-urlencoded
amount=100
ned=3
ger=0
Et robust og lavt koblet system, der kan anvendes af forskelligartede klienter.
Kan man ikke gøre den mere generel så "Matchen" service passer på andet end EM (så længe det er fodbold!) -f.eks:
GET /matchen returnerer liste over de aktuelle kampe
/matchen/{kampNummer} returnerer alle odds
/matchen/{kampNummer}/ciffertips returnerer ciffertips odds
/matchen/{kampNummer}/foerstemaalscore returnerer første målscore odds
/matchen/{kampNummer}/halvleg-slut returnerer halvleg og slutresultats odds
POST /matchen/{kampNummer} med xmlinstans af ovenstående schema (skal udvides med "første målscorer" og "halvleg-slutresultat") er indgåelse af væddemål
<Matchen MatchNummer="5" xmlns="http://danskespil.dk/namespace/2008">
<UserName>rene</UserName>
<Password>qwerty</Password>
<Ciffertips>3-1</Ciffertips>
<Indsats>10</Indsats>
</Matchen>
HTTPS POST på /matchen inden kl. 17.55 i dag ...og jeg er 750 kr rigere.
:-)
Mere spændende er jo den bagved liggende service der forudsiger kampens resultat på baggrund af historiske kampdata, dommerens nationalitet og den forventede luftfugtighed.
Det ligner en god plan :-)
Måske skulle man poste direkte til resourcerne 'ciffertips', 'foerstemaalscore', osv. Derved undgå man at blande 'action' og data i payloadet. XML-skemaet (hvis man er til sådan et) ville så være specialiceret for hver resource, men kunne evt. nedarve fra en fælles forfar.
En yderligere fordel ved det specialicerede skema, er at du kan udvide med nye spiltyper uden at ændre eksisterende skemaer. Hvis en klient så poster noget der overholder et nyt skema til en server der endnu ikke understøtter denne resource (f.eks. 'foerste_selvmaal'), kan serveren bare svare med 404 Not Found.
Tyskland fører 2 - 0 inden der er spillet en halv time, men så kan du jo nyde resten af kampen uden nerver ;-)
Sidst Kroatien vandt over Tyskland var det for øvrigt med 3 - 0 hvilket giver 75 gange igen - spændende!
Arrrrgggghhhh!
Så tæt på!
...i øvrigt enig i at vi kan holde action og data adskilt.
Hvis jeg ved lige så lidt om IT som jeg ved om fodbold, så skal jeg vist til at holde lav profil ;-)

