sichere templategestützte verarbeitung von xml-dokumenten

59
Sichere templategestützte Verarbeitung von XML- Dokumenten Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie Dresden, 1. Juli 2011 Falk Hartmann Verteidigung der Dissertation

Upload: falk-hartmann

Post on 01-Nov-2014

450 views

Category:

Documents


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie

Dresden, 1. Juli 2011

Falk Hartmann

Verteidigung der Dissertation

Page 2: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Motivierendes Beispiel

Fehler Nicht-wohlgeformtes XML Verletzung einfacher Typen Strukturell falsches XHTML

Folie 2

Page 3: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Begrifflichkeiten

Folie 3

Page 4: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Begrifflichkeiten

Folie 4

Page 5: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Agenda

▪ Motivierendes Beispiel und Begrifflichkeiten

Sichere Template-VerarbeitungEntwurf einer generischen Slot Markup-Sprache Unterstützung der sicheren Template-ErstellungFlexible, effiziente und sichere Template-AusprägungValidierung

▪ Beiträge der Arbeit und Fazit

Folie 5

Page 6: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Agenda

▪ Motivierendes Beispiel und Begrifflichkeiten

Sichere Template-Verarbeitung

Entwurf einer generischen Slot Markup-Sprache Unterstützung der sicheren Template-ErstellungFlexible, effiziente und sichere Template-AusprägungValidierung

▪ Beiträge der Arbeit und Fazit

Folie 6

Page 7: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Ziele

Sichere ErstellungRückmeldung an den Autor über die Richtigkeit des Ausprägungsergebnisses in Bezug auf die Zielsprache

Sichere AusprägungKlare und ausreichende Rückmeldung von bei der Ausprägung auftretenden Problemen

Trennung der BelangeMöglichkeit arbeitsteiliger Entwicklung

Breite AnwendbarkeitVermeidung von Einschränkungen in Bezug auf Ziel- und Anfragesprachen sowie Anwendungsgebiete

Nutzung existierender StandardsWiederverwendung bestehender Sprachen, Werkzeuge und Prozesse

Folie 7

Sichere template-gestützte Verarbeitung

Page 8: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Anforderungen

Erhaltung der Einschränkungen der ZielspracheÜbernehmen von Verboten der Zielsprache in die Templatesprache

Abdeckung der ZielspracheErmöglichen der Erzeugung aller Sätze der Zielsprache

AbleitbarkeitAutomatisches Ableiten der Grammatik der Templatesprache aus der Grammatik der Zielsprache

SteueranweisungenErlauben bedingter und wiederholter Ausprägung von Teilen der Templates

Typsicherheit der AusprägungsdatenErzwingen oder Überprüfen der korrekten Typen der Ausprägungsdaten

Unabhängigkeit von der AnfragespracheVermeiden von Annahmen über die Anfragesprache

Folie 8

Page 9: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Ziele → Anforderungen

Beispiel:Trennung der Belange → Steueranweisungen:

Fehlende Steueranweisungen resultieren i.d.R. in mangelnder Trennung der Belange

Folie 9

Page 10: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Lösungsarchitektur

Folie 10

Page 11: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Anforderungen → Lösungsarchitektur

Beispiel:Unabhängigkeit von der Anfragesprache → Bestimmung der Ausprägungsdaten:

Spezielle Lösungsarchitekturkomponente zur Bestimmung der Ausprägungsdaten erleichtert Anpassung an Anfragesprachen

Folie 11

Page 12: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Agenda

▪ Motivierendes Beispiel und Begrifflichkeiten

Sichere Template-VerarbeitungEntwurf einer generischen Slot Markup-Sprache

Unterstützung der sicheren Template-ErstellungFlexible, effiziente und sichere Template-AusprägungValidierung

▪ Beiträge der Arbeit und Fazit

Folie 12

Page 13: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Entwurf einer generischen Slot Markup-Sprache

XTL – XML Template LanguageUniversell, syntax- und semantik-erhaltendAdressiert Fehlertyp

Sprachumfang• Erzeugung von Attributwerten, Text (xtl:attribute, xtl:text)• Bedingte und wiederholte Ausführung (xtl:if, xtl:for-each)• Makros • Einbettung kompletter XML-Fragmente• Unterstützung für multiple Ausprägungsdatenquellen• Unterstützung für mehrschrittige Ausprägung

Syntax• XML Schema

Semantik• Denotationell formuliert in Haskell• Zusätzlich translationale und operationelle Beschreibung

Folie 13

Page 14: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Agenda

▪ Motivierendes Beispiel und Begrifflichkeiten

Sichere Template-VerarbeitungEntwurf einer generischen Slot Markup-Sprache Unterstützung der sicheren Template-Erstellung

Flexible, effiziente und sichere Template-AusprägungValidierung

▪ Beiträge der Arbeit und Fazit

Folie 14

Page 15: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Grundidee der sicheren Erstellung

Adressiert Fehlertypen und

Folie 15

Page 16: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Aufteilung der Einschränkungen

Folie 16

XML Schema ist nicht ausdrucksstark genug zur Beschreibung der Templatesprache → CXSD!

Page 17: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Aufteilung der Einschränkungen

Zielsprachengrammatik

Erforderliche oder optionale Attribute

Templatesprachengrammatik

• Umwandlung in optionale Attribute• Erlauben von xtl:attribute im

Inhaltsmodell des Elternknotens• Einschränkung der erzeugbaren

Attribute (Namen)

Einschränkung der Ausprägungsdaten

• Typüberprüfung entsprechend Typ des Attributes

Folie 17

Page 18: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Aufteilung der Einschränkungen

Zielsprachengrammatik

Simple Content (durch “einfache” Inhaltstypen eingeschränkter Elementinhalt)

Templatesprachengrammatik

• Umwandeln in Mixed Content• Erlauben von xtl:text im

Inhaltsmodell• Einschränkung des Textinhalts

entsprechend Inhaltstyp

Einschränkung der Ausprägungsdaten

• Typüberprüfung entsprechend Inhaltstyp

Folie 18

Page 19: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Aufteilung der Einschränkungen

Zielsprachengrammatik

Elemente mit Kardinalität {0,1} oder {n,m}

Templatesprachengrammatik

• Ersetzen durch Alternative zwischen Ursprungselement und xtl:if oder xtl:for-each

• Einschränkung des Inhalts von xtl:if bzw. xtl:for-each auf Ursprungselement

Einschränkung der Ausprägungsdaten

• Überprüfung der Anzahl der Wiederholungen

Folie 19

Page 20: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Agenda

▪ Motivierendes Beispiel und Begrifflichkeiten

Sichere Template-VerarbeitungEntwurf einer generischen Slot Markup-Sprache Unterstützung der sicheren Template-ErstellungFlexible, effiziente und sichere Template-Ausprägung

Validierung

▪ Beiträge der Arbeit und Fazit

Folie 20

Page 21: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Eigenschaften der Template-Ausprägung

Flexibel• Plug in-Mechanismus für Anfragesprachen• Implementierungen für XPath, SPARQL, OCL

Effizient• Implementierung mit StAX (JSR-173)• Speicherbedarf wächst linear mit Anzahl der Knoten in größter zu

wiederholender Einheit im Template• Zeit wächst linear mit Größe des Ausprägungsergebnisses

Sicher• Ausprägungsdaten werden auf Typ und Multiplizität geprüft• Alternativer Ansatz: Generierung einer Template-Schnittstelle

Folie 21

Page 22: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Generierung einer Template-Schnittstelle

Grundidee• Nutzung der Ausdrücke der Anfragesprache zur Erzeugung eines Modells

der Ausprägungsdaten• Gewährleistung der Richtigkeit der Ausprägungsdaten durch Transfer der

Datentypen aus dem XML- in das Java-Typsystem• Analog zur XML binding-Technologien (z.B. JAXB), aber neu für Templates

Konsequenzen• Einschränkung der Abfragesprache XPath auf umkehrbare Ausdrücke

• Beispiel:XPath-Ausdruck //a -> nicht anwendbar auf Java-Objekt-Modell

• Umkehrung der Datenbezugsrichtungpush statt pull-Strategie

Folie 22

Page 23: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Agenda

▪ Motivierendes Beispiel und Begrifflichkeiten

Sichere Template-VerarbeitungEntwurf einer generischen Slot Markup-Sprache Unterstützung der sicheren Template-ErstellungFlexible, effiziente und sichere Template-AusprägungValidierung

▪ Beiträge der Arbeit und Fazit

Folie 23

Page 24: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Validierungsmittel

Implementierung eines PrototypsAufteilung der Einschränkungen, Template-Validierung und -Ausprägung, Template Schnittstellen-Generierung

Testsuiteentsprechend ImplementierungÜbereinstimmung Template-Ausprägung mit denotationeller und translationaler Semantik

Anwendung der ImplementierungEinsatz in den Projekten SNOW, FeasiPLe und EMODE

Beweis der Erhaltung der Einschränkungen der ZielspracheInduktionsbeweis ausgehend von Algorithmus zur Aufteilung der Einschränkungen

Performance-MessungenLaufzeit der Template-Validierung, Laufzeit und Speicherbedarf der Template-Ausprägung, Vergleichsmessung mit JSP und XSL-T

Folie 24

Page 25: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Validierungsmittel → Ziele

Beispiel:Performance-Messungen → Breite Anwendbarkeit:

Ist der Einsatz des Ansatzes praktisch vertretbar?

Folie 25

Page 26: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Testsuite

Überprüfung der Implementierung im Hinblick auf die Ziele Sichere Erstellung und Sichere Ausprägung

• Vergleich der Ergebnisse der verschiedenen Komponenten mit hinterlegten, geprüften Ergebnissen

• Prüfung der Aufteilung der Einschränkungen, Validierung, Ausprägung, Generierung von Template-Schnittstellen und Round-Trip-Test

Folie 26

Page 27: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Beweis der Erhaltung der Einschränkungen

VoraussetzungTemplate, welches der Template-Grammatik genügtAusprägungsdaten, welche den entsprechenden Einschränkungen genügen

BehauptungAusprägungsergebnis genügt der Zielsprachengrammatik

Folie 27

Page 28: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Performance-Messungen

Laufzeit der TemplatevalidierungBasis: Template mit 2n Kindknoten mit erforderlichem Attribut,

• n Attribute direkt spezifiziert• n-1 Attribute mittels xtl:attribute erzeugt• 1 Attribute fehlt und wird nicht erzeugt

(Messung auf Intel 2 Duo 2.8 GHz, 4 MB RAM, MacOS 10.6.7, JDK 1.6.0_24)

Folie 28

Page 29: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Agenda

▪ Motivierendes Beispiel und Begrifflichkeiten

Sichere Template-VerarbeitungEntwurf einer generischen Slot Markup-Sprache Unterstützung der sicheren Template-ErstellungFlexible, effiziente und sichere Template-AusprägungValidierung

▪ Beiträge der Arbeit und Fazit

Folie 29

Page 30: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Beiträge

Weitere Beiträge• Definition des Begriffes Template• Klassifikation existierender Template-Ansätze

Entwurf einer universellen Slot Markup-Sprache• Syntax- und semantik-erhaltend• Unabhängig von konkreter XML-Zielsprache• Unabhängig von Anfragesprache• Denotationell definierte Semantik

Sichere Erstellung und Ausprägung• Überprüfung der Ausprägungsergebnisse soweit als möglich zur

Erstellungszeit• Direkte Überprüfung der Ausprägungsdaten zur Ausprägungszeit• Alternative: Generierung einer Template-Schnittstelle

Folie 30

Page 31: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Fazit

Sichere Erstellung und Ausprägung sind mit dem gezeigten Ansatz möglich!

- Trennung der Belange, Breite Anwendbarkeit gegeben- Nutzung existierender Standards eingeschränkt erreicht

- Fehlerklasse adressiert durch Sprachentwurf der XTL- Fehlerklassen und adressiert durch Aufteilung der Einschränkungen

Folie 31

Page 32: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Vielen Dank für Ihre Aufmerksamkeit!

Folie 32

Page 33: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Verwandte Arbeiten

Templates: Mittel zur Erzeugung konkreter Syntax- Modell-zu-Text Transformationen- Anwendungsgebiete: Webapplikationen, Codegenerierung- Einfache Nutzung existierender Fragmente der konkreten Syntax

Verwandte Ansätze- Aspekt-orientierte Programmierung (XUpdate)

- Sicherheit ist Forschungsthema

- Transformationstechniken (XSL-T)- Erhalten die Syntax der Zielsprache nicht- Hoher Lernaufwand

- Binding-Techniken (JAXB)- Sicher per Definition- Fragmente konkreter Syntax müssen in anderen technologischen

Raum übersetzt werden- Verletzung der Trennung der Belange

Folie 33

Page 34: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Verwandte Arbeiten (Vergleich)

Quelle 1 Quelle 2

Ziel

+

JSP

XUpd

ate

XSL-T

JAXB

XML Java any XML

XML(core)

XML(advice)XUpdate XML

XSL-T + XML XML’XPath XML

Java anyJava XML

Folie 34

Page 35: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Definition Template-Begriff

Folie 35

Page 36: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Klassifikation Template-Ansätze (1)

1. Target Language Awareness of Slot Markup- Syntax preserving

- Semantic preserving (TAL)- Semantic abusing (XMLC)

- Syntax destructing (Perl)2. Generality of Slot Markup

- Specific for a particular target language- Generic

3. Entanglement Index [Parr, 2006]- No modification of the model- No computations- No comparisons- No type assumptions- Separation of concerns

4. Instantiation Data Access Strategy- Push- Pull

Folie 36

Page 37: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Klassifikation Template-Ansätze (2)

5. Query Language- Opaque vs. significant- Declarative vs. imperative- Domain specific vs. general purpose

6. Instantiatian Technique- Compiler- Interpreter

7. Reuse- Macros- Group inheritance

8. Further Features- Group interfaces- Newline handling

Folie 37

Page 38: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

XTL - Beispiel

Folie 38

Page 39: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Anwendung der Implementierung

SNOW- Benutzung der XTL als einfache Sprache für Dokumentationsautoren bei

EADS- Zwei Hauptkomponenten basierend auf der XTLEngine (Datenschicht,

Controller)- EADS Ingenieure schätzen Einfachheit der XTL

EMODE- Komplexe Transformationen auf Basis der XTLEngine- Nutzung der XTL zur Erzeugung von MXML (Flex) Applikationen

FeasiPLe- Codegenerierung aus Ontologien mittels SPARQL-Abfragen- Emulation der transitiven Hülle innerhalb eines PHP → Erweiterung von

SPARQL um die Fähigkeit zur Hüllenbildung

Folie 39

Page 40: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

SNOW-Architektur

Folie 40

Page 41: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Zeitbedarf Validierung

Folie 41

Page 42: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Zeitbedarf Ausprägung

Folie 42

Page 43: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Vergleich Zeitbedarf Ausprägung

Folie 43

Page 44: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Speicherbedarf (1)

Folie 44

Page 45: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Speicherbedarf (2)

Folie 45

Page 46: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Fallunterscheidung Sichere Erstellung

Folie 46

Page 47: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Klassifikation von Schemasprachen

1. Regular Tree Grammars (Relax NG)2. Restrained-Competition Tree Grammars3. Single-Type Tree Grammars (XML Schema)4. Local Tree Grammars (DTD)

Folie 47

Page 48: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Vertikale und horizontale XML-Pipeline

Folie 48

Page 49: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Pull parser vs. Push parser

Folie 49

Page 50: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Push strategy vs. Pull strategy

Folie 50

Page 51: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

ReadWindow Operationen

Folie 51

Page 52: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Auswirkungen unpassender Ausdrucksstärke

Folie 52

Page 53: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere Erstellung: Prozessänderung

Folie 53

Page 54: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Grundlage der operationellen Semantik

Folie 54

Page 55: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Prinzip der translationalen Semantik

Folie 55

Page 56: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Round-trip Test

Folie 56

Page 57: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

OCL Constraint für erforderliche Attribute

Folie 57

Page 58: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

OCL Constraint für Textinhalte

Folie 58

Page 59: Sichere templategestützte Verarbeitung von XML-Dokumenten

Sichere templategestützte Verarbeitung von XML-Dokumenten

Unique Particle Attribution

XML Schema Part 1: StructuresA content model must be formed such that during validation of an element information item sequence, the particle component content contained directly, indirectly or implicitly therein with which to attempt to validate each item in the sequence in turn can be uniquely determined without examining the content or attributes of that item, and without any information about the items in the remainder of the sequence.

Folie 59