Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Kuali OLE perustuu palvelukeskeiseen arkkitehtuuriin. Järjestelmän moduulit on liitetty palveluväylään, jonka kautta niiden tarjoamat palvelut ovat kaikkien järjestelmän osien käytettävissä. Myös muut OLEn toiminnassa hyödynnettävät Kuali-perheen ohjelmistot on liitetty kokonaisuuteen palveluväylän välityksellä. Yhdessä eri osien tarjoamat palvelut muodostavat järjestelmän palvelurajapinnan, jota järjestelmän asiakasohjelmat sekä tarvittaessa myös ulkoiset järjestelmät käyttävät. Palveluväylään liitetyt ohjelmistot pääsevät käyttämään palveluita suoraan palveluväylän kautta ja ulkoiset ohjelmistot puolestaan HTTP-protokollan avulla kuljetettavien SOAP-viestien tai REST-palveluiden kautta. Palveluväylään on mahdollista liittää suoraan vain Java-pohjaisia Kuali-perheeseen kuuluvia palveluita, mutta muilla tekniikoilla toteutettujen palveluiden liittäminen on mahdollista välikappaileiden välikappaleiden (connector) avulla. Välikappaleet toimivat eräänlaisina konverttereina palveluväylän ja siihen liitettävien palveluiden välillä.

Kuali OLE:n käyttöliittymien toteutuksessa on käytetty KRAD-ohjelmistokehystä, joka on tarkoitettu Kuali Ricea käyttävien asiakasohjelmien toteuttamiseen. Ohjelmistokehys sisältää mm. käyttöliittymän suunnittelua ja toteutusta sekä muiden Ricen tarjoamien palveluiden käyttöä helpottavia komponentteja. Kehyksen ansiosta OLE:n asiakasohjelmien käyttöliittymät ovat ilmeeltään ja toimintalogiikaltaan yhdenmukaiset, mutta käytettävyyden puolella on sen sijaan toivomisen varaa runsain mitoin.

Kuali OLE:n Document Store -nimellä kulkeva tietovaranto on toteutettu avoimen lähdekoodin Apache Jackrabbit -dokumenttivaraston avulla, joka mahdollistaa tietojen tallentamisen useissa eri formaateissa, kuten esimerkiksi JSON- tai XML-formaateissa. Myös binääri-muotoisen tiedon tallentaminen onnistuu, mutta tällöin hakujen kohdistaminen varsinaiseen tietosisältöön ei ole mahdollista. Kuali OLE:n tapauksessa järjestelmän käsittelemät tietokokonaisuudet, kuten esimerkiksi bibliografiset tietueet, asiakastiedot ja lisenssit, on tallennettu dokumenttivarastoon eri tyyppisinä dokumentteina, joiden rakenne sekä tallennusformaatti vaihtelee dokumenttityypeittäin. Lisäksi saman tyyppisten dokumenttien tallentaminen erilaisissa formaateissa on myös mahdollista. Tietojen tallennuksen yhteydessä ei suoriteta tietojen muuntamista eri formaattien välillä, vaan tiedot tallennetaan suoraan siinä muodossa, kun ne tallennuksen yhteydessä vastaanotetaan. Käytännössä tietojen tallentamisessa on kuitenkin käytettävä tiettyjä ennalta määriteltyjä formaatteja, jotta tietojen haku ja käsittely järjestelmässä olisi mahdollista. Bibliografisten tietueiden tallennus on esimerkiksi mahdollista MarcXML-, Dublin Core sekä Simple (Unqualified) Dublin Core -formaateissa. Varastotietueiden tallennus on puolestaan mahdollista joko MarcXML- tai OLEML (OLE Markup Language) -formaateissa ja nidetietojen tallennus OLEML-formaatissa. Varasto- ja nidetiedot linkittyminen bibliografisiin tietueisiin on toteutettu OLE:ssa Instance-tyyppisten dokumenttien kautta, jotka tallennetaan OLEML-formaatissa. Document Storen tallennusalustana toimii Oracle-tietokanta.

...

Koha, Evergreen ja Kuali OLE ovat kaikki rakenteeltaan modulaarisia ainakin siinä mielessä, että ne kaikki rakentuvat useista eri osista, jotka kommunikoivat keskenään erilaisten rajapintojen kautta. Kohan tapauksessa rajapinta on puhtaasti ohjelmallinen ja on näin ollen sidoksissa tiettyyn toteutustekniikkaan, Perl-ohjelmointikieleen. Evergreenin tapauksessa järjestelmän eri osat eivät ole suoraan yhteydessä toisiinsa ohjelmallisen rajapinnan kautta, vaan niiden välinen kommunikointi on toteutettu viestiväylän avulla. Tässäkin tapauksessa sekä palvelujen että asiakasohjelmien toteutus on kuitenkin sidottu tiettyihin tekniikoihin ja ohjelmointikieliin viestiväylän toteutustekniikasta johtuen. Kuali OLE on puolestaan rakennettu siten, että sen eri osien välillä ei ole suoria riippuvuuksia, vaan osat kommunikoivat keskenään palveluväylän välityksellä. Ratkaisu mahdollistaa sen, että eri osien toteutustekniikkaa ei ole millään tavalla rajoitettu ja eri osat voivat olla toteutettu toisistaan täysin poikkeavilla tekniikoilla. Kuali OLE:n käyttämä KSB-palveluväylä on toteutettu Java-ohjelmointikielellä, jonka seurauksena siihen toteutettavien välikappaleiden toteutus on myös sidottu Java:an.

Koha ja Kuali OLE tarjoavat puhtaasti www-pohjaiset virkailijakäyttöliittymät eli työsasemakohtaisia asennuksia ei tarvita. Evergreenin virkailijakäyttöliittymät on sen sijaan asennettava työasemakohtaisesti. Kohan tapauksessa käyttöliittymä ja sen hyödyntämät palvelut ovat tiiviisti sidoksissa toisiinsa. Palvelut on suunniteltu tietyn käyttöliittymän tarpeisiin ja vaihtoehtoisen käyttöliittymän toteuttaminen edellyttäisi myös palvelujen tuplaamista ja mahdollisesti myös muokkaamista vaihtoehtoisen käyttöliittymän tarpeita vastaaviksi. Evergreenin ja Kuali OLE:n tapauksessa käyttöliittymä ja sen hyödyntämät palvelut on puolestaan erotettu toisistaan, jonka ansiosta useat vaihtoehtoiset käyttöliittymät voivat hyödyntää samoja järjestelmän tarjoamia palveluita.

Vertailussa mukana olleista järjestelmistä sekä Kuali OLE:n että Evergreenin toteutustapa on palvelukeskeinen eli järjestelmät tajoavat palvelurajapinnan, jonka kautta asiakasohjelmat käyttävät niiden tarjoamia palveluita. Käytännön toteutuksien osalta järjestelmät kuitenkin eroavat toisistaan melkoisesti. Kuali OLE:n palvelurajapinnan toteutustapa on teknologianeutraali eli se ei ota kantaa sitä käyttävien järjestelmien tekniikoihin tai ohjelmointikieliin, vaan palveluiden käyttö tapahtuu on mahdollista internetin kautta SOAP-protokollan tai REST-palveluiden avulla. Evergreenin toteutustapa sen sijaan sitoo sen palveluja käyttävät järjestelmät OpenSRF-kehyksen ja sitä tukevien ohjelmointikielten käyttöön. OpenSRF-kehys on avoimen lähdekoodin toteutus, mutta sen avulla toteutettujen palvelujen hyödyntäminen edellyttää asiakasohjelmille tarkoitetun OpenSRF-ohjelmistokirjaston käyttöä, joka on saatavilla tietyille ohjelmointikielille.

Kaiken kaikkiaan Kuali OLE:n palveluväylään perustuva toteutustapa on ehdottomasti joustavin ja tarjoaa parhaat edellytykset aidosti modulaarisen ohjelmistokokonaisuuden rakentamiseen. Toteutustapa mahdollistaa ohjelmistokonaisuuden koostamisen useista eri osista siten, että osien vaihdolla tai uusien lisäämisellä ei tarvitse olla vaikutusta muihin osiin. Kuali OLE hyödyntää muita Kuali-perheen ohjelmistoja sekä itse palveluväylän että varsinaisen toiminnallisuuden toteuttamisessa, mutta mikään ei estä ainakaan periaatteessa näyttäisi estävän korvaamasta näitä osia muilla vastaavilla ohjelmistoilla. Ratkaisu mahdollistaa Täyden varmuuden saaminen asiaan edellyttää kuitenkin tarkempaa tiettyyn korvattavaan osaan liittyvää erillistä selvitystä. Kuali OLE:n arkkitehtuurissa tehdyt ratkaisut mahdollistavat sekä avoimen lähdekoodin että kaupallisten järjestelmien käytön kokonaisuuden rakentamisessa. Olennaista on, että kokonaisuuteen liitettävä järjestelmä sisältää toimivat ja hyvin dokumentoidut rajapinnat palveluväylään liittämistä varten. Lisäksi palveluväylän toteuttamiseen käytettävän ohjelmiston on oltava riittävän monipuolinen ja konfiguroitava, jotta se pystyy toteuttamaan kaikki järjestelmään kohdistuvat vaatimukset.

...