4.2 Tietovarantokohtaiset rajapinnat ja rajapintatekniikat

Useat kilpailutyöt ovat rajapintoja olemassaoleviin avoimiin aineistoihin, joihin ei entuudestaan ole liittynyt rajapintapalvelua. Rajapintapalvelu on tekninen käyttöyhteys, jonka avulla tiedonkäyttäjä ottaa yhteyden tietovarannon tarjoajan palvelimelle ja noutaa tarvitsemansa aineiston. Rajapintapalveluiden käyttö edellyttää, että käytössä on ohjelmisto, joka tekee pyynnöt ko. palvelimelle. Käytännössä tämä tarkoittaa esim. paikkatieto-ohjelmistoja tai itse ohjelmoitua sovellusta.

Taulukossa 4 on yhteenveto kaikista tarkastelluissa töissä käytetyistä tietovarantokohtaisista rajapinnoista suosituimmuusjärjestyksessä. Yhteistä useimmille rajapinnoille on, että niiden käyttöön tarvitaan  API-avain (API key). Se on yksilöllinen tunniste, jota käytetään API:n käyttäjän tunnistamiseen. Avainta haetaan rajapinnan tarjoajalta. Toinen yhdistävä piirre on se, että useimmat rajapinnantarjoajat ovat rajoittaneet rajapintansa kautta tietokantaan tehtäviä hakuja johonkin tiettyyn määrään esim. vuorokaudessa tai tunnissa. Esimerkiksi HSL:n Reittioppaalla luku on 5000 hakua tunnissa.

Taulukko 4: Kilpailutöissä käytetyt rajapinnat:  kyseistä rajapintaa hyödyntävien kilpailutöiden lukumäärät ja prosenttiosuudet tarkastelluista 114 kilpailutyöstä

Rajapinta Töiden lkm Osuus (%)
Google Maps API (JS/Android/iOS) 14 12,3
HSL Reittiopas API (HTTP/XML/JSON ja XML-dump) 9 7,9
OpenStreetMap API (REST/ XML) 7 6,1
Googlen muut API:t (JS)* 6 5,3
Pääkaupunkiseudun palvelukartan API (REST/JSON/XML) 6 5,3
Maanmittauslaitoksen rajapinnat (REST/WMS/WMTS/WFS)** 5 4,4
Open Ahjo API (REST/JSON, XML) 3 2,6
Helsingin palauterajapinta (REST/XML/JSON) 2 1,8
Helsingin Sanomien Omakaupunki API (HTTP/JSON) 2 1,8
Here Maps API 2 1,8
HSL Poikkeusinfo API (HTTP/XML) 2 1,8
HSL Live (socket, HTTP) 2 1,8
Ilmatieteen laitoksen rajapinnat (WMS/WFS) 2 1,8
Matka.fi API (HTTP/XML ja XML-dump) 2 1,8
VR:n Junat kartalla (RSS/XML) (ei enää käytössä) 2 1,8
Tampere Public Transport SIRI (XML/JSON) 2 1,8
Tampere Reittiopas API (HTTP/XML ja XML-dump) 2 1,8
biomi.org:in Eduskunta-rajapinta 1 0,9
Facebookin Graph API (HTTP) 1 0,9
HelMet data API (HTTP/JSON/MarcXML) 1 0,9
HTML5 Geolocation API (JS) 1 0,9
Hyönteistietokanta API (JSON) 1 0,9
Kasviatlas API (REST/ JSON) 1 0,9
Kierrätys.info API (HTTP/XML) 1 0,9
kilpailijan tekemä rajapinta (ks. Ilmanlaatu rajapintana) (REST) 1 0,9
Linked Events API (REST/JSON) 1 0,9
Lintuatlas API (HTTP/XML/JSON) 1 0,9
Luonnontieteellisen keskusmuseon Löydös-järjestelmän API (HTTP/REST/JSON) 1 0,9
OpenWeatherMap API (HTTP/XML/JSON) 1 0,9
Liikenneviraston liikennetiedotteet (RSS) 1 0,9
SYKE:n luonnonsuojelualueet rajapinnasta (WMS) 1 0,9
Taltioni WS API 1 0,9
TieInfo API (REST/HTML/JSON) 1 0,9
Yleisradion RSS-lähteet 1 0,9

*    Fonts, Geocoding, Visualization, Places

**  karttakuvapalvelu (WMTS), kiinteistörajat ja nimistön kyselypalvelu (WFS), rasteriaineistojen palvelurajapinta (WMS)  

Google Maps API:en avulla Googlen karttapalvelun karttoja on mahdollista liittää verkkosivuille ja mobiilisovelluksiin. Tarjolla on JavaScript– ja Android-API:t sekä iOS SDK Applen mobiililaitteille. Helsingin seudun liikenteen Reittioppaan tietoihin pääsee käsiksi HTTP-rajapinnan kautta, josta tieto tulee XML– tai JSON-muodossa. Vaihtoehtoisesti reitti- ja aikataulutietokanta on saatavilla XML-muodossa yhtenä tiedostona (database dump), jota päivitetään kaksi kertaa viikossa [9].

XML  ja JSON ovat hyvin yleisiä formaatteja rajapinnoissa. XML (Extensible Markup Language) on merkintäkieli, jolla tiedon merkitys on kuvattavissa tiedon sekaan. XML:ää käytetään mm. formaattina tiedonvälitykseen eri järjestelmien välillä, ja se on sekä ihmiselle ymmärrettävä että koneluettava. Yksinkertainen esimerkki XML-muotoilusta (erään kyselyn tulos Pääkaupunkiseudun  palvelukartan REST-rajapinnasta):

<department> 
<id>SOTE</id>
<name__fi>Sosiaali- ja terveysvirasto, Helsinki</name__fi> <name__sv>Social- och hälsovårdsverket, Helsingfors</name__sv> <name__en>The Department of Social Services and Health Care, Helsinki</name__en> 
<abbr>SOTE</abbr>
<org__id>91</org__id> 
</department>

JSON (JavaScript Object Notation) on toinen yksinkertainen tiedonsiirtomuoto, jota on helppo käyttää JavaScript-ohjelmissa ja myös muissa ohjelmointiympäristöissä. Sama esimerkki JSON-notaatiota käyttäen:

{
"department": { 
"id": "SOTE", "name__fi": "Sosiaali- ja terveysvirasto, Helsinki", "name__sv": "Social- och hälsovårdsverket, Helsingfors", 
"name__en": "The Department of Social Services and Health Care, Helsinki",
"abbr": "SOTE", 
"org__id": 91 } 
}

Useiden rajapintapalveluiden, esim. THL:n SOTKAnetin, TieInfon tai kirjastot.fi:n Kirjastohakemiston, yhteydessä on mahdollista hyödyntää JSONP-tekniikkaa (JSON  with  Padding). Se on  yleisesti käytetty  tapa  mahdollistaa  JSON-datan  haku  selaimeen  eri  palvelimelta kuin missä web-sovellus sijaitsee, sillä normaalisti selaimet  estävät  tietoturvasyistä  palvelinten  välisen  suojaamattoman  JSON –liikenteen. Tekniikka toimii niin, että asiakaspuolella   JSON  -datan   sisältävää osoitetta kutsuttaessa annetaan kutsussa takaisinkutsufunktion  nimi,  jonka  tuloksena  saadaan  JSON-data paketoituna funktion parametriksi.

REST API:t ovat erittäin yleisiä. REST (Representational State Transfer) on HTTP-protokollaan perustuva arkkitehtuurimalli ohjelmointirajapintojen toteuttamiseen. Palveluita jotka toteuttavat REST-arkkitehtuurimallin periaatteet, sanotaan RESTful-palveluiksi. REST ei ole varsinainen standardi vaan yleinen tapa tietojärjestelmien tiedonvaihtoon. Käytännössä REST toimii niin, että asiakassovellus lähettää kutsun palvelimella olevaan resurssiin (joka on URL) ja palvelin palauttaa pyyntöä vastaavan tekstipohjaisen informaation (esim. JSON tai XML) tai esim. karttakuvan. Esimerkiksi kutsu http://api.reittiopas.fi/hsl/prod/?request=stop&code=2222222&format=xml palauttaa XML-muodossa tietoa pysäkistä, jonka koodi on 2222222.

Paikkatiedon siirrossa käytössä ovat myös OGC:n (Open Geospatial Consortium) standardien mukaiset WMS,- WMTS– ja WFS-rajapintapalvelut [2], joista suosituimpana kilpailutöissä ovat olleet Maanmittauslaitoksen rajapinnat.

WMS (Web Map Service) -rajapintatekniikan avulla tuotetaan vektori- ja rasteripaikkatietoaineistoista dynaamisesti paikkatiedollista kuva-aineistoa. Paikkatietoaineistosta muodostetaan kuva halutussa formaatissa (esim. PNG/JPG/GIF). Tähän kuvaan liittyy tieto sen spatiaalisista ulottuvuuksista, sisällöstä ja metatiedoista, mutta sitä ei pidä sekoittaa alkuperäiseen paikkatietoaineistoon. WMS onkin vain tapa välittää aineiston sisältämää tietoa, ei itse alkuperäinen tiedosto ja se soveltuu näin hyvin taustakartta-aineistoksi ja karttapalveluiden käyttöön. WMS-pyynnöt välitetään URL-muotoisena ja pyyntöihin palautetaan vastaus kuvina halutulta alueelta. WMS sisältää myös tukipyyntöjä, kuten GetCapabilities, joilla voidaan tiedustella karttapalvelimen palveluita. Tukipyyntöjen vastaukset palautetaan XML-muodossa. WMS-pyynnöt välitetään HTTP-protokollalla.

WMTS (Web Map Tile Service) on toiminnoiltaan sama kuin WMS-palvelu, mutta se mahdollistaa rasterimuotoisten karttakuvien tiilityksen. Tiilityksellä (eng. ”tiling”) tarkoitetaan tekniikkaa, jossa suuret kuvat tai kartat jaetaan pieniin neliön muotoisiin kuvapaloihin vierekkäin aseteltuna. Tekniikka parantaa karttakuvapalvelun suorituskykyä, kun käyttäjä voi valita kerralla pienemmän osa-alueen kuvat. Esimerkiksi MML:n karttakuvapalvelu, josta saa maasto- ja taustakarttoja, ortokuvia sekä kiinteistörajoja, on WMTS-palvelu.

WFS (Web Feature Service) on vektoriaineistojen, kuten tieverkostot, rakennukset tai hallintorajat, tietojen välittämiseen soveltuva rajapintatekniikka. WFS -kyselyt eivät palauta kuvaa WMS:n tavoin, vaan tiedot saadaan XML-skeemana, joka asiakaspäässä vastaanotetaan vektorimuotoisena paikkatietoaineistona. Myös WFS-pyynnöt välitetään HTTP-protokollalla. Esimerkiksi Maanmittauslaitoksen kiinteistötietojen,- nimistön- ja rakennustietojen kyselypalvelut ovat WFS-palveluita.

Tietoa haetaan edellä kuvatuista HTTP-protokollaan perustuvista rajapinnoista yksittäisinä kyselyinä. Jos data muuttuu ja päivittyy jatkuvasti, kuten esimerkiksi ajoneuvojen sijainnit tai poikkeusliikennetiedotteet joukkoliikenteessä, tarvitaan  toisentyyppisiä rajapintapalveluita, joista tietoa saa jatkuvana virtana. Näitä ovat socket– ja SIRI-rajapinnat sekä  RSS– ja Atom-syötteet.  

HSL:n paikannuspalvelun socket-rajapinnasta (HSL Live) saa tietoja tiettyjen joukkoliikenneajoneuvojen sijainneista. Se mahdollistaa jatkuvan kaksisuuntaisen yhteyden palvelinohjelman ja asiakasohjelman välillä, ja toimii käytännössä niin, että lähetetään XML-pyyntöjä tiettyyn IP-osoitteeseen ja porttiin.

Tampereen kaupungilla on reaaliaikainen SIRI-rajapinta joukkoliikennedataan. SIRI (Service Interface for Real Time Information) on yhteiseurooppalainen XML-protokollastandardi aikataulujen, ajoneuvojen ja yhteyksien reaaliaikatietojen välittämiseen joukkoliikennetoimijoiden välillä. Tampere Public Transport SIRI-rajapinnasta löytyvät palvelut ovat SIRI VM (reaaliaikaiset sijaintitiedot), SIRI SM (reaaliaikaiset pysäkkitiedot) ja SIRI GM (joukkoliikenteen tiedotteet). Tiedot päivittyvät tyypistä riippuen 1-60 sekunnin välein [10].

RSS on joukko verkkosyötemuotoja, joita käytetään usein päivittyvän digitaalisen sisällön julkaisemiseen. RSS antaa tietonsa XML-tiedostona, jota kutsutaan RSS-syötteeksi. Atom-syötteitä (XML-muotoinen standardoitu verkkosyöte) ei ole tarkasteltujen kilpailutöiden hyödyntämissä tietolähteissä käytetty. Esimerkiksi VR:n Junat kartalla –palvelu tarjoaa ajantasaista tietoa GeoRSS-syötteinä, joka on sijaintimerkinnät sisältävä syöte. Junalistasyöte sisältää perustiedot kaikista liikenteessä olevista junista. Asemasyöte sisältää asemakohtaisista perustietoa. Kaikille junille on lisäksi yksilöllinen RSS –syötteensä, joka sisältää yksityiskohtaisempia tietoja junan kulusta ja sen pysähdyspaikoista. Tiedot päivittyvät tyypistä riippuen 5-60 sekunnin välein [11].

Luvun sisältö ▫ Edellinen kohta  Seuraava kohta

Seuraa Facebooktwitter
Jaa Facebooktwitterlinkedinmail