20
22.07.2005 1 Katharina Bellon Technische Universität Technische Universität Kaiserslautern Kaiserslautern Fachbereich Informatik Fachbereich Informatik Lehrgebiet Lehrgebiet Datenverwaltungssysteme Datenverwaltungssysteme Verarbeitung von XML- Strömen Katharina Bellon Katharina Bellon Seminar zum Thema Data Streams Seminar zum Thema Data Streams Sommersemester 2005 Sommersemester 2005

22.07.2005 1Katharina Bellon Technische Universität Kaiserslautern Fachbereich Informatik Lehrgebiet Datenverwaltungssysteme Verarbeitung von XML-Strömen

Embed Size (px)

Citation preview

Page 1: 22.07.2005 1Katharina Bellon Technische Universität Kaiserslautern Fachbereich Informatik Lehrgebiet Datenverwaltungssysteme Verarbeitung von XML-Strömen

22.07.2005 1 Katharina Bellon

Technische Universität Technische Universität Kaiserslautern Kaiserslautern Fachbereich InformatikFachbereich InformatikLehrgebiet Lehrgebiet DatenverwaltungssystemeDatenverwaltungssysteme

Verarbeitung von XML-Strömen

Katharina BellonKatharina Bellon

Seminar zum Thema Data Streams Seminar zum Thema Data Streams Sommersemester 2005Sommersemester 2005

Page 2: 22.07.2005 1Katharina Bellon Technische Universität Kaiserslautern Fachbereich Informatik Lehrgebiet Datenverwaltungssysteme Verarbeitung von XML-Strömen

22.07.2005 2 Katharina Bellon

GliederungGliederung Anwendungen Anforderungen Anfragesprachen

XPath XQuery

Systeme zur Bearbeitung der XML-Ströme SPEX XMLTK (XPath-Prozessor) XFilter

Zusammenfassung

Page 3: 22.07.2005 1Katharina Bellon Technische Universität Kaiserslautern Fachbereich Informatik Lehrgebiet Datenverwaltungssysteme Verarbeitung von XML-Strömen

22.07.2005 3 Katharina Bellon

Anwendungen (1)Anwendungen (1) Nachrichtenüberwachung

Börse Presse Meteorologie

Anwendungen Anwendungen AnforderungenAnforderungen AnfragespracheAnfragesprachenn SystemeSysteme ZusammenfassuZusammenfassungng

Page 4: 22.07.2005 1Katharina Bellon Technische Universität Kaiserslautern Fachbereich Informatik Lehrgebiet Datenverwaltungssysteme Verarbeitung von XML-Strömen

22.07.2005 4 Katharina Bellon

Anwendungen (2)Anwendungen (2) Systemüberwachung und Systemsteuerung

Verkehrsteuerung Produktionssteuerung Logistik Netzwerkverwaltung

Anwendungen Anwendungen AnforderungenAnforderungen AnfragespracheAnfragesprachenn SystemeSysteme ZusammenfassuZusammenfassungng

Page 5: 22.07.2005 1Katharina Bellon Technische Universität Kaiserslautern Fachbereich Informatik Lehrgebiet Datenverwaltungssysteme Verarbeitung von XML-Strömen

22.07.2005 5 Katharina Bellon

Anwendungen (3)Anwendungen (3) Analyse von wissenschaftlichen Messdaten

in Medizin in Astronomie bei der Früherkennung von Tornados

Anwendungen Anwendungen AnforderungenAnforderungen AnfragespracheAnfragesprachenn SystemeSysteme ZusammenfassuZusammenfassungng

Page 6: 22.07.2005 1Katharina Bellon Technische Universität Kaiserslautern Fachbereich Informatik Lehrgebiet Datenverwaltungssysteme Verarbeitung von XML-Strömen

22.07.2005 6 Katharina Bellon

AnforderungenAnforderungen Möglichst schnelle Bearbeitung von Anfragen,

zum Teil sogar in Echtzeit Platzsparende Verfahren Möglichst genaue Approximationsmechanismen Bearbeitung beliebig strukturierter XML-Daten Weiter Anforderungen:

Skalierbarkeit Plattformunabhängigkeit ...

Anwendungen Anwendungen AnforderungenAnforderungen AnfragespracheAnfragesprachenn SystemeSysteme ZusammenfassuZusammenfassungng

Page 7: 22.07.2005 1Katharina Bellon Technische Universität Kaiserslautern Fachbereich Informatik Lehrgebiet Datenverwaltungssysteme Verarbeitung von XML-Strömen

22.07.2005 7 Katharina Bellon

XPathXPath XPath 1.0

Adressiert Knoten eines XML-Baumes Beispiel: /child::name[position()=3] Lokalisierungspfad Kontextknoten Achsen Knotentest Prädikat Ergebnisobjekt vom Typ: node-set, boolean, string, number

SXP (Simple XPath) wie XPath mit Ausnahme von Achsen ancestor-or-self und descendant-or-self Wertebasierte Vergleiche

der Ergebnisse von Prädikaten (Bsp.: [child::a = desc::a]) von positionsbasierte Prädikaten (Bsp.: [position() = 3])

Anwendungen Anwendungen AnforderungenAnforderungen AnfragespracheAnfragesprachenn SystemeSysteme ZusammenfassuZusammenfassungng

Page 8: 22.07.2005 1Katharina Bellon Technische Universität Kaiserslautern Fachbereich Informatik Lehrgebiet Datenverwaltungssysteme Verarbeitung von XML-Strömen

22.07.2005 8 Katharina Bellon

XQueryXQuery XML Query Language basiert auf XPath 2.0 Wurde von Quilt, XML-QL und Lorel abgeleitet Ähnliche Semantik wie SQL (Structured Query Language) und OQL (Object Query Language) Wird zur Transformation von XML-Dokumenten benutzt XQuery-Anfrage kann geschachtelte Unteranfragen enthalten Ausdrücke können

Funktionen und Operatoren enthalten bedingt und quantifiziert sein boolesche und Vergleichsausdrücke sein

Möglich sind Joins und Aggregatfunktionen ähnlich wie in SQL Zentrale Schlüsselwörter: FLWR

Beispiel:

Anwendungen Anwendungen AnforderungenAnforderungen AnfragespracheAnfragesprachenn SystemeSysteme ZusammenfassuZusammenfassungng

for $b in doc("books.xml")//booklet $c := $b//authorwhere count($c) > 2return $b/title

Page 9: 22.07.2005 1Katharina Bellon Technische Universität Kaiserslautern Fachbereich Informatik Lehrgebiet Datenverwaltungssysteme Verarbeitung von XML-Strömen

22.07.2005 9 Katharina Bellon

SPEX (1)SPEX (1) Streamed and Progressive Evaluator for XPath Wurde entwickelt, um XPath-Anfragen gegen den XML-

Datenstrom auszuwerten Netzwerk aus deterministischen Kellerautomaten Sequentieller Durchlauf Wertet FSXP (Forward Simple XPath) -Anfragen

ohne Rückwärtsachsen (z. B. parent, ancestor) aus Die Verarbeitung erfolgt in vier Schritten

Anwendungen Anwendungen AnforderungenAnforderungen AnfragespracheAnfragesprachenn SystemeSysteme ZusammenfassuZusammenfassungng

XPath-Anfrage

FSXP-Anfrage

1Logischer Anfrageplan

2Physischer Anfrageplan

3 4Ausgabe-strom

Page 10: 22.07.2005 1Katharina Bellon Technische Universität Kaiserslautern Fachbereich Informatik Lehrgebiet Datenverwaltungssysteme Verarbeitung von XML-Strömen

22.07.2005 10 Katharina Bellon

SPEX (2)SPEX (2)Schritt 1

Beispiel:

XPath-Anfrage/desc::process[child::time > 24 or child::memory > 500]

/anc::process[child::priority < 10 and child::state = „stopped“]

FSXP-Anfrage

/desc::process[child::prority < 10 and child::state = „stopped“ and

desc::process[child::time > 24 or child::memory > 500]]

process

process

process

state priority

memorytime

..

.

timememory

Anwendungen Anwendungen AnforderungenAnforderungen AnfragespracheAnfragesprachenn SystemeSysteme ZusammenfassuZusammenfassungng

Page 11: 22.07.2005 1Katharina Bellon Technische Universität Kaiserslautern Fachbereich Informatik Lehrgebiet Datenverwaltungssysteme Verarbeitung von XML-Strömen

22.07.2005 11 Katharina Bellon

SPEX (3)SPEX (3)Anwendungen Anwendungen AnforderungenAnforderungen AnfragespracheAnfragesprachenn SystemeSysteme ZusammenfassuZusammenfassungng

/desc::process[child::prority < 10 and child::state = „stopped“ and /desc::process[child::time > 24

or child::memory > 500]]

Schritt 2

DESC

CHILD DESC

and

process

=„stopped“

state

<10

priority

or

process

CHILD

>24

time

>500

memory

DESC

out

cd-andcd-or

in

stream

process

funnel

CHILD DESC

and

process

=„stopped“

state

<10

priority

or

CHILD

>24

time

>500

memory

Schritt 3

Logischer Anfrageplan

Physischer Anfrageplan

Page 12: 22.07.2005 1Katharina Bellon Technische Universität Kaiserslautern Fachbereich Informatik Lehrgebiet Datenverwaltungssysteme Verarbeitung von XML-Strömen

22.07.2005 12 Katharina Bellon

SPEX (4)SPEX (4)Schritt 4 Strom besteht aus XML-Token Transduktor

benutzt Stack, um die Tiefe des Knoten zu merken.

leitet den Token unverändert oder annotiert weiter.

Head: entspricht einem Lokalisierungsschritt,

der zur gewünschten Ergebnismenge führt. Funnel: sammelt potentielle Antworten

und fügt sie zusammen

DESC

out

cd-andcd-or

in

stream

process

funnel

CHILD DESC

and

process

=„stopped“

state

<10

priority

or

CHILD

>24

time

>500

memory

Head

Anwendungen Anwendungen AnforderungenAnforderungen AnfragespracheAnfragesprachenn SystemeSysteme ZusammenfassuZusammenfassungng

Page 13: 22.07.2005 1Katharina Bellon Technische Universität Kaiserslautern Fachbereich Informatik Lehrgebiet Datenverwaltungssysteme Verarbeitung von XML-Strömen

22.07.2005 13 Katharina Bellon

XMLTK (1)XMLTK (1) XML Toolkit ist ein System bestehend aus mehreren

Kommandozeilen-Werkzeugen, die XML-Daten verarbeiten: xsort: sortiert den XML-Strom xdelete: löscht Element oder Attribut xnest: gruppiert Elemente

Beispiel: xsort -c /dblp/* -e title -e author -k text() -e publisher

$c in $root/dblp/*$e1 in $c/title$e2 in $c/author$k in $e2/text()$e3 in $c/publisher

Anwendungen Anwendungen AnforderungenAnforderungen AnfragespracheAnfragesprachenn SystemeSysteme ZusammenfassuZusammenfassungng

$root

$e3$e1

$c

$e2

$ktext()

authortitle publisher

dbpl/*

Tokenized SAX:startVariable($root)startDocument() startVariable($c) startElement(‚book‘) startVariable($e2) startElement(‚author‘) startVariable($k) characters(‚Elliot‘) endVariable($k)

...

Page 14: 22.07.2005 1Katharina Bellon Technische Universität Kaiserslautern Fachbereich Informatik Lehrgebiet Datenverwaltungssysteme Verarbeitung von XML-Strömen

22.07.2005 14 Katharina Bellon

XMLTK (2)XMLTK (2)XPath-Prozessor Bekommt als Eingabe den Anfragebaum und Strom von TSAX-

Ereignissen Konvertiert den Anfragebaum in NEA, dann in DEA Benutzt Stack Vergleicht Elemente des XML-Baumes und der Anfrage Liefert Ereignisse an die Anwendung

Anwendungen Anwendungen AnforderungenAnforderungen AnfragespracheAnfragesprachenn SystemeSysteme ZusammenfassuZusammenfassungng

Anfrage-Prozessor(Lazy DFA)

SIX Manager

TSAX Parser Anwendung

TSAX Ereignisse Anwendungsereignisse

Tree Patternskip(k)

skip(k)

XMLStrom

XMLStrom

SIXStrom

Page 15: 22.07.2005 1Katharina Bellon Technische Universität Kaiserslautern Fachbereich Informatik Lehrgebiet Datenverwaltungssysteme Verarbeitung von XML-Strömen

22.07.2005 15 Katharina Bellon

XFilter (1)XFilter (1) Filtermechanismus entwickelt für SDI-Systeme SDI (Selective Dissemination of Information):

speichert und vergleicht Benutzerprofile mit eingehenden XML-Dokumenten

filtert und verteilt relevante Information an Empfänger

Unterschied zu DBS: Speicherung und Verwaltung von Anfragen anstelle von Daten

Motivation:

Das XML-Dokument genügt den Ausdrücken q1 und q2 aber nicht q3

Anwendungen Anwendungen AnforderungenAnforderungen AnfragespracheAnfragesprachenn SystemeSysteme ZusammenfassuZusammenfassungng

q1: /catalog/product//msrp

q2: //product/price[@currency =

“USD”]/msrp

q3: //product[price/msrp<300]/name

<?xml version="1.0"?><catalog> <product id="Kd-245"> <name> Color Monitor </name> <price currency="USD"> <msrp> 310.40 </msrp> </price> </product></catalog>

Page 16: 22.07.2005 1Katharina Bellon Technische Universität Kaiserslautern Fachbereich Informatik Lehrgebiet Datenverwaltungssysteme Verarbeitung von XML-Strömen

22.07.2005 16 Katharina Bellon

XFilter (2)XFilter (2)Beispiel: /katalog//drucker/*/details[preis/euro<150]/name Path Nodes: Elementknoten sind Zustände des endlichen Automanten Query Index enthält die Path Nodes Filtering Engine: Ereignisse steuern den Filterprozess

Anwendungen Anwendungen AnforderungenAnforderungen AnfragespracheAnfragesprachenn SystemeSysteme ZusammenfassuZusammenfassungng

Benutzerprofil(XPath-Anfragen)

Query Index

Ausführungs-Algorithmus

Filtering Engine

XPath Parser

XML Parser(SAX-basiert)

Daten-Verteilung

Filtering Engine

EreignisseEreignisse

PassendeProfilePassende

Profile

Path Nodes

Path Nodes

XMLDokumente

FiltrierteDaten

PN1

PN4

PN3

PN2

Page 17: 22.07.2005 1Katharina Bellon Technische Universität Kaiserslautern Fachbereich Informatik Lehrgebiet Datenverwaltungssysteme Verarbeitung von XML-Strömen

22.07.2005 17 Katharina Bellon

XFilter (3)XFilter (3)Query IndexQuery ID: eindeutige Bezeichnung

der AnfragePosition: Position eines Knoten in

der Anfrage

RelativePos: beschreibt den Abstand zwischen dem betrachtetem Knoten und seinem Vorgänger

Level: bezeichnet die Tiefe des Knoten

Q1 = /a/b//c

0 falls Knoten auf 1.Position steht

-1falls vor dem Knoten //-Operator steht

2falls vor dem Knoten *-Operator steht

1 sonst

Q1

1

0

1

Q1

2

1

0

Q1

3

-1

-1

1falls 1.Knoten und absolute Distanz zum Wurzel spezifiziert

-1 wenn RelativePos = -1

0 sonst

Anwendungen Anwendungen AnforderungenAnforderungen AnfragespracheAnfragesprachenn SystemeSysteme ZusammenfassuZusammenfassungng

c

b

aQ1-1

Q1-2

Q1-3

CL

WL

CL

CL

WL

WL

Query Index

Page 18: 22.07.2005 1Katharina Bellon Technische Universität Kaiserslautern Fachbereich Informatik Lehrgebiet Datenverwaltungssysteme Verarbeitung von XML-Strömen

22.07.2005 18 Katharina Bellon

XFilter (4)XFilter (4)Ausführungsalgorithmus Start Element Handler:

Level Check: falls Path Node nicht negativen Levelwert enthält, müssen beide Levels gleich sein

Attribut Filter Check Nach dem Bestehen beider Tests wird das nächste

Element, falls vorhanden, von der Wait List in die Candidate List kopiert ~Zustandsübergang

End Element Handler: beim Auftreten des Ende-Tag-Ereignisses wird entsprechender Path Node von der Candidate List gelöscht

Element Character Handler: Arbeitet ähnlich wie der Start Element Handler Wird aufgerufen wenn der Dateninhalt gefiltert

werden soll Ist auch in der Lage den Zustandsübergang zu

bewirken

Anwendungen Anwendungen AnforderungenAnforderungen AnfragespracheAnfragesprachenn SystemeSysteme ZusammenfassuZusammenfassungng

c

b

aQ1-1

Q1-2

Q1-3

CL

WL

CL

CL

WL

WL

Query Index

Q1

3

-1

-1

c

Page 19: 22.07.2005 1Katharina Bellon Technische Universität Kaiserslautern Fachbereich Informatik Lehrgebiet Datenverwaltungssysteme Verarbeitung von XML-Strömen

22.07.2005 19 Katharina Bellon

ZusammenfassungZusammenfassung XPath:

Adressierung der Knoten im XML-Baum Basis für viele Anwendungen

XQuery: Anfrage- und Transformationssprache De-facto Standard

SPEX: Sequentielle Bearbeitung Netzwerk aus Transduktoren

XMLTK: System aus Werkzeugen XPath-Prozessor

Kein Speichermanagement XFilter:

SDI-System Filtering Engine

Anwendungen Anwendungen AnforderungenAnforderungen AnfragespracheAnfragesprachenn SystemeSysteme ZusammenfassuZusammenfassungng

Beschränkte Anzahl von Elementen

Page 20: 22.07.2005 1Katharina Bellon Technische Universität Kaiserslautern Fachbereich Informatik Lehrgebiet Datenverwaltungssysteme Verarbeitung von XML-Strömen

22.07.2005 20 Katharina Bellon

Danke für die Danke für die Aufmerksamkeit!Aufmerksamkeit!