1 web services (soap, rest, wsdl). © prof. t. kudraß, htwk leipzig 2 web service – definitionen?...
TRANSCRIPT
![Page 1: 1 Web Services (SOAP, REST, WSDL). © Prof. T. Kudraß, HTWK Leipzig 2 Web Service – Definitionen? Gartner Group: Web services are software technologies,](https://reader034.vdocuments.us/reader034/viewer/2022051515/55204d6649795902118bb74e/html5/thumbnails/1.jpg)
1
Web Services(SOAP, REST, WSDL)
![Page 2: 1 Web Services (SOAP, REST, WSDL). © Prof. T. Kudraß, HTWK Leipzig 2 Web Service – Definitionen? Gartner Group: Web services are software technologies,](https://reader034.vdocuments.us/reader034/viewer/2022051515/55204d6649795902118bb74e/html5/thumbnails/2.jpg)
2
© Prof. T. Kudraß, HTWK Leipzig
Web Service – Definitionen? Gartner Group: „Web services are software
technologies, making it possible to build bridges between IT systems that otherwise would require extensive development efforts.“
Forrester Research: „Software designed to be used by other software via Internet protocols and formats“
W3C: „A Web service is a software application identified by a URI, whose interface 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. (October 2002)“
OASIS: „Service Oriented Architecture (SOA) is a paradigm for organizing and utilizing distributed capabilities that may be under the control of different ownership domains.“ (2006)
![Page 3: 1 Web Services (SOAP, REST, WSDL). © Prof. T. Kudraß, HTWK Leipzig 2 Web Service – Definitionen? Gartner Group: Web services are software technologies,](https://reader034.vdocuments.us/reader034/viewer/2022051515/55204d6649795902118bb74e/html5/thumbnails/3.jpg)
3
© Prof. T. Kudraß, HTWK LeipzigDienste als kleinste Bestandteile in einer Serviceorientierten Architektur (SOA)
Dienst beschreibt eine eigenständige Funktionalität– Funktionalität durch Dienst vollständig implementiert– eigenständig aus Sicht des Dienstnutzers
Eine öffentliche Schnittstelle ist verfügbar– alle Angaben in beschreibender Form– hersteller-, plattform- und technologieneutrale
Beschreibung Jeder Dienst ist eigenständiges Artefakt
– Dienst austauschbar durch andere Implementierung Kenntniss der Interna des Dienstes nicht
notwendig
![Page 4: 1 Web Services (SOAP, REST, WSDL). © Prof. T. Kudraß, HTWK Leipzig 2 Web Service – Definitionen? Gartner Group: Web services are software technologies,](https://reader034.vdocuments.us/reader034/viewer/2022051515/55204d6649795902118bb74e/html5/thumbnails/4.jpg)
4
© Prof. T. Kudraß, HTWK Leipzig
WS-* Universum
WS-* UniversumWS-BPELWS-BPELWS-
Transaction
WS-Transaction
WS-SecurityWS-Security WS-PolicyWS-Policy
UDDIUDDI ??
![Page 5: 1 Web Services (SOAP, REST, WSDL). © Prof. T. Kudraß, HTWK Leipzig 2 Web Service – Definitionen? Gartner Group: Web services are software technologies,](https://reader034.vdocuments.us/reader034/viewer/2022051515/55204d6649795902118bb74e/html5/thumbnails/5.jpg)
5
© Prof. T. Kudraß, HTWK Leipzig
Basiskomponenten Kommunikation Dienstbeschreibung VerzeichnisdienstSOAP beschreibt das XML-basierte Nachrichtenformat der
Kommunikation und dessen Einbettung in ein Transportprotokoll
WSDL ist eine XML-basierte Beschreibungssprache, um Web Services (Dienste) zu beschreiben
UDDI beschreibt einen Verzeichnisdienst für Web Services. UDDI spezifiziert eine standardisierte Verzeichnissstruktur für die Verwaltung von Web Services-Metadaten: allgemeine Anforderungen, Web-Service-Eigenschaften, benötigte Informationen zum Auffinden von Web Service
![Page 6: 1 Web Services (SOAP, REST, WSDL). © Prof. T. Kudraß, HTWK Leipzig 2 Web Service – Definitionen? Gartner Group: Web services are software technologies,](https://reader034.vdocuments.us/reader034/viewer/2022051515/55204d6649795902118bb74e/html5/thumbnails/6.jpg)
6
© Prof. T. Kudraß, HTWK Leipzig
Merkmale einer SOA Lose Kopplung Dynamisches Binden Verzeichnisdienst Verwendung von Standards Einfachheit Sicherheit Komplexe Aspekte
– Automatisierung der Kommunikation– Geschäftsprozessmodellierung– Ereignisse– Semantik
![Page 7: 1 Web Services (SOAP, REST, WSDL). © Prof. T. Kudraß, HTWK Leipzig 2 Web Service – Definitionen? Gartner Group: Web services are software technologies,](https://reader034.vdocuments.us/reader034/viewer/2022051515/55204d6649795902118bb74e/html5/thumbnails/7.jpg)
7
© Prof. T. Kudraß, HTWK Leipzig
Vorläufer und artverwandte Technologien
Sun RPC (1985) Microsoft COM (1993)
– für prozessinterne Aufgabenstellung, nicht für Netzwerkkommunikation geeignet
CORBA (1992) Microsoft DCOM (1996)
– CORBA-Pendant für die Windows-Welt– Weiterentwicklung: COM+ ab Windows2000
Java RMI (1996)
![Page 8: 1 Web Services (SOAP, REST, WSDL). © Prof. T. Kudraß, HTWK Leipzig 2 Web Service – Definitionen? Gartner Group: Web services are software technologies,](https://reader034.vdocuments.us/reader034/viewer/2022051515/55204d6649795902118bb74e/html5/thumbnails/8.jpg)
8
© Prof. T. Kudraß, HTWK Leipzig
Web Services Stack
Network
Service Description
XML-based Messaging
Service Publication
Service Discovery
Service Flow
Sec
urity
Man
agem
ent
Qua
lity
of s
ervi
ces
HTTP, HTTPS, SMTP …
SOAP
WSDL
UDDI
UDDI, WS-Inspection
WS-BPEL
Components Requirements
![Page 9: 1 Web Services (SOAP, REST, WSDL). © Prof. T. Kudraß, HTWK Leipzig 2 Web Service – Definitionen? Gartner Group: Web services are software technologies,](https://reader034.vdocuments.us/reader034/viewer/2022051515/55204d6649795902118bb74e/html5/thumbnails/9.jpg)
9
© Prof. T. Kudraß, HTWK Leipzig
Was ist SOAP? ursprünglicher Name: Simple Object Access Protokoll XML-Markup-Language weist Ähnlichkeiten zu Protokoll auf SOAP-Spezifikation beschreibt nur Aufbau einer
Nachricht, nicht den Versand! Eigenschaften:
– Regeln, wie Daten in Nachrichten einzubinden und zu interpretieren sind, Konventionen für XML-basierten RPC
– keine Vorschriften zur Semantik– kann beliebige Transportprotokolle nutzen, z.B. HTTP, SMTP,
FTP, auch TCP/IP– ermöglicht transparenten Zugang zu Applikationen über
Standardport des Webservers – somit Bindeglied zwischen Applikationen
![Page 10: 1 Web Services (SOAP, REST, WSDL). © Prof. T. Kudraß, HTWK Leipzig 2 Web Service – Definitionen? Gartner Group: Web services are software technologies,](https://reader034.vdocuments.us/reader034/viewer/2022051515/55204d6649795902118bb74e/html5/thumbnails/10.jpg)
10
© Prof. T. Kudraß, HTWK Leipzig
Grundansatz: Serialisierung
class PurchaseOrder {
String item = “socks”;
int amount = 1;
}
<PurchaseOrder>
<item type=“xsd:string”>
socks
</item>
<amount type=“xsd:int”>
1
</amount>
</PurchaseOrder>
Serializer
• Eigene Serialisierungs-Spezifikationen möglich• Standard-Serialisierung:
– Objekte bzw. Objektstrukturen üblicher Typsysteme (Java, C#, C++) werden auf XML abgebildet
– Arrays und Referenzen sind auch möglich
![Page 11: 1 Web Services (SOAP, REST, WSDL). © Prof. T. Kudraß, HTWK Leipzig 2 Web Service – Definitionen? Gartner Group: Web services are software technologies,](https://reader034.vdocuments.us/reader034/viewer/2022051515/55204d6649795902118bb74e/html5/thumbnails/11.jpg)
11
© Prof. T. Kudraß, HTWK Leipzig
Metapher des »E-Umschlags«
SOAP ‘document style’
– packt XML in Envelope
![Page 12: 1 Web Services (SOAP, REST, WSDL). © Prof. T. Kudraß, HTWK Leipzig 2 Web Service – Definitionen? Gartner Group: Web services are software technologies,](https://reader034.vdocuments.us/reader034/viewer/2022051515/55204d6649795902118bb74e/html5/thumbnails/12.jpg)
12
© Prof. T. Kudraß, HTWK Leipzig
HubSender/
Empfänger
HubSender/
Empfänger
Vermittlung
Knoten
![Page 13: 1 Web Services (SOAP, REST, WSDL). © Prof. T. Kudraß, HTWK Leipzig 2 Web Service – Definitionen? Gartner Group: Web services are software technologies,](https://reader034.vdocuments.us/reader034/viewer/2022051515/55204d6649795902118bb74e/html5/thumbnails/13.jpg)
13
© Prof. T. Kudraß, HTWK Leipzig
REST? Der Rest von was? Alternative zu SOAP REST = REpresentational State Transfer kein eigenes Protokoll, keine eigene Nachricht beschreibt Architekturstil für Webstandards:
Webanwendung besteht aus Sammlung von Ressourcen, die über HTTP-Operationen angesprochen werden
entwickelt von Roy Fielding in seiner Dissertation 2000 Architektonische Elemente von REST
– Ressourcen und Repräsentationen– Einheitliche Schnittstellen– Hypermedia (Verknüpfung)
![Page 14: 1 Web Services (SOAP, REST, WSDL). © Prof. T. Kudraß, HTWK Leipzig 2 Web Service – Definitionen? Gartner Group: Web services are software technologies,](https://reader034.vdocuments.us/reader034/viewer/2022051515/55204d6649795902118bb74e/html5/thumbnails/14.jpg)
14
© Prof. T. Kudraß, HTWK LeipzigREST: Abgrenzung und Vergleich zu SOAP
Ressource:– Quelle an einer beliebigen Stelle im Web, eindeutig
identifizierbar über URIs oder auch URLs– in REST: Komponenten einer Applikation– Beispiele: Darlehensanträge, Werbung, Bilder
URIs / URLs in Browser als Link oder Lesezeichen hinterlegt
Unterstützung bei unterschiedlichen Repräsentationen derselben Ressource (Content Negotiation)
Direkter Zugriff auf Ressourcen durch Applikation (kein umständliches Entpacken, Bearbeiten usw. wie in SOAP)
![Page 15: 1 Web Services (SOAP, REST, WSDL). © Prof. T. Kudraß, HTWK Leipzig 2 Web Service – Definitionen? Gartner Group: Web services are software technologies,](https://reader034.vdocuments.us/reader034/viewer/2022051515/55204d6649795902118bb74e/html5/thumbnails/15.jpg)
15
© Prof. T. Kudraß, HTWK LeipzigREST: Abgrenzung und Vergleich zu SOAP(2) einheitliche Schnittstellen
– Dienstnutzer weiß, wie Daten zu bekommen sind– immer gleiche Operationen – angelehnt an HTTP– Ressource durch Browser nutzbar (anders als bei SOAP)
REST-konforme Schnittstelle durch Nutzung von HTTP generisch Operationen
– GET: Abfrage der Repräsentation einer Ressource– POST: Anlegen einer Ressource oder Starten von Prozessen auf
Server– PUT: Ressource auf Server anlegen oder verändern– DELETE: Löschen von Ressourcen– HEAD: Abfrage von Metadaten über Ressource durch Client– OPTIONS: Abfrage vorhandener Methoden an einer Resource
Web Services erhalten bei neuen Anforderungen immer neue Schnittstellen mit passenden Datentypen und Operationen
![Page 16: 1 Web Services (SOAP, REST, WSDL). © Prof. T. Kudraß, HTWK Leipzig 2 Web Service – Definitionen? Gartner Group: Web services are software technologies,](https://reader034.vdocuments.us/reader034/viewer/2022051515/55204d6649795902118bb74e/html5/thumbnails/16.jpg)
16
© Prof. T. Kudraß, HTWK LeipzigREST: Abgrenzung und Vergleich zu SOAP(3) Hypermedia (Verknüpfung)
– Verknüpfen und Nutzen von Ressourcen untereinander– Eigentliche Verlinkung enthält Inhalt, der Nachricht selbst
repräsentiert– von Ressourcenname zu Prozess …
Standards– HTTP: GET, POST, DELETE, PUT– Datenformate: XML, XHTML, PNG, GIF, JPEG, HTML– MIME-Typen für HTTP undd URIs
Nachrichten– Übertragung in allen gängigen Formaten– Keine speziellen Formate erforderlich– REST-Nachricht selbsterklärend – ohne Wissen über zuvor
versendete oder später zu versendende Nachrichten – Status der Nachricht über den Inhalt (also die Repräsentation) des
Hypertext-Dokuments abgebildet– Ressource durch Browser nutzbar (anders als bei SOAP)
![Page 17: 1 Web Services (SOAP, REST, WSDL). © Prof. T. Kudraß, HTWK Leipzig 2 Web Service – Definitionen? Gartner Group: Web services are software technologies,](https://reader034.vdocuments.us/reader034/viewer/2022051515/55204d6649795902118bb74e/html5/thumbnails/17.jpg)
17
© Prof. T. Kudraß, HTWK Leipzig
WSDL
WSDL = Web Services Definition Language Beschreibt WebServices in XML Notation Funktion wie IDL in Corba (aber nicht nur abstrakte Beschreibung) ist plattform-, protokoll- und programmiersprachenunabhängig Spezifikation unter www.w3.org/TR/wsdl spezifiziert ein Interface zu einem Dienst – nur syntaktische Elemente nicht vorhanden (dafür gibt‘s andere Standards):
– QoS-Informationen (z.B. Kosten, Antwortzeit)– Sicherheitsbestimmungen– semantische Beschreibung (Effekte einer Operation)
besitzt die Dateiendung .wsdl Historie:
– Veröffentlichung von WSDL 1.1 durch im März 2001– WSDL 2.0 veröffentlicht im Juni 2007
![Page 18: 1 Web Services (SOAP, REST, WSDL). © Prof. T. Kudraß, HTWK Leipzig 2 Web Service – Definitionen? Gartner Group: Web services are software technologies,](https://reader034.vdocuments.us/reader034/viewer/2022051515/55204d6649795902118bb74e/html5/thumbnails/18.jpg)
18
© Prof. T. Kudraß, HTWK Leipzig
WSDL WSDL beantwortet die 4 elementaren Fragen:
– Welche Datentypen gibt es?<types/> Element
– Welche Funktionalität besitzt der Dienst?<message/> und <interface/> Element
– Wie wird kommuniziert?<binding/> Element
– Wo befindet sich der Dienst?<service/> Element
![Page 19: 1 Web Services (SOAP, REST, WSDL). © Prof. T. Kudraß, HTWK Leipzig 2 Web Service – Definitionen? Gartner Group: Web services are software technologies,](https://reader034.vdocuments.us/reader034/viewer/2022051515/55204d6649795902118bb74e/html5/thumbnails/19.jpg)
19
© Prof. T. Kudraß, HTWK Leipzig
Elemente in WSDL
Message: Abstrakte Definition der auszutauschenden Daten (typischerweise auf XML-Basis)Operation: Abstrakte Aktionen, die ein Service unterstützt (d.h. Menge von Input und Output Messages)Port Type: Menge von Operationen, ab WSDL 1.2 Interface Binding: Beschreibt Abbildung eines Interfaces auf konkretes Datenübertragungsprotokoll (z.B. SOAP)Endpunkt (Port): Einzelner individueller "Endpunkt" mit konkretem Binding, identifiziert durch eine NetzwerkadresseService: Sammlung zusammengehöriger Endpunkte
![Page 20: 1 Web Services (SOAP, REST, WSDL). © Prof. T. Kudraß, HTWK Leipzig 2 Web Service – Definitionen? Gartner Group: Web services are software technologies,](https://reader034.vdocuments.us/reader034/viewer/2022051515/55204d6649795902118bb74e/html5/thumbnails/20.jpg)
20
© Prof. T. Kudraß, HTWK Leipzig
<?xml version=“1.0“ encoding=“utf-8“ ?>
<definitions ...>
Interface Definition
Interface Implementierung
</definitions> WSDL Dokument
Struktur eines WSDL Files
<types/> Types<message/><interfaces/> Messages / Interfaces<binding/> Bindings
<service/> Service Definition
![Page 21: 1 Web Services (SOAP, REST, WSDL). © Prof. T. Kudraß, HTWK Leipzig 2 Web Service – Definitionen? Gartner Group: Web services are software technologies,](https://reader034.vdocuments.us/reader034/viewer/2022051515/55204d6649795902118bb74e/html5/thumbnails/21.jpg)
21
© Prof. T. Kudraß, HTWK Leipzig
WSDL Welche Datentypen gibt es?
<types>
<schema targetNamespace="http://localhost/SOAPTraining" ...>
<complexType name=“Person">
<sequence>
<element name=“vorname“ type=“xsd:string“ />
<element name=“nachname“ type=“xsd:string“ />
</sequence>
</complexType>
<element name="el0" nillable="true" type="tns1:Person"/>
</schema>
</types>
![Page 22: 1 Web Services (SOAP, REST, WSDL). © Prof. T. Kudraß, HTWK Leipzig 2 Web Service – Definitionen? Gartner Group: Web services are software technologies,](https://reader034.vdocuments.us/reader034/viewer/2022051515/55204d6649795902118bb74e/html5/thumbnails/22.jpg)
22
© Prof. T. Kudraß, HTWK Leipzig
WSDL Welche Funktionalität besitzt der Dienst?
<wsdl:message name="addPersonResponse">
<wsdl:part name="addPersonResult" type="xsd:string"/>
</wsdl:message>
<wsdl:message name="addPersonRequest">
<wsdl:part name="arg0" type="xsd:string"/>
<wsdl:part name="arg1" type="xsd:string"/>
<wsdl:part name="arg2" type="xsd:int"/>
</wsdl:message>
<wsdl:interface name="PersonServiceInterface">
<wsdl:operation name="addPerson">
<wsdl:input message="intf:addPersonRequest"/>
<wsdl:output message="intf:addPersonResponse"/>
</wsdl:operation>
</wsdl:interface>
![Page 23: 1 Web Services (SOAP, REST, WSDL). © Prof. T. Kudraß, HTWK Leipzig 2 Web Service – Definitionen? Gartner Group: Web services are software technologies,](https://reader034.vdocuments.us/reader034/viewer/2022051515/55204d6649795902118bb74e/html5/thumbnails/23.jpg)
23
© Prof. T. Kudraß, HTWK Leipzig
WSDL Wie wird kommuniziert?
<wsdl:binding name="PersonServiceSoapBinding“ type="intf:PersonServiceInterface">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="addPerson">
<soap:operation soapAction="" />
<wsdl:input>
<soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://localhost/SOAPTraining" use="encoded"/>
</wsdl:input>
<wsdl:output>
<soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://localhost/SOAPTraining" use="encoded"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
![Page 24: 1 Web Services (SOAP, REST, WSDL). © Prof. T. Kudraß, HTWK Leipzig 2 Web Service – Definitionen? Gartner Group: Web services are software technologies,](https://reader034.vdocuments.us/reader034/viewer/2022051515/55204d6649795902118bb74e/html5/thumbnails/24.jpg)
24
© Prof. T. Kudraß, HTWK Leipzig
WSDL Wo befindet sich der Dienst?
<wsdl:service name="PersonService">
<wsdl:endpoint name="PersonServiceEP"> binding="intf:PersonServiceSoapBinding">
address="http://localhost:8080/axis/servlet/AxisServlet"/>
</wsdl:service>