Mitä rajapinta tarkoittaa?

Rajapinta tarkoittaa sovittua tapaa, jolla ohjelmisto antaa toiselle ohjelmistolle tietoa tai ottaa sitä vastaan. Se määrittää, mitä saa kysyä, missä muodossa kysytään ja millaisen vastauksen saa. Tarjouksissa ja ohjeissa siitä käytetään usein englanninkielistä lyhennettä API.

Rajapinnan ansiosta verkkokauppa voi kertoa kirjanpito-ohjelmalle uudesta myynnistä ilman, että kukaan kopioi tietoja käsin. Kumpikaan ohjelma ei pääse toisen sisälle. Ne vain vaihtavat viestejä, joiden muoto on sovittu etukäteen.

Yrittäjän kannalta rajapinta on ominaisuus, jota ei näe mutta jonka puuttumisen huomaa. Järjestelmä ilman rajapintaa on saari. Kaikki, mitä sinne viedään tai sieltä tuodaan, kulkee jonkun käsien kautta.

Rajapinta on kuin ravintolan ruokalista

Hyvä vertaus on ravintola. Asiakas ei mene keittiöön tekemään ruokaansa, vaan tilaa ruokalistalta. Ruokalista kertoo, mitä voi tilata ja miten, ja keittiö toimittaa annoksen. Asiakkaan ei tarvitse tietää, millä liedellä ruoka tehtiin.

Rajapinta on järjestelmän ruokalista. Se kertoo, mitä tietoja järjestelmästä voi pyytää ja mitä sinne voi lähettää. Järjestelmän sisällä voi muuttua paljon, mutta niin kauan kuin ruokalista pysyy samana, muiden järjestelmien ei tarvitse tietää muutoksista mitään.

Vertaus selittää myös rajat. Jos annosta ei ole listalla, sitä ei voi tilata, vaikka keittiössä olisi kaikki raaka-aineet. Jos järjestelmän rajapinta ei tarjoa esimerkiksi asiakkaan ostohistoriaa, sitä ei saa rajapinnan kautta ulos, vaikka tieto on järjestelmässä olemassa.

Ja jos ravintola muuttaa ruokalistaansa, vakiotilaus ei enää mene läpi. Juuri näin integraatio menee rikki, ja siihen palataan alempana.

Mitä integraatio tarkoittaa käytännössä?

Integraatio tarkoittaa käytännössä sitä, että kaksi järjestelmää on kytketty toisiinsa niin, että tieto kulkee niiden välillä itsestään. Rajapinta on ruokalista, integraatio on se, joka tilaa listalta oikeaan aikaan ja vie annoksen perille.

Tavallisia esimerkkejä pienessä yrityksessä ovat verkkokaupan tilaukset, jotka siirtyvät kirjanpitoon, ajanvaraukset, jotka ilmestyvät työntekijän kalenteriin, ja yhteydenottolomake, joka luo rivin asiakasrekisteriin. Jokaisessa on sama rakenne: tapahtuma yhdessä paikassa ja seuraus toisessa.

Integraatio on siis aina kahden järjestelmän ja yhden säännön yhdistelmä. Sääntö kertoo, mikä tieto siirtyy, mihin suuntaan, kuinka usein ja mitä tehdään, jos siirto epäonnistuu. Tuo viimeinen kohta unohtuu tarjouksista useimmin.

Yhteen suuntaan vai molempiin

Yksisuuntainen integraatio vie tietoa yhdestä järjestelmästä toiseen. Tilaus syntyy verkkokaupassa ja siirtyy kirjanpitoon, eikä kirjanpito lähetä mitään takaisin. Tällainen integraatio on yleensä yksinkertaisin rakentaa ja helpoin korjata.

Kaksisuuntaisessa integraatiossa tieto kulkee molempiin suuntiin. Tavallinen esimerkki on varastosaldo, kun samaa tuotetta myydään sekä myymälän kassalla että verkkokaupassa. Kun tuote myydään kassalla, saldon pitää laskea verkossa, ja päinvastoin. Aiheesta on kirjoitettu erikseen artikkelissa kassajärjestelmästä ja verkkokaupasta.

Kaksisuuntaisessa integraatiossa pitää päättää, kumpi järjestelmä on oikeassa, kun ne ovat eri mieltä. Jos saldo on kassalla viisi ja verkossa kuusi, toisen niistä on oltava totuus. Jos asiaa ei päätetä etukäteen, integraatio ratkaisee sen sattumanvaraisesti, ja virhe kertautuu.

Kysyä vai odottaa ilmoitusta

Integraatio voi saada tiedon kahdella tavalla. Se voi käydä säännöllisesti kysymässä, onko jotain uutta, tai järjestelmä voi ilmoittaa sille itse heti, kun jotain tapahtuu.

Ero on sama kuin noutopizzassa. Voit soittaa pizzeriaan viiden minuutin välein ja kysyä, onko tilaus valmis, tai pizzeria voi soittaa sinulle, kun se on. Ensimmäinen tapa toimii aina, mutta se kuormittaa molempia ja jättää viiveen. Jälkimmäinen on nopea, mutta vain jos pizzeria osaa soittaa.

Järjestelmien kohdalla kysyminen tarkoittaa viivettä. Jos integraatio kysyy kerran tunnissa, tieto voi olla tunnin vanhaa. Varastosaldossa tai varauskalenterissa tunti riittää myymään saman tuotteen tai ajan kahdesti. Siksi toimittajalta kannattaa kysyä, osaako järjestelmä ilmoittaa muutoksista itse.

Tiedostokin on integraatio

Kaikkien integraatioiden ei tarvitse olla reaaliaikaisia. Moni toimiva yhteys on tiedosto, joka viedään yhdestä järjestelmästä ja tuodaan toiseen kerran päivässä tai viikossa, joko käsin tai ajastettuna.

Se kuulostaa vanhanaikaiselta, ja se on usein juuri oikea ratkaisu. Jos kirjanpitäjä tarvitsee kuukauden myynnit kerran kuussa, reaaliaikainen integraatio on rahaa, joka ei tuota mitään. Tiedosto, jonka muoto on sovittu ja joka tuodaan aina samalla tavalla, riittää.

Tiedoston heikkous on ihminen sen välissä. Kun siirto on jonkun tehtävä, se jää joskus tekemättä tai tehdään kahdesti. Kun virheitä alkaa kertyä, se on merkki siitä, että pysyvää yhteyttä kannattaa harkita.

Miksi integraatio voi olla kallis?

Integraatio voi olla kallis, koska itse yhteys on harvoin sen työläin osa. Työ menee siihen, että kahden järjestelmän tiedot tarkoittavat eri asioita, poikkeuksia on enemmän kuin kukaan muistaa ja kaiken pitää toimia myös silloin, kun toinen järjestelmä on hetken poissa käytöstä.

Tarjouksessa integraatio näyttää usein yhdeltä riviltä: tilaukset kirjanpitoon. Käytännössä rivin takana on kymmeniä päätöksiä. Mitä tehdään palautukselle, osatoimitukselle, alennuskoodille, lahjakortille ja peruutetulle tilaukselle. Jokainen niistä on oma pieni integraationsa.

Hintaan vaikuttaa myös rajapinnan laatu. Hyvin dokumentoitu rajapinta, jossa on testiympäristö, lyhentää työtä selvästi. Huonosti dokumentoitu rajapinta tarkoittaa kokeilemista, eikä kokeilemiseen kuluvaa aikaa voi arvioida etukäteen.

Osa järjestelmien toimittajista veloittaa rajapinnan käytöstä erikseen tai tarjoaa sen vain kalliimmassa hinnoittelutasossa. Se kannattaa selvittää ennen kuin integraatiota aletaan suunnitella, koska se voi muuttaa koko laskelman.

Sama sana, eri merkitys

Kalleimmat yllätykset syntyvät sanoista, jotka näyttävät samoilta. Asiakas voi yhdessä järjestelmässä olla henkilö ja toisessa yritys, jolla on useita yhteyshenkilöitä. Hinta voi yhdessä olla verollinen ja toisessa veroton. Tuote voi yhdessä olla yksi rivi ja toisessa kymmenen kokoa ja väriä.

Ihminen ymmärtää nämä erot tilanteesta. Integraatio ei ymmärrä, vaan sille pitää kertoa jokaisesta tiedosta erikseen, mitä se vastaa toisessa järjestelmässä. Tämä työ vie usein enemmän aikaa kuin itse yhteyden rakentaminen.

Hyvä harjoitus ennen tarjouspyyntöä on kirjoittaa yhden tavallisen tilauksen tai asiakkaan tiedot paperille ja merkitä, missä muodossa kukin tieto on kummassakin järjestelmässä. Jos jo tämä tuntuu vaikealta, integraatio ei ole yksinkertainen, vaikka se näyttäisi sellaiselta.

Poikkeukset ja katkokset

Integraatio, joka toimii tavallisella tilauksella, on vasta puolivalmis. Varsinainen testi on se, mitä tapahtuu, kun asiakas peruu tilauksen, kun maksu epäonnistuu tai kun sama tilaus lähtee kahdesti.

Toinen testi on katkos. Jokainen järjestelmä on joskus hetken poissa käytöstä, ja integraation pitää tietää, mitä silloin tehdään. Hyvin rakennettu integraatio yrittää uudelleen ja ilmoittaa, jos ei onnistu. Huonosti rakennettu jättää tiedon siirtämättä eikä kerro siitä kenellekään.

Kysy tekijältä suoraan, mitä tapahtuu, jos kirjanpito-ohjelma on tunnin poissa käytöstä juuri silloin, kun tilauksia tulee. Jos vastaus on epämääräinen, integraatio on rakennettu vain hyvän päivän varalle.

Mitä järjestelmän toimittajalta kysytään rajapinnasta?

Järjestelmän toimittajalta kysytään, onko rajapinta olemassa, mitä sen kautta voi tehdä, mitä se maksaa ja miten sen muutoksista kerrotaan. Kysymykset kannattaa esittää ennen kuin järjestelmä valitaan, koska sen jälkeen neuvotteluasemasi on heikompi.

  • Onko järjestelmässä rajapinta, ja onko sen dokumentaatio saatavilla?
  • Mitä tietoja rajapinnan kautta voi lukea ja mitä sinne voi kirjoittaa?
  • Maksaako rajapinnan käyttö erikseen, ja kuuluuko se kaikkiin hinnoittelutasoihin?
  • Onko käytölle rajoja, esimerkiksi kuinka monta kyselyä saa tehdä tunnissa?
  • Osaako järjestelmä ilmoittaa muutoksista itse, vai pitääkö sitä kysyä?
  • Onko käytössä testiympäristö, jossa integraatiota voi kokeilla ilman oikeita asiakastietoja?
  • Miten ja kuinka paljon etukäteen rajapinnan muutoksista ilmoitetaan?

Viimeinen kysymys on pitkällä aikavälillä tärkein. Rajapinta, joka muuttuu ilman ennakkoilmoitusta, rikkoo integraatiot yllättäen, ja korjauksen maksaa yleensä asiakas.

Kysy myös, saatko kaikki omat tietosi ulos, jos lopetat palvelun käytön. Rajapinta on usein paras tapa siihen, ja jos sitä ei ole, lähteminen voi olla vaikeaa.

Kun rajapintaa ei ole

Kaikissa järjestelmissä ei ole rajapintaa, tai se on niin suppea, ettei siitä ole apua. Silloin vaihtoehtoja on muutama, eikä mikään niistä ole yhtä hyvä kuin toimiva rajapinta.

Ensimmäinen on tiedostosiirto, jos järjestelmä osaa viedä ja tuoda tiedostoja. Toinen on järjestelmän vaihtaminen, mikä kuulostaa raskaalta mutta on joskus pitkällä aikavälillä halvin vaihtoehto. Kolmas on ohjelma, joka käyttää järjestelmää ihmisen tavoin klikkailemalla sen näkymiä.

Kolmatta kannattaa välttää, jos liiketoiminta nojaa siihen. Kun järjestelmän näkymä muuttuu, vaikka vain yhden painikkeen paikka, klikkaava ohjelma lakkaa toimimasta. Se on kuin tilaisi ravintolassa osoittamalla viereisen pöydän lautasta. Onnistuu, kunnes pöytä vaihtuu.

Kuka korjaa integraation, kun jokin muuttuu?

Integraation korjaa se, jonka tehtäväksi se on kirjallisesti sovittu. Jos sitä ei ole sovittu, sitä ei käytännössä korjaa kukaan, koska jokainen osapuoli voi perustellusti sanoa, ettei vika ole sen järjestelmässä.

Integraatiossa on tavallisesti kolme osapuolta: kahden järjestelmän toimittajat ja integraation tekijä. Kun yhteys katkeaa, ensimmäinen toimittaja kertoo rajapintansa toimivan, toinen kertoo saman, ja tekijä kertoo muutoksen tulleen jommaltakummalta. Kaikki voivat olla oikeassa, eivätkä tilaukset silti siirry.

Siksi integraatiolla pitää olla omistaja. Se voi olla tekijä ylläpitosopimuksella tai joku yrityksen sisällä, mutta sen pitää olla yksi nimetty taho, joka selvittää vian riippumatta siitä, kenen järjestelmästä se lopulta löytyy.

Tavallisimmat integraation rikkovat muutokset ovat rajapinnan uusi versio, vanhentunut käyttöoikeusavain, uusi pakollinen tieto ja salasanan vaihto. Mikään näistä ei ole harvinainen, ja jokainen niistä osuu kohdalle jossain vaiheessa.

Mitä ylläpitosopimukseen kirjataan

Integraation ylläpitosopimukseen kirjataan, kuka seuraa yhteyden toimintaa, kuka saa hälytyksen, kuinka nopeasti vikaan reagoidaan ja kuka vastaa rajapintojen versiomuutoksista. Ilman näitä sopimus on lupaus olla tavoitettavissa, ei lupaus korjata.

Samaan sopimukseen kuuluu dokumentaatio. Lyhyt kuvaus siitä, mitä integraatio tekee, mitä tunnuksia se käyttää ja millä palvelimella se toimii, riittää. Kun tekijä vaihtuu, uusi tekijä aloittaa kuvauksesta eikä arvailusta.

Tunnukset ja avaimet kuuluvat yrityksen nimiin. Integraatio, joka toimii tekijän henkilökohtaisilla tunnuksilla, lakkaa toimimasta sinä päivänä, kun yhteistyö päättyy.

Valmis liitännäinen vai räätälöity integraatio

Monelle yleiselle yhdistelmälle on olemassa valmis liitännäinen. Verkkokauppa-alustan lisäosa, joka vie tilaukset tunnettuun kirjanpito-ohjelmaan, on yleensä halvempi ja nopeampi kuin oma integraatio, ja se kannattaa katsoa ensin.

Valmiin liitännäisen rajat tulevat vastaan, kun oma prosessi poikkeaa tavallisesta. Jos liitännäinen siirtää tilauksen mutta ei osaa osatoimitusta, joku korjaa osatoimitukset käsin, ja se työ jatkuu niin kauan kuin liitännäinen on käytössä.

Räätälöity integraatio rakennetaan omien sääntöjen mukaan, ja siitä on eniten hyötyä, kun prosessi on liiketoiminnan ydin. Kevyemmistä ratkaisuista ja valmiista automaatiotyökaluista on kirjoitettu artikkelissa automaatiosta pienyrityksessä, ja räätälöidyn kehityksen lähtökohdista kerrotaan räätälöityjen ohjelmistojen sivulla.

Ennen kuin tilaat integraation

Kirjoita ensin auki, mitä haluat tapahtuvan, ilman teknisiä sanoja. Mikä tapahtuma käynnistää siirron, mitä tietoa siirtyy, mihin suuntaan, kuinka nopeasti ja kumpi järjestelmä on oikeassa, jos ne ovat eri mieltä.

Lisää perään poikkeukset, jotka tunnet omasta arjestasi: palautukset, peruutukset, puuttuvat tiedot ja se yksi asiakas, joka tilaa aina vähän eri tavalla. Tekijä ei voi tietää niistä, ellei joku kerro.

Tällä sivun mittaisella kuvauksella saat vertailukelpoisia tarjouksia. Ilman sitä jokainen tekijä arvaa, mitä tarkoitat, ja halvin tarjous on usein se, joka arvasi yksinkertaisimman version.

Yhteenveto

Rajapinta on järjestelmän ruokalista: sovittu tapa pyytää ja lähettää tietoa. Integraatio on sen käyttöä, eli sääntö, jonka mukaan tieto kulkee järjestelmästä toiseen ilman käsin kopiointia.

Integraation hinta ei synny yhteydestä vaan siitä, että tiedot tarkoittavat eri järjestelmissä eri asioita ja poikkeuksia on paljon. Siksi ennen tilausta kirjoitetaan auki säännöt ja poikkeukset, ja järjestelmän toimittajalta kysytään rajapinnan sisältö, hinta ja muutoskäytäntö.

Ennen kuin mitään rakennetaan, sovitaan kirjallisesti, kuka korjaa, kun jokin muuttuu. Muutos tulee varmasti, ja silloin ratkaisee, onko integraatiolla omistaja.