Hilfe für das Address Buch Applet

Inhalt
Nutzungsbedingungen
Warum ich dieses Adressbuch geschrieben habe?
Was kann das Adressbuch?
Was sind die Vorteile gegenüber Web-Organizern?
Was gibt es für Stolpersteine?
Ich möchte etwas mehr Hintergrund-Informationen!
Warum ist das Adressbuch bei mir langsam?
Menüs
Wie sicher sind meine Daten?
Kann ich den Quellkode verwenden?
TODO's
Wie verleihe ich dem Applet Rechte auf meinen Computer?
Kontakt

Nutzungsbedingungen
Das Addressbuch habe ich für meinen privaten Gebrauch geschrieben. Sie können es ebenfalls privat nutzen, nicht jedoch kommerziell. Den Quellkode können Sie ebenfalls für den privaten Gebrauch nutzen. Ich habe mich selbst bei Open-Source-Paketen (frei verfügbare Programm-Bausteine) bedient: xerces.jar, xalan.jar, netbeans.jar, oro.jar.



Warum ich dieses Adressbuch geschrieben habe?
  • Ich möchte meine Daten überall auf der Welt verfügbar haben.
  • Ich möchte die volle Kontrolle über meine Daten (Sicherung). Eine zeitlang habe ich Web-Organizer wie visto.com oder freenet.de benutzt. Ich hatte alle meine Daten bei visto.com bis visto.com unerwartet innerhalb weniger Tage geschlossen wurde. Was, wenn ich innerhalb der wenigen Tage im Urlaub gewesen wäre?
  • Ich möchte die Daten mit anderen Adressbüchern austauschen können (Export/Import). Wohin mit den Daten jetzt, nachdem visto.com geschlossen hat und, vor allem, wie in einen anderen Weborganizer importieren? Wenn ich die Daten dann im Web-Organizer habe, wie tausche ich dann die Daten mit meinen Adressbüchern von KMail und OutlookExpress auf einfachem Wege?
  • Außerdem möchte ich gute Suchfunktionen.
  • Ich habe eine Webseite mit ftp-Zugang, kann aber diese Seiten nur abrufen, also keine eigenen Programme auf dem Webserver laufen lassen, die dynamischen Inhalt ausliefern könnten wie z.B. JSP's oder Server-Threads.
  • Ich möchte dieses Programm an andere weitergeben, die ebenfalls nur statische Webseiten von ihrer eigenen Webseite abrufen können.



Was kann das Adressbuch?
  • Adressbuch mit privaten und beruflichen Daten, Suchfunktionen, verschiedenen Ansichten auf die Daten,
  • Notizbuch,
  • Sichern des Adressbuches und des Notizbuches in das lokale Dateisystem und Überschreiben beider auf dem Webserver mit den lokalen Versionen,
  • Importieren und Exportieren von anderen Adressbüchern,
  • Starten in einer Webseite als Applet, im Appletviewer oder als normale Applikation auf dem lokalen Computer.


Was sind die Vorteile gegenüber Web-Organizern?
  • Volle Kontrolle über die Daten des Adressbuches (Import, Export, Upload, Download). Mit diesen Daten können sie das Adressbuch auch als normales Programm auf Ihrem Computer laufen lassen und die Daten nur im Internet sichern. Oder Sie benutzen auf Ihrem Computer Ihrr Lieblingsadressbuch und spielen die Daten von diesem dann auf die Webseite, um Ihre Daten mit dem Applet auch via Internet auf anderen Computern nutzen zu können.
  • Einfaches Importieren und Exportieren von und zu anderen Adressbüchern
  • Sehr gute Durchsuchbarkeit des Adressbuches
  • Darstellung der Daten in verschiedenen Ansichten. Diese können die Ansichten leicht selbst ändern, indem Sie die XSLT-Stylesheets bearbeiten (*.xsl Dateien)



Was gibt es für Stolpersteine?
  • Sie brauchen eine eigene Webseite mit FTP-Zugang
  • Sie sollten eine schnelle Internetverbindung haben
  • Wollen Sie Upload/Download oder die Import-Funktion benutzen, müssen Sie dem Applet extra Rechte verleihen


Ich möchte mehr Hintergrund-Informationen!
Jeder Benutzer hat sein eigenes Adressbuch, das in einer XML-Datei abgespeichert ist.

Erwähnenswert vielleicht, dass im Feld "View" eine gewählte Ansicht auf ein Adressbuch dargestellt wird, z.B "kurz", "privat", etc. Dabei wird die XML-Datei (enthält alle Daten eines Adressbuches) über XSLT- Stylesheets geschickt und als HTML im "View"-Feld angezeigt.

Geänderte oder neue Daten werden über FTP auf den Host-Server geschrieben.

Mit jedem Zeichen im Feld "Search" (Suche) wird die Ansicht auf das Adressbuch aktualisiert. Es werden alle übereinstimmenden Einträge dargestellt. Gleichzeitig ändern sich auch die Einträge in der Liste "Edit". Der Benutzer kann nach verschiedenen Eigenschaften suchen, z.B. Vornamen, Nachnamen, Firmen, Geburtstmonat, usw. "All" findet eine beliebige Zeichenkette in allen Daten des Adressbuches.

Jeder Benutzer hat auch ein Notizbuch, in das er beliebig vielen unformatierten Text hineinschreiben kann. Nutzen mehrere Leute den gleichen Login-Namen, kann man das Notizbuch als "Schwarzes Brett" nutzen.

Firewalls sollten dem Applet keine Probleme bereiten. Es benutzt den "passive mode" von FTP. Das Applet braucht relativ viel Zeit zum Laden. Das liegt weder an der, Größe des Applets noch an der Größe des Adressbuches oder gar der Stylesheets. Das Applet bedient sich aus andern großen Open-Source-Packages, die eben aber ihre Zeit zum Laden (nur beim Start) brauchen.


Warum ist das Adressbuch bei mir langsam?
  • Ladezeiten: Mit einem Modem oder ISDN-Anschluß braucht das Applet relativ lange Zeit (TODO: Zeiten messen), um die verwendeten Packages zu laden (xerces.jar, xalan.jar, oro.jar, netbeans.jar). Ein ADSL-Anschluss ist empfehlenswert. Zur Beruhigung: Die Packages werden nur beim Start des Applets geladen, dann funktioniert alles sehr flott. Je nach Browser und deren Einstellung wird die Ladezeit beim späteren Gebrauch wahrscheinlich entfallen. Der Browser "merkt" sich die einmal geladenen Komponenten.  Nur beim Sichern von Daten und beim Kopieren fallen noch kurze Wartezeiten von maximal einigen Sekunden an, denn die Daten des Adressbuchs müssen über das Internet übertragen werden.
  • Suche und Transformation der Daten: Die Daten des Adressbuches werden, einmal geladen, in einem DOM (Data Object Model) gehalten. Such- und Sortierfunktionen sind somit lange nicht so schnell wie es bei Datenbanken der Fall wäre. Die Daten aus dem DOM werden anschließend für die Darstellung (in HTML) transformiert. Auch dies kostet Zeit. Diese Prozesse sind optimiert, können aber sicher noch schneller gemacht werden. 
  • Darstellung der Daten: Die gesuchten, sortierten und transformierten Daten werden in einem Textfeld dargestellt. Dieses Textfeld (JEditorPane) ist erstaunlich langsam bei der Darstellung größerer Mengen von HTML und hat den größten Anteil bei der Verzögerung. Vor allem die Dastellung "All" dauert bei vielen Datensätzen einige Zeit. Leider liegt diese Art der Verzögerung außerhalb meines Einflußbereiches. Vielleicht wird es es in späteren Java-Versionen schneller.



Menüs

Menü "Book"
  • "Open": Lädt das Addressbuch. Jeder Benutzer (User Name) hat sein eigenes Adressbuch. Füllen Sie das Formular aus. Wenn Sie keinen Benutzernamen (User Name) oder Passwort (Password) kennen , geben Sie einfach irgend etwas oder gar nichts ein. Sie werden dann als ein Default-Benutzer eingelogged.
  • "Add": Öffnet den Editier-Dialog zum Anlegen eines neuen Benutzers.
  • "Import": Importiert andere Adressbücher anderer Programme, die in einer Textdatei abgespeichert wurder. Einige Formate, wie OutlookExpress und KMail können automatisch importiert werden. Natürlich könne diese Profile wärend des Imports angepasst werden oder das Format eines belieben Adressbuches importiert werden. Achtung : Das Applet muss dazu Rechte haben. Diese Rechte hat es von Haus aus nicht. Sie müssen dem Applet erst verliehen werden.   Eine Anleitung finden Sie hier.
  • "Export": Exportiert das Adressbuch in ein Textfeld (Vorteil: Das Applet braucht keine extra Rechte. Einfach Kopiern und Einfügen des Textes) oder in eine Datei. Achtung : Das Applet muss dazu Rechte haben. Diese Rechte hat es von Haus aus nicht. Sie müssen dem Applet erst verliehen werden.   Eine Anleitung finden Sie hier.
  • "End": Schließt das Adressbuch.
Menü "Config"
  • "Views": Sie können hier mehrere Ansichten auf das Adressbuch wählen, z.B. eine knapp gehaltene Sicht auf die Einträge ("Short"),  eine Ansicht nur der privaten Daten eines Eintrags ("Private") usw.
  • "Search": Hier können Sie auswählen, wonach sie suchen wollen, beispielsweise "Name" (Vorname), "Surname (Nachname), "Company" (Firma) usw. Nach jedem Zeichen, das Sie in das Textfeld "Search" (Suche) eingeben, sucht das Programm alle Einträge, die mit diesen Zeichen beginnen. Beispiel: "Mu" findet "Musiol" und "Mucker". Bei der Suche nach dem Geburtsmonat ("Month of Birth") werden alle Einträge gefunden, die einem Monat zugeordnet sind. Dabei werden die Einträge nach dem Tag im Monat sortiert - praktisch, wenn man das Adressbuch als Geburtstags-Kalender benutzen möchte. "All" sucht nach einer Zeichenkette (z.B. "ndo") in allen Daten desAdressbuches und findes zum Beispiel "London" in einem beliebigem Feld (Name, Kommentar, E-Mail-Adresse,...)
Menü "Options"
  • "Save" --> "Behind Firewall": Bentzen Sie diese Option, wenn sich Ihr Rechner hinter einer Firewall befindet
  • "Save" --> No Firewall"
  • "Mode" --> "Binary": Übertragungs-Modus "binary" von FTP.
  • "Mode" --> "Text": Übertragungs-Modus "text" von FTP.

Menu "Tools"
  • "Notes": Hier können Sie sich Notizen machen. Diese werden für den Benutzer in einer eigenen Datei auf dem Server gespeichert.
  • "Update WAP-Address Book": Erneuert die WAP-Seiten, mit denen man dieses Adressbuch anschauen kann.
  • "Back Up" --> "Copy Address Book to Local File": Kopiert die Datei, in der das Addressbuch des Benutzers gespeichert ist in das lokale Dateisystem (Festplatte, Diskette, ...). Achtung : Das Applet muss dazu Rechte haben. Diese Rechte hat es von Haus aus nicht. Sie müssen dem Applet erst verliehen werden.  Eine Anleitung finden Sie hier.
  • "Back Up" --> "Overwrite Address Book": Überschreibt das Adressbuch des Benutzers auf dem Server mit einer Datei aus Ihrem lokalen Dateisystem (Festplatte, Diskette, ...). Achtung : Das Applet muss dazu Rechte haben. Diese Rechte hat es von Haus aus nicht. Sie müssen dem Applet erst verliehen werden.  Eine Anleitung finden Sie hier.
  • "Back Up" --> "Copy Notes to Local File": Kopiert die Datei, in der die Notizen des Benutzers gespeichert sind in das lokale Dateisystem (Festplatte, Diskette, ...). Achtung : Das Applet muss dazu Rechte haben. Diese Rechte hat es von Haus aus nicht. Sie müssen dem Applet erst verliehen werden.  Eine Anleitung finden Sie hier.
  • "Back Up" --> "Overwrite Notes": Überschreibt die Notizen des Benutzers auf dem Server mit einer Datei aus Ihrem lokalen Dateisystem (Festplatte, Diskette, ...). Achtung : Das Applet muss dazu Rechte haben. Diese Rechte hat es von Haus aus nicht. Sie müssen dem Applet erst verliehen werden.  Eine Anleitung finden Sie hier.

Menu "Help"
  • "Content Deutsch"
  • "Content English"
  • "System Info": Hier sehen Sie Information über ihr System. (Sinnvoll bei Fehlern). Wenn das Adressbuch als Applikation gestartet wird, werden Sie viel mehr Informationen erhalten, als wenn Sie das Adressbuch als Applet benutzen.


Wie sicher sind meine Daten?
Ich formuliere es einmal provokativ: Verglichen mit einer Bankanwendung ist das Adressbuch relativ unsicher.

Benutzernamen und Passwörter stehen in einer Datei, auf die mit FTP zugegriffen wird. Damit können Sie diese Datei in ein Verzeichnis legen, das durch den Webserver passwortgeschützt ist. Das  FTP-Passwort steht (schwach verschlüsselt) in einer Datei.

Die XML-Dateien (jedes Adressbuch ist in einer gespeichert) werden mit http geladen und mit ftp gesichert. Die Übertragung ist nicht verschlüsselt.

Hmm, nichts für den Sicherheitsfanatiker. Ich habe es auf diese Weise programmiert, weil ich keinerlei Rechte auf dem "host server" (Computer von "Puretec" auf dem meine Seiten im Internet liegen) habe, ausgenommen ftp eben. Wenn Sie eine sichere Lösung wollen, können Sie beispielsweise ein kleines Serverprogramm auf dem Webserver lauschen lassen. Dieses Serverprogramm bedient dann das Applet mit Daten und sichert sie auch wieder. Mit dieser Variante  können die Passwörter und alle anderen Daten beispielsweise in einer Datenbank gesichert werden oder in Dateien die kein ungewollter Besucher erreicht. Anfangs wollte ich eine solche Lösung implementieren. Die Kommunikation des Applets mit dem Serverprogramm könnte man ebenfall sicherer machen (https,..).

Aber! - Um die relevanten Daten zu bekommen muss ein eventueller Angreifer einerseits von der Existens dieses Applets wissen, andererseits die Energie und das Fachwissen aufbringen. Denken Sie daran, dass Sie wahrscheinlich auch schon einmal dem Kellner bei Ihrem Italiener oder anderen Ihre Kreditkarte gegeben haben oder Webaccounts wie hotmail.com oder web.de benutzt haben. Und absolut sicher werden ihre Daten, egal wo sie liegen, nie sein, vor allem nicht auf dem Computer.



Kann ich den Quellkode verwenden?
Das Adressbuch startet man am besten mit AddressBookStarter.java. AddressBookStarter.java kann sich in einem eigenen Fenster (JFrame) oder in einem Applet in einer Webseite (JApplet) öffnen.
Das Adressbuch kann gestartet werden als
  • eigenständige Applikation auf dem Rechner (java  com.tomwiedenhoeft.addresses.AddressBookStarter ), als
  • Applet in einer Webseite oder
  • mit dem AppletViewer von Sun Microsystems.
Es kann somit leicht debugged werden.

Der Quellkode und das Applet selbst kann für private Zwecke genutzt und weiterentwickelt werden, nicht aber für kommerzielle Zwecke.

Wenn Sie Vorschläge haben, Kommentare abgeben wollen, Fehler gefunden haben oder das Programm verbessert oder weiterentwickelt haben, lassen Sie von sich hören. Ich bin über Meinungsäußerungen dankbar.

Senden Sie Ihre Mail an: "private@tom-wiedenhoeft.de".



 
TODO's
  • Internationalisierung
  • WAP-Deployment
  • Default Knopf für den Logon "OK"
  • Besseres encoding/decoding fürFTP Passwort
  • Abschaffung des Startfensters, wenn das Adressbuch als Applikation gestartet wird


Wie verleihe ich dem Applet Rechte auf meinem Computer?
Alle Schritte sind auch in dem offiziellen Java-Tutorial von Sun Microsystems frei verfügbar nachzulesen: "http://java.sun.com/docs/books/tutorial/security1.2/tour1/index.html".
Gehen Sie wie folgt vor:
  1. Tippen Sie auf der Kommandozeile: "policytool". Dieses Programm wird gestartet.
  2. Klicken Sie auf "Add Policy". Ein neues Fenster öffnet sich.
  3. Tippen Sie in das Textfeld "code base" folgendes: "http://tom-wiedenhoeft.de/-".
  4. Klicken Sie auf den Button "Add Permission". Ein neues Fenster öffnet sich.
  5. Klicken auf den Pfeil in der linken obersten Drop-Down-Liste und wählen Sie "All Permissions" aus der Liste. Schließen Sie das Fenster mit "OK".
  6. Schließen Sie auch das Fenster, in dem Sie "Add Permission" gewählt haben mit "OK".
  7. In dem verbleibenden (ersten) Fenster gehen Sie im Menü "File" auf "Save As" und speichern Sie die Ergebnisse Ihrer Einstellungen unter einem beliebigen File unter einem beliebiegen Namen, z.B. unter "c:\applets\mypolicy".
  8. Nun kommt der zweite Teil: Sie müssen die eben festgelegte Regel auch "Ihrem Java" bekannt machen. Dazu bearbeiten Sie eine Datei namens "java.security". Diese befindet sich immer an der gleichen Stelle in Ihrer Java-Installation und heißt auch immer gleich. D.h. zur Not, wenn Sie nicht wissen, wo Ihr Java (Java-Plug-In, das Ihr Browser benutzt) auf der Festplatte liegt, können Sie diese Datei auch  auf Ihrer Festplatte suchen. Nehmen wir an Ihr Java (Plug-In, das von Ihrem Browser verwendet wird) befindet sich unter "c:\programme\jdk1.3.1" auf Ihrer Festplatte, dann finden Sie die Datei unter "c:\programme\jdk1.3.1\lib\security\java.security". Öffnen Sie diese Datei und schreiben Sie dort eine Zeile hinein. Welche Zeile? In der Datei befinden sich schon eine oder zwei Zeilen, die so oder ähnlich aussehen: "policy.url.1=file:${java.home}/lib/security/java.policy". Kopieren Sie diese Zeile und ändern Sie die Kopie in "policy.url.2=file: c:\programme\jdk1.3.1\lib\security\java.security". Sichern Sie die Datei.
  9. Jetzt sollten Sie in der Lage sein, das Adressbuch und die Notizen auf ihre Festplatte zu kopieren und mit diesen Dateien wieder das Adressbuch und die Notizen auf dem Server zu überschreiben, wenn dies nötig sein sollte.