Sichere templategestützte Verarbeitung von XML-Dokumenten

634 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
634
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • 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
  • Genitiv? eines Prototyps vs. eines Prototypen?
  • Sichere templategestützte Verarbeitung von XML-Dokumenten

    1. 1. Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie Sichere templategestützteVerarbeitung von XML-Dokumenten Falk Hartmann Verteidigung der Dissertation Dresden, 1. Juli 2011
    2. 2. Motivierendes BeispielFehler Nicht-wohlgeformtes XML Verletzung einfacher Typen Strukturell falsches XHTMLSichere templategestützte Verarbeitung von XML-Dokumenten Folie 2
    3. 3. BegrifflichkeitenSichere templategestützte Verarbeitung von XML-Dokumenten Folie 3
    4. 4. BegrifflichkeitenSichere templategestützte Verarbeitung von XML-Dokumenten Folie 4
    5. 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 FazitSichere templategestützte Verarbeitung von XML-Dokumenten Folie 5
    6. 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 FazitSichere templategestützte Verarbeitung von XML-Dokumenten Folie 6
    7. 7. ZieleSichere Erstellung Rückmeldung an den Autor über die Richtigkeit des Ausprägungsergebnisses in Bezug auf die Zielsprache Sichere template- gestützte VerarbeitungSichere Ausprägung Klare und ausreichende Rückmeldung von bei der Ausprägung auftretenden ProblemenTrennung der Belange Möglichkeit arbeitsteiliger EntwicklungBreite Anwendbarkeit Vermeidung von Einschränkungen in Bezug auf Ziel- und Anfragesprachen sowie AnwendungsgebieteNutzung existierender Standards Wiederverwendung bestehender Sprachen, Werkzeuge und ProzesseSichere templategestützte Verarbeitung von XML-Dokumenten Folie 7
    8. 8. AnforderungenErhaltung der Einschränkungen der Zielsprache Übernehmen von Verboten der Zielsprache in die TemplatespracheAbdeckung der Zielsprache Ermöglichen der Erzeugung aller Sätze der ZielspracheAbleitbarkeit Automatisches Ableiten der Grammatik der Templatesprache aus der Grammatik der ZielspracheSteueranweisungen Erlauben bedingter und wiederholter Ausprägung von Teilen der TemplatesTypsicherheit der Ausprägungsdaten Erzwingen oder Überprüfen der korrekten Typen der AusprägungsdatenUnabhängigkeit von der Anfragesprache Vermeiden von Annahmen über die AnfragespracheSichere templategestützte Verarbeitung von XML-Dokumenten Folie 8
    9. 9. Ziele → AnforderungenBeispiel: Trennung der Belange → Steueranweisungen: Fehlende Steueranweisungen resultieren i.d.R. in mangelnder Trennung der BelangeSichere templategestützte Verarbeitung von XML-Dokumenten Folie 9
    10. 10. LösungsarchitekturSichere templategestützte Verarbeitung von XML-Dokumenten Folie 10
    11. 11. Anforderungen → LösungsarchitekturBeispiel: Unabhängigkeit von der Anfragesprache → Bestimmung der Ausprägungsdaten: Spezielle Lösungsarchitekturkomponente zur Bestimmung der Ausprägungsdaten erleichtert Anpassung an AnfragesprachenSichere templategestützte Verarbeitung von XML-Dokumenten Folie 11
    12. 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 FazitSichere templategestützte Verarbeitung von XML-Dokumenten Folie 12
    13. 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 BeschreibungSichere templategestützte Verarbeitung von XML-Dokumenten Folie 13
    14. 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 FazitSichere templategestützte Verarbeitung von XML-Dokumenten Folie 14
    15. 15. Grundidee der sicheren Erstellung Adressiert Fehlertypen  und Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 15
    16. 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. 17. Aufteilung der Einschränkungen ZielsprachengrammatikErforderliche 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. 18. Aufteilung der Einschränkungen ZielsprachengrammatikSimple 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. 19. Aufteilung der Einschränkungen ZielsprachengrammatikElemente 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. 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 FazitSichere templategestützte Verarbeitung von XML-Dokumenten Folie 20
    21. 21. Eigenschaften der Template-AusprägungFlexibel • Plug in-Mechanismus für Anfragesprachen • Implementierungen für XPath, SPARQL, OCLEffizient • 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ägungsergebnissesSicher • Ausprägungsdaten werden auf Typ und Multiplizität geprüft • Alternativer Ansatz: Generierung einer Template-SchnittstelleSichere templategestützte Verarbeitung von XML-Dokumenten Folie 21
    22. 22. Generierung einer Template-SchnittstelleGrundidee • 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 TemplatesKonsequenzen • 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-StrategieSichere templategestützte Verarbeitung von XML-Dokumenten Folie 22
    23. 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 FazitSichere templategestützte Verarbeitung von XML-Dokumenten Folie 23
    24. 24. ValidierungsmittelImplementierung eines Prototyps Aufteilung der Einschränkungen, Template-Validierung und -Ausprägung, Template Schnittstellen-GenerierungTestsuite entsprechend Implementierung Übereinstimmung Template-Ausprägung mit denotationeller und translationaler SemantikAnwendung der Implementierung Einsatz in den Projekten SNOW, FeasiPLe und EMODEBeweis der Erhaltung der Einschränkungen der Zielsprache Induktionsbeweis ausgehend von Algorithmus zur Aufteilung der EinschränkungenPerformance-Messungen Laufzeit der Template-Validierung, Laufzeit und Speicherbedarf der Template- Ausprägung, Vergleichsmessung mit JSP und XSL-TSichere templategestützte Verarbeitung von XML-Dokumenten Folie 24
    25. 25. Validierungsmittel → ZieleBeispiel: Performance-Messungen → Breite Anwendbarkeit: Ist der Einsatz des Ansatzes praktisch vertretbar?Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 25
    26. 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-TestSichere templategestützte Verarbeitung von XML-Dokumenten Folie 26
    27. 27. Beweis der Erhaltung der EinschränkungenVoraussetzung Template, welches der Template-Grammatik genügt Ausprägungsdaten, welche den entsprechenden Einschränkungen genügenBehauptung Ausprägungsergebnis genügt der ZielsprachengrammatikSichere templategestützte Verarbeitung von XML-Dokumenten Folie 27
    28. 28. Performance-MessungenLaufzeit 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)Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 28
    29. 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 FazitSichere templategestützte Verarbeitung von XML-Dokumenten Folie 29
    30. 30. BeiträgeWeitere Beiträge • Definition des Begriffes Template • Klassifikation existierender Template-AnsätzeEntwurf einer universellen Slot Markup-Sprache • Syntax- und semantik-erhaltend • Unabhängig von konkreter XML-Zielsprache • Unabhängig von Anfragesprache • Denotationell definierte SemantikSichere 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-SchnittstelleSichere templategestützte Verarbeitung von XML-Dokumenten Folie 30
    31. 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änkungenSichere templategestützte Verarbeitung von XML-Dokumenten Folie 31
    32. 32. Vielen Dank für Ihre Aufmerksamkeit!Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 32
    33. 33. Verwandte ArbeitenTemplates: Mittel zur Erzeugung konkreter Syntax - Modell-zu-Text Transformationen - Anwendungsgebiete: Webapplikationen, Codegenerierung - Einfache Nutzung existierender Fragmente der konkreten SyntaxVerwandte 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 BelangeSichere templategestützte Verarbeitung von XML-Dokumenten Folie 33
    34. 34. Verwandte Arbeiten (Vergleich) Quelle 1 + Quelle 2JSP XML Java any XML ZielXUpdate XML XML XUpdate XML (core) (advice)XSL-T XSL-T + XML XPath XML’ XMLJAXB Java Java any XML Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 34
    35. 35. Definition Template-BegriffSichere templategestützte Verarbeitung von XML-Dokumenten Folie 35
    36. 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 - Generic3. Entanglement Index [Parr, 2006] - No modification of the model - No computations - No comparisons - No type assumptions - Separation of concerns4. Instantiation Data Access Strategy - Push - PullSichere templategestützte Verarbeitung von XML-Dokumenten Folie 36
    37. 37. Klassifikation Template-Ansätze (2)5. Query Language - Opaque vs. significant - Declarative vs. imperative - Domain specific vs. general purpose6. Instantiatian Technique - Compiler - Interpreter7. Reuse - Macros - Group inheritance8. Further Features - Group interfaces - Newline handlingSichere templategestützte Verarbeitung von XML-Dokumenten Folie 37
    38. 38. XTL - BeispielSichere templategestützte Verarbeitung von XML-Dokumenten Folie 38
    39. 39. Anwendung der ImplementierungSNOW - 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 XTLEMODE - Komplexe Transformationen auf Basis der XTLEngine - Nutzung der XTL zur Erzeugung von MXML (Flex) ApplikationenFeasiPLe - Codegenerierung aus Ontologien mittels SPARQL-Abfragen - Emulation der transitiven Hülle innerhalb eines PHP → Erweiterung von SPARQL um die Fähigkeit zur HüllenbildungSichere templategestützte Verarbeitung von XML-Dokumenten Folie 39
    40. 40. SNOW-ArchitekturSichere templategestützte Verarbeitung von XML-Dokumenten Folie 40
    41. 41. Zeitbedarf ValidierungSichere templategestützte Verarbeitung von XML-Dokumenten Folie 41
    42. 42. Zeitbedarf AusprägungSichere templategestützte Verarbeitung von XML-Dokumenten Folie 42
    43. 43. Vergleich Zeitbedarf AusprägungSichere templategestützte Verarbeitung von XML-Dokumenten Folie 43
    44. 44. Speicherbedarf (1)Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 44
    45. 45. Speicherbedarf (2)Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 45
    46. 46. Fallunterscheidung Sichere ErstellungSichere templategestützte Verarbeitung von XML-Dokumenten Folie 46
    47. 47. Klassifikation von Schemasprachen1. Regular Tree Grammars (Relax NG)2. Restrained-Competition Tree Grammars3. Single-Type Tree Grammars (XML Schema)4. Local Tree Grammars (DTD)Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 47
    48. 48. Vertikale und horizontale XML-PipelineSichere templategestützte Verarbeitung von XML-Dokumenten Folie 48
    49. 49. Pull parser vs. Push parserSichere templategestützte Verarbeitung von XML-Dokumenten Folie 49
    50. 50. Push strategy vs. Pull strategySichere templategestützte Verarbeitung von XML-Dokumenten Folie 50
    51. 51. ReadWindow OperationenSichere templategestützte Verarbeitung von XML-Dokumenten Folie 51
    52. 52. Auswirkungen unpassender AusdrucksstärkeSichere templategestützte Verarbeitung von XML-Dokumenten Folie 52
    53. 53. Sichere Erstellung: ProzessänderungSichere templategestützte Verarbeitung von XML-Dokumenten Folie 53
    54. 54. Grundlage der operationellen SemantikSichere templategestützte Verarbeitung von XML-Dokumenten Folie 54
    55. 55. Prinzip der translationalen SemantikSichere templategestützte Verarbeitung von XML-Dokumenten Folie 55
    56. 56. Round-trip TestSichere templategestützte Verarbeitung von XML-Dokumenten Folie 56
    57. 57. OCL Constraint für erforderliche AttributeSichere templategestützte Verarbeitung von XML-Dokumenten Folie 57
    58. 58. OCL Constraint für TextinhalteSichere templategestützte Verarbeitung von XML-Dokumenten Folie 58
    59. 59. Unique Particle AttributionXML 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

    ×