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 <?XML?> PlugIn <?XML?> 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) <?XML?> PlugIn <?XML?> 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