Collaborative and interoperable computing

Samankaltaiset tiedostot
Hieman lisää malleista ja niiden hyödyntämisestä

Palvelusuuntautunut ohjelmistotuotanto Luento 1: Kurssin järjestelyt, palveluperustaisten järjestelmien periaatteet Toni Ruokolainen, 8.9.

Palvelusuuntautunut ohjelmistotuotanto Laskuharjoitus 1: Ryhmätöiden alustaminen Toni Ruokolainen,

Palvelusuuntautunut ohjelmistotuotanto Luento 5: Palvelusuuntautuneen ohjelmistotuotannon prosessit Toni Ruokolainen,

Palvelusuuntautunut ohjelmistotuotanto Luento 8: Näkökulmien mallinnus ja soveltaminen; Kurssin yhteenveto Toni Ruokolainen

Palvelujen dynaaminen valvonta

Collaborative and interoperable computing

Edellä esitetty tapa toteuttaa palvelupohjaisia järjestelmiä edustaa nk. top-down lähestymistapaa. Oleellisesti siinä siis edetään systemaattisesti

Ajankohtaisia SOA tutkimusteemoja

Johdantoluento. Ohjelmien ylläpito

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

Palvelusuuntautunut ohjelmistotuotanto Luento 6: Malliperustaisen ohjelmistotuotannon perusteet; palvelutuotannon mallit Toni Ruokolainen, 5.2.

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ohjelmistojen mallintaminen, mallintaminen ja UML

Tietojärjestelmän osat

arvostelija OSDA ja UDDI palveluhakemistoina.

A Service-Oriented Architecture (SOA) View of IHE Profiles

Luottamuksen ja maineen rooli palveluperustaisten yhteisöjen muodostamisessa

Palvelusuuntautunut ohjelmistotuotanto Luento 2: Palvelut ja palvelukoosteet Toni Ruokolainen,

Arkkitehtuurinen reflektio

The OWL-S are not what they seem

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1

Järjestelmäarkkitehtuuri (TK081702) Yritysarkkitehtuuri. Muutostarpeet

Ohjelmistojen mallinnus, s2008 HY/TKTL, 28/10/2008. Harri Laine 1. Ohjelmisto

Software engineering

Web-palvelukonsepti tarjoaa yhden tavan toteuttaa SOA. Tämä tapa perustuu Web-palvelustandardien käyttöön: palvelut kuvataan WSDL-kielen avulla ja

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmistotekniikka - Luento 2

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

Ohjelmistojen mallintaminen

Palvelunhallinta monitoimittajaympäristössä Sami Merovuo, Service Manager, HiQ Finland Oy

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Sisällys. Ratkaisumallien historia. Ratkaisumalli. Ratkaisumalli [2] Esimerkki: Composite [2] Esimerkki: Composite. Jaakko Vuolasto 25.1.

Integrointi. Ohjelmistotekniikka kevät 2003

SOA SIG SOA Tuotetoimittajan näkökulma

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Suunnitteluvaihe prosessissa

Ohjelmistoprosessit ja ohjelmistojen laatu Kevät Ohjelmistoprosessit ja ohjelmistojen laatu. Projektinhallinnan laadunvarmistus

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Semanttisen Webin mahdollisuudet yrityksille

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

HOJ J2EE & EJB & SOAP &...

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

HSMT J2EE & EJB & SOAP &...

Ohjelmistojen suunnittelu

Kari Rouvinen Johtaja, Technology Products & Solutions. Oracle Finland Oy

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

Ulkoistustoimittajan valvontapalvelu. Ville Mannonen / DataCenter Finland

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

Tutkittua tietoa. Tutkittua tietoa 1

Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4

UML-kielen formalisointi Object-Z:lla

Hyvin määritelty on puoliksi tehty kuinka vältetään turha tekeminen jo alussa

Avoimen MaaS-ekosysteemin työpaja

Tavaraliikenteen telematiikka-arkkitehtuuri Tavaraliikenteen TelemArk

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

Määrittelyvaihe. Projektinhallinta

Ohjelmistotekniikan menetelmät, kesä 2008

Reflektiomekanismien rooli palveluorientoituneissa järjestelmissä. Seminaarityö Tom Bertell

Tapahtuipa Testaajalle...

Ylläpito. Ylläpidon lajeja

Testaustyökalut. Luento 11 Antti-Pekka Tuovinen. Faculty of Science Department of Computer Science

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Keskitetyn integraatiotoiminnon hyödyt

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

Johdanto. Mitä on ohjelmistotuotanto? Tämän kurssin näkökulma. Sami Kollanus TJTA330 Ohjelmistotuotanto

Mitä on ohjelmistotuotanto?

Ohjelmistojen mallintaminen. Luento 11, 7.12.

2 Ohjelmistoarkkitehtuurien kuvaus

Tekninen vuoropuhelu. Apotti-hanke. Tietopyyntö

Ohjelmistotekniikan menetelmät, UML

Työeläkeyhtiö Varma. IBM Software Day Tuukka Tusa, Digia


OHJ-5201 Web-palveluiden toteutustekniikat. Kurssisisällöstä. Tarja Systä

Tyyppiluokat II konstruktoriluokat, funktionaaliset riippuvuudet. TIES341 Funktio-ohjelmointi 2 Kevät 2006

Standardi IEC Ohjelmisto

KONTTI - Teolliset komponenttiohjelmistot Tekesin ETX-ohjelma

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

ORACLE INFORMATION AGE APPLICATIONS ORACLE FUSION MIDDLEWARE ORACLE GRID

1.3 Katsaus ohjelmistotuotannon kehittymiseen

Ohjelmistojen mallintaminen, kesä 2009

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Johtamisen haaste kokonaisarkkitehtuuri menestyksen mahdollistajako?

Portaaliteknologiat mahdollistavat ajattelutavan muutoksen

Dynaaminen analyysi II

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä

Tietojärjestelmäarkkitehtuurit

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2007

HP OpenView ratkaisut toiminnan jatkuvuuden turvaajina

Moniulotteisten ohjelmistojen hallinta

812341A Olio-ohjelmointi, I Johdanto

Ohjelmistotekniikka kevät 2003 Laatujärjestelmät

Käytännön haasteita ja ratkaisuja integraation toteutuksessa. Jukka Jääheimo Teknologiajohtaja Solita Oy

ITK130 Ohjelmistojen luonne

ALUEELLISET LIIKETOIMINTAMALLIT Miten ylitän kuilut? KTT Marika Iivari

SOA & Ajax Sanahelinää vai toimivaa käytäntöä sähköisessä asioinnissa? Fenix hankejohtaja Harri Juuti Projektipäällikkö Teemu Karvonen

Knowledge Management (KM) eli. tiedon/tietämyksen hallinta

IT Service Desk palvelun käyttöönotto palvelukeskuksissa

Yhteenveto tuotteenhallinnan tiimoilta kertyneistä opeista. Jukka Kääriäinen

Transkriptio:

CINCO Collaborative and interoperable computing Palvelusuuntautunut ohjelmistotuotanto Luento 3: Palveluperustaisten järjestelmien elinkaaret ja palvelusuuntautuneen ohjelmistotuotannon lähestymistavat Toni Ruokolainen, 26.1.2010

Motivointi luennolle Palvelusuuntautuneen ohjelmistotuotannon prosessit ovat alisteisia Ekosysteemin ominaisuuksille Palvelutuotannon lähestymistavoille Palveluntuottajan kannalta on tärkeää tietää Minkälaisia elinkaaria ekosysteemissä on? Minkälaisia toimintoja ja informaatiota elinkaaren vaiheet sisältävät ja vaativat? Lähestymistavat palvelutuotantoon Määrittelevät miten palveluita tuotetaan Liiketoiminta- vs. teknologialähtöisyys Kuva: Papazoglou, M. P. and van den Heuvel, W. 2007. Business process development life cycle methodology. Commun. ACM 50, 10 (Oct. 2007), 79-85.

Luennon runko Palveluperustaisten järjestelmien elinkaaret Palveluiden elinkaari Analyysi, suunnittelu, toteutus, julkaisu, ylläpito, alasajo Yhteistyöverkostojen elinkaari Analyysi, suunnittelu, palveluiden etsintä ja valinta, neuvottelu, toiminta, alasajo Palvelutuotannon lähestymistavat Yhteenveto Top-down, bottom-up, meet-in-the-middle

Palveluperustaisten järjestelmien elinkaaret ja ohjelmistotuotantoprosessit Palveluperustaisten järjestelmien elinkaaret Elinkaari = sarja elinkaaren vaiheita Jokaisessa vaiheessa suoritetaan sille ominaisia toimintoja Toiminnot mahdollistavat ja ylläpitävät ekosysteemin toimintaa Esimerkiksi palvelun julkaisu Toiminnot suoritetaan ekosysteemin toimijoiden ja infrastruktuuripalveluiden välillä Palvelusuuntautuneen ohjelmistotuotannon prosessit Koostuu järjestetystä joukosta kehitysaktiviteetteja Aktiviteetit tuottavat ohjelmistoartefakteja sekä metainformaatiota Palvelukuvaukset, teknologiset palvelut, orkestrointiprosessit ja niiden kuvaukset, palvelusopimukset ja niiden pohjat (template),... Metainformaatiota Sekä saadaan infrastruktuuripalveluilta... että syötetään infrastruktuuripalveluille Eli tuotantoprosessit tukevat ja riippuvat elinkaarista!

Palveluiden elinkaari Yksittäisten palveluiden elinkaari sisältää kuusi vaihetta 1. Palveluanalyysi 2. Palvelun suunnittelu 3. Palvelun toteutus 4. Palvelun julkaisu rekisteriin ja siihen liittyvät toimet 5. Palvelun toiminta & ylläpito 6. Palvelun alasajo Ennen analyysivaihetta valmistelevia toimia, kuten Yrityksen palvelustrategian muodostaminen Liiketoimintasanaston / -ontologian määritteleminen Liiketoimintatietouden muodostaminen Organisaatiostruktuuri, yritysarkkitehtuuri (enterprise architecture), sidosryhmät,... Liiketoiminnallisten ja teknologisten palveluiden suunnittelun ja toteutuksen päämäärät ja kriteerien määrittely Esimerkiksi out- / in-sourcing politiikat jne.

Palveluanalyysi Palveluanalyysi tähtää tarpeeseen sopivien palvelukokonaisuuksien löytämiseen Käytetään soveltuvaa vaatimusanalyysitekniikkaa: esim. haastattelut, skenaarioanalyysit, tavoitesuuntautunut analyysi (goal oriented analysis) jne. Tuloksena saadaan joukko (liiketoiminnallisia) palveluita Palvelunanalyysin syötteinä ja rajoitteina esimerkiksi Yritysarkkiarkkitehtuuri Liiketoimintaprosessit, palveluportfolio, markkinoilla olevat palvelut Sidosryhmien kuvaukset ja vaatimukset Toimialastandardit ja liiketoimintasanastot Esim. RosettaNet -standardin PIP (partner interface process) määrittelyt Tunnistetaan mm. Toimijat, interaktiot, palveluoperaatiot, liiketoimintakonteksti,... Sopivien palveluiden idenfitiointi voi olla vaikeaa, jos Liiketoimintaprosesseja tai muita tarvittavia syötteitä ei ole eksplisiittisesti saatavilla Yhtenäistä periaatetta palveluiden rajaamiseen (decomposition) ei ole

Palveluiden suunnittelu Analyysistä saadut käsitteelliset palvelut muunnetaan palveluspesifikaatioiksi Tuotetaan formaalit mallit vapaamuotoisemmista vaatimusmäärittelyistä Erityisesti tuotetaan palvelukuvaukset (palvelutyyppien kuvaukset, abstraktit osiot) Tarvitaan palveluiden etsintävaiheessa Suunnitteluvaiheessa tulee huomioida erityisesti Palveluiden sopiva rakeisuus Toimialakohtaisten käsitteiden ja liiketoimintaprosessien / -protokollien hyödyntäminen Palveluiden uudelleenkäytettävyys Yleistäminen, kontekstiriippuvuuksien vähentäminen Palveluiden koostamisen mahdollistaminen Löyhä kytkentä ja korkea koheesio itsenäiset palvelurajapinnat Koosteisten palveluiden suunnittelussa erityistä Palveluiden valinta palveluportfoliosta / -markkinoilta Riippuvuudet muista palveluista palvelutasosopimusten ja laatuvaatimusten reunaehtojen määrittely! Koosteen määrittely ja validointi

Palveluiden toteutus Teknologisten palveluiden toteuttaminen Tuotetaan teknologiariippumatonta kuvausta vastaavat teknologiaspesifiset ohjelmistoartefaktit Esimerkiksi WSDL:stä Java-luokiksi -muunnos Määritellään palvelukuvausten konkreettinen, teknologiaspesifinen osuus Käytettävät viestintämekanismit, kuten kommunikointiprotokollat Tarvitaan palveluiden sidontavaiheessa Palveluiden koostaminen Staattisten ja manuaalisten koosteiden toteuttaminen Esimerkiksi WS-BPEL -määrittelyt Sisältää yleensä iteratiivisia osavaiheita, kuten Simulointi Validointi Testaus

Palveluiden asennus Palveluiden asennus (deployment) Teknologisten palveluiden asennus kohdealustalle Infrastruktuurin konfiguroiminen Lähestymistapoja Manuaalinen asennus Skiptikieleen perustuva asennus Toimialakohtaiseen kieleen perustuva asennus Malliperustainen asennus Palveluiden toimittaminen (provisioning) Lähestymistavoista: Talwar, V., Milojicic, D., Wu, Q., Pu, C., Yan, W., and Jung, G. 2005. Approaches for Service Deployment. IEEE Internet Computing 9, 2 (Mar. 2005), 70-80. DOI= http://dx.doi.org/10.1109/mic.2005.32 Palvelunhallinnan mahdollistaminen, sertifikaattien hankkiminen, laatuauditointi, palveluntasomittareiden toteuttaminen,... Toiminnanaikaisen konfiguroinnin mahdollistaminen Esimerkiksi erilaisten sidontatyyppien mahdollistaminen (eri kommunikointiprotokollien tai laatuominaisuuksien sidonta palveluun)

Palveluiden julkaisu Palvelun julkaisu rekisteriin Palvelukuvauksen täydentäminen Konkreettisten palveluiden sidonta: palvelupäätepisteiden osoitteet, kommunikointiprotokollamäärittelyt jne., jos ei ole tehty jo edellisissä vaiheissa Näkökulmat jotka tulee huomioida Luottamus, maine ja yksityisyys: mitä halutaan palvelusta julkaista, millä näkyvyydellä ja kenelle? Luotetaanko palvelurekisteriin ja asiakaskuntaan? Versiointi? Palvelunlaatusopimusten aihioiden viimeistely ja julkaisu Mitkä ovat ne reunaehdot, joilla palvelua ollaan valmiita tarjoamaan? Palvelunlaatuominaisuudet julkaistaan osana palvelukuvausta

Palveluiden toiminta Palveluiden sidonta (binding) Palveluiden myöhäinen kapselointi (encapsulation) Kommunikointimekanismien konfigurointi Ominaisuuksien sitominen palveluihin ajonaikaisesti Palveluiden konfigurointi voimassa olevien sopimusten mukaisesti Informaatio saadaan erityisesti Palvelukuvauksista (erityisesti teknologiaspesifinen osuus) Palvelunlaatusopimuksista Dynaaminen sidonta vaatii infrastruktuuritukea! Palveluiden valvonta (monitoring) Valvonnan kohteita Palvelunlaatusopimukset, suorituskyky, resurssien käyttö, muut näkökulmat (esim. oikeellisuus) Valvonnan toimintamuodot Passiivinen: esimerkiksi analysoidaan palveluiden muodostamia lokeja Aktiivinen: ajonaikainen raportointi konflikteista, virheistä ja sopimusrikkomuksista Pro-aktiivinen: yritetään estää virheitä tapahtumasta

Palveluiden ylläpito Palautteen antaminen palveluiden toiminnasta Liikkeenjohdolle Palvelun kehittäjille Raakadata palveluiden valvontaympäristöstä Palveluiden evoluutio Liiketoiminnalliset palvelun muuntuminen Uudet liiketoimintatavat ja -mahdollisuudet Komponenttipalvelun muuntuminen Palvelusuunnittelun lähestymistapojen muuttuminen: esimerkiksi teknologiavetoisesta palvelusuunnittelusta liiketoimintavetoiseen suunnitteluun; yritysarkkitehtuurin muutokset (esim. yritysostojen yhteydessä tai strategiamuutokset) Teknologisen palvelun muuntuminen Teknologian muuttuminen (eri versiot alustasta, teknologisen alustan vaihtuminen, standardien muuttuminen ja kehitys,...) Palvelutoteutusten tehostaminen

Palveluiden alasajo (retirement) Palaute palvelun toiminnasta Liikkeenjohdolle Toteuttajille Resurssien vapauttaminen Mahdollisten sopimusrikkojen kompensointi Palvelu ajettiin alas kesken sopimuskauden? Syynä esimerkiksi yritysstrategian muutokset Vaihtoehtoisesti voidaan ehkä uudelleenneuvotella sopimukset Käytetään uutta palvelua entisen sijasta? (esimerkiksi alinhankintana) Ekosysteemin tietämyksen päivittäminen Tieto palvelurekistereihin palvelun lopettamisesta Mahdolliset vaikutukset palveluntuottajan maineeseen ja luottamukseen?

Yhteistyöverkostojen elinkaari Vaiheet Analyysi Suunnittelu Palveluiden etsintä ja valinta Neuvottelu Toiminta Alasajo

Yhteistyöverkostojen analyysi ja suunnittelu Käytetään esimerkiksi haastatteluja liiketoimintavaateiden ja prosessien paljastamiseksi Päämääränä formaali yhteistyökuvaus (koreografia) Esimerkki metodista: UN/CEFACT Modeling Methodology 1) Liiketoimintavaatimusten määrittely 1) Liiketoiminta-alueen (business domain) määrittely: standardoidut sanastot ja prosessit 2) Toimijoiden määrittely (business entity) määrittely: toimijoiden elinkaaret 2)Liiketoimintakoreografian määrittely 1) Kahdenkeskisten liiketoimintatransaktioiden määrittely 2) Liiketoimintakoreografian määrittely: transaktioiden operaatioden järjestäminen ja yhteistoiminnan koordinoinnin spesifiointi 3) Liiketoiminnan realisoinnin määrittely: liiketoimintapartnereiden sidonta koreografian rooleihin 3)Liiketoimintainformaation määrittely 1) Liiketoimintatransaktioissa vaihdettavien liiketoimintadokumenttien määrittely 2) Liiketoimintaviestien määrittely: dokumenttien päivittämiseen tarvittavat tiedot

Palveluiden etsintä ja valinta Palveluiden etsintä Etsitään palvelurekisteristä joukko palveluita, jotka täyttävät yhteistyöverkoston roolin mukaiset kriteerit Ehdot etsinnälle Palvelun syntaktisen ominaisuudet Palvelun semantiikka (operaatioiden ja viestien tulkinta, käyttäytyminen) Rajoitteet ja ehdot palvelun ei-toiminnallisille ominaisuuksille Syntaktiset ja semanttisen ominaisuudet voidaan johtaa yhteistyöverkoston koreografiasta Rajoitteet ja ehdot palvelun ominaisuuksille määritellään Yhteistyöverkoston kuvauksessa Yhteistyöverkostoon osallistuvien toimijoiden politiikoissa Palveluiden valinta Valitaan paras mahdollinen löydettyjen palveluiden joukosta Kriteerinä esimerkiksi QoS -määreet, hinta, maine, luottamus,...

Yhteistyöstä neuvottelu Yhteistyöverkoston ominaisuuksia voidaan tarkentaa neuvotteluilla Palveluiden etsinnän ja valinnan jälkeen rooleissa olevat palveluntuottajat ovat voineet jättää ominaisuuksiaan avoimiksi Infrastruktuuripalvelut neuvotteluiden mahdollistamiseksi Voivat perustua esimerkiksi multi-agenttijärjestelmien (multiagent system, MAS) mukaisten mekanismien käyttöön Neuvottelujen automatisoiminen mahdollisimman pitkälle Tarjous-vastatarjous -menettelyt Huutokaupat Mahdollistaa erityisesti pragmaattisen yhteentoimivuuden takaamisen Ei-julkisten politiikkojen yhteensovittaminen Yhteistyöstä kieltäytyminen tarpeen tullen

Palvelusopimukset Palveluperustaisen järjestelmän toiminnan perustana on sopimukset Voi olla joko eksplisiittinen tai implisiittinen Voivat olla kahden- tai monenkeskisiä Voivat olla muodostettu joko staattisesti tai dynaamisesti Voivat sisältää funktionaalisia, ei-funktionaalisia ja liiketoiminnallisia määreitä Sopimus määrittelee mm. palvelun osapuolten Velvoitteet, oikeudet ja kiellot Käyttörajoitteet Sopimustekniset asiat: sopimuksen voimassaolo ja purkaminen Palvelusopimuksia voidaan monitoroida Passiivisesti, aktiivisesti, tai proaktiivisesti Palvelusopimukset voidaan jakaa kahteen luokkaan Palvelutasosopimukset Yhteistyösopimukset

Palvelutasosopimukset (service level agreement, SLA) Palvelutasosopimus on kahdenkeskinen sopimus palvelun tuottajan ja asiakkaan kesken Määrittelee vaatimukset palvelulle Esimerkiksi: palvelun sisältö, hinta, toimitustapa, kelpoisuus- ja laatuehdot, rangaistukset ehtojen rikkomisesta,... Palvelutasosopimukset mahdollistavat palveluiden tuottamisen ulkoisia palveluita koostaen Mahdolliset palvelutasorikkeet propagoituvat alihankintaketjuun SLA voi sisältää esimerkiksi seuraavanlaisia tietoja Sopimuksen tarkoitus: miksi sopimus on tehty Sopimuksen osapuolet Voimassaoloaika Sopimuksen laajuus: sisällytetyt palvelut Rajoitteet Palvelutasotavoitteet: saatavuus, suorituskyky, luotettavuus,... Rangaistusseuraamukset

Yhteistyösopimukset Palveluekosysteemeissä esiintyy usein yhteistyötä usean osapuolen kesken Joukko kahdenkeskisiä sopimuksia ei riitä kattamaan esimerkiksi virtuaaliorganisaation toimintaa Yhteistyösopimuksia tarvitaan kuvaamaan ja rajaamaan yhteistyöverkoston toimintaa Yhteistyön mahdollistavat sopimukset Esisopimus, jossa palveluntarjoajat sitoutuvat tuottamaan yhteistyöroolien mukaisia palveluita tarpeen mukaan Ei yleensä täysin sitova, vaan lähinnä puitesopimus Yhteistyön määrittelevät sopimukset Sitova sopimus osallistua yhteisön toimintaan Neuvotellaan yhteistyön mahdollistavien sopimusten rajoissa partnereiden kesken

Yhteistyöverkoston toiminta ja alasajo Koordinointi Ohjataan yhteisön toimintaa siten, että yhteistyön tavoitteet täyttyvät Valvonta Tapahtumankäsittely ja tapahtumien kommunikointi Kerätään tietoa yhteistyön toiminnasta ja ominaisuuksista Valvontaa voidaan suorittaa joko keskitetysti tai hajautetusti (paikallisesti) Pyritään reagoimaan tapahtumiin, jotka rikkovat yhteistyösopimusta Alasajo Kompensaatiot, sopimuksen uudelleenneuvottelut ja niiden purkaminen Puretaan sopimukset Vapautetaan resurssit Ylläpidetään mainetietoa

Palvelutuotannon lähestymistavat Top-down Lähdetään liikkeelle liiketoiminnan vaateista Tunnistetaan ja määritellään liiketoimintaprosessit sekä niitä tukevat palvelut Bottom-up Lähdetään liikkeelle (jo olemassa olevasta) liiketoimintaa tukevasta ohjelmistojärjestelmästä Esimerkiksi ERP-ohjelmiston tuottamista palveluista Tunnistetaan eriytettävät palvelut ja liiketoimintaprosessit ITjärjestelmistä Esimerkiksi tietovuoanalyysillä ja reverse engineering tekniikoilla Meet-in-the-middle Jo olemassa olevia palveluita käytetään uudelleen uusien palveluiden ja liiketoimintaprosessien osana

Top-down menetelmä: malliperustainen palvelutuotanto Lähdetään liikkeelle yhteistyökoreografiasta Määritelty formaaline mallina (Semi-)automaattisesti tuotetaan koreografiasta Roolien mukaiset orkestraatioprosessit Tarvittavat palvelurajapinnat Liiketoimintadokumentit Mallimuunnoksia käytetään Abstraktiotasojen välillä Näkökulmien välillä Mayer, P., Schroeder, A., and Koch, N. 2008. MDD4SOA: Model-Driven Service Orchestration. In Proceedings of the 2008 12th international IEEE Enterprise Distributed Object Computing Conference (September 15-19, 2008). EDOC. IEEE Computer Society, Washington, DC, 203-212. DOI= http://dx.doi.org/10.1109/edoc.2008.55

Bottom-up menetelmä: Architecture-Driven Modernization (ADM) ADM OMG:n standardointialoite Määrittelee toimintatapoja sekä välineitä ohjelmistojärjestelmien modernisointiin Perustuu eksplisiittisen mallin muodostamiseen olemassa olevasta järjestelmästä Joitain syitä modernisointiin Ohjelmistoportfolion ylläpito Koodin ylläpito Siirto eri alustalle Uudelleenkäyttö Siirtyminen palveluperustaiseen arkkitehtuuriin Siirtyminen perinnejärjestelmästä SOA:an Järjestelmien, ohjelmistojen toiminnallisuuden, tietojen käyttötapojen ja käyttöliittymien välisten riippuvuuksien identifiointi ja hallinta Toiminnallisuuden kapselointi palveluiksi Kuva: Kavianpour, M. 2007. SOA and Large Scale and Complex Enterprise Transformation. In proceedings of ICSOC 2007. B. J. Krämer, K. Lin, and P. Narasimhan, Eds. Lecture Notes In Computer Science, vol. 4749. Springer-Verlag, Berlin, Heidelberg, 530-545.

Bottom-up esimerkki: tietokantajärjestelmästä palveluiksi DMR: Muodostetaan malli tietokannasta 1) Tietokantaskeemoista SQL-92:n mukaiseksi malliksi 2) Mahdollisten palveluiden identifiointi ja niiden mallintaminen OMG: Luodaan UML2-pohjainen malli DMRmalleista Nostetaan abstraktiotasoa WSG: Generoidaan WS-tuotokset OMG:mallista 1) WSDL rajapintakuvausten generointi 2) OMG objekteja vastaavan koodin generointi del Castillo, R. P., García-Rodríguez, I., and Caballero, I. 2009. PRECISO: a reengineering process and a tool for database modernisation through web services. In Proceedings of the 2009 ACM Symposium on Applied Computing (Honolulu, Hawaii). SAC '09. ACM, New York, NY, 2126-2133.

Meet-in-the-middle menetelmä: BITAM-SOA Chen, H., Perry, O., and Kazman, R. 2009. An integrated framework for service engineering: a case study in the financial services industry. In Proceedings of the 11th international Conference on Electronic Commerce (Taipei, Taiwan, August 12-15, 2009). ICEC '09. ACM, New York, NY, 269-278.

Lähestymistavoista: tutkimustuloksia joukosta suomalaisia yrityksiä Tutkimuksen yrityksistä suurin osa sovelsi bottom-up lähestymistapaa jollain tavoin Erityisesti integraatioprojekteissa Perinnejärjestelmät (legacy) ja niihin sijoitetut resurssit Täysin uusien palveluiden kehittäminen on aikaa vievä prosessi Liiketoiminnallisia palveluita ei voi kuitenkaan kehittää lyhytaikaisiin projekteihin ja teknologisiin toteutusyksityiskohtiin perustuen! Siksi jonkinlainen meet-in-the-middle on ehkä varteenotettavin vaihtoehto yrityksen SOA migraatioon Puhdas top-down helpottaisi kuitenkin oikeanlaisten palveluiden löytymistä edistäisi uudelleenkäyttöä Esiintulleita esteitä top-down -lähestymistavan käyttöönotolle Muutosvastarinta Liiketoimintaprosessien mallinnuksen vajavaisuus Liiketoimintajohdon kulttuuri Työkalujen puute / käyttöönoton hankaluus Sopivien asiantuntijoiden puute Elinkaarien hallinnan olemattomuus Kokko, T., Antikainen, J., and Systä, T. 2009. Adopting SOA - Experiences from Nine Finnish Organizations. In Proceedings of the 2009 European Conference on Software Maintenance and Reengineering (March 24-27, 2009). CSMR. IEEE Computer Society, Washington, DC, 129-138.

Yhteenveto: ohjelmistotuotantoprosesseihin vaikuttavia tekijöitä Palveluekosysteemin elinkaaret Ohjaavat palvelutuotantoprosessien aktiviteettien sisältöä Mitä tulee ottaa huomioon ja missä vaiheessa? Onko ekosysteemin palveluiden tyypit ennalta määritelty? Miten palveluiden ominaisuudet määritellään ja julkaistaan? Missä vaiheessa palveluiden sidonta ja kapselointi tapahtuu? Miten yhteentoimivuus taataan? Mitä ohjelmistoartefakteja tulee tuottaa ja missä vaiheessa? Mitä metainformaatiota täytyy tuottaa? Mitä on saatavilla? Palvelukuvaukset (abstraktit / konkreettiset), palvelusopimukset ja niiden pohjat Miten palvelut kuvataan? Yhteentoimivuuden takaamisen menetelmät Toimijoiden lähestymistavat palvelutuotantoon Liiketoiminta- vs. teknologialähtöisyys Top-down, bottom-up, meet-in-the-middle Ohjaavat ohjelmistotuotantoprosessien aktiviteettien järjestystä ja keskinäisiä riippuvuuksia