Rajapinnat ja käyttöliittymät

Helsingin kaupungin avoin ohjelmistokehitys soveltaa lähes aina samaa yksinkertaista arkkitehtuuriperiaatetta web-sovelluksissaan:

Sovellusten käyttöliittymä irrotetaan täysin niiden taustajärjestelmästä
avoimen rajapinnan avulla.

Periaatteella halutaan varmistaa, että ohjelmisto on aidosti modulaarinen, millä saavutetaan monia etuja:

  • Taustajärjestelmä voidaan vaihtaa toiseen.
  • Käyttöliittymä voidaan vaihtaa toiseen.
  • Samalla taustajärjestelmällä voi olla useita käyttöliittymiä esimerkiksi eri käyttäjäryhmille tai laitetyypeille (tietokoneet tai eri puhelinalustat).
  • Sama käyttöliittymä voi koostaa tietoja useista eri taustajärjestelmistä.
  • Helsingin kaupungilla ei ole monopolia käyttöliittymiin, vaan kaupunkiyhteisölle tarjotaan avoimen datan alusta, jonka päälle kuka tahansa voi rakentaa oman palvelun.

Periaatteen noudattaminen lisää palveluiden kehittämisen joustavuutta pitkällä aikavälillä. Samalla se vähentää riippuvuutta yksittäisestä toimittajasta, joka voi monoliittisessa ratkaisussa toimia portinvartijana kaikkeen järjestelmän kehittämiseen.

Rajapinta toimii käyttöliittymän ja taustajärjestelmän välisenä vakioituna sopimuksena. Mikä tahansa uusi taustajärjestelmä voi toteuttaa saman sopimuksen. Kaupungin avoimet rajapinnat on dokumentoitu osoitteessa dev.hel.fi/apis/ ja ne noudattavat yksinkertaista REST-henkistä paradigmaa.

API-arkkitehtuuri

 

Avoimen ohjelmistokehityksen projekteissa tätä arkkitehtuuriperiaatetta noudatetaan yleensä niin, että käyttöliittymä ja taustajärjestelmä kehitetään erillisinä projekteina. Näin tehdään siitä huolimatta, vaikka uutta järjestelmää kehitettäessä olisi yleensä helpompaa ja nopeampaa toteuttaa koko järjestelmä suoraan samalla kertaa ja samalla teknologia-alustalla. Tällä varmistetaan, että rajapinta todella tarjoaa kaikki palvelut, joita toimiva ja tehokas käyttöliittymä edellyttää

Tänä päivänä kuvatun kaltainen arkkitehtuuri tarkoittaa käytännössä sitä, että käyttöliittymä on sovellusohjelma, jota suoritetaan hajautetusti käyttäjien omissa www-selaimissa. Käyttäjän selain on internetin kautta suorassa yhteydessä taustajärjestelmien rajapintoihin.