Transaction Validation for XML Documents based on XPath



Ähnliche Dokumente
Synchronisations- Assistent

Unterscheidung: Workflowsystem vs. Informationssystem

Mobilgeräteverwaltung

Auswahlabfragen mit ACCESS

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

GEZIELT MEHR SICHERHEIT MIT 4I ACCESS SERVER & 4I CONNECT CLIENT

Anleitung für die Hausverwaltung

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook ( ) Zentrum für Datenverarbeitung der Universität Tübingen

Kapitel 8: Physischer Datenbankentwurf

Benutzerhandbuch. BERENBERG Online Service for SWIFT copies

AbaWeb Treuhand. Hüsser Gmür + Partner AG 30. Oktober 2008

Speicher in der Cloud

peer-to-peer Dateisystem Synchronisation

Anleitung für die Teilnahme an den Platzvergaben "Studio II, Studio IV und Studio VI" im Studiengang Bachelor Architektur SS15

Grundlagen verteilter Systeme

Information über die WebServices der Parlamentsdienste

Hinweise zum elektronischen Meldeformular

Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel

Einführung in Subversion

Pflegeberichtseintrag erfassen. Inhalt. Frage: Antwort: 1. Voraussetzungen. Wie können (Pflege-) Berichtseinträge mit Vivendi Mobil erfasst werden?

Algorithmen und Datenstrukturen. Große Übung vom Nils Schweer

Synchronisation in Datenbanksystemen in a nutshell

Stornierungsbedingungen und weitere Voraussetzungen

Erweiterung AE WWS Lite Win: AES Security Verschlüsselung

Die aktuelle Entwicklung des GeoService-Portals. Übersicht über die neue Version

Systemvoraussetzungen

Bedienungsanleitung: Onlineverifizierung von qualifiziert signierten PDF-Dateien

Probeklausur Grundlagen der Datenbanksysteme II

Anleitung mtan (SMS-Authentisierung) mit SSLVPN.TG.CH

Installationsanleitung Sander und Doll Mobilaufmaß. Stand

Veröffentlichen von Apps, Arbeitsblättern und Storys. Qlik Sense Copyright QlikTech International AB. Alle Rechte vorbehalten.

Erfahrungen mit Hartz IV- Empfängern

DB Restore mit SQL Server7

1.1. Aufschriften auf der Außenseite von ME-Geräten oder ME-Geräte-Teilen

Mail-Server mit GroupWare

Gezielt über Folien hinweg springen

WinVetpro im Betriebsmodus Laptop

SCHNELLEINSTIEG FÜR HOSTED EXCHANGE BASIC / PREMIUM

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Dokumentation zur Versendung der Statistik Daten

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

Massenversand Dorfstrasse 143 CH Kilchberg Telefon 01 / Telefax 01 / info@hp-engineering.com

teamsync Kurzanleitung

Lokales Netzwerk Probleme beim Verbinden eines Linux-Clients mit einem Windows 2003 Server Frage:

Widerrufsbelehrung der Free-Linked GmbH. Stand: Juni 2014

PayPal PLUS für Shopware

Synchronisation & Programmzugriff

IT-Trend-Befragung Xing Community IT Connection

Kurzanleitung fu r Clubbeauftragte zur Pflege der Mitgliederdaten im Mitgliederbereich

Datenübernahme in ein Produkt der Lexware premium, professional oder plus line

Tipps & Tricks: März Parameter der tnsnames.ora im RAC Umfeld. 1. Parameter: Bereich: Erstellung: RAC 03/2011 SH. Letzte Überarbeitung: 11.

Technische Informationen zum Webmail, bereitgestellt durch den Landesverband der Freiwilligen Feuerwehren Südtirols.

Hilfe Bearbeitung von Rahmenleistungsverzeichnissen

Multimedia und Datenkommunikation

Besprechung Übung 1 & Vorstellung Übung 2

Silca Software ERKLÄRUNG. February 2013 Copyright Silca S.p.A. V.2.0

E-Rechnung: Einfach, bequem und sicher zahlen

Andersen & Partners Finanzplanung. Vernetzte Beratung für langjährigen Erfolg. A N D E R S E N & P A R T N E R S. value beyond financial advice

Query Transformation based on XSLT

Die Statistiken von SiMedia

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Process4.biz Release Features Übersicht. Repository. Das Schützen von Diagrammen wurde optimiert (check-in, check-out)

Routing im Internet Wie findet ein IP Paket den Weg zum Zielrechner?

PostgreSQL und memcached

AutoSPARQL. Let Users Query Your Knowledge Base

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

Architektur des agimatec-validation Frameworks

Abrechnung via KV-SafeNet*-Portal an die KV Hessen übermitteln

Einführung in. Logische Schaltungen

Journaling-Dateisysteme

Anleitung für die Online-Bewerbung über LSF auf Lehrveranstaltungen aller Lehramtsstudiengänge

Gussnummern-Lesesystem

Semestralklausur zur Vorlesung. Web Mining. Prof. J. Fürnkranz Technische Universität Darmstadt Sommersemester 2004 Termin:

ecaros2 - Accountmanager

STORES2. Operation Manual Version Warenretoure mit Zustimmung des Headquarter

Erfolgreiche Verbindung. 3. Anmeldung: Bitte geben Sie Ihren Benutzernamen und Ihr Kennwort ein.

Integrated Services Realtime Remote Network

Mobiles SAP für Entscheider. Permanente Verfügbarkeit der aktuellen Unternehmenskennzahlen durch den mobilen Zugriff auf SAP ERP.

Inventur. Bemerkung. / Inventur

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):

IBM License Information document

A. Ersetzung einer veralteten Govello-ID ( Absenderadresse )

1 Dedicated Firewall und Dedicated Content Security

MailUtilities: Remote Deployment - Einführung

Elektronischer Kontoauszug

Konzepte der Informatik

Widerrufsrecht, Widerrufsbelehrung, Ausschluss des Widerrufsrechts und Muster- Widerrufsformular Stand

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser

Internet- und -Überwachung in Unternehmen und Organisationen

Registrierung für eine Senioren IPIN Ab 17. Mai 2011 können sich Spieler für eine Senioren IPIN (Lizenz) registrieren.

Software Engineering in der Praxis

Inhaltsverzeichnis Dokumentverwaltung Organisation von Dokumenten Ordner erstellen Dokumente im Dateisystem behandeln...

Kontenaktualisierung in Lexware buchhalter

Meinungen der Bürgerinnen und Bürger in Hamburg und Berlin zu einer Bewerbung um die Austragung der Olympischen Spiele

SAP GUI 7.30 Installation und Einrichtung: Mac OSX

CONTInuität und Leistung seit 1970

mybev Shop des e-geodata Austria Portal

NODELOCKED LIZENZ generieren (ab ST4)

OCTOPUS Appointment System von ADCOTEL -- System Architektur Version 1.1 vom Adcotel GmbH. I. Übersicht

Anleitung Selbststudium

Transkript:

Transaction Validation for XML Documents based on XPath @ Informatik 2002, m-dbis Stefan Böttcher Adelhard Türling Universität Paderborn

Überblick Transaktionen für XML - Daten & mobile Clients Motivation & Framework Voraussetzungen für mobile Transaktionen Validierung für XML Daten Prädikative Validierung mit XPath und XML Optimierung der Kommunikation & anderer Ressourcen Optimierung der Kommunikation durch HS Cashing Zusammenfassung Ausblick 2 / 20

Szenario Transaktion XPath Anfrage Server... XML Änderungen XML virtuell Client: XPath Queries Arbeitet auf virtuellem XML Server: Liefert virtuelles XML Dokument Synchronisiert parallele Zugriffe Standard Transaktionszusicherungen 3 / 20

Voraussetzungen - Ansatz Mobiler Client: Lose Kopplung Offline-Phasen Bandbreite/Volumen Geringe Speicherressource Geringe Rechenressource Anforderung: Robust gegen Abbrüche Unabhängigkeit Kommunikation minimieren Datenmanagement/Caching Last an Server abgeben Lösung: Optimistische Synchronisation (Validieren) Validieren auf XML Mengen Logische Validierung mit XPath 4 / 20

Virtuelles XML Dokument XPath & XML Fragmente <BookingService> <Connections> <Connection id="1"> <destination>paris</destination> <departure>london</departure> </Connection> <Connection id="2"> <destination>paris</destination> <departure>hamburg</departure> </Connection> <Connection id="3"> <destination>rom</destination> <departure>hamburg</departure> </Connection>... </Connections>... </BookingService> Client1: /BookingService/Connections/Connection [./destination = 'Paris'] Client2: /BookingService/Connections/Connection [./departure = 'Hamburg'] 5 / 20

Parallel Validieren serialisierte Reihenfolge Commit R V W T neu W T alt1 W L V W T alt2 T alt3 WriteSet(T alt ) ReadSet(T neu ) = WriteSet(T alt ) (ReadSet(T neu ) WriteSet(T neu )) = 6 / 20

XML Validierung Tabelle z.b. Tupel ein relationalen DB Virtuelles XML Dokument Schnittmengen-Tests XML für Fragmente Identifiziert z.b. durch XPath 7 / 20

Mobiles XML Validieren Client: Hält die physikalische Kopie des XML Fragments Änderungen auf Kopie Kommuniziert XPath an Stelle von XML Dokumenten Prädikative Validierung mit XPath Server: Logisches ReadSet (XPath) Logisches WriteSet (XPath) Physikalisches WriteSet ( XML Daten) XML Fragmente 8 / 20

Read Phase Client Read: XPath Queries XML Fragment Insert/Update: XPath (eindeutig*) XML Fragmente Delete: XPath (eindeutig*) Server log. ReadSet: + XPath XPath Query auf DB log. WriteSet: phy. WriteSet: log. WriteSet: phy. WriteSet: + XPath + XPath Query auf DB + XML Fragment in + XPath + XPath Query auf DB TR log. Read Set log. Write Set phy. Write Set 9 / 20

Validierungsphase Write Phase Read/Write Konflikte ReadSet(T neu ) WriteSet(T alt ) = XPath Queries aus ReadSet(T neu ) angewendet auf phy. WriteSet(T alt ) = Write/Write Konflikte WriteSet(T alt ) (ReadSet(T neu ) WriteSet(T neu )) = XPath Queries aus ReadSet(T neu ) + XPath Queries aus log. WriteSet(T neu ) angewendet auf phy. WriteSet(T alt ) = 10 / 20

Eindeutige XPath Bestimmung Cl2 XPath = /BookingService/Connections/Connection[@id='3']/destination/* XML Fragmente = Paris Basis Algorithmus: füge XPath Platzhalter ein. folge Parent-Axe bis Wurzel für jeden Knoten auf dem Weg: suche eindeutiges Merkmal das von Geschwistern abgrenzt nehme Merkmal als Filter in XPath auf. Server: Hintereinanderausführung von XPath für Read-Fragment XPath für Write-Fragment <BookingService> <Connections> <Connection id="1"> <destination>paris</destination> <departure>london</departure> </Connection> <Connection id="2"> <destination>paris</destination> <departure>hamburg</departure> </Connection> <Connection id="3"> <destination>rom</destination> <departure>hamburg</departure> </Connection>... </Connections>... </BookingService> 11 / 20

Client1 (neu) Beispiel Client2 (alt) Zeit read(xpath1=...[./destination = 'Paris ]) count(#connection) validate: read(xpath2=...[./departure = 'Hamburg']) update(destination: Rom Paris) validate commit write Client2 XPath = /BookingService/Connections/Connection[@id='3']/destination/* XML Fragmente = Paris ReadSet(T neu ) = XPath1 log. WriteSet(T neu ) = phy. WriteSet(T neu ) = ReadSet(T alt ) = XPath2 log. WriteSet(T alt ) = XPath2 Cl2 XPath phy. WriteSet(T alt ) XPath2 Cl2 XPath + XML Fragment XPath Queries aus ReadSet(T neu ) angewendet auf phy. WriteSet(T alt ) =? 12 / 20

Ressourcenbetrachtung XML Frag. Logik TR TR log. read Read set Set log. phy. write Write XML Write set Set Frag. Set XML... Logik TR TR log. log. phy. read Read write Write XML Write set Set set Set Frag. Set... TR TR log. log. phy. read Read write Write XML Write set Set set Set Frag. Set Scheduler Logik des Servers: Logik des Clients: Verwaltung der Sets Eindeutige XPath Pfade finden (einfach) 13 / 20

Kommunikationsbetrachtung Read-Operation: Nur benötigte Fragmente des kompletten XML Dokumentes senden Delete-Operation: Nur logischen Ausdruck senden Update-Operation: Es werden nur neue Werte kommuniziert Kommunikationsaufwand optimiert! 14 / 20

Lost Connection Vorteil optimistischer Synchronisation Abbrüche beeinflussen andere Transaktionen nicht Offline auf aktuellen Daten arbeiten Wiederaufnahme der Verbindung: Vor Beginn der Validierungsphase Transaktion verwerfen und Daten neu lesen Ohne Spezialbehandlung fortfahren Intermediate Validation (kein oder Datentransfer nötig) Nach Beginn der Validierungsphase Status nach Reconnect mitteilen 15 / 20

Einsatzspektrum Szenario: Lose gekoppelte Client/Server XML Transaktionen Geringe Bandbreite Hohe Datenvolumen-Kosten Abbrüche Geringe Clientanforderungen Mögliche Implementation: WebService für XML Transaktionen Spezifische Ausprägungen Z.B. für Clients mit sehr kleinem Hauptspeicher... 16 / 20

Nachladestrategien in Read-Phase Fragestellung: Wie erkennt Server welches XML-Fragment dem Client fehlt? Muss der Client XPath-Anfrage überhaupt stellen? Wie verdrängt der Client? Lösung: Identische Abbildung des Clientspeichers im Server ( ReadSet!) Fixe Größe des Speichers Datenstruktur identifiziert fehlende Fragmente Merkmal für Verdrängung und TR-Zugehörigkeit Client und Server benutzen gleiche Verdrängungsstrategie Operationen des Clients werden vom Server nachvollzogen 17 / 20

Speicher Recycling Test des Clients: Vollständigkeit Transaktionszugehörigkeit Szenarien: Beide Bedingungen des Test erfüllt keine Serverinteraktion nötig Vollständigkeit nicht erfüllt Daten aus alten Transaktionen XML nachladen falls veraltet XML nachladen Nur wenn keine Knoten bereits im Speicher sind keine Optimierung 18 / 20

Zusammenfassung Validierungstest: nur XPath Query Auswertung XPath Ausdrücke nur gegen kleine XML Fragmente testen Informationsoptimale Nutzung der Verbindung Verwaltung von XPath Listen im Hauptspeicher möglich Robust gegen Unterbrechungen Client braucht kein XPath oder XML auswerten können Transaktionszusicherung: Serializable Wiederverwendung über Transaktionsgrenzen hinaus 19 / 20

Ausblick XML Differenztests Transparente Nutzung über MDOM TR Verdrängungsstrategien Preload Heuristiken Writeback Heuristiken 20 / 20

Transaction Validation for XML Documents based on XPath @ Informatik 2002, m-dbis Stefan Böttcher Adelhard Türling Universität Paderborn