Järjestelmäintegraatiot ovat haasteellisen vaikea aihe kuvata nopeasti riittävällä syvyydellä. Aiheeseen liittyy paljon tasoja, joilla integraatioista voidaan saada parhaimmillaan kokonaisuudelle suurta lisäarvoa tuottava perusta. Artikkelimme kuvaa aiheeseen liittyvät peruskäsitteet ja antaa vastauksen siihen, mitä älykkäillä järjestelmäintegraatioilla tarkoitetaan.
Yksinkertaistettuna integraatiolla tarkoitetaan ohjelmistoratkaisua, joka siirtää tietoa kahden tai useamman järjestelmän välillä. Integraatio on pysyväisluonteinen ratkaisu eli tietoa siirretään pitkäaikaisesti jonkun triggerin laukaisemana järjestelmästä toiseen ja tietoa yleensä myös käsitellään siirron aikana. Käytännön esimerkki yksinkertaisesta integraatiosta voisi olla seuraavanlainen:
Joka yö klo 00:00 integraatio noutaa Työajanseurantajärjestelmästä (lähdejärjestelmä) tekijöiden kirjaamat laskutettavat työtunnit. Integraatio noutaa myös lähdejärjestelmästä työtuntien selitteet, joihin on kuvattu tarkemmin laskutuksen perusteena olevien töiden kuvaukset. Integraation aikana tiedot yhdistetään toisiinsa sekä muunnetaan Laskutusjärjestelmän (kohdejärjestelmä) ymmärtämään muotoon. Tämän jälkeen tiedot siirretään kohdejärjestelmään, minkä lopputuloksena integraatio tuottaa kohdejärjestelmään asiakkaittain valmista laskutusaineistoa, joissa työtunnit selitteineen ovat automaattisesti valmiina laskun lähettämistä varten.
Jo edellisestä yksinkertaisesta esimerkistä voi ymmärtää helposti integraatioiden hyödyn. Aikaa säästyy manuaaliselta työltä rutkasti ja myös inhimillisten virheiden mahdollisuus aineiston siirtoon liittyen poistuu. On myös helppoa kuvitella hyötyjen eksponentiaalinen kasvu, kun integroitavien ohjelmistojen määrä kasvaa.
Yllä kuvatun kaltainen integraatio on ns. point-to-point -integraatio, jossa järjestelmät juttelevat suoraan toistensa kanssa ja integraatio on osa järjestelmän omaa koodia. Monesti yrityksellä on kuitenkin useita järjestelmiä, joiden pitäisi välittää tietoa toisilleen ja point-to-point -integraatioilla päädytään ao. kuvan kaltaiseen kaoottiseen tilanteeseen.
Point-to-point -integraatioiden verkosto
Lukuisat point-to-point -integraatiot muodostavat helposti ”himmelin”, joka on riskialtis, ei skaalaudu helposti ja on erittäin vaikeasti hallittavissa ja ylläpidettävissä. Point-to-point -integraatioiden ongelmista myös käytännön esimerkki:
”It-osaston Markku” on tehnyt muutaman ensimmäisistä integraatiosta, mutta hän ei oikein ollut dokumentointi-ihmisiä ja kun Markku vaihtoi työpaikkaa, niin kenelläkään ei ole oikein tarkkaa käsitystä, että miten integraatiot on toteutettu. Osa integraatioista ei toimi ja on jäänyt hyödyntämättä kokonaan. Markun jälkeen Maija on jatkanut integraatioiden tekemistä aina sen mukaan mikä osasto on yrityksessä pitänyt kovinta ääntä tarpeistaan, mutta nyt Maijakin on saanut uuden työpaikan ja on vaihtamassa töitä. On melkoinen kiire saada Maijan tilalle uusi ihminen, koska integraatiot ovat hyvin kriittisessä roolissa yrityksen liiketoiminnassa. Ei voida käyttää ulkoista toimijaa apuna, koska integraatioihin perehtyminen vie liian paljon aikaa ja tulee kalliiksi. Myös uudella ihmisellä on lähes ylivoimainen työ ottaa iso määrä erilaisia integraatioita hallintaansa.
Useissa point-to-point -integraatioissa myös monitorointi ja virheiden jäljittäminen on vaikeaa sekä tietoturvaan jää väistämättä huolestuttavan isoja aukkoja.
Integraatioalusta on keskitetty tapa hallita integraatioita ja se vastaa point to point -integraatioiden ongelmiin tehokkaasti.
Keskitetty integraatioiden ajoalusta antaa avaimet hallitun integraatioarkkitehtuurin suunnittelulle ja toteuttamiselle. Hallitulla integraatioarkkitehtuurilla pyritään olemaan kehitystä askel edellä ja varaudutaan tulevaisuuden tarpeisiin niin, että kasvun ja kehityksenkin myötä myös integraatiot (jotka muuten kasvun myötä muuttuvat aina vain tärkeämmäksi) skaalautuvat mukana, eivätkä muodosta jarrua kehitykselle.
Keskitetty integraatioalusta
Integraatioalusta tuo mukanaan lukuisia hyviä puolia:
Nykyään aletaan enemmän ja enemmän siirtymään isoista monoliitti-ohjelmistoista toisiinsa integroitujen mikropalvelujen maailmaan. Mikropalveluista pystytään rakentamaan huomattavan paljon joustavampia kokonaisuuksia, joissa skaalautuminen on helppoa, voidaan käyttää eri ohjelmointikieliä, ylläpitoa voidaan tehdä kokonaisuuden osa kerrallaan, hyviä puolia on lukemattomia. Isot teknologiajätit kuten Google, Netflix, Amazon jne ovat jo pitkään hyödyntäneet mikropalveluarkkitehtuuria kaikessa ohjelmistotuotannossaan ja pienemmät toimijat seuraavat kovaa vauhtia perässä.
Integraattori, jolla on kyky rakentaa mikropalveluja tai hyödyntää ohjelmistorobotiikkaa ja koneoppimista, pystyy tuomaan integroituun kokonaisuuteen näillä työkaluilla huomattavan suurta lisäarvoa.
Esimerkkinä lisäarvosta voisi olla vaikka integraation läpi kulkevan asiakaskohtaisen laskutustiedon hyödyntäminen volyymiin perustuvan hinnoittelun automatisoimiseen. Ohjelmistollisesti on helppoa luokitella asiakkaat ostovolyyminsa mukaan eri kategorioihin, jolloin esim. tarkoitusta varten kehitetty mikropalvelu pitää huolta, että asiakkaalla on laskutusjärjestelmässä aina oikea asiakashinnasto käytössään.
Yhdistettäessä mikropalveluita, koneoppimista ja ohjelmistorobotteja integraatiokokonaisuuteen, alamme puhumaan älykkäistä integraatioista.
Integraatioliiketoimintaankin on tullut mukaan low code -vaihtoehtoja, joiden hyödyntäminen perustuu visuaaliseen käyttöliittymään, vakioituun tapaan toimia, eikä koodaustaitoja tarvita kovin syvällisesti. Näille on paikkansa ja ne visualisoivat hyvin yrityksen tarpeiden näkökulmasta integraatioiden toteuttamista ja ovat hyviä työkaluja nimenomaan suhteellisen tunnettujen ohjelmistojen ja standardoidun lähtötilanteen kanssa toimittaessa.
Integraatioiden toteuttajalla kuitenkin lähes jokaisen yrityksen kanssa toimiessa vastaan tulee aina ainutlaatuinen joukko ohjelmistoja ja lähtötilannetta on hyvin vaikea standardoida. Usein kokonaisuudesta löytyy jokin vanha ohjelmisto, josta ei haluta luopua, ainakaan vielä. Jokin ohjelmisto, jonka API-rajapinnassa on puutteita tai API-rajapintaa ei ole olemassakaan. Jokin integroitavista ohjelmistoista hyödyntää jotain hyvin vanhaa tai vähän käytettyä teknologiaa. Ennalta arvaamattomia tekijöitä on usein paljon. Tällöin standardoidulla low code -alustalla ollaan hyvin nopeasti tilanteessa, jossa teknisiä ongelmia on liian paljon kierrettäväksi ja ollaan jo lähellä taas point-to-point -integraatioiden kaltaista kiertoteiden ”spagettia”. Low code -työkaluilla saa itsensä myös tehokkaasti lukittua tiettyyn toimittajaan, jolloin ei-standardoitujen ongelmien ratkaisu ja kustannusten kasvu tulevaisuudessa voi tulla yllätyksenä ja helppoa ulospääsyä ei ole.
Hallittu integraatioarkkitehtuuri rakentuu kokemuksemme mukaan parhaiten tehokkaan ajoalustan päälle ja lisäksi useimmissa tapauksissa yksilöllisesti koodatun ratkaisun varaan. Arkkitehtuuri ja ratkaisut voidaan rakentaa aidosti yrityksen primääritarpeiden pohjalta, eikä ratkaisuja toteuteta tekniikan ehdoilla. Näin pystytään ilman kompromisseja toteuttamaan asiakkaalle juuri heille optimaalisin integraatioperusta, joka palvele parhaalla teholla, taloudellisuudella ja joustavuudella pitkälle tulevaisuuteen.