avoinrajapinta.fi

Usein kysyttyjä kysymyksiä ja vastauksia

Miksi ette ota teknisempää lähestymistapaa ohjelmistorajapintoihin?

Ohjelmistorajapintoja saa luotua monella valmisohjelmistolla jopa 15 minuutissa. Varsinkin Web services -ohjelmistorajapintoja saa tehtyä melko helposti ja nopeasti esimerkiksi erilaisilla integraatiotuotteilla (esim Apache Service Mix). Ohjelmistorajapintojen käyttäjiä ovat lähinnä sovelluskehittäjät, jotka rakentavat niiden varaan jotain. Tässä määritelmässä on enemmänkin tarkoitus tukea hankintatoimea uusissa tietojärjestelmähankinnoissa.

Miten suunnitella uusi hyvä avoin ohjelmistorajapinta?

Hyvä tapa on ensin julkaista avoin data tiedostona (datadump). Sen jälkeen kannattaa kerätä ja ymmärtää datadumpiin liittyvät käyttäjätarinat (miten avattua tietoa käytetään ja mihin) ja suunnitella ohjelmistorajapinta käyttötarinoiden perusteella / niiden tarpeeseen pohjautuen. Ohjelmistorajapintaa voi versioida ja laajentaa tukemaan erilaisia käyttötapauksia. Tärkeää on, että ohjelmistorajapinta on toteutettu vastaamaan sen käyttötapauksia, koska muuten sen käyttö voi olla työlästä, eikä yleensä huokuttele ohjelmistokehittäjiä. Huonosti käyttötapaukseen sopivassa ohjelmistorajapinnassa voidaan esimerkiksi joutua suorittamaan suuri määrä kutsuja ohjelmistorajapinnalle, joka luonnollisesti on epätoivottavaa. Hyvän avoimen ohjelmistorajapinnan suunnittelussa keskeistä on ymmärtää mihin ohjelmistorajapintaa käytetään ja miten. Avoimeen lähdekoodin ohjelmistorajapintaan on helpompi tehdä muutoksia, sillä hyviä ohjelmistorajapintoja uudistetaan tarpeen vaatiessa tukemaan uudenlaisia käyttötapauksia.

Tarkoittaako määritelmä, että kaikki organisaation digitaalinen tieto on avattava avoimeksi dataksi?

Avoin rajapinta ei suoraa tarkoita, että kaikkien tietojen tulisi automaattisesti olla avoimia. Usein rajapinta kattaa pienen osajoukon organisaation kaikesta digitaalisessa muodossa (erilaisissa tietokannoissa) olevasta informaatiosta. Toisin sanoen rajapinnan kautta on usein pääsy osaan tiedoista, ei kaikkeen tietoon. Asiaa havainnollistavassa esimerkissä organisaatiolla on 4 erilaista avointa rajapintaa (engl. Open Application Protocol Interface, OAPI), jotka kattavat eri suuruiset ja eri osat organisaation digitaalisessa muodossa olevaa informaatiota. Vaikka kaikki rajapinnat ovat avoimia, jää niiden ulkopuolelle merkittävä osa organisaation digitaalisesta tiedosta. Tässä esimerkissä (kuva 1) avoimet rajapinnat 1-4 käsittelevät eri tietoa, mutta teoriassa osa tiedoista voisi myös olla jollain tavalla päällekkäisiä (käsittelevät osittain samaa tietoa). Usein organisaatiot keskittyvät ydintiedonhallintaan (engl. Master Data Management, MDM), jolloin organisaatiosta tunnistetaan olennainen digitaalinen tieto.

Tietojärjestelmissä oleva tieto vs. rajapinnan tarjoama tieto

Kuva 1. Kuvassa pinta-ala havainnollistaa tiedon määrää. OAPIt 1-4 käsittelevät organisaation digitaalisen tiedon eri osia. Osa organisaation tiedosta jää avoimien rajapintojen ulkopuolelle. Tyypillisesti tälläistä tietoa on esimerkiksi salassapidettävä tieto julkisella sektorilla ja liikesalaiduudet yrityksissä tai esimerkiksi Henkilötietolain 22.4.1999/523 ja tulevan EU:n henkilötieto-asetuksen (engl. General Data Protection Regulation, GDPR) alla oleva tieto.

Tarkoittaako avoimen rajapinnan määritelmä, että kenellä tahansa pitää käyttöoikeus avoimen rajapinnan tarjoamaan tietoon?

Avoin rajapinta ei suoraa tarkoita, että siihen käyttöoikeus pitäisi olla kaikilla. Rajapinnan käyttöä voidaan hallita esimerkiksi API-avaimella (tunnistaa käyttäjän jollain tasolla tilastointitarkoituksessa) tai vaikkapa SSL:n yli käyttäjätunnuksella ja salasanalla. Usein rajapinta ja siihen liittyvä tietoturvallisuus sekä pääsyoikeuksienhallinta erotetaan osittain tai kokonaan toisistaan. Esimerkiksi käyttäjien oikeuksia voidaan hallinnoida OAuth 2.0:lla tai jollain muulla teknologialla. Tyypillisesti avoimen rajapinnan käyttöoikeuksia hallitaan rajapintojen hallintaan (engl. API Management) tarkoitetun ohjelmiston (esimerkiksi 3scale, Apigee, Axway, CA Technologies, IBM, Informatica, Intel Services, MuleSoft, SOA Software, Tibco Software ja WSO2) avulla1.

Mitä hyötyä määritelmästä on?

Suomessa ostetaan ohjelmistoja ja niihin liittyviä palveluita arviolta miljardeilla euroilla joka vuosi. Lisäksi “ohjelmistot syövät maailman” (engl. Software Is Eating The World), jolla tarkoitetaan, että tietotekniikan ja ohjelmistojen rooli osana mitä tahansa toimintaa kasvaa jatkuvasti2. Julkinen sektori (kunnat ja valtio) ovat Suomessa suurin tietotekniikan hyödyntäjä. Jotta todellinen tietojohtaminen (tiedolla johtaminen ja tiedon johtaminen) voisi tietojärjestelmien kohdalla toteutua, on niiden siiloutuneesta rakenteesta päästävä eroon. Nykytilanteessa samoja tietoja on useissa eri järjestelmissä ja organisaatioiden informaatioarkkitehtuuri on muotoitunut sattuminen ja valmiiden ohjelmistojen sisältämien tietorakenteiden kautta. Rajapinnat ovat digitaalisten informaatiovirtojen avainkomponetteja. Avoimen rajapinnan määritelmää voi käyttää esimerkiksi tarjouspyyntöjen osana julkisen ja yksityisensektorin tietojärjestelmäkilpailutuksissa. Määritelmällä torjutaan ns. toimittajalukkoa ja edistetään alan tervettä kilpailua, josta on pitkällä aikavälillä hyötyä kaikille. Toisaalta avoimuus helpottaa digitaalisuuteen liittyvää kokeilukulttuuria sekä tukee teknologista organisaation ketteryyttä.

Miten rajapintoja voi käytännössä rakentaa?

Lähes kaikille ohjelmointikielille (esimerkiksi Node.js, PHP, Python, Ruby, Objective-C, .NET ja Java) on olemassa valmiita toteutuksia rajapinnoista3. Niitä vähän muokkaamalla saa nopeasti luotua rajapinnan. Esimerkiksi avoimen lähdekoodin Mulesoftilla (https://www.mulesoft.com/) uuden rajapinnan luominen onnistuu ammattilaiselta jopa 15 minuutissa. Hyvä rajapinta on kuitenkin asiakaslähtöinen, huolellisesti sekä suunniteltu että testattu, jolloin aikaa kuluu huomattavasti enemmän. Mulesoft on tarkoitettu eri tietojärjestelmien väliseen tietojen integrointiin. Se tukee sekä kooditason muokkausta että graafista työskentelyä. Myös monet pilvipohjaiset alustat, kuten esimerkiksi Amazon Web Services (AWS), tarjoavat valmiita työkaluja rajapintojen rakentamiseen (Amazon API Gateway).

Mitä muita avainkäsitteitä avoimeen rajapintaan liittyy?

Dataformaatti. Sama rajapinta voi tukea useita dataformaatteja. Esimerkiksi JSON, XML tai joku muu. Teknologiat kehittyvät, joten dataformaatteja tulee jatkossa lisää.

Tietomalli. Määrittelee, miten datan sisältämät osat (sanat, käsitteet) liittyvät toinen toisiinsa. Tietomalli voidaan esittää graaffisesti esimerkiksi UML:n avulla. Tietomallin sisältämät käsitteet kannnattaa pyrkiä kuvaamaan standardoitujen aihealueisiin (tietojärjestelmän käyttötarkoitus) liittyvien sanastojen avulla, jolloin tietomallista tulee paremmin myös organisaation / aihe-alueen ulkopuolella toimiva. Kaikkialla yhteensopivia käsitteitä (engl. Golden record) ei ole vielä onnistuttu luomaan, koska tieto ja tietomallin käsitteet ymmärretään aina eri tavoin tiedon eri konteksteissa4.

Avoin rajapinta vai tiedosto (esimerkiksi CSV, XML)?

Rajapinta on hyvä silloin, jos dataa on paljon ja se päivittyy usein. Tiedosto on hyvä taas silloin, kun dataa on vähän ja/tai data päivittyy harvoin (esimerkiksi kerran vuodessa tai harvemmin). Digitaalisen tiedon määrän arvioidaan kasvavan jopa 40% vuodessa5, joten avoimessa tiedossa ollaan suuressa mittakaavassa siirtymässä avoimista tiedostoista avoimiin rajapintoihin. Toisin sanoen digitaalisen tiedon määrän arvioidaan olevan 44 kertaa suurempi vuonna 2020 kuin mitä se oli vuonna 2009. Usein voi olla järkevää tarjota sekä avoin tiedosto että avoin rajapinta.

Miksi ei vaan anneta suoraa käyttöoikeuksia tietokantaan?

Usein suorat tietokannan käyttöoikeudet eivät ole tietoturvallisia (mm. SQL injektio). Siksi väliin tarvitaan hyvä rajapinta, joka myös suojelee organisaation tietoresursseja. Toisaalta rajapinta mahdollistaa informaation uudelleenmuotoilua ja esimerkiksi kuormituksentasausta. Alla olevan tietokannan vaihtaminen ja skaalaaminen on helpompaa myös, kun välissä on rajapinta.

Miten avoin rajapinta liittyy kansalliseen palveluväylään eli X-roadiin?

Periaatteessa X-road tarjoaa rajapintoja siihen liittyneille organisaatiolle. X-roadiin liittymistä on kuitenkin rajoitettu ja se on lähinnä tarkoitettu julkisten organisaatioiden käyttöön. Toisaalta X-road on ennenkaikkea organisaatioiden välinen teknologia / integraatioteknologia siirtää tietoa eri organisaatioiden välillä. Sen lisäksi täytyy toteuttaa erikseen organisaation sisäinen integraatio organisaation eri tietojärjestelmien välillä.

Mitä tämä kaikki tarkoittaa rahallisesti?

Rahallista hyödystä voidaan ainoastaan arvioida hyvin karkea arvio. Kaikki hyödyt on niin monimutkainen asia laskea, ettei täsmäälistä arviota käytännössä pystytä esittämään kuin osakokonaisuuksista. Tässä esimerkissä on käytetty Espoon ilmoittamia lukuja, joihin lähdeviite löytyy tämän tekstin perästä. Lukujen pääasiallinen tarkoitus on antaa jonkinlaista arvioita siitä, miten avoin rajapinta vaikuttaa kokonaisuuteen.

Espoossa ja Turussa asiakastietojärjestelmän liittäminen toiminnanohjausjärjestelmään on maksanut noin 150 000 euroa. Liittämisen hintaan ei vaikuttanut, vaikka sama tietojärjestelmä-integraatio on toteutettu jo muissa kunnissa (ohjelmistotoimittajalla se on valmiina yhden toteutuksen jälkeen). Espoossa integraatioihin varattu budjetti on noin 20% koko tietojärjestelmäbudjetista.

Suomen toiseksi suurimmassa kaupungissa Espoossa (noin 270 000 asukasta) on arvioitu, että oikein tehdyllä integraatioilla voidaan säästää noin 1 000 000 euroa joka vuosi.

Espoo investoi uusiin tietojärjestelmiin vuonna 2016 noin 8,6 miljoonaa euroa. Integraatioihin tästä kohdistuu 20%, eli noin 1,7 miljoonaa euroa. Tämä laskenta-arvo on täysin tekninen. Se ei huomioi työntekijöiden tehottomasta toiminnasta syntyviä kustannuksia. Integraatioiden puuttuessa työntekijät tekevät päällekkäistä työtä syöttämällä samoja tietoja useampiin tietojärjestelmiin.

Hyötypotentiaaliksi arvioidaan seuraavanlaisesti

Tietojärjestelmäluokka Integraatiokustannukset Säästöt integraatiosta  
Suuret tietojärjestelmät 6 595 008 € 1 319 201 € 197 880 €
Keskisuuret tietojärjestelmät 3 553 075 € 710 615 € 142 123 €
Pienet tietojärjestelmät 645 824 € 96 873 € 19 374 €
Yhteensä 10 794 907 € 2 126 690 € 359 377 €

Uusien tietojärjestelmien kohdalla

Investointikustannukset Integraatiokustannukset Säästöt integraatiosta
8 600 000 € 1 720 000 € 602 000 €

####Yhteensä

  Säästöt per vuosi
Nykyiset tietojärjestelmät 359 377 €
Uudet tietojärjestelmät 602 000 €
Yhteensä 961 377 €

Espoon tapauksessa laskelmat ovat suuntaa-antavia. Esimerkiksi näiden asioiden arvoa rahallisesti on vaikeaa arvioida:

Päällekkäisen tiedon syöttämiseen (turhaa työtä) ja käsittelyyn kuluva työaika. Tämä on suurin kustannus, jota voidaan arvioida vain hyvin karkealla tasolla. Työntekijöiden aikaa tuhlaantuu tähän joka viikko useita tunteja eri arvioiden mukaan. Esimerkiksi Espoon tapauksessa kaupungin työntekijöitä on noin 14 000, joiden työaikaa kuluu päällekkäiseen ja turhaa työhön tietojärjestelmien parissa. Lisäksi jokaisen kuntalaisen aikaa menee hukkaan, kun omia tietoja joutuu syöttämään ja päivittämään eri tietojärjestelmiin esimerkiksi paperilomakkeilla (täysin turhaa, koska tiedot eivät siirry järjestelmästä toiseen automaattisesti rajapintojen sulkeutuneisuuden takia).

Organisaation virheellinen toiminta väärän tai vanhentuneen tiedon perusteella ja tämän kerrannaisvaikutukset. Tehdäänkö esimerkiksi kunnassa / kaupungissa viisaita päätöksiä, jos ne perustuvat vain valistuneeseen arvaukseen varsinaisen oikean tiedon sijaan?

Syntymättä jäävät yritykset ja innovaatiot, kun tietoa ei pysty käsittelemään vapaasti. Suomi on korkean osaamisen maa, jossa tulevaisuuden menestys perustuu korkeaan osaamiseen eli tietointesiiviseen liiketoimintaan. Sen kehittymistä haittaa, jos dataa (tietotalouden raaka-ainetta) ei ole saatavilla sulkeutuneiden tietojärjestelmien takia.

Avoimilla ja hyvin toimivilla rajapinnoilla on siis merkittävä vaikutus organisaatioiden toimintaan ja tehokkuuteen. Siksi niiden määrittely on tärkeää ja tarpeellista työtä.

####Lähteet Julkisen hallinnon tietohallinnon neuvottelukunta (JUHTA:n kokousasiakirjat vuonna 2016 / 1. JUHTA:n kokous 17.2.2016 / Liite 3 C, Integraatioalustan rahoitushakemus)