• Keine Ergebnisse gefunden

Web Services (SOAP, REST, WSDL)

N/A
N/A
Protected

Academic year: 2022

Aktie "Web Services (SOAP, REST, WSDL)"

Copied!
24
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

1

(SOAP, REST, WSDL)

(2)

2

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)

(3)

3

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

(4)

4

WS-* Universum

WS-* Universum

WS-BPEL

WS-BPEL WS-

Transaction WS-

Transaction WS-Security

WS-Security WS-PolicyWS-Policy

UDDIUDDI ??

(5)

5

Basiskomponenten

Kommunikation

Dienstbeschreibung

Verzeichnisdienst

SOAP 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

(6)

6

Merkmale einer SOA

Lose Kopplung

Dynamisches Binden

Verzeichnisdienst

Verwendung von Standards

Einfachheit

Sicherheit

Komplexe Aspekte

Automatisierung der Kommunikation

Geschäftsprozessmodellierung

Ereignisse

Semantik

(7)

7

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)

(8)

8

Web Services Stack

Network Service Description XML-based

Messaging Service Publication

Service Discovery Service Flow

Security Management Quality of services

HTTP, HTTPS, SMTP … SOAP

WSDL UDDI UDDI, WS-Inspection

WS-BPEL

Components Requirements

(9)

9

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

(10)

10

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

(11)

11

Metapher des

»E-Umschlags«

SOAP ‘document style’

packt XML in Envelope

(12)

12

Hub Sender/

Empfänger

Hub Sender/

Empfänger Vermittlung

Knoten

(13)

13

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)

(14)

14

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)

(15)

15

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

(16)

16

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)

(17)

17

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

(18)

18

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

(19)

19

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

Netzwerkadresse

Service: Sammlung zusammengehöriger Endpunkte

(20)

20

<?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

(21)

21

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>

(22)

22

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>

(23)

23

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>

(24)

24

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>

Referenzen

ÄHNLICHE DOKUMENTE

• =&gt; Session-ID muss in der Interaktion immer zwischen Client und Server ausgetauscht werden. abgeleitet

• no-store: Antwort- oder Anfragemitteilungen dürfen nicht gespeichert werden. • weitere: max-age, max-stale, min-fresh, no-transform, only-if- cached, public,

• =&gt; Session-ID muss in der Interaktion immer zwischen Client und Server ausgetauscht werden.. Session-ID in URLs in Verweisen

&lt;http:address location=&#34;http http:// ://webservices.amazon.com webservices.amazon.com/ /onca

ƒ Nachrichtenformat kann durch Header Blocks erweitert werden, ohne ursprüngliches Format (Body)

ƒ konkrete Nachricht meist XML, kann aber auch beliebig anderes Format

Sequenz von SOAP SOAP- -Nachrichten Nachrichten senden senden Erste SOAP Erste SOAP- -Nachricht Nachricht.

ƒ Beschreibt, wie abstrakte SOAP-Nachrichten in konkrete Nachrichten umgewandelt (serialisiert) werden. ƒ nicht vorgeschrieben, wie eine Protokoll-Bindung