joeni

Add thesis section about buses

Author
Maarten Vangeneugden
Date
Aug. 24, 2018, 4:42 a.m.
Hash
4eb90f67da7223f6368adb2eca5073fdbdbe5a47
Parent
f8fdc1a03f835dd9c6a4a9df123c1764657a2e88
Modified file
docs/thesis/bussen.org

docs/thesis/bussen.org

59 additions and 0 deletions.

View changes Hide changes
+
1
De studenten willen graag snel te weten komen wanneer hun bus vertrekt van de
+
2
campus. Daarom heeft Joeni een aparte pagina waarop alle volgende twintig bussen
+
3
van elke campus opgelijst worden.
+
4
+
5
De lijst van bussen past zich automatisch aan aan de schermbreedte van het
+
6
gebruikte toestel. De verschillende bussen worden voorzien van de bestemming, de
+
7
lijn (en de omkaderingen in de lijnkleur), en natuurlijk het uur van vertrek.
+
8
Daarnaast wordt er ook weergegeven hoe lang het nog duurt tot het vertrek vanaf
+
9
nu (bijvoorbeeld "Over 25 minuten") en wordt er (indien van toepassing)
+
10
aangegeven of er een "via"-bestemming is.
+
11
+
12
Deze data wordt afgehaald van de website van De Lijn via hetzelfde systeem dat
+
13
op dit moment op de TV-schermen in de hoofdgang van de campus Diepenbeek
+
14
gebruikt wordt. Daardoor was het aangaan van een licentie met De Lijn voor het
+
15
gebruik van hun data niet nodig, en gebeurt alles rechtstreeks en real-time.
+
16
+
17
Dit dient dan als een vervanging voor de twee knoppen die op de pagina van
+
18
=uhasselt.be/studenten= staan, die ook minder informatie bieden dan wat op Joeni
+
19
te vinden is.
+
20
+
21
#+CAPTION: Afbeelding van hoe de bussen-pagina er op een doordeweekse dag uitziet.
+
22
#+NAME: fig:buses
+
23
[[./img/bus.png]]
+
24
+
25
*** Snelheid website De Lijn
+
26
Vergeleken met Joeni is de gebruikssnelheid van de website van De Lijn redelijk
+
27
lang: Het inladen van de eerstvolgende 20 bussen neemt _per request_ minstens
+
28
1000 milliseconden in beslag[fn:location], wat moeilijk te tolereren valt voor
+
29
een actie die technisch gezien gewoon een SQL-request op een databank is, en een
+
30
HTTP-antwoord terugsturen (van nog geen 5kB). Daarnaast zou dit ook betekenen
+
31
dat élke keer een student deze pagina opvraagt, hierop zou moeten wachten.
+
32
Bijkomend neveneffect is dat dit de servers van De Lijn misschien zwaar
+
33
beïnvloedt, maar dat doet niet veel ter zake.
+
34
+
35
De oplossing hiervoor is door gebruik te maken van Joeni's cachesysteem:
+
36
+
37
In plaats van voor elke keer dat een student de busregeling wilt controleren een
+
38
request naar De Lijn te sturen, wordt /de volledige dagregeling/ slechts één
+
39
keer opgeslagen op de servers. Dit is gepland om elke nacht om 3 uur te
+
40
gebeuren, een moment waarop er weinig hinder is van zowel technische als humane
+
41
kant.
+
42
+
43
Deze dienstregeling wordt dan in de cache opgeslagen van Joeni, en kan bij elke
+
44
aanvraag direct aangereikt worden.
+
45
+
46
Hier is slechts een klein nadeel aan verbonden: Het aanvragen van een
+
47
volledige dienstregeling duurt langer (om en bij 4 seconden), maar daarvan zal
+
48
niemand iets merken omdat het 's nachts gebeurt. De informatie is echter wel
+
49
niet meer /real time/, maar De Lijn houdt sowieso geen vertragingen en
+
50
afschaffingen van hun bussen bij, dus dat maakt geen verschil.
+
51
+
52
Een ander nadeel is dat het de code van Joeni wat complexer maakt; er moet met
+
53
een cache gehandeld worden, en in tegenstelling tot de /realtime/-optie, moet er
+
54
zelf gekeken worden welke bussen nog vertrekken die dag. Maar dat is geen groot
+
55
"offer" vergeleken met wat ervoor terugkomt.
+
56
+
57
[fn:location] Snelheden gerapporteerd tijdens testen met Firefox Developer
+
58
Edition op GNU/Linux.
+
59
Edition op GNU/Linux.