Add thesis section about buses
- Author
- Maarten Vangeneugden
- Date
- Aug. 24, 2018, 2: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 |