Versions Compared

Key

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

Tässä kartoituksessa on tarkoituksena selvittää tarjolla olevien avoimen lähdekoodin kirjastojärjestelmien soveltuvuutta UKJ-projektin tarpeisiin. Kartoitukseen otetaan mukaan vain sellaisia  järjestelmiä, joita kehitetään edelleen ja jotka omaavat UKJ:hin sisältyvää toiminnallisuutta. Selvitys toteutetaan kahdessa vaiheessa siten, että ensin tuotetaan listaus tarjolla olevista järjestelmistä, jonka jälkeen järjestelmien joukosta valitaan kaksi tai kolme järjestelmää lähempään tarkasteluun. Lähempään tarkasteluun otettavat järjestelmät valitaan järjestelmien sisältämän toiminnallisuuden sekä käyttäjä- että kehittäjäyhteisön laajuuden ja aktiivisuuden perusteella. Selvitys toteutetaan kokonaisuudessaan kirjallisuusselvityksenä eli arvioitavia järjestelmiä ei koekäytetä eikä asenneta testipalvelimelle lähempää tarkastelua varten.

Vaihe 1

Taulukossa 1 on esitetty listaus edelleen kehitetyistä keskeisimmistä avoimen lähdekoodin kirjastojärjestelmistä.Listaukseen on otettu mukaan ainoastaan sellaisia järjestelmiä, joita kehitetään edelleen aktiivisesti.

...

Vertailuun mukaan otetuista järjestelmistä monipuolisimman toiminnallisuuden tarjoavat Koha, Evergreen ja Kuali OLE. Koha ja Evergreen ovat tunnetuimmat sekä myös käytetyimmät avoimen lähdekoodin kirjastojärjestelmät, joilla molemmilla on laajat kansainväliset käyttäjä- ja kehittäjäyhteisöt. Kumpaakin järjestelmää käytetään eri kokoisissa ja eri tyyppisissä kirjastoissa ympäri maailman, joka tekee niistä kiinnostavia vaihtoehtoja myös tämän kartoituksen kannalta. Kuali OLE puolestaan eroaa Kohasta ja Evergreenistä monellakin tavoin, sillä se on vasta aivan elinkaarensa alkupäässä, eikä kaikkia taulukossa 2 esitettyjä toiminnallisuuksia ei ole vielä edes toteutettu, koska järjestelmä on edelleen kehitysvaiheessa. Valmistuessaan Kuali OLE:n kuitenkin pitäisi sisältää erittäin kattava toimintokokonaisuus sekä standardien ja rajapintojen tuki, joka yhdessä sen modernin arkkitehtuurin kanssa tekee siitä erittäin kiinnostavan vaihtoehdon.

Vaihe 2

Erityisesti Kohan ja Evergreenin kohdalla on tehty monia selvityksiä ja vertailuja, joissa keskitytään niiden tarjoamia toimintojen tarkasteluun ja vertailuun. Tässä tapauksessa tällaisen vertailun teko ei ole perusteltua, koska uudelle kirjastojärjestelmälle asetetut vaatimukset eivät vielä tätä selvitystä kirjoitettaessa ole riittävällä tarkkuudella tiedossa, jonka vuoksi vertailussa ei pystyttäisi kiinnittämään huomiota UKJ:n kannalta keskeisiin asioihin. Lisäksi Kuali OLE -järjestelmän keskeneräisyys estää sen täysipainoisen vertailun muiden tarkasteltavien järjestelmien kanssa. On myös erittäin epätodennäköistä, että yksikään vertailtavista järjestelmistä täyttäisi yksinään riittävällä tasolla uudelle kirjastojärjestelmälle asetettuja vaatimuksia. Edellä mainittujen seikkojen perusteella tässä vertailussa keskitytään järjestelmien toimintojen sijaan tarkastelemaan niiden arkkitehtuuria ja ennen kaikkea sitä, kuinka helposti niiden yksittäiset osat ovat vaihdettavissa tai vaihtoehtoisesti siirrettävissä muiden järjestelmien käyttöön. Uuden kirjastojärjestelmän keskeisenä ajatuksena on modulaarisuus eli järjestelmän rakentaminen useista toisiinsa löyhästi sidoksissa olevista moduuleista. Valittujen järjestelmien lähemmässä tarkastelussa onkin siis tarkoituksena paneutua nimenomaan siihen, onko valittujen järjestelmien yksittäisten osien hyödyntäminen UKJ:ssa mahdollista.

Koha

Koha koostuu Perl-ohjelmointikielellä toteutetuista moduuleista ja pakkauksista, jotka vastaavat järjestelmän kaikkien eri osa-alueiden toimintojen toteuttamisesta. Niin tietojen käsittely, tietokantayhteydet kuin käyttäjille näytettävien HTML-sivujen generoiminen on toteutettu edellä mainittujen moduulien ja pakkausten avulla.

...

Moduulien välinen tiedonvaihto ja kommunikointi on toteutettu niiden ohjelmallisten rajapintojen kautta. Käytännössä tämä tarkoittaa sitä, että tietyn moduulin tarjoamia palveluja käytettäessä on kyseinen moduuli sisällytettävä siihen ohjelman osaan, jossa palvelua halutaan käyttää. Ohjelmiston eri osien vaihtaminen toisiin on mahdollista, mutta osien toteutuksessa käytettävä ohjelmointikieli on sidottu Perl:iin, sillä sisällyttäminen on mahdollista vain samalla ohjelmointikielellä toteutettujen osien välillä.

Evergreen

Evergreen on rakennettu Open Service Request Framework (OpenSRF) –kehyksen ympärille, joka mahdollistaa ohjelmiston koostamisen useista toisiinsa löyhästi kytketyistä palveluista. OpenSRF-kehys toteuttaa palvelujen ja asiakasohjelmien välisen kommunikoinnin kehyksen sisältämän viestiväylän (messaging bus) kautta. Väylän sisällä liikkuvat viestit kulkevat JavaScript Object Notation (JSON) -muodossa Extensible Messaging and Presence Protocol (XMPP) –protokollaa käyttäen. Kehys mahdollistaa sen avulla toteutettujen palvelujen ja asiakasohjelmistojen sijoittamisen yhdelle palvelimelle tai hajauttamisen useille maantieteellisesti toisistaan erillään oleville palvelimille, jonka lisäksi myös tiettyä toiminnallisuutta tarjoavia palveluita voi olla sijoitettuna useille eri palvelimilla.  Eri palvelimilla sijaitsevat palvelut kommunikoivat keskenään viestiväylän kautta.

...

Palveluita kutsuvissa asiakasohjelmissa sekä itse palveluiden toteutuksessa käytetään käytettävän ohjelmointikielen mukaisia tietotyyppejä, jotka OpenSRF-kehys muuntaa JSON-muotoon siirron ajaksi. Käytettäessä edellä listattuja perustietotyyppejä tapahtuu siirrettävien tietojen muuntaminen eri formaattien välillä OpenSRF:n toimesta automaattisesti. Käytettäessä monimutkaisempia tietorakenteita, kuten esimerkiksi Evergreenin omia luokkia edustavia olioita joudutaan muunnokset sen sijaan määrittelemään erillisessä konfiguraatiotiedostossa. Tiedosto määrittää kuinka Evergreenin luokkia edustavat oliot esitetään JSON-muodossa, jotta OpenSRF osaa tehdä tarvittavat muunnokset kyseisiä olioita sisältävien viestien välittämistä varten. Konfiguraatiotiedoston perusteella OpenSRF kykenee muuntamaan oliot JSON-muotoon sekä vastaavasti luomaan JSON-formaatista luettuja tietoja vastaavat oliot.

Kuali OLE

Kuali Open Library Environment (Kuali OLE) –kirjastojärjestelmä on yksi voittoa tavoittelemattoman Kuali-säätiön koordinoimista järjestelmistä. Säätiön tavoitteena on tuottaa korkeakoulujen tarpeita vastaavia avoimen lähdekoodin järjestelmiä yhteistyössä korkeakoulujen kanssa. Kirjastojärjestelmän lisäksi Kuali-järjestelmien perheeseen kuuluu mm. taloushallinto-ohjelmisto, tutkimuksenhallintaohjelmisto, henkilöstöhallintajärjestelmä sekä joukko erilaisia middleware-ohjelmistoja.

...

Kuali OLE perustuu palvelukeskeiseen arkkitehtuuriin eli järjestelmän moduulit on toteutettu palveluina, jotka kommukoivat keskenään palveluväylän välityksellä samaan tapaan, kuin muut OLEn toiminnassa hyödynnettävät Kuali-perheen ohjelmistot. Yhdessä palvelut muodostavat järjestelmän palvelurajapinnan, jota järjestelmän asiakasohjelmat sekä myös ulkoiset järjestelmät käyttävät. Tämä tekee järjestelmän tarjoamia palveluita hyödyntävien sovellusten kehittämisestä sekä eri järjestelmien välisestä tiedonvaihdosta erittäin joustavaa.

Palveluväylä

Suuret ohjelmistokokonaisuudet koostuvat monista eri ohjelmistoista, joiden välinen kommunikointi on usein erittäin monimutkaista johtuen ohjelmistojen käyttämistä erilaisista rajapinnoista ja tietorakenteista. Tämän seurauksena yhden ohjelmiston kommunikointitavoissa tapahtuvat muutokset voivat vaikuttaa suoraan monen muun eri ohjelmiston toimintaan ja voivat pahimmillaan estää koko ohjelmistokokonaisuuden toiminnan. Samasta syystä myös yksittäisen ohjelmiston korvaaminen toisella tai uuden ohjelmiston lisääminen kokonaisuuteen on erittäin työlästä aiheuttaen pahimmillaan muutoksia useisiin muihin järjestelmiin.

Palveluväylän keskeisenä ajatuksena on toimia ohjelmistokokonaisuuteen kuuluvien ohjelmistojen välisten viestien välittäjänä, jonka ansiosta ohjelmistojen välille ei synny suoria keskinäisiä riippuvuuksia. Käytännössä tämä tapahtuu toteuttamalla ohjelmistojen välinen kommunikointi ja tiedonvaihto palveluväylää pitkin lähetettävien viestien avulla, jolloin ohjelmistojen välille ei synny suoria keskinäisiä riippuvuuksia. Palveluväylän sisällä kulkevat viestit noudattavat väylän omaa tietomallia, josta tiedot muunnetaan aina kunkin ohjelman ymmärtämään muotoon. Käytännössä viestien muuntaminen tapahtuu väylän ja ohjelmiston välissä olevan muuntimen avulla, jolloin yksittäisessä ohjelmassa tapahtuvat muutokset vaikuttavat vain väylän ja kyseisen ohjelmiston väliseen muuntimeen. Tämä tekee järjestelmäkokonaisuuden ylläpidosta joustavaa ja mahdollistaa yksittäisten järjestelmien vaihtamisen ja uusien järjestelmien lisäämisen huomattavasti aiempaa vaivattomammin.

Palveluväylä on oma itsenäinen ohjelmistonsa, jonka sisältämät toiminnallisuudet ja ominaisuudet ovat ohjelmistokohtaisia ja saattavat näin ollen vaihdella suurestikin eri ohjelmistojen välillä. Yleisiä palveluväylään liittyviä ominaisuuksia ovat esimerkiksi viestien suodattaminen ja reitittäminen sekä työprosessien määritteleminen. Palveluväylä voi toteuttaa koko järjestelmäkokonaisuuden julkisen palvelurajapinnan, jonka tarjoamat julkiset palvelut voivat koostua useista yksittäisistä palveluista, jotka väylään kytketyt eri ohjelmistot toteuttavat. Tällaisia palveluita kutsutaan koosteisiksi palveluiksi ja samoja yksittäisiä palveluita voidaan helposti hyödyntää monissa koosteisissa palveluissa.

Yhteenveto

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.

...

Vertailussa mukana olleista järjestelmistä sekä Kuali OLE:n että Evergreenin toteutustapa on palvelukeskeinen eli järjestelmät koostuvat useista toisiinsa heikosti sidoksissa olevista palveluista, jotka kommunikoivat keskenään. 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 internetin kautta avointen rajapintojen ja tekniikoiden 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 toteutustapa on ehdottomasti joustavin ja tarjoaa parhaat edellytykset aidosti modulaarisen ohjelmistokokonaisuuden rakentamiseen.

Palveluväylä

Suuret ohjelmistokokonaisuudet koostuvat monista eri ohjelmistoista, joiden välinen kommunikointi on usein erittäin monimutkaista johtuen ohjelmistojen käyttämistä erilaisista rajapinnoista ja tietorakenteista. Tämän seurauksena yhden ohjelmiston kommunikointitavoissa tapahtuvat muutokset voivat vaikuttaa suoraan monen muun eri ohjelmiston toimintaan ja voivat pahimmillaan estää koko ohjelmistokokonaisuuden toiminnan. Samasta syystä myös yksittäisen ohjelmiston korvaaminen toisella tai uuden ohjelmiston lisääminen kokonaisuuteen on erittäin työlästä aiheuttaen pahimmillaan muutoksia useisiin muihin järjestelmiin.

Palveluväylän keskeisenä ajatuksena on toimia ohjelmistokokonaisuuteen kuuluvien ohjelmistojen välisten viestien välittäjänä, jonka ansiosta ohjelmistojen välille ei synny suoria keskinäisiä riippuvuuksia. Käytännössä tämä tapahtuu toteuttamalla ohjelmistojen välinen kommunikointi ja tiedonvaihto palveluväylää pitkin lähetettävien viestien avulla, jolloin ohjelmistojen välille ei synny suoria keskinäisiä riippuvuuksia. Palveluväylän sisällä kulkevat viestit noudattavat väylän omaa tietomallia, josta tiedot muunnetaan aina kunkin ohjelman ymmärtämään muotoon. Käytännössä viestien muuntaminen tapahtuu väylän ja ohjelmiston välissä olevan muuntimen avulla, jolloin yksittäisessä ohjelmassa tapahtuvat muutokset vaikuttavat vain väylän ja kyseisen ohjelmiston väliseen muuntimeen. Tämä tekee järjestelmäkokonaisuuden ylläpidosta joustavaa ja mahdollistaa yksittäisten järjestelmien vaihtamisen ja uusien järjestelmien lisäämisen huomattavasti aiempaa vaivattomammin.

Palveluväylä on oma itsenäinen ohjelmistonsa, jonka sisältämät toiminnallisuudet ja ominaisuudet ovat ohjelmistokohtaisia ja saattavat näin ollen vaihdella suurestikin eri ohjelmistojen välillä. Yleisiä palveluväylään liittyviä ominaisuuksia ovat esimerkiksi viestien suodattaminen ja reitittäminen sekä työprosessien määritteleminen. Palveluväylä voi toteuttaa koko järjestelmäkokonaisuuden julkisen palvelurajapinnan, jonka tarjoamat julkiset palvelut voivat koostua useista yksittäisistä palveluista, jotka väylään kytketyt eri ohjelmistot toteuttavat. Tällaisia palveluita kutsutaan koosteisiksi palveluiksi ja samoja yksittäisiä palveluita voidaan helposti hyödyntää monissa koosteisissa palveluissa.

Linkkejä:

http://opensourceils.com/ (Open Source tietoportaali kirjastonhoitajille. Enimmäkseen KOHAa ja EverGreeniä tuntuu käsittelevän)

...