buscaROM ist ein Java-basiertes Suchinterface für ROM (Read Only Memory) Speichermedien, wie CD und DVD. Es wird als Java-Applet in HTML eingebunden. Nach der Sucheingabe wird der String mit dem Inhalt eines zuvor generierten Index verglichen. Bei diesem Index handelt es sich um eine Textdatei, in der jede Zeile einem Datensatz entspricht, der eine HTML-Datei repräsentiert. Ein Datensatz besteht aus drei Feldern: dem Dateinamen, dem Titel der HTML-Datei und einer Liste von Stichwörtern, die mit der Sucheingabe verglichen werden.
Suchbegriffe werden in das Textfeld des Applets eingegeben. Nachdem der Suchvorgang beendet ist, werden die Ergebnisse in einem neuen Fenster präsentiert. Es werden die Titel der HTML-Dokumente aufgelistet, die die Suchbegriffe enthalten. Man kann einen der Titel auswählen und dann auf den Button 'Show Documents' klicken, um sich die entsprechende Seite anzeugen zu lassen.
Indexierung
Zunächst muss ein Index generiert werden, in dem folgende Informationen zu einer Datei jeweils in einer Zeile stehen:
Dok1.html|Titel des 1. Dokuments|Inhalt des 1. Dokuments Dok2.html|Titel des 2. Dokuments|Inhalt des 2. Dokuments Dok3.html|Titel des 3. Dokuments|Inhalt des 3. Dokuments ... Dokn.html|Titel des n. Dokuments|Inhalt des n. Dokuments
Der erste Eintrag entspricht dem Namen der HTML-Datei, der zweite dem dazugehörigen Dokumenttitel und der dritte dem Inhalt. Der Inhalt sollte der extrahierte Text einer HTML-Datei sein. Es kann sich aber beispielsweise auch um eine Schlagwortliste handeln, aus der zuvor Stoppwörter herausgefiltert wurden. Da | das Trennzeichen zwischen den einzelnen Einträgen ist, darf es nicht im Text vorkommen, d.h. es muss ggf. beim Prozess der Indexierung entfernt werden.
Zur Indexierung kann das Perl-Skript indexer.pl benutzt werden.
Installation
Folgende Java-Source-Dateien (*.java-Dateien) müssen in ein Verzeichnis kopiert und dort kompiliert werden:
- ReadIndex.java
- Result.java
- SearchApplet.java
- SortResultHash.java
ramiro@host:~/buscaROM > javac SearchApplet.java
Folgende Java-Byte-Code-Dateien werden erzeugt:
- ReadIndex.class
- Result$1.class
- Result$URLChoice.class
- Result.class
- SearchApplet$1.class
- SearchApplet$OptionChoice.class
- SearchApplet.class
- SortResultHash.class
Signatur
Da das Applet eine lokale Datei liest (index.dat) und damit gegen das Sicherheitsbeschränkungen von Java-Applets verstößt, muss es signiert werden, um es nutzen zu können. Die Signatur kann beispielsweise mit den von Sun zur Verfügung gestellten Signaturwerkzeugen erfolgen.
Erzeugung eines Schlüsselpaares
Zum Erzeugen eines DSA-Schlüsselpaares der Länge 1024 mit einer Gültigkeitsdauer von 90 Tagen kann man das Programm keytool folgendermaßen aufrufen:
keytool -genkey -alias javasearch -dname \ "CN=Ramiro Gomez, OU=Sub-Org, O=Org, L=Berlin, C=de"
Danach muss man ein Passwort angeben, dass beim Signieren wieder benötigt wird.
Signierung des jar-Archivs
Um das Applet zu signieren, müssen die .class-Dateien in einem jar-Archiv archiviert werden. Dazu kann man folgendes Kommando im entsprechenden Verzeichnis ausführen:
jar cvf sig.jar *.class
Die Archiv-Datei sig.jar, die durch den letzen Schritt erzeigt wurde, wird nun mit dem Tool jarsigner signiert:
jarsigner -signedjar SignedSearch.jar sig.jar javasearch
Auf die Option -signedjar folgt der Name des signierten jar-Archivs, dass in diesem Schritt erzeugt wird. Darauf der Name des Quell-Archivs und darauf der Aliasname, der beim Erzeugen der Schlüssel angegeben wurde. Das Signieren muss mit dem zuvor angegebenen Passwort bestätigt werden.
Nutzung
Das signierte jar-Archiv muss sich in demselben Verzeichnis befinden, wie die Datei index.dat, die die Informationen der indexierten HTML-Dateien enthält und kann dann durch die Einbindung in eine oder mehrere HTML-Dateien genutzt werden.
Einbettung in HTML
Das Applet kann folgendermaßen in HTML-Code eingebunden werden:
<html> <head> <title>Search</title> </head> <body> <h1>Search</h1> <p> <OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" WIDTH="280" HEIGHT="80"> <PARAM NAME="CODE" VALUE="SearchApplet.class"> <PARAM NAME="ARCHIVE" VALUE="SignedSearch.jar"> <PARAM NAME="type" VALUE="application/x-java-applet;version=1.2"> </OBJECT> </p> </body> </html>
Ausführliche Informationen zu diesem Thema findet im Artikel: Using OBJECT, EMBED and APPLET Tags in Java Plug-in.
Todo
- Suchvorgang dokumentieren.
- Java-Klasse zur Indexierung schreiben, die eine Indexdatei im richtigen Format erzeugt.
Download
Auf die Projektdateien kann über CVS zugegriffen werden.
Post new comment