Palveluväylän hyödyntäminen palvelukeskeisessä arkkitehtuurissa
Sahanen, Jarno (2010)
Tiivistelmä
Palvelukeskeinen arkkitehtuuri on uusi tapa rakentaa tietojärjestelmiä. Se perustuu siihen, että logiikasta koostetaan yleiskäyttöisiä palveluita, joita tarjotaan muiden järjestelmän osien käyttöön. Tällöin samoja asioita ei tarvitse toteuttaa moneen kertaan ja järjestelmää voidaan hyödyntää tehokkaasti ja monipuolisesti. Näiden palveluiden hallinnassa voidaan hyödyntää palveluväyliä, eli ESB -tuotteita. Palveluväylät sisältävät erilaisia mekanismeja, joiden avulla palveluihin liittyvää viestiliikennettä voidaan reitittää, muokata ja valvoa eri tavoin. Nykyisissä palvelukeskeisissä toteutuksissa käytetään usein XML -kieleen pohjautuvia Web Service -määrityksiä. Ne tarjoavat ympäristöriippumattoman pohjan, joka täyttää suoraan useita palvelukeskeisen arkkitehtuurin vaatimuksia. Määritysten ympärille on myös paljon valmiita laajennuksia, joiden avulla palveluihin voidaan liittää lisätoiminnallisuutta. Lahden kaupunki lähti Fenix -projektin yhteydessä kehittämään uutta kuntien käyttöön soveltuvaa järjestelmää, joka hyödyntää palvelukeskeisen arkkitehtuurin periaatteita. Järjestelmä jaettiin selkeisiin kerroksiin siten, että käyttöliittymä erotettiin palvelulogiikoista palveluväylän avulla. Tällöin järjestelmä saatiin jaettua loogisiin kokonaisuuksiin, joilla on selkeä rooli. Taustapalvelut hoitavat käsitteiden hallinnan, sekä niihin liittyvät liiketoimintasäännöt. Käyttöliittymäkerros hoitaa tiedon esittämisen ja tarjoaa graafisen, selainpohjaisen käyttöliittymän palveluihin. Palveluväylä hoitaa liikenteen reitittämisen, sekä huolehtii palveluihin liittyvistä käyttöoikeuksista ja tilastoinnista. Lopputuloksena on loputtomiin laajennettavissa oleva järjestelmä, jonka päälle voidaan kehittää erilaisia sähköisiä palveluita kunnan ja sen asukkaiden välille. Service-Oriented Architecture is a new way to create information systems. One of its main principals is that system logic is composed of reusable platform independent services. These services can be called from various parts of the system. This removes the need to create duplicate logic and enables more dynamic and efficient use of system. Enterprise Service Bus –products can be used with these services to provide various mechanisms for routing, modifying and administration of messages. Contemporary implementations of Service-Oriented Architecture are often based on Web Services that uses XML as syntax. Web Services provides an independent base that fulfils many of the requirements for SOA by itself. There also exists a large amount of useful extensions that can be used with Web Services to provide new features for services. City of Lahti joined the Fenix –project and started to develop a service platform for municipalities that takes advantage of the principals of Service-Oriented Architecture. This platform was divided into distinctive layers so that the user interface was separated from the business logic by an Enterprise Service Bus layer. The background services take care of the entities and their corresponding business logic. User interface enables browser based graphical view of the entities and their corresponding services. ESB layer takes care of message routing and logging. It also provides a consistent point to enforce the security aspects of the services. The result is a widely expansible platform that can be used to develop and serve various e-Services between municipalities and their residents.