OHJ-5201 Web-palveluiden toteutustekniikat Kurssisisällöstä Tarja Systä 1
Yleistä Esitietovaatimukset OHJ-1400 Olio-ohjelmoinnin peruskurssi (pakollinen) OHJ-5010 Hajautettujen järjestelmien perusteet (suositus) OHJ-5100 Seittiohjelmointi (suositus) MATHM-47150 Rakenteiset dokumentit (mat, suositus) Muuta harjoitustöiden suorittaminen edellyttää Javaohjelmointikielen tuntemusta Kurssimateriaali koostuu kalvoista (engl.) sekä niihin liitetystä selittävästä lisämateriaalista (suom.) Vierailuluennoista Myös muuta dokumentaatiota (joka ei kuulu tentittävään materiaaliin) on tarjolla kurssin verkkosivuilla 2 Kurssilla käydään läpi kertausluonteisesti perusteet XML-kielestä ja kielioppimääritysten antamisesta XML Schema kielen avulla. Kertaus ei kuitenkaan ole riittävä XML-kielen perusteelliseksi oppimiseksi. Suositeltava tapa tutustua XML-standardiperheeseen on suorittaa matematiikan laitoksen järjestämä kurssi Rakenteiset dokumentit.
Kurssijärjestelyistä Tentti Harjoitustyöt Pakollisia, minimipistemäärä saavutettava Kaksi harjoitustyötä 1. Palveluiden ja eri tyyppisten asiakkaiden toteuttaminen 2. Palveluorkestraatioiden mallinnus ja toteutus Viikkoharjoitukset ja harjoitustyöassistenttien päivystysajat Työkaluympäristöjen asennus ja niiden käyttöön tutustuminen Harjoitustöihin liittyvät kysymykset Kysymykset on hyvä lähettää etukäteen sähköpostitse Anna.Ruokonen@tut.fi Mikko.Hartikainen@tut.fi 3 Kurssi on hyvin harjoitustyöpainotteinen. Kurssin harjoitustyöt ovat pakollisia. Ensimmäisen harjoitustyön pääpaino on Web-palvelutekniikoissa: palveluiden ja asiakassovellusten toteuttaminen (We-palveluiden ja ReST-palveluiden asiakkaat). Toisessa harjoitustyössä keskitytään palveluiden yhdistämiseen.
Sisältö 1) XML-pohjaisen tiedon prosessointi jäsentäminen, prosessointi Tutustuminen yleisimpiin jäsentäjäratkaisuihin, perusperiaatteet ja käyttötarkoitukset seuraavista: SAX DOM StAX XML-pohjainen tieto ja ohjelman tietorakenteet 2) XPath Käydään läpi lyhyesti, oleellisin osin 4 Kurssilla käydään läpi DOM- ja SAX-jäsentäjien käyttöä ja ominaisuuksia. Niiden käytöstä annetaan myös käytännön esimerkkejä. Nämä tiedot on hyödynnettävissä ensimmäisessä harjoitustyössä. Lisäksi tutustutaan StAXiin, joka pyrkii yhdistämään DOMin helppouden ja SAXin tehokkuuden. Joissain tapauksessa XML-pohjaisen tiedon hyödyntäminen ohjelmassa ei kuitenkaan ole aivan suoraviivaista. Näin on erityisesti silloin, kun XML-merkkauksen mukainen rakenne ja ohjelman tietorakenteet eivät vastaa toisiaan. Kurssilla käydään läpi myös XPath-kieleen, joka itsessään ei ole XML-pohjainen mutta sillä on runsaasti sovelluksia ja sitä käytetään osoittamaan XML-dokumentin eri rakenteisiin monissa muissa XML-pohjaisissa kielissä.
Sisältö 3) Web-palvelut ja palveluorientoituneet arkkitehtuurit Web-palveluiden idea ja visio SOA (Service-Oriented Architecture) Web-palveluiden arkkitehtuurista ja suunnittelusta palvelu- ja asiakasnäkökulmat suunnittelu- ja toteutusprosesseista legacy-järjestelmien paketointi legacy-järjestelmät miksi paketointi on välttämätöntä tai se kannattaa? edellytykset ja odotukset paketoinnille huomioitavia asioita paketoinnin toteuttamisessa 5 Web-palvelukonsepti ja siihen liittyvät teknologiat muodostavat kurssin ydinaihealueen. Webpalvelukonseptin käyttöönotto on lisääntynyt viime vuosia huomattavasti. Koska konseptiin liittyvät suunnittelua tukevat menetelmät ja siihen liitettävät teknologiat ovat vielä nuoria, liittyy Webpalveluiden todelliseen käyttöön myös useita ongelmia. Palveluiden ohjelmistoarkkitehtuuria ja suunnittelua tukevat menetelmät ja ohjeet ovat esimerkiksi vielä varsin kehittymättömiä tai ne ovat usein tiettyyn toteutustapaan sidottuja. Kurssilla esitellään muutamia yleisiä ydinasioita, jotka palveluiden suunnittelussa tulee ottaa huomioon. Kurssilla esitellään toisen ja kolmannen harjoitustyön toteuttamisessa käytettäviä työkaluja ja annetaan esimerkkejä niiden käytöstä. Työkalut esitellään viikkoharjoituksissa, joissa käydään läpi myös niiden asentaminen. Web-palvelu itsessään saattaa hyvin usein olla olemassa oleva ohjelmisto, joka halutaan ottaa käyttöön tai joka halutaan integroida laajempaan kokonaisuuteen. Tällöin ko. ohjelmalle tulee tehdä Webpalvelurajapinta paketoimalla se sopivasti. Legacy-järjestelmän uudelleenkäyttö saattaa olla vaihtoehto uuden järjestelmän toteuttamiselle, jonka tulee korvata ko. vanha järjestelmä. Tällöin tulee kuitenkin arvioida esimerkiksi paketoimisen antamat hyödyt ja haitat, uuden järjestelmän rakentamiseen liittyvä työ, legacy-järjestelmän luotettavuus, odotukset legacy-järjestelmän käyttöarvosta tulevaisuudessa jne.
Sisältö 4) Web-palvelut ja palveluorientoituneet arkkitehtuurit (jatkuu) SOAP käyttötarkoitus ja ominaisuuksia soveltuvuus ja haitat WSDL käyttötarkoitus ja ominaisuuksia tietosisältö rekisterit yleiset vaatimukset ja ominaisuudet tiedon kategorisointi 6 Web-palvelukonseptin toteuttamiseksi on käytössä kieliä, jotka ovat saavuttaneet käytännön standardin aseman. Esimerkiksi sovellusten välinen kommunikointi tapahtuu yleisimmin SOAP-kielen avulla. WSDL on taas yleisimmin käytetty kieli palveluiden etsimiseksi ja kuvaamiseksi. Kurssilla esitellään nämä kielet ja niiden syntaksit. Web-palvelukonseptin kannalta oleellisia ovat myös rekisterit. Kurssilla käydään läpi yleisiä palvelurekistereiden ominaisuuksia ja vaatimuksia.
Sisältö 5) Web-palvelut ja palveluorientoituneet arkkitehtuurit (jatkuu) SOAP+WSDL+UDDI yhteensovitus konseptin tämän hetken ongelmat Palveluiden orkestrointi BPEL ja BPMN WS-I yhteisö yhteisön merkitys, idea ja tavoitteet ReST ja WADL: miten ne poikkeavat SOAP+WSDL -lähestymistavasta? 7 Web-palvelusysteemien toteuttamisessa ei itse palveluiden ja asiakassovellusten toteuttaminen aina riitä. Usein on oleellista tukea monimutkaisempia transaktioita eli karkeasti ottaen eri palveluiden ja palvelukutsujen ketjutusta. Pääpaino Web-palvelututkimuksessa ja ko. teknikoiden kehittämisessä onkin siirtymässä tuohon suuntaan, josta käytetään myös termiä programming-in-large. Tämä termi viittaa siihen, että itse palvelut oletetaan ja niiden ajatellaan olevan tietyssä mielessä peruspalikoita, joita hyödyntäen ja joita koostamalla itse järjestelmiä kasataan. Palveluiden koostamiseen ei kurssin harjoitustöissä kuitenkaan tutustuta. Osittain käytettävien teknologioiden jatkuvan kehityksen ja niiden sallivien vaihtoehtoisten käyttötapojen vuoksi on Web-palveluiden käytössä käytännössä usein törmätty esimerkiksi yhteensopivuusongelmiin. WS-I (Web Service Interoprability) on yhteisö, joka mm. pyrkii määrittelemään oheistusta, suosituksia ja tarkennuksia esimerkiksi SOAP ja WSDL kielten käyttöön. WS-I yhteisö on saavuttanut nopeasti laajasti tukea. Esimerkiksi useimmat Web-palvelutyökalujen tuottajat ovat mukana WS-I yhteisössä ja/tai ottavat työkaluissaan WS-I:n suositukset huomioon. Kurssilla tutustutaan myös ReST-palveluihin sekä ReST- ja toisaalta SOAP+WSDL lähestymistapojen eroihin.
Sisältö 6) turvallisuus XML-pohjaisessa viestinvälityksessä viestinvälityksen turvallisuusominaisuudet luottamuksellisuus, koskemattomuus, autentikointi, kiistämättömyys käyttöoikeudet turvallisuusomaisuudet eri tasoilla 1. taso (kuljetusprotokollat ja mekanismit), esim. SSL 2. taso (Web-palvelujen kielet jne.), esim. WS-Security, sis. esim. kielet XML Encryption ja XML Signature XML Encryption ja XML Signature kielten perusperiaate kaikkia teknisiä detaljeja ei spesifikaatioista käydä läpi 8 Liiketoiminnan kannalta kriittisissä kommunikointiskenaarioissa XML:n kaltaisen merkkipohjaisen kielen käyttö sellaisenaan sisältää turvallisuusriskejä. Digitaalisia allekirjoituksia ja kryptausmenetelmiä voidaankin käyttää turvallisen viestinvälityksen toteuttamiseksi. Webpalvelukonseptissa turvallisuus voidaan huomioida eri tasoilla: Internet-pohjainen HTTP-yhteys voidaan esimerkiksi turvata SSL:n avulla ja toisaalta SOAP-viesteihin voidaan liittää digitaalisia allekirjoituksia ja kryptattuja osioita. Kurssilla käydään läpi perusvaatimuksia ja ominaisuuksia, jotka tulee huomioida turvallisessa viestinvälityksessä. Lisäksi tutustutaan lyhyesti WS Security suositukseen, joka puolestaan käyttää esim. XML Encryption ja XML Signature -kieliä.
Informaatiota kurssista http://www.cs.tut.fi/kurssit/ohj-5201/ Luennot ja luentomateriaali harjoitustyöt suositeltavaa oheismateriaalia kirjoja ja verkkosivustoja webser@tut.fi uutisryhmä: tut.ot.webser 9
Harjoitustyöt Harjoitustöiden määrittely Anna Ruokonen ja Mikko Hartikainen Harjoitustyöassistentit Anna Ruokonen (1. harjoitustyö), TE116 kysymykset mieluiten etukäteen sähköpostitse: Anna.Ruokonen@tut.fi Mikko Hartikainen (2. harjoitustyö), TE117) kysymykset mieluiten etukäteen sähköpostitse: Mikko.Hartikainen@tut.fi 10
Informaatiota kurssin aihepiiristä http://www.cs.tut.fi/kurssit/ohj-5201/ kurssikirjallisuus W3C Suomen toimisto: www.w3c.tut.fi Toiminta Esitelmäarkisto, Raporttiarkisto, W3C-suositukset, Koulutus W3C: www.w3.org standardit, Web-palvelut, muut XML-pohjaiset kielet OASIS: www.oasis-open.org SOA, Web-palvelut, turvallinen viestinvälitys, XML:n prosessointi OMG: www.omg.org SOA, palveluiden koordinointi, mallinnus Web-palvelukonseptia tukevat työkalut ja menetelmät IBM, Sun, Microsoft, Oracle jne. 11