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

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

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

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

Palvelusuuntautunut ohjelmistotuotanto Luento 5: Palvelusuuntautuneen ohjelmistotuotannon prosessit Toni Ruokolainen,

Ohjelmistoarkkitehtuurit. Kevät

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

Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistoprosessit ja ohjelmistojen laatu (4op)

Collaborative and interoperable computing

Ajankohtaisia SOA tutkimusteemoja

Ohjelmistoarkkitehtuurit. Syksy 2008

Palvelusuuntautunut ohjelmistotuotanto Luento 2: Palvelut ja palvelukoosteet Toni Ruokolainen,

Ohjelmistotekniikan menetelmät, kesä 2008

Kurssijärjestelyt. CS-1180 Verkkojulkaisemisen perusteet (5 op) Hanna Hämäläinen Informaatioverkostot / Mediatekniikan laitos

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Collaborative and interoperable computing

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

Tieto ja järjestelmät integroituvat asiakaslähtöisiksi palveluiksi. JHS-seminaari Jukka Ahtikari

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

The OWL-S are not what they seem

Kurssijärjestelyt. ME-C2300 Verkkojulkaisemisen perusteet (5 op) Mari Hirvi Informaatioverkostot / Mediatekniikan laitos

Ohjelmistojen mallintaminen, kesä 2009

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

Semanttisen Webin mahdollisuudet yrityksille

T Ohjelmistojen määrittely- ja suunnittelumenetelmät

Ohjelmistoarkkitehtuurit. Syksy 2010

Ohjelmistotekniikan menetelmät, kevät 2008

A4.1 Projektityö, 5 ov.

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistoarkkitehtuurit Kevät käytäntöjä

Ohjelmistojen mallintaminen, kesä 2010

Tiedonsiirto- ja rajapintastandardit

Web-Pilarcos: väliohjelmistopalveluita sähköisille liiketoimintaverkostoille

Avoimen MaaS-ekosysteemin työpaja

Liiketoimintajärjestelmien integrointi

Tietojärjestelmän osat

Mistä on kyse ja mitä hyötyä ne tuovat?

käyttötapaukset mod. testaus

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

arvostelija OSDA ja UDDI palveluhakemistoina.

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

Muutoksen hallinta rakenteisen projektissa. Kari Kovanen Development manager Etteplan Technical Information

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

Harri Kaukovuo Senior Sales Consultant Technology Sales Oracle Finland Oy

Liiketoimintajärjestelmien integrointi

OHJ-3010 Ohjelmistotuotannon perusteet, kesä 2012

Ohjelmistoarkkitehtuurit. Syksy 2007

HSMT J2EE & EJB & SOAP &...

Turvakriittisen projektin menetelmät ja työkalut

ohjelman arkkitehtuurista.

Kurssin tavoitteista uennot. 4.1 Projektityö, 5 ov. Esitietovaatimukset

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

Avoimuus ja julkisen hallinnon tietohallinto. Yhteentoimivuutta avoimesti -seminaari Tommi Oikarinen, VM / JulkICT

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

Semanttinen Web. Ossi Nykänen Tampereen teknillinen yliopisto (TTY), DMI / Hypermedialaboratorio W3C Suomen toimisto

HOJ J2EE & EJB & SOAP &...

Avoimen ja jaetun tiedon hyödyntäminen. Juha Ala-Mursula BusinessOulu

Enterprise SOA. Nyt. Systeemi-integraattorin näkökulma

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

Standardi IEC Ohjelmisto

Projektin suunnittelu

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

Tampereen kaupungin paikkatietostrategia Tampereen kaupunki

Ohjelmistoarkkitehtuurit Kevät käytäntöjä

Tietokoneverkot. T Tietokoneverkot (4 op) viimeistä kertaa CSE-C2400 Tietokoneverkot (5 op) ensimmäistä kertaa

WEBINAARI CLOUD SOFTWARE SRA- esi;ely

Inspire-prosessin tilannekatsaus 01 / 2012

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

TIE Ohjelmistojen suunnittelu

Luottamuksen ja maineen rooli palveluperustaisten yhteisöjen muodostamisessa

Avoimen lähdekoodin ohjelmistot julkisessa hallinnossa

Näkökulmia monimuoto-opetukseen

Kurssin aloitus. AS XML-kuvauskielten perusteet Janne Kalliola

Semanttiset web-palvelut AS Syksy Eetu Mäkelä, Tuukka Ruotsalo

TIE Ohjelmistojen suunnittelu

TeliaSonera Identity and Access Management

Eero Hyvönen. Semanttinen web. Linkitetyn avoimen datan käsikirja

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Yhteenveto. Ymmärrä kokonaisuus

Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

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

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit

Palvelut yritysarkkitehtuurin keskiössä: OP-Pohjola-ryhmän matkakokemuksia

Palvelujen dynaaminen valvonta

Myös opettajaksi aikova voi suorittaa LuK-tutkinnon, mutta sillä ei saa opettajan kelpoisuutta.

suomi.fi Suomi.fi-palveluväylä

Rakenteisten dokumenttien jatkokurssi, syksy 2006

UML-kielen formalisointi Object-Z:lla

JHS 179 Kokonaisarkkitehtuurin suunnittelu ja kehittäminen Liite 9. Virtualisointi ja pilvipalvelut teknologia-arkkitehtuurin suunnittelussa

Tavaraliikenteen telematiikka-arkkitehtuuri Tavaraliikenteen TelemArk

Johnson, A Theoretician's Guide to the Experimental Analysis of Algorithms.

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

L models. Tekninen määrittely. Ryhmä Rajoitteiset

INSPIRE Toimeenpanosääntö ja tekninen ohje Muunnospalvelu Koordinaattimuunnospalvelu

Yhteentoimiva.suomi.fi - palvelukokonaisuuden ja työkalujen esittely

TIETOHALLINTOLAKI (LUONNOS) Korkeakoulujen IT-päivät Erityisasiantuntija Olli-Pekka Rissanen

Yhteentoimivuus - kattaa strategisen, lainsäädännnöllisen, organisaatioiden välisen, semanttisen ja teknisen yhteentoimivuuden

Osaamispassi ja erityisosaamistietokanta tulevaisuuden osaajille

Teemu Kerola Orientointi Syksy 2018

Transkriptio:

CINCO Collaborative and interoperable computing Palvelusuuntautunut ohjelmistotuotanto Luento 1: Kurssin järjestelyt, palveluperustaisten järjestelmien periaatteet Toni Ruokolainen, 8.9.2009

Luennon runko Kurssin järjestelyt Hallinnolliset tiedot Työskentelymuodot Oppimateriaali ja työkalut Kurssin arvostelusta Aikataulutus Motivaatio kurssille Lea Kutvonen Palveluekosysteemit ja palveluperustaisten järjestelmien periaatteet Käsitteet ja määritelmät

582642 Palvelusuuntautunut ohjelmistotuotanto Rooli laitoksella Syventävien opintojen kurssi Ohjelmistojärjestelmät -erikoistumislinjan Palvelusuuntaunut ohjelmistotuotanto -aihepiirin peruskurssi HajaTili -erikoistumislinjan Verkon yhteistoimintapalvelut -aihepiirin suositeltava kurssi Laajuus 4 op Esitietovaatimukset LuK-tutkinto Ohjelmistoarkkitehtuurit -kurssin luento-osuus (6 op) Kurssin vastuuhenkilöt Toni Ruokolainen: luennot, harjoitustyöt Lea Kutvonen: aihepiirin vastuuhenkilö, osuus valmistelusta ja arvioinnista

Kurssin työskentelymuodot Oppimismuodot Luennot 8 luentoa (2 viimeistä luennointiviikkoa varattu ryhmätöille ja workshopeille) Itsenäisesti suoritettavat tehtävät Aloitustasokoe Oppimispäiväkirja Harjoitustyöt Ryhmätöinä (6-7 henkilöä / ryhmä) Esimerkkitapaus kuvataan ja ryhmät muodostetaan 2. luentoviikon laskuharjoitustilaisuudessa Pe 29.1. klo 10-12 D122

Oppimateriaali ja työkalut Oppimateriaali Luentokalvot Jokaiseen luentoon liittyy 1-2 artikkelia Kysymykset artikkeleihin liittyen -> vastaukset oppimispäiväkirjaan Tutoriaalit workshop-tilaisuuksissa Kurssilla käytettävät kehitystyökalut MagicDraw 16 -mallinnustyökalu Käytetään palvelusuuntautuneiden ohjelmistoartefaktien mallintamiseen Saa laitoksen omistaman lisenssin nojalla asentaa opiskelijan omallekin koneelle Vaatii rekisteröitymisen MagicDraw.com sivustolle Eclipse 3.5 (Modelling -paketti) Käytetään malliperustaiseen palvelukehitykseen Vapaa ohjelmisto Asennusohjeet ilmestyvät 2010 kurssin kotisivulle

Kurssin arvostelusta Osasuoritusten pisteytys Itsenäisesti suoritettavat tehtävä: 10 p Harjoitustyöt: 30 p Tentti: 20 p Jokaisesta osiosta tulee päästä hyväksyttävästi läpi Harjoitustyöt tehdään ryhmätöinä Töistä saatavat pisteen annetaan ryhmälle Ryhmä päättää kuinka pisteet jaetaan jäsenten kesken Kuten pisteytyksestä huomaa, kurssilla on tarkoitus oppia tekemällä!

Kurssin aikataulutus Tärkeimmät päivämäärät Deadlinet Aloitustasokokeen palautus 22.01.2010 klo 24.00 mennessä Oppimispäiväkirjojen palautukset Kurssikoe 1. versio luentoviikon 2 aikana 2. versio luentoviikon 4 aikana 3. versio luentoviikon 6 aikana To 4.3. klo 16-19 salissa A111 Laskuharjoitustilaisuudet Pe 29.1. klo 10-12 D122: Esimerkkitapauksen esittely; Ryhmätöiden alustaminen; ryhmien muodostaminen Pe 12.2. klo 10-12 D122: Ryhmien suunnittelutöiden läpikäyntiä Pe 19.2. klo 10-14 D122: Mallinnus / mallimuunnos -workshop Pe 26.2. klo 10-14 D122: Kurssin lopputilaisuus -workshop Aikataulut ilmestyvät päivityksineen verkkosivulle: http://www.cs.helsinki.fi/group/cinco/teaching/sose/2010/index.fi.html

Motivaatio kurssille

Palveluperustaisten järjestelmien periaatteet Palveluekosysteemit Autonomisuus Yhteentoimivuus Palveluperustaiset järjestelmät Palvelusuuntautuneet arkkitehtuurit Yhteenveto

Palveluekosysteemit Toimijoina organisaatiot ja yksilöt Tuottavat ja käyttävät palveluita yhteistyötarpeiden täyttämiseen Tekevät yhteistyötä (collaborate) jonkin yhteisen tavoitteen saavuttamiseksi Tavoite voi olla esimerkiksi tehokas tuotantoketju tai yhteisöllisyyden edistäminen Ekosysteemi määrittelee Yhteistyön muodot ja rajoitteet Elinkaarimallit palveluille ja yhteisöille Tavoitteena Miten palveluita tuotetaan? Miten yhteisöjä muodostetaan? Yhteistyön mahdollistaminen Palveluiden uudelleenkäytettävyys Tukea mahdollisimman dynaamisia ja joustavia yhteistyön muotoja

Palveluekosysteemien karakterisointia Esimerkkejä Liiketoimintaverkostot Sosiaaliset verkostot Näiden yhdistelmät Palveluekosysteemeiden ominaisuuksia Avoimuus Voiko kuka tahansa julkistaa ja käyttää ekosysteemin palveluita? Voidaanko ekosysteemiin tuoda sen toiminnan aikana uudenlaisia yhteistyömuotoja? Toimijoiden autonomisuuden taso Yhteentoimivuuden takaamisen menetelmät

Autonomisuus palveluekosysteemeissä Palveluekosysteemit ovat avoimia järjestelmiä jonka toimijat ovat autonomisia Itsenäiset päätökset koskien Palveluiden suunnittelua ja toteutusta Palveluiden ylläpitoa ja elinkaaria Yhteystyöhön sitoutumisesta Toimijoiden autonomisuus aiheuttaa Heterogeenisyyttä Eri tulkinnat ja lähestymistavat käsitteistä sekä palveluiden ominaisuuksista Dynaamisuutta Yksittäisten palveluiden evoluutio Palvelutyyppien ja -valikoiman evoluutio ja muutokset Muutokset organisaatioiden politiikoissa Ongelmaksi muodostuu yhteentoimivuus!

Yhteentoimivuuden hallinta Yhteentoimivuus Tarkoittaa palvelun kyvykkyyttä yhteistoimintaan ennalta määritellyllä tavalla Joko yhteistoiminnan tavoitteet saavutetaan tai siihen liittyvät sitoumukset ja resurssit puretaan sekä vapautetaan hallitusti Eri tasoja Tekninen yhteentoimivuus Yhteensopivat kommunikointikanavat Semanttinen yhteentoimivuus Käyttäytymisen ja informaation yhteensopivat tulkinnat Pragmaattinen yhteentoimivuus Prosessien ja niihin liittyvien politiikkojen yhteensopivat tulkinnat pragmatic process policy semantic information abstract processing technical abstract channel Integration implicitly shared model Unification mapping to a common model Federation coupled individual models nonfunc aspects performance management methodology

Yhteentoimivuuden takaaminen integroidulla lähestymistavalla Integrointi (integration) Implisiittinen yhteistoiminnan malli: esimerkiksi suunnitteludokumentit Yhteentoimivuus taataan toteuttamalla määritelmien mukaiset protokollat Yhteistoiminnan validointi suunnitteluvaiheessa Tietämys yhteistoiminnasta koodataan ohjelmistoihin toteutusvaiheessa Integroinnin menetelmiä Tiukasti kytketty sovellusintegrointi Eli perinteinen lähestymistapa Ohjelmistojen adaptointi Käytetään kääreitä (wrapper) ja välikäsittelijöitä (interceptor) Yhtenäisen väliohjelmistoalustan käyttäminen Homogeeninen kommunikointiteknologia ja ohjelmistokehityskehikko Myös korkeamman tason homogenisointia: esim. EAI (enterprise application integration) järjestelmät

Yhteentoimivuuden takaaminen yhtenäistämisellä Yhtenäistäminen (unification) Eksplisiittinen ja jaettu yhteistoiminnan malli Yhteentoimivuus taataan tuottamalla mallin mukaiset protokollat Yhteentoimivuuden validointi suunnittelu- ja toteutusvaiheessa Yhteistoiminnan malli toimii konformanssitestinä Mallimuunnosten ja koodin generoinnin oikeellisuus tärkeässä asemassa Yhteistoiminnan malli toteutettu yhteisesti hyväksytyllä mallinnuskielellä Esimerkiksi UML-kielellä Käytetään esimerkiksi koodin generointia suoraan UML-malleista

Yhteentoimivuuden takaaminen federoidulla lähestymistavalla Federointi (federation) Yhteentoimivuus taataan järjestelmän infrastruktuuripalveluiden avulla Yhteentoimivuuden validointit myös ajonaikaisesti Julkaistut mallit yhteistoimintaverkostoista ja palveluista Eksplisiittinen yhteentoimivuuden malli Määrittelee mitä tarkoittaa yhteentoimivuus Koska mallit ovat yhteentoimivia? Minkälaisin muunnoksin yhteistoimintaan vaadittavat artefaktit tuotetaan? Mikä on eri mallien semantiikka? Ainoa yhteentoimivuuden takaamisen malli, joka tukee ekosysteemin dynaamisuutta sekä pragmaattista yhteentoimivuutta! Dynaamisesti neuvoteltavat yhteistoiminnan ominaisuudet

Palveluperustaiset järjestelmät Ekosysteemin toiminnallisuus tarjotaan palveluina Palvelulla tarkoitetaan toiminnallista yksikköä, joka tuottaa lisäarvoa asiakkaalle Palvelun toteutus ohjelmistona Esimerkiksi Web Services -teknologiaa käyttäen Hyvin määritelty ja julkaistu rajapinta Palveluperustainen järjestelmä Toteuttaa palveluekosysteemissä toimimiseen vaadittavat toiminnot Perustana palvelusuuntautunut lähestymistapa ja sitä tukeva infrastruktuuri SOA arkkitehtuurityyli Palvelusuuntautuneet ohjelmistotuotantomenetelmät ja -välineet Palveluperustainen väliohjelmisto Toteuttaa SOA -arkkitehtuurityyliin vaadittavat toiminnallisuudet

Palvelusuuntautunut arkkitehtuuri (service-oriented architecture, SOA) Arkkitehtuurityyli, joka koostuu kolmesta eri roolista Palvelun tarjoaja Organisaatio / yksilö, joka tuottaa palveluun tarvittavan toiminnallisuuden Julkaisee palvelukuvauksen palvelurekisteriin Asiakas Etsii palveluita rekisteristä Käyttää löytämiään palveluita Palvelun välittäjä Ylläpitää palvelurekisteriä SOA-tyylin toiminnallisuudet Palveluiden julkaiseminen, etsintä, sidonta

Palvelun julkaiseminen Palveluntarjoaja julkaisee palvelukuvauksen rekisteriin Kuvaus sisältää tyypillisesti Liiketoimintatietoa: tietoa palvelun tarjoajasta ja käyttöehdoista Palvelun tyypin (abstrakti palvelukuvaus) Palvelun rajapinta Syntaksi: operaatiot, käytettävät dokumenttityypit Semantiikka operaatioille ja käyttäytymiselle Kategorisointi Palveluiden etsintä keltaiset sivut -tyyppisesti Esimerkiksi: WSDL:n abstrakti osuus, OWL-S ServiceProfile Palvelun tekniset tiedot (konkreettinen palvelukuvaus) Kutsumekanismit, päätepisteiden osoitteet, kommunikaatioprotokollat,... Esimerkiksi: WSDL:n sidonnat, OWL-S ServiceGrounding

Palveluiden etsintä Palveluita etsitään palvelurekistereistä Syötteenä esimerkiksi palvelukaavain (template) tai jonkin kielen mukainen ilmaisu (query) Etsintäehtoina voidaan käyttää Palvelukategorisointia Vrt. keltaiset sivut Palveluiden semantiikkaa Esim. syöte, tuloste, esiehdot, efektit Palvelun käyttäytyminen Palveluiden laatuominaisuuksia QoS, hinta,... Palveluntarjoajan ominaisuuksia Luotettavuus, maine, sijainti,... Ainoat standardit: UDDI ja ebxml UDDI-kuvausten tietosisältö Soveltuvat lähes ainoastaan avainsanapohjaiseen ja manuaaliseen palveluiden etsintään!

Palvelun sidonta Operaatio, jossa abstrakti palvelu assosioidaan johonkin konkreettiseen palveluun Kommunikointikanavien muodostaminen Sovitaan kommunikointiprotokollista ja päätepisteiden osoitteista Palvelusopimusten muodostaminen ja täydentäminen Valitaan / neuvotellaan palvelun laatuominaisuuksista Service Level Agreement, SLA Ideaali: sidonta on automatisoitu, ajonaikainen, asiakkaalle ja palveluntarjoajalle tuntumaton operaatio Käytäntö: sidonta tapahtuu staattisesti ja manuaalisesti Ilman dynaamista sidontaa ei ajonaikaisesta palveluiden etsinnästäkään ole hyötyä! Eli nykykunnossaan SOA on rikki! Ei standardia palveluiden dynaamiseen sidontaan

Laajennettu SOA-kehikko SOA arkkitehtuurityyli ei yksinään vastaa palveluekosysteemeiden tarpeisiin Tarvitaan myös välineitä Yhteentoimivuuden hallintaan Palveluiden koostamiseen ja yhteistyön hallintaan Koosteiden syntetisointi ja koordinointi Palveluiden hallintaan Palvelulaadun hallinta ja monitorointi Liiketoimintapalveluiden hallintaan Palveluluokitukset, sertifikaatit Kuva: Papazoglou, M. P. and Georgakopoulos, D. 2003. Introduction. Commun. ACM 46, 10 (Oct. 2003), 24-28.

Yhteenveto: mitä on palvelusuuntautunut ohjelmistotuotanto? Pyrkii tuottamaan palveluita palveluekosysteemin sääntöjen ja rajoitteiden mukaisesti Palveluekosysteemi määrittelee esimerkiksi Yhteistyömuodot Peruskäsitteet (erityisesti mitä palvelu pitää sisällään) Ohjelmistotuotantometodologiat Nämä voivat olla joko staattisia tai dynaamisia, riippuen palveluekosysteemin ominaisuuksista! Asiakas- ja liiketoimintalähtöisyys palvelutuotannossa Palvelu täyttää jonkin liiketoiminnallisen tarpeen Tuottaa arvoa asiakkaalle Riippuvuus palveluperustaisesta järjestelmästä ja perinnejärjestelmistä (legacy) Palveluperustaisen järjestelmän ominaisuudet vaikuttavat osaltaan myös tuotantomenetelmiin Olemassa olevien palveluiden ja sovellusten vaikutus palvelutuotantoon