Palveluiden kehittäminen vaikeutuu merkittävästi. Yhden palvelun päivitys voi tuoda mukanaan huomattavan määrän piilokustannuksia.

Samankaltaiset tiedostot
Liite 1: ServiceMix skenaariot ja PoC tulokset 1. Palvelun kehittäjän näkökulma

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu

Liite 1: OpenESB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. OpenESB. Sivu 1

Kohti palvelukeskeistä arkkitehtuuria RAPORTTI

Juhani Gurney Teknologiajohtaja. Peppi-projekti ja ESP (Eduix SOA Platform)

Peppi - Koulutuksen suunnittelijan ja opettajan palvelut. Tekninen vaatimusmäärittely

Valppaan asennus- ja käyttöohje

Kohti palvelukeskeistä arkkitehtuuria. RAPORTTI versio 1.1.

Federoitu keskitetty sovellus

IoT-järjestelmän ja ulkovalaistuksen ohjauksen hankinta -markkinavuoropuhelutilaisuus


Järjestelmäarkkitehtuuri (TK081702) Avoimet web-rajapinnat

Opetushallitus. ServiceMix POC

UKJ ja avoimen lähdekoodin järjestelmät

Järjestelmäarkkitehtuuri (TK081702) SOA, Service-oriented architecture SOA,

FuturaPlan. Järjestelmävaatimukset

Visma Software Oy

Convergence of messaging

Tietojärjestelmien integroiminen hyödyntämällä palvelupohjaista arkkitehtuuria. CASE: Metropolia. Jaakko Rannila & Tuomas Orama 1

Tiedonsiirto- ja rajapintastandardit

Ikivihreä kirjasto loppuraportti määrittelyprojektille

Haka-käyttäjien kokoontuminen Arto Tuomi CSC Tieteen tietotekniikan keskus

Suomi.fi-palveluväylä. Palvelulupaus ja tiekartta

Project-TOP QUALITY GATE

Kansallinen palveluväylä

Kansallinen palveluarkkitehtuuri TUNNISTUSPALVELU INFO

Suomi.fi-palveluväylä. Palvelulupaus ja tiekartta

S11-09 Control System for an. Autonomous Household Robot Platform

Visma Nova Webservice Versio 1.1 /

UKJ ja Kuali Open Library Environment (OLE)

ID Task Name Duration Start Finish Predecessors Resource Names

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

ID Task Name Duration Start Finish Predecessors Resource Names. Actual Finish % Complete

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti

Viestit-palvelun viranomaisliittymän ohjelmointiohje. Java-esimerkki

Paikkatiedot palveluväylässä kehityksen tilanne Väylän varrelta - Kansallisen palveluväylän kehitystilanne -seminaari

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services

Liite 2B. Tilannekatsaus. Oodi 2017, päivitetty, vko 44. CSC Suomalainen tutkimuksen, koulutuksen, kulttuurin ja julkishallinnon ICT-osaamiskeskus

Metropolian tietojärjestelmäarkkitehtuuri. Nykytilan selvitys & esitys tulevaisuuden arkkitehtuurista

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

Järjestelmäintegraatio

Kooste kotitehtävien vastauksista. Kotitehtävä 6 - Ylläpito- ja kehittämismalli

Ylläpitodokumentti. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

J2EE vs..net Olli Sakari

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti Kandidaatintyö ja seminaari

Pertti Pennanen DOKUMENTTI 1 (5) EDUPOLI ICTPro

Kehitysohje. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy

Muistitko soittaa asiakkaallesi?

The administrative process of a cluster. Santtu Rantanen Valvoja: Prof. Jorma Jormakka

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri. Järjestelmäarkkitehtuuri

NAVITA BUDJETTIJÄRJESTELMÄN ENSIASENNUS TYÖASEMALLE

Käyttöohjeet. Sovellussivusto

Järjestelmäarkkitehtuuri (TK081702) Lähtökohta. Integroinnin tavoitteet

JulkICTLab projektien tilannekatsaukset 06/2015

Uutta Remote Support Platform 3.1 -versiossa

Suomi.fi-palveluväylä. Palvelulupaus ja tiekartta

Visma Liikkuvan työn ratkaisut

Facta Kuntarekisteri. Facta asennus testiin ja tuotantoon. Helsingin kaupunki

206 Verkkosivun tuottaminen finaalitehtävät

Miten varmennan ICT:n kriittisessä toimintaympäristössä?

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }

Kansallinen palveluväylä - yleiskuva ja tilanne nyt , Jyväskylä Pauli Kartano Valtiovarainministeriö, JulkICT

Oha-selvitys 2008 HISinOne-järjestelmän arviointi

Määrittelydokumentti NJC2. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

AVOIMEN TUOTTEEN HALLINTAMALLIT. Kunnassa toteutettujen tietojärjestelmien uudelleenkäyttö. Yhteentoimivuutta avoimesti

Ylläpito. Ylläpito. Ylläpidon lajeja Ohjelmistotuotanto, syksy 1998 Ylläpito

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A Kandidaatintyö ja seminaari

Ylläpitodokumentti Mooan

Office ohjelmiston asennusohje

Avoin lähdekoodi. Jani Kylmäaho Maanmittauslaitos

Open source uusia mahdollisuuksia operaattoreille

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

Facta Kuntarekisteri. Facta 4.0 asennus testiin ja tuotantoon. Helsingin kaupunki

Mitä muutoksia pilvipalvelut tulevat aikaansaamaan tietoteknisten ratkaisujen hankinta- ja toimitusmalleissa? Miten pilvipalvelut muokkaavat

Ristiinopiskelun kehittäminen -hanke

Android ohjelmointi. Mobiiliohjelmointi 2-3T5245

Yhteinen opintohallinnon järjestelmä

Facta Kuntarekisteri. Facta 4.2 asennus testiin ja tuotantoon. Helsingin kaupunki

VERKON ASETUKSET SEKÄ WINDOWSIN PÄIVITTÄMINEN

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Comet pysäköintimittarin asennus ja kytkeminen tietokoneeseesi (Windows XP) USB-kaapelilla.

Integraatiotekniikan valinta - tie onnistumiseen.

KOSKI ohjausryhmän kokous

TOIMIJAREKISTERIN TOTEUTUKSEN JA YLLÄPIDON HANKINTA - HANKINNAN YKSI- LÖINTI HUOM!

Jouko Nielsen. Ubuntu Linux

Suomen avoimien tietojärjestelmien keskus COSS ry

Ohjelmiston testaus ja laatu. Testaustasot

Ylläpito. Ylläpidon lajeja

Perustietovarantojen rajapintaratkaisun sidosryhmät - yhteenveto PERA-määrittely Liite 2

Hintatiedotus ja tietojen välitys. Loppuraportti

OP Tunnistuksen välityspalvelu

Suorituskyvyn varmistaminen sovelluskehityksen eri vaiheissa Paavo Häkkinen, Presales Teamleader Compuware Finland

Aineistosiirron testauksen aloituksen ohje Trafin sopimuskumppaneille

Virtualisointi Kankaanpään kaupungissa. Tietohallintopäällikkö Jukka Ehto

Yhteentoimivuusvälineistö: Sanastoeditorin esittelytilaisuus klo Väestörekisterikeskus, Lintulahdenkuja 4, Helsinki

Paytrail lisäosa WooCommerce alustalle (c) Webbisivut.org

Hosted.fi Virtuaalikokouspalvelu

McAfee epolicy Orchestrator Pre-Installation Auditor 2.0.0

Oracle ebs versionvaihto OUGF seminaari / Jyrki Koski Oy Abase Consulting Ab

Transkriptio:

Kuali_PoC_raportti Johdanto Peppi-projektin ensimmäisessä vaiheessa selvitettiin Open ESB-tuotteen soveltuvuutta palveluiden koostamiseen ja julkaisemiseen Peppi-projektissa. PoC-projektin tuloksena OpenESB koettiin ongelmalliseksi, joten lopullista teknologiavalintaa lykättiin. Mielenkiintoiseksi vaihtoehdoksi nousi Kuali-yhteisön tarjoamat moduulit ja palvelut. Kuali PoC -projekti toteutettiin yhdessä Eduixin ja Metropolian asiantuntijoiden kanssa. Kuali PoC-projektin tavoitteet on kuvattu erillisessä dokumentissa,poc-projektin tavoitteet Kuali PoC-projektiin kuului osallistuminen Kuali Days -tapahtumaan, jossa Eduix esitteli edellisessä projektissa syntyneet skenaariot/vaatimukset Peppi-alustalle, luettavissa Kuali yhteisön wikissä, skenaariot Kuali Days -tapahtuman raportti löytyy erillisestä dokumentista,raportti Kuali-days tapahtumasta Termit Palvelu, joukko yhteenliittyviä toimintoja, esim. opintosuunnitelman hakupalvelu. Palvelualusta, tietojärjestelmä joka liittää palvelut yhteen. Komponentti, palvelun toteutus. Järjestelmä, palvelualusta ja siihen kiinteästi liittyvät muut tietojärjestelmät. Kuali Rice -evaluointi Palvelun kehittäjä Palvelun kehittäjä tarkoittaa sitä tahoa, joka vastaa uuden palvelun kehittämisestä, hankkimisesta tai käyttöönotosta tai joka osallistuu varsinaiseen kehitystyöhön. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu Testi PoC tulos Metropolian kommentit Yksittäinen palvelu on ollut käytössä 6 vuotta ilman että palvelua on jouduttu kertaakaan muuttamaan. Palvelu tarjoaa rajapinnan ja tätä vasten on tehty 8 kriittistä integraatiota, joiden tulee olla jatkuvasti toiminnassa. Palveluun on tarkoitus tehdä uusia ominaisuuksia sekä laajentaa ja muuttaa palvelun ulkoista rajapintaa. Palvelun uusi versio on voitava asentaa tuotantoon vanhan tilalle siten, että vanhaa rajapintaa vasten tehdyt 8 integraatiota säilyvät ehjinä asennuksen jälkeen ilman muutoksia integraatioihin ja mahdollinen päivityskatko on mahdollisimman lyhyt. Palveluiden kehittäminen vaikeutuu merkittävästi. Yhden palvelun päivitys voi tuoda mukanaan huomattavan määrän piilokustannuksia. - Toteuta ja julkaise yksinkertainen palvelu - Muuta julkaistua rajapintaa ja asenna palvelu uudelleen - Selvitä mitä ongelmia muutoksesta aiheutuu Saatu palvelu toimimaan alustassa sekä palvelua käyttävä client. Alusta ei tue rajapintojen versiointia muuten kuin pakkausten nimiavaruutta muuttamalla. Liiketoiminta muuttuu ja tätä varten tarvitaan uusi palvelu tukemaan uutta tarvetta. Palvelulle löytyy valmis komponentti, mutta se on toteutettu eri tekniikalla/eri kielellä kuin muut liittyvät palvelut Palvelu on voitava liittää palvelu vaikka palvelun toteuttava komponentti on tehty eri tekniikalla kuin millä olemassaolevat komponentit on tehty. Palvelua varten täytyy kehittää uusi komponentti vaikka tarjolla olisi valmis koeteltu komponentti. Pahimmassa tapauksessa komponentit voidaan ostaa vain tietyltä toimittajalta. Koita integroida jonkin standardin protokollan ja rajapinta teknologian avulla, esim. SOAP webservice Ainut tapa integroida muita on tehdä oma kääre (wrapper), johon ohjelmoidaan itse protokollaan liittyvät asiat

Järjestelmään ollaan tekemässä uutta palvelua, joka toteutetaan koostamalla olemassaolevia palveluita. Palvelun toiminta tulee testata kunnolla muita palveluita vasten ennen sen tuotantoon asennusta. Järjestelmästa voidaan luoda testiympäristö sekä olemassaolevia palveluita vastaavat testipalvelut. Testien aikana tietovirtaa palveluiden välillä voidaan tarkastella. Tuotantoon asennetaan virheellisesti toimivia Testaus hoidetaan stub-palveluiden avulla. viestijonossa olevat viestit ovat nähtävissä Palvelun kehittäjä on tekemässä uutta hakupalvelua, mutta ei tiedä että sellainen on jo olemassa. Palvelualusta voidaan listata siiheen liitetyt palvelut ja niiden toimintaperiaatteet. Tehdään päällekäisiä palveluita, jolloin ylläpidon määrä ja kustannukset kasvavat. listaus asennetuista palveluista saadaan selville ja miten selvitetään palveluiden väliset riippuvuudet Rice-käyttöliittymän avulla on mahdollisuus nähdä listaus asennetuista palveluista, mutta palveluiden riippuvuutta ei voi nähdä keskitetysti Palvelun kehittäjä tekee uutta palvelua ja huomaa että palvelussa voitaisiin hyödyntää olemassaolevia palveluita. Olemassaolevat palvelut eivät kuitenkaan tarjoa ulkoista rajapintaa. Palvelu on voitava tehdä palveluita siten, että muut palvelut voivat hyödyntää helposti palvelun tarjoamia rajapintoja. Vanhojen järjestelmien on pystyttävä kommunikoimaan palvelualustan kanssa tietokantayhteyden tai siirtotiedoston avulla. Tehdään päällekäisiä palveluita, jolloin ylläpidon määrä ja kustannukset kasvavat. integroidaan suoran tietokantayhteyden tai siirtotiedoston avulla Ainut tapa integroida muita on tehdä oma kääre (wrapper), johon ohjelmoidaan itse protokollaan liittyvät asiat Palvelualustan kehitys ja tuki loppuu. Palvelu on liittetty lukuisa määrä palveluita ja integraatioita. Palvelualusta voidaan vaihtaa toiseen tuotteeseen kohtuullisella vaivalla ja ilman että palveluita joudutaan tekemään uudelleen. Uusi palvelualusta ja integraatiot joudutaan toteuttamaan alusta alkaen, jolloin kustannukset ovat erittäin suuret. Koita vaihtaa palvelualustan keskeisiä Käytännössä rice-pakkaukset paketoidaan samaan warriin jokaista palvelua kohden ja jokainen palvelu on suoraan yhteydessä rice-tietokantaan Palvelun kehittäjä on tekemässä integraatiota, joka johon liittyy 5 palvelua. Palveluiden rajapinnat eivät tue transaktioita. Palvelun kehittäjän tulee olla varma että häiriön sattuessa integraatio ei jää virheelliseen tilaan eikä tieto pääse vääristymään. Palvelu on voitava tehdä transaktionaalisia palveluita ja palvelualustan on tuettava hajautettuja transaktioita. Monimutkaisia integraatioita ei voida tehdä tai ylläpito vaikeutuu merkittävästi. Integraation testaaminen on vaikeaa ja vauriolähtökohta kasvaa. - Tee kaksi palvelua, joista molemmat käyttävät omaa tietokantaa. - Tee näistä palveluista koosteinen palvelu - Aiheuta häiriö prosessin viimeiseksi ja selvitä molempien tietokantojen tila Transaktionaalisuus on käytössä vain saman war-paketin sisällä Palvelualusta ei toimi odotetulla tavalla. Palvelu liittyvän dokumentaation taso tulee olla hyvä sekä mahdollinen tuki helposti saatavilla. Palvelualustan toiminta voidaan tarkastaa alustan lähdekoodista ja tarvittaessa voidaan suorittaa pikakorjaus itse palvelualustan lähdekoodiin. Palvelut joudutaan tekemään toisin kuin on suunniteltu. Palvelua ei voida toteuttaa. Pahimmassa tapauksessa koko palvelualusta joudutaan vaihtamaan. Arvioi dokumentaation määrä ja laatu Dokumentaatio(1.0.3) sisältää virheitä ja palveluiden tekeminen pelkkien ohjeiden perusteella on hankalaa. PoC-projektin aikana jouduttiin kysymään neuvoa muutamaan otteeseen Kuali-sähköpostiryhmistä. Vastaukset tulivat nopeasti, mutta eivät olleet kattavia. Ainoa varma tapa saada palvelu toimimaan on lukea Rice-lähdekoodista kuinka konfiguraatiot tulee asettaa.

On tehty uusi palvelu, joka on tarkoitus asentaa tuotantoon. Uuden palvelun asennus ei saa aiheuttaa käyttökatkoja muissa liitetyissä palveluissa. Ylläpito vaikeutuu ja hidastuu. Järjestelmäpäivitykset vaikeutuvat. Arvioi kuinka paljon aikaa yksittäisen palvelun asennus vie ja vaikutukset muihin palveluihin Asennus ei eroa normaalista java-sovelluksen asennuksesta. Komponenttien kehittämiseen tarkoitettu kehitystyökalu toimii huonosti. Komponentti voidaan kehittää/toteuttaa usealla eri kehitystyökalulla. Komponentin rakenteen tulee olla niin yksinkertainen, että sitä voidaan tarkastella ilman erityistä kehitystyökalua. Komponentin konfiguraatiot ovat löydettävissä nopeasti. Uusien palveluiden kehittäminen on hidasta ja kallista. Tee palvelu ohjeissa mainitulla tavalla ja arvioi kuinka helppoa ja intuitiivista palvelun kehittäminen on. palvelu asentuu Rice-palvelun toteutus koettiin hankalaksi. Kuali-moduulit on tehty lähes ainoastaan Oracle-tietokannan päälle, joka lisäsi konfiguroinnin hankaluutta. Palvelualustan ylläpitäjä Palvelualustan ylläpitäjällä tarkoitetaan tahoa, joka vastaa palvelualustan toiminnasta tai osallistuu sen ylläpitotyöhön. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu Testi PoC tulos Metropolian kommentit Palvelualustassa on tapahtunut vakava häiriötilanne. Ylläpitäjän tulee saada tieto tapahtuneesta häiriöstä. Palvelun käyttökatko pitenee. Aiheuta häiriö palvelussa ja selvitä miten vika saadaan selville Ylläpitäjä on saanut viesti vakavasta häiriötilanteesta. Ylläpitäjä voi nähdä yhdestä paikasta järjestelmän kokonaistilan sekä järjestelmässä tapahtuneet häiriöt ja niiden aiheuttajat. Ylläpito vaikeutuu ja aiheuttaa pitkiä käyttökatkoja. Arvioi miten nopeasti häiriön aiheuttaja saadaan paikallistettua Ylläpitäjä A on saanut ilmoituksen, että palvelu A ei toimi oikein. Ylläpitäjä B on saanut ilmoituksen, että palvelu B ei toimi oikein. Ilmoituksista ei kuitenkaan näe häiriön syytä. Palvelut A ja B on integroitu kolmanteen palveluun, joka aiheuttaa häiriön molemmissa järjestelmissä. Ylläpitäjät näkevät helposti järjestelmien väliset riippuvuudet ja löytävät häiriönaiheuttajan nopeasti. Ylläpitäjät tekevät turhaan työtä etsiessään häiriön syytä väärästä paikasta. Palveluiden käyttö kasvaa rajusti. Palvelualustan suorituskykyä voidaan lisätä klusteroinnin avulla. Koko palvelualusta joudutaan vaihtamaan tai osasta palveluita luopumaan. Palvelu on kytketty uusi palvelu, jossa oleva vika aiheuttaa liikaa kuormaa palvelualustalle säännöllisin väliajoin. Palvelualustan hallintatyökaluilla voidaan tarkastella palvelun tilaa ja siihen liittyviä tietovirtoja. Ongelmien selvitys vaikeutuu. Kynnys asentaa uusia palveluita tai päivityksiä kasvaa.

Palvelu joudutaan päivittämään. Palvelun rajapintoja käyttää kriittinen integraatio, joka lähettää palvelulle viestejä asynkronisesti. Integraation täytyy pystyä toimimaan huoltokatkon ajan. Järjestelmään tehdään tietoturva-auditointi tai epäillään että järjestelmään on yritetty tehdä tietoturvahyökkäys. Palvelimelle on asennettu 3 palvelua, jotka on liitetty toisiinsa. Palvelimen osoite vaihtuu. Palvelun päivityskatkos ei saa aiheuttaa häiriötilannetta integraatioihin mikäli käytetään asynkronista tiedonsiirtoa. Palvelu liitetyt palvelut ja integraatiot voidaan listata ja tarkastaa niiden näkyvyys sisäverkon ulkopuolelle. Palvelualustassa tapahtuvaa tietovirtaa voidaan tarkastella. Ylläpitä saa kokonaiskäsityksen järjestelmässä käytössä olevista tietoturvaan liittyvistä teknologioista. Palveluiden on pystyttävä olemaan yhteydessä toisiinsa vaikka palvelimen osoite vaihtuisi, ilman että palveluita joudutaan konfiguroimaan uudelleen. Lisää ylläpitotyötä ja kynnys asentaa uusia palveluita tai päivityksiä kasvaa. Riski hyökkäyksen onnistumisesta kasvaa, jos tietoturvan varmistaminen keskitetysti ei onnistu. Ylläpidon määrä kasvaa. Riski siihen, että jokin vanha palvelu hajoaa muutoksen yhteydessä on erittäin suuri. Yhteenveto Eduix Yhteenveto Metropolia ServiceMix/Student -evaluointi Projektin aikana huomattiin, että Rice-alusta(KSB) ei välttämättä tällä hetkellä pysty vastaamaan Peppi-projektin tarpeisiin palveluiden toteuttamisessa ja koostamisessa, joten Rice-KSB korvattiin suositulla open source ServiceMix-tuotteella. ServiceMix valittiin, koska se käyttää samoja ali kuin Rice-alusta, kts. kappale "Ehdotus Peppi-projektin tekniseksi arkkitehtuuriksi". Palvelun kehittäjä Palvelun kehittäjä tarkoittaa sitä tahoa, joka vastaa uuden palvelun kehittämisestä, hankkimisesta tai käyttöönotosta tai joka osallistuu varsinaiseen kehitystyöhön. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu Testi PoC tulos Metropolian kommentit Yksittäinen palvelu on ollut käytössä 6 vuotta ilman että palvelua on jouduttu kertaakaan muuttamaan. Palvelu tarjoaa rajapinnan ja tätä vasten on tehty 8 kriittistä integraatiota, joiden tulee olla jatkuvasti toiminnassa. Palveluun on tarkoitus tehdä uusia ominaisuuksia sekä laajentaa ja muuttaa palvelun ulkoista rajapintaa. Palvelun uusi versio on voitava asentaa tuotantoon vanhan tilalle siten, että vanhaa rajapintaa vasten tehdyt 8 integraatiota säilyvät ehjinä asennuksen jälkeen ilman muutoksia integraatioihin ja mahdollinen päivityskatko on mahdollisimman lyhyt. Palveluiden kehittäminen vaikeutuu merkittävästi. Yhden palvelun päivitys voi tuoda mukanaan huomattavan määrän piilokustannuksia. - Toteuta ja julkaise yksinkertainen palvelu - Muuta julkaistua rajapintaa ja asenna palvelu uudelleen - Selvitä mitä ongelmia muutoksesta aiheutuu Yksinkertaisen palvelun asentaminen ja julkaiseminen koettiin suoraviivaiseksi. Alustassa on mahdollista ajaa eri versioita samasta paketista pelkästään versionumeroa muuttamalla.

Liiketoiminta muuttuu ja tätä varten tarvitaan uusi palvelu tukemaan uutta tarvetta. Palvelulle löytyy valmis komponentti, mutta se on toteutettu eri tekniikalla/eri kielellä kuin muut liittyvät palvelut Palvelu on voitava liittää palvelu vaikka palvelun toteuttava komponentti on tehty eri tekniikalla kuin millä olemassaolevat komponentit on tehty. Palvelua varten täytyy kehittää uusi komponentti vaikka tarjolla olisi valmis koeteltu komponentti. Pahimmassa tapauksessa komponentit voidaan ostaa vain tietyltä toimittajalta. Koita integroida jonkin standardin protokollan ja rajapinta teknologian avulla, esim. SOAP webservice Alusta tarjoaa useita tiettyyn protokollaan liittyviä. Ajanpuutteen vuoksi Winhan webservice-rajapintaa ei ehditty tarpeeksi testaamaan. Järjestelmään ollaan tekemässä uutta palvelua, joka toteutetaan koostamalla olemassaolevia palveluita. Palvelun toiminta tulee testata kunnolla muita palveluita vasten ennen sen tuotantoon asennusta. Järjestelmästa voidaan luoda testiympäristö sekä olemassaolevia palveluita vastaavat testipalvelut. Testien aikana tietovirtaa palveluiden välillä voidaan tarkastella. Tuotantoon asennetaan virheellisesti toimivia Testausta voidaan tehdä stub-palveluiden avulla. Palvelun kehittäjä on tekemässä uutta hakupalvelua, mutta ei tiedä että sellainen on jo olemassa. Palvelualusta voidaan listata siiheen liitetyt palvelut ja niiden toimintaperiaatteet. Tehdään päällekäisiä palveluita, jolloin ylläpidon määrä ja kustannukset kasvavat. listaus asennetuista palveluista saadaan selville ja miten selvitetään palveluiden väliset riippuvuudet Palvelut voidaan listata ja myös niiden riippuvuudet muista palveluista on nähtävissä. Monitorointiin tarkoitettua konsolia on myös helppo laajentaa, konsolin laajentaminen testattiin. Palvelun kehittäjä tekee uutta palvelua ja huomaa että palvelussa voitaisiin hyödyntää olemassaolevia palveluita. Olemassaolevat palvelut eivät kuitenkaan tarjoa ulkoista rajapintaa. Palvelu on voitava tehdä palveluita siten, että muut palvelut voivat hyödyntää helposti palvelun tarjoamia rajapintoja. Vanhojen järjestelmien on pystyttävä kommunikoimaan palvelualustan kanssa tietokantayhteyden tai siirtotiedoston avulla. Tehdään päällekäisiä palveluita, jolloin ylläpidon määrä ja kustannukset kasvavat. integroidaan suoran tietokantayhteyden tai siirtotiedoston avulla Alusta tarjoaa useita tiettyyn protokollaan liittyviä. Palvelualustan kehitys ja tuki loppuu. Palvelu on liittetty lukuisa määrä palveluita ja integraatioita. Palvelualusta voidaan vaihtaa toiseen tuotteeseen kohtuullisella vaivalla ja ilman että palveluita joudutaan tekemään uudelleen. Uusi palvelualusta ja integraatiot joudutaan toteuttamaan alusta alkaen, jolloin kustannukset ovat erittäin suuret. Koita vaihtaa palvelualustan keskeisiä Vaihdettu alustan palveluita pyörittävä runtime toiseksi ongelmitta. Huomioitavaa että servicemix toimii felix:llä kun taas kaupallinen versio fuse esb toimii equinox:lla Palvelun kehittäjä on tekemässä integraatiota, joka johon liittyy 5 palvelua. Palveluiden rajapinnat eivät tue transaktioita. Palvelun kehittäjän tulee olla varma että häiriön sattuessa integraatio ei jää virheelliseen tilaan eikä tieto pääse vääristymään. Palvelu on voitava tehdä transaktionaalisia palveluita ja palvelualustan on tuettava hajautettuja transaktioita. Monimutkaisia integraatioita ei voida tehdä tai ylläpito vaikeutuu merkittävästi. Integraation testaaminen on vaikeaa ja vauriolähtökohta kasvaa. - Tee kaksi palvelua, joista molemmat käyttävät omaa tietokantaa. - Tee näistä palveluista koosteinen palvelu - Aiheuta häiriö prosessin viimeiseksi ja selvitä molempien tietokantojen tila Saatu transaktio toimimaan yksittäisen palvelun sisällä helposti. Transaktioiden pitäisi toimia ongelmitta osgi-säiliön sisällä, mutta ajanpuutteen vuoksi transaktiot kahden eri tietokantaa käyttävän palvelun välillä jäi testaamatta.

Palvelualusta ei toimi odotetulla tavalla. Palvelu liittyvän dokumentaation taso tulee olla hyvä sekä mahdollinen tuki helposti saatavilla. Palvelualustan toiminta voidaan tarkastaa alustan lähdekoodista ja tarvittaessa voidaan suorittaa pikakorjaus itse palvelualustan lähdekoodiin. Palvelut joudutaan tekemään toisin kuin on suunniteltu. Palvelua ei voida toteuttaa. Pahimmassa tapauksessa koko palvelualusta joudutaan vaihtamaan. Arvioi dokumentaation määrä ja laatu Servicemix dokumentaatio vanhentunutta, mutta Fuse esb-sivuilla dokumentaatiota varsin hyvin. Lisäksi ServiceMixiin on saatavilla koulutusta. On tehty uusi palvelu, joka on tarkoitus asentaa tuotantoon. Uuden palvelun asennus ei saa aiheuttaa käyttökatkoja muissa liitetyissä palveluissa. Ylläpito vaikeutuu ja hidastuu. Järjestelmäpäivitykset vaikeutuvat. Arvioi kuinka paljon aikaa yksittäisen palvelun asennus vie ja vaikutukset muihin palveluihin Asennus ei aiheuta katkoksia muiden palveluiden käyttöön. Jokaisella palvelulla on lisäksi oma classloading, jolloin kirjastojen lataukset eivät ole yhtä kriittisiä kuin normaalissa java-sovelluspalvelimessa Komponenttien kehittämiseen tarkoitettu kehitystyökalu toimii huonosti. Komponentti voidaan kehittää/toteuttaa usealla eri kehitystyökalulla. Komponentin rakenteen tulee olla niin yksinkertainen, että sitä voidaan tarkastella ilman erityistä kehitystyökalua. Komponentin konfiguraatiot ovat löydettävissä nopeasti. Uusien palveluiden kehittäminen on hidasta ja kallista. Tee palvelu ohjeissa mainitulla tavalla ja arvioi kuinka helppoa ja intuitiivista palvelun kehittäminen on. palvelu asentuu Palvelun asentuminen toimii suositulla maven kehitystyökalulla. palveluiden konfiguraatiot on löydettävissä helposti. Palvelualustan ylläpitäjä Palvelualustan ylläpitäjällä tarkoitetaan tahoa, joka vastaa palvelualustan toiminnasta tai osallistuu sen ylläpitotyöhön. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu Testi PoC tulos Metropolian kommentit Palvelualustassa on tapahtunut vakava häiriötilanne. Ylläpitäjän tulee saada tieto tapahtuneesta häiriöstä. Palvelun käyttökatko pitenee. Aiheuta häiriö palvelussa ja selvitä miten vika saadaan selville Fuse HQ-tuotteen avulla järjestelmään voidaan tehdä hälytyksiä. Tämän testaamista ei kuitenkaan ehditty tehdä. Ylläpitäjä on saanut viesti vakavasta häiriötilanteesta. Ylläpitäjä voi nähdä yhdestä paikasta järjestelmän kokonaistilan sekä järjestelmässä tapahtuneet häiriöt ja niiden aiheuttajat. Ylläpito vaikeutuu ja aiheuttaa pitkiä käyttökatkoja. Arvioi miten nopeasti häiriön aiheuttaja saadaan paikallistettua Häiriöt voidaan jäljittää lokin perusteella. Lisäksi palveluiden tila voidaan nähdä listauksesta.

Ylläpitäjä A on saanut ilmoituksen, että palvelu A ei toimi oikein. Ylläpitäjä B on saanut ilmoituksen, että palvelu B ei toimi oikein. Ilmoituksista ei kuitenkaan näe häiriön syytä. Palvelut A ja B on integroitu kolmanteen palveluun, joka aiheuttaa häiriön molemmissa järjestelmissä. Ylläpitäjät näkevät helposti järjestelmien väliset riippuvuudet ja löytävät häiriönaiheuttajan nopeasti. Ylläpitäjät tekevät turhaan työtä etsiessään häiriön syytä väärästä paikasta. Palveluiden riippuvuussuhteet voidaan selvittää helposti. Palveluiden käyttö kasvaa rajusti. Palvelualustan suorituskykyä voidaan lisätä klusteroinnin avulla. Koko palvelualusta joudutaan vaihtamaan tai osasta palveluita luopumaan. Testattu klusterointia lähettämällä viestejä eri servicemix-instanssien välillä. Palvelu on kytketty uusi palvelu, jossa oleva vika aiheuttaa liikaa kuormaa palvelualustalle säännöllisin väliajoin. Palvelualustan hallintatyökaluilla voidaan tarkastella palvelun tilaa ja siihen liittyviä tietovirtoja. Ongelmien selvitys vaikeutuu. Kynnys asentaa uusia palveluita tai päivityksiä kasvaa. Viestien lähetykseen ja rajapintojen toimintaan on mahdollista liittää toiminnallisuutta interceptor-luokkien avulla. Palvelu joudutaan päivittämään. Palvelun rajapintoja käyttää kriittinen integraatio, joka lähettää palvelulle viestejä asynkronisesti. Integraation täytyy pystyä toimimaan huoltokatkon ajan. Palvelun päivityskatkos ei saa aiheuttaa häiriötilannetta integraatioihin mikäli käytetään asynkronista tiedonsiirtoa. Lisää ylläpitotyötä ja kynnys asentaa uusia palveluita tai päivityksiä kasvaa. Mikäli integraatio käyttää servicemixin jms-jonoa(activemq), on viestit mahdollista persistoida lähetyksen ajaksi. Tämän avulla varmistutaan että viesti toimitetaan perille käyttökatkoksista huolimatta. Järjestelmään tehdään tietoturva-auditointi tai epäillään että järjestelmään on yritetty tehdä tietoturvahyökkäys. Palvelu liitetyt palvelut ja integraatiot voidaan listata ja tarkastaa niiden näkyvyys sisäverkon ulkopuolelle. Palvelualustassa tapahtuvaa tietovirtaa voidaan tarkastella. Ylläpitä saa kokonaiskäsityksen järjestelmässä käytössä olevista tietoturvaan liittyvistä teknologioista. Riski hyökkäyksen onnistumisesta kasvaa, jos tietoturvan varmistaminen keskitetysti ei onnistu. Palvelut voidaan listata helposti. Palvelimelle on asennettu 3 palvelua, jotka on liitetty toisiinsa. Palvelimen osoite vaihtuu. Palveluiden on pystyttävä olemaan yhteydessä toisiinsa vaikka palvelimen osoite vaihtuisi, ilman että palveluita joudutaan konfiguroimaan uudelleen. Ylläpidon määrä kasvaa. Riski siihen, että jokin vanha palvelu hajoaa muutoksen yhteydessä on erittäin suuri. Osgi-palveluita ajetaan samassa JVM:ssä ja ne hakevat viittaukset muihin palveluihin palvelurekisteristä, jolloin osoitteita ei tarvitse palveluihin konfiguroida. Käytettäessä viestin välitykseen JMS-jonoa on osoitteet mahdollista piilottaa palveluilta klusteroinnin avulla. Yhteenveto Eduix Yhteenveto metropolia

Ehdotus Peppi-projektin tekniseksi arkkitehtuuriksi PoC-projektin aikana selvisi ettei Kuali Rice-projektia voida käyttää palveluiden toteutukseen. Student-projektin lähdekoodi todettiin kuitenkin laadukkaaksi ja rajapinnat on eristetty moduulien sisäisistä ratkaisuista hyvin. Peppi-projektin ja Kuali-student projektien tekniset ratkaisut ovat varsin samankaltaiset. Kuali Rice/Student teknologiat, lähde http://kuali.org/ks/documentation Peppi-projektissa käytettävät teknologiat, vihreällä olevia teknologioita ei keretty PoC-projektin aikana tarpeeksi testaamaan, mutta joita todennäköisesti tullaan toteutusvaiheessa käyttämään. Sinisellä olevat ovat uusia verrattuna Kuali-, mutta joiden käyttöön todennäköisesti tullaan myös Kuali-projektissa myöhemmin siirtymään, arvio perustuu Kuali Days -tapahtumasta saatuihin kokemuksiin ja kualin wikissä ja keskusteluryhmissä käytyihin keskusteluihin.

ServiceMix/Peppi teknologiat Näkymäkerros Näkymäkerros perustuu johonkin yleisesti käytössä olevaan teknologiaan, mutta se rajataan seuraavasti: Näkymäkerros ei ole transaktionaalinen. Mikäli näkymäkerroksessa kutsutaan eri palveluita ja huomataan että kutsut tulee suorittaa transaktiossa, tarkoittaa se että palvelukerrokseen on tehtävä uusi palvelu tätä toimintoa varten. Viestit näkymäkerroksen ja palvelualustan välillä ovat XDW-määrityksiin perustuvia XML-viestejä. Huomioitavaa on että XDW-määritykset eivät välttämättä sovellu sellaisenaan suunnittelun työvälineisiin, vaan skeemaa täytyy mahdollisesti laajentaa. Oikeustarkistuksia tehdään ainoastaan näkymien suodattamista varten, varsinaiset oikeustarkistukset tehdään palveluissa erikseen. Peppi-palvelut Peppi-palvelut toteutetaan OSGI-paketteina, jotka ovat yhteydessä toisiinsa ainoastaan rajapinta-luokkien avulla. Palvelut julkaisevat XDW-määrityksiin perustuvia rajapintoja näkymäkerroksen käyttöön. Palveluiden toteutuksessa hyödynnetään Kuali Student -projektin lähdekoodia ja ratkaisumalleja. Suunnittelussa huomioidaan, että tulevaisuudessa Kuali-projektissa Rice ksb saatetaan myös korvata ServiceMix-tuotteella. Integraatiot ulkopuolisiin järjestelmiin Peppi-palvelut integroidaan esim. Winhaan ServiceMixin viestijonon avulla. Viestit on mahdollista säilöä tietokantaan lähetyksen ajaksi, joka takaa viestin lähetyksen perille. Mikäli viestinlähetyksessä tapahtuu häiriö, jää viesti tietokantaan ja teknisen pääkäyttäjän tehtävänä on korjata häiriötilanne. Metropolian arvio ehdotetusta arkkitehtuurista