INFORMATIONSINTEGRATION UND WEBPORTALE
Vorlesung # 10, 27.01.2014 : Dienstorientierte Integration
von Komponenten

Dr. And...
Motivation
Komponentensicht auf klick-und-bau: Komponenten als Dienste
Klick-undbau.com

Interne Dienste

Maestro

Paypal
...
Inhalt
Motivation
Integrationsebenen
Generelle Integration von Komponenten als Dienste
SOAP basierende Webservices
SOAP, W...
INTEGRATIONSEBENEN

4

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegra...
Integrationsebenen: technische Ebene

Präsentationsebene

Prozeßebene

Anwendungslogikebene

Informationsebene

Technische...
Technische Ebene – Sichtweise und Probleme
Sichtweise:
• Tatsächliche Verbindung zu einem System
• Spezielle Eigenschaften...
Integrationsebenen: Informationsebene

Präsentationsebene

Prozeßebene

Anwendungslogikebene

Informationsebene

Technisch...
Informationsebene – Sichtweise und Probleme
Sichtweise:
• Tatsächliche Verbindung zu einer Datenquelle, z.b. SQL Datenbank...
Integrationsebenen: Anwendungslogik

Präsentationsebene

Prozeßebene

Anwendungslogikebene

Prozessebene
Orchestrierung vo...
Anwendungsebene
Sichtweise:
• Klassen und Objekte: enthalten Daten & Logik der Anwendung
• Schnittstellen und Methoden: Ka...
Komponenten als Schnittstellen
Verdecken unterliegende Datenquellen und Systeme:
löst Problem der Heterogenität von z.b. D...
GENERELLE INTEGRATION
VON KOMPONENTEN ALS
DIENSTE
12

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von K...
Denken in Diensten
Übertragung der Dienstleistungsorientierung in der internen (und
externen) Unternehmensorganisation auf...
Denken in Diensten (2)
Konsequente Trennung zwischen
Analogie

Schnittstelle
nach außen veröffentlicht
dauerhaft
Standardi...
Dienstorientierte Architekturen

Dienstverzeichnis
(service registry)

find

Dienstnehmer
(service requestor)

15

27.01.2...
Dienstorientierte Architekturen – Lose
Kopplung
Dienstnehmer
(service requestor)

nutzen

Dienstnehmer
(service requestor)...
Kernprobleme dienstorientierter
Architekturen
Kommunikationsprotokoll (technische Ebene)
Kodierung von Methodenaufruf und ...
Interaktionsparadigmen
Entfernter Methodenaufruf (Remote Procedure Call)
Übertragung des Methodenaufrufs in Programmierspr...
SOAP – als ein Beispiel zur Erstellung von Komponenten als
Diensten

WEBSERVICES

19

27.01.2014

Dr. Andreas Walter – Die...
SOAP basierte WEBSERVICES
SOAP basierte Webservices als Beispiel, da diese
• Klar definierte Schnittstelle ermöglichen
• K...
Was sind Web Services?
Web Services sind
verteilte,
lose gekoppelte und
wiederverwendbare Software-Komponenten, auf die
üb...
Web Services — Die Technik
SOAP
(Simple Object Access Protocol)
Aufrufprotokoll
unterschiedliche Transportprotokolle: HTTP...
SOAP, UDDI, WSDL

Registry
UDDI

Client

23

27.01.2014

UDDI

SOAP

Dr. Andreas Walter – Dienstorientierte Integration vo...
SOAP: Überblick
In XML kodierter entfernter Methodenaufruf (RPC) bzw.
Nachrichtenaustauschprotokoll
Beliebiges Transportpr...
SOAP: Ein Beispiel

 Antwort

Aufruf
<soap:Envelope>
<soap:Body>
<xmlns:m="http://www.stock.org/stock" />
<m:GetStockPric...
SOAP: Aufbau eines Aufrufs
SOAP-Envelope
SOAP-Header
z.B. Authentifizierung, Routing, Logging, Transaktionsnummern
Metadat...
SOAP: Beispiel Amazon Artikel WS
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas....
SOAP und Sicherheit
Authentisierung
Verteilte Authentisierungsprotokolle über SOAP
(z.B. Kerberos)

Signaturen
XML Signatu...
WSDL: Überblick
Welche Operationen bietet der Dienst an?
Welche Parameter haben die Operationen
Struktur der Aufrufnachric...
WSDL: Aufbau

Port

Port

SOAP-Binding

Port

andere Protokollbindung

Operationen (Abstrakte Schnittstelle, PortType)
mit...
WSDL: Aufbau (2)
<definitions>
<types>
<xsd:schema> Typdefinitionen </xsd:schema>
</types>
<message name="..."> Nachrichte...
Typdefinitionen
Typdefinitionen in WSDL sind eingebettete XML SchemaDefinitionen
<definitions name="AmazonSearch" targetNa...
Nachrichten
Nachrichten können auch aus mehreren Teilen bestehen
Jeder Teil wird mit einem Schema-Typ typisiert
<message n...
Operationen
Schnittstellendefinition
Name der Methode, Eingabe- und Ausgabeparameter
Fehlerbehandlung
<fault name="..." me...
Protokollbindung
Protokollspezifische Angaben
Welches (Transport-) Protokoll?
SOAP over HTTP (oder SMTP, FTP), HTTP GET/PO...
Typdefinitionen (2)
<xsd:complexType name="ProductInfo">
<xsd:all><xsd:element name="Details" type="typens:DetailsArray"/>...
Protokollbindung
RPC als
Interaktions<binding name="AmazonSearchBinding"
paradigma
type="typens:AmazonSearchPort">
SOAP
<s...
Ports
Festlegen der konkreten Netzwerkadresse
<service name="AmazonSearchService">
<port name="AmazonSearchPort"
binding="...
WSDL: Fazit
WSDL erlaubt die Beschreibung aller Informationen über die
Schnittstelle und die Erreichbarkeit eines Dienstes...
UDDI - Universal Description, Discovery and
Integration
White , yellow, green pages: URL eines Dienstes, Anbieterinformati...
Erstellung von WSDL: bottom up vs. Top down
WSDL kann über zwei Wege beschrieben werden
• Bottom up: Modellierung in UML T...
WDL Top Down mit JAX-WS in JAVA
1.
2.
3.
4.
5.

Erstelle gewöhnliches JAVA Interface
Annotiere mit spezifischen Annotation...
UMSETZUNG / INTEGRATION
IN KLICK-AND-BAU.COM MIT
DIENSTEN
43

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integrati...
Motivation
Komponentensicht auf klick-und-bau: Komponenten als Dienste
Klick-undbau.com

Interne Dienste

Maestro

Paypal
...
Generelle Umsetzung
Alle Datenquellen erhalten Schnittstelle zum Zugriff
Definition benötigter Daten zum Laden: Abfragemet...
Datenintegration der Anbieterdaten: ideal
Ideal: Spezifiziertes Interface wird von allen Anbietern umgesetzt:
Klick-Und-Ba...
Datenintegration der Anbieterdaten: Variante
Variante: Anbieter wollen selbst bestimmen, wann Daten geschickt
werden
Klick...
Interne Dienste
Klick-undbau.com
Webseitenverwaltung
SearchService

ContentManagement

Suchmaschine

Interne Dienste
Artic...
Aggregation von Diensten
Hier gezeigt an Beispiel PaymentService:
Alle Bezahldienste bieten Webservice-Schnittstellen an

...
Erstellung der Webanwendung
Sämtliche Controller kommunizieren mit Dienstschnittstellen
(vereinfacht stark das Deployment ...
REST INTERFACES

51

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Informationsintegrati...
Ausgangspunkt
Obwohl SOAP als Protokoll „einfach“ sein sollte
(im Vergleich zu CORBA und anderen verteilten Objektprotokol...
REST
Representational State Transfer
Architekturstil für Hypermedia Systeme
hervorgegangen aus der Doktorarbeit von Roy Fi...
REST-Grundkonzepte
Ressourcen
haben eine URI
sind die primären Entitäten der Anwendung
Z.B. Produkte, Warenkorb, etc.

Rep...
Charakteristika einer
REST-Anwendung
Wie bei der Serviceorientierung:
Die Kommunikation wird bei Bedarf durch den Client i...
REST: Grundidee
Zugriffsprotokoll ist ausschließlich HTTP
Kann die HTTP-Methoden und ihre Semantik nutzen
HTTP GET für die...
Beispiel

57

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

Informationsintegration und Web-Portale
Wintersemester 2013...
REST-Beispiel (2)
GET /customers/1234 HTTP/1.1
Host: example.com
Accept: application/vnd.mycompany.customer+xml

Ruft die ...
REST-Beispiel (3)
POST /orders/ HTTP/1.1
Host: example.com
<order id='http://example.com/customers/1234' >
<amount>23</amo...
REST + JSON
Ein erheblicher Overhead von Web Services kommt auch durch die
XML-Serialisierung zustanden, was sich insbeson...
REST + JSON

order:
{
"id": "http://example.com/customers/1234"
"amount": "23",
"product": "http://example.com/products/45...
REST vs. SOAP
REST reduziert den Overhead von Service-Aufrufen durch
Konventionen
Dadurch weniger Flexibilität
Aber der 80...
INTEGRATION AUF
PRÄSENTATIONSEBENE
63

27.01.2014

Dr. Andreas Walter – Dienstorientierte Integration von Komponenten

Inf...
Präsentationsebene
Grundidee ist hier: Darstellung von Inhalten unterschiedlicher Quellen
Ansätze
Einbindung gerenderter I...
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 GMa...
Cloud Mashups
Cloud als Datenbasis / Businesslogik (Implementiert z.B. in JAVA / JAVA-Script)

Beispiel: Google Cloud Serv...
Fazit: Leichtgewichtige Ansätze
Leichtgewichtige, Web 2.0-inspirierte Dienste stellen kaum Hürden an
Entwickler
keine komp...
Literatur
SOAP, WSDL, UDDI
Graham et al., Building Web Services with Java, SAMS Publishing, 2002

JAX-WS
http://jax-ws.jav...
Nächste SlideShare
Wird geladen in …5
×

Dienstorientierte Integration von Komponenten

555 Aufrufe

Veröffentlicht am

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

Veröffentlicht in: Bildung
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
555
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
22
Aktionen
Geteilt
0
Downloads
5
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Dienstorientierte Integration von Komponenten

  1. 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. 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. 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. 4. INTEGRATIONSEBENEN 4 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 2013/2014
  5. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 51. REST INTERFACES 51 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 2013/2014
  52. 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. 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. 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. 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. 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
  57. 57. Beispiel 57 http://www.infoq.com/articles/rest-introduction Informationsintegration und Web-Portale Wintersemester 2013/2014
  58. 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. 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. 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. 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. 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. 63. INTEGRATION AUF PRÄSENTATIONSEBENE 63 27.01.2014 Dr. Andreas Walter – Dienstorientierte Integration von Komponenten Informationsintegration und Web-Portale Wintersemester 2013/2014
  64. 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. 65. iGoogle / Google Sites 65 Informationsintegration und Web-Portale Wintersemester 2013/2014
  66. 66. Google Maps Mashups 66 Informationsintegration und Web-Portale Wintersemester 2013/2014
  67. 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. 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. 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. 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

×