Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt...

69
© K. Schild, 2006/M.Mochol 2007 1 Web Services Web Services

Transcript of Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt...

Page 1: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 1

Web ServicesWeb Services

Page 2: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 2

Block XMLBlock XML

Vorlesungen Vorlesungen –– 6 Termine6 Termine ÜÜbung bung –– 5 Termine5 Termine

XML-Grundlagen einsch. Namenräume

XML-Syntax, Namensräume

DTD & XML-Schema DTD

XML-Schema im Detail XML Schema

SAX & DOM Parser

XSLT XPath, XSLT

XML und Datenbanken XML & Datenabanken

Page 3: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 3

Block Web ServicesBlock Web Services

VorlesungsVorlesungs--termintermin

VorlesungVorlesung

4 + 1 + 1 Termine4 + 1 + 1 TermineÜÜbung bung ––2 Termine2 Termine

06.06.

(heute)

SOAP

WSDL

04.07. Web Services in der Praxis & Ausblick

11.07. Rückblick

+ (14:00-16:00) Sprechstunde vor der Klausur, Fabeckstr. 15

20.06.

27.06.

18.07.

ÜÜbungsbungs--termintermin

Web Services, RPCs vs. Messaging

SOAP im Detail 25./26.06

WSDL im Detail 02./03.07

Klausur

Page 4: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 4

Block Wiederholung + KlausurBlock Wiederholung + Klausur

VorlesungsVorlesungs--termintermin

VorlesungVorlesung

4 + 1 + 1 Termine4 + 1 + 1 TermineÜÜbung bung ––2 Termine2 Termine

06.06.

(heute)

SOAP

WSDL

04.07. Web Services in der Praxis & Ausblick

11.07. Rückblick

+ (14:00-16:00) Sprechstunde vor der Klausur, Fabeckstr. 15

20.06.

27.06.

18.07.

ÜÜbungsbungs--termintermin

Web Services, RPCs vs. Messaging

SOAP im Detail 25./26.06

WSDL im Detail 02./03.07

Klausur

Page 5: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 5

Block Web ServicesBlock Web Services

heutige Vorlesungheutige Vorlesung

Was sind Web Services?

Web Services – Basistechnologien:

SOAP

WSDL

UDDI

Enterprise Application Integration

Dienstorientierte Architektur (SOA)

RPC vs. Messaging

Page 6: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 6

Was sind Web Was sind Web Services?Services?

Page 7: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 7

EntwicklungEntwicklung

EmailEmail: Mensch-Mensch-KommunikationVersendung von uninterpretiertem Text

WWWWWW: Mensch-Computer-KommunikationMensch – aktive: konsumiert & gibt an, was er als nächstes lesen möchte. der Computer – passiv

Web ServiceWeb Service: Computer-Computer-KommunikationComputer erbringt für einen anderen eine Dienstleistung

Page 8: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 8

Was sind Web Services?Was sind Web Services?

Browser

Anwendung

traditionelle Webtraditionelle Web--AnwendungAnwendung

AnwendungAnwendung

Web ServiceWeb Service

HTML

SOAP

Webseiten

Daten

Mensch-Maschine-Kommunikation

Maschine-Maschine-Kommunikation

Page 9: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 9

Beispiel:Beispiel: ohne Browser ohne Browser

Google als Web ServiceGoogle als Web Service

Suche

Rechtschreibkorrektur

Zugriff auf Web-Cache

»»WithWith Google Web Google Web APIsAPIs, , youryour computercomputer cancan do do thethe

searchingsearching forfor youyou..««

Suche als Web ServiceSuche als Web Service

Suchanfrage als SOAP-Nachricht

Suchergebnis als SOAP-Nachricht

http://www.google.com/apis/

Page 10: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 10

-- Suche ohne Browser Suche ohne Browser

Google-Suche kann aus Anwendungsprogrammheraus aufgerufen werden

mmöögliche Anwendungengliche Anwendungen

in periodischen Abständen zu bestimmten Thema nach neuen Webseiten zu suchen:

Web Alert

search-for: "XSLT 2.0 Recommendation"

notify new web page: [email protected]

automatisch neue Trends im WWW zu identifizieren

Page 11: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 11

DefinitionDefinition

Ein Web ServiceWeb Service ist eine Softwareanwendung, die 1. mit einer URIURI eindeutig identifizierbar ist,2. über eine WSDLWSDL-Schnittstellenbeschreibung verfügt,3. nur über die in ihrer WSDL beschriebenen Methoden

zugreifbar ist und4. über ggäängige Internetngige Internet--ProtokolleProtokolle unter Benutzung von

XML-basierten Nachrichtenformaten wie z.B. SOAPSOAPzugreifbar ist.

Web-Dienst

Inhalt: SOAP Schnittstellenbeschreibung mit WSDL

Funktionalität

Transport: HTTP(S), SMTP, FTP

Server

Client

Page 12: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 12

Eigenschaften von Web ServicesEigenschaften von Web Services

implementieren häufig keine neuen Systeme, sondern sind FassadeFassade für bestehende Systeme

abstrahieren von Programmiersprache und Plattform mit der die Anwendung realisiert ist:Virtualisierung von SoftwareVirtualisierung von Software

zwei Erscheinungsformen:

-- RPCsRPCs (synchron) (synchron)

-- MessagingMessaging (asynchron)(asynchron)

Page 13: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 13

Alter Wein in neuen SchlAlter Wein in neuen Schlääuchen?uchen?

Web Services keine revolutionär neue Technologie

große Ähnlichkeiten mit CORBA

Neu ist jedoch:Neu ist jedoch:

alle bedeutenden IT-Unternehmen auf Standards geeinigt: XML, SOAP und WSDL

CORBA hingegen nie von Microsoft unterstützt

AuAußßerdem neu:erdem neu:

statt proprietäre Protokolle (wie IIOP und DCOM) gängige Internet-Protokolle

nicht nur RPCs, sondern auch Messaging

Page 14: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 14

ProtokolleProtokolle

Layer Protokoll/Standards

Messaging HTML,…

Transport HTTP, FTP, SMTP

Network TCP/IP, UDP

Die Protokolle und Standards aller Layer nur in AuswahlQuelle: http://www.aki-dpg.de/Dokumente/Bad_Honnef_2003/webservicestutorial.pdf

Page 15: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 15

XMLXML--gekapseltegekapselte ProtokolleProtokolle

Layer Protokoll/Standards

Content Content Information

Messaging SOAP, XML-RPC

Transport HTTP, FTP, SMPT

Network TCP/IP, UDP

Die Protokolle und Standards aller Layer nur in AuswahlQuelle: http://www.aki-dpg.de/Dokumente/Bad_Honnef_2003/webservicestutorial.pdf

Page 16: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 16

Web Service Technology Web Service Technology StackStack

Layer Protokoll/Standards

Discovery UDDI, DISCO, WSIL

Description WSDL, RDF

Messaging SOAP, XML-RPC

Transport HTTP, FTP, SMPT

Network TCP/IP, UDP

Die Protokolle und Standards aller Layer nur in AuswahlQuelle: http://www.aki-dpg.de/Dokumente/Bad_Honnef_2003/webservicestutorial.pdf

Page 17: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 17

Web Services WellenWeb Services Wellen

WeiterführendeSpezifikation:

UDDI, WS-Security

BasisspezifikationWSDL, SOAP

Semantische Spezifikationen:

OWL, RDF

SemanticWeb Services (?)

Page 18: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 18

Web Service Web Service Basiskomponenten: Basiskomponenten:

SOAPSOAP

Page 19: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 19

Austausch einer Austausch einer SOAPSOAP--NachrichtNachricht

Sender Empfänger

Information InformationNachricht

verpacken(serialisieren) auspacken

(deserialisieren)

Page 20: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 20

Aufbau einer Aufbau einer SOAPSOAP--NachrichtNachricht

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

<!- SOAP Header -->

<!- SOAP Body -->

</env:Envelope>

SOAP Envelope

SOAP Header

SOAP Body

SOAP Version 1.1:http://schemas.xmlsoap.org/soap/envelope/

SOAP Version 1.2

Page 21: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 21

Nachrichtenformat SOAPNachrichtenformat SOAP

<Envelope> <Header>

Zusatzinformationen</Header> <Body>

Inhalt: XML-Daten</Body>

</Envelope>

<html> <head>

Zusatzinformationen</head>

<body>Inhalt: Webseite

</body> </html>

XML-basierter W3C-Standard

- SOAP 1.1: W3C Note von 2000

- SOAP 1.2: W3C Recommendation von 2003

seit SOAP 1.2: SOAP ≠ Simple Object Access

HTML SOAP

Page 22: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 22

Eine Eine SOAPSOAP--AnfrageAnfrage anan

<?xml version='1.0' encoding='UTF-8'?><env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:xsd="..." xmlns:xsi="…"><env:Body>

<doGoogleSearch xmlns="urn:GoogleSearch"><key xsi:type="xsd:string">3289754870548097</key><q xsi:type="xsd:string">Eine Anfrage</q> <start xsi:type="xsd:int">0</start><maxResults xsi:type="xsd:int">10</maxResults>

…</doGoogleSearch>

</env:Body></env:Envelope>

doGoogleSearch(key, q, start, maxResults,...)hier kein HeaderBeachte: Web Service-Aufruf kann als URL kodiert werden (REST)

Page 23: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 23

Und die Antwort vonUnd die Antwort von

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

xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"xmlns:xsd="..." xmlns:xsi="…">

<env:Body><ns1:doGoogleSearchResponse xmlns:ns1="urn:GoogleSearch" …>

<return xsi:type="ns1:GoogleSearchResult">…

</return></ns1:doGoogleSearchResponse>

</env:Body></env:Envelope>

Antwort: doGoogleSearchResponse(return(…))Datentyp ns1:GoogleSearchResult in WSDL-Beschreibung definiert

Page 24: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 24

REREpresentationalpresentational SState tate TTransferransfer

kein Protokoll sondern ein Architekturstil

Verwaltet beliebige Menge von Ressourcen

RESTfulRESTful eine Anwendung konform zum REST-Architekturstil

• Amazon – der populärster Anbieter einer REST-Anwendung

Google bietet solche REST-Schnittstelle NICHT an

Page 25: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 25

http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&

AWSAccessKeyId=[ID]&Operation=ItemSearch&SearchIndex=Books&

Title=Harry%20Potter

REST bei REST bei AmazonAmazon

Ausschnitt der Antwort des Amazon Servers

Page 26: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 26

ÜÜbertragung von bertragung von SOAPSOAP--NachrichtenNachrichten

heute meist über HTTP oder HTTPS

Request-Response-Verhalten von HTTP unterstützt entfernte Prozeduraufrufe (RPCs).

mit HTTP auch RPCs über eine Firewall hinweg

Übertragung aber auch z.B. mit SMTP (Messaging) möglich

Page 27: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 27

Web Service Web Service Basiskomponenten: Basiskomponenten:

WSDLWSDL

Page 28: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 28

WWeb eb SServices ervices DDescriptionescription LLanguageanguage

beschreibt Interface (IDL)

XML-basierter Standard

W3C Note von 2001

abstrakte Schnittstelleabstrakte Schnittstelle (portport typetype)

Schnittstelle unabhängig von Nachrichtenformaten

Beschreibung mit XML-Schema

konkrete Schnittstellekonkrete Schnittstelle (bindingbinding)

Abbildung der abstrakten Schnittstelle auf unterstützte Nachrichtenformate

Servicebeschreibung

abstrakte Schnittstelle

Operation

Anfrage

Antwort

konkrete Schnittstelle

Operation

SOAP-Anfrage

SOAP-Antwort

Web-Adressen (EndEnd PointsPoints)

Page 29: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 29

WSDL-Beschreibung von

Web-Adresse

abstrakte Syntax

konkrete Manifestation in SOAP

Page 30: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 30

Eigenschaften von WSDL

beschreibt Schnittstelle(n) eines Web Services und wo dieser abgerufen werden kann

baut auf XML-Schema auf

Syntax einer Schnittstelle kann bis ins kleinste Detail festgelegt werden.

Grundlegende Interaktionsmuster (wie Anfrage-Antwort) können beschrieben werden.

Semantische Eigenschaften können nicht beschrieben werden:

- Funktionalität- Verfügbarkeit- etc.

Page 31: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 31

Web Service Web Service Basiskomponenten: Basiskomponenten:

UDDIUDDI

Page 32: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 32

UDDI

Universal (Service) Description, Discovery, and Integration

entwickelt seit Herbst 2000 von Ariba, Microsoft& IBM

beschreibt einen Verzeichnisdienst für Web Services

ein SOAP basierter Dienst

Page 33: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 33

UDDI Komponenten

UDDI-XML-SchemaBusiness-EntityBusiness-Service Binding-TemplateTechnisch Modelle (TModel)

UDDI-APIAnwendungsschnittstelle in Form von Web Services

Page 34: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 34

UDDI vs. WS-Inspection

UDDI WS-Inspection

Anbieter

Anbieter

Anbieter

Nutzer

suchen

suchen

suchenUDDI Verzeichnis

suchen

Nutzer

Anbieter

veröffentlichen

AnbieterAnbieter

Page 35: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 35

Enterprise Enterprise ApplicationApplicationIntegrationIntegration

Page 36: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 36

EEnterprise nterprise AApplicationpplication IIntegrationntegration

technologischtechnologisch: inkompatible IT-Systeme miteinander verbinden

inkompatibelinkompatibel kann bedeuten: - unterschiedliche Betriebssysteme- unterschiedliche Programmiersprachen- unterschiedliche Kommunikationsprotokolle

organisatorischorganisatorisch: Geschäftsprozesse optimieren

Beispiel:

SAP-HR-Modul (Kompetenzen der

Mitarbeiter)

Wissensmanagment-Portal (Skill

Management)??

Page 37: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 37

Zwang zur SystemintegrationZwang zur Systemintegration

unternehmensinternunternehmensintern

Beispiel Mercedes-Benz-Werk

- mehr als 200 EDV-Systeme

- sehr gut vernetzt (LAN)

- Systeme also prinzipiell integrierbar

Neue Systeme müssen Alt-Systeme integrieren.

unternehmensunternehmensüübergreifendbergreifend

E-Business setzt Zusammenarbeit von heterogenen Systemen voraus:

- Unternehmen Unternehmen

- Unternehmen Portal

Page 38: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 38

Bedeutung der SystemintegrationBedeutung der Systemintegration

Systemintegration bindet

35%35% der IT-Personal-Ressourcen eines Unternehmens (Forrester Research, 2002)

65%65% der Arbeitszeit eines Programmierers (Gartner)

Page 39: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 39

EEnterprise nterprise RResource esource PPlanninglanning

sehr teuer:

> 53.000 $ (TCO) pro Nutzer für ersten 2 Jahre (Meta Group, 2002)

viele Datensilos durch ein großes Datensilo ersetzt:

schwierige Integration externer Systeme

Lager

Inventarisierung

Logistik

Buchführung

Produktion

Auftragseingang

Personalwesen

Datenbank

Beispiel: SAP/R3

großer Fortschritt für Datenintegration

E-Commerce ??

Page 40: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 40

Systemintegration mit Web ServicesSystemintegration mit Web Services

Anwendungssysteme durch standardisierte Schnittstelle erweitern

Anwendungs-system

Schnittstelle muss allgemein akzeptiert sein

bei Web Services ist dies der Fall

SOAPWSDLInternet-Protokolle

bei n Systemen: statt n2 Schnittstellen nur n Erweiterungen!

Anwendungs-system

Page 41: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 41

Dienstorientierte Dienstorientierte ArchitekturArchitektur

Page 42: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 42

Dienstorientierte ArchitekturDienstorientierte Architektur

engl. serviceservice--orientedoriented architecturearchitecture, kurz SOASOA

statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren:

neue Anwendungen von Anfang an auf existierenden Web Services aufbauen

neue Anwendung wiederum als Web Service anbieten

„… eine Systemarchitektur, die vielfältige, verschiedene und eventuell inkompatible Methoden oder Applikationen als wiederverwendbare und offen zugreifbare Dienste repräsentiert und dadurch eine plattform- und sprachunabhängige Nutzung und Wiederverwendung ermöglicht.“*

*Quelle: „ Service-orientierte Architekturen mit Web Services: Konzepte – Standards – Praxis“, W. Dostal, M. Jeckle, I. Melzer, B. Zengler; Spektrum Akademischer Verlag, 2005

Page 43: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 43

SOA TempelSOA Tempel

StandardsSicherheit

Einfachheit

Ver

teil

thei

t

Los

e K

opp

lun

g

Ver

zeic

hn

isd

ien

st

Pro

zess

orie

nti

ert

Service-orientierteArchitektur

Page 44: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 44

BeispielBeispiel

konsequente Realisierung einer diensteorientiertenArchitektur:

Beispiele für (interne) Web Services:

Webseite generieren

Kaufempfehlungen generieren

,,Käufer, die diesen Artikel gekauft haben, haben auch folgende Artikel gekauft…“

Angebote anderer Anbieter

If you hit the Amazon.com gateway page, the application calls more than 100 services to collect data and construct the page for you (Werner Vogels, CTO

von Amazon)

Page 45: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 45

Vorteile aus Sicht von Vorteile aus Sicht von AmazonAmazon

komplexe Anwendung aus relativ einfachen Web Servicen aufbauen

aus komplexer Anwendung wiederum einfachen Web Service machen

verteilte, skalierbare, robuste Architektur

bestimmte Gruppe für Entwicklung und Betrieb eines Web Services verantwortlich

Page 46: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 46

Dienstorientierte ArchitekturDienstorientierte Architektur

publizierenpublizieren (publishpublish): Beschreibung eines Dienstes in einem Verzeichnis (registry) veröffentlichen.

suchensuchen (findfind): Beschreibung eines Dienstes suchen, entweder dynamisch oder zur Entwicklungszeit

abrufenabrufen (bindbind): Beschreibung des Dienstes verwenden, um Dienst abzurufen, entweder dynamisch oder zur Entwicklungszeit

Anbieter Nutzer

Verzeichnis

2. Dienst suchen

1. Dienst publizieren

4. Abfrage der Beschreibung

3. Verweis auf Dienst

5. Dienst benutzen

0. Dienst implementieren

Page 47: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 47

StandardsStandards

SOAP und WSDL allgemein akzeptiert

UDDI: Standard zur Beschreibung von Web-Service-Verzeichnissen

UDDI umstritten und wenig genutzt

Anbieter Nachfrager

öffentliches Verzeichnis

WSDL-Beschreibung

WSDL-Beschreibung

SOAP-Nachrichten

UDDI*

Page 48: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 48

Anbieter

Nachfrager vs. Anbieter von DienstenNachfrager vs. Anbieter von Diensten

Nachfrager

ruft Dienst ab

DienstDienst--AnbieterAnbieter (service provider) bietet Dienste an.

DienstDienst--NachfragerNachfrager (service requestor) nutzt Dienste anderer Anbieter.

Anbieter von Diensten kann gleichzeitig Dienste anderer nutzen (und Nachfrager) sein.

Diese Begriffe sind relativ.

Anbieter/Nachfrager

Anbieter

ruft Dienst ab

Page 49: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 49

ÖÖffentliches Verzeichnisffentliches Verzeichnis

Nachfrager Anbieter

Schnittstelle Dienst publizieren

Dienst abrufen

Öffentliches Verzeichnis nicht zwingend notwendig:

Auch ohne öffentliches Verzeichnis kann Dienst gefunden werden.

Schnittstelle kann z.B. auf Webseite des Anbieters veröffentlicht werden.

öffentliche Verzeichnisse heute wenig genutzt

Page 50: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 50

SOA: VorSOA: Vor-- und Nachteileund Nachteile

ohne dass Nutzer des Web Services es bemerkt, kann

+ neue Version freigeschaltet werden

+ bei Ausfall ein Web Service durch einen anderen Web Service mit gleicher Schnittstelle ersetzt werden

+ Lastverteilung durchgeführt werden

allerdings

- Vertrauen nötig, dass Web-Service-Anbieter WSDL-Beschreibung im Sinne des Nutzers realisiert

Page 51: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 51

RPC vs. RPC vs. MessagingMessaging

Page 52: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 52

Wie Wie SOAPSOAP--NachrichtenNachrichten üübertragen?bertragen?

üüber HTTPber HTTP

heute üblich

Request-Response-Verhalten von HTTP unterstützt RPCRPCs.

verbindungsorientiert

Übertragung: Sender und Empfänger müssen präsent sein.

typischerweise synchron

üüber SMTPber SMTP

heute eher selten

realisiert MessagingMessaging

persistenteKommunikation

Übertragung: Weder Sender noch Empfänger muss präsent sein.

typischerweise asynchron

erlaubt Lastverteilung und Priorisierung

weitreichende Designentscheidung!

Page 53: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 53

WeitreichendeWeitreichende DesignentscheidungDesignentscheidung

enge Kopplungenge Kopplung

verbindungs-orientierte, synchrone Kommunikation

z.B. SOAP/HTTP

lose Kopplunglose Kopplung

gepufferte, asynchrone Kommunikation

z.B. SOAP/SMTP

robuster, aber auch komplexer zu entwerfen

Page 54: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 54

RPC mit SOAPRPC mit SOAP

Nachrichten konform:zu einer vordefinierten Beschreibung des Funktionsaufrufeszu der zu erwartenden Rückantwort

Arten der Kommunikation: Anfrage (Request)Antwort (Response)Fehlerfall (Fault)

Page 55: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 55

KomplexitKomplexitäät loser Kopplungt loser Kopplung

asynchroner Nachrichtenaustauschasynchroner Nachrichtenaustausch

auch nach Timeout Antwort noch möglich

Was tun mit der Antwort?

häufig muss Absender informiert werden, dass Antwort nicht verarbeitet werden konnte

Was tun, wenn diese Warnung nicht rechtzeitig beim Absender ankommt?

Absender hat vielleicht im falschen Glauben, dass seine Antwort verarbeitet wurde, weitergearbeitet.

Dieser Vorgang muss dann evtl. rückgängig gemacht werden.

Page 56: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 56

BeispielBeispiel

10.000 €abbuchen!

Timeout: Transaktion fehlgeschlagen

Abbuchung möglich

5.000 €abbuchen!

Abbuchung nicht möglich

A

C

B

Komplexität ist Preis für die gewonnene Robustheit

Page 57: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 57

MessagingMessaging

Anwendungen interagieren durch Austausch von Nachrichten miteinander:

Kommunikation in Anwendung sichtbar: senden und empfangen

Unterschied zu RPCs

verschiedene Formen des Messaging:

1. Kommunikationsstruktur

2. Interaktionsmuster

3. flüchtig vs. persistent

4. synchron vs. asynchron

5. Quality of Service

Page 58: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 58

1. Kommunikationsstruktur1. Kommunikationsstruktur

Anzahl und Organisation der Kommunikationspartner

wichtigste Kommunikationsstrukturen:

- One-to-One-Kommunikation

- One-to-Many-Kommunikation

Page 59: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 59

OneOne--toto--OneOne--KommunikationKommunikation

Sender sendet Nachricht an bestimmten Empfänger.

Beispiel: Kunde sendet Bestellung per E-Mail an Firma

Sender Empfänger

Page 60: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 60

OneOne--toto--ManyMany--KommunikationKommunikation

Sender sendet identische Kopie gleichzeitig an mehrere Empfänger.

Sender (publisher) veröffentlicht Nachricht zu bestimmten Thema (topic), zu dem sich die Empfänger (subscriber) angemeldet haben.

auch publishpublish--subscribesubscribe oder topictopic--basedbased messagingmessaginggenannt

Beispiel: Mailing-Liste

SenderEmpfänger

EmpfängerEmpfänger

Empfänger

Page 61: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 61

2. Interaktionsmuster2. Interaktionsmuster

EinwegEinweg (one way, fireand forget)Client Server

Client Server

Client Server

Client Server

AnfrageAnfrage--AntwortAntwort(request-response)

BenachrichtigungBenachrichtigung(notification)

BenachrichtigungBenachrichtigung--AntwortAntwort(notification-response)

Beachte: „Antwort“ bezieht sich auf jeweilige Anwendung, nicht auf das Netzwerk.

Page 62: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 62

Komplexe InteraktionsmusterKomplexe Interaktionsmuster

Bestellanfrage mit spätestem Liefertermin

Angebot mit zugesichertem Liefertermin

Bestellung

Bestätigung des Eingangs der Bestellung

Bestätigung der Lieferung

Rechnung

ClientClient ServerServer

Bestellvorgang

Page 63: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 63

3. Flüchtig vs. persistent

flflüüchtige Kommunikationchtige Kommunikation

Sender und Empfänger kommunizieren direkt ohne Puffer miteinander.

Sender und Empfänger müssen während der gesamten Übertragung präsent sein

engl. transienttransient

Beispiele: HTTP, UDP

Sender Empfänger

Netzwerkgrenze

Page 64: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 64

Flüchtig vs. persistent

persistentepersistente KommunikationKommunikation

Nachricht solange gespeichert, bis sie tatsächlich zugestellt wurde.

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

Beispiele: E-Mail, MQSeries (IBM), JMS

NetzwerkgrenzeSender Empfänger

Kommunikations-server

Kommunikations-server

Page 65: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 65

4. Synchron vs. Asynchron4. Synchron vs. Asynchron

AsynchronAsynchronSenden und Empfangen zeitlich versetztohne Blockieren des Prozesses (ohne Warten auf die Antwort)

SynchronSynchronSenden/Empfangen synchronisieren warten (blockieren) bis die Kommunikation abgeschlossen ist.

bei persistenterpersistenter KommunikationKommunikation Messagingnormalerweise asynchron

bei flflüüchtiger Kommunikationchtiger Kommunikation Messaging kann sowohl synchron als auch asynchron sein.

Page 66: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 66

Beispiel 1Beispiel 1

flüchtige, synchrone Kommunikation

auch antwortorientiertantwortorientiert (response-based) genannt

implementiert synchrone RPCs

jedoch ≠ RPC: Kommunikation für Anwendung sichtbar

A

B

Anfrage(request)

Antwort(reply)

A verschickt Anfrage A wartet auf

Antwort

B verarbeitet Anfrage

B läuft, verarbeitet noch nicht die Anfrage

Page 67: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 67

Beispiel 2Beispiel 2

flüchtige, asynchrone Kommunikation

auch bestbestäätigungsorientierttigungsorientiert (delivery-based) genannt

implementiert asynchrone RPCs

jedoch ≠ RPC: Kommunikation für Anwendung sichtbar

A

B

Anfrage(request)

Bestätigung (accept)

A verschickt Anfrage A wartet auf

Bestätigung

B verarbeitet Anfrage

B läuft, verarbeitet noch nicht die Anfrage

Antwort(call back)

Page 68: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 68

RPC oder RPC oder MessagingMessaging? ?

RPCRPC

+ einfach, abstrahiert von Kommunikation

- nur Eins-zu-Eins-Kommunikation

- Client und Server müssen präsent sein.

- skaliert weniger gut

MessagingMessaging

- abstrahiert nicht von Kommunikation

+ erlaubt auch One-to-Many-Kommunikation

+ Weder Sender noch Empfänger müssen präsent sein.

+ erlaubt Priorisierung und Lastverteilung

+ skaliert sehr gut

lose gekoppelte, robuste Systeme

eng gekoppelte, starre Systeme

Page 69: Web Services - News · 2018. 3. 4. · engl. service-oriented architecture,kurz SOA statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren: neue Anwendungen von

© K. Schild, 2006/M.Mochol 2007 69

Block Web ServicesBlock Web Services

heutige Vorlesungheutige Vorlesung

Was sind Web Services?

Basistechnologien (SOAP, WSDL, UDDI)

Enterprise Application Integration

Dienstorientierte Architektur (SOA)

RPC vs. Messaging

nnäächste Vorlesung (20.06) chste Vorlesung (20.06)

SOAP im DetailNächste Woche

Keine VorlesungKeine Übung