WebService-basierte Integration externer Datenquellen in relationale Datenbanksysteme
Workshop XML-Technologien für Middleware - Middleware für XML-Anwendungen XMIDX 2003 Berlin, 17. Februar 2003
Vortragender: Lutz Schlesinger Autoren:
Lutz Schlesinger, Universität Erlangen, Lehrstuhl für Datenbanksysteme Wolfgang Lehner, Technische Universität Dresden, Arbeitsgruppe Datenbanken
Überblick •
Die Datenbank als Middleware – Beispiel – Allgemeine Prinzipien
•
Externe Datenquellen und Datenbanken – Enge Kopplung durch Java-Objekte – Lose Kopplung mittels WebServices
•
Zusammenfassung
© Lutz Schlesinger: "WebService-basierte Integration externer Datenquellen in relationale Datenbanksysteme"
2
Problemstellung Szenario „Informationsportal“
…
Benutzer 1
Benutzer: Homogener, transparenter Zugang
Portal: Datenverarbeitung
Benutzer m
Datenbank Portal
Anbieter: Bereitstellung heterogener Daten Anbieter 1
…
© Lutz Schlesinger: "WebService-basierte Integration externer Datenquellen in relationale Datenbanksysteme"
Anbieter n
3
Prinzipien der Datenversorgung Anbietergetriebene Datenversorgung (Push-Prinzip) Æ Trennung von Ladezeit und Auswertezeit
Anbieter
2
1
Benutzer
Datenbank 3
Nachfragegetriebene Datenversorgung (Pull-Prinzip) Æ Ladezeit innerhalb der Auswertezeit 2 Anbieter
1 Benutzer
Datenbank 3
4
© Lutz Schlesinger: "WebService-basierte Integration externer Datenquellen in relationale Datenbanksysteme"
4
Datenquellen
Datenbank
System B
System A Wrapper A1
Datenbank 1
Daten
Anfrage
Daten
Anfrage
Clients
Ausgangssituation
Wrapper A2
Wrapper B1
Dateien
Wrapper B2
Datenbank 2
© Lutz Schlesinger: "WebService-basierte Integration externer Datenquellen in relationale Datenbanksysteme"
5
Ziele und Abgrenzung •
Ziele – – – –
•
SQL als Anfragesprache Verbergen von Quellenspezifika Datenversorgung zur Anfrageausführungszeit Vermeidung eines Wrappers für jedes Datenbanksystem und jede Datenquelle
Abgrenzung – Funktionalität und Flexibilität über Effizienz • Ziel: Ermöglichung eines transparenten und dynamischen Zugriffs • Effizienz zweitrangig
– ONC-Protokoll als Ebene der Integration
© Lutz Schlesinger: "WebService-basierte Integration externer Datenquellen in relationale Datenbanksysteme"
6
Ebenen der Integration SQL
SQL
Relationen ONC
Relationen
Sätze Sätze readPage() Seiten Integrierendes System
Seiten Datenquelle
DB-Middleware
SQL
SQL
Relationen ONC
Relationen ONC
Sätze Sätze readPage() Seiten Integrierendes System
Seiten Datenquelle
Satzorientierter Zugriff
Sätze readPage() Seiten Integrierendes System
Seiten Datenquelle
Seitenorientierter Zugriff
© Lutz Schlesinger: "WebService-basierte Integration externer Datenquellen in relationale Datenbanksysteme"
7
Clients
Enge Kopplung: Fünf-Schichten-Modell C ts n lie
lI sta n
lIn sta
D n te a
A e g fra n
D n te a
A e g fra n
lsta n i e d
Datenbank
lsta n i e d
Registrator
Registrator
MetaDaten
MetaDaten
D k b n te a
PlugIn
Exposer
P In g lu
rE e s o p x
Datenquellen
Schemainformationen
Datenbank 1
Dateien
Datenbank 2
lD u q n te a
© Lutz Schlesinger: "WebService-basierte Integration externer Datenquellen in relationale Datenbanksysteme"
8
Enge Kopplung durch Java-Objekte
Registrator createView() dropView()
Sichten
erzeugt löscht
ODCITable-Schnittstelle
Oracle 9i Datenbanksystem
Java RowDataSource In g lu P
Exposer Jede beliebige Java Aktion
© Lutz Schlesinger: "WebService-basierte Integration externer Datenquellen in relationale Datenbanksysteme"
9
Realisierung mit Oracle Data Cartridge •
Data Cartridge = Erweiterungsmodule – Logische Einheit verschiedener Erweiterungen – Viele erhältliche Data Cartridges, bspw. Spatial Data Cartridge Data cartridge
Erweiterungsschnittstelle
Typensystem
Funktionsbibliothek
Anfragebearbeitung
Indexerstellung
Datenbank und erweiterbare Dienste
© Lutz Schlesinger: "WebService-basierte Integration externer Datenquellen in relationale Datenbanksysteme"
10
Bewertung der engen Kopplung •
Erreichung der Ziele – – – –
•
SQL als Anfragesprache Verbergen von Quellenspezifika Datenversorgung zur Anfrageausführungszeit Vermeidung eines Wrappers für jedes Datenbanksystem und jede Datenquelle
Aber – Statische Einbindung an Stelle einer dynamischen zur Laufzeit
•
Und mit WebServices? Webservice-Technologie zur flexiblen und zur Konfiguration dynamischer Integration von WebDiensten als Datenquelle
© Lutz Schlesinger: "WebService-basierte Integration externer Datenquellen in relationale Datenbanksysteme"
11
WebServices - Einführung •
Veränderte Rahmenbedingungen für Applikationsanbieter – Traditioneller Ansatz • Entwicklung einer In-House-Applikation • Zukauf einer Applikation bei einem fremden Anbieter
– “Web”-Ansatz • Nutzung einer durch irgendjemand und irgendwo angebotenen Applikation im Web • Vorteil: kein Zeitverlust, geringe Kosten, geringes Risiko
•
Beispiele – Bank: Abruf von Börsendaten – Online-Stores: Katalog, Einkauf
© Lutz Schlesinger: "WebService-basierte Integration externer Datenquellen in relationale Datenbanksysteme"
12
WebServices - Definition Der Versuch einer Definition:
• Nutzung des Internets • Verwendung von XML • Unabhängigkeit von Betriebssystemen „A web service is any service that is available over the Internet, und Programmiersprachen • Entwicklung und Nutzung von uses a standardized XML messaging system, and is not tied to verteilten Anwendungen Middleware-Konzept any one •operating system or programming language.“ • Integration in komplexe Anwendungen (Modularisation)
Ethan Cerami: Web Services Essentials (O’Reilly, Sebastopol, 2002)
© Lutz Schlesinger: "WebService-basierte Integration externer Datenquellen in relationale Datenbanksysteme"
13
•
Business Integration
ebXML, RosettaNet, BizTalk Framework
Txn / Workflow
XAML, WSCL, WSCI, WSFL, XLANG, BPML
Security
XML Encryption, XML-DSig, XACML, SAML, XKML
Discovery
UDDI, USML, WSIL
Description
WSDL, XML Schema, WSEL
Messaging
SOAP, XML-RPC
Representation
XML, XML Namespaces, XML Schema
Application Layer
HTTP, HTTPS, HTTPR, SMTP, FTP
Transport Layer
TCP/IP, SSL/TLS
Nur WebServices-Core akzeptierter Standard (SOAP, WSDL, UDDI von Microsoft und IBM unterstützt)
•
Web Services Extensions
Viele individuelle Vorschläge
(⇒ Internet Protocol Stack, ISO/OSI)
Web Services Core
•
Kein einheitlicher Standard
Network
•
Frame works
WebServices - Standards
© Lutz Schlesinger: "WebService-basierte Integration externer Datenquellen in relationale Datenbanksysteme"
14
WebService Plattform •
SOAP: Kommunikationsprotokoll
•
WSDL: WebService-Beschreibung
•
UDDI: WebService-Verzeichnis UDDI API (SOAP) UDDI (Verzeichnisdienst)
Web Service (Dienstanbieter)
WSDL SOAP Nutzer (Dienstnutzer)
UDDI API (SOAP)
© Lutz Schlesinger: "WebService-basierte Integration externer Datenquellen in relationale Datenbanksysteme"
15
Exposer
Enge Kopplung: SOAP-fähiger Exposer
UDDI
Datenquellen
SOAP
© Lutz Schlesinger: "WebService-basierte Integration externer Datenquellen in relationale Datenbanksysteme"
16
Clients
Lose Kopplung: Fünf-Schichten-Modell lIn ta s
l sta In
(4) Datenbank
Registrator
Registrator
(2)
MetaDaten
MetaDaten
(3)
PlugIn
UDDI
In g lu P
Exposer
JavaONC
SOAP- (5) ONC inquire()
(1)
load()
Datenquellen
Schemainformationen
Dateien
Dateien
© Lutz Schlesinger: "WebService-basierte Integration externer Datenquellen in relationale Datenbanksysteme"
17
Aktuelle Umsetzung
© Lutz Schlesinger: "WebService-basierte Integration externer Datenquellen in relationale Datenbanksysteme"
18
Formulierung der Anfrage
Update google_para set query = ´erlangen´;
© Lutz Schlesinger: "WebService-basierte Integration externer Datenquellen in relationale Datenbanksysteme"
19
Ergebnis der Anfrage
select * from google;
© Lutz Schlesinger: "WebService-basierte Integration externer Datenquellen in relationale Datenbanksysteme"
20
Zusammenfassung und Ausblick •
Ziel: Anbindung externer Datenquellen an ein Datenbanksystem
•
Ansätze – Traditionell: Trennung von Lade- und Ausführungsphase – Enge Kopplung: Statische Java-Objekte – Lose Kopplung: Dynamisch mittels WebService-Technologie
•
Ausblick – Einbindung von Restriktionen – Weiterentwicklung für .NET
© Lutz Schlesinger: "WebService-basierte Integration externer Datenquellen in relationale Datenbanksysteme"
21
Download und Kontakt •
Vortragsfolien http://www6.informatik.uni-erlangen.de/~lutz/
•
Kontakt per E-Mail:
[email protected] [email protected]
© Lutz Schlesinger: "WebService-basierte Integration externer Datenquellen in relationale Datenbanksysteme"
22