24
1 Web Services (SOAP, REST, WSDL)

1 Web Services (SOAP, REST, WSDL). © Prof. T. Kudraß, HTWK Leipzig 2 Web Service – Definitionen? Gartner Group: Web services are software technologies,

Embed Size (px)

Citation preview

Page 1: 1 Web Services (SOAP, REST, WSDL). © Prof. T. Kudraß, HTWK Leipzig 2 Web Service – Definitionen? Gartner Group: Web services are software technologies,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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>