Suomi.fi-palveluväylä –
Sovitinpalvelu

Print Friendly, PDF & Email

Sovitinpalvelu on X-Roadin liityntäpalvelimen ja liitettävän järjestelmän väliin sijoittuva komponentti, joka sovittaa liitettävän järjestelmän tarjoamat palvelut X-Road-tiedonsiirtoprotokollan mukaiseen muotoon.

X-Roadin keskeisin toiminta-ajatus on toimia tiedonvälityskerroksena siihen liittyneiden järjestelmien välillä. X-Road tarjoaa turvallisen ja standardin mukaisen tavan sähköisten palvelujen ja rajapintojen julkaisemiseen ja hyödyntämiseen. X-Roadin toiminta perustuu siihen liittyneiden järjestelmien tarjoamien palveluiden julkaisemiseen SOAP-rajapintoina. Järjestelmien väliset palvelupyynnöt ja vastaussanomat kulkevat salattuina SOAP-sanomina liityntäpalvelinten välillä.

Palveluväylään liittyminen edellyttää, että liitettävä järjestelmä pystyy lähettämään ja vastaanottamaan SOAP-sanomia X-Roadin edellyttämässä muodossa. Käytännössä tämä tarkoittaa sitä, että SOAP-sanomien on sisällettävä tietyt X-Road-tiedonsiirtoprotokollan määrittelemät otsikkotiedot. Lisäksi kysely- ja vastausparametrit on sisällytettävä SOAP-sanoman body-osaan X-Road-protokollan määrittelemällä tavalla. Lisäksi sovitinpalvelun on myös tarjottava liitettävien palveluiden rajapintakuvaukset (WSDL).

Otsikkotietojen lisääminen sekä muiden tarvittavien toimenpiteiden tekeminen toteutetaan niin sanotussa sovitinpalvelussa. Kyseinen palvelu voidaan toteuttaa suoraan liitettävässä järjestelmässä tai järjestelmän ja liityntäpalvelimen väliin sijoitettavassa erillisessä sovitinpalvelussa. X-Road edellyttää, että sen kautta julkaistujen palveluiden rajapintakuvaukset (WSDL) ovat saatavilla sovitinpalvelun kautta. Tämä koskee vain palveluväylään tietoa tarjoavia järjestelmiä. Tietoa käyttävien järjestelmien ei tarvitse tarjota rajapintakuvauksiaan X-Roadiin.

Kuvassa 1 on esitetty sovitinpalvelun toteuttaminen erillisenä palveluna.

Sovitinpalvelu_kuva1

Kuva 1. Sovitinpalvelu toimii liitettävän tietojärjestelmän ja liityntäpalvelimen välissä.

Sovitinpalvelu ei ole X-Road-ratkaisun mukana tuleva valmiskomponentti, vaan se on toteutettava jokaiselle liitettävälle järjestelmälle erikseen. Sovitinpalvelun tehtävät ovat:

  • liitettävän järjestelmän sanomien muuntaminen X-Road-tiedonsiirtoprotokollan mukaiseen muotoon
  • X-Roadiin liitettyjen palveluiden rajapintakuvausten (WSDL) tarjoaminen liityntäpalvelimelle.

Käytännön toteutuksesta

Sovitinpalvelun toteutusvaihtoehdot on esitetty kuvassa 2.

Sovitinpalvelu_kuva2

Kuva 2. Sovitinpalvelun toteutusvaihtoehdot.

Käytännössä sovitinpalvelu voidaan toteuttaa kolmella eri tavalla:

  1. Suoraan osaksi liitettävää järjestelmää.
  2. Erillisenä ohjelmistokomponenttina, joka sijoitetaan samalle palvelinalustalle liitettävän järjestelmän kanssa.
  3. Erillisenä ohjelmistokomponenttina, joka sijoitetaan omalle palvelinalustalleen.

Sovitinpalvelun ei välttämättä tarvitse olla uusi palveluväylää varten kehitetty ohjelmistokomponentti, vaan se voi olla myös jokin valmisohjelmisto, joka toteuttaa X-Roadin edellyttämät sanomamuunnokset, esimerkiksi jokin Enterprise Service Bus (ESB) -sovellus. Vaihtoehto 3 kuvaa ESB-sovelluksen tai jonkin muun valmisohjelmiston käyttöä sovitinpalvelun toteutuksessa.

Sovitinpalvelun toteutustavasta riippuen useat X-Roadiin liitettävät tietojärjestelmät voivat myös käyttää samaa sovitinpalvelua. Käytännössä sovitinpalvelu kannattaakin suunnitella siten, että samaa sovitinpalvelua voidaan hyödyntää useiden järjestelmien X-Road integraation toteutuksessa. X-Roadin edellyttämien SOAP-otsikkotietojen rakenne on sama liitettävästä järjestelmästä riippumatta, joten kyseisten tietojen käsittelyyn liittyvää toiminnallisuutta ei kannata toteuttaa jokaisen liitettävän järjestelmän kohdalla erikseen. Monikäyttöisen sovituspalvelun toteuttaminen vähentää sekä ylläpitoon että jatkossa uusien järjestelmien liittämiseen liittyvää työtä merkittävästi.

SOAP

SOAP-pohjaisten järjestelmien liittäminen palveluväylään on periaatteessa yksinkertaista. Yksikertaisimmillaan järjestelmän liittäminen palveluväylään tarkoittaa liityntäpalvelimen pystyttämistä sekä sovitinpalvelun toteuttamista tarvittavien SOAP-otsikkotietojen lisäämiseksi. Lisäksi sovitinpalvelun on myös tarjottava liitettävien palveluiden rajapintakuvaukset (WSDL).

REST

REST- mallisten järjestelmien ja palveluiden kohdalla tilanne on sen sijaan mutkikkaampi, koska palveluväylä edellyttää SOAP-sanomamuodon käyttöä. Käytännössä REST-rajapinta pitää siis pystyä tarjoamaan SOAP-sanomamuotoa käyttävän viestirajapinnan kautta, jotta palveluväylään liittyminen olisi mahdollista. Tällöin jokaista palveluväylään liitettävää yksittäistä REST-palvelua varten on toteutettava vastaava SOAP-sovitin. Käytännössä REST-SOAP-muunnoksen tekeminen on sovitinpalvelun vastuulla. Lisäksi sovitinpalvelun on myös tarjottava liitettävien palveluiden rajapintakuvaukset (WSDL).

Aineistoa ja esimerkkejä

Alla olevaan listaukseen on koottu aineistoa ja muutamia esimerkkejä sovitinpalvelun toteutukseen liittyen.

  • REST Adapter Service – Avoimen lähdekoodin komponentti REST-tuen toteuttamiseksi (GitHub)
    • Kehitetty erityisesti Suomi.fi-palveluväylässä käyttämistä varten
  • XRd4J – Java ohjelmakirjasto X-Road v6 asiakas- ja palvelusovellusten kehittämiseen (GitHub)
  • Kahden yksinkertaisen X-Road v6 -yhteensopivan palvelun esimerkkitoteutus (GitHub)
VersioMitä tehty / muutettuPvm/
henkilö
1.0Dokumentti julkaistu eSuomessa01.02.16 / NP
1.1Päivitetty ’Aineistoa ja esimerkkejä’ lukua.22.11.2017 / HH

Yksilöintitunnus: 12345