Rajapinnat vaatimuksena julkishallinnon hankinnoissa

apisuomi
API:Suomi
Published in
3 min readJul 21, 2014

Miten ihmeessä ilman kunnollisia rajapintoja aiotaan viedä nykyiset ja tulevat julkisen sektorin palvelut palveluväylään? Rajapinnat tulevat olemaan liima, kaiken yhdistävä tekijä jonka kautta joko onnistumme tai epäonnistumme palveluiden digitalisoinnissa. Teollinen internet tulee myös perustumaan rajapintoihin. Yksityisen sektorin tuottamat verkkopalvelut perustuvat rajapintoihin. Miten julkinen sektori muka olisi joku poikkeus?

Virkamiehet jotka tekevät nyt järjestelmähankintoja tai johtavat niiden kehitysprojekteja ovat avaimia rajapintojen suhteen. Heidän tehtävä on vaatia että pakettiin kuuluu rajapinnat ja niiden tehokas hallinta sekä keinot avata tarvittaessa kolmansien osapuolten käyttöön. Rajapintojen avaamisessa pitäisi noudattaa samaa periaatetta kuin avoimen datan ohjeistuksessa: oletusarvoisesti auki, erikseen perusteltava jos pitää sulkea. Hatusta vedettyjä vaatimuksia? Ei suinkaan. Julkisen hallinnon kokonaisarkkitehtuurissa yksiselitteisesti ohjataan avoimen lähdekoodin ja avoimien rajapintojen käyttöön:

Yksi keskeisimmistä periaatteissakin kuvatuista keinoista tavoitteen saavuttamiseksi on linjata arkkitehtuurinmukainen kehittämistyö perustumaan avoimiin tuotteisiin, joissa sovellustoteutuksen lähdekoodi voidaan vapaasti tarjota edelleen käytettäväksi ja on sovittu käytännöistä, joilla tehtyä kehitystyötä voidaan jakaa. (Julkisen hallinnon kokonaisarkkitehtuuri)

Periaate 16: Hyödynnä avointa lähdekoodia. Avoimen lähdekoodin ratkaisut tukevat teknologia- ja tuoteriippumattomuutta. Avoin lähdekoodi ja vapaa ohjelmisto (myös avoimet rajapinnat ja standardit) edistävät kilpailua, läpinäkyvyyttä ja muokattavuutta. (Julkisen hallinnon kokonaisarkkitehtuuri)

Valtiovarainministeriö ohjaa tietohallinnon kehitystä sekä valtion- että kuntahallinnossa. Keskitetyllä ohjauksella tavoitellaan säästöjä tietohallintomenoissa ja samanaikaisesti tavoitellaan sitä, että tietohallinto palvelisi paremmin hallinnon ydintehtävien toteutusta. Tähän päästään keskittämällä voimavaroja perustietotekniikan ylläpidosta hallinnon toiminnan kannalta keskeisten järjestelmien kehittämiseen.

JulkICT toiminto ja VM siis olisivat tahoja, jotka voisivat määrätä rajapintojen kehittämisen kiinteäksi osaksi uusia ICT hankintoja. He voisivat varmistaa (tiettyyn tasoon asti) että jokainen uusi palvelu kyetään liittämään osaksi palveluväylää. Jos tässä lobattu rajapintojen (API) käyttöön hellästi pakottava ohjaus on osa kokonaisarkkitehtuuria niin ehkä olisi syytä parantaa viestintää, että viesti menee perille paremmin.

JulkICT toiminnon tulisi nähdäkseni terävöittää viestiä siinä, että ohjataan:

  • Toteuttamaan rajapinta jokaiseen ICT hankintaan.
  • Kehittämään rajapintoja (API) osana muuta kehitystyötä, osana kokonaisuutta samanaikaisesti muun kehitystyön kanssa
  • Hyödynnetään itse kehitystyössä samoja rajapintoja, myös itse tuotettuja
  • Rajapintojen (API) oletusarvoiseen avoimuuteen (vain perustellusti suljettuja).

Palveluväylä kaivannee perusteellista päivitystä

Nyt kun saadaan julkisen sektorin palvelut sisältämään REST rajapinnat, ollaan valmiita siirtymään palveluväylään. No ei ihan. Tämähän tietysti edellyttää että palveluväylässä on selkeä ratkaisu rajapintojen hallintaan. Niinhän siellä onkin, SOAP rajapintojen hallintaan. Ikävä fakta vain on, että webpalveluiden rakentaminen on jo kymmenen vuotta mennyt toisenlaisen ajattelun suuntaan, nimittäin REST:in. Asiasta pääsin juttelemaan Virossa muutaman eri tahon kanssa ja kuulemma tämä SOAP/REST yhteensovitus ei ole ongelma. En vain vielä ole kuullut ratkaisusta mitään, mutta jatkan asian selvittämistä virolaisten kollegoiden avulla.

Itse asiassa aika alkaa olla kypsä jo seuraavalle ratkaisulle tai tiikerin loikalle rajapinnoissa, ratkaisulle joka ottaa SOAP:n ja REST:n hyvät puolet ja synnyttää:

  • uudenlaisen tavan määritellä rajapintoja,
  • lukea koneellisesti rajapintojen ominaisuudet ja kyvyt,
  • generoida kehittäjäystävällinen dokumentaatio ja sandbox.
  • on helppoa integroida osaksi erilaisia hallintaratkaisuja

Rajapintojen hallinta pidettävä kotimaassa

Sanottakoon vielä se, että en välttämättä katso kovin iloisena sitä trendiä että viemme vapaaehtoisesti rajapintojen hallinnan USA yrityksille, heidän palvelimille ja heidän kontrolliin. Siis annamme USA:lle vapaaehtoisesti rajapintojen avainten hallinnan? Annamme vapaaehtoisesti palveluväylän keskeisimpien solmukohtien hallinnan USA:lle? Siltä tämä nyt näyttää. Ainakin YLE on vienyt/antanut rajapintojensa hallinnnan USA yritykselle. Obaman ja kumppanien viime aikaiset puheet jenkkien toimivallasta ympäri maailmaa ei ainakaan paranna tilannetta. Olisiko siis aika että rakennetaan Suomeen oma hajautettu ratkaisu rajapintojen hallintaan? Kyllä, ja sen tulisi olla osa palveluväylää. Rajapintojen hallinta jos joku on kriittinen osa tulevaa palveluarkkitehtuuriamme.

Palveluväylän popularisointi

Viestinnässä pitää lopettaa puheet palveluväylästä ja teknisistä asioista. Koko konsepti pitää popularisoida, tehdä helposti lähestyttäväksi ja houkuttelevaksi. Tämä palvelujen digitalisointi joka terminä on vaikea omaksua laajasti on aloitettava nyt. Kieltämättä itsekin sorrun puhumaan palveluväylästä ja välillä jopa teknisistä nippeleistä, mutta sitä suuremmalla syyllä palveluväylästä vastaavien tahojen tulisi muuttaa julkista retoriiikkaa palveluväylän ympärillä. Lisäksi on syytä selkeyttää viestiä sen suhteen kenelle palveluväylä on tarkoitettu. Välillä virkamieskunta syyllistyy retoriikkaan josta jää sellainen mielikuva, että palveluväylä olisi vain julkisen sektorin palveluille. Näinhän asia ei voi olla. Digitaalisten palveluiden tuottaminen ja kehittäminen on oltava kaikkien ulottuvilla. JulkICT lab jonka käytännöt vasta muodostuvat ja FORGE voivat olla yhteinen hiekkalaatikko palveluiden kehittämiseen jossain vaiheessa tulevaisuutta.

Pääviestit pähkinänkuoressa

API ei ole jokin erillinen asia, jokin joka tehdään jos on aikaa. APIa ei tehdä muille, se tehdään omaan käyttöön ja avataan muiden käyttöön. Edellinen lause viittaa periatteeseen “eat your own dog food”. Jos rajapinta ei kelpaa omaan käyttöön miksi se kelpaisi jollekin toiselle?

Näin ollen järjestys kehityksessä pitäisi olla toisin päin kuin perinteisesti ainakin julkisen sektorin hankinnoissa on ajateltu. Ensin tulee API:t ja heti perässä erilaiset käyttöliittymät ja ohjelmat. Toki monesti rajapintojen kehitys ja niiden päälle tehtyjen kerrosten kehitys limittyvät, mutta kunnolliset, testatut, turvalliset ja skaalautuvat rajapinnat ovat kaiken lähtökohta.

VM:n tulisi popularisoida palveluväylä. Nykyinen viesti on liian teknistä, epämääräistä ja byrokratiaa pursuavaa. VM:n tulisi ohjeistaa eri ministeriöitä ja valtion yksiköitä siinä, että avoimet rajapinnat tulee olla osa ICT toteutusta heti alusta lähtien. Näin toimimalla helpotetaan palvelujen digitalisoimista palveluväylän kautta.

Rajapintojen hallinta takaisin kotimaahan tai vähintään Eurooppaan. Rajapintojen hallinta jos joku on kriittinen osa tulevaa palveluarkkitehtuuriamme.

--

--