dienstorientierte integration von komponenten

70
KIT – Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft INFORMATIONSINTEGRATION UND WEBPORTALE www.kit.edu KIT – Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft INFORMATIONSINTEGRATION UND WEBPORTALE www.kit.edu KIT – Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft INFORMATIONSINTEGRATION UND WEBPORTALE www.kit.edu Klick-And-Bau Informationsintegration und Webportale INFORMATIONSINTEGRATION UND WEBPORTALE Vorlesung # 10, 27.01.2014 : Dienstorientierte Integration Dr. Andreas Walter von Komponenten

Upload: andreas-walter

Post on 30-Apr-2015

199 views

Category:

Education


0 download

DESCRIPTION

Vorlesung Dienstorientierte Integration von Komponenten, Vorlesung IIWP Informationsintegration und Webportale, KIT Universität Karlsruhe. Dr. Andreas Walter

TRANSCRIPT

Page 1: Dienstorientierte Integration von Komponenten

KIT – Universität des Landes Baden-Württemberg undnationales Forschungszentrum in der Helmholtz-Gemeinschaft

INFORMATIONSINTEGRATION UND WEBPORTALE

www.kit.eduKIT – Universität des Landes Baden-Württemberg undnationales Forschungszentrum in der Helmholtz-Gemeinschaft

INFORMATIONSINTEGRATION UND WEBPORTALE

www.kit.eduKIT – Universität des Landes Baden-Württemberg undnationales Forschungszentrum in der Helmholtz-Gemeinschaft

INFORMATIONSINTEGRATION UND WEBPORTALE

www.kit.edu

Klick-And-BauInformationsintegration und Webportale

INFORMATIONSINTEGRATION UND WEBPORTALE

Vorlesung # 10, 27.01.2014 : Dienstorientierte Integration Dr. Andreas Walter von Komponenten

Page 2: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

2

Motivation

Komponentensicht auf klick-und-bau: Komponenten als Dienste

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Anbieter 1: OBI

Waren-verwaltung

Bestell-system

Anbieter 2: Hornbach

Waren-verwaltung

Bestell-system

Anbieter 3: Praktiker

Waren-verwaltung

Bestell-system

Anbieter 3: Hagebau

Waren-verwaltung

Bestell-system

DoY

ou

Goo

gle+

Fac

eboo

kTw

itter

VIS

AP

aypal

MasterC

ardM

aestro

Klick-und- bau.com

Waren-verwaltung

Bestell-system

Kunden-verwaltung

Bezahl-system

Such-maschine

Content-Management

Webseiten-verwaltung

Bezahl-dienste

Social NetworkDienste

Dienstanbieter für Inhalte

Interne Dienste

Page 3: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

3

Inhalt

Motivation

Integrationsebenen

Generelle Integration von Komponenten als DiensteSOAP basierende Webservices

SOAP, WSDL, UDDI

Erstellung von WSDL: bottom up vs. Top down

Umsetzung / Integration in klick-and-bau.com mit Web-Services

REST – vereinfachte Erstellung von Diensten

Mashups: Integration auf Präsentationsebene

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Page 4: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

4

INTEGRATIONSEBENEN

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Page 5: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

5

Integrationsebenen: technische Ebene

Technische Ebene

Anwendungslogikebene

Prozeßebene

Präsentationsebene

Netzwerkprotokolle, RPC, OSSyntax, Datenbanktreiber

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Informationsebene

Page 6: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

6

Technische Ebene – Sichtweise und Probleme

Sichtweise:• Tatsächliche Verbindung zu einem System• Spezielle Eigenschaften von Hardware, Betriebssystem• Eigenschaften von Treibern, auch z.b. für Datenbankverbindung

Probleme (in umfangreichen System)• Viele spezifischen Details, große Heterogenität• Hoher Wartungsaufwand (z.b. Sicherheitsupdates)• Wenig Wiederverwendbarkeit (falls z.b. 4 Systeme mit 4 versch. OS)• Wenig bis kein Anwendungsbezug („nur die Datenbank an sich“)

Prof. Max Mustermann - Präsentationstitel11.04.2023

Page 7: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

7

Integrationsebenen: Informationsebene

Technische Ebene

Informationsebene

Anwendungslogikebene

Prozeßebene

Präsentationsebene

Netzwerkprotokolle, RPC, OSSyntax, Datenbanktreiber

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten11.04.2023

InformationsquellenDatenmodell, Schema, Semantik der Inhalte

Page 8: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

8

Informationsebene – Sichtweise und Probleme

Sichtweise:• Tatsächliche Verbindung zu einer Datenquelle, z.b. SQL Datenbank• Spezielle Eigenschaften von Datenbanksystem, z.b. SQL standard• Eigenschaften von Datenkommunikation (Verbindungsaufbau,

ORM, ...)

Probleme (in umfangreichen System)• Viele spezifischen Details, große Heterogenität• Viel Anpassungsaufwand (z.b. ETL für Daten versch. Quellen) bzw. Bei

Änderung von Schema / Attribute durch Betreiber• Wenig Anwendungsbezug („nur die Daten an sich“)

Prof. Max Mustermann - Präsentationstitel11.04.2023

Anbieter 1: OBI

Waren-verwaltung

Bestell-system

Anbieter 2: Hornbach

Waren-verwaltung

Bestell-system

Anbieter 3: Praktiker

Waren-verwaltung

Bestell-system

Page 9: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

9

Integrationsebenen: Anwendungslogik

Technische Ebene

Informationsebene

Anwendungslogikebene

Prozeßebene

Präsentationsebene

Netzwerkprotokolle, RPC, OSSyntax, Datenbanktreiber

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten11.04.2023

InformationsquellenDatenmodell, Schema, Semantik der Inhalte

AnwendungsentwicklungKlassen, Objekte, Schnittstellen, Methoden

ProzessebeneOrchestrierung von Anwendung

Page 10: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

10

Anwendungsebene

Sichtweise:• Klassen und Objekte: enthalten Daten & Logik der Anwendung• Schnittstellen und Methoden: Kapseln bestimmte Logik, z.B. Zur

Anfrage von Warendaten

Prozesse:• Kontroller: Orchestrieren Aufrufe von Methoden.

Beispiel: ladeWaren aller Anbieter, erstelleGesamtliste

=> Ziel in verteilter Anwendung: Komponenten als Schnittstellen

Prof. Max Mustermann - Präsentationstitel11.04.2023

Interface1: Methoden

Waren-verwaltung

Bestell-system

Interface2: Methoden

Waren-verwaltung

Bestell-system

Interface3: Methoden

Waren-verwaltung

Bestell-system

Page 11: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

11 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Komponenten als Schnittstellen

Verdecken unterliegende Datenquellen und Systeme: löst Problem der Heterogenität von z.b. Datenbanksystemen

Schnittstelle kann durch mehrere Systeme intern realisiert werden:löst Problem der Skalierbarkeit („System wächst mit Anforderungen“)

Beispiel: Clouddienste, Google App Engine (Software as a Service)

Datenquelle kann durch unterschiedliche Systeme realisiert werden:verdeckt Problem unterschiedlicher SQL Anfragen

Schnittstelle liefert Objekte statt relationaler Datenverdeckt ORM Probleme, wird direkt in Komponente implementiert

27.01.2014

Page 12: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

12

GENERELLE INTEGRATION VON KOMPONENTEN ALS DIENSTE

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Page 13: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

13

Denken in Diensten

Übertragung der Dienstleistungsorientierung in der internen (und externen) Unternehmensorganisation auf dieIT-Infrastruktur

Einzelne Komponenten erbringen Dienste

Wichtig: Dienstschnittstelle als Vertragwelche Dienste / Methoden werden angeboten?

wie kann man sie in Anspruch nehmen?

Zusätzlich: Wie kann man Dienste finden?

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Page 14: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

14

Denken in Diensten (2)

Konsequente Trennung zwischen

Schnittstellenach außen veröffentlicht

dauerhaft

Standardisierung von Diensten möglich

Implementierungvollkommen privat

kann beliebig geändert werden

insbesondere: Austausch von Komponenten gegenüber besseren möglich

Produktkatalog mit Preisen und Bestell-/ Lieferbedingungen

Interne Geschäftsprozesse

(Logistik, Buchhaltung etc.)

Analogie

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Page 15: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

15

Dienstorientierte Architekturen

Dienstgeber(service provider)

Dienstgeber(service provider)

Dienstverzeichnis(service registry)

Dienstverzeichnis(service registry)

Dienst-nehmer

(service requestor)

Dienst-nehmer

(service requestor)

bind

publishfind

invoke

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Page 16: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

16

Dienstorientierte Architekturen – Lose Kopplung

Dienst-nehmer

(service requestor)

Dienst-nehmer

(service requestor)

nutzen

Dienst-nehmer

(service requestor)

Dienst-nehmer

(service requestor)

nutzen

Dienst-nehmer

(service requestor)

Dienst-nehmer

(service requestor)

nutzen

Implementie-rungen werdenaustauschbar

Mehrere Dienstehinter derselbenFassade

mehrschrittigeVerarbeitung

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Page 17: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

17

Kernprobleme dienstorientierter Architekturen

Kommunikationsprotokoll (technische Ebene)Kodierung von Methodenaufruf und ParameterübergabeDatenaustausch (Serialisierung)Authentifizierung, Sicherheit etc.

DienstbeschreibungKonkrete Adresse (wie erreiche ich den Dienst)Dienstschnittstelle (wie rufe ich ihn auf)Semantik des Dienstes (was tut der Dienst)Organisatorisches (was kostet der Dienst o.ä.)

Verzeichnisdienste

Möglichkeiten zur Aggregierung von Diensten

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Page 18: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

18 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Interaktionsparadigmen

Entfernter Methodenaufruf (Remote Procedure Call)Übertragung des Methodenaufrufs in Programmiersprachen auf verteilte UmgebungenSemantik liegt in der Methode und ihren Parameternmeist synchrone Kommunikationresultiert meist in feingranularen Schnittstellen

Nachrichtenbasierte Kommunikation (Messaging)es werden Dokumente ausgetauschtSemantik liegt in den Nachrichtentypen und ihren Instanzensehr gut für asynchrone Kommunikation geeignet

Messaging Queuing Systems

oft sehr generische Schnittstellen

27.01.2014

Page 19: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

19

WEBSERVICES

SOAP – als ein Beispiel zur Erstellung von Komponenten als Diensten

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Page 20: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

20 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

SOAP basierte WEBSERVICES

SOAP basierte Webservices als Beispiel, da diese• Klar definierte Schnittstelle ermöglichen• Klar definierte Serialisierung per XML• Standardisierte Verzeichnisdienste ermöglichen

Alternativen• Früher: Corba, Remote Procedure Call APIs (Spezifisch z.b. Für JAVA)• Prinzipien von SOAP Webservices übertragbar, z.b. Auf REST (in

nächster Vorlesung): kompaktere Serialisierung als SOAP, aber keine eindeutige Serialisierung (z.b. JSON, CSV,...) / Methoden (Parameter als HTTP GET)

27.01.2014

Page 21: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

21

Was sind Web Services?

Web Services sind verteilte,

lose gekoppelte und

wiederverwendbare Software-Komponenten, auf die

über Standard-Internetprotokolle

programmatisch zugegriffen werden kann.

Pragmatisch: Dienste, die mittels SOAP angesprochen werden können

und (meist) mittels WSDL beschrieben werden

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Page 22: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

22

Web Services — Die Technik

SOAP (Simple Object Access Protocol)

Aufrufprotokoll

unterschiedliche Transportprotokolle: HTTP, SMTP

WSDL (Web Services Description Language)

Schnittstellenbeschreibung

UDDI (Universal Description, Discovery and Integration)

Dienstbeschreibung und Auffindung

universeller Verzeichnisdienst für Dienstleistungen

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Page 23: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

23

SOAP, UDDI, WSDL

Web Service

Registry

ClientSOAP

WS

DL

UDDIUDDI

UDDI

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Page 24: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

24

SOAP: Überblick

In XML kodierter entfernter Methodenaufruf (RPC) bzw. Nachrichtenaustauschprotokoll

Beliebiges Transportprotokoll, z.B.Meistens verwendet: synchrone Aufrufe über HTTP: Aufrufer wartet auf die Dienstantwortklassischer RPC

asynchrone Aufrufe über SMTP (Mail):Entkopplung von Aufruf und AntwortMessaging

Kodierungsregeln für DatentypenStandard-Regeln entstammen XML Schema

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Page 25: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

25

SOAP: Ein Beispiel

Aufruf

<soap:Envelope>

<soap:Body>

<xmlns:m="http://www.stock.org/stock" />

   <m:GetStockPrice>

<m:StockName>IBM</m:StockName>

    </m:GetStockPrice>

</soap:Body>

</soap:Envelope>

Antwort

<soap:Envelope>

<soap:Body>

<xmlns:m="http://www.stock.org/stock" />

<m:GetStockPriceResponse>

<m:Price>34.5</m:Price>

</m:GetStockPriceResponse>

</soap:Body>

</soap:Envelope>

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Page 26: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

26

SOAP: Aufbau eines Aufrufs

SOAP-EnvelopeSOAP-Header

z.B. Authentifizierung, Routing, Logging, Transaktionsnummern

Metadaten über den Aufruf

SOAP-Bodydie eigentliche Methode, die aufgerufen werden soll

die Parameter

bzw. die ausgetauschte Nachricht

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Page 27: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

27

SOAP: Beispiel Amazon Artikel WS<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body>

<a:KeywordSearchRequest xmlns:a="urn:PI/DevCentral/SoapService"><KeywordSearchRequest xsi:type="m:KeywordRequest"> <keyword >dog</keyword> <page >1</page> <mode>book</mode> <tag>webservices-20</tag> <type>lite</type> <dev-tag>your-dev-tag</dev-tag> <format>xml</format> <version>1.0</version></KeywordSearchRequest>

</a:KeywordSearchRequest></SOAP-ENV:Body>

</SOAP-ENV:Envelope>

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Page 28: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

28

SOAP und Sicherheit

AuthentisierungVerteilte Authentisierungsprotokolle über SOAP (z.B. Kerberos)

SignaturenXML Signature (REC)

VerschlüsselungXML Encryption (REC)

TransaktionenBPEL4WS hat hier einige Ansätze zu bieten

+ diverse andere Ansätze

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Page 29: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

29

WSDL: Überblick

Welche Operationen bietet der Dienst an?

Welche Parameter haben die OperationenStruktur der Aufrufnachricht

Struktur des Ergebnisses

Rückgriff auf XML Schema

Wo und wie kann ich einen Dienst erreichen?Adresse

Informationen über das Protokollz.B. SOAP, auch mehrere Protokolle!

verwendetes Transportprotokoll: HTTP, SMTP etc.

aber: keine semantische Dienstbeschreibung

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Page 30: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

30

WSDL: Aufbau

Messages + SchemaDefinition von Datenstrukturen

Operationen (Abstrakte Schnittstelle, PortType) mit ihrer Signatur

Port

SOAP-Bindingandere Protokoll-

bindung

Port Port

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Page 31: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

31

WSDL: Aufbau (2)

<definitions> <types>

<xsd:schema> Typdefinitionen </xsd:schema></types><message name="..."> Nachrichtendefinition </message><portType name="...">

<operation> <input message="..." /> <output message="..." />

</operation></portType><binding name="...">

<operation name="..."> <input> <soap:body ...> </input> </operation> </binding> <service name="...">

<port name="..." binding="..."><soap:address location="..." />

</port></service>

</definitions>

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Page 32: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

32

Typdefinitionen

Typdefinitionen in WSDL sind eingebettete XML Schema-Definitionen

<definitions name="AmazonSearch" targetNamespace="urn:PI/DevCentral/SoapService" ...>

<types>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:PI/DevCentral/SoapService">

<xsd:complexType name="KeywordRequest">

<xsd:all>

<xsd:element name="keyword" type="xsd:string"/>

<xsd:element name="page" type="xsd:string"/>

<xsd:element name="mode" type="xsd:string"/>

<xsd:element name="tag" type="xsd:string"/>

<xsd:element name="type" type="xsd:string"/>

<xsd:element name="devtag" type="xsd:string"/>

<xsd:element name="version" type="xsd:string"/>

</xsd:all>

</xsd:complexType>

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Page 33: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

33

Nachrichten

Nachrichten können auch aus mehreren Teilen bestehen

Jeder Teil wird mit einem Schema-Typ typisiert

<message name="KeywordSearchRequest">

<part name="KeywordSearchRequest"

type="typens:KeywordRequest"/>

</message>

<message name="KeywordSearchResponse">

<part name="return"

type="typens:ProductInfo"/>

</message>

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Page 34: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

34

Operationen

SchnittstellendefinitionName der Methode, Eingabe- und Ausgabeparameter

Fehlerbehandlung <fault name="..." message="...">

<portType name="AmazonSearchPort">

<operation name="KeywordSearchRequest">

<input message="typens:KeywordSearchRequest"/>

<output message="typens:KeywordSearchResponse"/>

</operation>

...

</portType>

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Page 35: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

35

Protokollbindung

Protokollspezifische AngabenWelches (Transport-) Protokoll?

SOAP over HTTP (oder SMTP, FTP), HTTP GET/POST, ...

Zusätzliche Angaben, die notwendig sind, um einen korrekten Aufruf zu bewerkstelligen

Interaktionsparadigma

Kodierung

Metainformationen (SOAP Header)

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Page 36: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

36

Typdefinitionen (2)

<xsd:complexType name="ProductInfo"><xsd:all><xsd:element name="Details" type="typens:DetailsArray"/></xsd:all>

</xsd:complexType><xsd:complexType name="Details">

<xsd:all> <xsd:element name="Url" type="xsd:string"/><xsd:element name="ProductName" type="xsd:string"/><xsd:element name="Authors" type="typens:AuthorArray"/><xsd:element name="ImageUrlSmall" type="xsd:string"/><xsd:element name="OurPrice" type="xsd:string"/><xsd:element name="Publisher" type="xsd:string"/><xsd:element name="Isbn" type="xsd:string"/></xsd:all>

</xsd:complexType><xsd:complexType name="DetailsArray">

<xsd:complexContent><xsd:restriction base="soapenc:Array"> <xsd:attribute ref="soapenc:arrayType"

wsdl:arrayType="typens:Details[]"/> </xsd:restriction>

</xsd:complexContent></xsd:complexType>

Typ für Arrays,

ebenso Listen möglich...

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Page 37: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

37

Protokollbindung

<binding name="AmazonSearchBinding" type="typens:AmazonSearchPort">

<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/><operation name="KeywordSearchRequest">

<soap:operation soapAction="urn:PI/DevCentral/SoapService"/> <input> <soap:body use="encoded" namespace="urn:PI/DevCentral/SoapService"

encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </input><output>

<soap:body use="encoded"namespace="urn:PI/DevCentral/SoapService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>

</output></operation>...

</binding>

RPC als Interaktions-paradigma

SOAP über HTTP

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Page 38: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

38

Ports

Festlegen der konkreten Netzwerkadresse

<service name="AmazonSearchService">

<port name="AmazonSearchPort" binding="typens:AmazonSearchBinding">

<soap:address location="http://soap.amazon.com/onca/soap"/>

</port>

</service>

Hier wird festgestellt, wo der Dienst angesprochen

werden kann

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Page 39: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

39

WSDL: Fazit

WSDL erlaubt die Beschreibung aller Informationen über die Schnittstelle und die Erreichbarkeit eines Dienstes

Mit Hilfe der in WSDL gemachten Angaben läßt sich problemlos ein korrekter SOAP-Aufruf schreiben

Beispiele:.NET Einbinden von beliebigen Web Services in die IDE

bzw. in Office VB Script

Java JAX-WS (oder auch Axis) erlaubt die automatische Generierung entsprechender Klassen

Allerdings:WSDL macht keinerlei Angaben, was der Dienst denn nun wirklich tut

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Page 40: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

40

UDDI - Universal Description, Discovery and Integration

White , yellow, green pages: URL eines Dienstes, Anbieterinformation, Kategorisierung der Dienste (nach Thema), Schnittstellenbeschreibung

UDDI in PraxisMeist fokussiert auf eine verteilte Anwendung, d.h. Semantik des Dienstes ist bekannt für Enwickler, UDDI registriert vorhandene Implementierungen, z.b. Alle Dienste „WarenverwaltungBaumarkt“

Oder kein UDDI: Adressen bekannter Dienste als Properties.

Daher dann auch keine symantische Dienstbeschreibung nötig.

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Interface1: Methoden

Waren-verwaltung

Bestell-system

Interface2: Methoden

Waren-verwaltung

Bestell-system

Interface3: Methoden

Waren-verwaltung

Bestell-system

UDDI

Page 41: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

41

Erstellung von WSDL: bottom up vs. Top down

WSDL kann über zwei Wege beschrieben werden

• Bottom up: Modellierung in UML Tool (z.b. Enterprise Architect).Schnittstelle wird vollständig modelliert und serialisiert.

• Vorteile: • garantiert unabhängig von Programmiersprache• Genaue Spezifikation auch z.B. Von Restriktionen.• Implementierung in JAVA: z.b. mit AXIS

• Nachteile:• Implementierung aufwändiger• Nicht alle Restriktionen werden von Implementierungen umgesetzt

• Top-Down: Zuerst Implemtierung von Interface in z.b. JAVA• Vorteil: einfacher, on-the-fly.• Nachteil: u.u spezifisch für eine Programmiersprache

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Page 42: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

42

WDL Top Down mit JAX-WS in JAVA

1. Erstelle gewöhnliches JAVA Interface

2. Annotiere mit spezifischen Annotationen für JAX-WS

3. Deployment in z.B. Jboss

4. Aufruf der annotierten Adresse bringt WSDL

5. Nutzbar per JAX-WS für Clienterstellung

@Stateless

@WebService(name = ArticleService .WS_NAME, serviceName = ArticleService .WS_SERVICE_NAME, targetNamespace = "http://ws.article.klickandbau.com/")

@WebContext(contextRoot = ReportingService.CONTEXT_ROOT, urlPattern = ReportingService.WS_URL_PATTERN)

public class ArticleService implements ArticleRemote …

Prof. Max Mustermann - Präsentationstitel27.01.2014

Page 43: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

43

UMSETZUNG / INTEGRATION IN KLICK-AND-BAU.COM MIT DIENSTEN

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Page 44: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

44

Motivation

Komponentensicht auf klick-und-bau: Komponenten als Dienste

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Anbieter 1: OBI

Waren-verwaltung

Bestell-system

Anbieter 2: Hornbach

Waren-verwaltung

Bestell-system

Anbieter 3: Praktiker

Waren-verwaltung

Bestell-system

Anbieter 3: Hagebau

Waren-verwaltung

Bestell-system

DoY

ou

Goo

gle+

Fac

eboo

kTw

itter

VIS

AP

aypal

MasterC

ardM

aestro

Klick-und- bau.com

Waren-verwaltung

Bestell-system

Kunden-verwaltung

Bezahl-system

Such-maschine

Content-Management

Webseiten-verwaltung

Bezahl-dienste

Social NetworkDienste

Dienstanbieter für Inhalte

Interne Dienste

Page 45: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

45

Generelle Umsetzung

Alle Datenquellen erhalten Schnittstelle zum ZugriffDefinition benötigter Daten zum Laden: Abfragemethoden

Definition von zu speichernden Daten: CRUD – Methoden

Alle internenen Systeme erhalten Schnittstelle zum ZugriffDefinition von nötigen Abfragen: Abfragemethoden

Systeme können intern weitere Dienste aggregieren, z.b. ArticleService

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Page 46: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

46

Datenintegration der Anbieterdaten: ideal

Ideal: Spezifiziertes Interface wird von allen Anbietern umgesetzt:

Ermöglicht beliebige Aktualisierung der Daten.

Alle Daten werden in gleichen Objekten abgefragt (kein ETL mehr nötig)

Je nach Performanz der Schnittstelle: immer direkt abfragen (keine Datenspeicherung mehr nötig)

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten11.04.2023

Interface1: Methoden

Waren-verwaltung

Bestell-system

Interface2: Methoden

Waren-verwaltung

Bestell-system

Interface3: Methoden

Waren-verwaltung

Bestell-system

Klick-Und-Bau

Page 47: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

47

Datenintegration der Anbieterdaten: Variante

Variante: Anbieter wollen selbst bestimmen, wann Daten geschickt werden

(auch bei Sicherheitsbedenken von Anbietern): Anbieter implementieren WS-Client des Article Service : push z.b. täglich

Alle Daten werden in gleicher Objektstruktur abgefragt

Aber: Speicherung der Daten nötig

Vorteil: verdeckt Heterogenität der Artikel-Datenbanken!

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten11.04.2023

ArticleService Client

Waren-verwaltung

Bestell-system

ArticleService Client

Waren-verwaltung

Bestell-system

ArticleService Client

Waren-verwaltung

Bestell-system

Klick-Und-Bau

Interface: ArticleService

Page 48: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

48

Interne Dienste

Über alle internen Komponenten werden Schnittstellen erstellt(zumeist als Standarddienst von Anbietern erhältlich)

=> Aggregation von Diensten: z.b. ArticleService, PayementService

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten11.04.2023

Klick-und- bau.com

Waren-verwaltung

Bestell-system

Kunden-verwaltung

Bezahl-system

Such-maschine

Content-Management

Webseiten-verwaltung

Interne Dienste

ArticleService OrderService CustomerService PaymentService

SearchService

Page 49: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

49

Aggregation von Diensten

Hier gezeigt an Beispiel PaymentService:Alle Bezahldienste bieten Webservice-Schnittstellen an

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten11.04.2023

VISA MAESTRO MasterCard

PayPal

PaymentService

Ein Interface für alle Anbieter

VisaService MCService

Implementierung mit WS-Clients

Page 50: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

50

Erstellung der Webanwendung

Sämtliche Controller kommunizieren mit Dienstschnittstellen(vereinfacht stark das Deployment der Webanwendung, z.b. Keine Datenbanktreiber etc. => Direkt z.b. Sehr skalierbar & cloudfähig)

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten11.04.2023

Klick-und- bau.com

Webseiten-verwaltung

Interne Dienste

ArticleService OrderService CustomerService PaymentService

SearchServiceContent-Management

Page 51: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

51

REST INTERFACES

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Page 52: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

52

Ausgangspunkt

Obwohl SOAP als Protokoll „einfach“ sein sollte (im Vergleich zu CORBA und anderen verteilten Objektprotokollen), stellt es doch einen gewissen Overhead dar

Einarbeitungsaufwand in Web-Service-Toolkits

Protokolloverhead

Leichtgewichtigere Varianten für einfachen Zugriff auf Web-Dienste

Page 53: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

53

REST

Representational State Transfer

Architekturstil für Hypermedia Systemehervorgegangen aus der Doktorarbeit von Roy Fielding

Leichtgewichtige Alternative zu Web ServicesGrundlage sind hauptsächlich Konventionen

stark an Standard-HTTP orientiert

Page 54: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

54

REST-Grundkonzepte

Ressourcenhaben eine URI

sind die primären Entitäten der AnwendungZ.B. Produkte, Warenkorb, etc.

RepräsentationenSind Darstellungen von Ressourcen

Können selbst wiederum auf andere Ressourcen verweisen

CRUD-Operationen (Create, Read, Update, Delete)

Page 55: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

55

Charakteristika einer REST-Anwendung

Wie bei der Serviceorientierung: Die Kommunikation wird bei Bedarf durch den Client initiiert.

Zustandslose Kommunikation

Zusätzlich:Resourcen sind durch eine URI adressierbar

Repräsentation einer Resource kann als Dokument vom Client angefordert werden.

Page 56: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

56

REST: Grundidee

Zugriffsprotokoll ist ausschließlich HTTP

Kann die HTTP-Methoden und ihre Semantik nutzenHTTP GET für die Repräsentation einer Ressource

HTTP DELETE für das Löschen von Ressourcen

HTTP POST für das Erzeugen und Aktualisieren von Ressourcen

HTTP PUT für das Erstellen von Repräsentationen von Ressourcen

Meistens: komplexe Strukturen: Kodierung der Daten in XML

einfache Strukturen: URL-kodiert

Page 57: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

57

Beispiel

http://www.infoq.com/articles/rest-introduction

Page 58: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

58

REST-Beispiel (2)

GET /customers/1234 HTTP/1.1Host: example.com Accept: application/vnd.mycompany.customer+xml

Þ Ruft die Kundendaten für einen bestimmten Kunden in einem vordefinierten XML-Format ab

GET /customers/1234 HTTP/1.1Host: example.com Accept: text/x-vcard

Þ Wie oben, nur als Vcard

Page 59: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

59

REST-Beispiel (3)

POST /orders/ HTTP/1.1Host: example.com

<order id='http://example.com/customers/1234' > <amount>23</amount> <product ref='http://example.com/products/4554' /> <customer ref='http://example.com/customers/1234' /> </order>

=> Absetzung einer Bestellung

Page 60: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

60

REST + JSON

Ein erheblicher Overhead von Web Services kommt auch durch die XML-Serialisierung zustanden, was sich insbesondere bei kleinen Parametern zeigt

Teilweise Faktor 10-20

Als alternative Serialisierungsformen hat sich vor allem JSON etabliert:JavaScript Object Notation

Lässt sich direkt in JavaScript verarbeiten:my_JSON_object = JSON.parse( http_request.responseText );

Browser-Unterstützung

11.04.202360

Page 61: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

61

REST + JSON

order:{ "id": "http://example.com/customers/1234"

"amount": "23", "product": "http://example.com/products/4554"

"customer": "http://example.com/customers/1234"}

11.04.202361

Page 62: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

62

REST vs. SOAP

REST reduziert den Overhead von Service-Aufrufen durch Konventionen

Dadurch weniger Flexibilität

Aber der 80%-Fall lässt sich einfacher realisieren

Zusammen mit JSON auch deutlich performanter, gerade bei häufigeren und kleineren Zugriffen

REST fehlt die Einbettung in Enterprise-Kontexte

Page 63: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

63

INTEGRATION AUF PRÄSENTATIONSEBENE

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten27.01.2014

Page 64: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

64

Präsentationsebene

Grundidee ist hier: Darstellung von Inhalten unterschiedlicher Quellen

AnsätzeEinbindung gerenderter Inhalte, also HTML-Fragmente (IFRAME)

reine Overlay-Techniken

Einbindung von GUI-Steuerelementen

Page 65: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

65

iGoogle / Google Sites

Page 66: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

66

Google Maps Mashups

Page 67: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

67

Google Maps API: Overlays

Hinzufügen von zusätzlichen Markierungenvar point = new GLatLng(lat,long);var marker = new GMarker(point);map.addOverlay(new GMarker(point));

Hinzufügen von Polygonenvar polyline = new GPolyline([ new GLatLng(37.4419, -122.1419), new GLatLng(37.4519, -122.1519), new GLatLng( 37.4619, -122.1819)], "#FF0000", 10);map.addOverlay(polyline);

Anzeige von Zusatzinformationen GEvent.addListener(marker, "click", function()

{ marker.openInfoWindowHtml("<b>Infotext</b>"); });

Page 68: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

68

Cloud Mashups

Cloud als Datenbasis / Businesslogik (Implementiert z.B. in JAVA / JAVA-Script)

Beispiel: Google Cloud Service Integration von Cloud-Elementen in Portal, Web-Seite.Beispiel: www.apartment-baden.com

Webseite als Darstellung, Mashup von Seitenparts, z.B. Verfügbarkeit .Sheets / Docs / PDFs (Zentrale Aktualisierung)

Published Google Sheet Published

APP based onGoogle Scripts

Page 69: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

69

Fazit: Leichtgewichtige Ansätze

Leichtgewichtige, Web 2.0-inspirierte Dienste stellen kaum Hürden an Entwickler

keine komplexen Technologien zu erlernen

keine speziellen Frameworks

oft sehr viel performanter als Web-Service-Lösungen

Allerdings: sie sind auch in ihrem Einsatzbereich eingeschränktoft fehlen Validierungs-, Authentifizierungs- und andere „Enterprise-Level“-Funktionen

Page 70: Dienstorientierte Integration von Komponenten

Informationsintegration und Web-PortaleWintersemester 2013/2014

70

27.01.2014

Literatur

SOAP, WSDL, UDDIGraham et al., Building Web Services with Java, SAMS Publishing, 2002

JAX-WShttp://jax-ws.java.net/BPEL4WS

Amazon-Webserviceshttp://aws.amazon.com/de/

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten