Web-palveluiden alusta Axis2 Aki Heikkinen Itä-suomen yliopisto Suullisen esittämisen seminaari 17. Helmikuuta 2010 Web-palveluiden alusta Axis2
Sisältö Johdanto Web-palvelut Axis2 web-palvelukehys Arviointi Yhteenveto
Johdanto Nykypäivän tietokonejärjestelmät ovat usein hajautettuja Kommunikaatio tietokoneiden välillä hajautetussa järjestelmässä voi olla vaikeaa toteuttaa Web-palvelut ovat nykypäivän ratkaisu toteuttaa monipuolisia ja joustavia kommunikaatioita hajautetuissa järjestelmissä Axis2 on web-palvelukehys, jonka vahvuudet ovat käyttäjäystävällisyys, joustavuus ja helppo laajennettavuus
Web-palvelut Perustuu palvelukeskeiseen arkkitehtuuriin Toiminnallisuus ja palvelut ovat itsenäisiä sovelluksia, jotka on yhdistetty toisiinsa rajapintojen avulla Kommunikointi toteutetaan käyttäen standardeja web-protokollia Informaatio esitetään XML-pohjaisena Esimerkki: Verkkosivujen tarjoaja haluaa mahdollistaa päivän horoskooppi-palvelun verkkosivuillaan
Web-palvelut Web-palvelumalli Palvelut kuvataan WSDL-tiedostoina Viestit lähetetään SOAP-muodossa Palvelun välittäjä Palvelun tarjoaja Palvelun tilaaja Löydä Kutsu, sido Julkaise, poista julkaisu, päivitä WSDL SOAP Löydä horoskooppi-palvelu
Web-palvelut Web-palvelujen standardit SOAP (Simple Object Access Protocol): Laajennettava XML-pohjainen viestikehys Sisältää viestirakenteita otsikkotietojen ja runkotietojen muodossa Viestikehys Otsikkorakenteet Otsikkotieto 1 Otsikkotieto 2 … SOAP-viestirakenteet voivat muuttua protokollan eri kerroksissa Runkorakenteet Data 1 Esimerkki: Horoskooppi-palvelun osoitetiedot löytyvät SOAP-viestin otsikkorakenteista ja horoskoopin sisältö löytyy runkorakenteista Data 2 …
Web-palvelut Web-palvelujen standardit WSDL (Web Services Description Language): XML-pohjainen kieli, joka kuvaa web-palvelun informaation Muita standardeja ovat muun muassa: WS-Security Specifications WS-Reliable Messaging WS-Addressing WS-Policy Family of Specs jne… WS-standardit kehittyvät nopeasti
Axis2 web-palvelukehys Axis2 on Apache Software Foundationin julkaisema avoimen lähdekoodin web-palvelukehys (Java ja C-kielisenä) Modulaarinen arkkitehtuuri: koostuu ydinmoduuleista, jotka ovat välttämättömiä toiminnallisuudelle Ydinmoduulien lisäksi on lisämoduuleja, joita voi ottaa käyttöön laajennettaessa toiminnallisuutta Joustava, käyttäjäystävällinen sekä helposti laajennettava
Axis2 web-palvelukehys Moduulit Kukin moduuli tarjoaa yhden toiminnallisuuskokonaisuuden Ydinmoduuleja ovat: XML-käsittelymalli SOAP-käsittelymalli Informaatiomalli Kehitys- ja käyttöönottomalli Asiakas-ohjelmointirajapinta Kuljetusmoduuli Lisämoduuleja ovat mm: Eri protokolla standardit Koodingenerointi ja niin edelleen…
Axis2 web-palvelukehys Axis-oliomalli Axis-oliomalli (AXIOM) on XML-käsittelymallimoduulin toteutus, jonka tarkoituksena on XML-dokumenttien käsittely ja esittäminen AXIOM on toteutettu käyttäen pyyntöjäsennysparadigmaa (Pull Parsing) Pyyntöjäsennysparadigmassa jäsentäjän hallinta on toisella aliohjelmalla
Axis2 web-palvelukehys Putket ja toteutusketjut Putket ja toteutusketjut on SOAP-käsittelymallimoduulin toteutus Mahdollistaa viestien prosessoinnin, lähettämisen ja vastaanottamisen Axis2:ssa on neljä eri putkea (Flow) : Vastaanotettavat viestit (InFlow) Lähtevät viestit (OutFlow) Vastaanotettavat virheviestit Lähetettävät virheviestit Viestit InFlow Virheviestit Axis2 järjestelmä Viestit OutFlow Virheviestit
Axis2 web-palvelukehys Putket ja toteutusketjut Esimerkki: Horoskooppi-palvelu tarvitsee autentikaation, jotta vain maksavat asiakkaat voivat hyötyä palvelusta. Asiakkaan lähtevien viestien toteutusketjuun lisätään WS-Security toteutus Kussakin putkessa on oma toteutusketju Toteutusketjut koostuvat vaiheista (phase) ja tilattomista käsittelijöistä (handler) Toteutusketjussa SOAP-viestit käsitellään ja rakennetaan Vaiheilla voi tarkastella esi- ja jälkiehtoja Phase N Handler: WS-Security Lähtevien viestien putki Phase 1 Handler 1 Handler 2 Handler 3 Phase 2 Handler 4 Handler 5 Phase 3 …
Axis2 web-palvelukehys Informaatiomalli Axis2 web-palvelun logiikka (staattinen data) ja ajonaikainen konteksti (dynaaminen data) on jaettu kahteen erilliseen oliohierarkiaan Staattinen data on tallennettuja asetuksia, jotka pysyvät suorituksen aikana muuttumattomina Dynaaminen data muuttuu aina kun järjestelmä saa viestin käsiteltäväksi
Axis2 web-palvelukehys Informaatiomalli Molemmat oliohierarkiat jakautuvat viiteen tasoon: Konfiguraatiotaso (ylin) Palvelujoukkotaso Palvelutaso Operaatiotaso Viestitaso (alin) Alitasot perivät ylemmän tason datan Dynaamisen datan elinikä kullakin oliohierarkian tasolla vaihtelee sen käyttötarpeen mukaan
Axis2 web-palvelukehys Käyttöönottomalli Axis2 mahdollistaa J2EE-tapaisen käyttöönottomallin Palvelut ja moduulit voidaan pakata yksittäisiin arkistotiedostoihin, jotka sisältävät kaikki palvelun tai moduulin tarvitsemat tiedostot Uusi palvelu voidaan ottaa käyttöön ilman tarvetta uudelleenkäynnistää palvelinta (Hot Deployment) Esimerkki: Horoskooppi-palvelun päivittyessä palvelussa ei ole käyttökatkoa
Arviointi SOAP-viestirakenne ja web-palvelumalli ovat joustava ratkaisu muuttuvassa maailmassa Axis2 web-palvelukehys mahdollistaa muutosten toteuttamisen käyttäjä- ja kehittäjäystävällisesti Joustavuutta ja päivitysten saumattomuutta arvostetaan liikeyritystasolla Axis2 on myös helposti lähestyttävä, koska se on avoimen lähdekoodin web-palvelutoteutus
Arviointi Axis2:den täysi hyödyntäminen vaatii kuitenkin paljon tietotaitoa ja osaamista sitä kehitettäessä Suljetun lähdekoodin web-palvelukehyksillä on yleensä myös parempi tuotetuki
Yhteenveto Web-palvelut ovat uuden sukupolven joustava vaihtoehto kommunikaation toteuttamiseen hajautetuissa järjestelmissä Web-palveluratkaisut soveltuvat erityisesti tilanteisiin, joissa kohdejärjestelmät eivät välttämättä ole yhteensopivia keskenään Web-palveluiden standardit kehittyvät nopeasti Axis2:ssa on modulaarinen arkkitehtuuri, joka on helposti laajennettava uusilla moduuleilla