• Keine Ergebnisse gefunden

SOAP EnvelopeSOAP MessageHTTP Message

N/A
N/A
Protected

Academic year: 2022

Aktie "SOAP EnvelopeSOAP MessageHTTP Message"

Copied!
39
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Alfon

Alfon Wenzler Wenzler

Web Services Web Services

und und

Service

Service Oriented Oriented Architectures Architectures

Grundlagen und Vergleich mit bestehenden Grundlagen und Vergleich mit bestehenden

Middlewaretechnologien

Middlewaretechnologien

(2)

Motivation Motivation

» » Service Service Oriented Oriented Architecture Architecture

» » Web Services Web Services

» » Basistechnologien Basistechnologien

» » Web Services vs. CORBA Web Services vs. CORBA

Inhalt und Motivation

Inhalt und Motivation

(3)

Service Oriented Architecture Service Oriented Architecture

Service

Service Oriented Oriented Architectures Architectures

» » Ziele Ziele

» » Service Service Oriented Oriented Model Model

» » Anforderungen an eine SOA Anforderungen an eine SOA

(4)

Service Oriented Architecture Service Oriented Architecture

» » Ziele Ziele

» » Code- Code - Reuse Reuse

• geringerer Entwicklungsaufwand

• getestet, zuverlässig

» » Separation of Concerns Separation of Concerns

• nutzen eines Services ist idR. günstiger als ihn selbst zu implementieren

• Experten

» » Loose Coupling Loose Coupling

• Unterscheidung zwischen

notwendigen und ungewollten Abhängigkeiten

• Minimierung der künstlichen, ungewollten Abhängigkeiten

(5)

Service Oriented Architecture Service Oriented Architecture

» » Service Oriented Model Service Oriented Model

» » Agenten Agenten

• Programme die

einem Besitzer gehören

Services von anderen Agenten anfordern

Services für andere Agenten leisten

» » Aktionen und Nachrichten Aktionen und Nachrichten

• SOA fokussiert Interaktion zwischen Softwareagenten

• Aktion ist Tätigkeit eines Agenten

Senden einer Nachricht

Bearbeiten einer empfangenen Nachricht

Sonstige Tätigkeiten zur Überführung des Systems in den Zielzustand

(6)

Service Oriented Architecture Service Oriented Architecture

» » Service Oriented Model Service Oriented Model

» » Service Service

• Wird von einem Provideragenten für einen Kundenagenten bereitgestellt

• Serviceleistung besteht aus Aktionen

• Über Schnittstellen zur Verfügung gestellt

(7)

Service Oriented Architecture Service Oriented Architecture

» » Anforderungen Anforderungen an eine SOA an eine SOA

» » einfache und allgegenwärtige Schnittstellen einfache und allgegenwärtige Schnittstellen

• generische Schnittstellen

» » deskriptive Nachrichten deskriptive Nachrichten

• Anbieter ist für Lösung des Problems zuständig

» » Format, Struktur und Vokabular Format, Struktur und Vokabular

• begrenztes Vokabular für effizientere Kommunikation

» » Erweiterbarkeit Erweiterbarkeit

» » Mechanismus zum Auffinden von Serviceprovidern Mechanismus zum Auffinden von Serviceprovidern

» » Idempotent Requests Idempotent Requests

• Wiederholte Anfragen müssen selbes Ergebnis wie eine einzelne Anfrage liefern

(8)

Web Services Web Services

Web Services Web Services

» » Das Web Das Web Heute und Morgen Heute und Morgen

» » Beispiele Beispiele

» » Definition Definition

» » Architektur Architektur

(9)

Web Services Web Services

» » Heute Heute

• interaktiver Zugriff auf Dokumente und Applikationen

• Web-Browser, Audioabspielgeräte, Peer2Peer,…

• Human-Centric-Web

• Mensch-Maschine-Kommunikation

» » Morgen Morgen

• Application-Centric-Web

• Maschine-Maschine-Kommunikation

» » Der Weg Der Weg

• Web Services & Semantic Web

• Browser für B2C ⇔ Web Services im B2B

(10)

Web Services Web Services

» » Beispiele Beispiele

» » Komponentendienste Komponentendienste

• Währungsumrechnung

• Kreditkartenüberprüfung

• Börsenkurse

• Frachtverfolgung

• …

» » Zusammengesetzte Dienste Zusammengesetzte Dienste

• Reisebuchung

• Reklamationsbearbeitung

• Workflows

• …

(11)

Web Services Web Services

» » Definition Definition en en

Web Services are a new breed of Web application. The are self-contained, self- describing, modular applications that can be published, located, and invoked across the Web. Web Services perform functions that can be anything from simple requests to complicated business processes. […] Once a Web Service is deployed, other applications (and other Web Services) can discover and invoke the deployed service.

Web Services is a technology and process for discovery and connection.

A web service is a service that is available over the Internet, uses a standardized XML messaging system, and is not tied to any one operating system or

programming language.

(12)

Web Services Web Services

» » Definitionen Definitionen

» » Internet Internet

Stärken des Internets

• Informationsverteiler

• Einfachheit

• Allgegenwärtigkeit

» » XML XML

• Trennung von Struktur, Inhalt und Form

• Erweiterbarkeit, Unabhängigkeit

• XSLT, Xpath, Xquery, Tool-Unterstützung

» » Unabhängigkeit von Unabhängigkeit von

• Programmiersprachen

• Betriebssystemen

(auf Internettechnologien aufbauende Netze)

(13)

Web Services Web Services

» » Definition Definition

» » Modularität Modularität

• aus einzelnen Komponenten zusammengesetzte Dienste

• Vorteile bekannt aus dem Bereich Software Engineering

» » Selbstenthaltend Selbstenthaltend

• keine weiteren Abhängigkeiten

• Transparenz

» » Selbstbeschreibend Selbstbeschreibend

• Beschreibung der Schnittstellen zum Service

Datentypen, Transportprotokolle, Adresse, …

» » Veröffentlichung Veröffentlichung

• Logisch zentrales, verteiltes Verzeichnis

(14)

Web Services Web Services

» » Architektur Architektur Web Service Roles Web Service Roles

(15)

Web Services Web Services

» » Architektur Architektur Web Service Stack Web Service Stack

Discovery UDDI

Description WSDL

XML Messaging SOAP

Transport HTTP, SMTP, FTP

UDDI WSDL

SOAP

HTTP SMTP FTP

(16)

Basistechnologien Basistechnologien

» » SOAP SOAP

Austauschformat für Nachrichten

» » WSDL WSDL

Schnittstellenbeschreibung

» » UDDI UDDI

Web-Service-Verzeichnis

Basistechnologien

Basistechnologien

(17)

Basistechnologien Basistechnologien

» » Überblick Überblick

» » Nachrichten Nachrichten

» » Beispiel Beispiel

SOAP SOAP

(18)

Basistechnologien Basistechnologien

» » SOAP SOAP Überblick Überblick

» » Simple Object Access Protocol SOAP Simple Object Access Protocol SOAP

» » Framework zum Framework zum Informationsaustauch Informationsaustauch

» » XML XML - - basierte basierte , , strukturierte strukturierte und und typisierte typisierte Information Information

» » Envelope Envelope

» » zustandsloses zustandsloses One One - - way Paradigma way Paradigma

» » keine keine Aussagen Aussagen über über

• Semantik

• Routing

• Verlässlichkeit

(19)

Basistechnologien Basistechnologien

» » SOAP SOAP Nachrichen Nachrichen

SOAP Header

SOAP Body

optional

pflicht

SOAP Envelope SOAP Message HTTP Message

Fault Payload

Header Blocks

(20)

Basistechnologien Basistechnologien

HTTP Message SOAP Envelope SOAP Body

HTTP Header POST /perl/soaplite.cgi HTTP/1.0 Host: http://thirdparty.example.org ontent-Type: text/xml; charset=utf-8 SOAPAction: ""

<?xml version='1.0' ?>

<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" >

<env:Header>

</env:Header>

<env:Body>

<m:chargeReservation env:encodingStyle="http://www.w3.org/">

<m:reservation xmlns:m="http://travelcompany.example.org/reservation">

<m:code>

FT35ZBQ

</m:code>

</m:reservation>

<o:creditCard xmlns:o="http://mycompany.example.com/financial">

<n:name xmlns:n="http://mycompany.example.com/employees">

Thomas Mustermann

</n:name>

<o:number>

123456789099999

<o:number>

<o:expiration>

2005-02

</o:expiration>

</o:creditCard>

</m:chargeReservation>

</env:Body>

</env:Envelope>

(21)

Basistechnologien Basistechnologien

» » Überblick Überblick

» » Spezifikation Spezifikation

» » Beispiel Beispiel

WSDL WSDL

(22)

Basistechnologien Basistechnologien

» » WSDL WSDL Überblick Überblick

» » Web Service Description Language Web Service Description Language

» » Plattform Plattform zur zur Beschreibung Beschreibung der der Schnittstelle(n) Schnittstelle(n ) zu zu einem

einem Web Service in Web Service in einer einer XML XML - - Grammatik Grammatik

» » Schnittstellenbeschreibung Schnittstellenbeschreibung beinhaltet beinhaltet

• Schnittstelle zum Service

• Verwendete Datentypen

• Transportprotokolle

• Adressen

» » vergleichbar vergleichbar mit mit Java Interfaces Java Interfaces

(23)

Basistechnologien Basistechnologien

» » WSDL WSDL Spezifikation Spezifikation

<types> What datatypes will be transmitted?

<message> What messages will be transmitted?

<portType> What operations will be supported?

<binding> How will the messages be transmitted?

<service> Where is the service located?

<definitions>

(24)

Basistechnologien Basistechnologien

» » WSDL WSDL Spezifikation Spezifikation

» » <definitions> <definitions>

• WSDL-Wurzelelement

• Name des Web Services

• verwendete Namespaces

» » <types> <types>

• Beschreibung aller verwendeter Datentypen

• Nicht an ein bestimmtes Typensystem gebunden

» » <message> <message>

• Beschreibt eine einfache Nachricht request oder response

• Namen und Parameter bzw. Rückgabewerte

<types> What datatypes will be transmitted?

<message> What messages will be transmitted?

(25)

Basistechnologien Basistechnologien

» » <portType < portType > >

• verbinden <message>-Elemente zu Operationen

• Vier Basis Patterns

one-way, notification, request-response, solicit-response

» » <binding> <binding>

• Bindung an Protokolle zum Nachrichtenaustausch HTTP-PUT, HTTP-POST, SOAP

• Inhalte protokollspezifisch

» » <service> <service>

• Beschreibt Netwerkadressen für den Service

• Gegliedert durch <port>-Elemente

» » WSDL WSDL Spezifikation Spezifikation

<portType> What operations will be supported?

<binding> How will the messages be transmitted?<service> Where is the service located?

(26)

Basistechnologien Basistechnologien

» » WSDL WSDL Beispiel Beispiel

<message>

<definitions>

<?xml version="1.0" encoding="UTF-8"?>

<definitions name="HelloService"

targetNamespace="http://www.wenzler.info/wsdl/HelloService.wsdl"

xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"

xmlns:tns="http://www.wenzler.info/wsdl/HelloService.wsdl"

xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<message name="SayHelloRequest">

<part name="firstName" type="xsd:string" />

</message>

<message name="SayHelloResponse">

<part name="greetings" type="xsd:string" />

</message>

<portType name="Hello_PortType">

<operation name="sayHello">

<input message="tns:SayHelloRequest" />

<output message="tns:SayHelloResponse" />

</operation>

</portType>

<portType>

(27)

Basistechnologien Basistechnologien

» » WSDL WSDL Beispiel Beispiel

<binding><service>

<binding name="Hello_Binding" type="tns:Hello_PortType">

<soap:binding style="rpc"

transport="http://schemas.xmlsoap.org/soap/http" />

<operation name="sayHello">

<soap:operation soapAction="sayHello" />

<input>

<soap:body

encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"

namespace="urn:examples:helloservice"

use="encoded" />

</input>

<output>

<soap:body

encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"

namespace="urn:examples:helloservice"

use="encoded" />

</output>

</operation>

</binding>

<service name="Hello_Service">

<documentation>

WSDL file for HelloService

</documentation>

<port binding="tns:Hello_Binding" name="Hello_Port">

<soap:address

location="http://localhost:8080/soap/servlet/rpcrouter" />

</port>

(28)

Basistechnologien Basistechnologien

» » Überblick Überblick

» » White, White, Yellow Yellow und Green und Green Pages Pages

» » Datenstruktur Datenstruktur

UDDI UDDI

(29)

Basistechnologien Basistechnologien

» » UDDI UDDI Überblick Überblick

» » Universal Description, Discovery and Integration Universal Description, Discovery and Integration

» » Logisch Logisch zentrales, zentrales , verteiltes verteiltes Web Service Verzeichnis Web Service Verzeichnis

» » Veröffentlichen Veröffentlichen und und Auffinden Auffinden von Web Services von Web Services

» » wesentliche wesentliche Funktionen Funktionen der der API API

• publish

• find

• bind

» » UDDI Cloud Services UDDI Cloud Services

(30)

Basistechnologien Basistechnologien

» » UDDI UDDI White, Yellow und Green Pages White, Yellow und Green Pages

White Pages

Yellow Pages

Green Pages

Kontaktinfos 9 Name 9 Anschrift

9 Telefonnummer 9

Wer bin ich?

Klassifikationen 9 Branche

9 Produkt 9 geo. Codes 9

9 Verweis auf externe

Spezifikationen 9 Adressen 9

Was biete ich an? Technische Infos

(31)

Basistechnologien Basistechnologien

» » UDDI UDDI Datenstruktur Datenstruktur

(32)

Web Services vs. CORBA Web Services vs. CORBA

» » Vergleich Vergleich

» » Eigenschaften Eigenschaften

» » Einsatzgebiete Einsatzgebiete

Web Services vs. CORBA

Web Services vs. CORBA

(33)

Web Services vs. CORBA Web Services vs. CORBA

» » Vergleich Vergleich Verarbeitungsmodell Verarbeitungsmodell

» » Datenmodell Datenmodell

• CORBA: enge Kopplung zwischen Client und Server

• WS: entkoppelt

» » Aufruf- Aufruf -Semantik Semantik

• CORBA: Unterstützung der At-most-once Semantik

• WS: protokollabhängig, HTTP nicht unterstützt und erfordert somit einen zustandsorientierten Service

» » Skalierbarkeit Skalierbarkeit

• CORBA: durch Lastbalancierung skalierbar

• WS: wiederum nicht vom Standard unterstützt, somit Aufgabe des Anwendungsservers

(34)

Web Services vs. CORBA Web Services vs. CORBA

» » Vergleich Vergleich Verarbeitungsmodell Verarbeitungsmodell

» » Überprüfungen Überprüfungen zu zu Compile- Compile - oder oder Laufzeit Laufzeit

• CORBA: 2 Arten von Schnittstellen IDL und DII bei IDL statische Überprüfungen möglich,

bei DII nur zur Laufzeit

• WS: zur Zeit keine Unterstützung zur statischen Überprüfung Zukunft evtl. WSDL Anbindungen für Programmiersprachen Laufzeit Wohlgeformtheit des XML

Überprüfung der Validität jedoch feiner

(35)

Web Services vs. CORBA Web Services vs. CORBA

» » Vergleich Vergleich Eigenschaften Eigenschaften

» » Überwindung Überwindung von Firewalls von Firewalls

• CORBA: Herausforderung, da CORBA Firewall Traversal Specification noch nicht unterstützt

• WS: kein Problem

» » Sicherheit Sicherheit

• Authentifizierung, Autorisierung, Verschlüsselung, Datenintegrität

• CORBA: CORBA Security Service

• WS: keine Standardisierung, aber Aufbau auf SSL oder XML-Signaturen möglich

(36)

Web Services vs. CORBA Web Services vs. CORBA

» » Vergleich Vergleich Eigenschaften Eigenschaften

» » Persistenz Persistenz

• CORBA: CORBA Persistent State Services

• WS: keine Standardisierung, Aufgabe Anwendung(sserver)

» » U U nabhä nabh ä ngigkeit ngigkeit

• CORBA und WS sind Plattform- und Programmiersprachen unabhängig

(37)

Web Services vs. CORBA Web Services vs. CORBA

» » Einsatzgebiete Einsatzgebiete

» » Web Interfaces Web Interfaces

• Web Services aufgrund Verknüpfung XML und HTTP

» » Mobile Endger Mobile Endger ä ä te te

• Web Services, sich ändernde Netzwerkadressen

» » Legacy Systeme Legacy Systeme

• CORBA, Schnittstellen existieren bereits

• Web Services mit Hilfe von CORBA-SOAP Gateways

» » Thin Clients Thin Clients

• Minimale Infrastruktur

• CORBA

(38)

Schluß Schluß

» » Service Service Oriented Oriented Architecture Architecture

» » Web Services Web Services

» » Basistechnologien Basistechnologien

» » Web Services vs. CORBA Web Services vs. CORBA

Inhalt und Motivation

Inhalt und Motivation

(39)

Schluß Schluß

Vielen Dank für Ihre Vielen Dank für Ihre

Aufmerksamkeit

Aufmerksamkeit

Referenzen

ÄHNLICHE DOKUMENTE

Some contributions in the first Service-Oriented Architectures and Software Product Lines Conference (SOAPL2007) considered the systematic comparison of the two concepts [12],

Sender noch Empfänger muss präsent sein.  typischerweise

 Weder Sender noch Empfänger müssen während Übertragung präsent sein. 

service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web- related

•  505 HTTP Version Not Supported: The server does not support the HTTP version that was used to make the request. Complete

§ Für den Einsatz von SOAP muss man Parameter, Datentypen, Methodennamen und die Adresse eines Web Services kennen. § Beschreibung eines WS durch die Web Service

ƒ Ports eines Service sollen semantisch äquivalente Alternativen einer abstrakten Schnittstelle

EMPTY: leerer Inhalt, Element kann aber Attribute haben EMPTY!. &lt;!ELEMENT br EMPTY&gt; Î &lt;