Hur jag bygger Tågtider 3

Jag vill varna känsliga läsare för att detta är ett ganska tekniskt inlägg som kort beskriver beståndsdelarna i kommande version av tjänsten Tågtider. Funderingar eller feedback mottar jag gärna via mail, TwitterFacebook eller svarsformuläret nedan.

Tågtider 3 i molnet

Det som gör att Tågtider svarar med aktuell information när du använder skickar ett SMS eller använder någon applikation.

Tågtiderbot spindlar trafikinformation

Det är i roboten som mycket av logiken (magin) är definierad för att tolka inkonsekvent data från Trafikverket om stationer, operatörer, förbindelser, tåg, trafikplatser, spår etc. Då Trafikverket inte följer enkla standarder för HTTP-protokollet är det omöjligt att veta när informationen uppdateras. Det gör att jag i blindo kontinuerligt söker efter förändringar i järnvägstrafiken. Tågtiderbot består av följande tre delar.

  1. Scheduler – Schemalägger och prioriterar nerladdningar
  2. Downloader – Flertrådad nerladdning av innehåll
  3. Parser – Läser, tolkar och relaterar informationen.

Tågtider API 2 med realtidsströmmar

Första versionen av Tågtider API mottogs med öppna armar av en mängd utvecklare som skapat applikationer för bland annat Android, Windows Phone 7 och iPhone. Alla hurrarop och förfrågningar ger mig energi att utveckla tjänsten till något mycket bättre med tekniken nämnd ovan. Nästa version av Tågtider API omfattar bland annat:

Tweet

Svara på inlägget


Hittills 2 kommentarer

Tobias Sjösten

Kul att se lite mer under huven!

Jag är intresserad av att höra mer om Tågtiderbot. Kan du berätta något mer om den? Flertrådad nedladdning får mig att misstänka Java eller Python? Vilka bibliotek? Vad använder du för kösystem?

Erik Pettersson

@Tobias: Schemaläggningen slipas kontinuerligt med målet att alltid ha aktuell data tillgänglig, samtidigt som antalet frågor till Trafikverkets webbplats ska hållas nere. Exempelvis schemaläggs inte stationer utan avgångar eller ankomster just nu lika ofta som övriga.

Den flertrådade nerladdningen sköter cURL (multi) helt på egen hand men startas via PHP.

Ping- & trackbacks

API Måndag – Malmöfestivalen och Tågtider « Mashup.se

[...] i realtid Erik Pettersson (som jag verkar skriva om varje vecka) har berättat om sina planer på version 2 av Tågtider APIet. Bland annat så kommer att erbjuda realtidsuppdateringar via PubSubHubbub, C2DM för Android och [...]