Sanasto
Ohjelmointirajapintojen suunnittelun tärkeimmät termit ja lyhenteet.
A
Asiakaskeskeisyys
Asiakaskeskeisyys on periaate, jossa palvelut ja toimintamallit suunnitellaan asiakkaan tilanteesta ja näkökulmasta käsin niin, että ne tuottavat arvoa asiakkaalle mahdollisimman sujuvasti ja vaivattomasti.
E
Elämäntapahtuma
Elämäntapahtumalla tarkoitetaan tilannetta, jossa henkilön tai yrityksen elämässä tapahtuu muutos, joka edellyttää asiointia useiden viranomaisten tai eri toimijoiden kanssa.
Euroopan Yhteentoimivuuskehys (EIF)
EIF (European Interoperability Framework) on strateginen ja rakenteellinen ohjauskehys, joka määrittelee periaatteet, suositukset ja tasot, joiden avulla julkiset tietojärjestelmät ja palvelut voivat vaihtaa tietoa ja toimia yhdessä yli rajojen.
Extensible Markup Language, XML
XML on World Wide Web Consortiumin 1990-luvulla kehittämä, HTML-kieltä muistuttava metakieli, jolla kuvataan tiedon rakenne ilman ennalta määrättyjä koodeja.
G
GraphQL
GraphQL on Facebookin (nykyisin Meta) vuonna 2012 kehittämä ja vuonna 2015 avoimeksi standardiksi julkaistu kyselykieli ja rajapintateknologia. Sitä käytetään asiakas- ja palvelinohjelmistojen väliseen tiedonhakuun. GraphQL on ohjelmointirajapintojen kyselykieli ja suoritusmoottori, jonka avulla asiakas voi pyytää täsmälleen tarvitsemansa datan yhdellä pyynnöllä.
H
Hub and spoke -malli
Mallille ei ole vakiintunutta suomen kielen sanaa. Mallissa tieto liikkuu keskitetyn yhteyspisteen (hub) kautta eri tietojärjestelmiin (spoke). Alla olevassa kuvassa numeroidut pallot (1-8) ovat eri tietojärjestelmiä. Esimerkiksi integraatioväylä toimii tällaisena keskitettynä pisteenä. Usein Hub and spoke -mallin toimintaperiaatetta verrataan puhelinkeskuksen toimintaperiaatteeseen.

Hypertekstin tiedonsiirtoprotokolla (Hypertext Transfer Protocol, HTTP)
Alun perin vuonna 1991 julkaistu tilaton protokolla, joka avulla World Wide Web -järjestelmässä voidaan jakaa resursseja. Se perustuu TCP/IP -kuljetusprotokollaan ja arkkitehtuuriin, jossa on kaksi roolia: asiakas ja palvelin. Http on standardisoitu ja sen viimeisin versio on http/3 (RFC 9114), joka julkaistiin kesäkuussa 2022.
I
Integraatio
Vähintään kahden yhdistämistä kokonaisuudeksi. Voidaan toteuttaa kymmenillä eri tyyleillä. Integraatiomalli (integration pattern) määrittelee, miten integraatio toteutetaan käytännössä. Ohjelmointirajapinta helpottaa integraation tekemistä.
Integraatio palveluna (Integration platform as a service, IPAAS)
Laaja kattokäsite, jonka ominaisuudet ja käyttötavat vaihtelevat toimialan mukaan. Organisaation tietovirtoja hallitaan pilvipalvelun avulla. Ipaas-alustoissa on usein helppokäyttöisiä työkaluja, joiden avulla liiketoiminta pystyy rakentamaan integraatioita myös ilman IT-osaston apua.
J
JavaScript Object Notation, JSON
XML:ää yksinkertaisemmaksi suunniteltu dataformaatti, joka perustuu vuonna 1999 julkaistuun standardiin. Helppo lukea, ymmärtää ja kirjoittaa. Rakentuu kokoelmasta nimi- ja arvopareja kaarisulkeilla merkittyjen objektien sisään. Riippumaton ohjelmointikielestä. Lue lisää json.org-sivuilta.Avautuu uuteen ikkunaan.
Järjestelmäintegraatio (Systems Integration)
Ajattelutapa, jolla hahmotetaan organisaation tietoteknistä arkkitehtuuria. Se on myös kokoelma toimintatapoja, joiden avulla tietotekniset resurssit saadaan valjastettua mahdollisimman hyvin (liike)toiminnan tarpeisiin.
K
Kehittäjäkokemus
Samanlainen kuin käyttäjäkokemus (User Experience, UX), mutta keskittyy ohjelmistoa hyödyntäviin ohjelmistokehittäjiin. Hyvä kehittäjäkokemus säästää aikaa, rahaa, pienentää riskejä ja virheitä.
Kokonaisarkkitehtuuri tai yritysarkkitehtuuri (Enterprise Architecture, EA)
Malli, jonka avulla jäsennetään organisaation toimintaa toiminnan, tiedon, tietojärjestelmien ja teknologian näkökulmista.
- Toiminta-arkkitehtuurissa kuvataan toiminnalliset rakenteet.
- Tietoarkkitehtuurissa kuvataan organisaation käsittelemät tiedot ja näiden rakenteet sekä keskinäiset suhteet.
- Tietojärjestelmänäkökulmassa käsitellään tietoa käsittelevät sovellukset ja tietokoneohjelmat (tai tietojärjestelmät).
- Teknologia-arkkitehtuurissa käsitellään teknologista infrastruktuuria.
Aiemmin tätä työtä tehtiin esimerkiksi JHS-179 (Kokonaisarkkitehtuurin suunnittelu ja kehittäminen) mukaisesti.
Tutustu Kokonaisarkkitehtuuri toiminnan kehittämisessä -oppaaseen.
L
Liiketoimintatapahtuma
Oikeushenkilön (esimerkiksi yrityksen tai yhdistyksen) toimintaan liittyvä tilanne tai asiointi, jota digitaalisen palvelun kontekstissa käsitellään samalla periaatteella kuin elämäntapahtumia.
Löyhä sidonta (loose coupling)
Mallissa jokainen palvelu on itsenäinen ja niiden kehittäminen, poistaminen käytöstä tai vaihtaminen ei vaikuta muihin palveluihin.
M
Mikropalvelu (Microservice)
Ohjelmistoarkkitehtuurityyli, jossa ohjelma rakennetaan kokoelmasta pieniä palveluja, jotka ovat (liike-)toimintalähtöisesti rakennettuja.
Mikropalvelut viestivät toisilleen ohjelmointirajapintojen avulla. Niitä on helppo kirjoittaa uusiksi, lisätä tai vähentää liiketoimintatarpeiden mukaan. Mikropalvelu voidaan rakentaa itsenäisesti ja sitä voi ajatella moduulina.
Moduli (Modular programming)
Ohjelmiston itsenäinen osa, jolla on syöttötiedot, tulostiedot ja oma toiminnallinen tehtävä. Mikä tahansa monimutkainen kokonaisuus voidaan koota moduuleista eli suunnitella modulaarisen (ohjelmisto-)arkkitehtuurin avulla. Ajatus kehitettiin 1960-luvulla suurissa ohjelmistoissa, jossa se mahdollisti uudelleenkäyttöä ja myöhemmin yksityiskohtien (toiminnallisen tehtävän yksityiskohdat) piilottamisen.
Monoliitti tietokoneohjelma (Monolithic application)
Ohjelmisto, joka koostuu yhdestä suuresta kokonaisuudesta. Sen vastakohtana mainitaan usein mikropalveluarkkitehtuurityyli, joka rakentuu pienistä osista. Monoliittisessa ohjelmistoarkkitehtuurissa yksi sovellus huolehtii useimmista tai kaikista toiminnoista. Vanhoja monoliittiohjelmistoja muokataan ja korvataan usein pala kerrallaan mikropalveluiksi.
MQTT-protokolla (Message Queuing Telemetry Transport, MQTT)
MQTT on esineiden internetissä (Internet of Things, IoT) hyödynnettävä protokolla. Protokolla on joukko sääntöjä, jotka määrittelevät, miten IoT-laitteet voivat julkaista ja tilata tietoja Internetissä. MQTT:tä käytetään ensisijaisesti IoT-laitteiden ja teollisen IoT:n (industrial IoT, IIoT) laitteiden – kuten sulautettujen laitteiden, antureiden, teollisuuden ohjelmoitavien logiikkaohjainten – väliseen viestinvaihtoon ja tiedonsiirtoon.
N
Nollaluottamuksen turvallisuusmalli (Zero trust tai Zero Trust Architecture, ZTA)
Vuonna 1994 Stephen Paul Marshin väitöskirjassaan esittelemä termi. Lähestymistapa tietojärjestelmien strategiaan, suunnitteluun ja toteutukseen. Mallin pääajatus on, ”älä koskaan luota, tarkista aina”. Se tarkoittaa, ettei käyttäjiin ja laitteisiin luoteta oletusarvoisesti missään tilanteessa. Ei edes silloin, kun ne esimerkiksi olisivatkin yhteydessä suljettuun verkkoon, kuten organisaation sisällä toimivaan lähiverkkoon.
O
Ohjelmisto (Software)
Tietokoneohjelma ja sen dokumentaatio.
Ohjelmisto palveluna (Software as a service, Saas)
Ohjelmisto palveluna on ohjelmiston jakelumalli, jossa palvelun tarjoaja ylläpitää ja kehittää ohjelmistoa omilla palvelimillaan ja tarjoaa palvelua asiakkailleen internetin välityksellä. Palvelusta maksetaan usein käytön mukaisesti: kuukausittain tai vuosittain.
Ohjelmistotestaus (Software testing)
Ohjelmiston käyttäytymisen tutkimista, joka avulla lähestytään varmuutta siitä, että ohjelmisto toimii odotetulla tavalla. Validoinnin avulla selvitetään, että ohjelmisto vastaa tilaajan tavoitteita ja tarpeita. Verifioinnilla varmistetaan, että ohjelma on vaatimusten, suunnitelmien ja ohjeiden mukainen. Verifioinnin voi usein automatisoida, mutta validointia ei.
Ohjelmointirajapinta (Application Programming Interface, API)
Ohjelmointirajapinta määrittelee, miten ohjelma tai sen osa tarjoaa tietoja tai palveluita sovelluksille tai muille tietojärjestelmille.
Tietoa tarjoava datarajapinta voi käsitellä dataa, jolloin sen kautta saa luettua palvelun sisältämän datan toisiin tietojärjestelmiin. Esimerkki datarajapinnasta on kansalaisaloite.fi -sivun rajapinta, joka kertoo kansalaisaloitteiden tietoja.
Toiminnallinen ohjelmointirajapinta tarjoaa myös laskenta-algoritmeja tai mahdollisuuden muuttaa tietojärjestelmän tietoja ohjelmointirajapinnan kautta. Esimerkkejä toiminnallisista rajapinnoista ovat muun muassa
- Helsingin seudun liikenteen reittioppaan ohjelmointirajapinta, joka tarjoaa reititysalgoritmin
- kansainvälinen Open311-rajapintastandardi, jota tukeviin kaupunkien palautejärjestelmiin voi tehdä vikailmoituksia.
OpenAPI
Vuodesta 2010 kehitetty RESTful-arkkitehtuurityyliä noudattavien ohjelmointirajapintojen kuvaustapa. Aiempi nimi oli aiemmin Swagger. Kuvaustapa on avoin ja Linux Foundation (säätiön) tukema. Kuvauksesta on mahdollista luoda automaattisesti sekä asiakkaan että palvelimen toteutuksen ohjelmointikoodien tyhkäversiot eri ohjelmointikielillä, dokumentaation, ohjelmistotestejä ja muuta. Lue lisää openapis.org-sivustolta.Avautuu uuteen ikkunaan.
Open Authorization (OAuth)
Protokolla pääsyoikeuksien välittämiseen palvelusta toiseen ilman salasanan tai tunnuksien uudelleen välittämistä. Esimerkiksi Amazon, Google, Facebook, Microsoft ja Twitter tunnuksien avulla voi kirjautua kolmannen osapuolen sovelluksiin ja palveluihin. Käytetään ohjelmointirajapinnoissa pääsyoikeuksien välittämiseen.
P
Pisteestä pisteeseen -integraatio (Point-to-Point)
Tässä mallissa tietoa siirretään suoraa tietojärjestelmästä toiseen. Se on kaikista vanhin tapa siirtää tietoa eri tietojärjestelmien välillä. Käytännössä se toteutetaan usein paikallisten skriptien ja ohjelmien avulla. Monimutkaisissa kokonaisuuksissa tekniikkaa on usein toteutettu eri teknologioilla, eri henkilöiden toimesta ja eri aikoina. Usein Point-to-Point -integraatioita on rakennettu tietojärjestelmien hankinnan yhteydessä vuosien tai vuosikymmenien aikana.
Usein vähän kerrallaan rakentuvasta kokonaisuudesta kehittyy ylläpidon ja kehityksen kannalta vaikeasti hallittava sekä usein erittäin monimutkainen kokonaisuus. Jos esimerkiksi kahdeksan eri tietojärjestelmää (n=8) integroidaan tällä menetelmällä toisiinsa, syntyy n(n-1)/2 integraatiota eli 8(8-1)/2 = 28 kappaletta.

R
RESTful-arkkitehtuurityyli (REST)
Yleisimmin käytetty ohjelmointirajapintatyyli. Arvioiden mukaan yli 80 prosenttia internetin ohjelmointirajapinnoista on toteutettu tällä arkkitehtuurityylillä.
S
Salattu Hypertekstin tiedonsiirtoprotokola (Hypertext Transfer Protocol Secure, HTTPS)
Http-protokollan ja TLS/SSL-protokollan yhdistelmä, jota käytetään suojattuun tiedonsiirtoon tietoverkon, yleensä internetin, välityksellä. TLS-salausta käytettäessä tarvitaan varmenne. Https-liikennettä ei tallenneta välityspalvelimien välimuisteihin.
Sovellus (App)
Ohjelmisto on laajempi käsite kuin sovellus. Monipuolisempaa ohjelmistoa pystyy usein räätälöimään. Sovellus on yksinkertaisempi. Aiemmin sovelluksia käytettiin vain mobiililaitteissa – puhelimissa ja tableteissa – joiden käyttöjärjestelmänä on Android tai iOS. Ohjelmistot asennetaan tietokoneelle. Viime vuosien aikana sovelluksia on julkaistu myös Windows-käyttöjärjestelmälle sovelluskaupan kautta. Eli tietokoneella käytetään nykyään sekä tietokoneohjelmia että sovelluksia. Esimerkiksi Windows 11 -käyttöjärjestelmässä voi hyödyntää Android-pohjaisia sovelluksia.
Spagetti-arkkitehtuuri (Spaghetti architecture)
Usein vuosikymmenien aikana rakentunut erittäin monimutkainen kokonaisuus, jossa erilaisia ohjelmia on hankittu eri tavoin. Ohjelmia kirjoitettu eri ohjelmointikielillä, eri henkilöiden toimesta ja eri tekniikoilla. Tietojärjestelmiä on ostettu valmiina, räätälöity ja osa voi olla valmisohjelmistoja. Vähänkin suuremmalla organisaatiolla on yli 100 tietojärjestelmää käytössä eri käyttötarkoituksiin. Kokonaisuudesta muodostuu sekasotkua ja monimutkaisuutta kuvaava spagetti, jota ei joko oikein hallitse kukaan tai joku rajatusti.
T
Teknologianeutraalius (Technological Neutrality)
Teknologianeutraalisuus ja tiedon siirrettävyys on Euroopan unionin yhteentoimivuuden periaatteiden tavoite numero viisi. Tavoitteella pyritään siihen, ettei julkisen hallinnon olisi pakko käyttää tiettyjä teknisiä toteutuksia tai tuotteita, tai esimerkiksi vain yhtä toimittajaa.
Tietojärjestelmä (Information system)
Järjestelmä, joka koostuu
- tiedoista
- tietoja käsittelevistä ihmisistä
- tietojenkäsittelylaitteista
- tiedonsiirtolaitteista
- tietoja käsittelevistä ohjelmista
- tietojen käsittelysäännöistä.
Sen tarkoitus on tehostaa tai helpottaa jotakin toimintaa tai tehdä toiminta mahdolliseksi.
V
Verkkopalvelu (Web service)
Ohjelmisto, joka on suunniteltu yhteensopivaan koneiden väliseen vuorovaikutukseen verkon välityksellä. Käytännössä termillä tarkoitetaan internetin yli toimivia ohjelmointirajapintoja.
Y
Yhtenäinen resurssin paikannin (Uniform Resource Locator, URL)
URL-osoite on internetissä käytettävä osoite. Se viittaa resurssiin, joka määrittää sen sijainnin tietoverkossa ja mekanismin, miten sen voi hakea. URL-osoitetta hyödynnetään myös ohjelmointirajapinnoissa. Sen avulla kerrotaan niiden sijainti tietoverkossa.