Etäopetus Multimediaverkoissa (ETÄKAMU) -tavoitetutkimushanke
Luku II: Avoimen oppimisympäristön (A&O) suunnittelusta, toteutuksesta ja arvioinnista
Edellinen Ylempi otsikkotaso Sisällys Hakemisto Seuraava TEKES

2.1.5 A&O:n tekninen toteutus

A&O:ssa on useita itsenäisiä osia. Kurssimateriaali toimii perustoiminnallisuuden tarjoavan ohjelmistoalustan päällä. Muita osia ovat materiaalin tuottamiseen tarkoitettu FML-työkaluympäristö, sekä kognitiivisena työkaluna matematiikassa käytettävä laskentaohjelmisto Maple (ks. esim. Heck 1993 ). Jäljempänä esitellään Maplen laskentakapasiteetin harjoitustehtäviin ja WWW-perustaiseen käyttöliittymään kapseloivat minMaple- ja MapleEx-palvelinten toteutus ( Nykänen & Pohjolainen 1998 ).

Ohjelmistoalusta tulee olemaan tutkimus- ja opetuskäytössä useita vuosia. Näin ollen siihen kohdistuu aivan samanlaisia ylläpidettävyysvaatimuksia kuin mihin tahansa ohjelmistojärjestelmään. Hyvin suunniteltu ohjelmistoarkkitehtuuri on välttämätön ehto näiden vaatimusten täyttämiselle. Arkkitehtuurin perusratkaisuksi valittiin helposti muunneltava ja laajennettava, kerrostettu ja hajautettu oliokehysrakenne.

Ohjelmistoalustan järjestelmäkomponentit

Ajonaikaisessa järjestelmässä on kaksi pääosaa: asiakas (client), joka toimii verkkoselaimessa, sekä palvelin (server), jota ajetaan Unix-palvelimessa. Näiden lisäksi alustaan kuuluu hallinnointityökaluja, jotka tarjoavat graafisen käyttöliittymän käyttäjä- ja kurssitietokannan käsittelyyn.

Käyttäjät kirjoittautuvat järjestelmään WWW-selaimen kautta. Oppimisympäristön näyttönä toimivalla verkkosivulla on koko ajan toiminnassa oleva sovelma (applet), Client Manager , joka valvoo asiakaspäässä koko istuntoa, ohjaa käyttöliittymää ja keskustelee palvelinprosessien kanssa. Client Manager ottaa vastaan käyttäjän tunnistetiedot ja lähettää kirjautumispyynnön portinvartijaprosessille.

Portinvartijaprosessi kuuntelee kirjautumispyyntöjä ja luo käyttöoikeuksien varmistuksen jälkeen käyttäjälle istunnon ja siihen liittyvän palvelinprosessin. Portinvartija myös valvoo palvelinprosessien tilaa.

Käyttäjät jaetaan käyttäjäryhmiin eli toimijoihin. Käyttäjillä on erilaisia rooleja suhteessa järjestelmässä käsiteltäviin entiteetteihin. Sama käyttäjä voi olla vaikkapa jonkin kurssin opettaja ja jonkin toisen kurssin materiaalintuottaja. Sekä Client Manager että palvelinprosessi tarjoavat erilaisen toiminnallisuuden riippuen siitä mihin ryhmään käyttäjä kuuluu ja mikä on käyttäjän rooli.

Ohjelmistoalustan arkkitehtuuriratkaisut

A&O:n arkkitehtuuri jakautuu järjestelmä- ja sovellusarkkitehtuurin. Järjestelmätason arkkitehtuuri on periaatteeltaan varsin samanlainen kuin tietokantasovelluksissa yleisesti käytetty kolmitasoinen arkkitehtuuri. Sen perustana on hajautettu sovellusalueen oliomalli ( Distributed Domain Object Model, DDOM ), joka kuvaa sovellusalueen käsitteet, entiteetit, ja niiden toiminnot. Tällaisia entiteettejä ovat esimerkiksi käyttäjä, opiskelijamalli, kurssi, aihe ja tietämysgraafi. Näin ohjelmistosta löytyy suorat vastineet loppukäyttäjien käsitteille ja ohjelmiston tarjoamat toiminnot voidaan toteuttaa niiden välisinä kutsuina.

Asiakaspään sovellusarkkitehtuuri perustuu MVC++- arkkitehtuuriin ( Jaaksi 1995 ), joka on lievästi muunneltu SmallTalk-ohjelmointiympäristön Model-View-Controller -arkkitehtuurista. MVC++:n mukaan sovellus jaetaan kolmeen kerrokseen, joista jokaisella on hyvin määritellyt vastuut ja tehtävät. Ohjelmistoalusta tarjoaa sovelmien suunnittelijoille MVC++-kehyksen, joka kätkee alla olevan järjestelmän yksityiskohdat, kuten verkkoselaimen ja hajautusmekanismin. Ohjelmistoalustan rakenne on esitetty kuviossa (»KUVIO 9.).


KUVIO 9. Ohjelmistoalustan rakenne

Ohjelmistoalustan tekninen toteutus

Sekä asiakas että palvelin on toteutettu Javalla, JDK (Java Development Kit) 1.1 :llä. Näin päästään selkeään ja yhtenäiseen kehitysympäristöön: sama oliomalli ja sama kieli ovat käytössä koko järjestelmässä. Vaihtoehtona olisi ollut esimerkiksi kirjoittaa asiakas Javalla ja palvelin C++:lla, jolloin sama oliomalli olisi toteutettu kahteen kertaan. Koska Java perustuu virtuaaliseen prosessoriin, jonka käskykanta suoritetaan tulkkaamalla, oli tarpeen varmistaa että suorituskyky ei tuota ongelmia. Tämän takia projektin alkuvaiheessa luotiin kokeilutoteutukset osasta oliomallia sekä C++:lla että Javalla. Suorituskykyero ei ollut merkittävä.

JavaScriptillä täydennetään Javan verkkoselaimessa käytettävissä olevaa toiminnallisuutta. Käytännössä tämä koskee lähinnä selaimen ohjaamista, sillä Java-sovelman mahdollisuudet keskustella selaimen kanssa ovat rajoitetut.

Hajautusmekanismissa vaihtoehtoina olivat RMI (Remote Method Invocation), joka on osa JDK 1.1:tä, CORBA (Common Object Request Broker Architecture) ja CGI (Common Gateway Interface). CGI toimii HTTP:n (Hypertext Transfer Protocol) päällä, ja tästä johtuu sen suurin heikkous tässä esitellyn kaltaisissa sovelluksissa: yhteys on tilaton (stateless). CORBA puolestaan vaatisi asiakas/palvelin-rajapinnan kuvauksen erillisellä kielellä ( IDL, Interface Definition Language ). Koska CORBA:n toiminnallisuus on käytännössä osajoukko minkä hyvänsä kielen toiminnallisuudesta, rajoittaa se monien Javan ominaisuuksien käyttöä. RMI on tässä tapauksessa paras ratkaisu, koska koko järjestelmä on kirjoitettu Javalla ja monet Javan kätevät paradigmat toimivat RMI:n yli; näistä esimerkkeinä roskienkeruu ja poikkeuskäsittely.

TTKK:n tietojärjestelmä on rakennettu Oracle -tietokannan päälle. Ohjelmistoalusta käyttää tätä tietokantaa oppilastietojen tarkistamiseen niiden opiskelijoiden osalta, jotka ovat kirjoilla TTKK:ssa. Samaa tietokantamoottoria käytetään myös olioiden pysyvyyden (persistence) toteuttamiseen niin sanotun vertaisarkkitehtuurin (peer architecture) mukaisesti ( Reese 1997 ). Kohdassa » mainitut erilliset hallinnointityökalut käsittelevät tietokannan sisältöä käyttäen samaa oliomallia kuin muukin järjestelmä. Oppimateriaalin rakenne on talletettu tietokantatauluihin, mutta varsinainen hypermediasisältö on erillisissä tiedostoissa ja vain viitteet niihin tallennetaan. Tietokantayhteys on toteutettu JDK 1.1:n JDBC ( Java Database Connectivity ) -rajapinnoilla ja Oracle JDBC-ajureilla.

Ohjelmistoalustan käyttöympäristö

A&O:n prototyypin asiakaspää vaatii aidon JDK 1.1 -tuen. Tästä syystä toimivia selainalustoja ovat Netscape Navigator:in versiot 4.04 tai 4.05 terästettyinä JDK 1.1-korjauspaketilla. Netscape Navigator 4.06 (tai uudempi) ja 4.5 -selaimia voidaan käyttää sellaisenaan. Microsoft Internet Explorer ei puutteellisen JDK 1.1 -tukensa takia sovellu selainalustaksi.

Tulevaisuudessa sopivien selainalustojen joukko tulee todennäköisesti laajentumaan. Sun Microsystems on julkaissut tuotteen nimeltä Java Plug-in . Se on selaimiin normaalin plug-in-määrityksen mukaisesti liitettävä lisämoduli, joka sisältää Java-virtuaalikoneen sekä JDK 1.1-kirjastot. Lisäksi mukana on Swing-käyttöliittymäkirjasto, joka on tulossa JDK 1.2:n osaksi. Plug-in toimii sekä Netscapen että Microsoftin selaimien kanssa alkaen molempien versiosta 3.0. Jatkossa A&O:n toimivuutta on tarkoitus testata Java Plug-in:in kanssa eri ympäristöissä.

Palvelin toimii Sunin Solaris 2.5.1:ssä. Ohjelmakoodi ei sisällä kiinteitä käyttöjärjestelmäriippuvuuksia , joten esimerkiksi siirron NT-ympäristöön pitäisi sujua varsin vaivattomasti. Lisäksi vaaditaan Oracle-tietokannan käyttömahdollisuus. Tietokannan vaihto toisen valmistajan tuotteeseen saattaisi aiheuttaa jonkin verran työtä, koska eri valmistajien SQL-murteet eroavat toisistaan jossain määrin.

Materiaalin tuottaminen FML-työkaluympäristössä

FML (Functional Markup Language)-työkaluympäristö (FML 1998 [online]) tarjoaa materiaalintuottajille työkaluja ja menetelmiä rakenteistetun hypermediasisällön tuottamiseen, kurssirakenteen suunnitteluun sekä erityyppisten elementtien ja toimintojen liittämiseen abstraktiin kurssimateriaaliin. Materiaalintuottajat koostavat oppimateriaalin abstraktien kurssien muodossa A&O:n FML-työkaluympäristön avulla. Kurssimateriaalin runko tuotetaan tekstieditorissa halutun rakenteen mukaisesti koodattuna. Koodattu lähdedokumentti käännetään hyperdokumentiksi ja käännösvaiheessa materiaalin rakenne realisoidaan ohjelmoitavien ja uudelleenmääriteltävien koodien ohjaamana. Käännöksessä staattiseen kurssimateriaaliin liitetään automaattisesti abstraktiin kurssimateriaalin sisältyvä aineisto, toiminnot, ohjelmistot sekä tarvittava toiminnallinen rajapinta A&O:n teknisen alustan käyttöönottoa silmälläpitäen. Kun ylläpitäjä on liittänyt uudet abstraktit kurssit osaksi järjestelmän kurssitietokantaa, voidaan niiden opiskelu aloittaa.

WWW-pohjainen FML-työkaluympäristö koostuu neljästä osasta: FML-asiakassovelluksista, FML-kielen määrityksestä, materiaalintuottajien resurssienhallinnasta sekä FML-kääntäjästä.

Asiakassovellukset sisältävät materiaalintuottajan HTML-(raaka)konversioon kykenevän tekstinkäsittelyohjelmistoon lisättävät apuohjelmat, kuten automaattisen esikäännöstoiminnon ja FML-syntaksin värikoodaustoiminnon suorittavat ohjelmat. Lisäksi käytettävissä on apuvälineitä materiaalin rakenteistamiseen ja lähdemateriaalin pakkaamiseen (zip-pakkaus). Apuohjelmat vaihtelevat valitun tekstinkäsittelyohjelmiston mukaisesti. Pilottikurssien materiaalin tuottamiseen on käytetty Windows 95 -ympäristön Word 97 -tekstinkäsittelyohjelmistoa, johon liitetyt FML-asiakassovellukset toteutettiin ohjelmiston omalla Visual Basic -ohjelmointikielellä. Asiakassovellusten tärkeimmät toiminnot ovat FML-koodatun tekstipohjaisen lähdemateriaalin esikääntäminen jatkokäsittelyä varten sekä tuotetun aineiston kokoaminen ja pakkaaminen.

FML-kieli on valitusta tekstinkäsittelyohjelmasta riippumaton ohjelmoitava makrokieli, joka tarjoaa perustoiminnot tekstidokumenttien toivotun hyperrakenteen merkitsemiseen ja FML-konversion ohjaamiseen. Kieli koostuu oleellisesti joukosta ennalta määriteltyjä makrokoodeja, joiden tehtävänä on ohjata konversioprosessia tekstimuotoisesta lähdekoodista HTML-tiedostoiksi koodattuun hyperdokumenttiin. Kiinteästi määritellyn perusmakrojoukon avulla on mahdollista merkitä suoraan hyperdokumentteja, tuottaa tekstitiedostoja, määritellä uusia parametrisoitavia makroja sekä liittää näihin hypertekstin konversiovaiheessa suoritettavia Perl-kielisiä ohjelmia.

Materiaalintuottajien resurssienhallinta koostuu WWW-pohjaisen käyttöliittymän kautta hallittavasta Unix-ympäristössä ajettavien FML-työkalujen joukosta. Työkalut tarjoavat FML-käännökseen liittyvät perusmekanismit ja käyttäjäidentifikaatioon perustuvan sessiokohtaisen näkymän käyttäjälle osoitettuun FML-kotihakemistoon. Materiaalintuottajan on oman hakemistorakenteensa käyttöön ja muokkaamiseen liittyvien perustoimintojen ohella mahdollista tallettaa ja purkaa pakattuja (esikäännettyjä) lähdedokumentteja valittuun hakemistoon sekä kääntää näitä edelleen hyperdokumenteiksi. Käännöstä voidaan ohjata lähdedokumentin makromäärityksillä tai tähän tarkoitukseen toteutetuilla, FML-palvelimella sijaitsevilla makrokirjastoilla. Makrokirjastojen avulla FML-koodien toiminnan määrittäminen voidaan irrottaa makrojen käytöstä ja siten esim. kääntää samoista lähdekoodeista eri versioita makrokirjastoja vaihtamalla.

Materiaalintuottajien resurssienhallinnan Unix-komponentit on tuotettu Tcsh- ja Perl-kielillä. WWW-rajapinta perustuu lähinnä käyttöliittymän HTML-dokumentteihin upotettujen lomakkeiden ja Javascriptin käyttöön. Resurssienhallinnan data- ja ohjaustietojen välitys WWW-asiakkaan ja FML-palvelimen välillä perustuu WWW:n tunnettuun CGI-tekniikkaan. Koska resurssienhallinnan käyttö tapahtuu käytännössä tilattoman HTTP-protokollan avulla, järjestelmän välttämätön sessio-käsite on toteutettu käyttäjien sisäänkirjoittautumisen yhteydessä talletettavien Internet-osoitteiden perusteella.

FML-kääntäjä on Perl-kielellä toteutettu tekstiprosessori, joka suorittaa lopullisen FML-käännöksen esikäännetyistä lähdedokumenteista joukoksi lopullisen hyperdokumentin muodostavia HTML-dokumentteja. Käännöksen yhteydessä tuotetaan automaattisesti hypertekstirakenteen yleinen kuvaustiedosto, aineiston sisällysluettelo, asiasanahakemisto sekä nimettyjen avainsanojen automaattinen linkitys. Automaattisen linkityksen osana käytetään Kielikoneen (Kielikone 1998 [online]) DCParser-ohjelmistoa suomen kielen lauserakenteiden syntaktisen tason analysoimiseen, tavoitteena kielen rakenteen hyväksikäyttö avainsanojen etsimisessä valituista tekstialueista. Materiaalintuottajan näkökulmasta katsottuna FML-kääntäjä on yksi WWW-pohjaisen FML-palvelimen resurssienhallinnan työkalu muiden joukossa.

minMaple- ja MapleEx-palvelimet

Symbolisen matematiikan laskentatehon valjastamiseen oppimisympäristön osaksi Maple-asiakkaan ja interaktiivisten harjoitustehtävien muodossa käytetään Unix-pohjaisia minMaple- ja MapleEx-palvelimia. Palvelimet perustuvat Maple V:n ytimen upottamiseen osaksi Unix-ympäristössä ajettavia apuohjelmia. Teknisen perustan näille tarjoaa Waterloo Maple Softwaren C-kielinen MathEdge-ohjelmointirajapinta Maple V:n ytimeen (Waterloo 1995 ). Maple rajapinnan realisoivat apuohjelmat on kirjoitettu C- ja Perl-kielillä ja ne toimivat käytännössä monimutkaisen tekstifiltterin tavoin prosessoiden Maple-syötteitä ja tuottaen tekstipohjaisen prosessoinnin sivutuotteina Maple-tulosteita. MathEdge on lisensoitu TTKK:n sisäisesti, eikä Maplen jakaminen sellaisenaan julkisesti WWW:ssä ole siten mahdollista.

minMaple on Maple V:n WWW-pohjainen asiakas-palvelin toteutus, joka mahdollistaa Maplen etäkäytön verkossa tavallisen selainohjelmiston avulla. minMaple-asiakas toteuttaa Maple-käyttöliittymän, huolehtii syötteiden välittämisestä minMaple-palvelimelle sekä palautteiden esittämisestä. MinMaple-palvelin käsittelee Maple-syötteitä, suorittaa Maple-koodeja ja tuottaa tuloksena sievennettyjä vastauksia ja tulosteita, jotka esitetään asiakkaalle HTML-koostedokumentin muodossa.

minMaple toteuttaa suurimman osan Maplen toiminnallisuudesta, mukaanlukien Maple-koodien sievennystoiminnot sekä kirjasto-, tulostus- ja opastetoiminnot. minMaple-asiakas on toteutettu HTML- ja Javascript-kielillä, palvelin Tcsh-, Perl-, ja C-kielillä. minMaple-asiakasta voidaan laiteriippumattomasti käyttää WWW:n tyyliin miltä tahansa sopivalta selainohjelmistolta. Palvelin puolestaan toimii yksinomaan Unix-järjestelmässä ja ohjelmiston siirtäminen toiseen ympäristöön edellyttää MathEdge-toteutukseen perustuvien apuohjelmien muokkaamista.

Interaktiivisten harjoitustehtävien perustana toimii matemaattisten tehtävien tekemiseen määritelty kuvauskieli, joka käytännössä on koodattu FML-määritysten mukaisesti. Näin geneeristen harjoitustehtävien tekeminen voidaan suorittaa FML-asiakasohjelmilla ja kääntää hyperdokumentin muotoon FML-kääntäjällä samaan tapaan muun kurssimateriaalin kanssa. Tehtävät voivat olla erittäin monimutkaisia hyödyntäen Maplen tarjoamia monipuolisia ominaisuuksia kokonaisuudessaan. Tehtävät sisältävät esim. Maple-koodien generoimia ja tarkistamia matemaattisia ongelmia, dynaamisia Maple-tulosteita ja käyttäjän aktivoimia Maple-ohjelmia. Käytännössä tehtävien ohella on siis mahdollista tuottaa myös muuntyyppistä interaktiivista aineistoa, esim. demonstraatioita tai simulaatioita.

Harjoitustehtävien toiminnallisuudesta vastaa MapleEx-asiakas-palvelin-toteutus, joka vuorovaikutteisesti tehtävärungon, käyttäjän syötteiden ja komentojen perusteella visualisoi ja tulkitsee FML-koodattua tehtävädokumenttia sekä tulkitsee käyttäjän syötteitä. Syötteet ja Maple-rajapinnan toteuttavien aliohjelmien prosessoimat tulosteet käsitellään ja sievennetään vapaasti määritettävien tekstisuotimien avulla. MapleEx-asiakkaan käyttöliittymä on toteutettu HTML-kielellä ja Javascriptillä, palvelinosuus Tcsh- ja Perl-kielillä. Komentojen välittämiseen asiakkaalta palvelimelle käytetään CGI-rajapintaa.


Edellinen Ylempi otsikkotaso Sisällys Hakemisto Seuraava