Your SlideShare is downloading. ×
0
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Sichere templategestützte Verarbeitung von XML-Dokumenten
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Sichere templategestützte Verarbeitung von XML-Dokumenten

318

Published on

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

  • Be the first to like this

No Downloads
Views
Total Views
318
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
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?
  • Transcript

    • 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. Motivierendes BeispielFehler Nicht-wohlgeformtes XML Verletzung einfacher Typen Strukturell falsches XHTMLSichere templategestützte Verarbeitung von XML-Dokumenten Folie 2
    • 3. BegrifflichkeitenSichere templategestützte Verarbeitung von XML-Dokumenten Folie 3
    • 4. BegrifflichkeitenSichere templategestützte Verarbeitung von XML-Dokumenten Folie 4
    • 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. 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. 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. 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. 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. LösungsarchitekturSichere templategestützte Verarbeitung von XML-Dokumenten Folie 10
    • 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. 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. 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. 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. 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 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. 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. 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. 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. 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. 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. 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. 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. Validierungsmittel → ZieleBeispiel: 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-TestSichere templategestützte Verarbeitung von XML-Dokumenten Folie 26
    • 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. 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. 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. 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. 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. Vielen Dank für Ihre Aufmerksamkeit!Sichere templategestützte Verarbeitung von XML-Dokumenten Folie 32
    • 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. 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. Definition Template-BegriffSichere 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 - 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. 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. XTL - BeispielSichere templategestützte Verarbeitung von XML-Dokumenten Folie 38
    • 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. SNOW-ArchitekturSichere templategestützte Verarbeitung von XML-Dokumenten Folie 40
    • 41. Zeitbedarf ValidierungSichere templategestützte Verarbeitung von XML-Dokumenten Folie 41
    • 42. Zeitbedarf AusprägungSichere templategestützte Verarbeitung von XML-Dokumenten Folie 42
    • 43. Vergleich Zeitbedarf AusprägungSichere 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 ErstellungSichere templategestützte Verarbeitung von XML-Dokumenten Folie 46
    • 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. Vertikale und horizontale XML-PipelineSichere templategestützte Verarbeitung von XML-Dokumenten Folie 48
    • 49. Pull parser vs. Push parserSichere templategestützte Verarbeitung von XML-Dokumenten Folie 49
    • 50. Push strategy vs. Pull strategySichere templategestützte Verarbeitung von XML-Dokumenten Folie 50
    • 51. ReadWindow OperationenSichere templategestützte Verarbeitung von XML-Dokumenten Folie 51
    • 52. Auswirkungen unpassender AusdrucksstärkeSichere templategestützte Verarbeitung von XML-Dokumenten Folie 52
    • 53. Sichere Erstellung: ProzessänderungSichere templategestützte Verarbeitung von XML-Dokumenten Folie 53
    • 54. Grundlage der operationellen SemantikSichere templategestützte Verarbeitung von XML-Dokumenten Folie 54
    • 55. Prinzip der translationalen SemantikSichere templategestützte Verarbeitung von XML-Dokumenten Folie 55
    • 56. Round-trip TestSichere templategestützte Verarbeitung von XML-Dokumenten Folie 56
    • 57. OCL Constraint für erforderliche AttributeSichere templategestützte Verarbeitung von XML-Dokumenten Folie 57
    • 58. OCL Constraint für TextinhalteSichere templategestützte Verarbeitung von XML-Dokumenten Folie 58
    • 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

    ×