Digitaalisen arkiston työkalupakki (OR2009 3/10)

John Kunze kertoi omassa esityksessään suuresta DataONE-hankkeesta (Data Observation Network for Earth), jossa tuodaan yhteen eri datalähteitä kaikkeen maapalloon liittyvästä mittaus- ja tutkimusdatasta. Itse hanketta kiinnostavampi oli kuitenkin California Digital Libraryn lähestymistapa säilytykseen, josta Stephen Abrams jatkoi esityksessään ”Permanent Objects, Disposable Systems”.

Kunzen ja Abramsin mielestä  monoliittiset säilytysjärjestelmät ovat kankeita ja joustamattomia. CDL:ssä ideana on ollut kehittää mahdollisimman yksinkertaisia ja pieniä ns. mikropalveluita, joita voidaan käyttää yhdessä toteuttamaan monimutkaisempia toimenpiteitä. Idea lienee saanut alkunsa UNIX:sta ja sen yksittäisistä, hyvinkin yksinkertaisia toimenpiteitä suorittavista työkaluista, joita on mahdollisuus nivoa toisiinsa eri tavoin tarpeen mukaan. Ei ole mikään yllätys, että Kunze on ollut aiemmin BSD-kehittäjä.

Mikropalvelut muodostavat eräänlaisen työkalupakin. Jokainen työkalu on itsenäinen kokonaisuutensa ja samalla yksinkertainen ja pieni. Toisaalta on hieman harhaanjohtavaa puhua pelkästä työkaluista sillä kyseessä ei ole sekalainen työkalunippu, vaan kokoelma atomisia palveluita, joissa on kaikissa yhtenevät rajapinnat. Kaikkiin työkalupakin työkaluihin voi tarttua samoin tavoin: komentoriviltä, webbiliittymästä tai ohjelmointirajapinnasta (API). Kun palvelut ovat itsenäisiä ja pieniä, niitä on helpompi kehittää ja ylläpitää. Toisaalta niitä voidaan myös korvata toisilla.

Lähtökohdaksi digitaalisten objektien hallintaan on otettu tavallinen tiedostojärjestelmä. Tiedostojärjestelmiä on käytetty vuosikymmeniä, ja ne ovat yksinkertaisesti hyviä ja nopeita. Lisäksi tiedostojärjestelmässä sijaitsevia tiedostoja voi käsitellä kätevästi käyttöjärjestelmän omilla työkaluilla. Varsinaisen objektin hallintajärjestelmän Kunzen mielestä tiedostojärjestelmästä saa, kun siihen yhdistetään jonkinlainen nimeämiskäytäntö.

Eräs tällainen esimerkki on Pairtree, eräänlainen hakemistohierarkiakäytäntö, jonka mukaisesti digitaaliset objektit tallennetaan. Digitaalisilla objekteilla on tunnisteet, ja Pairtree pilkkoo tunnisteen (esim. 495421) hakemistopoluksi, joka koostuu hakemistoista joilla on jokaisella kaksimerkkinen nimi (49/54/21). Tarkemmin Pairtreesta on kerrottu sen määrittelyssä. Pairtreella on merkittävä etu puolellaan. Kun jokainen digitaaliseen objektiin kuuluva osa tallennetaan tiedostojärjestelmään ja samaan hakemistoon, pysyvät kaikki tiedot yhdessä paikassa verrattuna tilanteeseen, jossa osa tiedoista (tyypillisesti metadata) tallennettaisiin tietokantaan. Näin aineiston varmuuskopiointi on helpompaa. Toisaalta Pairtree ei ole riippuvainen käyttöjärjestelmästä saati tietystä tietokannan hallintajärjestelmästä. Hakemistorakenne voidaan sellaisenaan siirtää toiseen järjestelmään.

Toinen Pairtreehin läheisesti liittyvä Kunzen keksintö on Namaste (Name as Text). Namastea käytettäessä on helppo saada yksinkertainen kuvaus digitaalisesta objektista eli hakemistosta, jos digitaaliset objektit tallennetaan esim. Pairtreen mukaisesti. Hakemistoon lisätään viisi tiedostoa, jotka on nimetty muodossa D=arvo. D voi olla numero nollasta neljään ja arvo mikä tahansa tekstisisältö. Numer 0 viittaa hakemiston tyyppiin, 1 tietoon tekijästä, 2 nimikkeeseen, 3 julkaisuajankohtaan ja 4 tunnisteeseen. Itse metadata tai tekstisisältö löytyy tiedostosta. Kun hakemistosta pyydetään kaikkien tiedostojen sisällöt, jotka on nimetty näin, saadaan näytölle kätevästi hakemiston (tai digitaalisen objektin) olennaiset tiedot. Alla esimerkki UNIX-ympäristöstä:

% ls
0=dflat_1.8      admin/            splash.txt        v005/
1=Twain,_Mark    annotations/      v001/             v006/
2=Huckleberry..  data/             v002/             v007/
3=1898           enrichment/       v003/             v008/
4=12345678901..  manifest.txt      v004/
% cat ?=*
dflat 1.8
Twain, Mark
Huckleberry Finn
1898
12345678901123456

California Digital Libraryssa on kehitetty myös joukko muita pieniä työkaluja eri tarpeisiin. Tarkempi listaus ja linkit työkalujen määrityksiin ja itse ohjelmiin löytyvät kirjaston omalta sivulta. Näistä esimerkiksi BagIt on aineiston lataamiseen arkistoon ja sen kopioimiseen arkistosta toiseen, JHOVE2 tiedostojen tunnistamiseen ja XTF aineiston indeksointiin ja hakuun. Mikropalveluja kehitetään kaikille digitaalisen arkiston saroille. Nähtäväksi jää, kuinka mikropalvelut saadaan sidottua toisiinsa yhdeksi toiminnalliseksi kokonaisuudeksi. DataONE on varmasti hyvä koetinkivi sille.