OAB - ONLINE tulospalvelin

Plussat ja miinukset

Arkkitehtuuri

Kts. liite (PDF).

Asennus

  1. Vie paketti palvelimelle (siis julkiselle) ja pura se
  2. Varmista että server.pl ohjelmaa ei voi ajaa cgi-scriptinä esim. nimeämällä se uudelleen ilman päätettä. Käynnistä palvelin vapaaseen porttiin esim. "./server.pl 6667".
  3. tee Pirilästä lähtevä tcp yhteys tyyliin "yhteys1=TCP:SERVERIIP:SERVERIPORTTI LÄHEMVA", jossa SERVERIPORTTI on juuri antamasi IP ja SERVERIIP on palvelimesi dns nimi tai ip osoite. LÄHEMVA on uusi parametri, jolla emitajat pistetään lähtemään xml-viestien update sanomiin. Version saanet Pekalta, jos ei vielä julkaistu.
  4. Tee pirilässä "Yhteys"-"Uusintalähetys"-"Muu valinta yhteyteen"-"ulosmenevän yhteytesi numero"-"Yhtenä tiedostona kaikki"-"Ilmoittautuneet". Nyt ohjelma lähettää kaikkien kilpailijoiden nimet, seurat ja lähtöajat, sekä väliaikapisteet palvelimelle.
  5. Käy kisa.
  6. Optio: Voit lähettää kisan jälkeen kaikki tiedot jälleen uudelleen uusintalähetyksellä. Tulosanomien tiedosto pienenee hieman.

Suorituskykyviilausta

Oletusasennuksella ja perusserverillä homma rouhinnee moitteita tuhansiin yhtäaikaisiin käyttäjiin. Voit tehdä testiä esim. paketissa olevalla perfTest.bash scriptillä. Jos aiot käyttää jossain todella isossa kannattaa viilata/tsekata seuraavia asioita:

Lataus

Lataa ohjelma täältä.

Kohtasitko ongelman? Löysitkö bugin?

Ohjelma on vapaan lähdekoodin alla eikä se virtuaalisesti maksa mitään. Mutta kun en myöskään saa siitä tuloja, älä usko että pystyn mahdottomuuksiin tuen antamisessa tai korjaamaan bugin seuraavaksi päiväksi. Harrastaneisuuden verran annan (vain) OAB:n liittyvissä asioissa vinkkiä sähköpostitse osoitteesta matti ät nettirasia dot com. Samaan lootaan voi lähettää niitä bugiraportteja ja kehitysehdotuksia, mielellään otsakkeella, joka sisälttää sanan "OAB". Maksettu konsultaatio on tietenkin asia erikseen.

Tulospalvelua tuottavilta yrityksiltä (ResultFellows, Kokkens) voit myös koittaa saada tukea, nämä velhot taitavat koko paketin ja ossaavat tarvittaessa virittää tämänkin halutessasi. Luonnollisesti polkuhintaan.

FAQ

Toimiiks kännykällä? Ei haluta kisapaikalla mennä tulostaulle!
Toimii, jos siinä on XMLHttpRequest. Käytännössä toistaiseksi siis melko harvassa. N-sarjan Nokialaisissa (noksun uudella webkit-selaimella) ainakin. Kevyen wap-palvelimen rakennus ei kyllä olisi iso homma, mutta siinä siis ei olisi odotustoimintoja ym. hienouksia. Ehkä ensi keväänä.
Kuinka saan yhtenevästi järjestetyt väliajat näkyviin kun kisassa on ollut käytössä perhoslenkit?
Kisan jälkeen ota lataus-sivulta sortsplits perl ohjelma. Aja sen läpi MaalEmit32 ohjelmasta tekemäsi xml-tiedosto, jossa emit-väliajat. Lähetä järjestetty tiedosto netcatillä (nc host port < sortattu.xml) OAB serveriin. Nauti.
Entäs viesti?
Onnistunee samalla teknisellä periaatteella, mutta en ole antanut asialle ajatuksen poikastakaan.

ChangeLog

Muistiinpanoja

    XML sanomissa
    - "control order" ei toimi update viesteissä (muut kuin emit ajat) ??
    - lähetettävä väliaikatyyppi (emit tai norm) riippuu uusintalähetyksessä automaattitulostuksen asetuksista. eli ensin automaattitulostuksesta emitajat päälle, niin sitten tulee uudelleenlähetykseen. Samoin asetukset aiheuttavat uudelleen lähetyksen toistumisen automaattitallennuksen välein.

    resultrows tiedosto, muotoa:

    [kilpnro,"tila",maaliaika,[["vapoint",va],["vapoint2",va]]],

    Myöhempi rivi korvaa edellisen tiedon. Käytönnössä nämä on siis 

    classes.txt muotoa:

    ["ClassName",["split_1_km","split_2_km"]],

    Rivit siis on JSON taulukon sisusta, joiden ympärille julkinen palvelin viel‰ heitt‰‰ yhdet hakaset. Kaikki tekstitiedostot luonnollisesti utf8 formaatissa. 

    Emitanalyysin periaate eli ero välin kärkeen kohdan väri:
    	- jokaiselle juoksijalle lasketaan level = nopeinKisanAika/omaKisanAika
    	- jos VälinNopeinAika/VälinOmaAika + toleranssi(0.1) > level:
    		- jos 0.1-0.3 -> pieni virhe
    		- enemmän ->suuri virhe
    	- Hyvä väli (vihreä), jos jompi kumpi seuraavista:
    		- neljän parhaan joukossa
    		- 6 % oman levelin paremmalla puolella

    TODO:
     - TÄMÄ EHKÄ KORJATTU, TÄYTYY TESTATA: päivitys emitajoilla, sanomamuodon tsekkaus! Kaataa värkin tällä erää.
     - "asetukset" ikkuna, jossa voi asettaa ominaisuuksia, kuten "laajennettu" väliaika-analyysi
     - poista dojo käytöstä. Käytetään vain xmlhttprequestin käyttöön, johon selkeästi overkill.