JHS 166 Julkisen hallinnon IT-hankintojen yleiset sopimusehdot

Liite 10. Tukimateriaalia: Avoimista rajapinnoista tietojärjestelmä- tai palveluhankinnoissa

  • Versio: 2.1
  • Julkaistu: 15.5.2018
  • Voimassaoloaika: toistaiseksi

JHS 166 -suosituksen yhtenä tavoitteena on huomioida hankintaehdoissa avoimuuden eri näkökulmat. Näitä näkökulmia on tunnistettu kolme:

  1. avoimen lähdekoodin hyödyntäminen ja julkaiseminen muiden käyttöön julkisten hankintojen yhteydessä
  2. toimittajalukkojen estäminen (datan siirrettävyys järjestelmää vaihdettaessa, erillisillä ihmisavusteisilla exportauksilla yms.)
  3. avoimien koneellisten rajapintojen tukeminen (vrt. kohta 2, jossa data siirtyy ihmisavusteisesti ja tyypillisesti paljon harvemmin esim. kerran vuodessa tai järjestelmää vaihdettaessa)

Tässä käsitellään vaihtoehtoa 3, eli avoimien rajapintojen tukemista JIT-ehdoissa.

JHS 166 -suosituksen sovellushankintoja koskevissa erityisehdoissa on sopimusehto, että rajapintojen tulee olla avattavissa siten kuin sopimuksessa on tarkemmin sovittu.  Tämä koskee erityisehtoja Sovellukset avoin lähdekoodi, Sovellukset suljettu lähdekoodi ja Ketterät menetelmät. Tämän tukimateriaalin tarkoitus on helpottaa vaatimusten kuvaamista tarkemmin tarjouspyynnössä ja sopimuksessa.

A. Avoimen rajapinnan määritelmä julkisissa hankinnoissa

Avoimet rajapinnat tietojärjestelmähankinnoissa

Tietojärjestelmähankinnoissa tilaajan on pääsääntöisesti syytä tarkemmin määritellyllä tavalla vaatia velvoitteen täyttämiseksi toimituksen alaiselta tietojärjestelmältä tai tietojärjestelmäpalvelulta avoimia rajapintoja. Vaatimus voi liittyä myös konsultointipalveluihin, mikäli niillä tuotetaan tai muutetaan tietojärjestelmää.

Asiakirjan hyödyntäminen julkisissa hankinnoissa

Tässä kuvattu vaatimus avoimesta rajapinnasta on tarkoitettu soveltuvan tietojärjestelmähankintaan ja siihen liittyvään käyttöpalveluhankintaan (hosting) sekä tietojärjestelmäpalveluhankintaan. Vaatimus avoimesta rajapinnasta tietojärjestelmähankinnoissa aiheuttaa useimmiten lisäkustannuksia, joten vaatimuksen sisältö on hankinnassa harkittava ja se voidaan myös jättää pois.

Julkisessa hankinnassa hankintayksikkö asettaa vaatimukset, joiden perusteella tehdään tietojärjestelmän tai palvelun hankinta. Tätä helpottamaan on tässä asiakirjassa kuvattu vaatimus avoimesta rajapinnasta. Tämä asiakirja ei kuvaa rajapinnan tapauskohtaisia vaatimuksia vaan ne yleiset vaatimukset, jotka johtuvat siitä, että vaaditaan nimenomaan avointa rajapintaa.

Mikäli hankkija haluaa vaatia avointa rajapintaa, voi tämä sisällyttää tässä kuvatun vaatimuksen hankinnassaan edellyttämiin vaatimuksiin. Tämä vaatimus ei toimi yksin vaan edellyttää rajapinnan tapauskohtaisten vaatimusten esittämistä. Avoimuutta koskevat vaatimukset tulee myös sovittaa tapauskohtaisesti jokaiseen hankintaan.

Rajapinta

Ohjelmointirajapinta (Application programming interface, API) määrittelee, miten ohjelmisto tarjoaa tietoja tai palveluita sovelluksille tai muille tietojärjestelmille.

Rajapinta voi olla pelkkä datarajapinta jonka kautta saa luettua palvelun sisältämän datan toisiin järjestelmiin, tai se voi olla toiminnallinen rajapinta, joka tarjoaa myös laskenta-algoritmeja tai mahdollisuuden muuttaa järjestelmän tietoja rajapinnan kautta. Jos järjestelmässä on useita erilaisia rajapintoja, on syytä täsmentää, mitkä niistä ovat avoimia. Mikäli toisin ei ole tilaaja vaatimuksissaan esittänyt, tarkoittavat vaatimukset datarajapintaa ja lukuoikeuksia (read).

Esimerkki datarajapinnasta on kansalaisaloite.fi:n rajapinta, joka kertoo kansalaisaloitteiden tietoja. Esimerkkejä toiminnallisista rajapinnoista ovat muun muassa Helsingin seudun liikenteen reittioppaan rajapinta, joka tarjoaa reititysalgoritmin tai kansainvälinen Open311-rajapintastandardi, jota tukeviin kaupunkien palautejärjestelmiin voi tehdä vikailmoituksia.

Rajapinnan avaaminen on tilaajan päätös

Kun tilaaja vaatii toimittajalta rajapintaa, joka on avattavissa, seurauksena on tilaajan hallitsema rajapinta. Tämä tarkoittaa rajapintaa, jota järjestelmän tilaajalla on oikeus käyttää ja levittää haluamallaan tavalla. Tällöin tilaaja voi halutessaan avata rajapinnan järjestelmäntoimittajasta riippumatta, mutta mikäli näin ei tehdä, kyse ei ole avoimesta rajapinnasta. Mikäli tilaaja ei avaa rajapintaa, rajapinta ei ole ulkopuolisille avoin, jolloin kyse ei ole yleisesti ottaen avoimesta rajapinnasta.

Tämän asiakirjan on tarkoitus helpottaa tilaajaa, kun se haluaa vaatia toimittajalta avointa rajapintaa. Vaatimuksen ja sitä seuranneen onnistuneen toimituksen jälkeen tilaajalla on mahdollisuus halutessaan avata rajapinta joko kokonaan tai osittain, tai jättää rajapinta avaamatta.

Rajapinnan avoimuus v. datan avoimuus

Avoimen rajapinnan kautta saatavan datan ei tarvitse olla avointa dataa. Rajapinta voi olla avoin, vaikka tuotantojärjestelmä olisi kokonaan irti internetistä ja pääsy siihen vain hyvin rajatulla joukolla. Mikäli rajapinta on avoin, mutta pääsy datasisältöön on rajoitettu, tulee toimittajan toimittaa avoimesti verkossa käytettävissä oleva testiympäristö.

Jos järjestelmään on tarjolla avoin rajapinta, se ei tarkoita, että tuotantojärjestelmään tai sen sisältämään tietoon pääsisi kuka vain käsiksi. Esimerkiksi potilastietojärjestelmään voi olla avoin rajapinta, mutta potilastiedot eivät ole avoimia. Avoimen rajapinnan kautta voidaan myös tarjota tiettyä henkilöä koskevia tietoja vain tämän omalla suostumuksella (my data). Potilastietojärjestelmään tarjottavan avoimen rajapinnan testaamista varten toimittajan tulee toimittaa testiaineisto, joka on avointa ja testaustarkoitusta ajatellen sisällöltään autenttista dataa vastaavaa.

B. Vaatimus avoimesta rajapinnasta

Yleiset vaatimukset

Toimittajan toimittaman tietojärjestelmän/palvelun rajapinnan tulee olla avoin siten kuin tässä määritellään. Nämä vaatimukset eivät ota kantaa palvelutasoihin tai palvelun saatavuuteen, joista noudatetaan mitä niistä muualla on sovittu.

  • Tilaajan tulee hankintavaiheessa edellyttää, että avointa rajapintaa voi käyttää vapaasti ja ilman sen käyttöön kohdistuvia, yksinoikeuksiin perustuvia maksuja.
  • Dokumentaatio siitä, miten rajapintaa käytetään, tulee toimittaa tilaajalle ja tilaaja testaa rajapinnan hyväksymistestauksessa.
  • Tilaajan pyynnöstä dokumentaatio julkaistaan. Dokumentaation tulee sisältää riittävä kuvaus järjestelmän sisältämistä tiedoista ja tarvittaessa esimerkkikyselyjä, jotta rajapinnan käyttöönotto ja hyödyntäminen on vaivatonta. Dokumentaatio tulee voida asettaa toimittajan tai kolmannen immateriaalioikeuden rajoittamatta julkisesti saataville ilman mitään dokumentaation julkaisijalle tai sen käyttäjälle aiheutuvia maksuja oikeudenhaltijalle.
  • Tilaajan tulee hankintavaiheessa esittää vaatimukset siitä, että valmiin rajapinnan tulee olla sen hyödyntäjien testattavissa. Tilaajan pitää tapauskohtaisesti harkita, mikä testaustapa ja testiaineisto on mahdollinen ja esittää tätä koskevat vaatimukset.
  • Testattavuuden voi toteuttaa esimerkiksi seuraavilla tavoilla:
  • käytettävissä on testidataa ja järjestelmä, jota vastaan käyttöä voi testata tai
  • avoin pääsy testijärjestelmään, jossa on realistista tai autenttista dataa, tai
  • testijärjestelmä ja testidata ovat ladattavissa vapaasti omaan käyttöön itse asennettavaksi tai
  • mikäli rajapinnan kautta saatava data ei ole avointa, tulee toimittajan toimittaa avoimesti verkossa käytettävissä oleva testiympäristö, ml. avointa testiaineistoa.
  • Mikäli tilaaja ei ole vaatimuksissaan toisin esittänyt, pääsyn rajapintaan tulee olla mahdollinen kenelle tahansa eli pääsynhallintaa ei vaadita. Rajapinta on mahdollista ottaa käyttöön ilman ylläpitäjän tai järjestelmätoimittajan toimia myös virka-ajan ulkopuolella. Mahdolliset rekisteröitymiset ovat automaattisia.
  • Järjestelmän/palvelun ei tarvitse tukea maksullisuutta, mikäli tilaaja ei ole vaatimuksissaan toisin esittänyt.
  • Rajapinnalla saatavan datan käyttöoikeus määräytyy datan käyttöoikeuksien perusteella, eikä rajapintaa käyttämällä toimittajalla, tai sen kanssa samaan konserniin kuuluvilla, ole mitään kielto-oikeutta rajapinnan välittämään dataan tai sen uudelleen käyttöön millään tavalla.
  • Oikeudenhaltijoilla ei ole mitään kielto-oikeutta rajapinnan käyttöön tilaajan tai kolmansien toimesta riippumatta siitä, millä tavalla rajapintaa käytetään. Vastaavasti oikeudenhaltijoilla ei ole mitään oikeutta periä maksuja, esim. rojalteja, rajapinnan käytöstä tilaajalta tai kolmansilta riippumatta siitä, millä tavalla rajapintaa käytetään.