Tässä blogissa tuon esille näkökulmia rajapintojen avoimuuteen niiden keskustelujen pohjalta, joita olemme avoimen rajapinnan määritelmää työstävässä OKFI ry:n, COSS ry:m ja Teknologiateollisuus ry:n työryhmässä kevään 2020 pohtineet. Tämä kirjoitus ei edusta työryhmän mielipidettä sellaisenaan. Sen tarkoitus on kuitenkin avata näkökulmia, joista olemme keskustelleet. Tavoitteena on kiteyttää ja jatkaa aiheesta sekä kansallisesti että kansainvälisesti virinnyttä keskustelua.

Ajatuksia rajapintojen avoimuudesta työryhmältä

Näihin kyseisen kuvan muodostamisessa käytyihin loppukevään keskusteluihin osallistuivat työryhmästä OKFIn edustajana Mika Honkanen, COSSin edustajana Marjukka Niinioja ja työryhmän vapaaehtoisina osallistuneet rajapintojen kanssa paljon työskentelevät Arvi Leino ja Tuukka Hastrup. Myös muut osallistujat ovat vaikuttaneet työryhmän työskentelyyn vahvasti, erityisesti Teknologiateollisuuden edustajana ryhmässä toimiva Antti ”Jogi” Poikola sekä Martin von Willebrand.

Avoimelle rajapinnalle yksiselitteisen määritelmän laatiminen on vaativaa, koska keskustelu kääntyy nopeasti arvokeskusteluksi ja tavoitteiden asettamiseksi ”sanakirjamääritelmän” laatimisen sijaan. Alan englanninkielisessä terminologiassa sanalla Open API on ollut perinteisesti hyvin erilainen tausta ja tarkoitus kuin esimerkiksi avoimella datalla (open data) tai avoimella lähdekoodilla (open source) -käsitteillä.

Sitä saat mitä tilaat. Jos siis haluat mahdollisimman avoimen rajapinnan, jota käyttäisiä laaja hyödyntäjäjoukko ja joka tuottaisi vaikuttavan lopputuloksen, täytyy rajapinnan tarjoamiseen ja hankintaan kiinnittää huomiota. Erityisesti jos tilaat kehitystyötä, valmisohjelmiston tai teknologiaa, joka sisältää rajapintoja. Sopimusehdot ovat siis keskeisessä asemassa rajapintojen avoimuudelle, mutta nykyisissä laajasti käytössä olevissa julkisen ja yksityisen sektorin mallisopimusehdoissa rajapintoja käsitellään varsin suppeasti.

Julkishallinnon, avoimuutta edistävien yhteisöjen ja yritysten näkökulmat saatetaan välillä kokea ristiriitaisiksi (mm. maksullisuus ja maksuttomuus, toimittajalukot vai asiakashankinnan kustannukset). Löysimme kuitenkin etenkin loppukevään keskusteluissa yhteistä säveltä, kun lähdimme työstämään rajapinnan avoimuutta suhteessa siihen, mihin tavoitteisiin avoimuudella pyritään ja mikä silloin on keskeistä avoimuudelle.

Työryhmässä on käyty paljon keskustelua siitä, onko olemassa yksiselitteisesti avoimen rajapinnan määritelmää, vai pitääkö mieluummin määritellä mistä rajapintojen avoimuus voi muodostua. Havaitsimme eri esimerkkitapausten avulla, että asiaan liittyi runsaasti eri näkökulmia. Jouduimme yhä uudestaan palaamaan siihen, miksi avoin data, avoin lähdekoodi ja avoin rajapinta ovat toisaalta erittäin samankaltaisia ja toisaalta hyvin erilaisia.

Tässä blogissa on yritetty tavoittaa käytyjen keskustelujen ja rajapintojen avoimuuden monitahoisuus tiiviisti. Lisäksi olen sisällyttänyt mukaan joitakin esimerkkejä ja pohdintoja, joita työstimme Osaangon tiimin toimiessa keväällä 2020 Business Finlandin Keino-hankkeessa, sekä TravelDataHub-hankkeen legal design-kehityksessä asiantuntijana.

Lopussa on avattu joitakin peruskäsitteitä, joita käsitellään laajemmin kirjassa API-talous 101 (Moilanen, Niinioja, Seppänen, Honkanen, 2018, Alma Talent), samoin kuin koko avoimen rajapinnan problematiikaa sekä siihen liittyviä case-tutkimuksia.

Mikä on rajapinta?

Tietoverkkojen (erityisesti internetin) yli käytettävien ohjelmointirajapintojen (Application Programming Interface, API) ja niiden kautta välitettävien resurssien tulee tarjota selkeä hyöty sekä tarjoajalle itselleen että arvolupaus rajapinnan hyödyntäjille.

Miksi avoin rajapinta?

Yleisesti rajapintojen avoimuudella tavoitellaan

  • kustannustehokkuutta,
  • kehityksen ja muutosten nopeutta,
  • helppoutta ja erityisesti verkostovaikutuksen syntymistä, sekä
  • samoihin tavoitteisiin tähtäävän ekosysteemin muodostumista,
  • markkinaosuuden kasvattamista (yritykset)

Rajapinnan avoimuudella tavoitellaan mahdollisimman laajaa hyödyntäjäjoukkoa

Laajaan käyttöön voidaan päästä useilla tavoilla, mm. standardoimalla rajapinta, joka saattaa olla hidas tie. Toinen vaihtoehto on luoda ns. de facto-standardi, eli huolehtia siitä, että laaja ja kasvava hyödyntäjäjoukko ottaa rajapinnan käyttöönsä.

Vain toteuttamalla riittävän hyvin ja virheettömästi toimiva käyttötarkoitukseen soveltuva rajapinta, sen käytön voidaan olettaa laajenevan. Lisäksi hyödyntäjäjoukon laajuuteen voi vaikuttaa mm. näillä keinoin:

  1. avoimella kehittäjäryhmällä (avoin menettely kehitysideoiden, virheiden ja puutteiden raportointiin, tukipyyntöihin, sekä mahdollisimman avoin roadmap ja vaikutusmahdollisuus päätöksentekoon kehityksestä),
  2. riittävällä palvelutasolla ja -lupauksella ja
  3. yhteisellä rajapinnan teknisellä toteutuksella
  4. julkisesti saatavissa olevalla standardeihin pohjautuvalla rajapintakuvauksella ja muulla dokumentaatiolla, sekä
  5. kattavalla markkinoinnilla ja viestinnällä, jotta tieto rajapinnasta tavoittaa potentiaaliset hyödyntäjät

Jotta rajapinnan käyttöönotto olisi mahdollimman helppoa tulisi rajapinnan dokumentaation olla julkaistu niin että sen näkeminen tai hyödynnettävyyden arviointi ei vielä sopimusta tai sopimusehtojen hyväksymistä tai käyttöoikeuksien pyytämistä.

Jos kaikki halukkaat ulkopuoliset tahot saavat rajapinnan käyttöönsä, käytetään usein termiä julkinen rajapinta. Jos ainoastaan valitut tarjoavan organisaation ulkopuoliset tahot, kumppanit, saavat käyttää rajapintaa, puhutaan kumppanirajapinnasta. Näiden lisäksi organisaation eri osat voivat tarjota rajapintoja itselleen ja toisilleen, jolloin kyse on sisäisistä rajapinnoista. Useissa lähteissä avoimiksi rajapinnoiksi, englanninkielellä open API lasketaan vähintään julkiset rajapinnat, osassa myös kumppani-rajapinnat. (API-talous 101, 2018).

Työryhmässä aiheutti paljon keskustelua se, riittääkö yhdeksi rajapinnan avoimuuden määrittelemisen keskeiseksi kriteeriksi se, kenelle rajapinta on tarjolla ja voidaanko kumppanirajapinnoista käyttää termiä avoin rajapinta.

Avoimuuden lisääminen avoimilla lisensseillä ja standardeilla

Rajapinnan avoimuutta voidaan lisätä sillä, että rajapinnan dokumentaatio kokonaan (ml. ohjeet ja toiminnallisuuden kuvaus) tai ainakin sen sisältämät tietomallit on avoimesti lisensoitu ja perustuvat standardeihin tietomalleihin.

Avointen lisenssien ja standardien toteutusten käyttö on erityisen tärkeää, jos käytön laajeneminen käytännössä edellyttää myös sitä, että eri toimijat kopioivat rajapinnan omien tietojärjestelmiensä ja teknologioiden päälle. On kuitenkin huomattava, että pelkkä rajapinnan kuvauksen tai tietomallin kopioiminen ei riitä takaamaan, että kopioitu rajapinta toimisi samalla tavoin tai pysyisi samassa kehityssyklissä kuin alkuperäinen. Siksi yhteinen tai yhtenäinen tekninen toteutus, sekä avoin kehittäjäryhmä saattava olla tärkeämpiä kuin avoin lisensointi yksinään.

Avoin lisensointi saattaa edistää kehittäjäryhmän muodostumista ja kiinnostusta ja jos koko järjestelmän lähdekoodi on lisensoitu avoimella lisenssillä, saattavat rajapintaan liittyvät materiaalit sisältyä tähän lisenssiin. Jos ohjelmisto tai muu rajapinnan toteuttava teknologia on kopioitu, eli kukin hyödyntävä taho ajaa sitä omassa tietoverkossaan, omilla laitteillaan tai omassa hallinnassaan olevassa pilvessä ja hyödyntää muutenkin omia resurssejaan voidaan datan käyttöehdot erottaa kokonaan rajapinnan käyttöehdoista.

Onko avoin rajapinta aina myös maksuton?

Avoin data ja avoin lähdekoodi mielletään usein maksuttomiksi. Osa määritelmistä mahdollistaa myös kohtuullisen maksun perimisen, jotta datan tai lähdekoodin avaaminen olisi mahdollista. Olennaista on kuitenkin erottaa data ja lähdekoodi itse rajapinnasta.

Ilmainen tai edullinen rajapinta on varmasti suositumpi ja laajemmin käytetty kuin maksullinen rajapinta, mutta asia vaatii tarkempaa tarkastelua käyttötapauksien avulla.

Rajapintojen maksuttomuus yritysten näkökulmasta

Rajapinnan käyttö voi olla ilmaista ja avoimesti tarjottavissa rajapinnoissa usein näin onkin. Jotta kokonaisuus olisi täysin maksutonta, täytyy huomioida myös rajapinnan kautta välitettävän datan ja datan määrästä ja siirtonopeudesta usein riippuvan tietoliikenneyhteyden kustannukset ja maksullisuus. Lisäksi kokonaisuuteen vaikuttaa rajapinnan tarjoavan teknologian, esimerkiksi älykkään valaisimen tai asiakastietojärjestelmän hankinta- tai käyttömaksut.

Rajapinnan tarjoamisesta aiheutuvat kustannukset voidaan nähdä investointina, markkinointikustannuksena tai esimerkiksi (asiakas)palvelun tarjoamisesta aiheutuvina kustannuksina. Eräässä yrityksessä aikaisemmat räätälöidyt integraatiot veivät vähintään 40 tuntia per integraatio ja niiden ylläpito ja tukeminen oli työlästä ja vaati erikoisosaamista.
Vaikka työ laskutettiin asiakkailta, uusien työntekijöiden perehdyttäminen ja käyttäjien tukeminen veivät niin paljon aikaa, ettei integraatioiden ylläpitoa saatu kannattavaksi tai toteutusten hinnat olisivat kohonneet liian suuriksi asiakkaille. Integraatiot olivat kuitenkin tärkeä syy siihen, miksi asiakkaat ostivat juuri tältä yritykseltä eikä kilpailijoilta.
Rajapintojen avulla integraatiotyö voitiin antaa asiakkaiden itsensä tehtäväksi ja yritys kehitti ainoastaan tuotteistettuja vakioituja rajapintoja, jotka tarjottiin samanlaisina kaikille asiakkaille. Yrityksen työmäärä väheni 2 tuntiin aiemmasta 40:stä tunnista per integraatio ja kokonaisia integraatioita voitiin rajapintojen päälle toteutettuna tuotteistaa ja tarjota kiinteähintaisina lisäpalveluina.

Yritysten tarjoamat maksuttomat rajapinnat perustuvat usein siihen, että rajapinnan käytöstä ei oteta maksua, mutta rajapinnan tarjoamasta resurssista kyllä. Näitä resursseja voivat olla esimerkiksi valaisin, kodinohjausjärjestelmä, asiakkuudenhallintajärjestelmä, paperikone, asiakastiedot tai koneoppimisen avulla datasta jalostetut tuotesuosittelut. Rajapintojen avoimuuteen vaikuttaa siis keskeisesti yrityksen liiketoimintamalli, jota API-talous saattaa muuttaa ratkaisevasti.

Asiakkaalta voidaan esimerkiksi periä sama maksu, käytti hän resurssia käyttöliittymän tai rajapinnan kautta. Joissakin tapauksissa rajapinnan hyödyntäjät ovat täysin eri ryhmä kuin järjestelmän peruskäyttäjät (esimerkiksi sisäiseen käyttöön hankittu toiminnanohjausjärjestelmä, josta julkaistaan vaikkapa asiakas- tai tuotetietoja tai tilausrajapinta verkkokauppaa varten asiakkaille, jotka eivät toiminnanohjausjärjestelmää pääse käyttämään).

Kumppaneille tai markkinointitarkoituksiin saatetaan tarjota rajapintaa myös ilman vaatimusta asiakkuudesta ja siihen liittyvästä maksusta. Joskus yrityksiä velvoitetaan esimerkiksi lailla tarjoamaan täysin avoimia rajapintoja jopa kilpaileville yrityksille (esimerkiksi Suomessa Laki liikenteen palveluista).

Rajapintojen maksuttomuus julkishallinnon näkökulmasta

Julkishallinnon tai yleishyödyllisten yhteisöjen tarjoamat rajapinnat saattavat olla maksuttomia tai maksullisia. Esimerkiksi julkisuuslaissa tai erityislainsäädännössä säädetty viranomaistehtävä ja siihen liittyvä rajapinta on perusteltua tarjota maksuttomana.

Maksuttomien rajapintojen kustannukset katetaan budjettivaroin ja sen tarjoamisella pyritään saavuttamaan laajempi kansantaloudellinen hyöty. Kaikkia julkishallinnon palveluita ei kuitenkaan voida tarjota ilmaiseksi, jottei vääristetä markkinoita kilpailemalla yritysten kanssa. Siksi esim. Suomessa on valtionhallinnon tarjoamia palveluita säätelevä Valtion maksuperustelaki, joka määrittelee mistä suoritteista maksua saa ja pitää periä, jollei asiaa muualla lainsäädännössä ole määritelty. Voi siis olla, että jos virasto haluaa tarjota rajapinnan maksuttomasti, joudutaan myös lainsäädäntöä muuttamaan tai ainakin tarkistamaan sen osalta voiko näin tehdä.

Maksuton viranomaisen tarjoama palvelu voi sisältää maksuttoman rajapinnan, mutta se ei silti tarkoita, että rajapinta olisi perusteltua avata kaikille halukkaille tai että sen kuvaus tai välittämä data olisi avoimesti lisensoitua. Maksuttomasti tarjottu rajapinta vaatii myös kannanoton siihen, kuinka suurta käyttömäärää voidaan maksuttomasti tarjota. Usein rajapinnan suosion ja käyttömäärien kasvaessa tietoliikenne- tai palvelinkapasiteetin kasvattaminen aiheuttaa myös enemmän kustannuksia. Jos kapasiteettia ei kasvateta, rajapinnasta tulee käytännössä käyttökelvoton tarkoitukseensa, eikä sen käyttö laajene. Avoimuudella tavoitellut hyödyt eivät toteudu.

Julkishallinnossa usein hankerahoituksella avatut rajapinnat, erityisesti avointa dataa tarjoavat rajapinnat, kohtaavat tämän haasteen. Lisäksi niiden elinkaari jää liian lyhyeksi hankerahojen loppuessa, jotta potentiaaliset hyödyntäjät uskaltaisivat sitoutua niiden jatkuvaan käyttöön puhumattakaan, että käyttäjämäärä laajentuisi.

Onko avoimen rajapinnan tarjoama tai vastaanottama data aina avoimesti lisensoitua?

Ei läheskään aina, mutta mahdollisuuksia siihen olisi useammin kuin ehkä ajatellaan. Esimerkiksi yritysten verohallinnolle rajapintojen kautta ilmoittamat verotustiedot eivät sellaisenaan ole avointa dataa, vaikka rajapinta olisikin avoimesti kaikkien halukkaiden yritysten käytettävissä. Osa datasta voidaan tosin julkaista esimerkiksi julkisuuslain tai muun verotustietoihin liittyvän lainsäädännön perusteella avoimena datana.

Mikä on hyvä syy olla tarjoamatta täysin avointa rajapintaa?

Esimerkkinä julkisesta palvelusta, jossa rajapinnat ja data eivät ole täysin avoimia, vaikka niiden käyttö halutaankin laajaksi, on mm. Business Finlandin 2020 vuoden aikana kehittämä TravelDataHub palvelu. Rajapintakuvaus tullaan julkaisemaan julkisesti saataville näillä näkymin lisenssillä, joka ei salli rajapinnan kopiointia ainakaan kaupallisiin tarkoituksiin. Palvelulla halutaan taata suomalaisen matkailun keskitetty laadukkaaksi jalostettu tuotedata valikoituihin kansainvälisiin matkailukanaviin. Oman palveluun tallennetun datansa omistaa kukin matkailuyritys, sitä jalostavat alueelliset matkailutoimistot ja sitä voivat käyttää rajapinnan kautta hyväksytyt laadukkaaksi katsotut markkinointikanavat. Joihinkin kanaviin julkaistaessa matkailuyrityksen tuotedatasta tulee kuitenkin ainakin osittain avointa dataa koska kanavan käyttöehdot edellyttävät sitä. Tämä on matkailuyrityksen itsensä hallittavissa, mutta perusteluna näissä kanavissa on mm. se, että esimerkiksi ulkoilureittejä nähtävyyksineen halutaan tarjota navigointia varten laajasti kartta-aineistoja hyödyntäville eri toimijoille. Tällaiset kanavat voivat käyttöehtojensa puitteissa julkaista saamansa datan avoimella lisenssillä avoimien rajapintojen kautta.

Erityisesti julkisin varoin rakennettavien alustatalouden palveluiden osalta on muistettava, että toimittajaloukku voi syntyä alustan ohjelmistokehityksen ja ylläpidon osalta, vaikka alustan käyttöön tarvittavat rajapinnat olisivat avoimia. Saattaa olla perusteltua kehittää jopa avoimen lähdekoodin ratkaisu, jos haluaa varmistaa, että jatkokehityksen ja ylläpidon voi ostaa jatkossa eri toimittajilta tai sitouttaa siihen laajan avoimen kehittäjäyhteisön.

Rajapinnat sisältävä avoimen lähdekoodin ratkaisu ilman yhteistä toteutusta ja hyvin johdettua avointa kehittäjäyhteisöä ei kuitenkaan takaa esimerkiksi kustannustehokkuuden tai kehitysnopeuden toteutumista yksinään, esimerkiksi eri kaupunkien lähtiessä kehittämään samasta avoimen lähdekoodin ratkaisusta täysin omia eriytyneitä toteutuksiaan.

Myös käyttäjien omaan dataan sisältyviä tietoja ei julkaista yleensä avoimella lisenssillä, etenkin jos ne sisältävät henkilötietoja. Muita esimerkkejä ovat mm. huoltovarmuuteen, kansalliseen turvallisuuteen tai yrityssalaisuuksiin liittyvät tiedot.

Mikä on ekosysteemi?

Ekosysteemissä kaikilla toimijoilla on yhteinen tavoite. Muuten kyseessä on löyhempi verkosto. Ekosysteemissä yksittäisille rajapinnoille tavoitellaan useita käyttäjiä, jotta ekosysteemin laajemmat tavoitteet toteutuvat. Ekosysteemi voi muodostua julkishallinnon toimijoista, yrityksistä, voittoa tavoittelemattomista yhteisöistä tai kansalaisista/kuluttajista. Samassa ekosysteemissä voi olla myös näitä kaikkia toimijoita eri rooleissa. Toimijat voivat tarjota yhteisille asiakkailleen kattavan palvelutarjonnan ja asiakaspolun, jossa ekosysteemin eri resurssit tarjotaan yhtenäisesti rajapintojen avulla.

Kuka on rajapinnan tarjoaja?

Rajapinnan hyödyntäjiä ovat kaikki ne tahot, jotka käyttävät (tai voisivat käyttää) kyseistä rajapintaa teknisesti ja toiminnallisesti ja joille kyseisen rajapinnan ja sen tarjoamien resurssien halutaan tuottavan lisäarvoa.

Mitä hyötyä on rajapinnan tarjoamisesta?

Hyödyt tarjoajalle ovat usein innovaatioiden mahdollistuminen, helppo viestiä tarjolla olevat resurssit ja arvolupaus hyödyntäjille, helppo tarjota hyödyntäjille lisäarvoa datan, palveluiden ja tuotteiden avulla Rajapintoja hyödyntävän järjestelmän tai kokonaisratkaisun elinkaari on usein pidempi, jolloin investoinnit kehitykseen ovat kannattavampia. Toisaalta käyttökokemukseen tai toimintamalleihin liittyvät muutokset voidaan toteuttaa nopeammin.

Rajapinnan tarjoajan näkökulmasta hyödyntäjien rajapinnan avulla kehittämät innovaatiot ovat usein tapa saada ja testata tuotekehitysideoita edullisesti, ilman omaa merkittävää omaa panostusta. Tarjoajalla saattaa myös olla

Joskus tarjoaja joutuu ensin hankkimaan rajapinnan tai rajapinnan tarjoavan tietojärjestelmän tai teknologian valmisohjelmistona tai -tuotteena tai ohjelmisto- tai teknologiakehityksenä. Rajapinnan tarjoamisen mahdollisuuksiin, kustannuksiin ja käyttöoikeuksiin voivat vaikuttaa hankintasopimuksessa määritellyt ehdot sekä käytettäviin teknologioihin liittyvät lisenssit ja patentit (mm. ohjelmointikielet, kuvausstandardit, tietomallit ja tietoliikenneprotokollat).

Rajapinnan tarjoama data saattaa olla tarjoajan omistamaa tai se voi olla rajapinnan hyödyntäjien tallentamaa dataa. Datan käyttöehdot ovatkin oma erillinen selvitettävä kokonaisuutensa.

Mitä arvolupauksia kannattaa tarjota rajapinnan hyödyntäjille?

Tarjoajan antama arvolupaus rajapinnan hyödyntäjille on usein se, että rajapinnan kautta on kustannustehokkaampaa hankkia esimerkiksi toiminnallisuutta, resursseja (tiloja, laitteita, osaamista jne.) tai dataa kuin tekemällä itse vastaavat ratkaisut tai niitä tarjoava kokonainen tietojärjestelmä, laitteisto tai muut resurssit.

Hyödyntäjille tulee tarjota helppo tapa kokeilla (usein käytetään ilmaisua testata, mutta testaaminen voidaan nähdä laajempana laadunvarmistuksena kuin ns. ennen hankintapäätöstä tapahtuva koekäyttö) rajapintaa ennen päätöstä sen ostamisesta, vuokraamisesta tai käyttöönotosta ilmaiseksi. Ennen kaikkea rajapinnan hyödyntäjän tulisi ymmärtää välittömästi, mihin rajapintaa voidaan käyttää. Rajapinnan avulla myös hyödyntäjä pyrkii usein synnyttämään innovaatioita ja mahdollisesti kaupallistamaan niitä tai antamaan niitä oman käyttäjäkuntansa käyttöön.

Mitä muita kysymyksiä tai ajatuksia rajapintojen avoimuudesta heräsi?