Datenbanken und Internet

Download Report

Transcript Datenbanken und Internet

Datenbanken und Internet
XML-Schema
oder
DTD
XML-Datei
XML-Datei
XML-Datei
XML-Datei
XML-Datei
Validating XML Parser
Application
?
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
Applikation / Anwendung
• Was ist das eigentlich?
– Wofür und für wen?
• Wie ist das aufgebaut?  Architektur
– Schichten-Architektur
– SOA – Service Oriented Architecture
–…
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
Unternehmung
Abteilungen, z.B.:
Leitung
Beschaffungswesen
Produktion
Vertrieb
• Geschäftsprozesse / Business Processes (BP)
– Interne/externe Abläufe und Kommunikation
– können je nach Abeilung und Prozess unterschiedlich sein
 viele eigenständige Anwendungen! Zum Gegensteuern:
Enterprise Application Integration (EAI) z.B. durch
Einführung von Enterprise Resource Planning (ERP) Systemen
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
Beispiel
für BP
in BPMN
(Business
Process
Modelling
Notation)
Bild von:
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
SOA - Service Oriented
Architecture
• An Geschäftsprozessen ausgerichtete ITInfrastruktur.
• In SOA werden Services (Dienste) lose
miteinander verbunden.
– Service Provider (bietet den Dienst an)
– Service Consumer (ruft den Dienst ab)
– Prinzip ist IT unabhängig, z.B. Restaurant,
Dienstleistungsservices allgemein, …
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
SOA Vorteile
• Einfaches Austauschen von Services möglich
(Beispiel: Kauf eines neuen CD-Spielers)
– Anderer Ansatz als bei Objektorientiertem
Programmieren!
• Lose Verknüpfung ist flexibler/modularer, daher
leicht an Änderungen anpassbar.
• Konzentration auf BP  Übel bei der Wurzel
packen, Vergleichbar mit Wahl des Algorithmus
[O(n2)  O(n) bringt es!]
• Langfristiger Kosten- und Effizienz-Vorteil! $$$$
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
SOA Probleme
• Modularisierungs – Komplexitäts Trade off
– Bei hoher Modularisierung erreicht man hohe
Flexibilität, wodurch aber die Komplexität steigt!
• Never change a running system!
– EAI-Gross-Projekte sind oft gescheitert
• SOA ist vielversprechend aber noch sehr
jung!
– Standards noch nicht ganz stabil,
– Werkzeuge entsprechend uneinheitlich
– Bevor man auf das falsche Pferd setzt warten
CIOs ab!
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
SOA Voraussetzungen
• BP muss sinnvoll erfasst und modularisiert
werden.  Schwer!!!!
– Darstellung z.B. über UML oder BPMN
Schnittstellen müssen klar definiert werden!
– In welcher Form erhält der Service Provider
die Nachricht (Service Request)?
– Was muss in dem Service Request alles
enthalten sein?
– Format, Struktur, Vokabular müssen passen.
 Web Services
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
Web Services
• Web Services (allgemein):
– Software-Anwendung
– Identifizierbar durch URI
– XML basiert
– Interface basiert auf Internet Protokoll, z.B.: HTTP,
FTP, SMTP, …
• Klassische Beispiele:
– Hotelbuchung, Flugbuchung, Autovermietung,
Abrufen von Börsendaten, …
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
Web Services
• Zurzeit in drei Ausprägungen:
– SOAP Web Services (das bekannteste)
– Remote Procedure Call (RPC) Web Services
– REpresentational State Transfer (REST) Web
Services
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
SOAP Web Services
• Basiert auf Spezifikationen des W3C
– Kodierung der Nachricht in XML (ausgenommen
Daten-Anhänge, diese können binär sein)
– Nachrichten müssen in SOAP enthalten sein,
man spricht auch vom SOAP-Envelope
(Briefumschlag)
– Beschreibung des Service mittels Web Service
Description Language (WSDL)
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
RPC und REST Web Services
• RPC Web Service
– Kann, muss aber nicht mit SOAP sein
– Arbeitet meist ohne automatische Service
Beschreibung (WSDL)
– Meist nur für kleine Anwendungen
• REST Web Services
– Andere (flexiblere) Adressierung
– Mehr Details unter:
http://www.oio.de/public/xml/restwebservices.htm
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
Die wichtigsten
W3C WS-Spezifikationen
WSDL
Web
Service Anbieter
veröffentlichen
binden
SOAP
UDDI
Service
Client
Service Register
finden
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
Web Service Technologien
Web Services
• werden beschrieben
durch WSDL (Web Service Description
Language)
• werden bekannt gemacht
mittels UDDI (Universal Description, Discovery
and Integration)
• werden aufgerufen
über SOAP (früher: Simple Object Access
Protocol, jetzt eigenständiger Name)
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
SOAP History
• SOAP Version 1.2 (Second Edition)
– Z.B. SOAP Version 1.2 Part 0: Primer (Second Edition) W3C Proposed
Edited Recommendation 19 December 2006
• http://www.w3.org/TR/2006/PER-soap12-part0-20061219/
• SOAP Version 1.2
– W3C Recommendation 24 June 2003
• SOAP Version 1.2 Part0: Primer
– http://www.w3.org/TR/2003/REC-soap12-part0-20030624/
• SOAP Version 1.2 Part1: Messaging Framework
– http://www.w3.org/TR/2003/REC-soap12-part1-20030624/
• SOAP Version 1.2 Part2: Adjuncts
– http://www.w3.org/TR/2003/REC-soap12-part2-20030624/
• SOAP Version 1.2 Specification Assertions and Test Collection
– http://www.w3.org/TR/2003/REC-soap12-testcollection-20030624/
• Simple Object Access Protocol (SOAP) 1.1 - W3C Note 08 May
2000
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
SOAP Second Edition
• “This second edition includes additional
material on the SOAP Message
Transmission Optimization Mechanism
(MTOM), the XML-binary Optimized
Packaging (XOP) and the Resource
Representation SOAP Header Block
(RRSHB) specifications.”
 Nicht Simple!
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
SOAP
SOAP Messages enthalten (mindestens) einen
Umschlag,einen Kopf und einen Rumpf.
• Umschlag (Envelope)
Definiert Start und Ende der Message
• Kopf (Header)
Enthält Attribute, welche für die Verarbeitung
der Message wichtig sind.
• Rumpf (Body)
Enthält die Message,also die Informationen,
welche an den Empfänger gesendet werden
sollen.
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<env:Header>
<m:reservation xmlns:m="http://travelcompany.example.org/reservation"
env:role="http://www.w3.org/2003/05/soap-envelope/role/next"
env:mustUnderstand="true">
<m:reference>uuid:093a2da1-q345-739r-ba5d-pqff98fe8j7d</m:reference>
<m:dateAndTime>2001-11-29T13:20:00.000-05:00</m:dateAndTime>
</m:reservation>
<n:passenger xmlns:n="http://mycompany.example.com/employees"
env:role="http://www.w3.org/2003/05/soap-envelope/role/next"
env:mustUnderstand="true">
<n:name>Åke Jógvan Øyvind</n:name>
</n:passenger>
</env:Header>
<env:Body>
<p:itinerary
xmlns:p="http://travelcompany.example.org/reservation/travel">
<p:departure>
<p:departing>New York</p:departing>
<p:arriving>Los Angeles</p:arriving>
<p:departureDate>2001-12-14</p:departureDate>
<p:departureTime>late afternoon</p:departureTime>
<p:seatPreference>aisle</p:seatPreference>
</p:departure>
…
</env:Body>
</env:Envelope>
SOAP-Beispiel
Beispiel aus: SOAP Version 1.2 Part 0: Primer (Second Edition)
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
WSDL
• WSDL definiert die Web Service Schnittstellen,
Datentypen,Protokolle
• WSDL beschreibt :
- die Nachrichten,die ausgetauscht werden
- wie sie ausgetauscht bzw.veröffentlicht
werden
- wo der Service zu erreichen ist und
- mit welchem Protokoll
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
WSDL
WSDL besitzt drei Hauptelemente:
• Datentyp-Definition (types)
- Bestimmt Struktur und Inhalt der Message
• Abstrakte Operationen (interface / operation)
- spezielle Operationen, welche auf dem
Message Inhalt ausgeführt werden dürfen.
• Service Bindung (binding)
- Bestimmt den Netzwerk-Transport, mit dem
die Message übermittelt wird
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
WSDL-Beispiel
<?xml version="1.0" encoding="utf-8" ?>
<description
xmlns="http://www.w3.org/2006/01/wsdl"
targetNamespace= "http://greath.example.com/2004/wsdl/resSvc"
xmlns:tns= "http://greath.example.com/2004/wsdl/resSvc"
xmlns:ghns = "http://greath.example.com/2004/schemas/resSvc"
xmlns:wsoap= "http://www.w3.org/2006/01/wsdl/soap"
xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:wsdlx= "http://www.w3.org/2006/01/wsdl-extensions">
<documentation>
This document describes the GreatH Web service. Additional
application-level requirements for use of this service -beyond what WSDL 2.0 is able to describe -- are available
at http://greath.example.com/2004/reservation-documentation.html
</documentation>
<types>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://greath.example.com/2004/schemas/resSvc"
xmlns="http://greath.example.com/2004/schemas/resSvc">
<xs:element name="checkAvailability" type="tCheckAvailability"/>
<xs:complexType name="tCheckAvailability">
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
<xs:sequence>
UDDI
• Nicht W3C
• Früher: IBM, HP und andere
• Mittlerweile bei OASIS (Organization for the
Advancement of Structured Information Standards)
• 3. Version der Spezifikation
• Siehe: www.uddi.org
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
UDDI
UDDI besteht aus drei Komponenten :
- Weisse Seiten: Informationen über
Unternehmen und ihre angebotenen
Dienste.
- Gelbe Seiten: Kategorisierung von
Unternehmen nach z.B. Produktcode oder
geografischem Ort.
- Grüne Seiten: Technische Beschreibung des
angebotenen Dienstes.
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
UDDI
• UDDI beschreibt ein Mechanismus zum
Finden,Nutzen und Veröffentlichen von
Diensten im Internet.
• UDDI ist ein Register Service zum Speichern
und Bestimmen von Web Service Interfaces.
• Es finden Anmeldung/Abfrage von Web
Service statt.
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
Bis jetzt …
• SOA ist toll … $$$
• Umsetzung einzelner
Aufgaben durch Web
Services
– Z.B. SOAP, WSDL,
UDDI basiert
• Darstellung des BP
z.B. mit BPMN
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
Wie steuert man den Ablauf
eines BP?
• Orchestration – einer bestimmt (orchestration
engine) und ruft in gewünschter Reihenfolge die
entsprechenden Services auf.
• Choreographie – jeder Service weiß was zu tun
ist, sprich wem er Ergebnisse schicken soll
(master plan known to everyone). Teile der
Choreographie können orchestriert werden.
Orchestration vs Choreographie
==
Ampel vs Kreisel
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
Standards
• BPEL4WS oder WS-BPEL (kurz BPEL –
Business Process Execution Language) für
Orchestration – OASIS Standard
• Web Services Choreography Description
Language (WS-CDL) für Choreographie – W3C
• XML Process Definition Language (XPDL)
alternative zu BPEL (Workflow orientiert 
bezieht auch Human Interactions ein und nicht
nur Web Service aufrufe) – Workflow
Management Coalition (WfC)
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
Wie führt man einen BP aus?
Designer
z.B. basierend
auf BPMN
BPEL
oder
XPDL
Visio, ActiveBPEL, …
BPEL oder XPDL
Engine
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
Bis jetzt …
• SOA ist toll … $$$ … wenn es passt!
• Umsetzung einzelner Aufgaben durch Web
Services
• Darstellung des BP z.B. mit BPMN
• Tools zur Erzeugung von BPEL oder XPDL
• … wie baut man einen Web Service?
 siehe z.B. Web Tool Project (WTP) von Eclipse
http://www.eclipse.org/webtools/ Projekt-Seite
http://www.eclipse.org/webtools/jst/components/ws/1.5/tutorials/ Tutorials
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
Mind Map
• Unterstützung für Aufgabe 22
– http://freemind.sourceforge.net/wiki/index.php/
Main_Page
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle