Hyppää pääsisältöön
Näyttää siltä, että käytät Internet Explorer -selainta. Selain ei valitettavasti ole tuettu. Suosittelemme käyttämään modernia selainta kuten Chrome, Firefox, Safari tai Edge.

REMS-järjestelmällä tutkijat voivat helpommin löytää, hankkia ja jakaa tieteellisiä aineistoja

Lyhyesti

Asiakas
CSC

Haaste CSC kaipasi erilaisten organisaatioiden tarpeisiin muokkautuvaa järjestelmää tutkimusaineistojen löytämistä ja analysointia varten.

Tulokset Avoimen lähdekoodin järjestelmä, joka palvelee lukuisia käyttäjiä ja jota jatkokehitetään entistä paremmaksi tulevaisuudessakin.

Hyödyt REMS-järjestelmä on joustavasti sovellettavissa kunkin organisaation omiin tarpeisiin

csc.fi

Nitor kehittää yhdessä Tieteen tietotekniikan keskuksen (CSC) kanssa tieteellisten aineistojen hallintaan tarkoitettua REMS-järjestelmää. Järjestelmän avulla erilaisiin aineistoihin voidaan hakea ja jakaa käyttövaltuuksia eri organisaatioissa toimiville tutkijoille. Ratkaisu on toteutettu ketterästi Clojure-kielellä ja julkaistu avoimena lähdekoodina.

REMS-järjestelmä auttaa tutkijoita tieteellisten aineistojen
Tieteen tietotekniikan keskus eli CSC on suomalainen valtion ja korkeakoulujen omistama tietotekniikan osaamiskeskus. Nitor on yhdessä CSC:n kanssa uudistamassa keskuksen REMS-järjestelmää, jota hyödyntävät esimerkiksi Findata sekä THL:n biopankki. 

REMS eli Resource Entitlement Management System -järjestelmä on toteutettu osana kansainvälistä ELIXIR-hanketta, joka kokoaa yhteen euroopanlaajuisesti bio- ja terveystieteiden aineistoja ja työkaluja. Hankkeen tavoitteena on luoda tutkimusinfrastruktuuri, jonka avulla tutkijat voivat helpommin löytää ja analysoida aineistoja sekä jakaa tietotaitoaan toteuttaen alan parhaita käytäntöjä.

REMS on turvallinen tapa jakaa tutkimustietoa silloin, kun sitä ei voi julkisesti tehdä esimerkiksi tiedon sensitiivisyyden vuoksi. REMS mahdollistaa eri organisaatioiden tutkijoille pääsyn aineistoihin, ja hakuprosessi voidaan hoitaa kokonaan palvelun sisällä.

Julkinen järjestelmä julkaistiin avoimena lähdekoodina
Clojure-ohjelmointikielellä rakennettu REMS on avoimen lähdekoodin  julkinen järjestelmä, jossa päätoteuttajina toimivat CSC ja Nitor.

3
järjestelmän avulla dataan pääsyä hallitsevaa toimijaa
1
petatavu tieteellisiä ainestoja
127
tietoaineistoa tarjolla

42 000 Clojure-rivin päälle rakennettu kestävä järjestelmä

REMS toimii integraatiopisteenä muihin luvitus- ja käsittelyjärjestelmiin
REMS sisältää käyttöliittymän, jolla käyttölupahakemus kiertää hakijalta hyväksyttäväksi aineiston omistajalle tai hänen edustajalleen. Lisäksi se tarjoaa laajan rajapinnan, joka jakaa hakemusten ja myönnettyjen käyttöoikeuksien tiedot sekä toimii integraatiopisteenä muihin luvitus- tai käsittelyjärjestelmiin. REMS on joustavasti sovellettavissa vastaamaan sitä käyttävän organisaation tarpeisiin. 

Funktionaalinen koodi pitää koodimassan kurissa
Järjestelmän laajuudesta huolimatta puhdas funktionaalinen koodi ja Clojure-kielen ilmaisuvoima pitävät koodimassan kurissa. Lisäksi automaattisten testien hyvä kattavuus mahdollistaa jatkuvan julkaisun.

Command and Query Responsibility Segregation (CQRS) sekä Event Sourcing -suunnitteluperiaatteitten mukaisesti rakennettu ohjelmisto mahdollistaa sen, että tärkeä bisneslogiikka on puhdasta funtionaalista koodia. Komentojen (commands) muuttaminen tapahtumiksi (events) ja tapahtumien yhdistäminen ovat tästä hyviä esimerkkejä. Puhtaana koodina toteutettua bisneslogiikka voidaan testata kattavasti ja sitä voidaan tarvittaessa myös muuttaa helposti. Lisäksi funktionaalinen lähestymistapa auttaa REST-rajapinnan ja käyttöliittymän automaattisessa tuottamisessa komentojen määritelmien perusteella.

On hienoa päästä näyttämään esimerkkiä laajasta Clojurella tehdystä järjestelmästä sekä auttaa muita kehittämällä avoimen lähdekoodin komponentteja. Monesta muusta modernista kielestä poiketen Clojure on rakennettu alunperin raskaaseen tuotantokäyttöön ja soveltuu tämän kaltaisen systeemin ohjelmointiin hyvin.

Markku Rontu, Senior Software Architect, Nitor

Järjestelmä soveltuu moniin eri tarpeisiin

CSC:n ja Nitorin asiantuntijat rakensivat yhdessä järjestelmän, joka muokkautuu eri käyttäjäorganisaatioiden tarpeisiin. Uudet käyttäjäorganisaatiot tuovat aina uusia tarpeita järjestelmälle. Ensimmäisenä REMSin otti käyttöön Kielipankki, jossa järjestelmä on ollut tuotannossa vuodesta 2018. Kielipankin ohella REMSiä hyödyntää tällä hetkellä Tietolupaviranomainen Findata ja THL Biopankki. 

REMS on omiaan yksittäisille tutkijoille, jotka haluavat saada pääsyn tiettyyn resurssiin sekä palveluntarjoajille, joille on tärkeää voida hallinoida omien materiaaliensa pääsyoikeuksia. Kustomoitava, dynaaminen hakemusprosessi ja perustoimintojen automatiikka helpottavat hallinointia valtavasti. REMS on turvallinen ja tehokas tapa jakaa tutkimustietoa silloin, kun sitä ei voi julkisesti tehdä esimerkiksi tiedon sensitiivisyyden vuoksi.

9703
koodimuutosta 19 kehittäjältä
3426
testitapausta
))))]]))))]))
pisin jono sulkevia sulkeita

Ketterä kehitys mahdollistaa tiiviin yhteistyön myös etänä

Proof-of-concept -toteutuksella alkuun
Uuden järjestelmän soveltuvuus validoitiin proof-of-concept -toteutuksella, jonka päälle on rakennettu pala kerrallaan uusia ominaisuuksia käyttäjäorganisaatioiden tarpeiden mukaan. 

Projektin tärkeät arkkitehtuuripäätökset on dokumentoitu lähdekoodiin mukana GitHubiin Architecture Decision Records -periaatteiden mukaisesti. Tämä olisi mahdollinen työtapa myös normaalissa projektissa, mutta etätyötä tehtäessä sen rooli on valtava. Arkkitehtuuripäätösten kirjaaminen ylös tukee ohjelmiston pitkäjänteistä kehittämistä, jossa tehtyjä päätöksiä pitää pystyä muuttamaan silloin, kun niiden perusteet eivät enää päde.

Ketterää kehitystä olosuhteista riippumatta
Projektin onnistuminen on lähes aina toimivan tiimityön tulosta. Nitor on toiminut REMS-järjestelmän toimittajana jo vuodesta 2017. Kehitystiimi on alusta lähtien toiminut etätiiminä CSC-kehittäjien kanssa, mikä on helpottanut yleistä siirtymistä etätyöhön. Avoimen lähdekoodin projekti tarjoaa edellytykset etätyöskentelylle.

Juha Larjomaa

Rakenna kestävää digitaalista kehitystä yrityksen kaikilla alueilla

Näe vaihtoehdot, mukaudu ja tartu tilaisuuksiin. Tee kanssamme kestävää digitaalista kehitystä.