Windows Mobile PDA und Mozilla synchronisieren
Inhaltsverzeichnis
Die Installation
Bevor man mit der Installation beginnt, sollte man ein Backup aller Daten anlegen, insbesondere der Datei pim.vol im Hauptverzeichnis des PDA. Diese Datei enthält alle PIM Daten (Kalender, Todo, Kontakte).
Da FinchSync speziell für die Programme von Mozilla geschrieben wurde, sollte man bereits Thunderbird und einen der Kalender installiert haben. In meinem Falle ist dies Thunderbird 1.5.0.9 und Lightning 0.3, als Extension im Thunderbird.
FinchSync besteht aus 2 Programmen, dem PC Server und dem Client für den PPC. Widmen wir uns zuerst dem Server auf der PC Seite. Dieser ist in Java geschrieben, so das er Plattform unabhängig ist, der Server arbeitet also sowohl unter Linux, als auch Windows und dem MAC, wobei ich den MAC nicht getestet habe. Wie üblich bei solchen Programmen benötigt man von SUN die Java Runtime Software. Es wird lediglich die JRE benötigt. Den Download gibt es unter: Java Runtime Software. Nach der Installation von Java sollte der Desktop PC neu gestartet werden. Ich habe dort für FinchSync ein neues Verzeichnis „FinchSync“ angelegt. Hierhin wird die FinchSync.jar kopiert. Auf der Kommandozeile wird FinchSync mit dem Befehl
java -jar FinchSync.jar
gestartet. Da FinchSync mit dem HTTP Protokoll arbeitet, kann es sein, das beim Start eine Fehlermeldung auftaucht: „Address already in use: JVM_Bind“ , diese Meldung kann vorerst ignoriert werden. Sie sagt lediglich aus, das der Port der per Default verwendet wird, bereits von einer anderen Anwendung belegt ist.
Der Server
Direkt nach dem Start erwartet uns das Hauptfenster mit 3 Reitertabs:
Activity: Hier werden die Aktivitäten der Clients vermerkt und es wird der Name und die IP Adresse des Servers angezeigt. Sync Sources: Auf diesem Tab sind alle Sync Quellen zu finden, wie Adressbücher, Kalender usw., es können mehrere dieser Quellen eingestellt werden. Clients: Auf diesem Tab sind die konfigurierten Clients zu sehen, mehr dazu später.
Als erstes sollte man den Port des Servers einstellen, dies erreicht man über den Punkt „File“ > „Server Configuration“, Hier trägt man einen Port ein, der auf jeden Fall frei sein muss und nicht verwendet wird, bei mir hab ich 8080 eingetragen, da auf Port 80 bereits der Apache läuft. Sollte sich die Firewall über einen offenen Port oder über FinchSync selbst beschweren, so sollte man die Kommunikation über den oben eingestellten Port bzw. FinchSync zulassen. Dies eröffnet auch die theoretische Möglichkeit die Daten über das Internet zu synchronisieren, wenn natürlich auch jeder weitere offene Port das Risiko eines Angriffs erhöht. Dies ist allerdings kein Problem von FinchSync sondern von jeglicher Netzwerk Software.
Nach dem die Einstellungen für den Port geklärt sind, kümmern wir uns um die zu synchronisierenden Quellen. Es können Kontakte, Aufgaben und Termine synchronisiert werden. Um eine neue Quelle hinzuzufügen klickt man auf den Button „Add“. Im nun erscheinenden Wizard gibt man zunächst einen Namen für die neue Quelle ein, dieser ist für jede Quelle einzigartig, da anhand dieses Namens die Quelle identifiziert werden muss. Der Name kann im nach hinein nicht mehr geändert werden. In der nächsten Box wählt man den Typ der Quelle aus, also Adressbuch oder Kalender. Anschließend klickt man auf den Button „Browse“ um die Dateien auf der Festplatte direkt auszuwählen, wenn man weiß, wo diese Dateien sich befinden. Adressbücher haben den Dateityp *.mab, der Kalender den Dateityp *.ics. Wenn man nicht weiß, wo sich die Dateien befinden, kann man auch den Button „Scan Disk“ verwenden. Dieser durchsucht den Rechner nach obigen Dateitypen, die korrekte Datei kann man dann aus der Liste der gefundenen Dateien auswählen. FinchSync scannt dabei die Benutzer Verzeichnisse nach der Datei prefs.js, hierin stehen die Verweise zu den normalen Dateien, sollten andere Dateien verwendet werden, dann hilft oftmals nur die Auswahl über den „Browse Button“.
Auf Linux Systemen kann es vorkommen, das der Scan Vorgang unverhältnismäßig lange dauert. Dies liegt an eventuellen Symlinks aus dem Homeverzeichnis nach außen, so das mitunter die gesamte Festplatte gescannt wird. Auch hier verhilft der „Browse Button“ zu einem schnellen Ergebnis. Mit einem Klick auf „Next“ schließt man den Wizard. Über den Button „Config“ kann man weitere Einstellungen vornehmen, der Haken bei „Block Application“ meint, das das Mozilla Programm solange blockiert wird, bis der Sync Vorgang abgeschlossen ist. Generell sollte man die Mozilla Programme während des Sync Vorganges geschlossen halten. Die Option „Readonly“ bewahrt die Quelle davor, das Daten an den Server gesendet werden, die Synchronisation wird dann hier beim nächsten mal fortgesetzt, es werden lediglich auf dem Client gelöschte Einträge wiederhergestellt. Die Option „Available“ sagt aus, das die Quelle vorhanden ist und synchronisiert werden kann. Um eine Quelle zu entfernen, klickt man auf den Button „Delete“.
Nun muss nur noch der Client eingestellt werden. Verschiedene Leute mit verschiedenen Clients können so mit den selben Quellen synchronisiert werden. Es muss ein Benutzername, das Passwort und die Quellen eingestellt werden, auf die dieser Client zugreifen darf. Die Quellen sind dieselben Quellen, die wir zuvor auf dem Server eingerichtet haben. Um eine dieser Quellen zu verwenden, klickt man einfach auf den Button „Add“ und fügt die entsprechende Quelle zum Client hinzu. Die Optionen hier werden von den globalen Optionen überschrieben.
Konfliktmanagement
Konflikte treten immer dann auf, wenn sich sowohl die Daten auf dem Server, als auch die auf dem Client geändert haben. Diese Konflikte werden dann laut der Einstellung bei den Clients aufgelöst. In folgenden Fällen tritt ein Konflikt auf:
Server Client Konflikt Keine Änderung Keine Änderung Keine Änderung Geändert Keine Änderung Gelöscht Geändert Keine Änderung Geändert Geändert X Geändert Gelöscht X Gelöscht Keine Änderung Gelöscht Geändert X Gelöscht Gelöscht
Der Client
Der Client ist in C# geschrieben und kommt als *.cab daher. Auf dem Client muss das .NET Compact Framework installiert sein. Unter Umständen kann es zu der Meldung 'The application being installed may not work properly because It was written for an earlier version of Windows Mobile.' kommen. Das kann ignoriert werden. Der Client funktioniert trotzdem. Nun kann der Client gestartet werden. Der Client kann sich mit mehreren Servern verbinden (immer nur einer zur gleichen Zeit). Um einen neuen Server hinzuzufügen klickt man auf „Config“ > „Server“. Hier kann man für den Server einen beschreibenden Namen vergeben, die IP Adresse (oder wenn man einen DNS Server im Netzwerk hat, auch den Namen des Servers), nun fehlt nur noch der Port, der auch bei der Server Konfiguration verwendet wurde. Als Benutzernamen und Passwort müssen die Daten der Client Konfiguration der Server Seite verwendet werden. Die Optionen für SSL Port, Komprimierung, bzw. Verschlüsselung sind derzeit ausgegraut, da sie in der aktuellen Version noch nicht freigeschaltet sind. Ein Klick auf den Button „Test“, testet die Verbindung, hier kann geprüft werden ob alles korrekt eingegeben ist.
Die Synchronisation
Die Synchronisation wird aus dem Hauptfenster gestartet. Hier wird der gewünschte Server aus der DropDown Liste gewählt und auf den Button „SyncIt“ geklickt. Vorher sollten auf dem PC alle Programme die auf die Kalender und Adressbücher zugreifen geschlossen sein. Nun werden die Daten auf dem Server ausgelesen und nach Änderungen durchsucht, je mehr Daten dies sind, um so länger dauert der Vorgang. Die Daten werden mit denen auf dem Client verglichen und anschließend synchronisiert. Abschließend gibt es dann die Erfolgsmeldung oder wenn Fehler aufgetreten sind, wird auch das vermerkt. In letzterem Fall kann man dann Config --> View Log klicken um ein detailliertes Logfile zu starten.
Fallstricke
Ein paar Probleme kann es geben, wenn man unbedarft an die Sache ran geht. Wenn sie unsere Tipps beherzigen, werden sie aber problemlos alle Daten synchronisieren können. Die Probleme entstehen vor allem wegen der unterschiedlichen Datenstruktur von Outlook und den Mozilla Produkten. Das meiste kann man wohl bei dem Punkt Kategorien falsch machen. Da die Mozilla Programme mehrere Quellen für Adressbücher und Kalender unterstützen, Outlook hingegen nicht, kann es hier zu ernsthaften Problemen kommen. Um diesem Problem entgegen zu wirken wurde eine spezielle Syntax für die Kategorien eingeführt, welche synchronisiert werden. Jeder Datensatz muss einer Kategorie mit folgender Syntax angehören, sonst wird er nicht beim synchronisieren berücksichtigt:
< Server>:<Quelle>:<Kategorie>
Diese Kategorie muss jedem Kontakt und jedem Termin im Pocket Outlook beigebracht werden. Folgendes Beispiel soll dies verdeutlichen. Ein Termin der Kategorie 'Geburtstag' aus der Quelle 'Kalender' auf dem Server 'ODIN' soll zum Client synchronisiert werden. Im Outlook auf dem Pocket PC taucht dieser Eintrag nach der Synchronisation nun unter der Kategorie ODIN:Kalender:Geburtstag auf. Wenn also diverse Einträge nicht synchronisiert werden, sollte man genau diesen Punkt überprüfen. Im Pocket Outlook nutzt man hierfür am besten die diversen Filtermöglichkeiten. Der Name der Kategorie ist übrigens optional. Jeder Datensatz darf übrigens nur einer Kategorie angehören, andere werden nicht berücksichtigt.
Ansonsten gibt es eigentlich keine Einschränkungen bei der Synchronisation. Felder die von einem der beiden Parts (Outlook, bzw. Mozilla) nicht unterstützt werden, werden ignoriert. So zum Beispiel das Feld für Geburtstage. Aber die finden ohnehin besser Platz im Kalender.
Bei den Terminen gibt es keinerlei Schwierigkeiten die ich entdecken konnte, alles wird sauber synchronisiert. Laut der Webseite gibt es aber eventuell Probleme mit wiederkehrenden Terminen. Hier haben Mozilla und Outlook verschiedene Meinungen über die Syntax. FinchSync muss hier „übersetzen“. Man sollte laut der Seite folgende Eingaben vermeiden:
Monatlich wiederkehrende Termine, mit Beginn in einem Monat der weniger Tage hat. Zum Beispiel: Jeden 31igsten im Monat, beginnend am 30.06.2006 ( Der Juni hat nur 30 Tage) Monatlich wiederkehrend mit Daten wie xxx Wochentag oder xxx Wochenende Monatlich wiederkehrend mit „dem letzten Tag jedes Monats, startend in einem Monat mit weniger als 31 Tagen Einen einzelnen Termin einer wiederkehrenden Serie löschen aber die Serie nicht zu ändern Das Löschen eines täglich wiederkehrenden Termins, der alle 2 Wochen wiederholt wird oder ähnliche Termine. Erinnerungen mit mehr als 23 Stunden. Ansonsten scheint es keine Probleme zu geben. Bei den Aufgaben sollten wiederkehrende Aufgaben vermieden werden.
Neue Versionen von Mozilla Sunbird und Lightning
Mozilla hat in den aktuellen Versionen das Format des Kalenders verändert. Standardmäßig wird nun in eine SQLite Datenbank geschrieben. FinchSync kommt aber nur mit dem herkömmlichen Format *.ics klar. Es gibt dennoch einen Weg die aktuellen Versionen der Kalenderprogramme zu verwenden. Im Kalender wird dazu ein neuer Kalender hinzugefügt, dies muss ein Remote oder Netzwerk Kalender sein. In der nächsten Dialogbox gibt man den Speicherort des Kalenders mit folgender Syntax ein
file:///c:/verzeichnis/kalender.ics
Ich verwende zusätzlich zum Mozilla Kalender das Programm Rainlendar. Dies ist ein Desktop Kalender, in der aktuellen Version 2.0..31. Rainlendar ist sowohl für Linux, als auch für Windows verfügbar, eine ideale Ergänzung also. Die Lite Version ist Freeware. Lediglich die Pro Version ist kostenpflichtig. Der Unterschied liegt darin, das die Pro Version auch mit Outlook zusammen arbeiten und den Kalender übers Netzwerk teilen kann. Als Datenquelle der Lite Version kann man obige *.ics Datei angeben und schon werden die Termine auf dem Desktop dargestellt. Sogar die Erinnerungen lassen sich einstellen. Es gibt jede Menge Skins für dieses Programm, so das man sich das Aussehen vielfältig anpassen kann.
Den Originalartikel und ein Forum dazu gibt es unter pfohl://NET