72
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 # 8, 08.12.2014 : Dienstorientierte Integration Dr. Andreas Walter von Komponenten

INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

  • Upload
    dobao

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Page 1: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

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 # 8, 08.12.2014 : Dienstorientierte Integration Dr. Andreas Walter

von Komponenten

Page 2: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

2

Motivation

Komponentensicht auf klick-und-bau: Komponenten als Dienste

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten 08.12.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

G

oog

le+

Faceb

ook

Tw

itte

r V

ISA

P

aypa

l

Maste

rCard

M

aestro

Klick-und-

bau.com

Waren-

verwaltung

Bestell-

system

Kunden-

verwaltung

Bezahl-

system

Such-

maschine

Content-

Management

Webseiten-

verwaltung

Bezahl-

dienste Social

Network

Dienste

Dienstanbieter für Inhalte

Interne Dienste

Page 3: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

3

Inhalt

Motivation

Integrationsebenen

Generelle Integration von Komponenten als Dienste

SOAP 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äsentations- und Businessebene

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten 08.12.2014

Page 4: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

4

INTEGRATIONSEBENEN

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten 08.12.2014

Page 5: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

5

Integrationsebenen: technische Ebene

Technische Ebene

Anwendungslogikebene

Prozeßebene

Präsentationsebene

Netzwerkprotokolle, RPC, OS

Syntax, Datenbanktreiber

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten 08.12.2014

Informationsebene

Page 6: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

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äsentationstitel 08.12.2014

Page 7: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

7

Integrationsebenen: Informationsebene

Technische Ebene

Informationsebene

Anwendungslogikebene

Prozeßebene

Präsentationsebene

Netzwerkprotokolle, RPC, OS

Syntax, Datenbanktreiber

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten 08.12.2014

Informationsquellen

Datenmodell, Schema,

Semantik der Inhalte

Page 8: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

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äsentationstitel 08.12.2014

Anbieter 1: OBI

Waren-

verwaltung

Bestell-

system

Anbieter 2: Hornbach

Waren-

verwaltung

Bestell-

system

Anbieter 3: Praktiker

Waren-

verwaltung

Bestell-

system

Page 9: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

9

Integrationsebenen: Anwendungslogik

Technische Ebene

Informationsebene

Anwendungslogikebene

Prozeßebene

Präsentationsebene

Netzwerkprotokolle, RPC, OS

Syntax, Datenbanktreiber

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten 08.12.2014

Informationsquellen

Datenmodell, Schema,

Semantik der Inhalte

Anwendungsentwicklung

Klassen, Objekte,

Schnittstellen, Methoden

Prozessebene

Orchestrierung von Anwendung

Page 10: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

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äsentationstitel 08.12.2014

Interface1: Methoden

Waren-

verwaltung

Bestell-

system

Interface2: Methoden

Waren-

verwaltung

Bestell-

system

Interface3: Methoden

Waren-

verwaltung

Bestell-

system

Page 11: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

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 Daten

verdeckt ORM Probleme, wird direkt in Komponente implementiert

08.12.2014

Page 12: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

12

GENERELLE INTEGRATION

VON KOMPONENTEN ALS

DIENSTE Dr. Andreas Walter – Dienstorientierte Integration von Komponenten 08.12.2014

Page 13: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

13

Denken in Diensten

Übertragung der Dienstleistungsorientierung in der internen (und

externen) Unternehmensorganisation auf die

IT-Infrastruktur

Einzelne Komponenten erbringen Dienste

Wichtig: Dienstschnittstelle als Vertrag

welche Dienste / Methoden werden angeboten?

wie kann man sie in Anspruch nehmen?

Zusätzlich: Wie kann man Dienste finden?

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten 08.12.2014

Page 14: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

14

Denken in Diensten (2)

Konsequente Trennung zwischen

Schnittstelle

nach außen veröffentlicht

dauerhaft

Standardisierung von Diensten möglich

Implementierung

vollkommen 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 Komponenten 08.12.2014

Page 15: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

15

Dienstorientierte Architekturen

Dienstgeber

(service provider)

Dienstverzeichnis

(service registry)

Dienst-

nehmer

(service requestor)

bind

publish find

invoke

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten 08.12.2014

Page 16: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

16

Dienstorientierte Architekturen – Lose

Kopplung

Dienst- nehmer

(service requestor) nutzen

Dienst- nehmer

(service requestor) nutzen

Dienst- nehmer

(service requestor) nutzen

Implementie-rungen werden austauschbar

Mehrere Dienste hinter derselben Fassade

mehrschrittige Verarbeitung

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten 08.12.2014

Page 17: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

17

Kernprobleme dienstorientierter

Architekturen

Kommunikationsprotokoll (technische Ebene)

Kodierung von Methodenaufruf und Parameterübergabe

Datenaustausch (Serialisierung)

Authentifizierung, Sicherheit etc.

Dienstbeschreibung

Konkrete 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 Komponenten 08.12.2014

Page 18: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

18 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Interaktionsparadigmen

Entfernter Methodenaufruf (Remote Procedure Call)

Übertragung des Methodenaufrufs in Programmiersprachen auf verteilte Umgebungen

Semantik liegt in der Methode und ihren Parametern

meist synchrone Kommunikation

resultiert meist in feingranularen Schnittstellen

Nachrichtenbasierte Kommunikation (Messaging)

es werden Dokumente ausgetauscht

Semantik liegt in den Nachrichtentypen und ihren Instanzen

sehr gut für asynchrone Kommunikation geeignet

Messaging Queuing Systems

oft sehr generische Schnittstellen

08.12.2014

Page 19: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

19

WEBSERVICES

SOAP – als ein Beispiel zur Erstellung von Komponenten als

Diensten

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten 08.12.2014

Page 20: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

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)

08.12.2014

Page 21: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

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 Komponenten 08.12.2014

Page 22: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

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 Komponenten 08.12.2014

Page 23: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

23

SOAP, UDDI, WSDL

Web Service

Registry

Client SOAP

WS

DL

UDDI UDDI

UDDI

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten 08.12.2014

Page 24: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

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 Dienstantwort

klassischer RPC

asynchrone Aufrufe über SMTP (Mail):

Entkopplung von Aufruf und Antwort

Messaging

Kodierungsregeln für Datentypen

Standard-Regeln entstammen XML Schema

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten 08.12.2014

Page 25: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

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 Komponenten 08.12.2014

Page 26: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

26

SOAP: Aufbau eines Aufrufs

SOAP-Envelope

SOAP-Header

z.B. Authentifizierung, Routing, Logging, Transaktionsnummern

Metadaten über den Aufruf

SOAP-Body

die eigentliche Methode, die aufgerufen werden soll

die Parameter

bzw. die ausgetauschte Nachricht

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten 08.12.2014

Page 27: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

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 Komponenten 08.12.2014

Page 28: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

28

SOAP und Sicherheit

Authentisierung

Verteilte Authentisierungsprotokolle über SOAP

(z.B. Kerberos)

Signaturen

XML Signature (REC)

Verschlüsselung

XML Encryption (REC)

Transaktionen

BPEL4WS hat hier einige Ansätze zu bieten

+ diverse andere Ansätze

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten 08.12.2014

Page 29: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

29

WSDL: Überblick

Welche Operationen bietet der Dienst an?

Welche Parameter haben die Operationen

Struktur der Aufrufnachricht

Struktur des Ergebnisses

Rückgriff auf XML Schema

Wo und wie kann ich einen Dienst erreichen?

Adresse

Informationen über das Protokoll

z.B. SOAP, auch mehrere Protokolle!

verwendetes Transportprotokoll: HTTP, SMTP etc.

aber: keine semantische Dienstbeschreibung

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten 08.12.2014

Page 30: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

30

WSDL: Aufbau

Messages + Schema

Definition von Datenstrukturen

Operationen (Abstrakte Schnittstelle, PortType)

mit ihrer Signatur

Port

SOAP-Binding andere Protokoll-

bindung

Port Port

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten 08.12.2014

Page 31: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

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 Komponenten 08.12.2014

Page 32: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

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 Komponenten 08.12.2014

Page 33: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

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 Komponenten 08.12.2014

Page 34: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

34

Operationen

Schnittstellendefinition Name 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 Komponenten 08.12.2014

Page 35: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

35

Protokollbindung

Protokollspezifische Angaben

Welches (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 Komponenten 08.12.2014

Page 36: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

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 Komponenten 08.12.2014

Page 37: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

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 Komponenten 08.12.2014

Page 38: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

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 Komponenten 08.12.2014

Page 39: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

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 Komponenten 08.12.2014

Page 40: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

40

UDDI - Universal Description, Discovery and

Integration

White , yellow, green pages: URL eines Dienstes, Anbieterinformation,

Kategorisierung der Dienste (nach Thema), Schnittstellenbeschreibung

UDDI in Praxis

Meist 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 Komponenten 08.12.2014

Interface1: Methoden

Waren-

verwaltung

Bestell-

system

Interface2: Methoden

Waren-

verwaltung

Bestell-

system

Interface3: Methoden

Waren-

verwaltung

Bestell-

system

UDDI

Page 41: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

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 Komponenten 08.12.2014

Page 42: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

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äsentationstitel 08.12.2014

Page 43: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

43

UMSETZUNG / INTEGRATION

IN KLICK-AND-BAU.COM MIT

DIENSTEN

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten 08.12.2014

Page 44: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

44

Motivation

Komponentensicht auf klick-und-bau: Komponenten als Dienste

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten 08.12.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

G

oog

le+

Faceb

ook

Tw

itte

r V

ISA

P

aypa

l

Maste

rCard

M

aestro

Klick-und-

bau.com

Waren-

verwaltung

Bestell-

system

Kunden-

verwaltung

Bezahl-

system

Such-

maschine

Content-

Management

Webseiten-

verwaltung

Bezahl-

dienste Social

Network

Dienste

Dienstanbieter für Inhalte

Interne Dienste

Page 45: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

45

Generelle Umsetzung

Alle Datenquellen erhalten Schnittstelle zum Zugriff

Definition benötigter Daten zum Laden: Abfragemethoden

Definition von zu speichernden Daten: CRUD – Methoden

Alle internenen Systeme erhalten Schnittstelle zum Zugriff

Definition von nötigen Abfragen: Abfragemethoden

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

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten 08.12.2014

Page 46: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

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 Komponenten 08.12.2014

Interface1: Methoden

Waren-

verwaltung

Bestell-

system

Interface2: Methoden

Waren-

verwaltung

Bestell-

system

Interface3: Methoden

Waren-

verwaltung

Bestell-

system

Klick-Und-Bau

Page 47: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

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 Komponenten 08.12.2014

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: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

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 Komponenten 08.12.2014

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: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

49

Aggregation von Diensten

Hier gezeigt an Beispiel PaymentService:

Alle Bezahldienste bieten Webservice-Schnittstellen an

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten 08.12.2014

VISA MAESTRO Master

Card

PayPal

PaymentService

Ein Interface für alle Anbieter

VisaService MCService

Implementierung mit WS-Clients

Page 50: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

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 Komponenten 08.12.2014

Klick-und-

bau.com

Webseiten-

verwaltung

Interne Dienste

ArticleService OrderService CustomerService PaymentService

SearchService

Content-

Management

Page 51: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

51

REST INTERFACES

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten 08.12.2014

Page 52: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

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

08.12.2014

Page 53: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

53

REST

Representational State Transfer

Architekturstil für Hypermedia Systeme

hervorgegangen aus der Doktorarbeit von Roy Fielding

Leichtgewichtige Alternative zu Web Services

Grundlage sind hauptsächlich Konventionen

stark an Standard-HTTP orientiert

08.12.2014

Page 54: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

54

REST-Grundkonzepte

Ressourcen

haben eine URI

sind die primären Entitäten der Anwendung

Z.B. Produkte, Warenkorb, etc.

Repräsentationen

Sind Darstellungen von Ressourcen

Können selbst wiederum auf andere Ressourcen verweisen

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

08.12.2014

Page 55: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

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.

08.12.2014

Page 56: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

56

REST: Grundidee

Zugriffsprotokoll ist ausschließlich HTTP

Kann die HTTP-Methoden und ihre Semantik nutzen

HTTP 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

08.12.2014

Page 57: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

57

Beispiel

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

Page 58: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

58

REST-Beispiel (2)

GET /customers/1234 HTTP/1.1

Host: 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.1

Host: example.com

Accept: text/x-vcard

Wie oben, nur als Vcard

08.12.2014

Page 59: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

59

REST-Beispiel (3)

POST /orders/ HTTP/1.1

Host: 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

08.12.2014

Page 60: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

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

08.12.2014

Page 61: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

61

REST + JSON

order:

{

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

"amount": "23",

"product": "http://example.com/products/4554"

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

}

08.12.2014

Page 62: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

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

08.12.2014

Page 63: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

63

MASHUPS : INTEGRATION AUF

PRÄSENTATIONS- UND

BUSINESSEBENE

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten 08.12.2014

Page 64: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

64

Businesssebene

Grundidee ist hier: (Cloud) basiertes Mashup von Diensten zu einer

neuen Anwendung

Ansätze

Einbindung bestehender Services (SOAP, WSDL)

Einfache Programmierung (z.b. Auf Basis von JavaScript Bibliotheken)

08.12.2014

Page 65: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

65

Cloud Mashups (mit Google Apps Services)

Page 66: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

66

Präsentationsebene

Grundidee ist hier: Darstellung von Inhalten unterschiedlicher Quellen

Ansätze

Einbindung gerenderter Inhalte, also HTML-Fragmente (IFRAME)

reine Overlay-Techniken

Einbindung von GUI-Steuerelementen

08.12.2014

Page 67: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

67

iGoogle (Portal) / Google Sites

08.12.2014

Page 68: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

68

Google Maps Mashups

Page 69: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

69

Google Maps API: Overlays

Hinzufügen von zusätzlichen Markierungen

var point = new GLatLng(lat,long);

var marker = new GMarker(point);

map.addOverlay(new GMarker(point));

Hinzufügen von Polygonen

var 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 70: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

70

Cloud Mashups (mit Google Sites)

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

Beispiel: Google Apps 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 on

Google Scripts

Page 71: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

71

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änkt

oft fehlen Validierungs-, Authentifizierungs- und andere „Enterprise-Level“-

Funktionen

Page 72: INFORMATIONSINTEGRATION UND WEBPORTALE · Semantik liegt in der Methode und ihren Parametern meist synchrone Kommunikation resultiert meist in feingranularen Schnittstellen Nachrichtenbasierte

Informationsintegration und Web-Portale

Wintersemester 2014/2015

72 27.01.2014

Literatur

SOAP, WSDL, UDDI

Graham et al., Building Web Services with Java, SAMS Publishing, 2002

JAX-WS

http://jax-ws.java.net/BPEL4WS

Amazon-Webservices

http://aws.amazon.com/de/

Google Apps Scripts

https://developers.google.com/apps-script/

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten