Klick-And-Bau. Vorlesung # 8, 08.12.2014 : Dienstorientierte Integration von Komponenten. www.kit.edu. Informationsintegration und Webportale

Ähnliche Dokumente
INFORMATIONSINTEGRATION UND WEBPORTALE

Web-Services Grundlagen

Dienstorientierte Integration und Web Services

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste

Wiederholung: Beginn

Verteilte Systeme: Übung 4

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

WebServices Zwischen Buzzword und Nutzen

Seminar E-Services WS 02/03 WSDL. Web Services Description Language. Moritz Kleine SES 02 - WSDL

Enterprise Applikation Integration und Service-orientierte Architekturen. 09 Simple Object Access Protocol (SOAP)

Autor: Peter Seemann Seminar: Softwarearchitekturen Betreuer: Benedikt Meurer

Implementierung von Web Services: Teil I: Einleitung / SOAP

Zustandsgebundene Webservices

Web-Sevices : WSDL Entwicklung von Web-Anwendungen

Workflow, Business Process Management, 4.Teil

SOA. Prof. Dr. Eduard Heindl Hochschule Furtwangen Wirtschaftsinformatik

RESTful Web. Representational State Transfer

WSDL. Web Services Description Language. André Vorbach. André Vorbach

Java und XML 2. Java und XML

Themen. Web Services und SOA. Stefan Szalowski Daten- und Online-Kommunikation Web Services

SAP NetWeaver Gateway. 2013

E-Services mit der Web-Service-Architektur

Web-Konzepte für das Internet der Dinge Ein Überblick

Programm. Dienstorientierte Integration und Web Services. Integrationsebenen (1) Integrationsebenen (2) Integrationsebenen (2) Denken in Diensten

WebService in Java SE und EE

Auszug aus JAX-WS Folien

VVA Webservice Online Lieferbarkeits-Abfrage

Ein Beispiel. Ein Unternehmen will Internettechnologien im Rahmen des E- Business nutzen Welche Geschäftsprozesse?

Man liest sich: POP3/IMAP

Flash, Network und Facebook. Steven Mohr

3-schichtige Informationssystem-Architektur

SOA mit.net: Vom Geschäftsprozess zur Lösung

Web Services: Inhalt

Thema: Web Services. Was ist ein Web Service?

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

Übersicht. Angewandte Informatik 2 - Tutorium 6. Teile einer WSDL-Datei. Was ist WSDL. Besprechung: Übungsblatt 5

Content Management System mit INTREXX 2002.

WSDL. Heutige Vorlesung. Wozu WSDL? Wie wird WSDL verwendet? Language. Services. Description. Web. Abstrakte vs. konkrete Syntax

3. Stored Procedures und PL/SQL

Hauptseminar Internetdienste Prof. F. Schweiggert Sommersemester 2004 Universität Ulm. Web Services. Boto Bako

Semantic Web Services

XML und SOAP Einführung und Grundlagen

SDD System Design Document

Grundlagen der Web-Entwicklung INF3172

OP-LOG

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

Gesicherte Prozeduren

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Übungen zur Softwaretechnik

Systembeschreibung. Masterplan Kommunikationsinterface. ASEKO GmbH. Version 1.0 Status: Final

b2boptic / SF7 Freiburg

Haben Sie schon einmal aus einem ScreenCobol Requestor ein Java Programm aufgerufen?

Ihr CMS für die eigene Facebook Page - 1

Java Enterprise Architekturen Willkommen in der Realität

Mobilkommunikation. REST-basierte Dienste für verteilte, mobile Anwendungen. A. Gillert, A. Grebe, M. Hüffmeyer, C. Vogt

5. Übung zur Vorlesung Service-orientierte Architekturen

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

Übersicht. Eclipse Foundation. Eclipse Plugins & Projects. Eclipse Ganymede Simultaneous Release. Web Tools Platform Projekt. WSDL Editor.

Ausschreiben mit Jobplattformen. Folie 1

Microsoft.NET und SunONE

Gliederung. 1. Einleitung (1) 1. Einleitung (3) 1. Einleitung (2)

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Verteilte Systeme: Übung 4

WS 2002/03. Prof. Dr. Rainer Manthey. Institut für Informatik III Universität Bonn. Informationssysteme. Kapitel 1. Informationssysteme

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2

KURZANLEITUNG CYBERDUCK MIT CLOUD OBJECT STORAGE

<Insert Picture Here> Einführung in SOA

Objektorientierte Programmierung

Datenmanagement in Android-Apps. 16. Mai 2013

5. Programmierschnittstellen für XML

Der schnelle Weg zu Ihrer eigenen App

Message Oriented Middleware am Beispiel von XMLBlaster

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee Berlin Tel.:+49(0) Fax.:+49(0)

Wie richten Sie Ihr Web Paket bei Netpage24 ein

Einbinden von iframes in eine Facebook Fan Page

Web-Services - die GIS-Zukunft?

Allgemeines zu Datenbanken

IAWWeb PDFManager. - Kurzanleitung -

STARFACE SugarCRM Connector

Virtual Private Network

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Online Banking System

Skript Pilotphase für Arbeitsgelegenheiten

Updatehinweise für die Version forma 5.5.5

Web Sockets mit HTML5. Quelle:

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Content Management Datenbanken, Schnittstellen

Überblick und Vergleich von NoSQL. Datenbanksystemen

Überblick. Multi-Cloud Computing Motivation Redundant Array of Cloud Storage (RACS) Zusammenfassung. c td MWCC (WS14/15) Multi-Cloud Computing 13 1

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail:

Acceptor-Connector. Acceptor-Connector

Typisierung des Replikationsplan Wirries, Denis Datenbankspezialist

Prinzipien Objektorientierter Programmierung

Transkript:

INFORMATIONSINTEGRATION UND WEBPORTALE Vorlesung # 8, : 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

DoYou Google+ Facebook Twitter Motivation Komponentensicht auf klick-und-bau: Komponenten als Dienste Klick-undbau.com VISA Paypal MasterCard Maestro Bezahldienste Warenverwaltung Suchmaschine Webseitenverwaltung Bestellsystem Content- Management Interne Dienste Kundenverwaltung Bezahlsystem Social Network Dienste Anbieter 1: OBI Anbieter 2: Hornbach Dienstanbieter für Inhalte Anbieter 3: Praktiker Anbieter 3: Hagebau Warenverwaltung Bestellsystem Warenverwaltung Bestellsystem Warenverwaltung Bestellsystem Warenverwaltung Bestellsystem 2

Inhalt Motivation Integrationsebenen Generelle Integration von Komponenten als Dienste SOAP basierende Webservices SOAP, WSDL, UDDI Erstellung von WSDL: bottom up vs. Top down Umsetzung / Integration in klick-and-bau.com mit Web-Services REST vereinfachte Erstellung von Diensten Mashups: Integration auf Präsentations- und Businessebene 3

INTEGRATIONSEBENEN 4

Integrationsebenen: technische Ebene Präsentationsebene Prozeßebene Anwendungslogikebene Informationsebene Technische Ebene Netzwerkprotokolle, RPC, OS Syntax, Datenbanktreiber 5

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 Prof. Max Mustermann - Präsentationstitel

Integrationsebenen: Informationsebene Präsentationsebene Prozeßebene Anwendungslogikebene Informationsebene Technische Ebene Informationsquellen Datenmodell, Schema, Semantik der Inhalte Netzwerkprotokolle, RPC, OS Syntax, Datenbanktreiber 7

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 Anbieter 2: Hornbach Anbieter 3: Praktiker Warenverwaltung Bestellsystem Warenverwaltung Bestellsystem Warenverwaltung Bestellsystem 8 Prof. Max Mustermann - Präsentationstitel

Integrationsebenen: Anwendungslogik Präsentationsebene Prozeßebene Anwendungslogikebene Informationsebene Technische Ebene Prozessebene Orchestrierung von Anwendung Anwendungsentwicklung Klassen, Objekte, Schnittstellen, Methoden Informationsquellen Datenmodell, Schema, Semantik der Inhalte Netzwerkprotokolle, RPC, OS Syntax, Datenbanktreiber 9

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 Interface2: Methoden Interface3: Methoden Warenverwaltung Bestellsystem Warenverwaltung Bestellsystem Warenverwaltung Bestellsystem 10 Prof. Max Mustermann - Präsentationstitel

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

GENERELLE INTEGRATION VON KOMPONENTEN ALS DIENSTE 12

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

Denken in Diensten (2) Konsequente Trennung zwischen Analogie Schnittstelle nach außen veröffentlicht dauerhaft Produktkatalog mit Preisen und Bestell-/ Lieferbedingungen Standardisierung von Diensten möglich Implementierung vollkommen privat kann beliebig geändert werden insbesondere: Austausch von Komponenten gegenüber besseren möglich Interne Geschäftsprozesse (Logistik, Buchhaltung etc.) 14

Dienstorientierte Architekturen Dienstverzeichnis (service registry) find publish Dienstnehmer (service requestor) bind invoke Dienstgeber (service provider) 15

Dienstorientierte Architekturen Lose Kopplung Dienstnehmer (service requestor) nutzen Implementie-rungen werden austauschbar Dienstnehmer (service requestor) nutzen Mehrere Dienste hinter derselben Fassade Dienstnehmer (service requestor) nutzen mehrschrittige Verarbeitung 16

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

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

SOAP als ein Beispiel zur Erstellung von Komponenten als Diensten WEBSERVICES 19

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

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

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

WSDL SOAP, UDDI, WSDL Registry UDDI UDDI UDDI Client SOAP Web Service 23

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

SOAP: Ein Beispiel Aufruf Antwort <soap:envelope> <soap:body> <xmlns:m="http://www.stock.org/stock" /> <m:getstockprice> <m:stockname>ibm</m:stockname> </m:getstockprice> </soap:body> </soap:envelope> <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> 25

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

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

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

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

WSDL: Aufbau Port Port Port SOAP-Binding andere Protokollbindung Operationen (Abstrakte Schnittstelle, PortType) mit ihrer Signatur Messages + Schema Definition von Datenstrukturen 30

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

Typdefinitionen Typdefinitionen in WSDL sind eingebettete XML Schema- Definitionen <definitions name="amazonsearch" targetnamespace="urn:pi/devcentral/soapservice"...> <types> <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema" targetnamespace="urn:pi/devcentral/soapservice"> <xsd:complextype name="keywordrequest"> <xsd:all> <xsd:element name="keyword" type="xsd:string"/> <xsd:element name="page" type="xsd:string"/> <xsd:element name="mode" type="xsd:string"/> <xsd:element name="tag" type="xsd:string"/> <xsd:element name="type" type="xsd:string"/> <xsd:element name="devtag" type="xsd:string"/> <xsd:element name="version" type="xsd:string"/> </xsd:all> </xsd:complextype> 32

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

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

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

Typdefinitionen (2) <xsd:complextype name="productinfo"> <xsd:all><xsd:element name="details" type="typens:detailsarray"/></xsd:all> </xsd:complextype> <xsd:complextype name="details"> <xsd:all> <xsd:element name="url" type="xsd:string"/> <xsd:element name="productname" type="xsd:string"/> <xsd:element name="authors" type="typens:authorarray"/> <xsd:element name="imageurlsmall" type="xsd:string"/> <xsd:element name="ourprice" type="xsd:string"/> <xsd:element name="publisher" type="xsd:string"/> <xsd:element name="isbn" type="xsd:string"/></xsd:all> </xsd:complextype> <xsd:complextype name="detailsarray"> <xsd:complexcontent> <xsd:restriction base="soapenc:array"> <xsd:attribute ref="soapenc:arraytype" wsdl:arraytype="typens:details[]"/> </xsd:restriction> </xsd:complexcontent> </xsd:complextype> Typ für Arrays, ebenso Listen möglich... 36

Protokollbindung RPC als Interaktionsparadigma name="amazonsearchbinding" <binding type="typens:amazonsearchport"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="keywordsearchrequest"> HTTP <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> SOAP über 37

Ports Festlegen der konkreten Netzwerkadresse <service name="amazonsearchservice"> <port name="amazonsearchport" binding="typens:amazonsearchbinding"> </port> </service> <soap:address location="http://soap.amazon.com/onca/soap"/> Hier wird festgestellt, wo der Dienst angesprochen werden kann 38

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: Allerdings:.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 WSDL macht keinerlei Angaben, was der Dienst denn nun wirklich tut 39

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 Interface2: Methoden Interface3: Methoden Warenverwaltung Bestellsystem Warenverwaltung Bestellsystem Warenverwaltung Bestellsystem 40

Erstellung von WSDL: bottom up vs. Top down WSDL kann über zwei Wege beschrieben werden Bottom up: Modellierung in UML Tool (z.b. Enterprise Architect). Schnittstelle wird vollständig modelliert und serialisiert. Vorteile: garantiert unabhängig von Programmiersprache Genaue Spezifikation auch z.b. Von Restriktionen. Implementierung in JAVA: z.b. mit AXIS Nachteile: Implementierung aufwändiger Nicht alle Restriktionen werden von Implementierungen umgesetzt Top-Down: Zuerst Implemtierung von Interface in z.b. JAVA Vorteil: einfacher, on-the-fly. Nachteil: u.u spezifisch für eine Programmiersprache 41

WDL Top Down mit JAX-WS in JAVA 1. Erstelle gewöhnliches JAVA Interface 2. Annotiere mit spezifischen Annotationen für JAX-WS 3. Deployment in z.b. Jboss 4. Aufruf der annotierten Adresse bringt WSDL 5. Nutzbar per JAX-WS für Clienterstellung @Stateless @WebService(name = ArticleService.WS_NAME, servicename = ArticleService.WS_SERVICE_NAME, targetnamespace = "http://ws.article.klickandbau.com/") @WebContext(contextRoot = ReportingService.CONTEXT_ROOT, urlpattern = ReportingService.WS_URL_PATTERN) public class ArticleService implements ArticleRemote 42 Prof. Max Mustermann - Präsentationstitel

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

DoYou Google+ Facebook Twitter Motivation Komponentensicht auf klick-und-bau: Komponenten als Dienste Klick-undbau.com VISA Paypal MasterCard Maestro Bezahldienste Warenverwaltung Suchmaschine Webseitenverwaltung Bestellsystem Content- Management Interne Dienste Kundenverwaltung Bezahlsystem Social Network Dienste Anbieter 1: OBI Anbieter 2: Hornbach Dienstanbieter für Inhalte Anbieter 3: Praktiker Anbieter 3: Hagebau Warenverwaltung Bestellsystem Warenverwaltung Bestellsystem Warenverwaltung Bestellsystem Warenverwaltung Bestellsystem 44

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

Datenintegration der Anbieterdaten: ideal Ideal: Spezifiziertes Interface wird von allen Anbietern umgesetzt: Klick-Und-Bau Interface1: Methoden Interface2: Methoden Interface3: Methoden Warenverwaltung Bestellsystem Warenverwaltung Bestellsystem Warenverwaltung 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

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 Bestellsystem Warenverwaltung Bestellsystem Warenverwaltung 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

Interne Dienste Klick-undbau.com SearchService Suchmaschine Webseitenverwaltung Content- Management Interne Dienste ArticleService OrderService CustomerService PaymentService Warenverwaltung 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

Aggregation von Diensten Hier gezeigt an Beispiel PaymentService: Alle Bezahldienste bieten Webservice-Schnittstellen an PaymentService Ein Interface für alle Anbieter Implementierung mit WS-Clients VisaService MCService VISA MAESTRO Master Card PayPal 49

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 SearchService Content- Management Interne Dienste ArticleService OrderService CustomerService PaymentService 50

REST INTERFACES 51

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

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

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

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

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

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

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

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

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

REST + JSON order: { "id": "http://example.com/customers/1234" "amount": "23", "product": "http://example.com/products/4554" "customer": "http://example.com/customers/1234" } 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

MASHUPS : INTEGRATION AUF PRÄSENTATIONS- UND BUSINESSEBENE 63

Businesssebene Grundidee ist hier: (Cloud) basiertes Mashup von Diensten zu einer neuen Anwendung Ansätze Einbindung bestehender Services (SOAP, WSDL) Einfache Programmierung (z.b. Auf Basis von JavaScript Bibliotheken) 64

Cloud Mashups (mit Google Apps Services) 65

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 66

igoogle (Portal) / Google Sites 67

Google Maps Mashups 68

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>"); }); 69

Cloud Mashups (mit Google Sites) Cloud als Datenbasis / Businesslogik (Implementiert z.b. in JAVA / JAVA-Script) Beispiel: Google Apps Service Integration von Cloud-Elementen in Portal, Web-Seite. Beispiel: www.apartment-baden.com Webseite als Darstellung, Mashup von Seitenparts, z.b. Verfügbarkeit. Sheets / Docs / PDFs (Zentrale Aktualisierung) Published Google Sheet Published APP based on Google Scripts 70

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 71

Literatur SOAP, WSDL, UDDI Graham et al., Building Web Services with Java, SAMS Publishing, 2002 JAX-WS http://jax-ws.java.net/bpel4ws Amazon-Webservices http://aws.amazon.com/de/ Google Apps Scripts https://developers.google.com/apps-script/ 72 27.01.2014