SlideShare uma empresa Scribd logo
1 de 70
INFORMATIONSINTEGRATION UND WEBPORTALE
Vorlesung # 10, 27.01.2014 : Dienstorientierte Integration
von Komponenten

Dr. Andreas Walter

INFORMATIONSINTEGRATION UND WEBPORTALE

Klick-And-Bau
Informationsintegration und Webportale

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

www.kit.edu
Motivation
Komponentensicht auf klick-und-bau: Komponenten als Dienste
Klick-undbau.com

Interne Dienste

Maestro

Paypal

Warenverwaltung

Bestellsystem

Kundenverwaltung

Bezahlsystem

Twitter
Facebook

Social
Network
Dienste

ContentManagement

Suchmaschine

Google+

Bezahldienste

DoYou

MasterCard

VISA

Webseitenverwaltung

Dienstanbieter für Inhalte

Anbieter 1: OBI

Anbieter 3: Praktiker

Anbieter 3: Hagebau

Warenverwaltung

2

Anbieter 2: Hornbach
Warenverwaltung

Warenverwaltung

Warenverwaltung

27.01.2014

Bestellsystem

Bestellsystem

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Bestellsystem

Bestellsystem

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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äsentationsebene

3

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
INTEGRATIONSEBENEN

4

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
Integrationsebenen: technische Ebene

Präsentationsebene

Prozeßebene

Anwendungslogikebene

Informationsebene

Technische Ebene
5

27.01.2014

Netzwerkprotokolle, RPC, OS
Syntax, Datenbanktreiber

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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“)

6

03.02.2014

Prof. Max Mustermann - Präsentationstitel

Informationsintegration und Web-Portale
Wintersemester 2013/2014
Integrationsebenen: Informationsebene

Präsentationsebene

Prozeßebene

Anwendungslogikebene

Informationsebene

Technische Ebene
7

03.02.2014

Informationsquellen
Datenmodell, Schema,
Semantik der Inhalte
Netzwerkprotokolle, RPC, OS
Syntax, Datenbanktreiber

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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“)
Anbieter 1: OBI

03.02.2014

Anbieter 3: Praktiker

Warenverwaltung

8

Anbieter 2: Hornbach
Warenverwaltung

Warenverwaltung

Bestellsystem

Prof. Max Mustermann - Präsentationstitel

Bestellsystem

Bestellsystem

Informationsintegration und Web-Portale
Wintersemester 2013/2014
Integrationsebenen: Anwendungslogik

Präsentationsebene

Prozeßebene

Anwendungslogikebene

Prozessebene
Orchestrierung von Anwendung
Anwendungsentwicklung
Klassen, Objekte,
Schnittstellen, Methoden

Informationsebene

Technische Ebene
9

03.02.2014

Informationsquellen
Datenmodell, Schema,
Semantik der Inhalte
Netzwerkprotokolle, RPC, OS
Syntax, Datenbanktreiber

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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
Interface1: Methoden

03.02.2014

Interface3: Methoden

Warenverwaltung

10

Interface2: Methoden
Warenverwaltung

Warenverwaltung

Bestellsystem

Prof. Max Mustermann - Präsentationstitel

Bestellsystem

Bestellsystem

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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

11

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
GENERELLE INTEGRATION
VON KOMPONENTEN ALS
DIENSTE
12

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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?

13

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
Denken in Diensten (2)
Konsequente Trennung zwischen
Analogie

Schnittstelle
nach außen veröffentlicht
dauerhaft
Standardisierung von Diensten möglich

Produktkatalog mit
Preisen und Bestell-/
Lieferbedingungen

Implementierung
vollkommen privat
kann beliebig geändert werden
insbesondere: Austausch von
Komponenten gegenüber besseren
möglich

14

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Interne
Geschäftsprozesse
(Logistik, Buchhaltung
etc.)

Informationsintegration und Web-Portale
Wintersemester 2013/2014
Dienstorientierte Architekturen

Dienstverzeichnis
(service registry)

find

Dienstnehmer
(service requestor)

15

27.01.2014

publish

bind
invoke

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Dienstgeber
(service provider)

Informationsintegration und Web-Portale
Wintersemester 2013/2014
Dienstorientierte Architekturen – Lose
Kopplung
Dienstnehmer
(service requestor)

nutzen

Dienstnehmer
(service requestor)

nutzen

Mehrere Dienste
hinter
derselben
Fassade

Dienstnehmer
(service requestor)

nutzen

mehrschrittige
Verarbeitung

16

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Implementierungen werden
austauschbar

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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

17

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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

18

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
SOAP – als ein Beispiel zur Erstellung von Komponenten als
Diensten

WEBSERVICES

19

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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)

20

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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

21

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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

22

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
SOAP, UDDI, WSDL

Registry
UDDI

Client

23

27.01.2014

UDDI

SOAP

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

WSDL

UDDI

Web Service

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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

24

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
SOAP: Ein Beispiel

 Antwort

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>

25

27.01.2014

<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

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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

26

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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>

27

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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

28

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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

29

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
WSDL: Aufbau

Port

Port

SOAP-Binding

Port

andere Protokollbindung

Operationen (Abstrakte Schnittstelle, PortType)
mit ihrer Signatur

Messages + Schema
Definition von Datenstrukturen

30

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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>
31

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
Typdefinitionen
Typdefinitionen in WSDL sind eingebettete XML SchemaDefinitionen
<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>
32

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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>

33

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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>

34

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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)

35

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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">
Typ für
<xsd:attribute ref="soapenc:arrayType"
Arrays, ebens
wsdl:arrayType="typens:Details[]"/>
</xsd:restriction>
o Listen
</xsd:complexContent>
möglich...
</xsd:complexType>
36

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
Protokollbindung
RPC als
Interaktions<binding name="AmazonSearchBinding"
paradigma
type="typens:AmazonSearchPort">
SOAP
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> über
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>

37

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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

38

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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

39

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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.
UDDI

Interface1: Methoden

27.01.2014

Interface3: Methoden

Warenverwaltung

40

Interface2: Methoden
Warenverwaltung

Warenverwaltung

Bestellsystem

Bestellsystem

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Bestellsystem

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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
•
•

41

Vorteil: einfacher, on-the-fly.
Nachteil: u.u spezifisch für eine Programmiersprache

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
WDL Top Down mit JAX-WS in JAVA
1.
2.
3.
4.
5.

Erstelle gewöhnliches JAVA Interface
Annotiere mit spezifischen Annotationen für JAX-WS
Deployment in z.B. Jboss
Aufruf der annotierten Adresse bringt WSDL
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 …

42

27.01.2014

Prof. Max Mustermann - Präsentationstitel

Informationsintegration und Web-Portale
Wintersemester 2013/2014
UMSETZUNG / INTEGRATION
IN KLICK-AND-BAU.COM MIT
DIENSTEN
43

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
Motivation
Komponentensicht auf klick-und-bau: Komponenten als Dienste
Klick-undbau.com

Interne Dienste

Maestro

Paypal

Warenverwaltung

Bestellsystem

Kundenverwaltung

Bezahlsystem

Twitter
Facebook

Social
Network
Dienste

ContentManagement

Suchmaschine

Google+

Bezahldienste

DoYou

MasterCard

VISA

Webseitenverwaltung

Dienstanbieter für Inhalte

Anbieter 1: OBI

Anbieter 3: Praktiker

Anbieter 3: Hagebau

Warenverwaltung

44

Anbieter 2: Hornbach
Warenverwaltung

Warenverwaltung

Warenverwaltung

27.01.2014

Bestellsystem

Bestellsystem

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Bestellsystem

Bestellsystem

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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

45

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
Datenintegration der Anbieterdaten: ideal
Ideal: Spezifiziertes Interface wird von allen Anbietern umgesetzt:
Klick-Und-Bau

Interface1: Methoden

Interface2: Methoden

Interface3: Methoden

Warenverwaltung

Warenverwaltung

Warenverwaltung

Bestellsystem

Bestellsystem

Bestellsystem

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)

46

03.02.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
Datenintegration der Anbieterdaten: Variante
Variante: Anbieter wollen selbst bestimmen, wann Daten geschickt
werden
Klick-Und-Bau
Interface: ArticleService

ArticleService Client

ArticleService Client

ArticleService Client

Warenverwaltung

Warenverwaltung

Warenverwaltung

Bestellsystem

Bestellsystem

Bestellsystem

(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!
47

03.02.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
Interne Dienste
Klick-undbau.com
Webseitenverwaltung
SearchService

ContentManagement

Suchmaschine

Interne Dienste
ArticleService

Warenverwaltung

OrderService

CustomerService

PaymentService

Bestellsystem

Kundenverwaltung

Bezahlsystem

Über alle internen Komponenten werden Schnittstellen erstellt
(zumeist als Standarddienst von Anbietern erhältlich)
=> Aggregation von Diensten: z.b. ArticleService, PayementService

48

03.02.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
Aggregation von Diensten
Hier gezeigt an Beispiel PaymentService:
Alle Bezahldienste bieten Webservice-Schnittstellen an

Ein Interface für alle Anbieter
PaymentService

Implementierung mit WS-Clients
VisaService

VISA

49

03.02.2014

MCService

MAESTRO

Master
Card

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

PayPal

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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)
Klick-undbau.com
Webseitenverwaltung

ContentManagement

SearchService

Interne Dienste
ArticleService

50

03.02.2014

OrderService

CustomerService

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

PaymentService

Informationsintegration und Web-Portale
Wintersemester 2013/2014
REST INTERFACES

51

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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

52

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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

53

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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)

54

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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.

55

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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

56

Informationsintegration und Web-Portale
Wintersemester 2013/2014
Beispiel

57

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

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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

58

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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

59

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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

60

03.02.2014 Informationsintegration und Web-Portale
Wintersemester 2013/2014

60
REST + JSON

order:
{
"id": "http://example.com/customers/1234"
"amount": "23",
"product": "http://example.com/products/4554"
"customer": "http://example.com/customers/1234"
}

61

03.02.2014 Informationsintegration und Web-Portale
Wintersemester 2013/2014

61
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

62

Informationsintegration und Web-Portale
Wintersemester 2013/2014
INTEGRATION AUF
PRÄSENTATIONSEBENE
63

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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

64

Informationsintegration und Web-Portale
Wintersemester 2013/2014
iGoogle / Google Sites

65

Informationsintegration und Web-Portale
Wintersemester 2013/2014
Google Maps Mashups

66

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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>");

67

});

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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

68

Published
APP based on
Google Scripts

Informationsintegration und Web-Portale
Wintersemester 2013/2014
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

69

Informationsintegration und Web-Portale
Wintersemester 2013/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/

70

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegration und Web-Portale
Wintersemester 2013/2014

Mais conteúdo relacionado

Mais procurados

Webinar Slides: SharePoint als Drehscheibe fuer ihr Unternehmenswissen
Webinar Slides: SharePoint als Drehscheibe fuer ihr UnternehmenswissenWebinar Slides: SharePoint als Drehscheibe fuer ihr Unternehmenswissen
Webinar Slides: SharePoint als Drehscheibe fuer ihr UnternehmenswissenB-S-S Business Software Solutions GmbH
 
Projektmanagement mit SharePoint/Office365 - LPM
Projektmanagement mit SharePoint/Office365 - LPMProjektmanagement mit SharePoint/Office365 - LPM
Projektmanagement mit SharePoint/Office365 - LPMLocatech IT Solutions GmbH
 
SharePoint - Master Data Management
SharePoint - Master Data ManagementSharePoint - Master Data Management
SharePoint - Master Data ManagementAndreas Aschauer
 
Ticketsystem/Servicedesk für Microsoft SharePoint 2013
Ticketsystem/Servicedesk für Microsoft SharePoint 2013 Ticketsystem/Servicedesk für Microsoft SharePoint 2013
Ticketsystem/Servicedesk für Microsoft SharePoint 2013 Locatech IT Solutions GmbH
 
SharePoint Community 12.02.2014: Realisierung einer Website mit SharePoint 2013
SharePoint Community 12.02.2014: Realisierung einer Website mit SharePoint 2013SharePoint Community 12.02.2014: Realisierung einer Website mit SharePoint 2013
SharePoint Community 12.02.2014: Realisierung einer Website mit SharePoint 2013IOZ AG
 
LTRS 2013 - Ticketsystem & Servicedesk für Microsoft SharePoint - Locatech
LTRS 2013 - Ticketsystem & Servicedesk für Microsoft SharePoint - LocatechLTRS 2013 - Ticketsystem & Servicedesk für Microsoft SharePoint - Locatech
LTRS 2013 - Ticketsystem & Servicedesk für Microsoft SharePoint - LocatechLocatech IT Solutions GmbH
 
Web Content Management mit SharePoint
Web Content Management mit SharePointWeb Content Management mit SharePoint
Web Content Management mit SharePointAndreas Knauer
 
Backes deutsche telekomgeschaeftskunden
Backes deutsche telekomgeschaeftskundenBackes deutsche telekomgeschaeftskunden
Backes deutsche telekomgeschaeftskundenRalf Backes
 
M-Files macht Microsoft Office 365 zum zentralen Zugriffspunkt für alle Unter...
M-Files macht Microsoft Office 365 zum zentralen Zugriffspunkt für alle Unter...M-Files macht Microsoft Office 365 zum zentralen Zugriffspunkt für alle Unter...
M-Files macht Microsoft Office 365 zum zentralen Zugriffspunkt für alle Unter...bhoeck
 

Mais procurados (10)

Webinar Slides: SharePoint als Drehscheibe fuer ihr Unternehmenswissen
Webinar Slides: SharePoint als Drehscheibe fuer ihr UnternehmenswissenWebinar Slides: SharePoint als Drehscheibe fuer ihr Unternehmenswissen
Webinar Slides: SharePoint als Drehscheibe fuer ihr Unternehmenswissen
 
SharePoint Einführung und Anwenderschulung
SharePoint Einführung und AnwenderschulungSharePoint Einführung und Anwenderschulung
SharePoint Einführung und Anwenderschulung
 
Projektmanagement mit SharePoint/Office365 - LPM
Projektmanagement mit SharePoint/Office365 - LPMProjektmanagement mit SharePoint/Office365 - LPM
Projektmanagement mit SharePoint/Office365 - LPM
 
SharePoint - Master Data Management
SharePoint - Master Data ManagementSharePoint - Master Data Management
SharePoint - Master Data Management
 
Ticketsystem/Servicedesk für Microsoft SharePoint 2013
Ticketsystem/Servicedesk für Microsoft SharePoint 2013 Ticketsystem/Servicedesk für Microsoft SharePoint 2013
Ticketsystem/Servicedesk für Microsoft SharePoint 2013
 
SharePoint Community 12.02.2014: Realisierung einer Website mit SharePoint 2013
SharePoint Community 12.02.2014: Realisierung einer Website mit SharePoint 2013SharePoint Community 12.02.2014: Realisierung einer Website mit SharePoint 2013
SharePoint Community 12.02.2014: Realisierung einer Website mit SharePoint 2013
 
LTRS 2013 - Ticketsystem & Servicedesk für Microsoft SharePoint - Locatech
LTRS 2013 - Ticketsystem & Servicedesk für Microsoft SharePoint - LocatechLTRS 2013 - Ticketsystem & Servicedesk für Microsoft SharePoint - Locatech
LTRS 2013 - Ticketsystem & Servicedesk für Microsoft SharePoint - Locatech
 
Web Content Management mit SharePoint
Web Content Management mit SharePointWeb Content Management mit SharePoint
Web Content Management mit SharePoint
 
Backes deutsche telekomgeschaeftskunden
Backes deutsche telekomgeschaeftskundenBackes deutsche telekomgeschaeftskunden
Backes deutsche telekomgeschaeftskunden
 
M-Files macht Microsoft Office 365 zum zentralen Zugriffspunkt für alle Unter...
M-Files macht Microsoft Office 365 zum zentralen Zugriffspunkt für alle Unter...M-Files macht Microsoft Office 365 zum zentralen Zugriffspunkt für alle Unter...
M-Files macht Microsoft Office 365 zum zentralen Zugriffspunkt für alle Unter...
 

Semelhante a Dienstorientierte Integration von Komponenten

04 Datenintegration und Verwaltung
04 Datenintegration und Verwaltung04 Datenintegration und Verwaltung
04 Datenintegration und Verwaltungklickandbau
 
05 Mehrschichtenarchitekturen und Enterprise Java Beans
05 Mehrschichtenarchitekturen und Enterprise Java Beans05 Mehrschichtenarchitekturen und Enterprise Java Beans
05 Mehrschichtenarchitekturen und Enterprise Java Beansklickandbau
 
03 EAI - Enterprise Application Integration
03 EAI - Enterprise Application Integration03 EAI - Enterprise Application Integration
03 EAI - Enterprise Application Integrationklickandbau
 
02 Webtechnologien - Informatiosinstegration und Webportale
02 Webtechnologien - Informatiosinstegration und Webportale02 Webtechnologien - Informatiosinstegration und Webportale
02 Webtechnologien - Informatiosinstegration und Webportaleklickandbau
 
Umsetzungskonzepte und Nutzen von IT-Dienste-Katalogen für die IT-Versorgung...
Umsetzungskonzepte und Nutzen von IT-Dienste-Katalogen für die IT-Versorgung...Umsetzungskonzepte und Nutzen von IT-Dienste-Katalogen für die IT-Versorgung...
Umsetzungskonzepte und Nutzen von IT-Dienste-Katalogen für die IT-Versorgung...bmake
 
A5 Portal Now Überblick
A5 Portal Now ÜberblickA5 Portal Now Überblick
A5 Portal Now ÜberblickAndreas Schulte
 
C2 Teamwork Portal Mit Web Sphere 6.0
C2 Teamwork Portal Mit Web Sphere 6.0C2 Teamwork Portal Mit Web Sphere 6.0
C2 Teamwork Portal Mit Web Sphere 6.0Andreas Schulte
 
Interoperable IT-Infrastruktur für die öffentliche Verwaltung
Interoperable IT-Infrastruktur für die öffentliche VerwaltungInteroperable IT-Infrastruktur für die öffentliche Verwaltung
Interoperable IT-Infrastruktur für die öffentliche VerwaltungJohann Höchtl
 
BODDy 2014: Ergebnisse Projektgruppe Open Data - Wolfgang Both
BODDy 2014: Ergebnisse Projektgruppe Open Data - Wolfgang BothBODDy 2014: Ergebnisse Projektgruppe Open Data - Wolfgang Both
BODDy 2014: Ergebnisse Projektgruppe Open Data - Wolfgang BothBerlinOpenDataDay
 
Data Quadrant - Daten Management Methode
Data Quadrant - Daten Management MethodeData Quadrant - Daten Management Methode
Data Quadrant - Daten Management MethodeTorsten Glunde
 
SOA im Kontext anderer IT-Trends
SOA im Kontext anderer IT-TrendsSOA im Kontext anderer IT-Trends
SOA im Kontext anderer IT-TrendsMartina Goehring
 
Data Management im Zeitalter von Web 2.0 und Semantic Web
Data Management im Zeitalter von Web 2.0 und Semantic WebData Management im Zeitalter von Web 2.0 und Semantic Web
Data Management im Zeitalter von Web 2.0 und Semantic WebAndreas Schmidt
 
SaaS EcoSystem-Roadshow_hybrid_cloud_connectivity
SaaS EcoSystem-Roadshow_hybrid_cloud_connectivitySaaS EcoSystem-Roadshow_hybrid_cloud_connectivity
SaaS EcoSystem-Roadshow_hybrid_cloud_connectivitySaaS-EcoSystem
 
Roland Böhme (Solitas)
Roland Böhme (Solitas)Roland Böhme (Solitas)
Roland Böhme (Solitas)Praxistage
 
Informationsintegration und Webportale - Einführungsveranstaltung
Informationsintegration und Webportale - EinführungsveranstaltungInformationsintegration und Webportale - Einführungsveranstaltung
Informationsintegration und Webportale - Einführungsveranstaltungklickandbau
 
MEAN SCS in der Cloud
MEAN SCS in der CloudMEAN SCS in der Cloud
MEAN SCS in der CloudTorsten Fink
 
2016 pcc presse_03_dcc_ontras_dcc_ver05
2016 pcc presse_03_dcc_ontras_dcc_ver052016 pcc presse_03_dcc_ontras_dcc_ver05
2016 pcc presse_03_dcc_ontras_dcc_ver05Ulrich Schmidt
 

Semelhante a Dienstorientierte Integration von Komponenten (20)

04 Datenintegration und Verwaltung
04 Datenintegration und Verwaltung04 Datenintegration und Verwaltung
04 Datenintegration und Verwaltung
 
05 Mehrschichtenarchitekturen und Enterprise Java Beans
05 Mehrschichtenarchitekturen und Enterprise Java Beans05 Mehrschichtenarchitekturen und Enterprise Java Beans
05 Mehrschichtenarchitekturen und Enterprise Java Beans
 
03 EAI - Enterprise Application Integration
03 EAI - Enterprise Application Integration03 EAI - Enterprise Application Integration
03 EAI - Enterprise Application Integration
 
02 Webtechnologien - Informatiosinstegration und Webportale
02 Webtechnologien - Informatiosinstegration und Webportale02 Webtechnologien - Informatiosinstegration und Webportale
02 Webtechnologien - Informatiosinstegration und Webportale
 
Umsetzungskonzepte und Nutzen von IT-Dienste-Katalogen für die IT-Versorgung...
Umsetzungskonzepte und Nutzen von IT-Dienste-Katalogen für die IT-Versorgung...Umsetzungskonzepte und Nutzen von IT-Dienste-Katalogen für die IT-Versorgung...
Umsetzungskonzepte und Nutzen von IT-Dienste-Katalogen für die IT-Versorgung...
 
A5 Portal Now Überblick
A5 Portal Now ÜberblickA5 Portal Now Überblick
A5 Portal Now Überblick
 
C2 Teamwork Portal Mit Web Sphere 6.0
C2 Teamwork Portal Mit Web Sphere 6.0C2 Teamwork Portal Mit Web Sphere 6.0
C2 Teamwork Portal Mit Web Sphere 6.0
 
Interoperable IT-Infrastruktur für die öffentliche Verwaltung
Interoperable IT-Infrastruktur für die öffentliche VerwaltungInteroperable IT-Infrastruktur für die öffentliche Verwaltung
Interoperable IT-Infrastruktur für die öffentliche Verwaltung
 
2010 09 30 11-30 thomas marx
2010 09 30 11-30 thomas marx2010 09 30 11-30 thomas marx
2010 09 30 11-30 thomas marx
 
BODDy 2014: Ergebnisse Projektgruppe Open Data - Wolfgang Both
BODDy 2014: Ergebnisse Projektgruppe Open Data - Wolfgang BothBODDy 2014: Ergebnisse Projektgruppe Open Data - Wolfgang Both
BODDy 2014: Ergebnisse Projektgruppe Open Data - Wolfgang Both
 
Data Quadrant - Daten Management Methode
Data Quadrant - Daten Management MethodeData Quadrant - Daten Management Methode
Data Quadrant - Daten Management Methode
 
SOA im Kontext anderer IT-Trends
SOA im Kontext anderer IT-TrendsSOA im Kontext anderer IT-Trends
SOA im Kontext anderer IT-Trends
 
Data Management im Zeitalter von Web 2.0 und Semantic Web
Data Management im Zeitalter von Web 2.0 und Semantic WebData Management im Zeitalter von Web 2.0 und Semantic Web
Data Management im Zeitalter von Web 2.0 und Semantic Web
 
SaaS EcoSystem-Roadshow_hybrid_cloud_connectivity
SaaS EcoSystem-Roadshow_hybrid_cloud_connectivitySaaS EcoSystem-Roadshow_hybrid_cloud_connectivity
SaaS EcoSystem-Roadshow_hybrid_cloud_connectivity
 
Roland Böhme (Solitas)
Roland Böhme (Solitas)Roland Böhme (Solitas)
Roland Böhme (Solitas)
 
Informationsintegration und Webportale - Einführungsveranstaltung
Informationsintegration und Webportale - EinführungsveranstaltungInformationsintegration und Webportale - Einführungsveranstaltung
Informationsintegration und Webportale - Einführungsveranstaltung
 
MEAN SCS in der Cloud
MEAN SCS in der CloudMEAN SCS in der Cloud
MEAN SCS in der Cloud
 
2016 pcc presse_03_dcc_ontras_dcc_ver05
2016 pcc presse_03_dcc_ontras_dcc_ver052016 pcc presse_03_dcc_ontras_dcc_ver05
2016 pcc presse_03_dcc_ontras_dcc_ver05
 
Portale now
Portale nowPortale now
Portale now
 
PLM-Zukunftsthemen
PLM-ZukunftsthemenPLM-Zukunftsthemen
PLM-Zukunftsthemen
 

Mais de Andreas Walter

Ferienwohnung www.apartment-baden.com Baden-Baden
Ferienwohnung www.apartment-baden.com Baden-BadenFerienwohnung www.apartment-baden.com Baden-Baden
Ferienwohnung www.apartment-baden.com Baden-BadenAndreas Walter
 
Pictorial Magazin Artikel 01 2010
Pictorial Magazin Artikel 01 2010Pictorial Magazin Artikel 01 2010
Pictorial Magazin Artikel 01 2010Andreas Walter
 
Imagenotion Ix Magazin Artikel 11/2008
Imagenotion Ix Magazin Artikel 11/2008Imagenotion Ix Magazin Artikel 11/2008
Imagenotion Ix Magazin Artikel 11/2008Andreas Walter
 
ImageNotion Flyer 2010
ImageNotion Flyer 2010ImageNotion Flyer 2010
ImageNotion Flyer 2010Andreas Walter
 
Innovative Bildverwaltung mit ImageNotion
Innovative Bildverwaltung mit ImageNotionInnovative Bildverwaltung mit ImageNotion
Innovative Bildverwaltung mit ImageNotionAndreas Walter
 
The ImageNotion Beta version
The ImageNotion Beta versionThe ImageNotion Beta version
The ImageNotion Beta versionAndreas Walter
 
Kundenpraesentation ImageNotion 2010
Kundenpraesentation ImageNotion 2010Kundenpraesentation ImageNotion 2010
Kundenpraesentation ImageNotion 2010Andreas Walter
 

Mais de Andreas Walter (7)

Ferienwohnung www.apartment-baden.com Baden-Baden
Ferienwohnung www.apartment-baden.com Baden-BadenFerienwohnung www.apartment-baden.com Baden-Baden
Ferienwohnung www.apartment-baden.com Baden-Baden
 
Pictorial Magazin Artikel 01 2010
Pictorial Magazin Artikel 01 2010Pictorial Magazin Artikel 01 2010
Pictorial Magazin Artikel 01 2010
 
Imagenotion Ix Magazin Artikel 11/2008
Imagenotion Ix Magazin Artikel 11/2008Imagenotion Ix Magazin Artikel 11/2008
Imagenotion Ix Magazin Artikel 11/2008
 
ImageNotion Flyer 2010
ImageNotion Flyer 2010ImageNotion Flyer 2010
ImageNotion Flyer 2010
 
Innovative Bildverwaltung mit ImageNotion
Innovative Bildverwaltung mit ImageNotionInnovative Bildverwaltung mit ImageNotion
Innovative Bildverwaltung mit ImageNotion
 
The ImageNotion Beta version
The ImageNotion Beta versionThe ImageNotion Beta version
The ImageNotion Beta version
 
Kundenpraesentation ImageNotion 2010
Kundenpraesentation ImageNotion 2010Kundenpraesentation ImageNotion 2010
Kundenpraesentation ImageNotion 2010
 

Dienstorientierte Integration von Komponenten

  • 1. INFORMATIONSINTEGRATION UND WEBPORTALE Vorlesung # 10, 27.01.2014 : Dienstorientierte Integration von Komponenten Dr. Andreas Walter INFORMATIONSINTEGRATION UND WEBPORTALE Klick-And-Bau Informationsintegration und Webportale KIT – Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu
  • 2. Motivation Komponentensicht auf klick-und-bau: Komponenten als Dienste Klick-undbau.com Interne Dienste Maestro Paypal Warenverwaltung Bestellsystem Kundenverwaltung Bezahlsystem Twitter Facebook Social Network Dienste ContentManagement Suchmaschine Google+ Bezahldienste DoYou MasterCard VISA Webseitenverwaltung Dienstanbieter für Inhalte Anbieter 1: OBI Anbieter 3: Praktiker Anbieter 3: Hagebau Warenverwaltung 2 Anbieter 2: Hornbach Warenverwaltung Warenverwaltung Warenverwaltung 27.01.2014 Bestellsystem Bestellsystem Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Bestellsystem Bestellsystem Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 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äsentationsebene 3 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 4. INTEGRATIONSEBENEN 4 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 5. Integrationsebenen: technische Ebene Präsentationsebene Prozeßebene Anwendungslogikebene Informationsebene Technische Ebene 5 27.01.2014 Netzwerkprotokolle, RPC, OS Syntax, Datenbanktreiber Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 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“) 6 03.02.2014 Prof. Max Mustermann - Präsentationstitel Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 7. Integrationsebenen: Informationsebene Präsentationsebene Prozeßebene Anwendungslogikebene Informationsebene Technische Ebene 7 03.02.2014 Informationsquellen Datenmodell, Schema, Semantik der Inhalte Netzwerkprotokolle, RPC, OS Syntax, Datenbanktreiber Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 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“) Anbieter 1: OBI 03.02.2014 Anbieter 3: Praktiker Warenverwaltung 8 Anbieter 2: Hornbach Warenverwaltung Warenverwaltung Bestellsystem Prof. Max Mustermann - Präsentationstitel Bestellsystem Bestellsystem Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 9. Integrationsebenen: Anwendungslogik Präsentationsebene Prozeßebene Anwendungslogikebene Prozessebene Orchestrierung von Anwendung Anwendungsentwicklung Klassen, Objekte, Schnittstellen, Methoden Informationsebene Technische Ebene 9 03.02.2014 Informationsquellen Datenmodell, Schema, Semantik der Inhalte Netzwerkprotokolle, RPC, OS Syntax, Datenbanktreiber Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 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 Interface1: Methoden 03.02.2014 Interface3: Methoden Warenverwaltung 10 Interface2: Methoden Warenverwaltung Warenverwaltung Bestellsystem Prof. Max Mustermann - Präsentationstitel Bestellsystem Bestellsystem Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 11. 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 11 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 12. GENERELLE INTEGRATION VON KOMPONENTEN ALS DIENSTE 12 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 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? 13 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 14. Denken in Diensten (2) Konsequente Trennung zwischen Analogie Schnittstelle nach außen veröffentlicht dauerhaft Standardisierung von Diensten möglich Produktkatalog mit Preisen und Bestell-/ Lieferbedingungen Implementierung vollkommen privat kann beliebig geändert werden insbesondere: Austausch von Komponenten gegenüber besseren möglich 14 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Interne Geschäftsprozesse (Logistik, Buchhaltung etc.) Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 15. Dienstorientierte Architekturen Dienstverzeichnis (service registry) find Dienstnehmer (service requestor) 15 27.01.2014 publish bind invoke Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Dienstgeber (service provider) Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 16. Dienstorientierte Architekturen – Lose Kopplung Dienstnehmer (service requestor) nutzen Dienstnehmer (service requestor) nutzen Mehrere Dienste hinter derselben Fassade Dienstnehmer (service requestor) nutzen mehrschrittige Verarbeitung 16 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Implementierungen werden austauschbar Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 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 17 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 18. 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 18 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 19. SOAP – als ein Beispiel zur Erstellung von Komponenten als Diensten WEBSERVICES 19 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 20. 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) 20 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 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 21 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 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 22 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 23. SOAP, UDDI, WSDL Registry UDDI Client 23 27.01.2014 UDDI SOAP Dr. Andreas Walter – Dienstorientierte Integration von Komponenten WSDL UDDI Web Service Informationsintegration und Web-Portale Wintersemester 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 Dienstantwort klassischer RPC asynchrone Aufrufe über SMTP (Mail): Entkopplung von Aufruf und Antwort Messaging Kodierungsregeln für Datentypen Standard-Regeln entstammen XML Schema 24 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 25. SOAP: Ein Beispiel  Antwort 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> 25 27.01.2014 <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 Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 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 26 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 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> 27 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 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 28 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 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 29 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 30. WSDL: Aufbau Port Port SOAP-Binding Port andere Protokollbindung Operationen (Abstrakte Schnittstelle, PortType) mit ihrer Signatur Messages + Schema Definition von Datenstrukturen 30 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 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> 31 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 32. Typdefinitionen Typdefinitionen in WSDL sind eingebettete XML SchemaDefinitionen <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> 32 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 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> 33 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 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> 34 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 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) 35 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 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"> Typ für <xsd:attribute ref="soapenc:arrayType" Arrays, ebens wsdl:arrayType="typens:Details[]"/> </xsd:restriction> o Listen </xsd:complexContent> möglich... </xsd:complexType> 36 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 37. Protokollbindung RPC als Interaktions<binding name="AmazonSearchBinding" paradigma type="typens:AmazonSearchPort"> SOAP <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> über 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> 37 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 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 38 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 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 39 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 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 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. UDDI Interface1: Methoden 27.01.2014 Interface3: Methoden Warenverwaltung 40 Interface2: Methoden Warenverwaltung Warenverwaltung Bestellsystem Bestellsystem Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Bestellsystem Informationsintegration und Web-Portale Wintersemester 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 • • 41 Vorteil: einfacher, on-the-fly. Nachteil: u.u spezifisch für eine Programmiersprache 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 42. WDL Top Down mit JAX-WS in JAVA 1. 2. 3. 4. 5. Erstelle gewöhnliches JAVA Interface Annotiere mit spezifischen Annotationen für JAX-WS Deployment in z.B. Jboss Aufruf der annotierten Adresse bringt WSDL 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 … 42 27.01.2014 Prof. Max Mustermann - Präsentationstitel Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 43. UMSETZUNG / INTEGRATION IN KLICK-AND-BAU.COM MIT DIENSTEN 43 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 44. Motivation Komponentensicht auf klick-und-bau: Komponenten als Dienste Klick-undbau.com Interne Dienste Maestro Paypal Warenverwaltung Bestellsystem Kundenverwaltung Bezahlsystem Twitter Facebook Social Network Dienste ContentManagement Suchmaschine Google+ Bezahldienste DoYou MasterCard VISA Webseitenverwaltung Dienstanbieter für Inhalte Anbieter 1: OBI Anbieter 3: Praktiker Anbieter 3: Hagebau Warenverwaltung 44 Anbieter 2: Hornbach Warenverwaltung Warenverwaltung Warenverwaltung 27.01.2014 Bestellsystem Bestellsystem Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Bestellsystem Bestellsystem Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 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 45 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 46. Datenintegration der Anbieterdaten: ideal Ideal: Spezifiziertes Interface wird von allen Anbietern umgesetzt: Klick-Und-Bau Interface1: Methoden Interface2: Methoden Interface3: Methoden Warenverwaltung Warenverwaltung Warenverwaltung Bestellsystem Bestellsystem Bestellsystem 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) 46 03.02.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 47. Datenintegration der Anbieterdaten: Variante Variante: Anbieter wollen selbst bestimmen, wann Daten geschickt werden Klick-Und-Bau Interface: ArticleService ArticleService Client ArticleService Client ArticleService Client Warenverwaltung Warenverwaltung Warenverwaltung Bestellsystem Bestellsystem Bestellsystem (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! 47 03.02.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 48. Interne Dienste Klick-undbau.com Webseitenverwaltung SearchService ContentManagement Suchmaschine Interne Dienste ArticleService Warenverwaltung OrderService CustomerService PaymentService Bestellsystem Kundenverwaltung Bezahlsystem Über alle internen Komponenten werden Schnittstellen erstellt (zumeist als Standarddienst von Anbietern erhältlich) => Aggregation von Diensten: z.b. ArticleService, PayementService 48 03.02.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 49. Aggregation von Diensten Hier gezeigt an Beispiel PaymentService: Alle Bezahldienste bieten Webservice-Schnittstellen an Ein Interface für alle Anbieter PaymentService Implementierung mit WS-Clients VisaService VISA 49 03.02.2014 MCService MAESTRO Master Card Dr. Andreas Walter – Dienstorientierte Integration von Komponenten PayPal Informationsintegration und Web-Portale Wintersemester 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) Klick-undbau.com Webseitenverwaltung ContentManagement SearchService Interne Dienste ArticleService 50 03.02.2014 OrderService CustomerService Dr. Andreas Walter – Dienstorientierte Integration von Komponenten PaymentService Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 51. REST INTERFACES 51 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 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 52 Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 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 53 Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 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) 54 Informationsintegration und Web-Portale Wintersemester 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. 55 Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 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 56 Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 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 58 Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 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 59 Informationsintegration und Web-Portale Wintersemester 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 60 03.02.2014 Informationsintegration und Web-Portale Wintersemester 2013/2014 60
  • 61. REST + JSON order: { "id": "http://example.com/customers/1234" "amount": "23", "product": "http://example.com/products/4554" "customer": "http://example.com/customers/1234" } 61 03.02.2014 Informationsintegration und Web-Portale Wintersemester 2013/2014 61
  • 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 62 Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 63. INTEGRATION AUF PRÄSENTATIONSEBENE 63 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 64. 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 64 Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 65. iGoogle / Google Sites 65 Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 66. Google Maps Mashups 66 Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 67. 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>"); 67 }); Informationsintegration und Web-Portale Wintersemester 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 68 Published APP based on Google Scripts Informationsintegration und Web-Portale Wintersemester 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änkt oft fehlen Validierungs-, Authentifizierungs- und andere „Enterprise-Level“Funktionen 69 Informationsintegration und Web-Portale Wintersemester 2013/2014
  • 70. 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/ 70 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 2013/2014