WDSL-Dokumente

Werbung
Techniken von Web Services
Neuer Wein in alten Schläuchen?
Chris Hübsch
[email protected]
14. April 2003
Zusammenfassung
Der Begriff Webservices stellt nach XML, XML-RPC und SOAP einen
weiteren Meilenstein im Rennen der Fachbegriffe auf dem Gebiet der verteilten Systeme dar.
Der Vortrag wird das technische Fundament der Webservices erläutern
und Unterschiede sowie Vor- und Nachteile gegenüber ähnlichen Technologien aufzeigen.
Chris Hübsch, TU Chemnitz
Erster Versuch: Google
Webservices → 800.000 Treffer
Erster Versuch: Google
Webservices → 800.000 Treffer
Web Services → 7.200.000 Treffer
Erster Versuch: Google
Webservices → 800.000 Treffer
Web Services → 7.200.000 Treffer
• www.webservices.org
• W3.Org
• IBM (alpha- und developerWorks), Sun (Java), Microsoft (MSDN)
• O’Reilly
• Webservice-Journal, Webservice-Architect, Webservice-Brokerage
• Ein Error 500 ;-)
Chris Hübsch, TU Chemnitz
1
Was ist ein Webservice?
„Web services are an obvious and exciting evolution of the Internet“ Vint Cerf
Was ist ein Webservice?
„Web services are an obvious and exciting evolution of the Internet“ Vint Cerf
„Web services are self-contained business functions that operate over the Internet. They are written to strict specifications to work together and with other
similar kinds of components.“ Alan Kotok
Was ist ein Webservice?
„Web services are an obvious and exciting evolution of the Internet“ Vint Cerf
„Web services are self-contained business functions that operate over the Internet. They are written to strict specifications to work together and with other
similar kinds of components.“ Alan Kotok
„The basic idea behind Web services is to adapt the loosely coupled Web
programming model for use in applications that are not browser-based. The
goal is to provide a platform for building distributed applications using software
running on different operating systems and devices, written using different programming languages and tools from multiple vendors, all potentially developed
and deployed independently.“ MSDN
Chris Hübsch, TU Chemnitz
2
Technologieumfeld
• RPC
• DCE
• RMI
• CORBA
• DCom
Chris Hübsch, TU Chemnitz
3
Anforderungen
• Intra- und Inter-Applikations-Kommunikation
Anforderungen
• Intra- und Inter-Applikations-Kommunikation
• Kommunkation über Unternehmensgrenzen hinweg
Anforderungen
• Intra- und Inter-Applikations-Kommunikation
• Kommunkation über Unternehmensgrenzen hinweg
• Integration in bestehende Internet-Infrastruktur
Anforderungen
• Intra- und Inter-Applikations-Kommunikation
• Kommunkation über Unternehmensgrenzen hinweg
• Integration in bestehende Internet-Infrastruktur
• Skalierbarkeit in Anzahl und Vielfalt der Knoten
Anforderungen
• Intra- und Inter-Applikations-Kommunikation
• Kommunkation über Unternehmensgrenzen hinweg
• Integration in bestehende Internet-Infrastruktur
• Skalierbarkeit in Anzahl und Vielfalt der Knoten
• i18n
Anforderungen
• Intra- und Inter-Applikations-Kommunikation
• Kommunkation über Unternehmensgrenzen hinweg
• Integration in bestehende Internet-Infrastruktur
• Skalierbarkeit in Anzahl und Vielfalt der Knoten
• i18n
• Fehlertoleranz
Anforderungen
• Intra- und Inter-Applikations-Kommunikation
• Kommunkation über Unternehmensgrenzen hinweg
• Integration in bestehende Internet-Infrastruktur
• Skalierbarkeit in Anzahl und Vielfalt der Knoten
• i18n
• Fehlertoleranz
• Verfügbarkeit von Entwicklungswerkzeugen
Anforderungen
• Intra- und Inter-Applikations-Kommunikation
• Kommunkation über Unternehmensgrenzen hinweg
• Integration in bestehende Internet-Infrastruktur
• Skalierbarkeit in Anzahl und Vielfalt der Knoten
• i18n
• Fehlertoleranz
• Verfügbarkeit von Entwicklungswerkzeugen
• Beliebig komplexe Abläufe abbildbar
Chris Hübsch, TU Chemnitz
4
Schlüsseltechnologien
SOAP: Simple Object Access Protocol
WDSL: Web Services Description Language
UDDI: Universal Description, Discovery and Integration
UDDI
WDSL
SOAP
HTTP
Chris Hübsch, TU Chemnitz
5
SOAP
Simple Object Access Protocol
• Parallel zu XML-RPC entwickelt von Microsoft
• XML-Basiertes Klartextprotokoll
• Codierungsregeln für Daten und Prozeduraufrufe
• Transport über HTTP, SMTP, FTP, ...
• Routing
Chris Hübsch, TU Chemnitz
6
SOAP-Messages
SOAP <Envelope>
SOAP <Header>
SOAP <Body>
SOAP-Messages
SOAP <Envelope>
SOAP <Header>
SOAP <Body>
Envelope: Wurzel des XML-Dokumentes
Header: Bearbeitungshinweise an Server
Body: Container für zu transportierende Daten im XML-Format1
1
DTD ist nicht vorgegeben
Chris Hübsch, TU Chemnitz
7
SOAP-Request
<Envelope
xmlns =" h t t p : / / www. w3 . org / 2 0 0 2 / 1 2 / soap−envelope / "
e n c o d i n g S t y l e =" h t t p : / / www. w3 . org / 2 0 0 2 / 1 2 / soap−encoding ">
<Body>
< f o o b a r : ConvertTimeRequest
xmlns : f o o b a r ="www. f o o . bar ">
< f o o b a r : gmtime > 1 4 / 0 4 / 2 0 0 3 1 1 : 5 0 : 0 0 GMT< / f o o b a r : gmtime>
< f o o b a r : timezone>Loebsal < / f o o b a r : timezone>
< / f o o b a r : ConvertTimeRequest>
< / Body>
< / Envelope>
Chris Hübsch, TU Chemnitz
8
SOAP-Response
<Envelope
xmlns =" h t t p : / / www. w3 . org / 2 0 0 2 / 1 2 / soap−envelope / " >
<Body>
< f o o b a r : ConvertTimeResponse
xmlns : f o o b a r ="www. f o o . bar ">
<foobar : l o c a l t i m e >14. A p r i l 2003 13:50:00
</ foobar : l o c a l t i m e >
< / f o o b a r : ConvertTimeResponse>
< / Body>
< / Envelope>
Chris Hübsch, TU Chemnitz
9
WDSL
Web Services Description Language
• Beschreibt Web-Services in standardisierter Form
• Unabhängig von konkreter RPC-Methode
• Beschreibungen werden üblicherweise maschinell erstellt
Chris Hübsch, TU Chemnitz
10
WDSL-Dokumente
• definition ist Wurzelelement
WDSL-Dokumente
• definition ist Wurzelelement
– Definition von Datentypen → type (als XSD)
WDSL-Dokumente
• definition ist Wurzelelement
– Definition von Datentypen → type (als XSD)
– Definition von Botschaften → message
WDSL-Dokumente
• definition ist Wurzelelement
– Definition von Datentypen → type (als XSD)
– Definition von Botschaften → message
∗ Botschaften bestehen aus Parametern → part
WDSL-Dokumente
• definition ist Wurzelelement
– Definition von Datentypen → type (als XSD)
– Definition von Botschaften → message
∗ Botschaften bestehen aus Parametern → part
– Definition von abstrakten Interfaces → portType
WDSL-Dokumente
• definition ist Wurzelelement
– Definition von Datentypen → type (als XSD)
– Definition von Botschaften → message
∗ Botschaften bestehen aus Parametern → part
– Definition von abstrakten Interfaces → portType
∗ Interfaces bestehen aus Methoden → operation
WDSL-Dokumente
• definition ist Wurzelelement
– Definition von Datentypen → type (als XSD)
– Definition von Botschaften → message
∗ Botschaften bestehen aus Parametern → part
– Definition von abstrakten Interfaces → portType
∗ Interfaces bestehen aus Methoden → operation
· Operationen bestehen aus input und output-Message
WDSL-Dokumente
• definition ist Wurzelelement
– Definition von Datentypen → type (als XSD)
– Definition von Botschaften → message
∗ Botschaften bestehen aus Parametern → part
– Definition von abstrakten Interfaces → portType
∗ Interfaces bestehen aus Methoden → operation
· Operationen bestehen aus input und output-Message
– Abbilden abstrakter Interfaces auf Implementierung → binding
WDSL-Dokumente
• definition ist Wurzelelement
– Definition von Datentypen → type (als XSD)
– Definition von Botschaften → message
∗ Botschaften bestehen aus Parametern → part
– Definition von abstrakten Interfaces → portType
∗ Interfaces bestehen aus Methoden → operation
· Operationen bestehen aus input und output-Message
– Abbilden abstrakter Interfaces auf Implementierung → binding
∗ für jede Operation Codierungen der Messages festlegen
WDSL-Dokumente
• definition ist Wurzelelement
– Definition von Datentypen → type (als XSD)
– Definition von Botschaften → message
∗ Botschaften bestehen aus Parametern → part
– Definition von abstrakten Interfaces → portType
∗ Interfaces bestehen aus Methoden → operation
· Operationen bestehen aus input und output-Message
– Abbilden abstrakter Interfaces auf Implementierung → binding
∗ für jede Operation Codierungen der Messages festlegen
– Beschreiben des Dienstes → service
WDSL-Dokumente
• definition ist Wurzelelement
– Definition von Datentypen → type (als XSD)
– Definition von Botschaften → message
∗ Botschaften bestehen aus Parametern → part
– Definition von abstrakten Interfaces → portType
∗ Interfaces bestehen aus Methoden → operation
· Operationen bestehen aus input und output-Message
– Abbilden abstrakter Interfaces auf Implementierung → binding
∗ für jede Operation Codierungen der Messages festlegen
– Beschreiben des Dienstes → service
∗ Services bestehen aus ports, die ein Binding aktivieren
WDSL-Dokumente
• definition ist Wurzelelement
– Definition von Datentypen → type (als XSD)
– Definition von Botschaften → message
∗ Botschaften bestehen aus Parametern → part
– Definition von abstrakten Interfaces → portType
∗ Interfaces bestehen aus Methoden → operation
· Operationen bestehen aus input und output-Message
– Abbilden abstrakter Interfaces auf Implementierung → binding
∗ für jede Operation Codierungen der Messages festlegen
– Beschreiben des Dienstes → service
∗ Services bestehen aus ports, die ein Binding aktivieren
Chris Hübsch, TU Chemnitz
11
WDSL-Beispiel
< d e f i n i t i o n s name = ’ t i m e s e r v i c e ’
xmlns = ’ h t t p : / / schemas . xmlsoap . org / wsdl / ’ >
<message name = ’ Clock . ConvertTimeRequest ’ >
< p a r t name = ’ gmttime ’ t y p e = ’ xsd : t i m e ’ / >
< p a r t name = ’ timezone ’ t y p e = ’ xsd : s t r i n g ’ / >
< / message>
<message name = ’ Clock . ConvertTimeResponse ’ >
< p a r t name = ’ l o c a l t i m e ’ t y p e = ’ xsd : s t r i n g ’ / >
< / message>
Chris Hübsch, TU Chemnitz
12
WDSL-Beispiel
< portType name = ’ ClockSoapPort ’ >
< o p e r a t i o n name = ’ ConvertTime ’ parameterOrder = ’ gmtime
timezone ’ >
< i n p u t message = ’ wsdlns : Clock . ConvertTimeRequest ’ / >
< o u t p u t message = ’ wsdlns : Clock . ConvertTimeResponse ’ / >
</ operation>
< / portType >
< b i n d i n g name = ’ ClockSoapBinding ’
t y p e = ’ wsdlns : ClockSoapPort ’ >
<soap : b i n d i n g s t y l e = ’ r p c ’
t r a n s p o r t = ’ h t t p : / / schemas . xmlsoap . org / soap / h t t p ’ / >
Chris Hübsch, TU Chemnitz
13
WDSL-Beispiel
< o p e r a t i o n name = ’ ConvertTime ’ >
<soap : o p e r a t i o n soapAction = ’ h t t p : / / f o o . bar / a c t i o n / \
Clock . ConvertTime ’ / >
<input>
<soap : body use = ’ encoded ’ namespace = ’ h t t p : / / \
f o o . bar / message / ’ e n c o d i n g S t y l e = ’ h t t p : / / \
schemas . xmlsoap . org / soap / encoding / ’ / >
</ input>
<output>
<soap : body use = ’ encoded ’ namespace = ’ h t t p : / / \
f o o . bar / message / ’ e n c o d i n g S t y l e = ’ h t t p : / / \
schemas . xmlsoap . org / soap / encoding / ’ / >
</ output>
</ operation>
</ binding>
Chris Hübsch, TU Chemnitz
14
WDSL-Beispiel
< s e r v i c e name = ’ TimeConvertService ’ >
< p o r t name = ’ ClockSoapPort ’
b i n d i n g = ’ wsdlns : ClockSoapBinding ’ >
<soap : address l o c a t i o n = ’ h t t p : / / l o c a l h o s t / demos / \
wsdl / d e v x p e r t / c o n v e r t s e r v i c e . asp ’ / >
</ port>
</ service>
</ d e f i n i t i o n s >
Chris Hübsch, TU Chemnitz
15
UDDI
Universal Description, Discovery and Integration
• Infrastruktur, um Web-Services zu registrieren und aufzufinden
• ca. 30 SOAP-Nachrichten (d.h. selbst Webservice)
• 4 Datenstrukturen
• Caching der Auskünfte
• Retry-On-Failure Protokoll
• mehrere konkurrierende Registries
Chris Hübsch, TU Chemnitz
16
UDDI-Directories
White-Pages
Unternehmens-Infos
businessEntity
UDDI-Directories
White-Pages
Yello-Pages
Unternehmens-Infos
Service-Infos
businessEntity
businessService
UDDI-Directories
White-Pages
Yello-Pages
Green-Pages
Unternehmens-Infos
Service-Infos
Binding-Infos
businessEntity
businessService
bindingTemplate
UDDI-Directories
White-Pages
Yello-Pages
Green-Pages
Unternehmens-Infos
Service-Infos
Binding-Infos
businessEntity
businessService
bindingTemplate
tModel speichert implementierungsabhängige Metadaten
Chris Hübsch, TU Chemnitz
17
Implementierungen
http://www.xmethods.com/ve2/ViewImplementations.po
• J2EE
• .NET
• mod soap
• Bea-WebLogic
• ...
Chris Hübsch, TU Chemnitz
18
Problemgebiete
• Standardisierung im Fluss
• Sicherheit
• Transaktionsfähigkeit
• Versionsinkompatibilitäten
Chris Hübsch, TU Chemnitz
19
Weitere Schlagworte im Umfeld
XSD: XML Schema
ebXML: electronic business XML
XML Security
OASIS: Organization for the Advancement of Structured Information Standards
Chris Hübsch, TU Chemnitz
20
Links
• http://www.w3.org/2000/xp/Group/
• http://www.w3.org/TR/wsdl
• http://www.uddi.org/
• http://www.xmethods.com/
Chris Hübsch, TU Chemnitz
21
Zukunft?
CORBA?
Chris Hübsch, TU Chemnitz
22
Ende
Chris Hübsch, TU Chemnitz
23
Herunterladen