Johdatus web-palveluihin - PowerPoint PPT Presentation

About This Presentation
Title:

Johdatus web-palveluihin

Description:

Title: PlugIT-ydinrajapinnat HTTP/XML -tekniikalla Author: Campus Agreement 2002 Last modified by: Marko Sormunen Created Date: 5/21/2004 7:26:54 AM – PowerPoint PPT presentation

Number of Views:94
Avg rating:3.0/5.0
Slides: 39
Provided by: CampusAgr2
Category:

less

Transcript and Presenter's Notes

Title: Johdatus web-palveluihin


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

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 HTTPn 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/IPn 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
  • v1.2 vuonna 2003

6
Web-palvelut... ongelmakohdat
  • Standardit pyrkivät edelleen mahdollisimman
    vapaaseen liittymien kuvaamiseen XMLn 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 SOAPpia, WSDLää ja
    HTTPtä

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
  • W3Cn tai OASISn määrittelemiä
  • WS-I pyrkii tarkentamaan valmiiden standardien
    toteutustapoja
  • BPEL
  • Business Process Execution Language
  • yhden liiketoimintaprosessin kuvaus alusta
    loppuun
  • pohjana Microsoftin ja IBMn 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
Web-palvelu
Rajapinnan kuvaus
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 WSDLllä
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
  • WSDLn 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 WSDLn
    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! WSDLn, tyngän tai rungon käyttö ei ole
    pakollista, SOAP-sanomat voi tehdä myös käsin
    ja lähettää ne itse HTTPn avulla

17
WSDL... käyttötavat
  • Kaksi WSDL-tyyliä määritelty kutsurajapinta-tyylis
    ille 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
Palvelutoteutus
runko
19
2. Web-palvelun käyttöönotto
Asiakas sovellus
työkalu
tynkä
WSDL
Palvelutoteutus
20
3. WSDL-dokumentin generointi
Palvelutoteutus
työkalu
WSDL
21
WSDLn 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
  • lt?xml version"1.0" encoding"UTF-8"?gt
  • ltdefinitions targetNamespace"urnserapiSOAPExamp
    le"
  • xmlns"http//schemas.xmlsoap.org/wsdl/"
  • xmlnsimpl"urnserapiSOAPExample"
  • xmlnswsdlsoap"http//schemas.xmlsoap.org/wsdl/s
    oap/"
  • xmlnsxsd"http//www.w3.org/2001/XMLSchema"gt
  • lttypesgt...lt/typesgt
  • ltmessagegt...ltmessagegt
  • ltportTypegt...lt/portTypegt
  • ltbindinggt...lt/bindinggt
  • ltservicegt...lt/servicegt
  • lt/definitionsgt

WSDL-dokumentin osien nimialue
Web-palvelun nimialue
25
EchoApplication... service-elementti
  • ltservice nameEchoService"gt
  • ltport binding"implEchoBinding"
    nameEchoApplication"gt
  • ltwsdlsoapaddress location"http//localhost/Ech
    oService/services/EchoApplication"/gt
  • lt/portgt
  • lt/servicegt

Web-palvelun nimi
Web-palvelun käyttämä HTTP-sidonta (binding)
Web-palvelun osoite URLina
26
EchoApplication... binding-elementti
  • ltbinding name"helloWorldBinding"
    type"implEchoOperations"gt
  • ltwsdlsoapbinding style"document"
    transport"http//schemas.xmlsoap.org/soap/http"/gt
  • ltoperation nameechoText"gt
  • ltwsdlsoapoperation soapAction"urnserapiSOAP
    ExampleEchoText"/gt
  • ltinputgt
  • ltwsdlsoapbody use"literal"/gt
  • lt/inputgt
  • ltoutputgt
  • ltwsdlsoapbody use"literal"/gt
  • lt/outputgt
  • lt/operationgt
  • lt/bindinggt

HTTP-sidonnan palvelukutsut (portType)
Palvelukutsujen sidontatyyli
echoText-palveluKutsun sidonta
27
EchoApplication... portType-elementti
  • ltportType nameEchoOperations"gt
  • ltoperation nameechoText"gt
  • ltinput message"implechoTextRq"/gt
  • ltoutput message"implechoTextRsp"/gt
  • lt/operationgt
  • lt/portTypegt

echoText-palvelukutsun SOAP-viestit (input ja
output)
28
EchoApplication... message-elementti
  • ltmessage nameechoTextRq"gt
  • ltpart element"implechoText"
    name"parameters"/gt
  • lt/messagegt
  • ltmessage nameechoTextRsp"gt
  • ltpart element"implechoTextResponse"
    name"parameters"/gt
  • lt/messagegt

echoText-palvelukutsun input ja output- viestien
osat
29
EchoApplication... types-elementti
  • lttypesgt
  • ltschema elementFormDefault"qualified
  • targetNamespace"urnserapiSOAPExample
  • xmlns"http//www.w3.org/2001/XMLSchema"gt
  • ltelement nameechoText"gt
  • ltcomplexTypegt
  • ltsequencegt
  • ltelement name"text" type"xsdstring"/gt
  • lt/sequencegt
  • lt/complexTypegt
  • lt/elementgt
  • ltelement nameechoTextResponse"gt
  • ltcomplexTypegt
  • ltsequencegt
  • ltelement name"echoedText"
    type"xsdstring"/gt
  • lt/sequencegt
  • lt/complexTypegt
  • lt/elementgt
  • lt/schemagt

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ä SOAPlla
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
runko
tynkä
SOAP-vastaanottaja
SOAP-lähettäjä
HTTP / HTTPS
33
SOAP-esimerkki... echoText-kutsu
  • ltsoapenvEnvelope
  • xmlnssoapenv"http//schemas.xmlsoap.org/soap/en
    velope/
  • xmlnsxsd"http//www.w3.org/2001/XMLSchema
  • xmlnsxsi"http//www.w3.org/2001/XMLSchema-Insta
    nce"gt
  • ltsoapenvBodygt
  • ltechoText xmlns"urnserapiSOAPExample"gt
  • lttextgtJeejeelt/textgt
  • lt/echoTextgt
  • lt/soapenvBodygt
  • lt/soapenvEnvelopegt

Body-elementti
Web-palvelukutsu
parametri
34
SOAP-esimerkki... echoTextResponse-vastaus
  • ltsoapenvEnvelope
  • xmlnssoapenv"http//schemas.xmlsoap.org/soap/en
    velope/
  • xmlnsxsd"http//www.w3.org/2001/XMLSchema
  • xmlnsxsi"http//www.w3.org/2001/XMLSchema-Insta
    nce"gt
  • ltsoapenvBodygt
  • ltechoTextResponse xmlns"urnserapiSOAPExample
    "gt
  • ltechoedTextgtPalvelu vastaa
    Jeejeelt/echoedTextgt
  • lt/echoedTextResponsegt
  • lt/soapenvBodygt
  • lt/soapenvEnvelopegt

Vastaus
35
Osa 5... WS-määritysten käyttö web-palveluissa
36
Esimerkki Aikaleiman lisääminen
lt?xml version '1.0' encoding
'UTF-8'?gt ltsoapenvEnvelope xmlnssoapenv"http/
/schemas.xmlsoap.org/soap/envelope/"gt
ltsoapenvHeadergt ltwsuTimestamp
xmlnswsu"http//docs.oasis-open.org/wss/2004/01/
oasis-200401-wss-wssecurity-utility-1.0.xsd"gt
ltwsuCreationgt2004-11-25T1516140200lt/wsuCreati
ongt lt/wsuTimestampgt lt/soapenvHeadergt
ltsoapenvBodygt ltechoTextResponse
xmlns"urnserapiSOAPExample"gt
ltechoedTextgtPalvelu vastaaJeejeelt/echoedTextgt
lt/echoedTextResponsegt lt/soapenvBodygt lt/soapenvE
nvelopegt
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ä
  • W3Cn standardit
  • SOAP - http//www.w3.org/TR/soap/
  • WSDL - http//www.w3.org/TR/wsdl12
  • WS-In määritykset
  • WS-I Basic Profile - http//www.ws-i.org/Profiles/
    BasicProfile-1.1.html
  • WS-I Attachments Profile - http//www.ws-i.org/Pro
    files/AttachmentsProfile-1.0.html
  • WS-I Basic Security Profile - http//www.ws-i.org/
    Profiles/BasicSecurityProfile-1.0.html
Write a Comment
User Comments (0)
About PowerShow.com