1/15
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai | Chat |
|---|
No analytics yet
Send a link to your students to track their progress
Data
Can represent :
Text
Simple data Types
Code
Images
Documents
Transformation
A transformation is necessary
From one data format to another
Two transformation principles
Pair wise trans. for every representation
Transform to canonical representation
Pair-wise Transformation

Transform to Canonical Represantion

Warum braucht man überhaupt Datenrepräsentation?
• Über das Netz gehen nur Bytes – sie können Text, einfache Typen, Datenstrukturen, Code, Bilder oder Dokumente bedeuten
• Ohne Erklärung sind Daten reines Rauschen
• Ziel ist Interoperabilität zwischen unterschiedlichen Systemen
• Man muss also nicht nur die Daten senden, sondern auch, wie sie zu lesen sind
Wie funktioniert die pair-wise Transformation?
• Jede Repräsentation wird direkt in jede andere überführt
• n² Transformationen, also viel Code
• Bessere Performance: pro Übertragung läuft nur eine Transformation
• Der Sender teilt seine Repräsentation mit, der Empfänger rechnet um ("receiver makes it right")
• Nachteil: Der Empfänger muss alle Formate kennen
Wie funktioniert die Transformation in eine kanonische Repräsentation?
• Alle Seiten wandeln in ein gemeinsames Zwischenformat um
• Nur 2n Transformationen, also weniger Code
• Schlechtere Performance: pro Übertragung laufen zwei Transformationen (rein und wieder raus)
• Das externe Format gibt die Protokollspezifikation vor oder die Partner handeln es aus
Was bedeuten big-endian und little-endian?
• Big-endian: höchstwertiges Byte zuerst
• Little-endian: niederwertigstes Byte zuerst
• Beispiel 2004 dezimal = 0x000007D4
• Big-endian im Speicher: 00 00 07 D4
• Little-endian im Speicher: D4 07 00 00
Welche Systeme nutzen welche Byte-Reihenfolge?
• Die meisten Rechnersysteme little-endian: Intel x86, x86-64
• Einige big-endian: Motorola 68k, PowerPC
• Die meisten Netzwerkprotokolle big-endian: IP, TCP, UDP, DNS, HTTP/2
• Deshalb heißt big-endian auch Network Byte Order
Was ist US-ASCII?
• 7-Bit-Kodierung mit 128 Zeichen
• Nicht druckbare Zeichen: Carriage Return, Line Feed, Tab
• Druckbar: lateinisches Alphabet, Ziffern, einige Symbole
Was ist Unicode?
• Vergibt für jedes Zeichen einen Codepoint
• Rund 1,1 Millionen Codepoints im Universal Coded Character Set
• Die ersten 128 Codepoints sind identisch mit ASCII
• Mehrere Kodierungsformate: UTF-8 (1–4 Byte), UTF-16 (2 oder 4 Byte), UCS-2 (fest 2 Byte), UTF-32 (fest 4 Byte)
Warum ist die Byte-Reihenfolge bei UTF-8 egal, bei UTF-16 aber nicht?
• UTF-8 ist eine Folge einzelner 8-Bit-Zahlen – innerhalb eines Bytes gibt es keine Reihenfolge zu klären
• UTF-16 und UTF-32 bestehen aus 16- bzw. 32-Bit-Zahlen, deren Bytes geordnet werden müssen
• Lösung: LE oder BE explizit aushandeln oder ein Byte Order Mark (U+FEFF) voranstellen
• In UTF-8 hat das BOM keine Bedeutung, taucht aber manchmal als EF BB BF auf
Textbasierte oder binäre Protokolle – was sind die Unterschiede?
• Textbasiert: leicht zu verstehen und zu debuggen; Beispiele SMTP, FTP, HTTP/1.1
• Binär: effizienter bei Nachrichtengröße und Umwandlung; Beispiele DNS, HTTP/2
Welche Eigenschaften hat JSON?
• Textbasiertes Austauschformat nach dem Prinzip der kanonischen Repräsentation
• Key-Value-Struktur mit einfachen Datentypen, Verschachtelung für Baumstrukturen
• Selbstbeschreibend: das Textformat zeigt Länge und Verschachtelung an
• Plattformunabhängig und weit verbreitet, stammt aus JavaScript
• Für Objektgraphen (mit Querverweisen) schlecht geeignet
Welche Nachteile hat JSON?
• Weniger effizient als eine Binärkodierung (Text muss erst umgewandelt werden)
• Es gibt keine typsicheren Definitionen für Datenstrukturen
• Deshalb existieren neben JSON weitere Formate – jedes ist ein Kompromiss aus Lesbarkeit, Effizienz und Typsicherheit
Welche Eigenschaften hat XML?
• Textbasiert, kanonische Repräsentation, mit Tags und Attributen
• Muss well-formed sein: genau ein Wurzelelement, alle Tags geschlossen und korrekt verschachtelt, Attributwerte in Anführungszeichen, reservierte Zeichen maskiert
• Metasprache: über ein XML Schema lässt sich ein eigenes Datenformat definieren und automatisch validieren
• Sehr verbose und für Binärdaten ungeeignet