Nykyinen arkkitehtuuri

Nykyinen kurssikoejärjestelmä toimii hyvin. Sillä on järjestetty onnistuneesti neljä sähköistä.  ylioppilaskoetta yli 23 000 kurssikoetta, joihin on annettu noin 360 000 koevastausta. Järjestelmällä on tehty kokeita lähes 2 000 eri laitemallilla.

Nykymuotoinen sähköinen ylioppilaskoe järjestetään lukioon rakennetussa suljetussa paikallisverkossa. Verkon palvelimia on kaksi: varsinaisessa palvelimessa on koetehtävät jakava ja vastaukset tallettava node.js-sovellus ja PostgreSQL-tietokanta. Varapalvelin peilaa varsinaisen palvelimen levyä DRBD:llä. Tarvittaessa varapalvelin voidaan uudelleen boottaamalla muuttaa varsinaiseksi palvelimeksi. Palvelimet käynnistetään USB-muistitikulta, jossa on Debian 8 Live -pohjainen Linux DigabiOS.

Kokelaan koevastaus ja kaikki hänen tekemänsä tiedostot siirretään koetilan palvelimelle, josta ne kopioituvat varapalvelimelle. Siten kaikki kokelaan koesuoritukset ovat jatkuvasti kahden eri tallennusmedian varassa. Kokelaan koevastauksesta tallennetaan versioita myös hänen työasemansa USB-muistille.

Suljettuun offline-verkkoon ollaan päädytty seuraavista syistä:

  • Lukioiden verkkoyhteyksien luotettavuus ja kapasiteetti vaihtelevat. Kokeita järjestetään myös vuokratiloissa. Verkkoyhteyden katkeaminen tai hidastuminen ei saa haitata koesuoritusta.
  • Koetehtävissä voidaan käyttää erilaisia medioita. Verkkoyhteyden hidastuminen ei saa haitata koesuoritusta.
  • Tutkintoon käytettävä verkko on kaikkialla samanlainen. Tämä helpottaa ongelmien selvittelyä ja etätukea.

Palvelinratkaisuun on päädytty seuraavista syistä:

  • Levyimage perustuu avoimen lähdekoodin sovelluksille, joten YTL voi jakaa sitä ilman käyttöoikeuksien hallintaa. Julkiselle projektille läpinäkyvyys on tärkeää.
  • Levyimagena jaeltava palvelinohjelmisto varmistaa, että käynnistyttyään kaikki palvelimet ovat samanlaisia. Sovellusten versiot eivät voi joutua epäonnistuneiden päivitysten vuoksi epäsynkroniin (tietyssä tikkuimagessa on aina tietyt sovellusversiot).
  • USB-median päivitys ei vaadi erityisosaamista. Levyimaget ladataan ja kirjoitetaan AbittiUSB-ohjelmalla (HTTP GET, MD5-tarkistus, dd).
  • Varapalvelinjärjestelyn ansiosta kokelaan vastaus on tallennettuna vähintään kahdelle toisistaan riippumattomalla medialle fyysisten vikojen vuoksi.
  • Palvelimen kovalevylle ei tehdä muutoksia. Kone voi palvella tutkintoviikkojen ulkopuolella muussa käytössä.

Kokelaan kone käynnistetään myös USB-muistitikulta, jossa on myös Debian Jessiestä muokattu käyttöjärjestelmä. Kokelaan kone sisältää koejärjestelmän osan node.js:llä kirjoitetusta koejärjestelmästä. Koevastauksia kirjoitetaan selaimella sivulle, jonka kokelaan koneella ajettava node-ohjelmisto generoi. Kokelaan ohjelmisto ja palvelin pitävät yhteyttä sovelluksen omalla protokollalla. Yhteys on SSL-suojattu.

Koeohjelmiston lisäksi kokelaan koneella on erilaisia ohjelmistoja, joita kokelas voi käyttää koesuorituksen laatimiseen. Tämänhetkinen ohjelmistoluettelo on luettavissa projektin www-sivuilta.

USB-muistitikkuun on päädytty seuraavista syistä:

  • Levyimage perustuu avoimen lähdekoodin sovelluksille, joten YTL voi jakaa sitä ilman käyttöoikeuksien hallintaa. Julkiselle projektille läpinäkyvyys on tärkeää.
  • Levyimagena jaeltava palvelinohjelmisto varmistaa, että käynnistyttyään kaikki palvelimet ovat samanlaisia. Sovellusten versiot eivät voi joutua epäonnistuneiden päivitysten vuoksi epäsynkroniin (tietyssä tikkuimagessa on aina tietyt sovellusversiot).
  • Kokelaan koneen tikkuversio tarkistaa automaattisesti yhteensopivuuden palvelinohjelmiston kanssa.
  • USB-median päivitys ei vaadi erityisosaamista. Levyimaget ladataan ja kirjoitetaan AbittiUSB-ohjelmalla (HTTP GET, MD5-tarkistus, dd). Kaikki ohjelmistotasot päivittyvät yhdellä toimenpiteellä.
  • Kokelaan koneelle ei tarvita pysyviä muutoksia koneen käynnistysasetuksia (boot priority) lukuunottamatta. Jos koneelle tehtäisiin pysyviä muutoksia, voisi tästä tulla haittaa koneen muulle käytölle.
  • Kokelaiden käyttöympäristö on yhdenmukainen: kaikilla kokelailla on samat sovellukset.
  • Koneeseen ei käynnistetä lainkaan kokelaan omaa käyttöjärjestelmää. USB-muistilta käynnistettävästä käyttöjärjestelmästä voidaan poistaa koneen väärinkäyttöä helpottavia osia (esim. laiteajureita SATA, WLAN, bluetooth, infrapuna), asettaa käyttöä rajoittavia asetuksia (esim. palomuuri, mahdollisuus liittää uusia USB-medioita, mahdollisuus ajaa tiettyjä ohjelmia) tai ajaa käyttöä seuraavia ohjelmia.

Kääntäen voisi sanoa, että nykyisellä USB-muistilta käynnistettävällä käyttöjärjestelmällä tavoittelemme:

  • Mahdollisimman laajaa ja yksittäisestä toimittajasta riippumatonta laitejoukkoa.
  • Koneiden ylläpitäjän oikeuksia koehetken ajaksi.
  • Nopeaa tapaa jakaa kokeessa käytettävä sovellusvalikoima ja poistaa se kokeen jälkeen.