Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Johdatus web-palveluihin

Samankaltaiset esitykset


Esitys aiheesta: "Johdatus web-palveluihin"— Esityksen transkriptio:

1 Johdatus web-palveluihin
Marko Sormunen SerAPI-projekti, HIS-yksikkö Tietotekniikkakeskus Kuopion yliopisto

2 Osa 1... web-palvelut paperilla

3 Web-palvelut... mitä ne ovat?
” A Web service is a software application identified by a URI [RFC 2396], whose interfaces and bindings are capable of being defined, described, and discovered as XML artifacts. A Web service supports direct interactions with other software agents using XML based messages exchanged via Internet-based protocols. A collection of EndPoints.” ” Web services are loosely coupled software components delivered over Internet standard technologies” ”A self-contained, modular application that can be described, published, located, and invoked over the Web. Platform-neutral and based on open standards, Web Services can be combined with each other in different ways to create business processes that enable you to interact with customers, employees, and suppliers. ”

4 Web-palvelut... mitä niillä tehdään?
Nykyisten käytössä olevien sovellusten standardi liittäminen muihin sovelluksiin Uusien sovellusten rakentaminen palvelu-arkkitehtuurin suuntaisesti Sovellusten välinen liikennöinti yli Kansainvälinen toiminta yhteistoiminnallisuuden edistämiseksi yhteiset standardit tärkeimmät organisaatiot: WS-I, W3C ja OASIS Yhdistävä tekijä Java- ja Microsoft-maailman välillä myös Open Source / Unix / Linux –tekijät mukana (Perl, Python, PHP)

5 Web-palvelut... perusstandardit
HTTP (Hypertext Transfer Protocol) viestien siirtoprotokolla TCP/IP:n päällä v1.1 vuonna 1999 XML liittymien ja viestien kuvauskieli v1.0 vuonna 1996 SOAP (Simple Object Access Protocol) viestintä web-palveluiden välillä v1.2 vuonna 2003 WSDL (Web Services Description Language) web-palveluiden liittymien kuvaus

6 Web-palvelut... ongelmakohdat
Standardit pyrkivät edelleen mahdollisimman vapaaseen liittymien kuvaamiseen XML:n avulla useita yhtä hyviä keinoja kuvata samaa toiminnallisuutta turhan monimutkaiset standardit vaikeasti toteutettavia, ongelmia yhteentoimivuudessa vaikea tukea sovelluskehittimissä monimuotoisuuden takia käytännössä vaikeita opiskella Hyödyntämiskohteiden epäselvyydet Liiketoimintaprosessien mallintaminen web-palveluihin vaikeaa HTTP-liikenteestä johtuvat rajoitteet kutsumekanismeissa

7 Web-palvelut... kehitys? Web Services Interoperability (WS-I) pyrkii ottamaan ”takapakkia” standardeissa tärkein tavoite ei ole toiminnallisuuden monimuotoisuus vaan yhteentoimivuuden parantaminen vain kaksi tapaa julkaista rajapinta-tyylisiä web-palveluita best practises –tyyppisiä määrityksiä WS-I Basic Profile -määritys miten luoda ja julkistaa yhteentoimivia web-palveluita käyttäen SOAP:pia, WSDL:ää ja

8 Web-palvelut... lisää kehitystä?
WS-I Attachments Profile –määritys miten soveltaa SOAP Attachments –määritystä liitetiedostojen lähettämiseen WS-I Security Basic Profile -määritys miten soveltaa SOAP-viestien allekirjoitus ja salaus WS-Security ja WS-Encryption -standardeja Tulevaisuudessa toivottavasti ”WS-I Business Process Profile”

9 Web-palvelut... standardeja
W3C:n tai OASIS:n määrittelemiä WS-I pyrkii tarkentamaan valmiiden standardien toteutustapoja BPEL Business Process Execution Language yhden liiketoimintaprosessin kuvaus alusta loppuun pohjana Microsoftin ja IBM:n määritykset WS-Security ja WS-Encryption SOAP-sanomien allekirjoitus SOAP-sanomien tai niiden osien salaaminen useita mahdollisuuksia esim. allekirjoituksen esittämiseen WS-I Security Basic Profile –määritys tarkentaa näiden käyttöä

10 Web-palvelut... muita määrityksiä
UDDI (Universal Description, Discovery and Integration) Hakemistopalvelu web-palveluille, mahdollisuutena dynaaminen web-palveluiden käyttö ei juurikaan käytetty WS-Addressing Web-palveluiden päätepisteiden kuvaus WS-Reliability SOAP-viestien luotettava toimittaminen muut WS-määritykset Lista jatkuu aika pitkälti vaikea ennustaa, mitkä näistä jäävät oikeasti elämään osittain päällekkäisiä määrityksiä parhaiten tuntuvat ”menestyvän” määritykset joissa mukana useampia isoista pelaajista (IBM, Microsoft) määritysten omistussuhteet joskus epäselvät

11 Web-palvelut... kaavakuva
XML WS-määritykset WSDL Rajapinnan kuvaus Web-palvelu Viestintä SOAP HTTP HTTPS MIME

12 Web-palvelut... miksi ne kelpaavat
Pääperiaate: ”Ihan sama millä web-palvelun toteutus on tehty” WSDL/SOAP –toiminnallisuus on hyvä myyntikeino IDE-kehittäjille SOAP-liikennöinti on tavallaan ”puolueeton vyöhyke” Microsoftin ja Java/Open Source –maailmojen välillä XML tarjoaa mahdollisuuden lisätä yksinkertaisten palveluviestien päälle monimutkaisia rakenteita ilman että viestin tietosisältö muuttuu HTTP-pohjainen liikennemalli on jo de facto –standardi Internetissä

13 Osa 2... web-palveluiden kuvaus WSDL:llä

14 WSDL... mikä se on WSDL-dokumentti on itsenäinen XML-dokumentti joka kuvaa web-palvelun rajapinnat, SOAP-viestien tietosisältöä ja palvelun sijainnin voi sisältää esimerkiksi myös dokumentaatiota rajapinnasta ei sisällä rajapintoihin liittymätöntä tietoa, kuten SOAP-viestien Standardi tapa julkistaa web-palvelu WSDL voidaan generoida automaattisesti olemassa olevasta toteutuksesta WSDL:n formaatti ei ole tehty ihmisille vaan automaattisille työkaluille  vaikeasti ymmärrettävä mutta erittäin monipuolinen

15 WSDL... mitä sillä voi tehdä
WSDL-kieli itsessään vain kuvaa abstraktia tiedonsiirtorajapintaa  WSDL-dokumentin kuvaamat rajapinnat eivät välttämättä ole Remote Procedure Call (RPC)-tyyppisiä  WSDL voi esimerkiksi vain kuvata tietyn muotoisen XML-dokumentin joka siirretään kahden päätepisteen välillä  tarvitaan tietyn muotoinen WSDL-dokumentti, joka voidaan tulkita esitävän RPC-tyyppistä rajapintaa Yleensä WSDL kuvaa kuitenkin RPC-tyyppistä rajapintaa, joka voidaan myös esittää perinteisillä ohjelmointikielillä WSDL-dokumentin avulla voidaan tarvittaessa validoida SOAP-sanomat

16 WSDL... käyttötavat Kolme peruskäyttötapaa:
1. luodaan runko web-palvelun toteutukselle WSDL-dokumentista 2. otetaan ulkoinen web-palvelu käyttöön WSDL:n avulla luomalla tynkä jota asiakassovellus voi käyttää palvelun kutsumiseen 3. web-palvelua kuvaava WSDL-dokumentti generoidaan jostakin valmiista sovelluksesta tai sen komponentista Kaikki voidaan tehdä automaattisesti työkaluilla, joita löytyy sovelluskehittimistä uusimmissa työkaluissa WS-I Basic Profile –yhteensopivuus HUOM! WSDL:n, tyngän tai rungon käyttö ei ole pakollista, SOAP-sanomat voi tehdä myös ”käsin” ja lähettää ne itse avulla

17 WSDL... käyttötavat Kaksi WSDL-tyyliä määritelty kutsurajapinta-tyylisille web-palveluille - document ja RPC kummatkin tuottavat perus-web-palvelu -käytössä täsmälleen samanlaisia SOAP-sanomia Microsoft käyttää oletuksena document-tyyliä, mutta tukee myös RPC-tyyliä Java-puolella yleensä RPC-tyyli käytössä oletuksena Kummatkin tyylit ovat yleensä hyvin tuettuja SOAP-välineissä RPC-tyylin tarjoamia mahdollisuuksia SOAP-viestintään voidaan ajatella document-tyylin mahdollisuuksien ”osajoukkona” RPC-tyyliset WSDL-dokumentit ovat hieman yksinkertaisempia

18 1. Web-palvelun rungon luominen
WSDL työkalu runko Palvelutoteutus

19 2. Web-palvelun käyttöönotto
Asiakas sovellus WSDL työkalu tynkä Palvelutoteutus

20 3. WSDL-dokumentin generointi
Palvelutoteutus työkalu WSDL

21 WSDL:n osat (elementit) karkeasti
schema (0-n kappaletta) jokaisen SOAP-viestien osien tietosisällön kuvaus XML-scheman avulla message (2-n kappaletta) jokaisen SOAP-viestin osien luettelo portType (yleensä 1 kappale) jokaisen SOAP-palvelukutsun viestit (parametri-viesti, paluu-viesti, virheilmoitus-viestit) binding (yleensä 1 kappale) SOAP-palvelukutsujen ja esim. liitetiedostojen sitominen HTTP tms. siirtoprotokollaan service (1 kappale) web-palvelun yhteydet ulkomaailmaan, esim. sen HTTP-osoite. Yleensä vain yksi yhteys on edustettuna (HTTP).

22 Osa 3... EchoApplication-palvelun WSDL-kuvaus

23 EchoApplication –web-palvelun kuvaus
EchoApplication sisältää yhden palvelukutsun (echoText) parametrinä string-tyyppinen teksti paluuarvona string-tyyppinen teksti WSDL on document/literal -tyylinen WS-I Basic Profile 1.1 –yhteensopivuus on tarkistettu Toimivuus: Oracle JDeveloper 10g: Web Service Stub/Skeleton Generator Delphi 7: WSDL Importer .NET Framework 1.1 SDK: WSDL.EXE Apache Axis 1.2: WSDL2Java

24 EchoApplication... WSDL-dokumentti
<?xml version="1.0" encoding="UTF-8"?> <definitions targetNamespace="urn:serapi:SOAPExample" xmlns=" xmlns:impl="urn:serapi:SOAPExample" xmlns:wsdlsoap=" xmlns:xsd=" <types>...</types> <message>...<message> <portType>...</portType> <binding>...</binding> <service>...</service> </definitions> WSDL-dokumentin osien nimialue Web-palvelun nimialue

25 EchoApplication... service-elementti
<service name=“EchoService"> <port binding="impl:EchoBinding" name=“EchoApplication"> <wsdlsoap:address location=" </port> </service> Web-palvelun nimi Web-palvelun käyttämä HTTP-sidonta (binding) Web-palvelun osoite URL:ina

26 EchoApplication... binding-elementti
<binding name="helloWorldBinding" type="impl:EchoOperations"> <wsdlsoap:binding style="document" transport=" <operation name=“echoText"> <wsdlsoap:operation soapAction="urn:serapi:SOAPExample#EchoText"/> <input> <wsdlsoap:body use="literal"/> </input> <output> </output> </operation> </binding> HTTP-sidonnan palvelukutsut (portType) Palvelukutsujen sidontatyyli echoText-palveluKutsun sidonta

27 EchoApplication... portType-elementti
<portType name=“EchoOperations"> <operation name=“echoText"> <input message="impl:echoTextRq"/> <output message="impl:echoTextRsp"/> </operation> </portType> echoText-palvelukutsun SOAP-viestit (input ja output)

28 EchoApplication... message-elementti
<message name=“echoTextRq"> <part element="impl:echoText" name="parameters"/> </message> <message name=“echoTextRsp"> <part element="impl:echoTextResponse" name="parameters"/> echoText-palvelukutsun input ja output- viestien osat

29 EchoApplication... types-elementti
<schema elementFormDefault="qualified“ targetNamespace="urn:serapi:SOAPExample“ xmlns=" <element name=“echoText"> <complexType> <sequence> <element name="text" type="xsd:string"/> </sequence> </complexType> </element> <element name=“echoTextResponse"> <element name="echoedText" type="xsd:string"/> </schema> </types> echoText-palvelukutsun parametrit (input-viestin sisältö). HUOM! Elementin nimen on oltava echoText! echoText-palvelukutsun paluuarvot (output-viestin sisältö). HUOM! Elementin nimen on oltava echoTextResponse!

30 Osa 4... Web-palveluiden viestintä SOAP:lla

31 SOAP-sanoman osa-elementit
Header ei ole pakollinen sisältää metatietoa viestistä Body sisältää itse sanoman tietosisällön, esim. kutsuttava web-palvelukutsu ja sille annettavat parametrit muu XML-dokumentti Envelope Header Body

32 SOAP-viestinvälitys Asiakas Palvelutoteutus Aputyökalu palvelun
löytämiseen tynkä runko SOAP-lähettäjä SOAP-vastaanottaja HTTP / HTTPS

33 SOAP-esimerkki... echoText-kutsu
<soapenv:Envelope xmlns:soapenv=" xmlns:xsd=" xmlns:xsi=" <soapenv:Body> <echoText xmlns="urn:serapi:SOAPExample"> <text>Jeejee</text> </echoText> </soapenv:Body> </soapenv:Envelope> Body-elementti Web-palvelukutsu parametri

34 SOAP-esimerkki... echoTextResponse-vastaus
<soapenv:Envelope xmlns:soapenv=" xmlns:xsd=" xmlns:xsi=" <soapenv:Body> <echoTextResponse xmlns="urn:serapi:SOAPExample"> <echoedText>Palvelu vastaa: Jeejee</echoedText> </echoedTextResponse> </soapenv:Body> </soapenv:Envelope> Vastaus

35 Osa 5... WS-määritysten käyttö web-palveluissa

36 Esimerkki: Aikaleiman lisääminen
<?xml version = '1.0' encoding = 'UTF-8'?> <soapenv:Envelope xmlns:soapenv=" <soapenv:Header> <wsu:Timestamp xmlns:wsu=" <wsu:Creation> T15:16: </wsu:Creation> </wsu:Timestamp> </soapenv:Header> <soapenv:Body> <echoTextResponse xmlns="urn:serapi:SOAPExample"> <echoedText>Palvelu vastaa:Jeejee</echoedText> </echoedTextResponse> </soapenv:Body> </soapenv:Envelope> Header-elementti Aikaleima (SOAP-vastauksen luontipäivämäärä)

37 WS-määritykset... käyttö
SOAP-sanoman tietosisältö ei muutu Body-elementti säilyy (yleensä) muuttumattomana Body-osio voidaan salata WS-Encryptionilla Vastaanottaja ei välttämättä hyödynnä esim. aikaleimaa mutta se ei haittaa SOAP-sanoman ymmärtämistä

38 Linkkejä W3C:n standardit WS-I:n määritykset
SOAP - WSDL - WS-I:n määritykset WS-I Basic Profile - WS-I Attachments Profile - WS-I Basic Security Profile -


Lataa ppt "Johdatus web-palveluihin"

Samankaltaiset esitykset


Iklan oleh Google