time cockpit ist eine offlinefähige S+S (Software + Service) Lösung. Das bedeutet, dass Sie jederzeit mit dem Produkt arbeiten können, egal ob Sie gerade Internetzugang haben oder nicht. Bei Verbindung zum Internet synchronisiert time cockpit Ihre Daten mit einem für Sie reservierten Datenbereich. Auf diese Weise können haben Sie Ihre Daten auf mehreren Geräten jederzeit aktuell zur Verfügung. Bei Verlust oder Defekt Ihres PCs gehen so außerdem keine wichtigen Informationen verloren.
In diesem Dokument gehen wir auf die Details der Speicherung von Daten in time cockpit 2010 ein. Es verlangt vom Leser ein gewisses Maß an Verständnis für IT Administration. Sollten Sie Fragen zur Speicherung oder Synchronisierung der Daten in time cockpit 2010 haben, zögern Sie nicht, auf uns zuzukommen.
Überblick
Die folgende Abbildung gibt einen Überblick, wie Daten in time cockpit 2010 gespeichert werden:

Zeiterfassungsdatenbank und Blob-Speicher
Die Daten, die time cockpit speichert, können in zwei Kategorien eingeteilt werden:
- Stamm- und Zeiterfassungsdaten (z.B. Kunden, Projekte, Zeitbuchungen, etc.)
- Blob-Daten (z.B. Signaldaten)
Die Stamm- und Zeiterfassungsdaten werden auf den PCs des Endanwenders und am time cockpit Server in einer relationalen Datenbank gespeichert. Aufgezeichnete Signaldaten (z.B. Computeraktivität, etc.) werden in Form sogenannter Blobs ("Binary Large Objects") gespeichert. Signaldaten werden deshalb speziell behandelt, da sie von der Datenmenge her relativ groß werden können und es sich dabei um private, speziell schützenswerte Daten handelt. Aus diesem Grund werden die Signaldaten-Blobs mit einem speziellen Signaldatenpasswort verschlüsselt und komprimiert. Auf diese Weise ist sichergestellt, dass so wenig wie möglich Speicherplatz verbraucht wird und darüber hinaus selbst bei Verlust oder Diebstahl niemand ohne Kenntnis des Benutzerkennworts Zugriff auf die Signaldaten erhält.
Der Datenspeicher von time cockpit kann von Benutzern erweitert werden. Für Daten, die ähnlich den Signaldaten als Blobs gespeichert werden sollen, steht der Spaltentyp BinaryProperty zur Verfügung.
Lokale Datenspeicherung
Bei der erstmaligen Ausführung von time cockpit wird mit Hilfe des Konfigurationsassistenten der lokale, benutzerabhängige Datenspeicher initialisiert. Konkret werden dazu folgende Schritte ausgeführt (die angegebenen Pfade können im Konfigurationsassistenten geändert werden; wenn sie geändert wurden, sind an den jeweiligen Stellen die geänderten Werte einzusetzen):
- Im Verzeichnis Documents\time cockpit wird die lokale time cockpit Datenbankdatei time cockpit.tic angelegt.
- Im gleichen Verzeichnis, in dem auch time cockpit.tic liegt, wird das Unterverzeichnis time cockpit blob store erzeugt. In diesem Verzeichnis werden die zuvor näher beschriebenen Blobs gespeichert.
- In der Datei \Users\<Username>\AppData\Local\software architects\Time Cockpit\Time Cockpit.config* wird der Speicherort der lokalen Datenbankdatei gespeichert. Die Datei enthält außerdem Benutzer und Passwort für den time cockpit Server in verschlüsselter Form. Achtung: diese Konfigurationsdatei kann nicht von einem Benutzer zu einem anderen Benutzer kopiert werden. Die verschlüsselten time cockpit Zugangsdaten sind nur von dem Microsoft Windows-Benutzer entschlüsselbar, der die Konfigurationsdatei erzeugt hat!
*) Der Name dieser Konfigurationsdatei kann durch eine Einstellung in der globalen Konfigurationsdatei von time cockpit 2010, %ProgramFiles%\software architects\time cockpit\time cockpit 2010\TimeCockpit.UI.exe.config, verändert werden. Hat die Einstellung configuration/appSettings/Configuration keinen Wert, spricht man von der Defaultkonfiguration und es wird Time Cockpit.config verwendet. Wurde ein Wert festgelegt, handelt es sich um eine benannte Konfiguration. Die Konfigurationsdatei enthält bei einer benannten Konfiguration den Namen der Konfiguration (z.B. Time Cockpit (Debug).config wenn als Konfigurationsname Debug gewählt wurde). Diese Einstellungsmöglichkeit wurde vorgesehen, um mehrere Instanzen von time cockpit auf einem Computer gleichzeitig installieren zu können.
Zentrale Datenspeicherung
Zentral werden die Daten von time cockpit 2010 in der Microsoft Windows Azure Plattform gespeichert. Wie auch lokal wird am Server zwischen relationalen Daten (SQL Azure) und Blobs (Microsoft Windows Azure Blob Storage) unterschieden.
Die Zugangsdaten zu dem zentralen Datenspeicher eines Benutzers sind lokal nicht gespeichert. time cockpit 2010 ermittelt diese auf Basis des jeweiligen Benutzers zur Laufzeit. Bitte beachten Sie, dass ein direkter Zugriff auf den zentralen Datenspeicher durch andere Werkzeuge als time cockpit nicht unterstützt wird!
Bezüglich Verschlüsselung und Kompression der Signaldaten gelten zentral die gleichen Regeln wie lokal.
Synchronisierung
time cockpit 2010 versucht regelmäßig Änderungen zwischen lokalem und zentralem Datenspeicher zu synchronisieren. Wenn keine Verbindung zum Internet besteht wird keine Synchronisierung vorgenommen. Die Synchronisierung erfolgt in folgenden Schritten (Liste vereinfacht):
- Synchronisierung von Schemaänderungen (z.B. neue Entitäten, Eigenschaften, Beziehungen, etc.)
- Synchronisierung von neuen und geänderten Datensätzen
- Synchronisierung von Löschungen
- Synchronisierung von BLOBs
Schlägt eine Synchronisierung aus welchem Grund auch immer fehl, werden alle Änderungen, die durch die Synchronisierung ausgelöst wurden, rückgängig gemacht. Es kommt also in einem solchen Fall nicht zu inkonsistenten oder teilweise synchronisierten Daten.
Ändern zwei Benutzer auf unterschiedlichen Geräten den selben Datensatz, überschreibt der Benutzer, der zuletzt den betroffenen Datensatz synchronisiert, die Änderungen des anderen Benutzers ("last client wins"). Die Versionisierung erfolgt in time cockpit 2010 dabei grundsätzlich auf Datensatz- und nicht auf Spaltenebene.