Date post: | 05-Apr-2015 |
Category: |
Documents |
Upload: | bertha-weller |
View: | 133 times |
Download: | 0 times |
Intelligente Dateisysteme
„Design“ von Dateien
Referat: Florian Griese
Dateien sind ein Strom aus Bytes, aus denen nicht ersichtlich ist, auf welchem System sie
entstanden sind
000100010101010010010100101010101011110100000011111010100101110100100100010100010001010010010010001010010100101001101010
0
000100010101010010010100101010101011110100000011111010100101110100100100010100010001010010010010001010010100101001101010
0
Was passiert, wenn eine Datei in 1000 Jahren geöffnet werden soll?
PROBLEM:Die Daten können nicht interpretiert werden
Ausgangszustand
Physikalische Ebene ->
Wir haben eine Bitfolge, die auf einem Medium gespeichert ist
Logische Ebene ->
Eine Definition, wie diese Bits von einer Anwendungssoftware genutzt werden, basierend
auf dem Datentyp (z.B. ASCII)
Strategien „elektronischer Archivierung“
Emulation
EMULATION
Simulation eines älteren Systems, damit auch Daten dieses Systems mit neueren Computern und Betriebssystemen genutzt werden können
KapselungZusätzlich zu dem bewahrenden
Informationsobjekt werden auch die Software, mit der man die Daten visualisieren kann, sowie die
zugehörigen Metadaten gespeichert
Standardisierung
Es werden langzeitig stabile Formate, wie xml, TIFF oder pdf bevorzugt
Migration
„Übersiedlung“/“Einbindung“ von Informationen in eine neue Systemumgebung
Lösungsansatz:
SPO (self preserving object)
Es gibt zwei Zustände binärer Informationen
Transient →
„Flüchtige Daten, die zeitlich begrenzt in den Speicher geladen werden (gepuffert).
Persistent →
„Nicht unkontrolliert veränderbare“ Daten werden über einen langen Zeitraum (auch über einen
Programmabbruch hinaus) bereit gehalten
SERIALISIEREN, serialization ->
Transformation vom transienten in den persistenten Zustand
DESERIALISIEREN, deserialization ->
Transformation vom persistenten in den transienten Zustand
Problem
Persistene Daten sagen nur wenig über das System aus, auf dem sie verarbeitet worden sind
Self preserving objects
sind mit Informationen angereichert, welche es möglich machen, das Objekt in Zukunft auf neuen Systemen und Umgebungen „lauffähig“ zu halten
Ziel
Es gilt nun, die Systeme welche mit solchen Informationen agieren, mit einer
Basisfunktionalität auszustatten, die es ermöglicht, das alle Datentypen mit einem
gewissen Kontext gespeichert werden können.
→ Traditionelle Daten bestehen aus einem bytestream
→ SPOs bestehen aus zwei bytestreams, einem traditionellem und einem zweiten, der relevante
Informationen zur „Konservierung“ enthält
Beispiel C++
Die Basisfunktion des I/O wird derart verändert, das erstellte Dateien mit einem minimalen Kontext
ausgestattet werden, ohne eine gesamte Anwendung ändern zu müssen - mit der
Gewissheit, das sich weiterhin beide Arten von Daten problemlos verarbeiten lassen
Änderung der stdio library
Die fopen Funktion wird derart verändert, dass bei jedem Öffnen nachgeschaut wird, ob ein Kontext
vorhanden ist
Die fclose Funktion wird derart erweitert, dass beim speichern automatisch ein Kontext erstellt
wird
Kompatibilität
Die fopen und fclose Funktionen werden so geändert, dass auch eine mit einer unveränderten Funktion geschriebene Datei mit der modifizierten
gelesen werden kann