Daten Historisierung

Jan Burse, erstellt 02. Jul 2009 „Alles ist im Fluss“ davon sprachen schon die Griechen. Und damit sind nicht unsere Schweisstropfen im Sommer gemeint. Vielmehr erinnert uns der Satz an den ständigen Wandel der Dinge. Davon ausgeschlossen sind weder die Produkte die durch ein Verkaufssystem angeboten werden, noch die Vertragsobjekte die Produkte und Partner zusammen bringen. Bildet man diesen Wandel im Informationssystem ab, so spricht man von Historisierung. Im Folgenden möchten wir kurz die Historisierung vorstellen, die wir in unserem Verkaufssystem verfolgt haben. Zur Historisierung gehören einfache Logs bei denen Ereignisse fortgeschrieben werden. Aber erst wenn Logs geschickt mit Objekten verknüpft werden, entstehen lineare Versionen von Objektzuständen und -beziehungen. Unter den Objekten mit linearen Versionen finden wir im Verkaufssystem die Bestellung. Eine Bestellung durchlebt einen eigenen Lebenszyklus. Der Zyklus beginnt mit dem Eintrag des ersten Produktes und endet mit der Aktivierung aller Produkte. Die Historisierung beginnt in unserem System mit der Freigabe der Bestellung. Die Architektur des Verkaufssystems sieht verschiedene Rollen und dementsprechend auch verschiedene Sichten auf die Historisierung vor. Angedacht ist dem Kunden jeweils die neueste Version einer Bestellung zu zeigen und darauf Operationen zu erlauben. Dies sei die Funktion des Frontsystems. Der Beziehungsmanager kann jedoch die ganze Geschichte einsehen, und daran auch weitergehende Operationen vornehmen. Dies sei die Funktion des Backsystems. Für die Synchronisation des Front- und Backsystems ist ein Meldungsaustausch angedacht. Der Einfachheit halber verfügt der aktuelle Prototyp nicht über eine Aufteilung in Front- und Backsystem. Neben der Historisierung der Bestellungen gibt es Logs für die Zahlungen und Logs für die Aktivierungen. Die lineare Versionisierung der Positionen einer Bestellung ist im Prototyp schon verankert, wird aber vorläufig noch nicht eingesetzt. Bestellungen, Positionen, Zahlungen und Aktivierung sind die wichtigsten Dinge die über eine Geschichte verfügen und auch dem Kunden direkt sichtbar sind. Des Weiteren muss das System jedoch auch die Historisierung von Vorlagen, Gebieten, Tarifen und Artikeln beherrschen. Für die Abbildung linearer Versionisierungen auf relationale Datenbanken gibt es keine eindeutige Lösung. Findet man oft die Darstellung mittels VALIDFROM und VALIDTO Spalte, so verfolgen wir die Darstellung mit nur einer VALIDFROM Spalte gemäss dem Beispiel von Max Vetter. Unser resultierendes System geht soweit, dass Dokumente nachträglich Zeitgenau erzeugt werden können, und dass wir im Prinzip auf eine teure Archivierung der Dokumente verzichten könnten. Aber wozu der ganze Aufwand? Nur damit die Nachvollziehbarkeit gewährleistet werden kann? Ausgeschlossen! Die Historisierung kommt nicht nur dem Beziehungsmanager bei der Bearbeitung eines Falles zu Gute. Sie ist auch ein interessantes Instrument der Angebotsbildung. Mittels der Historisierung können wir Bedingungen der Lizenzen erzwingen, z.B. nur eine Evaluationslizenz pro Partner und Produkt. Und wir können in Zukunft interessante Angebote definieren, z.B. Vergünstigungen bei der Bestellung von Produktverbesserungen.

Kommentare