Kapitel 7 Wrapper-basierte Datenintegration Einführung: Wrapper

Werbung
Prof. Dr.-Ing. Stefan Deßloch
AG Heterogene Informationssysteme
Geb. 36, Raum 329
Tel. 0631/205 3275
[email protected]
Kapitel 7
Wrapper-basierte Datenintegration
Inhalt:
Einführung: Wrapper
Garlic
SQL/MED (Management of External Data)
Überblick: OLE (Microsoft)
Zusammenfassung
Middleware for Heterogenous and Distributed Information Systems - WS04/05
Einführung: Wrapper
„
„
kapselt die in einer Datenquelle gespeicherten Daten und ‘vermittelt’ zwischen
der Datenquelle und der Middleware
entscheidend hinsichtlich der Bewältigung der Heterogenität zwischen den
Datenquellen:
„
„
„
Wrapper-Architektur
Wrapper-Interfaces
(zu bewältigende) Heterogenität, jede Datenquelle hat
„
„
„
ihr eigenes Datenmodell und Schema, wobei letzteres sich mit der Zeit ändern
kann
ihr eigenes API
und spezielle Anfragemöglichkeiten
„
„
„
Anfragesprache
(Spektrum: einfache Scans, Sortierung, einfache Prädikate, komplexe Prädikate,
Aggregation, binäre Joins, n-Wege-Joins; evtl. sogar ‘eigentümlich’: spezielle Prädikate
nur auf bestimmten Daten erlaubt)
Klassen-/Funktionsbibliothek
spezifische Programmierschnittstelle
© Prof.Dr.-Ing. Stefan Deßloch
2
Middleware for Heterogenous and
Distributed Information Systems WS04/05
1
Garlic
„
“The wrapper architecture of Garlic ... addresses the challenge of diversity by
standardizing how information in data sources is described
and accessed, while
...
Client
Client
Client
taking an approach
to query planning in
which the wrapper
Garlic
and the middleware
Metadynamically determine
Query
data
the wrapper’s role in
Processor
answering a query”
M. T. Roth, P. Schwarz:
“Don’t Scrap It, Wrap It!
A Wrapper Architecture for
Legacy Data Sources”,
VLDB’97
© Prof.Dr.-Ing. Stefan Deßloch
Wrapper
Wrapper
Relational
DB
Object
DB
3
...
Wrapper
Wrapper
Image
Archive
Complex
Objects
Middleware for Heterogenous and
Distributed Information Systems WS04/05
Wrapper-Architektur
„
Ziele
„
„
„
„
Geringe Start-up-Kosten für die Erstellung eines Wrappers
Möglichkeit der Evolution des Wrappers
Flexible Architektur; Möglichkeit des ‘Einhängens’ weiterer Datenquellen (werden in
Garlic auch Repositories genannt) und zugehöriger Wrapper
Wrapper sollte der Garlic-Anfrageverarbeitung exakt die Anfragemöglichkeiten
verfügbar machen, die die zugehörige Datenquelle unterstützt
© Prof.Dr.-Ing. Stefan Deßloch
4
Middleware for Heterogenous and
Distributed Information Systems WS04/05
2
Garlic
Wrapper-Services
Modellierung von
Daten als Objekte
Methodenaufruf
Hotel
Query Planning
Query-Ausführung
Wrapper
Plan
class = 5
Object
Request
Wrapper
get_class()
Iterator::advance()
Data Source
Wrapper
Plan
name
© Prof.Dr.-Ing. Stefan Deßloch
class
daily_rate
location
city
5
Middleware for Heterogenous and
Distributed Information Systems WS04/05
Modellierung von Daten als Objekte
„
Registrierung
„
„
„
Wrapper liefert Garlic Beschreibung der Datenquelle in GDL (Garlic Data Language,
Variante von ODMG-ODL)
‘globales Schema’ auf der Garlic-Ebene
Garlic-Objekt:
„
„
„
Schnittstelle
mind. eine Implementierung (evtl. mehrere, höchstens eine pro Datenquelle)
Identität: OID besteht aus
„
„
„
IID (implementation identifier)
key (identifiziert die Ausprägung innerhalb der Datenquelle)
Root-Objekte (üblicherweise Kollektionen) dienen dem Einstieg und können auch
über einen externen Namen angesprochen werden
© Prof.Dr.-Ing. Stefan Deßloch
6
Middleware for Heterogenous and
Distributed Information Systems WS04/05
3
Beispiel: Schema einer Reiseagentur
Relational Repository Schema:
Web Repository Schema:
interface Country {
attribute string name;
attribute string airlines_served;
attribute boolean visa_required;
attribute Image scene}
interface Hotel {
attribute readonly string name;
attribute readonly short class;
attribute readonly double daily_rate;
attribute readonly string location;
attribute readonly string city}
interface City {
attribute string name;
attribute long population;
attribute boolean airport;
attribute Country country;
attribute Image scene}
Image Server Repository Schema:
© Prof.Dr.-Ing. Stefan Deßloch
interface Image {
attribute string file_name;
double matches (in string file_name);
void display (in string device_name)}
7
Middleware for Heterogenous and
Distributed Information Systems WS04/05
Methodenaufruf
„
„
Methodenaufrufe können durch die Garlic-Ausführungsmaschine bzw. durch
eine Garlic-Applikation, die eine Referenz auf ein entsprechendes RepositoryObjekt erhalten hat, veranlasst werden
Methoden
„
„
implizit definierte Get/Set-Methoden (accessor methods)
explizit definierte Methoden
© Prof.Dr.-Ing. Stefan Deßloch
8
Middleware for Heterogenous and
Distributed Information Systems WS04/05
4
Arten des Methodenaufrufs
„
stub dispatch
„
„
„
natürlicher Mechanismus für Repositories, deren Schnittstelle als Klassenbibliothek
gegeben ist
Beispiel: display (siehe oben)
Wrapper stellt Routine zur Verfügung, die aus dem key-Feld der OID den
Dateinamen des angesprochenen Bildes und aus den von Garlic übergebenen
Parametern den Gerätenamen extrahiert; zur Wiedergabe wird dann die zugehörige
Funktion der Klassenbibliothek aufgerufen;
generischer Dispatch
„
„
„
Wrapper bietet nur genau einen Methodeneinsprungpunkt
schema-unabhängig
Beispiel: relationaler Wrapper (siehe oben)
nur accessor methods; jeder Aufruf wird in Anfrage umgesetzt; Methodenname →
Attributname,
IID → Relationenname,
Werte → Zuweisung (Set);
© Prof.Dr.-Ing. Stefan Deßloch
9
Middleware for Heterogenous and
Distributed Information Systems WS04/05
Query Planning
„
Grundlegende Idee
„
„
Wrapper nehmen an der Erstellung des Query-Plans teil
Allgemeiner Ablauf:
„
„
„
Garlic-Optimierer identifiziert das größtmögliche, ein Repository betreffende QueryFragment und schickt es zum zugehörigen Wrapper
Wrapper liefert einen oder mehrere Pläne zurück, die einen Teil der durch das
Query-Fragment angesprochenen Arbeit bzw. die gesamte Arbeit ausführen
können
Garlic-Optimierer erstellt und beurteilt die möglichen Pläne zur Abarbeitung der
gesamten Query; dabei versucht er, für die Teile, die ein Wrapper nicht
übernehmen konnte, alternative Operatoren zu finden
© Prof.Dr.-Ing. Stefan Deßloch
10
Middleware for Heterogenous and
Distributed Information Systems WS04/05
5
Query Planning (Forts.)
„
Wrapper stellt zu diesem Zweck folgende Methoden bereit, die durch work
requests von Garlic angesprochen werden können:
„
„
„
„
plan_access(): generiert single-collection access plans
plan_join(): generiert multi-way join plans (Joins können in Anwenderanfragen
vorkommen oder von Garlic zur Auflösung von Pfadausdrücken erzeugt werden)
plan_bind(): generiert speziellen Plan, der als inner stream eines bind joins benutzt
werden kann
Ergebnis eines work requests:
„
„
Menge von plans
jeder plan beinhaltet eine Liste von Eigenschaften, die beschreiben, welche Teile
des work requests durch den plan implementiert werden und zu welchen Kosten
© Prof.Dr.-Ing. Stefan Deßloch
Middleware for Heterogenous and
Distributed Information Systems WS04/05
11
Single Collection Access Plan
select H.name, H.city, H.daily_rate
from Hotels H
where H.class = 5 and H.location = ‘beach’
Garlic Optimizer
Web Wrapper Access Plan
for Hotels
Work Request
Project: H.OID,
H.name,
H.city,
H.daily_rate,
H.class,
H.location
Preds:
Properties
H.class = 5,
H.location = ‘beach’
Project: H.OID,
H.name,
H.city,
H.daily_rate,
H.class,
H.location
Preds: H.class = 5
Cost:
<access cost>
Plan details (private)
Web Wrapper
Middleware for Heterogenous and
© Prof.Dr.-Ing. Stefan Deßloch
12
Distributed Information Systems Hotel Guide Repository
WS04/05
6
Join Plan
select I.name
from Countries C, Cities I
where C.name = ‘Greece’ and I.population < 500 and I.country = C.OID
Garlic Optimizer
Work Request
Input Plans
Relational Wrapper
Access Plan for Countries
Relational Wrapper Join Plan
for Countries and Cities
Properties
Project: C.OID, C.name
Preds: C.name = ‘Greece’
Cost: <Countries access cost>
Properties
Project: C.OID, C.name, I.OID,
I.name, I.population, I.country
Preds: C.name = ‘Greece’
I.population < 500
I.country = C.OID
Cost: <join cost>
Plan details (private
Relational Wrapper
Access Plan for Cities
Plan details (private)
Properties
Project: I.OID, I.name,
I.population, I.country
Preds: I.population < 500
Cost: <Cities access cost>
Plan details (private)
Relational Wrapper
Join pred: I.country = C.OID
Middleware for Heterogenous and
© Prof.Dr.-Ing. Stefan Deßloch
Bind Plan
Relational
DatabaseInformation
Repository
Distributed
Systems -
13
WS04/05
select H.name, H.daily_rate
from Hotels H, Countries C, Cities I
where H.class = 5 and H.location = ‘beach’ and C.name = ‘Greece’
and I.population < 500 and H.city = I.name and I.country = C.OID
Garlic Optimizer
Work Request
Relational Wrapper Bind Plan
for Countries, Cities, and Hotels
Input Plan
Relational Wrapper Join Plan
for Countries and Cities
Properties
Project: C.OID, C.name, I.OID,
I.name, I.population, I.country
Preds: C.name = ‘Greece’
I.population < 500
I.country = C.OID
Cost: <join cost>
Plan details (private)
Properties
Project: C.OID, C.name, I.OID,
I.name, I.population, I.country
Preds: C.name = ‘Greece’
I.population < 500
I.country = C.OID
I.name = $BIND_1
Cost: <bind cost>
Plan details (private)
Bind pred: I.name = $BIND_1
Relational Wrapper
Middleware for Heterogenous and
© Prof.Dr.-Ing. Stefan Deßloch
14
Relational Database Repository
Distributed Information Systems WS04/05
7
Synthese der Wrapper Plans
„
„
Übersetzung muss
unterstützt werden
durch entsprechende
Wrapper-Methoden
Ausführung wird
ebenfalls durch
Wrapper unterstützt
(Iterator-Methoden)
PROJECT
H.name, H.daily_rate
BIND JOIN
H.city > $BIND_1
FILTER
H.location = ‘beach’
Relational Wrapper Bind Plan
for Countries, Cities, and Hotels
Web Wrapper Access Plan
for Hotels
Properties
Project: H.OID, H.name,
H.city, H.daily_rate, H.class,
H.location
Preds: H.class = 5
Cost:
<access cost>
Properties
Project: C.OID, C.name, I.OID,
I.name, I.population, I.country
Preds: C.name = ‘Greece’
I.population < 500
I.country = C.OID
I.name = $BIND_1
Cost: <bind cost>
Plan details (private)
Plan details (private)
© Prof.Dr.-Ing. Stefan Deßloch
15
Middleware for Heterogenous and
Distributed Information Systems WS04/05
Wrapper Packaging
„
Wrapper-Programmierer stellt folgende Wrapper-Komponenten in einem
Wrapper-Package zur Verfügung:
„
Interface Files
„
Environment Files
„
Libraries (dynamisch ladbar)
„
„
„
„
„
GDL-Definitionen
Kodierung Repository-spezifischer Information
Schema-Registrierung
Methodenaufruf
Anfrageschnittstellen
© Prof.Dr.-Ing. Stefan Deßloch
16
Middleware for Heterogenous and
Distributed Information Systems WS04/05
8
SQL/MED
„
Part 9 von SQL:1999: Management of External Data
„
zwei wesentliche Teile
„
„
„
in SQL:2003 weiterentwickelt
Datalinks
Foreign Data Wrapper / Foreign Data Server
Middleware for Heterogenous and
Distributed Information Systems WS04/05
17
© Prof.Dr.-Ing. Stefan Deßloch
Foreign Data Wrapper/Server
„
„
Konzept basiert auf Garlic-Idee
Modell
SQL
Client
© Prof.Dr.-Ing. Stefan Deßloch
SQL
Server
M
E
D
18
FDWa
Foreign
Server a
FTa1
FDWb
Foreign
Server b
FTb1
Foreign
Server c
FTc1
Middleware for Heterogenous and
Distributed Information Systems WS04/05
9
Foreign-Data-Server
„
„
„
verwaltet außerhalb der eigentlichen SQL-Umgebung liegende Daten
SQL-Server und SQL-Client nutzen Foreign-Server-Descriptors
(Katalogelemente), um mit dem Foreign-Server kommunizieren zu können
Katalog (implementierungsspezifisch):
„
„
„
„
„
Foreign-Table
„
„
SQL-Schemata
Foreign-Server-Deskriptors
Foreign-Table-Descriptors
Foreign-Wrapper-Descriptors
tatsächlich im Foreign-Server (relational) liegende Tabelle oder durch WrapperFunktionalität dynamisch zu erzeugende Tabelle
(Interaktions-)Modi
„
Decomposition
„
„
Analyse der SQL-Anfrage durch SQL-Server und Kommunikation mit dem Foreign-DataWrapper über InitRequest
Pass-Through (siehe Beschreibung TransmitRequest)
© Prof.Dr.-Ing. Stefan Deßloch
Middleware for Heterogenous and
Distributed Information Systems WS04/05
19
Foreign-Data-Wrapper-Interface
„
„
Handle-Routinen
Initialisierungsroutinen
„
„
„
„
„
„
„
AllocDescriptor
AllocWrapperEnv
ConnectServer
GetOps: Abfragen von
Möglichkeiten des Foreign-DataWrappers/Servers, einer (Spalte
einer) Foreign-Table
InitRequest: Initiierung der
Vorbereitung einer Anfrage
© Prof.Dr.-Ing. Stefan Deßloch
Zugriffsroutinen
„
„
„
„
„
20
Open
Iterate: Übertragung von Tupeln
ReOpen
Close
GetStatistics
TransmitRequest: „Durchreichen“
einer Anfrage in der Sprache des
Foreign-Data-Servers (PassThrough-Modus)
Middleware for Heterogenous and
Distributed Information Systems WS04/05
10
Sicherheit, Updates und Transaktionen
„
User Mapping
„
„
Definiert Abbildung einer User-ID des SQL-Servers auf ein entsprechendes Konzept
des Foreign Server
Beispiel:
„
„
CREATE USER MAPPING FOR dessloch
SERVER myforeignserver
OPTIONS
(user_id 'SD',
user_pw 'secret')
Updates, Transaktionen auf Externen Daten
„
in SQL/MED nicht unterstützt
„
als produktspezifische Erweiterungen in eingeschränkter Form verfügbar
„
zukünftige Entwicklung
„
üblicherweise Änderungen auf nicht-relationalen Datenquellen nicht möglich
„
Änderungsoperationen auf relationalen Datenquellen
„
„
„
verteilte TA sinnvoll, nur 1PC (read-only) für foreign data source
pass-through
transparent
Middleware for Heterogenous and
Distributed Information Systems WS04/05
21
© Prof.Dr.-Ing. Stefan Deßloch
Microsoft OLE-DB
„
Überblick
Application
OLE
Service-
Query
Processor
Provider
DataProvider
DB
OLE
OLE
DB
Spreadsheet
DB
ISAM
OLE
DB
File System
J.A. Blakeley: “Universal Data Access with OLE DB”,
Proc. IEEE Compcon’97, San Jose, IEEE Computer Society Press, Feb. 1997
© Prof.Dr.-Ing. Stefan Deßloch
22
Middleware for Heterogenous and
Distributed Information Systems WS04/05
11
Eigenschaften
„
„
„
„
ein Data-Provider (einfacher Wrapper) kapselt den Zugriff auf Datenquelle
und bietet als Abstraktion einen rowset als Strom von Datenwerten mit einem
Iterator
Daten, die mehrere Data-Provider in Tabellenform verfügbar machen, können
durch einen Service-Provider zu einer heterogenen Sicht verknüpft werden
(Union, Join, Agg. etc.); zum Erstellen eines Service-Providers bietet OLE DB
spezielle Protokolle; die Middleware-Komponente ist hier wenig generisch
neuere Versionen sollen komplexere Abstraktionen als flache Tabellen, z. B.
objektorientierte und semistrukturierte Daten erlauben
Unterschiede zu Garlic
„
„
Garlic-Anfragefragmente sind in Object-SQL formuliert
Garlic-Wrapper kann dynamisch seine Beiträge ermitteln
Middleware for Heterogenous and
Distributed Information Systems WS04/05
23
© Prof.Dr.-Ing. Stefan Deßloch
Managing External Data: Datalinks
Applications
SQL API requests
File API requests
Datalinker
Employee Table
Ted
Peter
Abby
John
1950
1961
1956
1948
Datalinks
© Prof.Dr.-Ing. Stefan Deßloch
24
Middleware for Heterogenous and
Distributed Information Systems WS04/05
12
DataLinks in SQL/MED
„
Konzept
„
„
„
ein Datalink ist eine Ausprägung des DATALINK-Datentyps
ein Datalink referenziert eine Datei (URL), die nicht Teil der SQL-Umgebung ist,
sondern durch einen externen File-Manager verwaltet wird
Datalink Type Descriptor, Link-Control-Options:
„
„
„
„
„
„
„
link control
integrity control option
read permission option
write permission option
recovery option
unlink option
(NO, FILE)
(ALL, SELECTIVE, NONE)
(FS, DB)
(FS, ADMIN, BLOCKED)
(NO, YES)
(RESTORE, DELETE, NONE)
Datalinker
„
„
implementierungsabhängig
Menge der Mechanismen, die für durch Datalinks repräsentierte Dateien
Integritätskontrolle, Recovery und Zugriffskontrolle durchführen
© Prof.Dr.-Ing. Stefan Deßloch
25
Middleware for Heterogenous and
Distributed Information Systems WS04/05
Funktionen und Operationen
„
Neue SQL-Funktionen für Datalinks
„
„
„
Konstruktor: DLVALUE, ...
(Komponenten von) URLs: DLURLCOMPLETE,
SQL Operationen (Beispiele)
„
Einfügen (“Link”)
INSERT INTO Movies (Title, Minutes, Movie)
VALUES (‘My Life’, 126,
DLVALUE(‘http://my.server.de/movies/mylife.avi’))
„
Selektieren (inkl. URL access token)
SELECT Title, DLURLCOMPLETE(Movie)
FROM Movies
WHERE Title LIKE ‘%Life%’
© Prof.Dr.-Ing. Stefan Deßloch
26
Middleware for Heterogenous and
Distributed Information Systems WS04/05
13
Funktionen und Operationen (Forts.)
„
SQL Operationen (Beispiele)
„
“Unlink/Replace”
UPDATE Movies SET Movie =
DLVALUE(‘http://my.newserver.de/mylife.avi’)
WHERE Title = ‘My Life’
RESTORE oder DELETE für “.../movies/mylife.avi”
„
“Update-in-place”
SELECT Title, DLURLCOMPLETEWRITE(Movie)
INTO :t, :url ...
Öffnen über URL, Modifizieren ...
UPDATE Movies SET Movie = DLNEWCOPY(:url, 1)
WHERE Title = :t
© Prof.Dr.-Ing. Stefan Deßloch
27
Middleware for Heterogenous and
Distributed Information Systems WS04/05
Link-Control-Options
„
NO LINK CONTROL
„
„
„
FILE LINK CONTROL
„
„
„
referenzierte Dateien können nur über SQL gelöscht oder umbenannt werden
INTEGRITY SELECTIVE
„
„
existierende Datei muss referenziert werden
Art der Kontrolle durch die weiteren Optionen bestimmt
INTEGRITY ALL
„
„
URL-Format des Datalinks
keine weitere Kontrolle
referenzierte Dateien können mittels File-Manager-Operationen gelöscht oder
umbenannt werden, solange kein Datalinker vorhanden ist
INTEGRITY NONE
„
„
referenzierte Dateien können ausschließlich mittels File-Manager-Operationen
gelöscht oder umbenannt werden
nicht verträglich mit FILE LINK CONTROL
© Prof.Dr.-Ing. Stefan Deßloch
28
Middleware for Heterogenous and
Distributed Information Systems WS04/05
14
Link-Control-Options (Forts.)
„
READ PERMISSION FS
„
READ PERMISSION DB
„
WRITE PERMISSION FS
„
WRITE PERMISSION BLOCKED
„
„
„
„
„
Leserecht für referenzierte Dateien wird durch den File-Manager bestimmt
Leserecht für referenzierte Dateien wird über SQL bestimmt
Schreibrecht für referenzierte Dateien wird durch den File-Manager bestimmt
kein Schreibzugriff auf referenzierte Dateien, es sei denn, es existiert
implementierungsabhängiger Mechanismus
WRITE PERMISSION ADMIN [NOT] REQUIRING TOKEN FOR UPDATE
„
Schreibrecht für referenzierte Dateien durch SQL bestimmt
© Prof.Dr.-Ing. Stefan Deßloch
29
Middleware for Heterogenous and
Distributed Information Systems WS04/05
Link-Control-Options (Forts.)
„
RECOVERY YES
„
mit SQL-Server koordinierte Recovery (Datalinker-Mechanismus)
„
RECOVERY NO
„
ON UNLINK RESTORE
„
„
keine Recovery auf referenzierten Dateien
vor der Herstellung des Links bestehende Rechte (Ownership, Permissions) werden
durch den File-Manager bei Auflösung des Links (Unlink) wiederhergestellt
„
ON UNLINK DELETE
„
ON UNLINK NONE
„
„
Löschung bei Unlink
keine Auswirkungen auf die Rechte bei Unlink
© Prof.Dr.-Ing. Stefan Deßloch
30
Middleware for Heterogenous and
Distributed Information Systems WS04/05
15
Gültige Kombinationen
Integrity
Read permission
Write permission
Recovery
Unlink
ALL
FS
FS
NO
NONE
ALL
FS
BLOCKED
NO
RESTORE
ALL
FS
BLOCKED
YES
RESTORE
ALL
DB
BLOCKED
NO
RESTORE
ALL
DB
BLOCKED
NO
DELETE
ALL
DB
BLOCKED
YES
RESTORE
ALL
DB
BLOCKED
YES
DELETE
ALL
DB
ADMIN
NO
RESTORE
ALL
DB
ADMIN
NO
DELETE
ALL
DB
ADMIN
YES
RESTORE
ALL
DB
ADMIN
YES
DELETE
SELECTIVE
FS
FS
NO
NONE
Middleware for Heterogenous and
Distributed Information Systems WS04/05
31
© Prof.Dr.-Ing. Stefan Deßloch
Art der Anbindung über Foreign-Data-Wrapper
„
allg. Möglichkeiten der Anbindung externer Daten
1
2
SQL
3
API
Wrapper
ext.
Server
ORDBMS
„
ext. Objekt
Einordnung von Foreign-Data-Wrapper/Server
„
„
„
externe Objekte = Foreign-Tables/Values
Manipulation der Daten: 1, 2
Wrapper implementiert vom SQL-Server erwartete Routinen zur Delegation von
Anfrage(teile)n an externen Server
© Prof.Dr.-Ing. Stefan Deßloch
32
Middleware for Heterogenous and
Distributed Information Systems WS04/05
16
Art der Anbindung mittels Datalinks
„
„
allg. Möglichkeiten der
Anbindung externer Daten
Einordnung von Datalinks:
„
„
„
„
„
1
externes Objekt =
referenzierte Datei
1: Manipulation von URLs
(Datalink-Werte),
‚Beschaffung‘ von
Berechtigungen (Token)
3: „überladene“ BSZugriffe
2
SQL
3
API
ext.
Server
Rechte- und
Integritätskontrolle durch
ORDBVS
„Einklinken“ von Recoveryund Backup-Mechanismen
implementierungsabhängig
und durch Standard nicht
geregelt
© Prof.Dr.-Ing. Stefan Deßloch
ORDBMS
33
ext. Objekt
Middleware for Heterogenous and
Distributed Information Systems WS04/05
Zusammenfassung
„
„
Wrapper als Mediator zwischen Datenquelle und Middleware
Beispiel: Garlic (IBM)
„
„
nahezu jede Art von Datenquelle integrierbar
globale Anfrageoptimierung
„
„
„
SQL/MED
„
„
„
„
Part 9 des SQL:1999-Standards
folgt der Garlic-Idee
Foreign-Data-Wrapper/Server
Vorteile
„
„
Bewältigung der Heterogenität (bzgl. DM, API)
Verteilungstransparenz
„
„
Middleware (Garlic) und Wrapper entscheiden dynamisch, welche Teile der Anfrageverarbeitung durch
Wrapper übernommen werden kann, wie diese ausgeführt werden (Planalternativen)
spezifische Möglichkeiten der Datenquellen können genutzt werden
globales Schema, Anfrage kann mehrere, verteilte Datenquellen überspannen
Einschränkungen
„
„
Überwindung von struktureller und semantischer Heterogenität noch notwendig
Änderungsoperationen auf externen Datenquellen nicht standardisiert
© Prof.Dr.-Ing. Stefan Deßloch
34
Middleware for Heterogenous and
Distributed Information Systems WS04/05
17
Herunterladen