Architektur

Herausforderungen der Mid-/Long-Term-Serialisierung

Abwärtskompatibilität
Produkt-Entwicklung
Serialisierung

Abstract


Thu 16:40 - 17:25 Uhr | 2010

Dieser Vortrag beschäftigt sich mit den besonderen Herausforderungen der Serialisierung, die entstehen, wenn die serialisierten Objekte über einen längeren Zeitraum hinweg mit verschiedenen Programmversionen gelesen und geschrieben werden sollen. Beispiele dafür sind z.B. Einstellungs-Dateien oder auch vom Benutzer erzeugte Dokumente. Diese Dateien sollen auch in zukünftigen Programmversionen zuverlässig gelesen werden können.

In Java-Land gibt es unzählige Serialisierungs-Frameworks, etliche davon funktionieren auch sehr gut. So ist ein Mapping von Objekten zu XML-Files heutzutage einfach realisierbar. Allerdings sind die meisten dieser Frameworks nicht auf Änderungen an der Objekt-Struktur und im Datei-Format vorbereitet. Dies ist oft – z.B. im WebServices-Umfeld – auch nicht notwendig.

Die Probleme der Langzeit-Serialisierung sind – entsprechend ihrer langfristigen Natur – erst nach etlicher Zeit sichtbar. Oft ist es dann für die “richtige” Lösung bereits zu spät, da bereits 1000te Installationen ohne entsprechende Vorkehrungen im Umlauf sind.

Dieser Vortrag beinhaltet folgende Teile:

  • Übersicht über die Herausforderungen / typische Fehler
  • Grundlagen der Datei-Versionierung
  • Delegates/Objekt-Graph – Mapping der Versionen verschiedener Objekt-Serializer
  • Test-Strategien
  • Zusammenfassung

Der Vortrag beschäftigt sich explizit nicht mit einem bestimmten Serialisierungs-Framework. Viel mehr sollen die grundsätzlichen Gedanken und Problematiken verdeutlicht und mögliche Lösungsansätze behandelt werden.

Non-Sponsored TalkFortgeschritteneDeutsch
Johannes Schneider

Johannes Schneider

Johannes Schneider ist Berater und Geschäftsführer bei der cedarsoft GmbH. Er verfügt über mehrjährige Projekterfahrung als Entwickler und Softwarearchitekt im Umfeld von Unternehmensanwendungen in Java. Schwerpunkte dieser Tätigkeit waren und sind Rich Client Applications auf der Basis von Swing/SWT und die spezifischen Herausforderungen einer langfristigen Produktentwicklung und -pflege.