Tällä sivulla ylläpidetään yleisempää teknisen käyttöönoton ohjedokumenttia.

Dokumenttia päivitetty 27.9.2024

Exam käyttöönotto

 1. Asentaminen / konfiguraatiot

Exam palvelua voidaan pyörittää yhdellä palvelimella, jonne tarvittavat palvelut tulee asentaa. Suositeltavaa on käyttää Exam palvelimen käyttöjärjestelmänä Linux-pohjaisia vaihtoehtoja. Esimerkiksi Centos / RHEL.

Examia varten tarvitaan seuraavat palvelut:

Postgresql

Apache HTTP Server

Shibboleth


Postgresql on tietokanta johon tallennetaan Examin tiedot. Examin kanssa käytettäväksi suositellaan 9.6 versiota tai uudempaa. Tietokantaan tulee sallia pääsy Examista sekä luoda tietokanta ja käyttäjä Examia varten. Tarkemmat ohjeet Postgresql:än asentamisesta ja konfiguroinnista löytyvät:


Asentaminen EXAM asennusohjeet v6.3.x


Tietokannan konfigurointi

EXAM asennusohjeet v6.3.x#Tietokanta


Apache HTTP Server on ns. edustapalvelin joka hoitaa liikenteen välityksen Examille. Apacheen tulee tehdä asetusmuutokset, jotka ohjaavat tulevan liikenteen Examille ja suojaa Examin käytettäväksi ainoastaan Shibboleth kirjautumisella. Tarkemmat ohjeet Examin vaatimista asetuksista löytyy Confluencesta:


EXAM asennusohjeet v6.3.x#Apache&Shibboleth


Shibboleth on Apachen kanssa käytettävä kirjautumisjärjestelmä. Shibbolethin avulla voi käyttäjät kirjautua Examiin korkeakoulukohtaisilla tunnuksilla. Tällöin Exam palvelimen Shibboleth SP liitetään korkeakoulun omaan Shibboleth IdP palvelimeen. Vaihtoehtoisesti on mahdollista liittää Exam Haka-käyttäjätunnistusjärjestelmään, jolloin myös muiden organisaatioiden käyttäjät voivat käyttää Examia. Tämä ominaisuus mahdollistaa esimerkiksi yhteiskäyttöisyyden, jossa eri korkeakoulujen oppilaat voivat suorittaa kokeita toisissa korkeakouluissa. Tarkemmat ohjeet Shibboleth konfiguraatiosta löytyy Confluencesta:

EXAM asennusohjeet v6.3.x#Apache&Shibboleth


Exam vaatii muutamia työkaluja, jotta se voidaan kääntää lähdekoodeista tuotantokäyttöön soveltuvaksi. Käytännössä asentaja asentaa vaaditut järjestelmäriippuvuudet, jonka jälkeen hän asettaa Examiin halutut asetukset. Tämän jälkeen järjestelmä voidaan kääntää ja käynnistää.


Tarkemmat ohjeet järjestelmäriippuvuuksien asentamiseen löytyvät:

EXAM asennusohjeet v6.3.x#J%C3%A4rjestelm%C3%A4riippuvuudet


Ohjeet Examin asetusten konfigurointiin löytyvät myös Confluencesta:

EXAM asennusohjeet v6.3.x#Examinasetukset


Kun järjestelmäriippuvuudet ja asetukset on asennettu, voidaan Exam kääntää jä käynnistää:

EXAM asennusohjeet v6.3.x#Exam-applikaatio

 2. Integraatiot


Exam järjestelmä on suunniteltu toimimaan yhdessä myös muiden korkeakoulujen palveluiden kanssa. Examin integraatiot voidaan jakaa kahteen eri luokkaan. Integraatiot jotka tuovat tietoja Examiin ja integraatiot, jotka vievät tietoja Examista toisiin järjestelmiin.


Examiin tuotavat tiedot

Shibboleth autentikointi

Shibboleth-järjestelmän integraatio on Exam järjestelmän ainoa pakollinen integraatio. Tämän avulla mahdollistetaan kirjautuminen Examiin. Examiin voidaan asettaa halutut roolimääritykset eri käyttäjäryhmille. Esimerkiksi roolin ”student” oppilaaksi ja ”faculty” opettajaksi. Roolimääritykset ovat valittavissa korkeakoulukohtaisesti. Kuitenkin välitettävien attribuuttien ja niissä sisältyvät tiedot tulisi olla yhtenäiset. Tarvittaessa on mahdollista muuttaa arvojen ”mappauksia” eli kytkentöjä Shibbolethin asetuksista. Tarkemmat tiedot vaadituista attribuuteista löytyy Confluencesta.

EXAM asennusohjeet v6.3.x#Apache&Shibboleth

Kurssitietorajapinta

Kurssitietorajapinnan avulla voidaan hakea kurssien tiedot opintojärjestelmästä Examiin. Exam voidaan kytkeä eri opintojärjestelmiin kuten Oodi tai ASIO. Kuitenkin kurssitietojen hakeminen on oltava mahdollista opintojärjestelmästä. Esimerkiksi Oodin tulee asentaa laajennos, joka mahdollistaa kurssitietojen hakemisen. Lisäksi palvelimien välillä tulee olla verkkoyhteys. Tarkemmat tiedot kurssirajapinnasta, sekä siinä siirrettävän datan muodosta löytyy Confluencesta: Examin vaatimat integraatiot: ohjeet#Opintojaksoiltahaettavatieto

Vaihtoehtoisesti Examiin voidaan myös tuoda kurssitiedot esimerkiksi CSV tiedoston avulla.

Tämä on kuitenkin vaati tietojen siirron käsin tietokantaan ylläpidon toimesta. Käyttäjät eivät voi tehdä tätä käyttöliittymän kautta. Lisäksi siirtämisestä voi aiheutua datan yhteensopivusongelmia.

Examin vaatimat integraatiot: ohjeet#TuontiCSV-muodossa

Examista vietävät tiedot      

Suoritukset

Examista voidaan myös viedä tietoja opintojärjestelmään, esimerkiksi suoritusten rekisteröimistä varten. Exam konfiguroidaan siten, että tietystä IP-osoitteesta voidaan hakea tiedot ilman Shibboleth kirjautumista. Exam toimittaa JSON-muodossa datan, ja vastaanottavan palvelun tulee käsitellä tämä halutusti. Tarkemmat ohjeet rajapinnan käytöstä sekä sen käyttöönotosta:

Examin vaatimat integraatiot: ohjeet#Suorituksellekirjattavattiedot

Varaukset, tilat ja aukiolot

Suoritustietojen lisäksi on mahdollista hakea ilman autentikoitumista tiedot varauksista, tiloista ja tenttitilojen aukioloista esimerkiksi vahtimestareiden käyttöön. Examia voidaan kutsua tietyistä osoitteista, joilloin Exam palauttaa tiedon JSON-muodossa. Examissa itsessään ei ole sivua joka näyttäisi varaukset, tilat ja aukiolot. Tietoja kysyvän järjestelmän tulee hoitaa JSON-datan käsittely.

Varaustietojen ja tilatietojen rajapinnat

Vapaaehtoiset integraatiot

Ohjeita vapaaehtoisten integraatioiden käyttöön Vapaaehtoiset integraatiot

3. Ylläpito ja päivitykset

Exam itsessään ei vaadi erityistä ylläpitoa. Riippuen halutusta riskien hallinnan tasosta, voidaan halutessa ottaa palvelimesta varmuuskopiot tietyn väliajoin. Itse Examin tiedot ovat talletettuna tietokantaan, jonka varmuuskopioiminen tietyn väliajoin on suotavaa.

Exam voidaan päivittää suorittamalla seuraavat toimenpiteet:

  1. Sammuta Exam
  2. Ota varmuuskopio tietokannasta
  3. Ota varmuuskopio liitetiedostoista
  4. Ota varmuuskopio Exam-asetustiedostosta
  5. Lataa haluamasi versio Git-versiohallinnasta
  6. Mikäli järjestelmäriippuvuudet ovat muuttuneet, tulee ne päivittää
  7. Käännä Exam lähdekoodit
  8. Käynnistä Exam

4. Exam Dockeroituna

Docker on virtualisointiteknologia joka mahdollistaa Examin ajamisen erillisessä virtualisoidussa ympäristössä. Näin esimerkiksi palvelinkohtaiset riippuvuudet eivät vaikuta Examin toimintaan. Docker:ia voidaan käyttää myös kaikkien muiden Examin vaatimien palvelujen (Postgresql, Apache, Shibboleth) käyttämiseen.

Dockerin hyvinä puolina on esimerkiksi käyttökatkojen pituuden minimointi. Exam-ympäristö voidaan valmistella jo etukäteen luomalla image, joka sisältää kaikki Examin vaatimat järjestelmäriippuvuudet. Imagen voi luoda esimerkiksi toisella palvelimella tai asentajan paikallisella työasemalla. Valmis image siirretään ennen käyttökatkoa tuotantopalvelimelle. Imaget ovat monikäyttöisiä ja ne voidaan kopioida useille eri palvelimille. Esimerkiksi yhden Exam imagen voi kopioida useisiin eri ympäristöihin. Ennen käyttökatkoa siirretään image palvelimelle. Kun käyttökatko alkaa, sammutetaan vanha palvelu ja käynnistetään uusi. Imagesta tehtäviä suoritettavia virtualisoituja ympäristöjä kutsutaan konteiksi (container).  Jokainen kontti on täysin itsenäinen ympäristö, joten aiemmat versiot eivät aiheuta siihen yhteensopivuusongelmia. Lisäksi konteissa on valmiiksi käännetty versio Examista, joten uuden version käynnistäminen vie vai muutamia kymmeniä sekunteja. Mikäli Exam käännetään lähdekoodeista, voi siinä kestää jopa kymmeniä minuutteja.

Muita hyötyjä ovat eri versioiden vaihtamisen helppous. Mikäli uudessa versiossa on jotain ongelmia, voidaan vanha versio käynnistää nopeasti. Prosessi on samanlainen kuin päivityksessäkin. Sammutetaan käynnissä oleva, ja käynnistetään haluttu.

Koska Dockeroitu Exam image sisältää kaiken tarvittavan, vähentää tämä merkittävästi itse palvelimen ylläpidon tarvetta. Käytännössä tarvitaan vain Docker asennettuna kyseiselle palvelimelle. Näin ollen eri järjestelmäriippuvuuksia ei ole tarvetta asentaa, eikä pitää ajantasalla tuotantopalvelimella. Lisäksi Dockeroidussa Exam imagessa pysyvät järjestelmäriippuvuuksien versiot samoina, jolloin voidaan Examia voidaan käyttää jo testatuilla versioilla.

Dockerin huonoina puolina ovat sen nopea kehittyminen, jolloin eri versioiden väliset siirtymät sekä niistä mahdollisesti aiheutuvat yhteensopivuusongelmat tulee huomioda. On suositeltavaa estää Dockerin automaattiset päivitykset, ja testata uudet versiot ennen tuotantoympäristöön päivittämistä.

Dockerin käytössä on myös jokseenkin korkea oppimiskynnys. Dockerin asentaminen palvelimelle sekä sen käyttäminen vaatii perehtymistä aiheeseen. Kuitenkin Dockerin käyttöönottoon on olemassa hyvät dokumentaatiot Dockerin kotisivuilla.

https://docs.docker.com/