Palvelusuuntautunut ohjelmistotuotanto Luento 2: Palvelut ja palvelukoosteet Toni Ruokolainen,

Samankaltaiset tiedostot
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,

HOJ J2EE & EJB & SOAP &...

HSMT J2EE & EJB & SOAP &...

Palvelujen dynaaminen valvonta

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

The OWL-S are not what they seem

Ajankohtaisia SOA tutkimusteemoja

Palvelukuvaukset ja niiden käyttö palvelujen toteutuksessa. Seminaarityö Tom Bertell

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

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

Collaborative and interoperable computing

arvostelija OSDA ja UDDI palveluhakemistoina.

Palvelusuuntautunut ohjelmistotuotanto Luento 5: Palvelusuuntautuneen ohjelmistotuotannon prosessit Toni Ruokolainen,

Sisällys. Valtion tietotekniikan rajapintasuosituksia. XML:n rooleja sähköisen asioinnin tavoitearkkitehtuurissa. dbroker - asiointialusta

Järjestelmäarkkitehtuuri (TK081702)

Muutamia peruskäsitteitä

Ohjelmistojen mallintaminen, mallintaminen ja UML

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

Ohjelmistotekniikan menetelmät, UML

Tiedonsiirto- ja rajapintastandardit

Arkkitehtuurinen reflektio

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

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

Web-palvelu voidaan ajatella jaettavaksi kahteen erilliseen kokonaisuuteen: itse palvelun toiminnallisuuden toteuttava osa ja osa, joka mahdollistaa k

UML-kielen formalisointi Object-Z:lla

Wopti ja Tuutti - hajautetun sisällönhallinnan kehittäminen

Collaborative and interoperable computing

Luento 12: XML ja metatieto

PerustA - Perustietovarantojen viitearkkitehtuuri. Liite 3: Tietojärjestelmäarkkitehtuurin. integraatioarkkitehtuuri

Dynaaminen analyysi II

Epätäsmällisen tiedon esittäminen semanttisen webin ontologioissa

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.


Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Semanttinen Web. Ossi Nykänen. Tampereen teknillinen yliopisto (TTY), Digitaalisen median instituutti (DMI), W3C Suomen toimisto

SOA:lle on useita, jonkin verran toisistaan poikkeavia määritelmiä. Alla niistä muutamia.

ALUEARKKITEHTUURI WEB PALVELUITA KÄYTTÄEN. Niilo Saranummi VTT Tietotekniikka

Ohjelmistojen mallintaminen kertausta Harri Laine 1

812341A Olio-ohjelmointi, IX Olioiden välisistä yhteyksistä

REST an idealistic model or a realistic solution?

Ohjelmistojen suunnittelu

W3C ja Web-teknologiat

Prolog kielenä Periaatteet Yhteenveto. Prolog. Toni ja Laura Fadjukoff. 9. joulukuuta 2010

W3C ja Web-teknologiat

12. Monimuotoisuus 12.1

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

UML:n yleiskatsaus. UML:n osat:

Harri Kaukovuo Senior Sales Consultant Technology Sales Oracle Finland Oy

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

X-Road ja WFS-rajapinnat, uudet APIt. Pekka Latvala , KaPA ja paikkatietoinfrastruktuurin kärkiteeman työpaja

3 Verkkosaavutettavuuden tekniset perusteet

SOA SIG SOA Tuotetoimittajan näkökulma

Omat Lähdöt ohjelmointirajapinta: Versio 1.01

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

Viestinvälitysarkkitehtuurit

Luento 8: XML-tuki ohjelmointikielissä & Web-palvelut

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

Viestinvälitysarkkitehtuurit Lähtökohta:

Rajapinta (interface)

W3C: teknologia ja (tieto)yhteiskunta

W3C-teknologiat ja yhteensopivuus

Ontologiat merkitysten mallintamisessa: OWL. Eeva Ahonen

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja

Opetushallitus. ServiceMix POC

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

Ohjelmistokehykset ohjelmistorunkoja uudelleenkäyttö olioperustaisista ohjelmistorunko

Web-palveluiden alusta Axis2

Integrointi. Ohjelmistotekniikka kevät 2003

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

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

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

XML johdanto, uusimmat standardit ja kehitys

Harjoitustehtävät ja ratkaisut viikolle 48

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

Integraatioratkaisu joukkoviestintäverkkojen esittämiseen paikkatietojärjestelmässä

3. Komponentit ja rajapinnat

Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin?

Päihittääkö J2EE.NETin SOAn pohjana?

2 Ohjelmistoarkkitehtuurien kuvaus

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

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

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti

Paikkatiedot ja Web-standardit

in condition monitoring

7.4 Variability management

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

Tekninen rajapinta - Soveltamisohje Kansallisen tulorekisterin perustamishanke

Web Service torilla tavataan!

Rakenteisen oppimateriaalin tuottaminen verkossa esimerkki Rhaptos. Antti Auer Koordinaattori, HT Jyväskylän yliopisto Virtuaaliyliopistohanke

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

Paikkatiedon mallinnus Dokumentoinnin ymmärtäminen. Lassi Lehto

Oskarin avulla kaupungin karttapalvelut kuntoon

Department of Mathematics, Hypermedia Laboratory Tampere University of Technology. Roolit Verkostoissa: HITS. Idea.

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Internet jolla on merkitystä

Ohjelmistoarkkitehtuurit. Kevät

12. Kehysarkkitehtuurit

Semantic Web Sisältötuotannon ja palveluiden tulevaisuus

Transkriptio:

CINCO Collaborative and interoperable computing Palvelusuuntautunut ohjelmistotuotanto Luento 2: Palvelut ja palvelukoosteet Toni Ruokolainen, 22.1.2010

Luennon runko Palvelut Palvelun määritelmä Palveluiden ominaisuuksia ja suunnittelukriteerejä Palveluiden koostaminen Palvelukoosteiden ominaisuuksia Erilaisia koostamistapoja

Mitä tarkoittaa palvelu?

Mitä tarkoittaa palvelu? Interaktiota asiakkaan ja palveluntuottajan välillä? Ulkoisesti havaittavaa käyttäytymistä? Palveluntarjoajan kyky tuottaa hyötyä asiakkaalle? Joukko käytettävissä olevia operaatioita? Järjestelmän (lisä-)ominaisuus? Yleisesti saatavissa oleva, verkon yli jaettava sovellus?

Palvelun määritelmä Palvelun käsite sisältää kaikki edelliset näkökulmat Palvelulla tarkoitamme tällä kurssilla ohjelmisto(tuotannon)komponenttia Joka täyttää jonkin käyttäjätarpeen Jolla on hyvin määritelty rajapinta Formaali, yksikäsitteinen, looginen Joka on itsensä kuvaava Palvelukuvaus saatavilla On avoimesti saatavilla Julkaistut rajapinnat, yleisesti käytössä olevien standardien hyödyntäminen, neuvoteltavissa olevat käyttöpolitiikat,... Esimerkiksi Web Services -standardien käyttäminen On palveluperustaisen analyysin, suunnittelun ja koostamisen yksikkö (unit of (de)composition)

Palvelu ohjelmistokomponenttina Tällä hetkellä yleisin teknologinen kehys perustuu Web Services (WS-*) standardeihin SOAP (Simple Object Access Protocol) kommunikointiprotokollana WSDL (Web Service Description Language) kuvauskielenä UDDI (Universal Description, Discovery and Integration) palvelurekisterinä Ja paljon muuta.. Mutta myös muita palveluperustaisin teknologioita REST (Representational State Transfer) Erityisesti ns. Web 2.0 sovelluksissa käytettävä lähestymistapa J2EE (Java-perustaiset yritysohjelmistot), CORBA (väliohjelmistoarkkitehtuuri), OSGi (Java-pohjainen plug-in arkkitehtuuri),...

Palvelu täyttää käyttäjätarpeen Käyttäjätarpeen tulkinta riippuu käytettävästä abstraktiotasosta Palveluita esiintyy eri abstraktiotasoilla Liiketoiminnallinen palvelu Täyttää asiakkaan tarpeen Komponenttipalvelu Täyttää liiketoiminnallisen palvelun tarpeet Teknologinen palvelu Toteuttaa komponenttipalvelun toiminnallisuuden <wsdl:porttype name="bankingsystemporttype"> <wsdl:operation name="login"> <wsdl:input message="tns:loginrequest"></wsdl:input> <wsdl:output message="tns:loginresponse"></wsdl:output> </wsdl:operation> <wsdl:operation name="selectaccount"> <wsdl:input message="tns:selectaccountrequest"></wsdl:input> <wsdl:output message="tns:selectaccountresponse"></wsdl:output> </wsdl:operation> <wsdl:operation name="getbalance"> <wsdl:input message="tns:getbalancerequest"></wsdl:input> <wsdl:output message="tns:getbalanceresponse"></wsdl:output> </wsdl:operation> </wsdl:porttype>

Hyvin määritelty palvelurajapinta Mitä palvelurajanpinnasta tulisi ilmetä? Rakenne Operaatioiden ja informaation rakenne Semantiikka Erityisen tärkeää palveluita etsittäessä Palvelun laatu Erityisen tärkeää palveluita valittaessa ja palvelusopimusten osana Hyvin määritelty? Formaali Koneen tulkittavissa Yksikäsitteinen Looginen kokonaisuus

Palvelurajapintojen yleisiä suunnitteluperiaatteita Ortogonaalisuus (orthogonality) Rajapinnan määrittelemät operaatiot eivät ole päällekkäisiä toiminnallisuudeltaan Täydellisyys (completeness) Rajapinta määrittää toimialueen jonkin toiminnallisuuden kokonaisuudessaan Laajennettavuus Esimerkiksi rajapintojen alityypitys Evoluution sieto Rajapintojen versiointi Uudelleenkäytettävyys Alhainen kytkentä Korkea koheesio

Palvelurajapintojen kytkentä (coupling) Tavoitteena alhainen kytkentä eli riippuvuuksien minimointi Esimerkkejä riippuvuuksien luonteesta: Facet Tight Coupling Loose Coupling 4.1 Discovery Registration Referral 4.2 Identification Context-based Global 4.3 Binding Early Late 4.4 Platform Dependent Independent 4.5 Interaction Synchronous Asynchronous 4.6 Interface Orientation Horizontal Vertical 4.7 Model Shared Model Self-Describing Messages 4.8 Granularity Fine Coarse 4.9 State Shared, Stateful Stateless 4.10 Evolution Breaking Compatible 4.11 Generated Code Static None/Dynamic 4.12 Conversation Explicit Reflective Pautasso, C. and Wilde, E. 2009. Why is the web loosely coupled?: a multi-faceted metric for service design. In Proceedings of the 18th international Conference on World Wide Web (Madrid, Spain, April 20-24, 2009). WWW '09. ACM, New York, NY, 911-920. DOI= http://doi.acm.org/10.1145/1526709.1526832

Palvelurajapintojen koheesio (cohesion) Tavoitteena korkea koheesio operaatioiden välillä Koheesioperiaatteita Toiminnallinen koheesio Rajapinnan operaatiot liittyvät tiettyyn tehtävään Esimerkiksi GetBalance -käyttötapauksen operaatiot yhdessä rajapinnassa. Kommunikointikoheesio Rajapinnan operaatiot käsittelevät samoja informaatioelementtejä Esimerkiksi käyttäjätietoja käsittelevät operaatiot yhdessä rajapinnassa. Looginen koheesio Rajapinnan operaatiot ovat toisistaan riippumattomia, mutta suorittavat samankaltaisia tehtäviä Esimerkiksi eri maksumuodot samassa rajapinnassa.

Palvelukuvaus Palvelukuvaus määrittelee palvelun käyttötavan ja sen käyttöön liittyvät rajoitteet Käyttötavan kuvauksesta Syntaksi: miten palvelua kutsutaan? kommunikoitavan informaation struktuuri (esim. XML-kielet) Operaatioiden struktuuri (nimet, syöte ja tuloste) Semantiikka: mitä metodit oikeasti tekevät? Esimerkiksi IOPE: input, output, precondition, effect Käyttäytyminen: miten palvelua käytetään? Rajoitteista Käyttöpolitiikat: hinta, turvallisuus,... Käyttörajoitukset: saatavuus (esim. arkipäivisin klo 8-16), käyttäjäryhmät ja roolit,...

Palvelukuvausesimerkki: WSDL Web Service Definition Language XML-pohjainen palvelurajapintojen kuvauskieli Tärkeimmät elementit: Porttityypit Tyyppi- ja viestimääritelmät Operaatiot Protokollasidonnat Yleensä SOAP <wsdl:porttype name="bankingsystemporttype"> <wsdl:operation name="login"> <wsdl:input message="tns:loginrequest"></wsdl:input> <wsdl:output message="tns:loginresponse"></wsdl:output> </wsdl:operation> <wsdl:operation name="selectaccount"> <wsdl:input message="tns:selectaccountrequest"></wsdl:input> <wsdl:output message="tns:selectaccountresponse"></wsdl:output> </wsdl:operation> <wsdl:operation name="getbalance"> <wsdl:input message="tns:getbalancerequest"></wsdl:input> <wsdl:output message="tns:getbalanceresponse"></wsdl:output> </wsdl:operation> </wsdl:porttype>

Palvelukuvausesimerkki: WS-Policy XML-pohjainen kieli palvelun ei-toiminnallisten ominaisuuksien ja tarpeiden kuvaamiseksi Tärkeimmät elementit: Loogiset operaattorit Exactly ja All Politiikkakielet WS-SecurityPolicy, WS- ReliableMessaging, WS- BusinessActivity,... Käytetään yhdessä WSDL:n kanssa <wsp:policy xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/ securitypolicy" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/ policy" > <wsp:exactlyone> <sp:basic256rsa15 /> <sp:tripledesrsa15 /> </wsp:exactlyone> </wsp:policy>

Tauko..

Palveluiden koostaminen (service composition) Palvelukooste Täyttää jonkin yhteistyötarpeen 2-n palvelun koordinointia ennalta määriteltyjen ehtojen mukaan Koosteen koordinointi voi olla hajautettua, tai keskitettyä Koostamistapoja Määrittely: Imperatiivinen vs. deklaratiivinen Synteesi: Manuaalinen vs. automaattinen Sidonta: Staattinen vs. dynaaminen Kuva: http://www.osoa.org/display/main/relationship+between+sca+and+bpe

Esimerkkejä koostamistekniikoista Prosessikielet WS-CDL, WS-BPEL, Jolie, XPDL, BPML,... Semanttinen koostaminen Semantic Web Services (SWS), OWL-S Käytetään logiikkaa, päättelyä ja suunnittelua Formaalit menetelmät Äärelliset automaatit, prosessialgebrat, Petriverkot,... Perustuu palveluiden käyttäytymisen formaaliin mallintamiseen Malliperustaiset menetelmät BPMN, UML diagrammit UML:stä erityisesti aktiviteetti ja sekvenssidiagrammit UML profilointimekanismi Ja muutama muu..

Orkestraatiot ja koreografiat Koreografia Palvelukooste, jolla hajautettu koordinointi Täyttää jonkin yhteistoiminnallisen tarpeen Määrittelee yhteistyöverkoston roolit ja niiden väliset interaktiot Orkestraatio Globaali lintuperspektiivi Palvelukooste, jolla keskitetty koordinointi Täyttää jonkin yhteistoimintaverkoston roolin vaatimukset

Koreografian kuvaaminen prosessina Koreografiaprosessi kuvaa Joukon rooleja (2..*) Niiden väliset interaktiot Interaktioiden informaatiosisällön Mahdollisesti muitakin ominaisuuksia Kommunikaatiokanavien ominaisuuksia, liiketoimintaan liittyviä yksityiskohtia,... Esimerkkejä mallinnustavoista BPMN UML sekvenssidiagrammit WS-CDL Käyttökohteita koreografioille Palveluiden suunnittelu Yhteistyösopimuksen osana WS-CDL kuvauskielen pääelementit. Orkestrointien tuottaminen Yksinkertainen kahden roolin koreografia mallinnettuna UML sekvenssidiagrammina

Orkestraatioprosessit Yleisin käytetty tapa tehdä palvelukompositioita on orkestraatioprosessit Keskitetty prosessi joka määrittelee palvelukutsujen keskinäisen järjestyksen, tietovuon orkestraation sisällä ja kontrollirakenteet Orkestraation kuvaamiseen voidaan käyttää esimerkiksi UML:n aktiviteettikaatioita Toteutetaan esim. WS-BPEL kielellä

Palvelukoosteiden imperatiivinen ja deklaratiivinen määrittely Imperatiivinen koostaminen Esimerkiksi prosessikielet Määrittelee tiukan järjestyksen operaatioiden välille Deklaratiivinen koostaminen Määritellään löyhät riippuvuudet tapahtumien välille Joustavampi kuin imperatiivinen koostaminen Sääntökielet (rule languages) Tapahtumapohjaiset arkkitehtuurit (event driven architectures) Säännöt tapahtumien koordinoimiseksi (ECA, event, condition, action) Tapahtumien välitys (event bus, publishsubscribe, tuple-space) Jung, J., Park, J., Han, S., and Lee, K. 2007. An ECA-based framework for decentralized coordination of ubiquitous web services. Inf. Softw. Technol. 49, 11-12 (Nov. 2007), 1141-1161. DOI=http://dx.doi.org/10.1016/j.infsof.2006.11.008

Palvelukoosteiden manuaalinen ja automaattinen syntetisointi Ennen palvelukoosteen varsinaista toimintaa voidaan tarvita koosteen syntetisointi Synteesissä muodostetaan suoritettava versio koosteesta Manuaalinen syntetisointi Synteesi tehdään tyypillisesti suunnittelu- tai toteutusvaiheessa Esimerkiksi WS-BPEL prosessin määrittely. Automaattinen syntetisointi Tyypillisesti muodostetaan deklaratiivista koostemäärittelyä vastaava konkreettinen prosessi Automaattista syntetisointia käytetään erityisesti yhdessä deklaratiivisen määrittelyn ja dynaamisen sidonnan kanssa. Edut Löyhempi sidonta: päätepisteitä ei tarvitse sitoa kuin vasta viime hetkellä. Joustavuus: voidaan valita soveltuvat palvelut tarpeen mukaan.

Koosteiden staattinen ja dynaaminen sidonta Staattinen koostaminen Koostaminen suoritetaan suunnitteluaikana Ei tue: Palveluekosysteemin evoluutiota (uudet palvelut, palveluiden evoluutio) Joustavaa palveluiden valintaa Dynaaminen koostaminen Etuja Joustavampi Käyttäjän erityistarpeet voidaan huomioida ajonaikaisesti Täysin uusia palveluita voidaan koostaa tarpeiden mukaisesti Mahdollistaa palveluiden ajonaikaisen laajentamisen ja evoluution Haittoja Monimutkaisempia toteuttaa Tarvitaan uusia infrastruktuuripalveluita (erityisesti dyn. sidonta) Mahdolliset suorituskykyongelmat

Dynaamisen koostamisen menetelmiä Ajonaikainen uudelleenkonfigurointi Esimerkiksi kääreiden (wrapper) hyödyntäminen Esimerkiksi kommunikointisalauksen tuominen jo toteutettuun palveluun. Myös muita menetelmiä (superimpositio, delegointi) Koostamiskielten käyttäminen Hyödynnetään skriptaus- ja koordinointikieliä sekä eksplisiittisiä kuvauksia palvelun komponenteista. Työvuokuvauksiin perustuvat menetelmät Määritellään abstrakti työvuo, joka instantioidaan ajonaikaisesti. Ontologioihin perustuvat menetelmät Hyödynnetään palvelua kuvaavien käsitteiden ja niiden välisiä suhteita kuvaavia ontologioita sekä koosteen loogista kuvausta. Deklaratiivisiin kuvauksiin perustuvat menetelmät Käytetään koostamissääntöjä ja -rajoitteita palveluiden välillä.

Lähteet Dick A. Quartel, Maarten W. Steen, Stanislav Pokraev, and Marten J. Sinderen. Cosmo: A conceptual framework for service modelling and refinement. Information Systems Frontiers, 9(2-3):225-244, 2007. Michael P. Papazoglou and Willem-Jan Van Den Heuvel. Serviceoriented design and development methodology. Int. J. Web Eng. Technol., 2(4):412-442, 2006. Dustdar, S. and Schreiner, W. 2005. A survey on web services composition. Int. J. Web Grid Serv. 1, 1 (Aug. 2005), 1-30. DOI= http://dx.doi.org/10.1504/ijwgs.2005.007545