Serialisierung
Unter Serialisierung versteht man die Umwandlung eines Datenobjekts in eine speicherbare Form.
Der Begriff taucht vor allem beim Programmieren auf und ist dann relevant, wenn der Inhalt von komplexen Variablen und Objekten in Dateien gespeichert und geladen werden soll. Auch beim Übertragen von Strukturen zu einem anderen Computer kommen Serialisierungsmechanismen zum Einsatz, zum Beispiel bei der Kommunikation mit einem Webserver.
Beispiel: Folgende C#-Klasse beschreibt eine Person:
class Person { public string vorname; public string nachname; public int alter; }
Nun werden konkrete Instanzen von dieser „Datenschablone“ erzeugt, z.B.:
Person spieler = new Person(); spieler.vorname = "Max"; spieler.nachname = "Mustermann"; spieler.alter = 21;
Das Problem ist nun, dass sich diese Information zunächst nur im Arbeitsspeicher des Computers befindet und nur das laufende Programm weiß, dass die Teile "Max"
, "Mustermann"
und 21
nach dem Muster der Klasse Person
zusammengehören.
Will man diese Spielerdaten nun speichern, so werden ausschließlich die Inhalte – "Max"
, "Mustermann"
und 21
– gesichert.
Damit das Computerprogramm aber überhaupt weiß, welche Informationen geschrieben werden sollen, sind entsprechende Regeln und Anweisungen nötig. Dies ist die Aufgabe des Serialisierers. Das Ergebnis der Umwandlung der Person-Datenstruktur im Arbeitsspeicher in eine Form, die sich in einer Datei speichern lässt, kann zum Beispiel so aussehen:
<Person> <vorname>Max</vorname> <nachname>Mustermann</nachname> <alter>21</alter> </Person>
Dieser Textblock im XML-Format lässt sich einfach in eine Textdatei speichern und daraus wieder lesen. Die XML-Elemente (in ’spitzen Klammern‘) markieren in diesem Beispiel die Datenstruktur, die durch entsprechenden Programmcode interpretierbar ist.
Das Gegenteil der Serialisierung (Speichern) heißt Deserialisierung (Laden), also das Umwandeln der speicherbaren Form in die Arbeitsspeicherdarstellung.