SlideShare ist ein Scribd-Unternehmen logo
Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie




    Sichere templategestützte
Verarbeitung von XML-Dokumenten


                                   Falk Hartmann

                   Verteidigung der Dissertation

                                   Dresden, 1. Juli 2011
Motivierendes Beispiel




Fehler
 Nicht-wohlgeformtes XML
 Verletzung einfacher Typen
 Strukturell falsches XHTML

Sichere templategestützte Verarbeitung von XML-Dokumenten   Folie 2
Begrifflichkeiten




Sichere templategestützte Verarbeitung von XML-Dokumenten   Folie 3
Begrifflichkeiten




Sichere templategestützte Verarbeitung von XML-Dokumenten   Folie 4
Agenda



▪   Motivierendes Beispiel und Begrifflichkeiten

                Sichere Template-Verarbeitung

                Entwurf einer generischen Slot Markup-Sprache

                Unterstützung der sicheren Template-Erstellung

                Flexible, effiziente und sichere Template-Ausprägung

                Validierung

▪   Beiträge der Arbeit und Fazit




Sichere templategestützte Verarbeitung von XML-Dokumenten              Folie 5
Agenda



▪   Motivierendes Beispiel und Begrifflichkeiten

                Sichere Template-Verarbeitung

                Entwurf einer generischen Slot Markup-Sprache

                Unterstützung der sicheren Template-Erstellung

                Flexible, effiziente und sichere Template-Ausprägung

                Validierung

▪   Beiträge der Arbeit und Fazit




Sichere templategestützte Verarbeitung von XML-Dokumenten              Folie 6
Ziele


Sichere Erstellung
   Rückmeldung an den Autor über die Richtigkeit des
   Ausprägungsergebnisses in Bezug auf die Zielsprache
                                                            Sichere template-
                                                            gestützte Verarbeitung
Sichere Ausprägung
   Klare und ausreichende Rückmeldung von bei der
   Ausprägung auftretenden Problemen

Trennung der Belange
   Möglichkeit arbeitsteiliger Entwicklung

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

Nutzung existierender Standards
   Wiederverwendung bestehender Sprachen, Werkzeuge und Prozesse



Sichere templategestützte Verarbeitung von XML-Dokumenten                  Folie 7
Anforderungen


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

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

Ableitbarkeit
   Automatisches Ableiten der Grammatik der Templatesprache aus der
   Grammatik der Zielsprache

Steueranweisungen
   Erlauben bedingter und wiederholter Ausprägung von Teilen der Templates

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

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


Sichere templategestützte Verarbeitung von XML-Dokumenten                    Folie 8
Ziele → Anforderungen




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


Sichere templategestützte Verarbeitung von XML-Dokumenten                  Folie 9
Lösungsarchitektur




Sichere templategestützte Verarbeitung von XML-Dokumenten   Folie 10
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


Sichere templategestützte Verarbeitung von XML-Dokumenten            Folie 11
Agenda



▪   Motivierendes Beispiel und Begrifflichkeiten

                Sichere Template-Verarbeitung

                Entwurf einer generischen Slot Markup-Sprache

                Unterstützung der sicheren Template-Erstellung

                Flexible, effiziente und sichere Template-Ausprägung

                Validierung

▪   Beiträge der Arbeit und Fazit




Sichere templategestützte Verarbeitung von XML-Dokumenten              Folie 12
Entwurf einer generischen Slot Markup-Sprache


    XTL – XML Template Language
    Universell, syntax- und semantik-erhaltend
    Adressiert 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


Sichere templategestützte Verarbeitung von XML-Dokumenten             Folie 13
Agenda



▪   Motivierendes Beispiel und Begrifflichkeiten

                Sichere Template-Verarbeitung

                Entwurf einer generischen Slot Markup-Sprache

                Unterstützung der sicheren Template-Erstellung

                Flexible, effiziente und sichere Template-Ausprägung

                Validierung

▪   Beiträge der Arbeit und Fazit




Sichere templategestützte Verarbeitung von XML-Dokumenten              Folie 14
Grundidee der sicheren Erstellung




                                   Adressiert Fehlertypen  und 




Sichere templategestützte Verarbeitung von XML-Dokumenten           Folie 15
Aufteilung der Einschränkungen




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




Sichere templategestützte Verarbeitung von XML-Dokumenten                 Folie 16
Aufteilung der Einschränkungen


                                      Zielsprachengrammatik

Erforderliche oder optionale Attribute




     Templatesprachengrammatik                          Einschränkung der Ausprägungsdaten

•   Umwandlung in optionale Attribute                   • Typüberprüfung entsprechend Typ des
•   Erlauben von xtl:attribute im                         Attributes
    Inhaltsmodell des Elternknotens
•   Einschränkung der erzeugbaren Attribute
    (Namen)




    Sichere templategestützte Verarbeitung von XML-Dokumenten                           Folie 17
Aufteilung der Einschränkungen


                                      Zielsprachengrammatik

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




     Templatesprachengrammatik                          Einschränkung der Ausprägungsdaten

•   Umwandeln in Mixed Content                          • Typüberprüfung entsprechend
•   Erlauben von xtl:text im                              Inhaltstyp
    Inhaltsmodell
•   Einschränkung des Textinhalts
    entsprechend Inhaltstyp




    Sichere templategestützte Verarbeitung von XML-Dokumenten                           Folie 18
Aufteilung der Einschränkungen


                                      Zielsprachengrammatik

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




     Templatesprachengrammatik                          Einschränkung der Ausprägungsdaten

•   Ersetzen durch Alternative zwischen                 • Überprüfung der Anzahl der
    Ursprungselement und xtl:if oder                      Wiederholungen
    xtl:for-each
•   Einschränkung des Inhalts von xtl:if
    bzw. xtl:for-each auf
    Ursprungselement




    Sichere templategestützte Verarbeitung von XML-Dokumenten                          Folie 19
Agenda



▪   Motivierendes Beispiel und Begrifflichkeiten

                Sichere Template-Verarbeitung

                Entwurf einer generischen Slot Markup-Sprache

                Unterstützung der sicheren Template-Erstellung

                Flexible, effiziente und sichere Template-Ausprägung

                Validierung

▪   Beiträge der Arbeit und Fazit




Sichere templategestützte Verarbeitung von XML-Dokumenten        Folie 20
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




Sichere templategestützte Verarbeitung von XML-Dokumenten                 Folie 21
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 Datenbezugsrichtung
        push statt pull-Strategie




Sichere templategestützte Verarbeitung von XML-Dokumenten               Folie 22
Agenda



▪   Motivierendes Beispiel und Begrifflichkeiten

                Sichere Template-Verarbeitung

                Entwurf einer generischen Slot Markup-Sprache

                Unterstützung der sicheren Template-Erstellung

                Flexible, effiziente und sichere Template-Ausprägung

                Validierung

▪   Beiträge der Arbeit und Fazit




Sichere templategestützte Verarbeitung von XML-Dokumenten              Folie 23
Validierungsmittel


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

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

Anwendung der Implementierung
  Einsatz in den Projekten SNOW, FeasiPLe und EMODE

Beweis der Erhaltung der Einschränkungen der Zielsprache
   Induktionsbeweis ausgehend von Algorithmus zur Aufteilung der
   Einschränkungen

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

Sichere templategestützte Verarbeitung von XML-Dokumenten                 Folie 24
Validierungsmittel → Ziele




Beispiel:
     Performance-Messungen → Breite Anwendbarkeit:
         Ist der Einsatz des Ansatzes praktisch vertretbar?




Sichere templategestützte Verarbeitung von XML-Dokumenten     Folie 25
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




Sichere templategestützte Verarbeitung von XML-Dokumenten                 Folie 26
Beweis der Erhaltung der Einschränkungen


Voraussetzung
   Template, welches der Template-Grammatik genügt
   Ausprägungsdaten, welche den entsprechenden Einschränkungen genügen
Behauptung
   Ausprägungsergebnis genügt der Zielsprachengrammatik




Sichere templategestützte Verarbeitung von XML-Dokumenten            Folie 27
Performance-Messungen


Laufzeit der Templatevalidierung
Basis: 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)


Sichere templategestützte Verarbeitung von XML-Dokumenten                                               Folie 28
Agenda



▪   Motivierendes Beispiel und Begrifflichkeiten

                Sichere Template-Verarbeitung

                Entwurf einer generischen Slot Markup-Sprache

                Unterstützung der sicheren Template-Erstellung

                Flexible, effiziente und sichere Template-Ausprägung

                Validierung

▪   Beiträge der Arbeit und Fazit




Sichere templategestützte Verarbeitung von XML-Dokumenten              Folie 29
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




Sichere templategestützte Verarbeitung von XML-Dokumenten                Folie 30
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




Sichere templategestützte Verarbeitung von XML-Dokumenten                   Folie 31
Vielen Dank für Ihre
             Aufmerksamkeit!



Sichere templategestützte Verarbeitung von XML-Dokumenten   Folie 32
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


Sichere templategestützte Verarbeitung von XML-Dokumenten                Folie 33
Verwandte Arbeiten (Vergleich)



                Quelle 1                        +                     Quelle 2
JSP




                     XML                        Java                     any      XML
                                               Ziel
XUpdate




                     XML                                                 XML
                                             XUpdate                              XML
                    (core)                                             (advice)
XSL-T




                XSL-T + XML                    XPath                    XML’      XML
JAXB




                     Java                       Java                     any      XML


          Sichere templategestützte Verarbeitung von XML-Dokumenten                     Folie 34
Definition Template-Begriff




Sichere templategestützte Verarbeitung von XML-Dokumenten   Folie 35
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



Sichere templategestützte Verarbeitung von XML-Dokumenten   Folie 36
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




Sichere templategestützte Verarbeitung von XML-Dokumenten   Folie 37
XTL - Beispiel




Sichere templategestützte Verarbeitung von XML-Dokumenten   Folie 38
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




Sichere templategestützte Verarbeitung von XML-Dokumenten                Folie 39
SNOW-Architektur




Sichere templategestützte Verarbeitung von XML-Dokumenten   Folie 40
Zeitbedarf Validierung




Sichere templategestützte Verarbeitung von XML-Dokumenten   Folie 41
Zeitbedarf Ausprägung




Sichere templategestützte Verarbeitung von XML-Dokumenten   Folie 42
Vergleich Zeitbedarf Ausprägung




Sichere templategestützte Verarbeitung von XML-Dokumenten   Folie 43
Speicherbedarf (1)




Sichere templategestützte Verarbeitung von XML-Dokumenten   Folie 44
Speicherbedarf (2)




Sichere templategestützte Verarbeitung von XML-Dokumenten   Folie 45
Fallunterscheidung Sichere Erstellung




Sichere templategestützte Verarbeitung von XML-Dokumenten   Folie 46
Klassifikation von Schemasprachen


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




Sichere templategestützte Verarbeitung von XML-Dokumenten   Folie 47
Vertikale und horizontale XML-Pipeline




Sichere templategestützte Verarbeitung von XML-Dokumenten   Folie 48
Pull parser vs. Push parser




Sichere templategestützte Verarbeitung von XML-Dokumenten   Folie 49
Push strategy vs. Pull strategy




Sichere templategestützte Verarbeitung von XML-Dokumenten   Folie 50
ReadWindow Operationen




Sichere templategestützte Verarbeitung von XML-Dokumenten   Folie 51
Auswirkungen unpassender Ausdrucksstärke




Sichere templategestützte Verarbeitung von XML-Dokumenten   Folie 52
Sichere Erstellung: Prozessänderung




Sichere templategestützte Verarbeitung von XML-Dokumenten   Folie 53
Grundlage der operationellen Semantik




Sichere templategestützte Verarbeitung von XML-Dokumenten   Folie 54
Prinzip der translationalen Semantik




Sichere templategestützte Verarbeitung von XML-Dokumenten   Folie 55
Round-trip Test




Sichere templategestützte Verarbeitung von XML-Dokumenten   Folie 56
OCL Constraint für erforderliche Attribute




Sichere templategestützte Verarbeitung von XML-Dokumenten     Folie 57
OCL Constraint für Textinhalte




Sichere templategestützte Verarbeitung von XML-Dokumenten   Folie 58
Unique Particle Attribution


XML Schema Part 1: Structures
   A 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.




Sichere templategestützte Verarbeitung von XML-Dokumenten                    Folie 59

Weitere ähnliche Inhalte

Andere mochten auch

5 Tipps für Journalisten zur Recherche mit Twitter
5 Tipps für Journalisten zur Recherche mit Twitter5 Tipps für Journalisten zur Recherche mit Twitter
5 Tipps für Journalisten zur Recherche mit Twitter
Thomas Matterne
 
Projekte & Objekte 02 2010
Projekte & Objekte 02 2010Projekte & Objekte 02 2010
Projekte & Objekte 02 2010
projekteobjekte
 
Groups 2010.04: Wikileaks Debatte (Digital Sustainability)
Groups 2010.04: Wikileaks Debatte (Digital Sustainability)Groups 2010.04: Wikileaks Debatte (Digital Sustainability)
Groups 2010.04: Wikileaks Debatte (Digital Sustainability)
Marcus Dapp
 
Oracle Secure Patching Concept
Oracle Secure Patching ConceptOracle Secure Patching Concept
Oracle Secure Patching Concept
Carsten Muetzlitz
 
Groups 2010.09: Free/Open Spectrum (Digital Sustainability)
Groups 2010.09: Free/Open Spectrum (Digital Sustainability)Groups 2010.09: Free/Open Spectrum (Digital Sustainability)
Groups 2010.09: Free/Open Spectrum (Digital Sustainability)
Marcus Dapp
 
End-to-End Hochverfügbarkeit by Michal Soszynski
End-to-End Hochverfügbarkeit by Michal SoszynskiEnd-to-End Hochverfügbarkeit by Michal Soszynski
End-to-End Hochverfügbarkeit by Michal Soszynski
Carsten Muetzlitz
 
Groups 2010.15 Mobile Plattformen (Digital Sustainability)
Groups 2010.15 Mobile Plattformen (Digital  Sustainability)Groups 2010.15 Mobile Plattformen (Digital  Sustainability)
Groups 2010.15 Mobile Plattformen (Digital Sustainability)
Marcus Dapp
 
Soziale Netzwerke und QR-Codes
Soziale Netzwerke und QR-CodesSoziale Netzwerke und QR-Codes
Soziale Netzwerke und QR-Codes
VCAT Consulting GmbH
 
Social Media für KMUs - Konkreter Nutzen oder Verschwendung von Ressourcen
Social Media für KMUs - Konkreter Nutzen oder Verschwendung von RessourcenSocial Media für KMUs - Konkreter Nutzen oder Verschwendung von Ressourcen
Social Media für KMUs - Konkreter Nutzen oder Verschwendung von Ressourcen
VCAT Consulting GmbH
 
Margelhs1
Margelhs1Margelhs1
Margelhs1kabbada
 
Historia de la iglesia
Historia de la iglesiaHistoria de la iglesia
Historia de la iglesia
Ramiro Bautista A.
 
Leipzig sportrechtstag 11_11_12
Leipzig sportrechtstag 11_11_12Leipzig sportrechtstag 11_11_12
Transparenz Studie Klenk & Hoursch: Automobil
Transparenz Studie Klenk & Hoursch: Automobil Transparenz Studie Klenk & Hoursch: Automobil
Transparenz Studie Klenk & Hoursch: Automobil
Dr. Volker Klenk
 
Drogerien im Social Web - Hagen Sexauer
Drogerien im Social Web - Hagen SexauerDrogerien im Social Web - Hagen Sexauer
Drogerien im Social Web - Hagen SexauerHagen Sexauer
 
Kurzvorstellung VCAT Consulting GmbH
Kurzvorstellung VCAT Consulting GmbHKurzvorstellung VCAT Consulting GmbH
Kurzvorstellung VCAT Consulting GmbH
VCAT Consulting GmbH
 
Facebook Startseite
Facebook StartseiteFacebook Startseite
Facebook Startseite
Malte Landwehr
 
Innovatives Web- und Instore-Marketing - Web-Applikationen für den Tourismus
Innovatives Web- und Instore-Marketing - Web-Applikationen für den TourismusInnovatives Web- und Instore-Marketing - Web-Applikationen für den Tourismus
Innovatives Web- und Instore-Marketing - Web-Applikationen für den Tourismus
VCAT Consulting GmbH
 
Ostern
OsternOstern
OsternIsaJDB
 
Unkorrekte Politikgedanken
Unkorrekte PolitikgedankenUnkorrekte Politikgedanken
Unkorrekte Politikgedanken
Thomas Brasch
 

Andere mochten auch (20)

5 Tipps für Journalisten zur Recherche mit Twitter
5 Tipps für Journalisten zur Recherche mit Twitter5 Tipps für Journalisten zur Recherche mit Twitter
5 Tipps für Journalisten zur Recherche mit Twitter
 
Projekte & Objekte 02 2010
Projekte & Objekte 02 2010Projekte & Objekte 02 2010
Projekte & Objekte 02 2010
 
Groups 2010.04: Wikileaks Debatte (Digital Sustainability)
Groups 2010.04: Wikileaks Debatte (Digital Sustainability)Groups 2010.04: Wikileaks Debatte (Digital Sustainability)
Groups 2010.04: Wikileaks Debatte (Digital Sustainability)
 
Oracle Secure Patching Concept
Oracle Secure Patching ConceptOracle Secure Patching Concept
Oracle Secure Patching Concept
 
Groups 2010.09: Free/Open Spectrum (Digital Sustainability)
Groups 2010.09: Free/Open Spectrum (Digital Sustainability)Groups 2010.09: Free/Open Spectrum (Digital Sustainability)
Groups 2010.09: Free/Open Spectrum (Digital Sustainability)
 
End-to-End Hochverfügbarkeit by Michal Soszynski
End-to-End Hochverfügbarkeit by Michal SoszynskiEnd-to-End Hochverfügbarkeit by Michal Soszynski
End-to-End Hochverfügbarkeit by Michal Soszynski
 
Groups 2010.15 Mobile Plattformen (Digital Sustainability)
Groups 2010.15 Mobile Plattformen (Digital  Sustainability)Groups 2010.15 Mobile Plattformen (Digital  Sustainability)
Groups 2010.15 Mobile Plattformen (Digital Sustainability)
 
Soziale Netzwerke und QR-Codes
Soziale Netzwerke und QR-CodesSoziale Netzwerke und QR-Codes
Soziale Netzwerke und QR-Codes
 
Social Media für KMUs - Konkreter Nutzen oder Verschwendung von Ressourcen
Social Media für KMUs - Konkreter Nutzen oder Verschwendung von RessourcenSocial Media für KMUs - Konkreter Nutzen oder Verschwendung von Ressourcen
Social Media für KMUs - Konkreter Nutzen oder Verschwendung von Ressourcen
 
Margelhs1
Margelhs1Margelhs1
Margelhs1
 
Historia de la iglesia
Historia de la iglesiaHistoria de la iglesia
Historia de la iglesia
 
Leipzig sportrechtstag 11_11_12
Leipzig sportrechtstag 11_11_12Leipzig sportrechtstag 11_11_12
Leipzig sportrechtstag 11_11_12
 
Transparenz Studie Klenk & Hoursch: Automobil
Transparenz Studie Klenk & Hoursch: Automobil Transparenz Studie Klenk & Hoursch: Automobil
Transparenz Studie Klenk & Hoursch: Automobil
 
Drogerien im Social Web - Hagen Sexauer
Drogerien im Social Web - Hagen SexauerDrogerien im Social Web - Hagen Sexauer
Drogerien im Social Web - Hagen Sexauer
 
Kurzvorstellung VCAT Consulting GmbH
Kurzvorstellung VCAT Consulting GmbHKurzvorstellung VCAT Consulting GmbH
Kurzvorstellung VCAT Consulting GmbH
 
Facebook Startseite
Facebook StartseiteFacebook Startseite
Facebook Startseite
 
Innovatives Web- und Instore-Marketing - Web-Applikationen für den Tourismus
Innovatives Web- und Instore-Marketing - Web-Applikationen für den TourismusInnovatives Web- und Instore-Marketing - Web-Applikationen für den Tourismus
Innovatives Web- und Instore-Marketing - Web-Applikationen für den Tourismus
 
Ostern
OsternOstern
Ostern
 
Unkorrekte Politikgedanken
Unkorrekte PolitikgedankenUnkorrekte Politikgedanken
Unkorrekte Politikgedanken
 
Story Maps und Bundesgeodienste: Mit „geo“ mehr Informationen vermitteln (sw...
Story Maps und Bundesgeodienste: Mit „geo“ mehr Informationen vermitteln (sw...Story Maps und Bundesgeodienste: Mit „geo“ mehr Informationen vermitteln (sw...
Story Maps und Bundesgeodienste: Mit „geo“ mehr Informationen vermitteln (sw...
 

Ähnlich wie Sichere templategestützte Verarbeitung von XML-Dokumenten

Sitzung 2
Sitzung 2Sitzung 2
Sitzung 2scuy
 
Semantic Web Technologies - SS 2010 - 02 - XML und URIs
Semantic Web Technologies - SS 2010 - 02 - XML und URIsSemantic Web Technologies - SS 2010 - 02 - XML und URIs
Semantic Web Technologies - SS 2010 - 02 - XML und URIs
Steffen Schloenvoigt
 
Anforderungsanalsyse - Prototyping mit JavaScript
Anforderungsanalsyse - Prototyping mit JavaScriptAnforderungsanalsyse - Prototyping mit JavaScript
Anforderungsanalsyse - Prototyping mit JavaScriptChristian Baranowski
 
2 - Sprachen Des Semantic Web - XML
2 - Sprachen Des Semantic Web - XML2 - Sprachen Des Semantic Web - XML
2 - Sprachen Des Semantic Web - XML
Steffen Schloenvoigt
 
XHTML & CSS Workshop
XHTML & CSS WorkshopXHTML & CSS Workshop
XHTML & CSS Workshop
holgerrueprich
 
Top 10 Internet Trends 2000
Top 10 Internet Trends 2000Top 10 Internet Trends 2000
Top 10 Internet Trends 2000
Jürg Stuker
 
FMK2019 Nutzung von Shell-Skripts in FileMaker by Erich Schmidt
FMK2019 Nutzung von Shell-Skripts in FileMaker by Erich SchmidtFMK2019 Nutzung von Shell-Skripts in FileMaker by Erich Schmidt
FMK2019 Nutzung von Shell-Skripts in FileMaker by Erich Schmidt
Verein FM Konferenz
 
Tutorial-XML-FastInfoset-einfuehrung
Tutorial-XML-FastInfoset-einfuehrungTutorial-XML-FastInfoset-einfuehrung
Tutorial-XML-FastInfoset-einfuehrungtutorialsruby
 
Tutorial-XML-FastInfoset-einfuehrung
Tutorial-XML-FastInfoset-einfuehrungTutorial-XML-FastInfoset-einfuehrung
Tutorial-XML-FastInfoset-einfuehrungtutorialsruby
 
InDesign und XML in der Praxis
InDesign und XML in der PraxisInDesign und XML in der Praxis
InDesign und XML in der Praxis
StefanGoebel
 
11. Kamingespräch | XML-Editoren | TERM CHECK
11. Kamingespräch | XML-Editoren | TERM CHECK11. Kamingespräch | XML-Editoren | TERM CHECK
11. Kamingespräch | XML-Editoren | TERM CHECK
Georg Eck
 
Nigh Session Scala
Nigh Session ScalaNigh Session Scala
Nigh Session Scala
adesso AG
 
Einführung XHTML CSS JS // MM 08-11
Einführung XHTML CSS JS // MM 08-11Einführung XHTML CSS JS // MM 08-11
Einführung XHTML CSS JS // MM 08-11
Noël Bossart
 
FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...
FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...
FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...
Verein FM Konferenz
 
Docbook: Textverarbeitung mit XML
Docbook: Textverarbeitung mit XMLDocbook: Textverarbeitung mit XML
Docbook: Textverarbeitung mit XML
Peter Eisentraut
 
FMK 2013 Konstrukte diverser Programmiersprachen in FileMaker nachgebaut, Tho...
FMK 2013 Konstrukte diverser Programmiersprachen in FileMaker nachgebaut, Tho...FMK 2013 Konstrukte diverser Programmiersprachen in FileMaker nachgebaut, Tho...
FMK 2013 Konstrukte diverser Programmiersprachen in FileMaker nachgebaut, Tho...Verein FM Konferenz
 
Zur texttechnologischen Modellierung linguistischer Korpora
Zur texttechnologischen Modellierung linguistischer KorporaZur texttechnologischen Modellierung linguistischer Korpora
Zur texttechnologischen Modellierung linguistischer Korpora
Georg Rehm
 
XML ohne technische Kenntnisse mit dem word-ähnlichen XML-Editor SIQMIN von A...
XML ohne technische Kenntnisse mit dem word-ähnlichen XML-Editor SIQMIN von A...XML ohne technische Kenntnisse mit dem word-ähnlichen XML-Editor SIQMIN von A...
XML ohne technische Kenntnisse mit dem word-ähnlichen XML-Editor SIQMIN von A...
acolada_gmbh
 

Ähnlich wie Sichere templategestützte Verarbeitung von XML-Dokumenten (20)

Sitzung 2
Sitzung 2Sitzung 2
Sitzung 2
 
IT-Zertifikat: Advanced Markup & Metadata - Handout XML
IT-Zertifikat: Advanced Markup & Metadata - Handout XMLIT-Zertifikat: Advanced Markup & Metadata - Handout XML
IT-Zertifikat: Advanced Markup & Metadata - Handout XML
 
SWT2011 - 02 - XML
SWT2011 - 02 - XMLSWT2011 - 02 - XML
SWT2011 - 02 - XML
 
Semantic Web Technologies - SS 2010 - 02 - XML und URIs
Semantic Web Technologies - SS 2010 - 02 - XML und URIsSemantic Web Technologies - SS 2010 - 02 - XML und URIs
Semantic Web Technologies - SS 2010 - 02 - XML und URIs
 
Anforderungsanalsyse - Prototyping mit JavaScript
Anforderungsanalsyse - Prototyping mit JavaScriptAnforderungsanalsyse - Prototyping mit JavaScript
Anforderungsanalsyse - Prototyping mit JavaScript
 
2 - Sprachen Des Semantic Web - XML
2 - Sprachen Des Semantic Web - XML2 - Sprachen Des Semantic Web - XML
2 - Sprachen Des Semantic Web - XML
 
XHTML & CSS Workshop
XHTML & CSS WorkshopXHTML & CSS Workshop
XHTML & CSS Workshop
 
Top 10 Internet Trends 2000
Top 10 Internet Trends 2000Top 10 Internet Trends 2000
Top 10 Internet Trends 2000
 
FMK2019 Nutzung von Shell-Skripts in FileMaker by Erich Schmidt
FMK2019 Nutzung von Shell-Skripts in FileMaker by Erich SchmidtFMK2019 Nutzung von Shell-Skripts in FileMaker by Erich Schmidt
FMK2019 Nutzung von Shell-Skripts in FileMaker by Erich Schmidt
 
Tutorial-XML-FastInfoset-einfuehrung
Tutorial-XML-FastInfoset-einfuehrungTutorial-XML-FastInfoset-einfuehrung
Tutorial-XML-FastInfoset-einfuehrung
 
Tutorial-XML-FastInfoset-einfuehrung
Tutorial-XML-FastInfoset-einfuehrungTutorial-XML-FastInfoset-einfuehrung
Tutorial-XML-FastInfoset-einfuehrung
 
InDesign und XML in der Praxis
InDesign und XML in der PraxisInDesign und XML in der Praxis
InDesign und XML in der Praxis
 
11. Kamingespräch | XML-Editoren | TERM CHECK
11. Kamingespräch | XML-Editoren | TERM CHECK11. Kamingespräch | XML-Editoren | TERM CHECK
11. Kamingespräch | XML-Editoren | TERM CHECK
 
Nigh Session Scala
Nigh Session ScalaNigh Session Scala
Nigh Session Scala
 
Einführung XHTML CSS JS // MM 08-11
Einführung XHTML CSS JS // MM 08-11Einführung XHTML CSS JS // MM 08-11
Einführung XHTML CSS JS // MM 08-11
 
FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...
FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...
FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...
 
Docbook: Textverarbeitung mit XML
Docbook: Textverarbeitung mit XMLDocbook: Textverarbeitung mit XML
Docbook: Textverarbeitung mit XML
 
FMK 2013 Konstrukte diverser Programmiersprachen in FileMaker nachgebaut, Tho...
FMK 2013 Konstrukte diverser Programmiersprachen in FileMaker nachgebaut, Tho...FMK 2013 Konstrukte diverser Programmiersprachen in FileMaker nachgebaut, Tho...
FMK 2013 Konstrukte diverser Programmiersprachen in FileMaker nachgebaut, Tho...
 
Zur texttechnologischen Modellierung linguistischer Korpora
Zur texttechnologischen Modellierung linguistischer KorporaZur texttechnologischen Modellierung linguistischer Korpora
Zur texttechnologischen Modellierung linguistischer Korpora
 
XML ohne technische Kenntnisse mit dem word-ähnlichen XML-Editor SIQMIN von A...
XML ohne technische Kenntnisse mit dem word-ähnlichen XML-Editor SIQMIN von A...XML ohne technische Kenntnisse mit dem word-ähnlichen XML-Editor SIQMIN von A...
XML ohne technische Kenntnisse mit dem word-ähnlichen XML-Editor SIQMIN von A...
 

Mehr von Falk Hartmann

Risikomanagement in der Softwareentwicklung
Risikomanagement in der SoftwareentwicklungRisikomanagement in der Softwareentwicklung
Risikomanagement in der Softwareentwicklung
Falk Hartmann
 
An Introduction to AngularJS
An Introduction to AngularJSAn Introduction to AngularJS
An Introduction to AngularJS
Falk Hartmann
 
Risiko Management in der Softwareentwicklung
Risiko Management in der SoftwareentwicklungRisiko Management in der Softwareentwicklung
Risiko Management in der Softwareentwicklung
Falk Hartmann
 
D3ML Session
D3ML SessionD3ML Session
D3ML Session
Falk Hartmann
 
An Architecture for an XML-Template Engine enabling Safe Authoring
An Architecture for an XML-Template Engine enabling Safe AuthoringAn Architecture for an XML-Template Engine enabling Safe Authoring
An Architecture for an XML-Template Engine enabling Safe Authoring
Falk Hartmann
 
A Distributed Staged Architecture for Multimodal Applications
A Distributed Staged Architecture for Multimodal ApplicationsA Distributed Staged Architecture for Multimodal Applications
A Distributed Staged Architecture for Multimodal Applications
Falk Hartmann
 
Drahtwanderung: Wir machen den NeXTen Schritt
Drahtwanderung: Wir machen den NeXTen SchrittDrahtwanderung: Wir machen den NeXTen Schritt
Drahtwanderung: Wir machen den NeXTen SchrittFalk Hartmann
 
Technologieraum übergreifende Programmierung
Technologieraum übergreifende ProgrammierungTechnologieraum übergreifende Programmierung
Technologieraum übergreifende Programmierung
Falk Hartmann
 
Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
Protocol Engineering: Beschreibung und Entwicklung von KommunikationsprotokollenProtocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
Protocol Engineering: Beschreibung und Entwicklung von KommunikationsprotokollenFalk Hartmann
 

Mehr von Falk Hartmann (9)

Risikomanagement in der Softwareentwicklung
Risikomanagement in der SoftwareentwicklungRisikomanagement in der Softwareentwicklung
Risikomanagement in der Softwareentwicklung
 
An Introduction to AngularJS
An Introduction to AngularJSAn Introduction to AngularJS
An Introduction to AngularJS
 
Risiko Management in der Softwareentwicklung
Risiko Management in der SoftwareentwicklungRisiko Management in der Softwareentwicklung
Risiko Management in der Softwareentwicklung
 
D3ML Session
D3ML SessionD3ML Session
D3ML Session
 
An Architecture for an XML-Template Engine enabling Safe Authoring
An Architecture for an XML-Template Engine enabling Safe AuthoringAn Architecture for an XML-Template Engine enabling Safe Authoring
An Architecture for an XML-Template Engine enabling Safe Authoring
 
A Distributed Staged Architecture for Multimodal Applications
A Distributed Staged Architecture for Multimodal ApplicationsA Distributed Staged Architecture for Multimodal Applications
A Distributed Staged Architecture for Multimodal Applications
 
Drahtwanderung: Wir machen den NeXTen Schritt
Drahtwanderung: Wir machen den NeXTen SchrittDrahtwanderung: Wir machen den NeXTen Schritt
Drahtwanderung: Wir machen den NeXTen Schritt
 
Technologieraum übergreifende Programmierung
Technologieraum übergreifende ProgrammierungTechnologieraum übergreifende Programmierung
Technologieraum übergreifende Programmierung
 
Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
Protocol Engineering: Beschreibung und Entwicklung von KommunikationsprotokollenProtocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
 

Sichere templategestützte Verarbeitung von XML-Dokumenten

  • 1. Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie Sichere templategestützte Verarbeitung von XML-Dokumenten Falk Hartmann Verteidigung der Dissertation Dresden, 1. Juli 2011
  • 2. Motivierendes Beispiel Fehler  Nicht-wohlgeformtes XML  Verletzung einfacher Typen  Strukturell falsches XHTML Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 2
  • 5. Agenda ▪ Motivierendes Beispiel und Begrifflichkeiten Sichere Template-Verarbeitung Entwurf einer generischen Slot Markup-Sprache Unterstützung der sicheren Template-Erstellung Flexible, effiziente und sichere Template-Ausprägung Validierung ▪ Beiträge der Arbeit und Fazit Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 5
  • 6. Agenda ▪ Motivierendes Beispiel und Begrifflichkeiten Sichere Template-Verarbeitung Entwurf einer generischen Slot Markup-Sprache Unterstützung der sicheren Template-Erstellung Flexible, effiziente und sichere Template-Ausprägung Validierung ▪ Beiträge der Arbeit und Fazit Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 6
  • 7. Ziele Sichere Erstellung Rückmeldung an den Autor über die Richtigkeit des Ausprägungsergebnisses in Bezug auf die Zielsprache Sichere template- gestützte Verarbeitung Sichere Ausprägung Klare und ausreichende Rückmeldung von bei der Ausprägung auftretenden Problemen Trennung der Belange Möglichkeit arbeitsteiliger Entwicklung Breite Anwendbarkeit Vermeidung von Einschränkungen in Bezug auf Ziel- und Anfragesprachen sowie Anwendungsgebiete Nutzung existierender Standards Wiederverwendung bestehender Sprachen, Werkzeuge und Prozesse Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 7
  • 8. Anforderungen Erhaltung der Einschränkungen der Zielsprache Übernehmen von Verboten der Zielsprache in die Templatesprache Abdeckung der Zielsprache Ermöglichen der Erzeugung aller Sätze der Zielsprache Ableitbarkeit Automatisches Ableiten der Grammatik der Templatesprache aus der Grammatik der Zielsprache Steueranweisungen Erlauben bedingter und wiederholter Ausprägung von Teilen der Templates Typsicherheit der Ausprägungsdaten Erzwingen oder Überprüfen der korrekten Typen der Ausprägungsdaten Unabhängigkeit von der Anfragesprache Vermeiden von Annahmen über die Anfragesprache Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 8
  • 9. Ziele → Anforderungen Beispiel: Trennung der Belange → Steueranweisungen: Fehlende Steueranweisungen resultieren i.d.R. in mangelnder Trennung der Belange Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 9
  • 11. 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 Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 11
  • 12. Agenda ▪ Motivierendes Beispiel und Begrifflichkeiten Sichere Template-Verarbeitung Entwurf einer generischen Slot Markup-Sprache Unterstützung der sicheren Template-Erstellung Flexible, effiziente und sichere Template-Ausprägung Validierung ▪ Beiträge der Arbeit und Fazit Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 12
  • 13. Entwurf einer generischen Slot Markup-Sprache XTL – XML Template Language Universell, syntax- und semantik-erhaltend Adressiert 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 Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 13
  • 14. Agenda ▪ Motivierendes Beispiel und Begrifflichkeiten Sichere Template-Verarbeitung Entwurf einer generischen Slot Markup-Sprache Unterstützung der sicheren Template-Erstellung Flexible, effiziente und sichere Template-Ausprägung Validierung ▪ Beiträge der Arbeit und Fazit Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 14
  • 15. Grundidee der sicheren Erstellung Adressiert Fehlertypen  und  Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 15
  • 16. Aufteilung der Einschränkungen XML Schema ist nicht ausdrucksstark genug zur Beschreibung der Templatesprache → CXSD! Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 16
  • 17. Aufteilung der Einschränkungen Zielsprachengrammatik Erforderliche oder optionale Attribute Templatesprachengrammatik Einschränkung der Ausprägungsdaten • Umwandlung in optionale Attribute • Typüberprüfung entsprechend Typ des • Erlauben von xtl:attribute im Attributes Inhaltsmodell des Elternknotens • Einschränkung der erzeugbaren Attribute (Namen) Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 17
  • 18. Aufteilung der Einschränkungen Zielsprachengrammatik Simple Content (durch “einfache” Inhaltstypen eingeschränkter Elementinhalt) Templatesprachengrammatik Einschränkung der Ausprägungsdaten • Umwandeln in Mixed Content • Typüberprüfung entsprechend • Erlauben von xtl:text im Inhaltstyp Inhaltsmodell • Einschränkung des Textinhalts entsprechend Inhaltstyp Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 18
  • 19. Aufteilung der Einschränkungen Zielsprachengrammatik Elemente mit Kardinalität {0,1} oder {n,m} Templatesprachengrammatik Einschränkung der Ausprägungsdaten • Ersetzen durch Alternative zwischen • Überprüfung der Anzahl der Ursprungselement und xtl:if oder Wiederholungen xtl:for-each • Einschränkung des Inhalts von xtl:if bzw. xtl:for-each auf Ursprungselement Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 19
  • 20. Agenda ▪ Motivierendes Beispiel und Begrifflichkeiten Sichere Template-Verarbeitung Entwurf einer generischen Slot Markup-Sprache Unterstützung der sicheren Template-Erstellung Flexible, effiziente und sichere Template-Ausprägung Validierung ▪ Beiträge der Arbeit und Fazit Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 20
  • 21. 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 Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 21
  • 22. 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 Datenbezugsrichtung push statt pull-Strategie Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 22
  • 23. Agenda ▪ Motivierendes Beispiel und Begrifflichkeiten Sichere Template-Verarbeitung Entwurf einer generischen Slot Markup-Sprache Unterstützung der sicheren Template-Erstellung Flexible, effiziente und sichere Template-Ausprägung Validierung ▪ Beiträge der Arbeit und Fazit Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 23
  • 24. Validierungsmittel Implementierung eines Prototyps Aufteilung der Einschränkungen, Template-Validierung und -Ausprägung, Template Schnittstellen-Generierung Testsuite entsprechend Implementierung Übereinstimmung Template-Ausprägung mit denotationeller und translationaler Semantik Anwendung der Implementierung Einsatz in den Projekten SNOW, FeasiPLe und EMODE Beweis der Erhaltung der Einschränkungen der Zielsprache Induktionsbeweis ausgehend von Algorithmus zur Aufteilung der Einschränkungen Performance-Messungen Laufzeit der Template-Validierung, Laufzeit und Speicherbedarf der Template- Ausprägung, Vergleichsmessung mit JSP und XSL-T Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 24
  • 25. Validierungsmittel → Ziele Beispiel: Performance-Messungen → Breite Anwendbarkeit: Ist der Einsatz des Ansatzes praktisch vertretbar? Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 25
  • 26. 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 Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 26
  • 27. Beweis der Erhaltung der Einschränkungen Voraussetzung Template, welches der Template-Grammatik genügt Ausprägungsdaten, welche den entsprechenden Einschränkungen genügen Behauptung Ausprägungsergebnis genügt der Zielsprachengrammatik Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 27
  • 28. Performance-Messungen Laufzeit der Templatevalidierung Basis: 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) Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 28
  • 29. Agenda ▪ Motivierendes Beispiel und Begrifflichkeiten Sichere Template-Verarbeitung Entwurf einer generischen Slot Markup-Sprache Unterstützung der sicheren Template-Erstellung Flexible, effiziente und sichere Template-Ausprägung Validierung ▪ Beiträge der Arbeit und Fazit Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 29
  • 30. 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 Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 30
  • 31. 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 Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 31
  • 32. Vielen Dank für Ihre Aufmerksamkeit! Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 32
  • 33. 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 Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 33
  • 34. Verwandte Arbeiten (Vergleich) Quelle 1 + Quelle 2 JSP XML Java any XML Ziel XUpdate XML XML XUpdate XML (core) (advice) XSL-T XSL-T + XML XPath XML’ XML JAXB Java Java any XML Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 34
  • 35. Definition Template-Begriff Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 35
  • 36. 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 Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 36
  • 37. 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 Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 37
  • 38. XTL - Beispiel Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 38
  • 39. 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 Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 39
  • 41. Zeitbedarf Validierung Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 41
  • 42. Zeitbedarf Ausprägung Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 42
  • 43. Vergleich Zeitbedarf Ausprägung Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 43
  • 44. Speicherbedarf (1) Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 44
  • 45. Speicherbedarf (2) Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 45
  • 46. Fallunterscheidung Sichere Erstellung Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 46
  • 47. Klassifikation von Schemasprachen 1. Regular Tree Grammars (Relax NG) 2. Restrained-Competition Tree Grammars 3. Single-Type Tree Grammars (XML Schema) 4. Local Tree Grammars (DTD) Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 47
  • 48. Vertikale und horizontale XML-Pipeline Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 48
  • 49. Pull parser vs. Push parser Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 49
  • 50. Push strategy vs. Pull strategy Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 50
  • 51. ReadWindow Operationen Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 51
  • 52. Auswirkungen unpassender Ausdrucksstärke Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 52
  • 53. Sichere Erstellung: Prozessänderung Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 53
  • 54. Grundlage der operationellen Semantik Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 54
  • 55. Prinzip der translationalen Semantik Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 55
  • 56. Round-trip Test Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 56
  • 57. OCL Constraint für erforderliche Attribute Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 57
  • 58. OCL Constraint für Textinhalte Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 58
  • 59. Unique Particle Attribution XML Schema Part 1: Structures A 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. Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 59

Hinweis der Redaktion

  1. Adaptation may be on template technique and/or template level (template level: use JSP means to simplify generation of non-HTML target language)Validation is not always presentDifferent roles act in the life cycle phases
  2. Genitiv? eines Prototyps vs. eines Prototypen?