Folie 1 - PowerPoint PPT Presentation

About This Presentation
Title:

Folie 1

Description:

Title: Folie 1 Author: mio Last modified by: mio Created Date: 4/21/2003 8:45:05 PM Document presentation format: Bildschirmpr sentation Company: mio – PowerPoint PPT presentation

Number of Views:55
Avg rating:3.0/5.0
Slides: 49
Provided by: mio91
Category:
Tags: folie | java

less

Transcript and Presenter's Notes

Title: Folie 1


1
Hauptseminar Web Services W3C Standards I SOAP,
WSDL, UDDI
Tania Fichtner Technische Universität München,
Lehrstuhl für Informatik 24. April 2003, München
2
  • Agenda
  • 0. Web Services
  • Einführung, Architektur, Vorgehen
  • SOAP
  • Beispiel, SOAP Nachricht, Datencodierung
  • WSDL
  • WSDL, Struktur, Beispiel
  • UDDI
  • UDDI Registry, Kernbestandteile, Datenmodell,
    Beispiel

3
0. Web Services
4
Web Services. Service Orientierte Architektur
  • Nachrichtenaustausch
  • Dienst Beschreibung
  • Veröffentlichen / Finden

5
Web Services. Web Service Protocol Stack
6
1. SOAP. Simple Object Access Protocol
7
SOAP. Einführung
  • XML basiertes Datentransportprotokoll.
  • Umfasst Formatierung von Daten.
  • Kann in verschiedenen Nachrichten Systemen
    benutzt, und über verschiedene Transportprotokolle
    versendet werden.
  • ? Im Vordergrund entfernte Methodenaufrufe
    (RPC) via HTTP.
  • Ermöglicht Dienst- und Datenaustausch.

8
SOAP. Request Response. Ein Beispiel.
RealtimeKursService
SOAP response Wert 4.32
9
SOAP. Request Nachricht Ein Beispiel.
SOAP request Was ist der Wert der Aktie
923258?
lt?xml version'1.0' ?gt ltenvEnvelope
xmlnsenv http//www.w3.org/2002/12/soap-envelop
e  xmlnsxsihttp//www.w3.org/2001/XMLSchema-
instance xmlnsxsdhttp//www.w3.org/2001/XMLS
chema gt ltenvBodygt ltns1getKurs
xmlnsns1urnRealTimeKursServicegt ltwkn
xsitypexsdstringgt923835lt/wkngt
lt/ns1getKursgt lt/envBodygt lt/envEnvelopegt
SOAP client
10
SOAP. Request Nachricht Ein Beispiel.
SOAP request Was ist der Wert der Aktie
923258?
lt?xml version'1.0' ?gt ltenvEnvelope
xmlnsenv http//www.w3.org/2002/12/soap-envelop
e  xmlnsxsihttp//www.w3.org/2001/XMLSchema-
instance xmlnsxsdhttp//www.w3.org/2001/XMLS
chema gt ltenvBodygt ltns1getKurs
xmlnsns1urnRealTimeKursServicegt ltwkn
xsitypexsdstringgt923835lt/wkngt
lt/ns1getKursgt lt/envBodygt lt/envEnvelopegt
SOAP client
11
SOAP. Response Nachricht Ein Beispiel.
lt?xml version'1.0' ?gt ltenvEnvelope
xmlnsenv http//www.w3.org/2002/12/soap-envelop
e  xmlnsxsihttp//www.w3.org/2001/XMLSchema-
instance xmlnsxsdhttp//www.w3.org/2001/XMLS
chemagt ltenvBodygt ltns1getKursResponse
xmlnsns1urnRealTimeKursService
envencodingStyle http//schemas.xmlsoap.or
g/soap/encoding/ gt ltwert
xsitypexsdstringgt4.32lt/wertgt
lt/ns1getKursResponsegt lt/envBodygt lt/envEnvelope
gt
SOAP client
SOAP response Wert 4.32
12
SOAP. Response Nachricht Ein Beispiel.
lt?xml version'1.0' ?gt ltenvEnvelope
xmlnsenv http//www.w3.org/2002/12/soap-envelop
e  xmlnsxsihttp//www.w3.org/2001/XMLSchema-
instance xmlnsxsdhttp//www.w3.org/2001/XMLS
chemagt ltenvBodygt ltns1getKursResponse
xmlnsns1urnRealTimeKursService
envencodingStyle http//schemas.xmlsoap.or
g/soap/encoding/ gt ltwert
xsitypexsdstringgt4.32lt/wertgt
lt/ns1getKursResponsegt lt/envBodygt lt/envEnvelope
gt
SOAP client
SOAP response Wert 4.32
13
SOAP. Response Nachricht Ein Beispiel.
lt?xml version'1.0' ?gt ltenvEnvelope
xmlnsenv http//www.w3.org/2002/12/soap-envelop
e  xmlnsxsihttp//www.w3.org/2001/XMLSchema-
instance xmlnsxsdhttp//www.w3.org/2001/XMLS
chemagt ltenvBodygt ltns1getKursResponse
xmlnsns1urnRealTimeKursService
envencodingStyle http//schemas.xmlsoap.or
g/soap/encoding/ gt ltwert
xsitypexsdstringgt4.32lt/wertgt
lt/ns1getKursResponsegt lt/envBodygt lt/envEnvelope
gt
SOAP client
SOAP response Wert 4.32
14
SOAP. Nachricht
15
SOAP. Header
  • Optional.
  • Erweiterungen für Nachrichtenpfad.
  • Drei Attribute role, mustUnderstand und
    relay.

16
SOAP. Header
Wer wird angesteuert?
ltenvEnvelope xmlnsenv...gt ltenvHeadergt
ltpeinBlock xmlnspsomeURI"
envrole.../role/next" envmustUnderstand
"true"gt ... lt/peinBlockgt ltqBlockzwei
xmlnsqsomeURI" envrelay"true"gt ...
lt/qBlockzweigt ltrBlockdrei xmlnsrsomeURI"gt
... lt/rBlockdreigt lt/envHeadergt ltenvBody
gt ... lt/envBodygt lt/envEnvelopegt
Muss er interpretiert werden?
Wie wird er verarbeitet?
17
SOAP. Body
  • Informationen für den Empfänger.
  • Fehler im Body signalisiert.

code Spezifiziert Fehler
reason Menschen lesbare Meldung
detail Anwendung spezifisch
node Wer hat Fehler verursacht
role Rolle des Knotens
18
SOAP. Datencodierung
  • Eigene Datentypdefinition.
  • Standard http//www.w3.org/2002/12/soap-encoding
  • Attribut envencodingStyle.
  • Zwei Kategorien Datentypen
  • Einfache atomare Datentypen
  • Zusammengesetzte Structs und arrays.
  • ? Datentypen wie in jeder Programmiersprache.

19
2. WSDL. Web Services Description Language
20
WSDL. Einführung
  • XML basierte Sprache.
  • Beschreibung von Web Services.
  • Enthält URL des Web Service.

Abstrakte Definition Binding PortType Messages Ty
pes
Implementation Service Port
21
WSDL. Struktur eines WSDL Dokuments I
  • Die WSDL Spezifikation definiert sechs Hauptteile

ltdefinitionsgt
lttypesgt
ltmessagegt
ltporTypegt
ltoperationgt
ltbindinggt
ltservicegt
ltportgt
22
WSDL. Struktur eines WSDL Dokuments II
  • WSDL Spezifikation noch zwei weitere Elemente.

ltdefinitionsgt
...
ltimportgt
ltdocumentationgt
23
WSDL. Beispiel RealtimeKursService
24
WSDL. Spezifikation ltdefinitionsgt
  • WSDL Wurzelelement.

ltdefinitions nameRealtimeKursService
targetnamespacehttp//.../wsdl/
RealtimeKursService.wsdl xmlnshttp//schemas.
xmlsoap.org/wsdl/ xmlnssoaphttp//schemas.xm
lsoap.org/wsdl/soap xmlnstns1http//.../wsdl
/ RealtimeKursService.wsdl
xmlnsxsdhttp//www.w3.org/2001/XMLSchemagt
25
WSDL. Spezifikation lttypesgt
  • Datentypen die nicht im XML Schema-Standard sind.

lttypesgt ltschema xmlnshttp//www.w3.org/2001/XML
Schema targetNamespaceRealtimeKursService
gt ltcomplexType nameAktienkursgt
ltsequencegt ltelement namename
nillabletrue typexsdstring /gt
ltelement namewkn nillabletrue
typexsdstring /gt ltelement
namekurs typexsddouble /gt
lt/sequencegt lt/complexTypegt ltelement
nameAktienkurs nillabletrue
typetns1Aktienkurs /gt lt/schemagt lt/typesgt
26
WSDL. Spezifikation ltmessagegt
  • Ausgetauschten Nachrichten.
  • Parameter im part Subelement definiert.

ltmessage namegetKursResponsegt ltpart
namereturn typetns1Aktienkurs
/gt lt/messagegt ltmessage namegetKurstRequestgt
ltpart namewkn typexsdstring /gt lt/messagegt
27
WSDL. Spezifikation ltportTypegt und ltoperationgt
  • Die am Web Service aufrufbaren Methoden.
  • Subelement operation.

ltportTypegt ltoperation namegetKurs
parameterOrderwkngt ltinput
messagetns1getKursRequest /gt ltoutput
messagetns1getKursResponse /gt
lt/operationgt lt/portTypegt
28
WSDL. Spezifikation ltportTypegt und ltoperationgt
  • Kommunikation Muster des operation Elements


Client
Server
One-way
ltinputgt
1.
Request- response
Client
Server
ltinputgt
ltoutputgt
2.
1.
Solicit- response
Client
Server
ltoutputgt
ltinputgt
2.
Client
Server
Notification
ltoutputgt
29
WSDL. Spezifikation ltbindinggt
  • Beschreibt wie ein Web Service mit dem Client
    kommuniziert (HTTP GET, HTTP POST, SOAP).

ltbinding nameRealtimekursService-Binding
typetns1RealtimeKursServicegt ltsoapbinding
stylerpc transport...soap/http/gt
ltoperation namegetKursgt ltsoapoperation
soapActiongetKurs/gt ltinputgt
ltsoapbody useencoded
encodingStyle.../encoding
namespace.../RealtimeKursService/gt
lt/inputgt ltoutputgt ltsoapbody
useencoded encodingStylehttp//...
/encoding namespace.../RealtimeKursServ
ice/gt lt/outputgt lt/operationgt lt/bindinggt
30
WSDL. Spezifikation ltservicegt und ltportgt
  • Adresse des Web Services.
  • port Registrierungs- name des Web Services.
  • adress URL des Web Service.

ltservice nameRealtimeKursService_Servicegt
ltport nameRealtimeKursService
bindingRealtimekursService-Bindinggt
ltsoapaddress locationhttp//localhost
8080/axis/ services/RealtimeKursService/gt
lt/portgt ltdocumentationgtWSDL File für
RealtimeKursService lt/documentationgt lt/servicegt
31
3. UDDI. Universal Description, Discovery
and Integration
32
UDDI. Einführung
  • Standard um Web Services zugänglich machen.

UDDI Registry
Business Service Technik
Sucht nach Dienst
WSDL
Dienste- Registry
veröffentlicht
UDDI
  • Spezifikation
  • Implementation

Nimmt Dienst in Anspruch
Dienste- Konsument
Dienste- Anbieter
33
UDDI. Registry
  • Informationen in drei Kategorien aufgeteilt

Business
White Pages
Service
Yellow Pages
Technik
Green Pages
34
UDDI. Kernbestandteile
  • Datenstruktur
  • ? XML Schema

2. API Spezifikation ?publishing
inquiry functions.
UDDI
3. Replikations- Spezifikation
4. Spezifikation für Registry Anbieter
35
UDDI. Datenmodell
  • UDDI basiert auf XML Schema.

ltBusinessEntitygt lt/BusinessEntitygt
36
UDDI. Beispiel
  • http//uddi.microsoft.com
  • UDDI Suchpfad

BusinessEntity ? BusinessService ?
BindingTemplate ? tModel
37
UDDI. Beispiel XMethods
38
Zusammenfassung
  • Anforderungen einer Web Service Architektur
  • Kompatibilität
  • Integration im WWW
  • Skalierbarkeit Erweiterbarkeit
  • Benutzer- Web- freundlich
  • Sicherheit
  • Funktionssicherheit / Zuverlässigkeit
  • Management

?
?
39
Vielen Dank für Ihre Aufmerksamkeit!
40
Anhang I. Back Up
41
SOAP Nachricht. XML Schema für Element env
... ltxselement nameEnvelope
typetnsEnvelopegt ltxscomplexType
nameEnvelopegt ltxssequencegt ltxselement
reftnsHeader minOccurs0/gt ltxselement
reftnsBody minOccurs1/gt ltxsany
namespaceother minOccurs0 maxOccurs
unbounded processContentslax/gt lt/xssequ
encegt ...
42
SOAP Header. Attribut role
  • role-Attribut
  • Definiert welcher SOAP-Knoten sich um die
    Auswertung des Header Blocks kümmerns soll.
  • Es gibt 3 standardisierte Rollen
  • none, next, ultimateReceiver

43
SOAP Header. Attribut mustUnderstand
  • mustUnderstand-Attribut
  • Teilt dem jeweiligen SOAP-Knoten mit, ob er den
    zugehörigen Header-Block interpretieren muss.

44
SOAP Header. Attribute
  • relay-Attribut
  • Zeigt an was getan werden muss, falls der
    Header-Block nicht vom angesteuerten SOAP-Knoten
    verarbeitet wurde.


Role Role Header block Header block
Short-name Assumed Understood Processed Forwarded
next Yes Yes No, unless reinserted
next Yes No No, unless relay "true"
user-defined Yes Yes No, unless reinserted
user-defined Yes No No, unless relay "true"
user-defined No n/a Yes
ultimateReceiver Yes Yes n/a
ultimateReceiver Yes No n/a
none No n/a Yes
45
SOAP. Fault-Beispiel
ltenvBodygt ltenvFaultgt ltenvCodegt
ltenvValuegtClient.Authenticationlt/envValuegt
ltenvSubcodegt ltenvValuegtrpcBadArgumentslt/envV
aluegt lt/envSubcodegt lt/envCodegt ltenvReason
gt ltenvText xmllang"de"gtLogin-Daten sind
ungültiglt/envTextgt ltenvtext
xmllang"en-US"gtLogin Data not
validlt/envTextgt lt/envReasongt ltenvDetailgt
lteFehlerDetails xmlnse"http//www.beispiel.org/
faults"gt ltemessagegtName does not match
logindatalt/emessagegt lt/eFehlerDetailsgt lt/en
vDetailgt lt/envFaultgt lt/envBodygt
46
SOAP. Datentypen Einfache Datentypen
  • Atomare Datentypen.
  • Einfache Datentypen der XML Schema Spezifikation.

lt?xml version'1.0' ?gt ltenvEnvelope
xmlnsenv"http//www.w3.org/2002/12/soap-envelope
" xmlnsenv-ENC"http//www.w3.org/2002/12/soap
-encoding"   xmlnsxsd"http//www.w3.org/2001/
XMLSchema" xmlnsxsi"http//www.w3.org/2001/XM
LSchema-instance"   env-ENCencodingstyle"http
//www.w3.org/2002/12/soap- encoding"gt
ltenvBodygt ltgetKursgt ltwkn
xsitypexsdstringgt923835lt/wkngt lt/getKursgt lt/e
nvBodygt lt/envEnvelopegt
47
SOAP. Datentypen Zusammengesetzte Datentypen
  • SOAP Arrays mit xsitype- und arrayType-
    Attributen festgelegt.
  • Multidimensionale Arrays möglich.

ltenvBodygt ltgetKursResponse
envencodingStylehttp//www.w3.org/2002/12/soap-
encoding"gt ltReturn
xmlnsns1http//www.w3.org/2002/12/soap-encoding
xsitypens1Array ns1arrayTypexsd
string3gt ltitem xsitypexsdstringgt923
835lt/itemgt ltitem xsitypexsdstringgtIBMlt
/itemgt ltitem xsitypexsddoublegt4.32lt/it
emgt lt/Returngt lt/getKursResponsegt lt/envBodygt
48
SOAP. Datentypen Zusammengesetzte Datentypen
  • Struct Zusammensetzung mehrere atomarer
    Datentypen zu einem Hochtyp.

... ltenvBodygt ltgetKursResponse
envencodingStylehttp//www.w3.org/2002/12/soap-
encoding"gt ltaktiegt ltwkn
xsitypexsdstringgt923835lt/wkngt ltname
xsitypexsdstringgtIBMlt/namegt ltwert
xsitypexsddoublegt4.32lt/wertgt lt/aktiegt
lt/getKursResponsegt lt/envBodygt ...
Write a Comment
User Comments (0)
About PowerShow.com