ASN.1 <-> XML TRANSLATION



Ähnliche Dokumente
Datenaustauschformate. Datenaustauschformate - FLV

XML Grundlagen. Andreas Rottmann,Sebastian Riedl. 27. August Quit Full Screen Previous Page Next Page GoTo Page Go Forward Go Back

XML und SOAP Einführung und Grundlagen

Übungsaufgaben zu XML:

DTD: Syntax-Zusammenfassung

Java: Kapitel 9. Java und XML. Programmentwicklung WS 2008/2009. Holger Röder

XSL Templates. Mit Templates arbeiten. XSL Templates

Präsentation zum Thema XML Datenaustausch und Integration

... MathML XHTML RDF

IT-Zertifikat: Daten- und Metadatenstandards

2. XML 2.1 XML 1.0 und XML Schema. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit

Multimedia Technologie II

2. Einführung in Datenbanken und XML

Java und XML 2. Java und XML

Daten- und Metadatenstandards Wintersemester 2011 / November 2011 XML II: DTD

XML-Praxis. XML-Anwendungen. Jörn Clausen

XML Grundlagen Teil I

Predictive Modeling Markup Language. Thomas Morandell

1 Software Engineering 1

HTML5. Wie funktioniert HTML5? Tags: Attribute:

Einführung XOP Fast Infoset. Seminar: XML und intelligente Systeme. 31. Oktober XML und Binärdaten. Kai Rabien

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

XML Schema vs. Relax NG

XML Tutorium mit Oxygen. Oxygen Version 9.3!!

Enterprise Content Management

Bibliothekssysteme / Verbundsysteme / Netze

VVA Webservice Online Lieferbarkeits-Abfrage

XML Werkzeug XML Spy. Frank Heininger Axel Labuschke

WEBSEITEN ENTWICKELN MIT ASP.NET

XML steht für Extensible Markup Language. Helmut Vonhoegen (2007) beschreibt XML unter anderem so:

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

XML-Namensräume. Marc Monecke

Containerformat Spezifikation

Webseite in XML Kurzeinführung

Eine Dokumenttypdefinition lässt sich im Kopfbereich des XML-Dokumentes (interne DTD) oder in einer separaten Datei formulieren (externe DTD).

VBA-Programmierung: Zusammenfassung

Zusammenfassung XML. Metasprache um Dokumenttypen zu definieren

Document Type Definition (DTD)

XML-Austauschformat für Sicherheitsdatenblätter

Dokumenten- und Content Management

App-Entwicklung für Android

Kapitel 4. Einführung in den Scannergenerator Flex. Einführung in den Scannergenerator Flex Wintersemester 2008/09 1 / 9

GATE General Architecture for Text Engineering. Alexander Hein & Erik Dießler (VL Text Analytics )

WhiteStarUML Tutorial

Containerformat Spezifikation

Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB

Intelligente Informationssysteme CoreMedia Smart Content Technology. Grundlagen

XML - Extensible Markup Language. Agenda - Oracle XML DB

Was ist LDAP. Aufbau einer LDAP-Injection. Sicherheitsmaßnahmen. Agenda. LDAP-Injection. ITSB2006 WS 09/10 Netzwerkkonfiguration und Security

Einführung in die extensible Markup Language

Textauszeichnung mit XML

XML Verarbeitung mit einer in Haskell eingebetteten DSL. Manuel Ohlendorf (xi2079)

Neuer Releasestand Finanzbuchhaltung DAM-EDV E Inhaltsverzeichnis. 1. Neuerungen Schnittstelle Telebanking mit IBAN und BIC...

S.M. Hartmann GmbH IT Solutions

Kurzanleitung zu XML2DB

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

Magento Theming Ein Einstieg Rainer Wollthan

Einführung in DocBook

Webdesign Grundlagen. Michael Kraft, M.A. WS 2012/2013

Online-Publishing mit HTML und CSS für Einsteigerinnen

Übungen zur Softwaretechnik

Workflow, Business Process Management, 4.Teil

Vorgetragen von. Sanaz Mostowfi Anna Polovets Mandy Neumann

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

Softwareentwicklung mit Komponenten

Grundbegriffe der Informatik

Start des Programms mit zwei Parametern: 1. XML-Datei mit den zu verarbeitenden Eingabedaten, 2. XML-Datei mit der Programmkonfiguration

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

Einführung in die Theoretische Informatik

Kurzeinführung in XML. Was ist XML? Well-formed u. gültiges XML Erste Anwendung in XML Externe DTD Attribute und Entities Datenausgabe mit XSL

Ruhr.pm XML-Daten verarbeiten mit XML::LibXML Autor: Datum:

Haben Sie schon einmal aus einem ScreenCobol Requestor ein Java Programm aufgerufen?

CASCADING STYLE SHEETS WEBSEITEN-GESTALTUNG MIT CSS

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

GISA. Definition Spoolfiles

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

Erhöhung der Datenqualität in XML-Dokumenten von Desktop Applikationen. Alexander Hilliger von Thile - REI/ID

Semantic Markup für die Dokumentenklassifizierung. Seminarvortrag von Mirko Pracht

Die Technologie der Mumie

Entwicklung mit Arbortext Editor 6.1

CGI Programmierung mit Ha. Markus Schwarz

XMPP: Extensible Messaging and Presence Protocol

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

Dokumentenlenkung - Pflicht oder Kür-

Systembeschreibung. Masterplan Kommunikationsinterface. ASEKO GmbH. Version 1.0 Status: Final

Das von MTS-Italia entwickelte Content Management System mit 1:1 seekda Integration.

Ressourcen-Beschreibung im Semantic Web

IT-Zertifikat: Daten- und Metadatenstandards. Transformation von XML-Dokumenten mit XSLT (und XPATH) XSLT kurz und knackig. XSLT und die Praxis

BIF/SWE - Übungsbeispiel

Public-Key-Infrastrukturen

Transkript:

ASN.1 <-> XML TRANSLATION Management Verteilter Systeme Patrick Gerdsmeier, Pierre Smits Wintersemester 2003/2004 Lehrstuhl für Systeme Prof. Dr. Kraemer BTU Cottbus

ASN.1 <-> XML TRANSLATION Gliederung des Vortrags <> Was ist ASN.1? <> Was ist XML? <> Konvertierungskonzepte <> Design eines Translators <> Weitere Beispiele <> Fazit <> Literatur Management Verteilter Systeme 2/26

ASN.1 (Abstract Syntax Notation) Was ist ASN.1? <> ASN.1 - Abstract Syntax Notation One <> Framework für Daten und Informationen <> Daten sind in einem Baum strukturiert <> Unabhängig von der Umgebung <> Häufig in Kommunikationsprotokollen verwendet <> ASN.1: ISO 8824 (CCITT/ITU X.680-683 früher 208) <> Encoding Rules: ISO 8825 (CCITT/ITU X.690-693 früher 209) Management Verteilter Systeme 3/26

ASN.1 (Abstract Syntax Notation) ASN.1 Abstract Syntax Definition <> Definition der Datenstrukturen Record ::= SEQUENCE { number Number, name Name } Number ::= INTEGER Name ::= OCTET STRING Management Verteilter Systeme 4/26

XML Was ist XML? <> XML - extensible Markup Language <> ASCII-basierte Sprache zur Beschreibung baumstrukturierter Daten <> Daten werden in Tags eingeschlossen <> Deklarationen (Version, Character Encoding,...) <> Wohlgeformt : Dokument hat ein Wurzelelement Jedes Tag wird geschlossen Verschachtelung der Tags ohne Überschneidungen Management Verteilter Systeme 5/26

XML Beispiel "bsp.xml" <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE root SYSTEM "bsp.dtd"> <?xml-stylesheet type="text/xsl" href="bsp.xsl"?>... <root> <child ID="1" Name="Hallo">Text</child> <child ID="2" Name="Welt">nochmal Text</child> </root>... Management Verteilter Systeme 6/26

DTD <> XML-Dokumente sind gültig, wenn sie einer DTD entsprechen <> Angaben über die (logische) Struktur einer XML-Datei "bsp.dtd" <?xml version="1.0" encoding="utf-8"?> <!ELEMENT root (child*)> <!ELEMENT child (#PCDATA)> <!ATTLIST child ID CDATA #REQUIRED Name CDATA #REQUIRED > Management Verteilter Systeme 7/26

XSL <> Formatierung von XML-Daten <> Transformation von XML-Daten in andere XML-Daten (z.b XHTML) "beispiel.xsl"... <xsl:template match="child"> <p><xsl:value-of select="@id" /></p> <p><xsl:value-of select="@name" /></p> <p><xsl:value-of select="." /></p> </xsl:template>... Management Verteilter Systeme 8/26

Konvertierungskonzepte <> BER - Basic Encoding Rules <> Konvertierung zwischen binärer und ASCII-Darstellung record Record:=={ 30 09 number 12 02 01 0C name '1AA2FFFF'H } 04 04 1AA2FFFF Management Verteilter Systeme 9/26

Konvertierungskonzepte <> XER - XML Encoding Rules <> Konvertierung zwischen BER und XML-Darstellung <_SEQUENCE> <_INTEGER>12</_INTEGER> <_OCTET_STRING>1AA2FFFF</_OCTET_STRING> </_SEQUENCE> Management Verteilter Systeme 10/26

Konvertierungskonzepte <> Konvertierung der ASN.1 Abstract Syntax Definition in eine DTD <> Benötigt zur aussagekräftigen Benennung der XML-Tags <?xml version="1.0" encoding="utf-8"?> <!ELEMENT record (number,name)> <!ELEMENT number (#PCDATA)> <!ELEMENT name (#PCDATA)> Management Verteilter Systeme 11/26

Konvertierungskonzepte <> Mit Hilfe der DTD lassen sich die XER Daten sinnvoll benennen <> Ergebnis ist eine verständlich lesbare XML-Datei <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE Record SYSTEM "record.dtd"> <?xml-stylesheet type="text/xsl" href="record.xsl"?> <record> <number>12</number> <name>1aa2ffff</name> </record> Management Verteilter Systeme 12/26

Design eines ASN.1/XML Translators Ziele: <> Java Bibliothek (entwickelt für Java >=1.1) <> Übersetzung von ASN.1 in XML und umgekehrt <> Ausdrucksmöglichkeiten in XML und ASN.1 nicht gleichmächtig <> Informationsverluste sollen vermieden werden Management Verteilter Systeme 13/26

Datentypen Grundsätzliche Regeln der Übersetzung ASN.1/XML: <> Namensgebung der Elemente: Name_des_Elterelements..Name_des_Elements <> Punkt für ASN.1 Namen nicht zulässig, somit keine Konflikte <> Weitere Informationen werden als Attribute angegeben Management Verteilter Systeme 14/26

Datentypen Einfache Typen: ASN.1: A::=INTEGER DTD: <!ELEMENT root..a (#PCDATA)> <!ATTLIST root.a typeref CDATA #FIXED "A" type CDATA #FIXED "INTEGER"> Management Verteilter Systeme 15/26

Komplexe Typen Sequenzen (Sequence type): ASN.1: B::=SEQUENCE { a A DEFAULT 10, c C } DTD: <!ELEMENT root..b (B.a?, B.c)>?, B <!ATTLIST root.b typeref CDATA #FIXED "B" type CDATA #FIXED "SEQUENCE"> <!ELEMENT B.a (#PCDATA)> <!ATTLIST B.a typeref CDATA #FIXED "A" type CDATA #FIXED "INTEGER" type CDATA #FIXED "10">... Management Verteilter Systeme 16/26

Komplexe Typen Mengentypen (Set type): ASN.1: C::=SET OF A DTD: <!ELEMENT root..c (C._)*> <!ATTLIST root.c typeref CDATA #FIXED "C" type CDATA #FIXED "SET OF"> <!ELEMENT C._ (#PCDATA)> <!ATTLIST C._ typeref CDATA #FIXED "A" type CDATA #FIXED "INTEGER"> Management Verteilter Systeme 17/26

Komplexe Typen Auswahltypen (Choice type): ASN.1: D::=CHOICE { a A, c C } DTD: <!ELEMENT root..d (D.a D.c)> <!ATTLIST root.d typeref CDATA #FIXED "D" type CDATA #FIXED "CHOICE"> <!ELEMENT D.a (#PCDATA)> <!ATTLIST D.a typeref CDATA #FIXED "A" type CDATA #FIXED "INTEGER"> Management Verteilter Systeme 18/26

Architektur der Implementierung Management Verteilter Systeme 19/26

Implementierung Fünf Module: <> ASN1Syntax2DTD: Übersetzung einer ASN.1 abstract syntax definition in eine DTD <> ASN12SAX (Rückwärts: SAX2ASN1): Übersetzung von BER in XER (SAX respektive). <> LabelSAX (Rückwärts: UnlabelSAX): Benennung der XML Elemente anhand einer gegebenen DTD Management Verteilter Systeme 20/26

Module ASN1Syntax2DTD: <> Parsen einer ASN.1 Definition <> Erstellen einer DTD nach Regeln: A::=INTEGER die rechte Seite entspricht der Regel: IntegerType -> "INTEGER" Ergebnis: <!ELEMENT root..a (#PCDATA)> <!ATTLIST root.a typeref CDATA #FIXED "A" type CDATA #FIXED "INTEGER"> Management Verteilter Systeme 21/26

Module ASN12SAX : <> Decodiert die ASN.1 Daten und generiert einen SAX-Stream <> Daten werden sequentiell bearbeitet StartElement: _SEQUENCE StartElement: _SEQUENCE StartElement: _INTEGER Characters: 9680453654 EndElement: _INTEGER StartElement: _SEQUENCE... Management Verteilter Systeme 22/26

Module LabelSAX: <> Namen in den SAX-Streams werden durch aussagekräfigere ersetzt. <> Erzeugtes XML-Dokument ist gültig nach der DTD StartElement: root..certificate type="sequence" StartElement: Certificate.tbsCertificate type="sequence" StartElement: TBSCertificate.serialNumber type="integer" Characters: 9680453654 EndElement: TBSCertificate.serialNumber StartElement: TBSCertificate.signature type="sequence"... Management Verteilter Systeme 23/26

Weitere Beispiele LDAP: <> Lightweight Directory Access Protocol <> Protokoll zur Verwaltung von Verzeichnissen PKCS#7: <> Public Key Cryptography Syntax <> Syntaxstandard von verschlüsselten Daten <> Da die Struktur des Inhaltes einem contenttype zugeordnet sind, werden zwei LabelSAX-Streams angewandt Management Verteilter Systeme 24/26

Fazit <> ASN.1 ist in Kommunikations-, Daten- und Sicherheitsprotokollen weit verbreitet <> XML ist ein populäres und universelles Datenaustauschformat <> Zur Darstellung und Bearbeitung von XML gibt es eigene Formate sowie viele Tools <> Trotz ungleicher Ausdrucksmächtigkeit von ASN.1 und XML erfolgt die Umwandlung verlustfrei, d.h. reversibel <> Transformation zwischen lesbarer und hardwarenaher/effizienter Darstellung <> Weiterentwicklungsmöglichkeiten durch Benutzung von XML- Schemes Management Verteilter Systeme 25/26

Literatur <1> Mapping between ASN.1 and XML, T. Imamutra, H. Maruyama http://www.trl.ibm.com/projects/xml/xss4j/docs/rt0362.pdf <2> http://www.trl.ibm.com/projects/xml/xss4j/docs/axt-readme.html <3> http://www.trl.ibm.com/projects/xml/xss4j/docs/axt-install.html <4> Network Mannagement, W.-D. Haaß <5> http://www.itu.int/rec/recommendation.asp?type=products&lang= e&parent=t-rec-x <6> http://www.itu.int/itu-t/studygroups/com10/languages/ Management Verteilter Systeme 26/26

X / \ / \i / o \ i/ + o\ / \i i/ + o \ / o o +\i / \ _ _