Avointa lähdekoodia tulisi suosia julkishallinnon tietojärjestelmissä. Esimerkiksi julkisen hallinnon it-hankintojen sopimusehtosuositukset (JHS-166, JIT 2015) listaavat useita perusteluita avoimen lähdekoodin käytölle. Avoin lähdekoodi on julkisesti saatavilla olevaa, avoimella lisenssillä lisensoitua koodia. Periaatteessa asia on yksinkertainen, mutta avoimen lähdekoodin lisenssejä on kymmeniä. Mikä näistä tulisi valita? Kuka edes valitsee lisenssin?

Julkishallinnossa tilaaja valitsee (yleensä) lisenssin

Julkishallinnon kehitysprojekteissa tekijänoikeus tuotetusta koodista muodostuu yleensä tilaajalle. Tällöin vastuu lisensoinnista on tilaajalla. Harva projektipäällikkö tai tuoteomistaja on kuitenkaan vielä perehtynyt kaikkiin avoimen lähdekoodin määritelmää ylläpitävän OSI:n hyväksymiin lisensseihin, jolloin lisenssin valintaan käytetään yleensä jotain kolmesta menetelmästä:
1. Valitaan vaan joku tuttu lisenssi nopeasti.
2. Annetaan lisenssivalintapäätös kehittäjille.
3. Vatvotaan asiaa kuukausia saattaen jopa kiusata sopivaa lakimiestä, joka ei ole asiaan perehtynyt.
Kaikissa näissä menetelmissä on ongelmansa. Lähdetään siis liikkeelle tavallisimmasta käyttötapauksista.

Valmis projekti pohjana

Yksinkertaisin tapaus lisenssin valinnan kannalta on käytettäessä valmista avoimen lähdekoodin ratkaisua pohjana. Silloin on vain yksi ainut oikea ratkaisu eli saman lisenssin käyttäminen.
Saman lisenssin käyttäminen suojaa mahdollisilta ongelmilta tulevaisuudessa. Jos muokatun projektin lähdekoodista löytyisi tekijänoikeusrikkomus kuten lisensoimatonta kopioitua koodia tai patenttiloukkaus, niin koko projektin käyttäjäyhteisöllä on yhteinen intressi korjata ongelma.

Useita valmiita projekteja pohjana

Useammasta eri avoimin lisenssein julkaistuista tuotteesta koostuvan järjestelmän tapauksessa tilanne on monimutkaisempi. Perusperiaate on sama kuin aiemmin, eli kuhunkin osajärjestelmään tehtävät muutokset kannattaa lisensoida alkuperäisellä lisenssillä. Lisäksi on selvitettävä eri lisenssien yhteensopivuus, jotta integraatiossa ei tapahdu lisenssirikkomuksia.
Useiden lisenssien käyttö saattaa olla alussa sekavaa, mutta se ohjaa myös kehittäjiä pitämään eri järjestelmän osien rajoja selvinä. Samaa linjaa on hyvä jatka, mikäli palvelu on muutenkin jaoteltu eri komponentteihin kuten kaikki modernit ohjelmistot.

Sallivat lisenssit

Salliva lisenssi on avointa lähdekoodia, joka ei vaadi uudelleenkäyttäjää julkaisemaan omia tuotoksia. Sallivat lisenssit ovat houkuttelevampia kaupallisille toimijoille kuin vastavuoroiset lisenssit. Salliva lisenssi voi olla järkevä valinta, mikäli palvelun funktio on toimia esimerkkinä tai täydentää kaupallisten palvelujen tarjontaa.
Sallivista lisensseistä tunnetuimmat ovat MIT-lisenssi ja BSD-lisenssi. BSD-lisensseistä on useita versioita, joista osa vaatii tai kieltää tekijänoikeuden haltijan tietojen liittämisen koodia käyttäviin ohjelmistoihin. Yleensä nämä vaatimukset eivät ole oleellisia julkishallinnon palveluissa, joten on järkevämpää käyttää yksikäsitteistä MIT-lisenssiä.
Apache Public Licence (APL) on yleinen lisenssi, jossa on heikko vastavuoroisuusehto. APL:n vastavuoroisuusehto käytännössä estää palveluasi vastaavan palvelun levittämisen ilman lähdekoodin julkaisemista avoimella lisenssillä. On erittäin harvinainen tilanne, jossa julkisen palvelun näkökulmasta APL:n vastavuoroisuusehto olisi tarpeellinen. On siis parempi suosia MIT-lisenssiä. Mikäli tämmöinen tilanne kuitenkin on jo tullut vastaan, kuulisin siitä mielelläni lisää.

Vastavuoroiset lisenssit

Vastavuoroisissa lisensseissä on nk. copyleft ehto joka pakottaa koodin uudelleenkäyttäjät julkaisemaan omat muutoksensa ja näin edesauttaa muiden tekemien muokkausten ja korjausten käyttöä. Vastavuoroiset lisenssit ovat houkuttelevampia yksittäisille kehittäjille, jotka ideologisista syistä haluaisivat tukea julkisten palveluiden kehitystä.
Vastavuoroisten lisenssien suvun matriarkka on GPL ja koko GPL-perhe on vielä hyvässä vedossa. Palvelukehityksessä sopivin vastavuoroinen lisenssi on AGPL. Se eroaa muista sisaruksistaan SAAS-ehdolla. Ehdon mukaan kaikki lähdekoodin muokkaukset on julkaistava myös silloin kun siihen perustuvaa palvelua tarjotaan julkisesti. Muissa GPL-lisensseissä tätä ehtoa ei ole, joten ne ovat verkkopalvelukehityksessä käytännössä sallivia lisenssejä.

Saitko EU-rahaa?

Mikäli on käynyt niin hienosti että osa tai kaikki palvelun rahoituksesta tulee EU:lta, rahoihin todennäköisesti liittyy vaatimus EUPL:n (European Union Public License) käytöstä. Lisenssi poikkeaa yleisesti käytetystä copyleft-lisenssi GPL:stä pääasiassa siinä, että riidat on määritelty selvitettäväksi EU:n tekijänoikeuslainsäädännön alla.
EUPL:n versiosta 1.1. lähtien on mukana myös SAAS ehto kuten AGPL:ssä. Valitettavasti EUPL ei ole suoran yhteensopiva GPL-perheen lisenssien kanssa. Mikäli EUPL-lisensoitua koodia on käytettävä tiivisti GPL-komponenttien kanssa, on se mahdollista jos riittävän laaja osa järjestelmää rinnakkaislisensoidaan CeCILL-lisenssillä ja sopivalla GPL:llä.
Vertailu GPL:stä ja EUPL:stä löytyy täältä.

Microsoftia

Microsoftin julkaistua osat omista työkaluistaan avoimilla lisensseillä onkin teoriassa mahdollista käyttää myös MS-työkaluja avoimen lähdekoodin julkishallinnon projektissa. Tästä ei ole vielä kokemuksia, mutta voidaan veikata että Microsoftin avoimen lähdekoodin  ekosysteemi tulee perustumaan Microsoftin lisensseihin. Jolloin kysymyksessä on valinta sallivan Microsoft Public Licensen (MS-PL) ja vastavuoroisen Microsoft Reciprocal Licensen (MS-RL) välillä.

Kehitetään oma lisenssi

Muu lisenssi

Jos sinulla on hyvä ehdotus miksi jotain toista avoimen lähdekoodin lisenssiä tulisi edes harkita niin perustele ehdotuksesi kommenteissa.

HUOM

Oman palvelun lisenssin valinnalla ei voida kokonaan estää tekijänoikeusrikkomuksia, jotka johtuvat epäyhteensopivasti lisensoitujen kolmannen osapuolten julkaisemien avoimen lähdekoodiin komponenttien käytöstä. Näistä on myös palvelun tekijänoikeuden haltija vastuussa. Lisenssin valinta on kuitenkin ensimmäinen päätös, joka luo pohjan onnistuneelle avoimen lähdekoodin lisenssien hallinnalle palvelun kehitysprojektissa.

Salum Abdul-Rahman

Salum Abdul-Rahman

Salum työskentelee Goforella teknisenä projektipäälllikkönä. Hänen yleisimmät roolinsa ovat scrum master ja coach joissa hän keskittyy avoimuuden ja oppimisen edistämiseen. Hänen on kiinnostunut kaikesta ketterään kehittämiseen liittyvästä, avoimesta lähdekooista sekä tietojohtamisesta,

Piditkö lukemastasi? Jaa se myös muille.

Uusi syntyy innostuksesta

Terveydenhuollon tietojärjestelmäkehityksessä kuohuu. Pääkaupunkiseudun ja HUS:n Apotti-hankinta 575 miljoonan euron hintalappuineen nosti ison metelin – täysin ymmärrettävästi. Yleisesti on kritisoitu sitä, että suurella rahalla hankitaan järjestelmä, joka on teknisesti vanhentunut, jota kehitetään jossain kaukana ja jota joudutaan merkittävästi mukauttamaan Suomen tarpeisiin. Hämmennystä herätti myös laskelma, jonka mukaan vastaavan järjestelmän käyttöönotto koko maahan maksaisi 1,8 miljardia euroa.
Yhtä lailla suurta mielenkiintoa herätti ketterien ohjelmistotalojen ilmoitus ASTE- eli Avoin sosiaali- ja terveydenhuolto -konsortion perustamisesta avoimen terveydenhuoltoalan järjestelmän kehittämiseksi. ASTE-konsortioon kuuluu perustamisvaiheessa Suomen johtavia ketteriä ja asiakaslähtöisiä ohjelmistotaloja kuten Gofore, Solita, Vincit ja Reaktor. Vastaanotto oli jopa hämmentävä – tuntui kuin jotain tällaista olisivat kaikki odottaneet. Jokainen luonnollisesti myös tulkitsi konsortion pyrkimyksen ja perustan omalla tavallaan. Toiset kokivat, että tässä todella tehdään vaihtoehtoa Apotille, toiset taas näkivät konsortion lähinnä yleistä hyvää tarkoittavana kehittäjäyhteisönä.

Miten kanavoidaan innostusenergia yhteiskunnan hyödyksi?

Tulkinnoista riippumatta hienoa on ollut havaita innostus, joka vallitsee niin ASTE-konsortion sisällä kuin ympäristössäkin. Innostushan lopulta on se asia, joka synnyttää uutta ja saa aikaan wau-kokemuksia työn tuloksena syntyvien palveluiden käyttäjille. Innostuksen ruokkiminen ja kanavoiminen ovat nykyaikaisen johtamisen keskeisimpiä tekijöitä. Yhteiskunnan kannalta olisi tärkeää, että ASTEen herättämää luontaista kiinnostusta ja innostusta pystyttäisiin nyt kanavoimaan ja jopa voimistamaan, kaikkien meidän hyödyksi.
Samanlaista verkostomaista innokkuutta on tällä hetkellä nähtävissä laajemminkin ohjelmistoteollisuuden piirissä. Uudessa työkulttuurissa henkilöt eivät leimaudu yksinomaan työnantajaan, vaan erilaisiin ammattitaitoa ja ammattiylpeyttä vaaliviin yhteisöihin. Tietyn osaamisalueen tai teknologian ympärille syntyvät harrastajakerhot kielivät yksittäistä työsuhdetta tai projektia laajemmasta innostuneisuudesta alaan. Meidän ohjelmistoyritysten yhteinen etu on tukea ja vaalia tätä kehitystä – innostuneet ja motivoituneet työntekijät vievät meitä myös yhtiöinä eteenpäin.
Timur KärkiUskallankin väittää, että kymmenen viime vuoden aikana ohjelmistoteollisuuden parissa työskentelevien ammattiylpeys on kasvanut. Digitalisaatio, startup-huuma sekä alan jatkuva kehittyminen muodostavat tälle loistavat puitteet. Keskisuurten ohjelmistoyritysten toimiminen työkulttuurin uudistamisen tulenkantajinakin kasvattaa ylpeyttä.
Intoa asioiden korjaamiseen riittää siis varmasti myös sote-alan järjestelmäkehitykseen. Pelkään kuitenkin pahoin, että todelliset ongelmat ovat syvemmällä. Sähköistä palvelupolkua tuotettaessa jumiudumme fyysisen maailman rajoitteisiin kuntineen, sote-alueineen, organisaatioyksikköineen. Pirstaleinen palvelukehitys johtaa pirstaleiseen sähköisten palveluiden kokonaisuuteen.
Toivotaan, että tuoreen sote-ratkaisun myötä saadaan ryhtiä ja uutta toivoa myös potilaskeskeiseen state-of-the-art-järjestelmäkehitykseen, parhain suomalaisin voimin.

Artikkeli on julkaistu Tampereen kauppakamarilehdessä, marraskuu 2015.

Avatar

Timur Kärki

Timur on Gofore Oy:n toimitusjohtaja ja yksi perustajaosakkaista. Hänellä on yli viidentoista vuoden kokemus haasteellisista tietojärjestelmien kehittämishankkeista. Erityisen kiinnostunut Timur on Suomen pelastamisesta onnistuneilla ja innovatiivisilla sähköisillä palveluilla yhdessä Goforen asiakkaiden ja työntekijöiden kanssa. Timur itse konsultoi asiakkaita liittyen kokonaisarkkitehtuurityöhön, vaatimusmäärittelyihin sekä kilpailutusprosesseihin.

Linkedin profile

Piditkö lukemastasi? Jaa se myös muille.

Miksi voimme hyvin yhdessä?

Kirjoitin aiemmassa blogitekstissäni yhteistyön merkityksestä rakennettaessa parempaa työpaikkaa. Goforen työviihtyvyystyöryhmän toiminta perustuu juurikin yhteistyöhön ja pikaiseen päätöksentekoon: haluamme ratkaista pieneltäkin tuntuvat ongelmat mahdollisimman nopeasti. Haluamme kehittää työyhteisöä työntekijöiden toiveista.
OLYMPUS DIGITAL CAMERAUseana vuonna Goforessa on järjestetty henkilöstöjohtamisen kyselytutkimus, jossa on tutkittu 22 eri osa-aluetta yli sadalla erilaisella kysymyksellä muun muassa viestintään, perehdytykseen, osaamisen kehittämiseen liittyen. Tuloksia on systemaattisesti analysoitu työviihtyvyystyöryhmässä ja toimintatapoja on kehitetty kyselyn vastausten perusteella. Lukuisia hyviä, työviihtyvyyttä parantavia toimenpiteitä onkin syntynyt tämän analyysin seurauksena.
Työviihtyvyys tarkoittaa meille kaikkia niitä asioita, joiden perusteella ihmiset viihtyvät työssään. Näihin lukeutuu laaja kirjo vaikuttimia työsuhde-eduista aina vapaamuotoiseen yhdessäoloon. Goforelaisilla on avoimet viestintäkanavat ideoiden ja ehdotusten tekemiselle. Työviihtyvyystyöryhmä kerää aktiivisesti kehittämisideoita kaikilta työntekijöiltä henkilöstökyselyiden ohella käytävä- ja kahvipöytäkeskusteluista ja firman sisäisistä viestintäkanavista. Näiden käsittelystä, päätöksistä ja täytäntöönpanosta viestitään avoimesti koko henkilökunnalle.
Työsuhteeseen liittyvissä asioissa, joista ei ole esimerkiksi työehtosopimuksessa selkeää mainintaa, kuka tahansa goforelainen voi kääntyä luottamusmiehen puoleen, joka ottaa asian hoidettavakseen. Kun asia on selvitetty, luottamusmies on yhteydessä työntekijään sekä tarvittaviin johdon henkilöihin. Selvitetyt asiat käsitellään tarvittaessa myös työviihtyvyystyöryhmässä, mikäli niiden linjaukset vaikuttavat muiden goforelaisten edunvalvontaan. Työntekijät voivat kääntyä myös työviihtyvyystyöryhmän jäsenten puoleen nostaakseen epäsuotuisia tilanteita esille ja kehittääkseen toimintatapoja sekä käytäntöjä. Näin myös luottamuksellisemmat asiat tulevat käsiteltyä ripeästi.
Jokaisella goforelaisella on tietenkin vastuu hyvän työilmapiirin luomisessa ja yhteisöllisyyden lisäämisessä. Avoimuus, luotettavuus, työkaverin auttaminen ovat elementtejä, joille hyvinvoiva työpaikka rakentuu. Työpaikalle on kiva tulla, kun tietää kohtaavansa iloisen ja kannustavan ilmapiirin. Kun yritys on myös suunnitelmallisesti ja tavoitteellisesti johdettu, jokainen on perillä siitä, mihin ollaan menossa. Ja vielä kun kommunikaatio toimii, tietää olevansa hyvässä työpaikassa. Lisäksi kun asioita hoidetaan ripeästi eikä ongelmia lakaista maton alle, voi keskittyä olennaiseen eli työntekoon hyvillä mielin.

Avatar

Janne Pehkonen

Janne on kokenut julkisen sektorin kokonaisarkkitehti, joka uskoo ihmiskeskeiseen hyvinvointiyhteiskuntaan. Hän on suunnittelemassa tulevaisuuden Suomea, jossa asiakaskeskeisen ajattelun paradigman muutoksen ja digitaalisen transformaation kautta ihminen nostetaan keskiöön.

Piditkö lukemastasi? Jaa se myös muille.

Viime viikon keskiviikkona 18.11. julkaistiin ensimmäiset tuotantoympäristöt KaPA-hankkeen kansallisesta palveluväylästä ja liityntäkatalogista. Julkaisutilaisuutta vietettiin Valtiokonttorilla Helsingissä. Paikalle oli kutsuttu vieraita ja puhujia muun muassa Valtiovarainministeriöstä paitsi kuulemaan julkaisusta, myös tapaamaan KaPA-kehitystiimiä niin kutsuttuun Tehtaaseen. Kehittäjistä paikalla olikin runsas (hatusta heitettynä yli kymmenen) edustus Goforelta, jota juhlapuheissa kovasti kiiteltiin.
Liityntäkatalogi on luettelo ja hakukone palveluväylällä tarjottavista palveluista ja niiden teknisistä rajapinnoista. Janne kirjoitti blogissaan palveluväylän toiminnasta tarkemmin.
Itse katalogiprojektihan aloitettiin vain 2,5 kk sitten. Väestörekisterikeskus oli pohtinut ennakkoon muutamaa toteutusvaihtoehtoa. Yksi vaihtoehto oli käyttää virolaisten X-Roadin ohessa kehittämää MISP-järjestelmää (Mini Information System Portal, siis tässäpä vasta nimi!), jossa on jotain hyvää ja loput ei-niin-hyvää. Toinen vaihtoehto oli lisätä Goforen toteuttamaan Avoindata.fi-palveluun oma osio palveluväylän liitynnöille. Kolmas ja asiakasta eniten kiinnostanut ajatus oli, että forkataan Avoindata.fi:n koodipohja, ja saksitaan siitä turhat osat pois. Sen projektin kokemusten perusteella teimme ensimmäisellä viikolla perustellun vastaehdotuksen: liityntäkatalogi tehtäisiin Avoindata.fi:n oppeihin ja koodinpätkiin pohjautuen, mutta vain osajoukolla teknologioista, päivitetyllä alustalla ja yksitellen poimituilla komponenteilla.
Tiivistettynä Avoindatassa lähdettiin aikoinaan kolmannen osapuolen esiselvityksen pohjalta melko monimutkaisella teknologiapinolla liikkeelle. Samalla pääalusta oli kuitenkin vielä melko nuori, joten Avoindatassa jouduttiin toteuttamaan itse monia ominaisuuksia, jotka sittemmin on toteutettu maailmalla alustan kehittäjäyhteisön voimin. Nyt yli kaksi vuotta myöhemmin teknologiat olivat päivittyneet sen verran, ettei täysin samalla ratkaisulla kannattanut mielestämme edetä.
Asiakas hyväksyi ehdotuksen koota palikat uudelleen, ja palveluväylän hankepäällikkö Eero Konttaniemi kysyi hymyillen palaverin lopussa: ”Saitko nyt tahtosi läpi?”. Hetkellisen naamakrampin jälkeen pystyin virnistykseni takaa vastaamaan vain ”Joo”. Menneisyyden painolastit jätettäisiin taakse, ja aikaa annettiin demosprintin verran näyttää että homma onnistuu.
Ja sehän todellakin onnistui! Seuraavan parin viikon aikana paukutimme Ianin ja Teemun kanssa raivolla sellaisen huojuvan ja natisevan julkisivun (”Sitä ei kannata painaa! Ei mennä sinne katsomaan.”) joka miellytti asiakasta suuresti. Tuotantojulkaisun deadlineksi asetettiin sama kuin palveluväylällä, 18.11.2015.
Seuraavat kaksi kuukautta vietettiin ulkoasun, tietomallin laajentamisen, kielistämisen ja tuotantojärjestelmän pystyttämisen kanssa. Kehittäminen oli ääriketterää Scrumbania. Erillisiä daily-palavereita ei juuri ollut, ja kommunikointi Flowdockissa oli hyvin tiivistä.
katalogi_flowdock
Sprintit olivat vain viikon mittaisia, ja koska kaikki tekijät olivat osa-aikaisesti projektissa, oli meno kuin nälkävuonna. Vain aivan ehdottoman välttämättömiä asioita pystyttiin tekemään. Menneen sprintin läpikäynti sekä seuraavan suunnittelu oli samassa Skype-palaverissa, ja Jiran sijasta käytimme Trelloa.
katalogi_trello_125
Maanantaina 16.11. palvelua käytiin läpi Väestörekisterikeskuksen tiloissa. Asiakas ylisti tiimiä maasta taivaaseen ja sanoi, että tällä mennään tuotantoon.
MUTTA, olisi vain yksi pikkujuttu vielä: ”Meillä on tämmöinen Bt.tn-nappi ja me halutaan, että keskiviikkona se julkaistaan kaiken kansan edessä tällä napilla!”
Siis Server Erroria lentää edelleen sopivissa tilanteissa, sisältö puuttuu lähes kokonaan, ja käännökset ei oikein pelitä, mutta nappi pitää saada.

Original image from The Oatmeal by Matthew Inman.
Original image from The Oatmeal by Matthew Inman.

Yritin koko alkuviikon perustella asiakkaalle, että napilla livemuutoksen aikaansaaminen on kuin kerjäisi verta nenästään (muutakin kriittisempää tekemistä oli työn alla). Ajatus tuntui vähitellen haudatulta, kunnes muutama tunti ennen julkaisua Valtiokonttorin toimistolla innostuttiin, että ”sitä nappia on pakko käyttää”. Toteutustekniset yksityiskohdat menevät salassapitosopimuksen piiriin, mutta keksimme ratkaisun, jolla palvelun sisältö saadaan muuttumaan kaikkien silmien alla.
Nappi aseteltiin puhujien eteen. Siinä vaiheessa kun neljäs puhuja hypetti lähestyvää napin painallusta, meinasin saada slaakin. Hikikarpaloita puski ja skumppa meinasi läikkyä syliin.
vase
H-hetkellä kaikki meni kuitenkin kuin elokuvissa, ja wow-efekti oli taattu, kun napin painalluksella sisältö – katalogin ensimmäinen liityntäkuvaus – ilmestyi palveluun!
Liityntäkatalogin kehitystä jatketaan näillä näkymin vähintään ensi vuoden kevääseen, uskaltaisin veikata koko ensi vuotta. Seuraavana tapetilla on rajapintakuvausten ja metatietojen automatisoitu kerääminen palveluväylän liityntäpalvelimilta, jonkinlainen liityntöjen kokeilumahdollisuus testiympäristössä sekä kertakirjautuminen muiden Suomi.fi Tuki- ja hallintasivustojen välillä. Kehitystä on tehty alusta alkaen avoimena lähdekoodina, projektissa on julkaistu useita parannuksia alustaan ja aikanaan parannukset otetaan käyttöön myös Avoindatan puolella.
Seuraavaksi katalogia esitelläänkin sitten KaPA-infossa 26.11. moninkertaiselle yleisölle. Backlogilla taitaakin varmaan olla lisää napin tunkkaamista ja asiakkaan suostuttelua unohtamaan se.

Avatar

Ville Seppänen

Ville edistää Goforella kokeilevan ohjelmistokehittämisen kulttuuria. Ohjelmistokehittämisen ohella hän konsultoi pilvipalveluiden käytössä. Palveluväylä- ja Avoindata.fi-projektien kautta Ville on auttanut Suomen julkishallintoa avaamaan tietovarantojaan.

Linkedin profile

Piditkö lukemastasi? Jaa se myös muille.

Suomi.fi-palveluväylän tuotantokäyttö alkaa tänään. Vaikka palveluväylästä onkin jo julkaistu paljon hyvää dokumentaatiota, ainakin itselläni kesti melko pitkään sisäistää miten palveluväylä teknisesti toimii. Tämän on tarkoitus olla kohtalaisen tiivis kuvaus siitä, miten viestinvälitys palveluväylällä vaihe vaiheelta tapahtuu.
Kuvitteellisena esimerkkinä tarinassa on jokin avustusjärjestelmä, josta jaetaan rahaa yrityksille. Osana järjestelmän toimintaa halutaan tarkistaa että rahoituksen saaja on maksanut veronsa säntillisesti. Tästä syystä tehdään palveluväylää pitkin verovelkakysely Verohallinnon tarjoamaan rajapintaan.

Tukijärjestelmä kysyy kysymyksen verottajalta

Palveluväylän viestinvälitys perustuu sille että melko itsenäiset liityntäpalvelimet lähettävät viestejä toisilleen. Keskuspalvelimella hallitaan väyläkokonaisuuden konfiguraatiota. Tätä konfiguraatiota jaellaan liityntäpalvelimille joko suoraan tai erillisen konfiguraatiopalvelimen kautta. Liityntäpalvelimet käyttävät aikaleima- ja varmennepalveluita tietoturvan varmistamiseen. Väylään liittyviä käsitteitä on avattu laajemmin sanastossa.
Esimerkissämme tukihakemusjärjestelmä lähettää palvelukutsun eteenpäin oman liityntäpalvelimensa kautta. Tukijärjestelmän liityntäpalvelin salaa ja allekirjoittaa kutsun ja lähettää sen vastapuolen, eli Verohallinnon, liityntäpalvelimelle julkisen internetin yli. Verohallinnon liityntäpalvelin purkaa salauksen, tarkistaa allekirjoituksen ja välittää varsinaisen palvelukutsun verovelkapalvelulle. Vastaus siirtyy takaisin samaa reittiä pitkin.
xroad-bigpicture (1)

Vaihe 1

Tukihakemusjärjestelmä lähettää palvelukutsun liityntäpalvelimelleen. Palvelukutsu on X-Road viestiprotokollan mukainen, eli käytännössä SOAP-kutsu, jossa on mukana X-Roadin omat elementit ja joka noudattaa tiettyjä sovittuja käytäntöjä.
xroad-1

https://gist.github.com/jansu76/5d0e062ddf1f9776430d
Viestissä oleellisimpia tietoja ovat
  • client -elementti kertoo mistä kutsu lähetettiin
  • service -elementti kertoo mihin palveluun kutsu välitetään
  • itse palvelukutsu on SOAP-viestin bodyssä

Esimerkkiviestistä nähdään miten väylän keskustelukumppanit tunnistetaan koordinaateilla xRoadInstance – memberClass – memberCode – subsystemCode. Kun viesti lähetetään verovelkapalveluun, koordinaateiksi asetetaan kohdejärjestelmä FI – GOV – 0245458-3 – VeroSS2.

Avain Arvo Tulkinta
xRoadInstance FI Kutsu kohdistuu Suomen palveluväylään. Käytetty teknologia tukee federointia, eli olisi mahdollista kutsua esimerkiksi Virossa olevaa palvelua (ei käytössä kuitenkaan tällä hetkellä)
memberClass GOV Palveluntarjoajan luokittelukategoria. Tässä tapauksessa GOV eli valtionhallinnon organisaatio (Taulukko 3).
memberCode 0245458-3 Kohdeorganisaation yksilöivä tunnus, joihin käytetään Suomessa aina Y-tunnusta. Esimerkissä käytetään Verohallinnon Y-tunnusta.
subsystemCode VeroSS2 Alijärjestelmä, joka on kohdeorganisaatiossa kutsun kohteena. Esimerkissä verovelkapalvelu on päätetty julkaista alijärjestelmässä ”VeroSS2”.

X-Road viestiprotokollan vaatima kuorrutus voidaan lisätä viesteihin eri tavoin. Tietojärjestelmä voi kirjoittaa tarvittavat SOAP-headerit itse, tai niiden lisäyksestä voi vastata jokin yleiskäyttöinen komponentti. Aiheesta lisää muualla. On myös olemassa komponentti, joka välittää REST kutsuja X-Road viestiprotokollan yli.
Tässä vaiheessa on syytä huomata, että kutsuvan organisaation täytyy varmistaa että liityntäpalvelimen paikalliseen kutsurajapintaan pääsee lähettämään viestejä vain luotettu toimija (tyypillisesti omasta sisäverkosta). Mikäli ei-toivottu taho pääsee lähettämään viestejä tähän rajapintaan, se voi tehdä vapaasti palvelukutsuja kaikkien tämän liityntäpalvelimen käyttäjiksi konfiguroitujen organisaatioiden ja alijärjestelmien nimissä. Pääsy liityntäpalvelimen paikalliseen rajapintaan voi olla rajattu palomuurilla, ja liityntäpalvelin voidaan säätää hyväksymään kutsuja vain tunnettujen varmenteiden käyttäjiltä.

Vaihe 2

xroad-2 (4)
Saatuaan palvelukutsun liityntäpalvelin alkaa käsittelemään sitä tietoturvamielessä. Ensimmäiseksi viesti allekirjoitetaan kutsujan allekirjoitusavainta käyttäen. Käytettävät avaimet on luotu liityntäpalvelimella, ja ne on rekisteröity keskitettyyn varmennepalveluun (CA, käytännössä VRK). Vastaavasti liityntäpalvelimella on luotu autentikointiavain (ja sitä vastaava varmenne), jota käytetään myöhemmin vaiheessa 4.
Seuraavaksi viesti leimataan aikaleimapalvelussa (TSA, Time Stamping Authority). TSA tuottaa sille lähetetylle tiedolle allekirjoituksen, joka todistaa tiedon olleen olemassa tietyllä ajanhetkellä. Käytännössä väylässä välitettävän viestin allekirjoituksesta lasketaan tiiviste, joka TSA aikaleimaa ja allekirjoittaa.
Liityntäpalvelin tallettaa aikaleimatun ja allekirjoitetun viestin omaan tietokantaansa. Tätä tietoa voidaan jälkikäteen käyttää sen todistamiseen, että tukijärjestelmällä on ollut hallussaan verovelkakysely X ajanhetkellä Y1.

Vaihe 3

Liityntäpalvelin valmistelee datapaketin, joka lähetetään vastaanottavalle liityntäpalvelimelle. Pakettiin laitetaan

  • alkuperäinen palvelukutsu
  • palvelukutsun aikaleimattu allekirjoitus
  • OCSP-vastaukset tukijärjestelmän liityntäpalvelimen käyttämille allekirjoitus- ja autentikointivarmenteille

OCSP (Online Certificate Status Protocol) on työkalu varmenteiden voimassaolon hallintaan. OCSP -palvelimelta voidaan kysyä onko jokin varmenne edelleen voimassa. Palveluväylän voimassaolokyselyt toimivat samalla periaatteella kuin OCSP stapling, eli varmenteen käyttäjä huolehtii voimassaolon kyselystä, ja pakkaa voimassaolotiedot mukaan viestiin. Koska voimassaolotieto on allekirjoitettu luotetun tahon (CA) toimesta, vastaanottaja voi tarkistaa allekirjoituksen ja luottaa siihen että häntä ei yritetty huijata varmenteella joka ei olekaan voimassa.
xroad-3

Muutamia yksityiskohtia on lakaistu maton alle:

  • viestien aikaleimaus ja OCSP kyselyt eivät välttämättä tapahdu joka kyselylle erikseen ja / tai reaaliaikaisesti
  • jos viestissä on attachmenteja, yhden allekirjoituksen sijaan käsitellään useita, ja niistä muodostettua Merkle-puuta

Vaihe 4

Tukijärjestelmän liityntäpalvelin lähettää edelliskohdassa valmistellun datapaketin Verohallinnon liityntäpalvelimelle. Tiedonsiirto salataan TLS -salausprotokollaa käyttämällä.
Yhteyden salaamiseen käytetään liityntäpalvelinten autentikointiavaimia. Yhteyttä avattaessa asiakaspään liityntäpalvelin pyytää vastapuolelta sen autentikointivarmenteen OCSP-vastaukset.  Vastaavasti palvelupään liityntäpalvelin saa kutsujan autentikointivarmenteiden OCSP-vastaukset vastaanotetusta datapaketista.
Tämän jälkeen liityntäpalvelimet voivat luottaa siihen, että tiedonsiirto on salattua, ja vastapuoli on se kuka väittää olevansa.
xroad-4
Palvelukutsun SOAP-headereista tiedetään siis koordinaatit ”FI/GOV/0245458-3/VeroSS2” jonne datapaketti pitäisi lähettää. Mutta mistä tukijärjestelmän liityntäpalvelin tietää missä osoitteessa niitä vastaava palvelin sijaitsee? Tämä tieto löytyy kaikille liityntäpalvelimille yhteisestä konfiguraatiosta, jonka liityntäpalvelimet hakevat keskuspalvelimelta ajastetusti. Liityntäpalvelinten osoitteiden lisäksi jaetussa konfiguraatiossa on muunmuassa tiedot luotetuista aikaleima- ja OCSP palveluista.
Tiedonsiirto liityntäpalvelinten välillä voi jatkua häiriöittä (asetusparametreista riippuvan pituisen) tietyn ajan vaikka joku räjäyttäisi OCSP, aikaleima- ja keskuspalvelimet tuusan nuuskaksi.
Palveluväylän toteutuksessa on sisäänrakennettuna (erittäin yksinkertainen) tuki kuormanjaolle liityntäpalvelinten kesken. Samoin DOS-hyökkäysten estolle on jonkinlainen tuki.

Vaihe 5

Kun palveluntarjoajan liityntäpalvelin on purkanut vastaanotetun datapaketin salauksen, se alkaa käsitellä sen sisältöä. Myös palvelun tarjoajan päässä aikaleimataan saapunut palvelukutsu (sen allekirjoituksen tiiviste). Viesti allekirjoituksineen talletetaan täälläkin kantaan. Tallennettua viestiä voidaan jälkikäteen käyttää sen todistamiseen, että Verohallinnon liityntäpalvelimella on ollut hallussaan tukijärjestelmästä tullut verovelkakysely X ajanhetkellä Y2.
xroad-5 (2)
Liityntäpalvelin tarkastaa saapuneeseen viestiin liittyen että:

  • autentikointivarmenne ja sen varmenneketju ovat voimassa pakettiin liitettyjen OCSP-vastausten mukaan
  • autentikointivarmenteen tiiviste vastaa sitä, joka on saatu keskuspalvelimelta jaettujen konfiguraatiotietojen mukana
  • allekirjoitusvarmenne on voimassa pakettiin liitetyn OCSP-vastauksen mukaan
  • allekirjoitusvarmenne vastaa kutsujan identiteettiä (varmenteen distinguished name sisältää tahon memberCoden)
  • allekirjoitus vastaa SOAP-palvelukutsua (eli voidaan luottaa siihen että palvelukutsua ei ole muutettu)
  • kutsu on tullut oikeaan osoitteeseen ja haluttu palvelu löytyy valikoimasta
  • kutsujalla on lupa käyttää kyseistä palvelua (konfiguroidaan paikallisesti liityntäpalvelimella).

Vaihe 6

Nyt Verohallinnon liityntäpalvelin on valmis kutsumaan varsinaista SOAP-palvelua, eli tässä tapauksessa tekemään verovelkakyselyn.
xroad-6
Liityntäpalvelin löytää varsinaisen palvelun sijainnin oman paikallisen konfiguraationsa perusteella. Kuten kutsuvassa päässä, tässä välissä voi olla vielä erillinen sovitinpalvelu, tai vaikkapa ESB, joka tulkkaa X-Road viestiprotokollaa kohdejärjestelmän käyttämään muotoon.
Verovelkapalvelun vastaus matkaa sitten takaisin tukijärjestelmään marssien samaa polkua takaperin, pääpiirteissään samoja periaatteita noudattaen.

https://gist.github.com/jansu76/208e8d5dae8b15f657aa
Haluatko testata tätä itse käytännössä? Seuraavaksi kannattaa liittyä mukaan palveluväylän testiympäristöön:

Turvallista matkaa!

Avatar

Janne Mattila

Janne on kokenut ohjelmistoarkkitehti, joka rakentanut liiketoimintakriittisiä Javajärjestelmiä vuodesta 1999. Tällä hetkellä hän työskentelee Suomi.fi-palveluväylän jatkokehityksen parissa.

Linkedin profile

Piditkö lukemastasi? Jaa se myös muille.

Yhteistyöllä parempi työpaikka

gtvtr1Gofore sijoittui tänä vuonna Suomen kolmanneksi parhaaksi työpaikaksi Great Place to Work -tutkimuksen yleisessä sarjassa. Lisäksi Gofore niitti mainetta pääsemällä samassa tutkimuksessa myös Euroopan parhaiden työpaikkojen joukkoon. Tutkimustulokset osoittavat, että goforelaiset selvästi viihtyvät työssään.
 
Goforessa työviihtyvyyteen on panostettu systemaattisesti koko yrityksen olemassaolon ajan. Vuonna 2012 työviihtyvyyttä haluttiin kehittää entistä työntekijälähtöisemmäksi ja perustettiin Goforen työviihtyvyystyöryhmä (GTVTR) vastaamaan työssä jaksamiseen sekä viihtymiseen liittyvien kehitysideoiden toimeenpanosta. Työryhmään kuuluu työntekijöiden ohella firman johtoa, markkinoinnista, Crew Services -palvelusta ja osaamisen kehittämisestä vastaavia henkilöitä. Kaikkiaan työryhmän palavereihin osallistuu kymmenkunta jäsentä.
Työsuojelutoiminta on kiinteä osa työviihtyvyystyöryhmää. Vaaleilla valittavat työsuojeluvaltuutettu ja kaksi varavaltuutettua kuuluvat kaksivuotisen toimikautensa ajan työviihtyvyystyöryhmään. Työsuojelutoiminta on tällä mekanismilla jatkuvassa yhteydessä firman johtoon ja työntekijöihin. Muut jäsenet valitaan vaaleilla kerran vuodessa. Työsuojelutoimintaan liittyviä asioita käsitellään aina tarpeen mukaan kuukausipalavereissa.
Perustamisesta lähtien työryhmä on kokoontunut kuukausittain parin tunnin palavereihin, joihin osallistuu edustajia sekä Tampereelta että Helsingistä. Palavereissa käsitellään lukuisia päivittäiseen työviihtyvyyteen liittyviä asioita. Esimerkiksi useamman henkilön toiveesta päätettiin hankkia hedelmiä aina saataville kaikille toimistoillemme. Avokonttorissa melu on väistämätön ongelma, ja monet käyttävätkin kuulokkeita musiikin kuunteluun ja keskittymiseen. Työntekoa helpottamaan päätettiinkin hankkia kaikille Spotify Premium -tilit.
Työryhmä suunnittelee ja toteuttaa myös pidemmän tähtäimen tavoitteita, jotka tukevat yrityksen muita arvoja. Esimerkiksi nykyisin etuusvalikoimaan kuuluu sairaan lapsen hoitopalvelu, mikä käytännössä tarkoittaa sitä, että työntekijä voi tehdä työtään ja Gofore maksaa sairaan lapsen hoitokulut, eikä työntekijälle synny verotettavaa lisätuloa.
Kuukausittain käsiteltävät teemat liittyvät esimerkiksi uuden työntekijän perehdyttämiseen, osaamisen kehittämiseen, palkitsemiseen, työsuhde-etuihin, henkilöstökyselyiden läpikäyntiin ja kehityskohteiden tunnistamiseen sekä ratkaisujen miettimiseen. Työryhmän rooli on siis huomattavasti laajempi kuin yksittäisten tapahtumien järjestäminen, mikä sekin on toki tärkeässä osassa työssäjaksamisen ja -viihtymisen kokonaisuudessa.
gtvtr
Kehitysehdotukset, olivat ne miten pieniä tahansa, otetaan vastaan ja käsitellään. Työviihtyvyystyöryhmä on toimintansa aikana päättänyt kymmenien ideoiden täytäntöönpanosta ja valvonut niiden toteutumista säännöllisesti. Yhdessä tekeminen ja järjestelmällinen kehittäminen ovat meidän hyvän työpaikan resepti. Muun muassa tästä lisää jatkobloggauksessani Miksi voimme hyvin yhdessä?
 

Avatar

Janne Pehkonen

Janne on kokenut julkisen sektorin kokonaisarkkitehti, joka uskoo ihmiskeskeiseen hyvinvointiyhteiskuntaan. Hän on suunnittelemassa tulevaisuuden Suomea, jossa asiakaskeskeisen ajattelun paradigman muutoksen ja digitaalisen transformaation kautta ihminen nostetaan keskiöön.

Piditkö lukemastasi? Jaa se myös muille.

Gofore on vuoden 2015 aikana vahvistanut kehityskumppanuuttaan Helsingin yliopiston kanssa. Palvelualueidemme laaja hyödyntäminen asiakkuudessa, toimialatuntemuksen kasvaminen ja korkeakoulusektorin haasteiden sekä kehityskohteiden tunnistaminen ovat edesauttaneet kumpaakin osapuolta tavoitteidensa saavuttamisessa. Helsingin yliopistolle kansainvälinen digitaalinen näkyvyys on strateginen tavoite. Digitaalisuuden haasteita ratkaiseva yhteistyömme sopii myös täydellisesti Goforen missioon ja visioon.
Goforen vahva panostus asiakasyhteistyön kehittämiseen alkaa tuottamaan hedelmää. Olemme myös kehittäneet itseämme asiakkaan arvokokemuksen ymmärtämisessä sekä siinä, miten voimme visualisoida arvokokemuksen kehittymistä yhdessä asiakkaan ja toimittajan henkilöstön kesken. Työtä on tarkoitus jatkaa entistäkin kovemmalla vauhdilla vuonna 2016.
Olemme laajentaneet projektitoimituksiamme monelle eri taholle. Teemme yhteistyötä Helsingin yliopiston uuden verkkopalvelun kehittämisen lisäksi mm. digitaalisten opetus- ja oppimisympäristöjen, koulutustarjonnan kehittämisen, Kansalliskirjaston verkkosivujen, Kansalliskirjaston digitoitujen aineistojen esitysjärjestelmän ja avoimen yliopiston palveluiden saralla. Olemma myös mukana kehittämässä Helsingin yliopiston sisäisen Service Deskin ja Helpdeskin palveluita. Lisäksi teemme konsultointityötä mm. projektien menetelmäosaamisen, käyttäjäkokemuksen kehittämisen ja avoimen datan alueilla.
Yliopistosektorin korkean kustannusten säästöpaineen vuoksi toimintamme tähtää tehokkaaseen ja asiakkaan tavoitteiden mukaiseen it-toimintojen tehostamiseen. Selviä kustannushyötyjä onkin jo todettavissa mm. uuden verkkopalvelun sisällönsyötön helppouden vuoksi. Lisäksi koulutustarjonnan käytettävyystestauksesta on saatu erittäin hyviä tuloksia.
Kerromme lisää kumppanuudestamme 25.11. järjestettävässä aamiaistilaisuudessa otsikolla: Digitaalisesti vaikuttavaksi – Helsingin yliopiston uusiwww-projektin tarina. Tilaisuuden isäntinä toimivat @HelsinkiUniUX ja @GoforeOyIlmoittaudu pikaisesti, 30 ensimmäistä mahtuu mukaan.

Avatar

Ville Nordberg

Ville vastaa Goforen liikenne- ja opetussektorin asiakkaista. Hän on kiinnostunut asiakkaan kokemasta arvosta sekä digitalisaation tuomista mahdollisuuksista liiketoiminnan kehittämisessä.

Piditkö lukemastasi? Jaa se myös muille.