Palveluväylän sovitinpalvelu
Tässä artikkelissa kerrotaan Suomi.fi-palveluväylän sovitinpalvelusta ja sen toteuttamistavoista.
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.
SOAP
SOAP-pohjaisten järjestelmien liittäminen Palveluväylään on yksinkertaista. Yksinkertaisimmillaan 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 tarjottava liitettävien palveluiden rajapintakuvaukset (WSDL).
REST
Sovitinpalvelua ei tarvitse toteuttaa enää version 6.21.0 jälkeen, sillä X-Road tukee RESTiä natiivisti.
X-Road toimii tiedonvälityskerroksena siihen liittyneiden järjestelmien välillä. Se tarjoaa turvallisen ja standardinmukaisen tavan sähköisten palvelujen ja rajapintojen julkaisemiseen ja hyödyntämiseen. X-Roadiin liittyneiden järjestelmien tarjoamat palvelut julkaistaan 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. SOAP-sanoman body-osaan taas on sisällytettävä kysely- ja vastausparametrit X-Road-protokollan määrittelemällä tavalla. Lisäksi sovitinpalvelun on tarjottava liitettävien palveluiden rajapintakuvaukset (WSDL).
Otsikkotiedot lisätään ja muut tarvittavat toimenpiteet toteutetaan niin sanotussa sovitinpalvelussa. Kyseinen palvelu voidaan toteuttaa joko 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 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 toteutus
Sovitinpalvelun toteutusvaihtoehdot on esitetty kuvassa 2.

- suoraan osaksi liitettävää järjestelmää
- erillisenä ohjelmistokomponenttina, joka sijoitetaan samalle palvelinalustalle liitettävän järjestelmän kanssa
- erillisenä ohjelmistokomponenttina, joka sijoitetaan omalle palvelinalustalleen.
Sovitinpalvelun ei välttämättä tarvitse olla uusi, Palveluväylää varten kehitetty ohjelmistokomponentti. Se voi myös olla 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 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 sovitinpalvelun toteuttaminen vähentää merkittävästi sekä ylläpitoon että jatkossa uusien järjestelmien liittämiseen liittyvää työtä.
Hyödyllistä aineistoa
Seuraavaan on koottu sovitinpalvelun toteutukseen liittyvää aineistoa: