240 likes | 350 Views
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
E N D
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 0001000101010100100101001010101010111101000000111110101001011101001001000101000100010100100100100010100101001010011010100 0001000101010100100101001010101010111101000000111110101001011101001001000101000100010100100100100010100101001010011010100
Was passiert, wenn eine Datei in 1000 Jahren geöffnet werden soll?
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)
Emulation EMULATION Simulationeines älteren Systems, damit auch Daten dieses Systems mit neueren Computern und Betriebssystemen genutzt werden können
Kapselung Zusä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
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