![]() Version 2.5 |
Version 2.5
Dierk Höppner
Die neue Version der Schnittstelle zur Anbindung einer oder mehrerer allegro-C-Datenbanken an das World Wide Web wurde in einigen Punkten erweitert und ergänzt. Diese Schnittstelle bietet von der Oberfläche her nichts neues, dafür hat sich im Inneren einiges getan.
Die größte Änderung bezieht sich auf die Nutzung von avanti als Datenbankserver. Da viele darauf warten, wie man avanti für diese Zwecke einsetzen kann, habe ich zunächst die schon bestehende Schnittstelle so geändert, dass jetzt nicht mehr die Programme SRCH und QRIX zur Extraktion und Präsentation der Daten herangezogen werden, sondern es arbeitet jetzt nur einer: avanti.
Mit der jetzt vorgestellten Lösung sind aber noch lange nicht alle Möglichkeiten von avanti ausgeschöpft. Ich glaube aber dennoch, dass man einen guten Eindruck von den Einsatzmöglichkeiten des Servers bekommt. Selbstverständlich bleibt die Schnittstelle nicht auf dem hier vorgestellten Stand, sondern wird weiterentwickelt, um auch die anderen Fähigkeiten von avanti zu nutzen.
über diese Schnittstelle können Sie eine oder mehrere allegro-Datenbanken benutzerfreundlich im WWW anbieten. Der Benutzer hat dabei prinzipiell zwei Möglichkeiten der Recherche:
Die Anzeige ist natürlich über Parameterdateien voll parametrierbar.
Sie benötigen
Im Folgenden wird eine Installation beschrieben, mit der die Demo-Datenbank, die mit avanti mitgeliefert und installiert wird, im WWW oder Intranet über acwww zur Verfügung gestellt wird. Wer noch keine Erfahrung mit allegro/avanti oder dem Anbinden von Datenbanken an das WWW hat, sollte sich zunächst an das hier beschriebene Vorgehen halten und auch zunächst die beschriebenen Komponenten verwenden; man wird dann am ehesten eine erste funktionstüchtige Installation bekommen. Nachdem man die Zusammenhänge verstanden hat, kann man daran gehen, die Installation auf seine eigenen Verhältnisse umzubiegen.
In der Beschreibung gehe ich davon aus, dass Sie alles auf einem einzigen Rechner installieren. Dadurch haben Sie alle Komponenten leichter im Griff. Damit spielen Sie sozusagen WWW auf einem Rechner.
Hier werden erstmal nur die Bestandteile aufgelistet. Was bei deren Installation zu beachten ist, folgt danach.
Sie sollten nicht alle Komponennten auf einmal installieren, sondern sich bei der Installation an der folgende Liste orientieren und schrittweise vorgehen. Die Liste gibt wichtige Hinweise und beschreibt Tests, mit denen Sie die Einzelkomponenten überprüfen können. Eine ähnliche Vorgehensweise empfehle ich Ihnen auch für die spätere Anbindung Ihrer eigenen Datenbank. Beachten Sie dabei aber bitte, dass ich nicht alle Eventualitäten vorhersehen kann. Falls es bei Ihnen an einer Stelle doch nicht klappen sollte, fragen Sie jemanden, der sich mit dem entsprechenden Programm auskennt.
Dazu sage ich nicht allzu viel. Ich gehe davon aus, dass Sie über einen funktionierenden Windows-Rechner verfügen. Er ist an ein Netzwerk angeschlossen und das TCP/IP-Netzwerkprotokoll ist installiert.
Den Webserver Xitami gibt es in mehreren Varianten für Windows: Als einfaches Konsolenprogramm, als normales Windows-Programm und als NT-Service. Die beiden ersteren laufen unter allen Windows-Versionen, das letzte nur unter NT. Für den Anfang genügt es, das normale Windows-Programm zu nehmen.
Die Installation ist denkar einfach: Starten Sie einfach das heruntergeladene Programm. Es enthält ein Installationsprogramm, das alles weitere übernimmt. Folgen Sie den Anweisungen und übernehmen Sie einfach alle Vorgaben. Für das weitere Vorgehen nehme ich an, dass der Server in das Verzeichnis c:\xitami installiert wird. Es ist auch sinnvoll, den Server am Ende der Prozedur gleich zu starten. Das Installationsprogramm fragt Sie danach. Wir kommen nämlich dann wahrscheinlich gleich zum ersten Erfolgserlebnis.
Wenn die Installation erfolgreich gelaufen ist, und Xitami erfolgreich gestartet werden konnte, erscheint in der Taskleiste unten rechts das Xitami-Icon ähnlich wie es folgende Abbildung zeigt:
Hat das Xitami-Icon einen grünen Hintergrund ist der Server betriebsbereit und kann Anfragen entgegennehmen. Zeigt er 'Rot', ist er noch beschäftigt und findet wahrscheinlich keine korrekte Netzwerkinstallation vor. Kontrollieren Sie in diesem Fall zunächst Ihre Netzwerkinstallation. Möglich ist auch, dass der Port 80, auf dem er horchen möchte, durch ein anderes Programm belegt ist. Wahrscheinlicher Grund dafür: Sie arbeiten unter NT und der Internet Information Server (IIS) von Microsoft läuft und hat den Port 80 schon belegt. Sie sollten für einen erfolgreichen Test zunächst so verfahren: Deaktivieren Sie in Systemeinstellungen/Dienste den IIS und warten dann auf 'Grün' von Xitami. Wenn das nicht innerhalb einige Sekunden geschieht, stoppen Sie auch Xitami (mit der rechten Maustaste auf das Xitami-Icon klicken und 'Terminate' befehlen) und starten ihn anschließend wieder. Danach sollte er 'Grün' zeigen.
Jetzt können Sie Ihren Webbrowser starten. Im folgenden Bild sehen Sie den Anfangsbildschirm von Xitami. Tippen Sie in Ihrem Browser die im Adressfeld gezeigte Adresse ein und der Anfangsbildschirm erscheint.
Noch ein Hinweis: Sollte die Adresse 'localhost' nicht funktionieren, können Sie stattdessen auch die besondere IP-Adresse '127.0.0.1' eingeben. Damit funktioniert es auf jeden Fall. Auf jedem Rechner. Garantiert. Mit dieser IP-Adresse spricht man nämlich immer den eigenen Rechner an.
Wenn Sie den soeben installierten Webserver von einem anderen Rechner in Ihrem Netzwerk ansprechen wollen, müssen Sie die richtige IP-Adresse Ihres Rechners kennen. Die erfahren Sie aus dem Netzwerk-Applet in den Systemeinstellungen. Sollte dort eingestellt sein, dass Ihr Rechner seine IP-Adresse automatisch bezieht, fragen Sie Ihren Systemverwalter danach.
avanti finden Sie auf der allegro-CD. Mit unserem speziellen Zugriffsprogramm stellen Sie sich zunächst die Installationsdatei her. Dazu benötigen Sie Ihren Installationsschlüssel, der mit der letzten Rechnung mitgekommen ist. Das Programm, das Sie nach dem Kopiervorgang auf Ihrer Festplatte finden werden, ist ebenfalls ein Installationsprogramm. Sie starten es einfach und übernehmen wieder die vorgeschlagenen Einstellungen.
avanti wird nicht automatisch gestartet, sondern Sie müssen es über das Startmenü starten; bei der Installation wird eine Programmgruppe 'allegro-C' eingerichtet; dort finden Sie auch einen Eintrag für avanti. In der Tasleiste unten rechts erscheint nach erfolgtem Start das allegro-Icon:
Test, ob avanti richtig arbeitet: Mit avanti wird ein einfacher Client für avanti, Client-W, mit installiert. Starten Sie den Client und vergewissern Sie sich zunächst, dass die Einstellungen mit denen auf den folgenden beiden Bildern übereinstimmen:
Zum Schluß schließen Sie den Dialog und tragen im Hauptbildschirm unter 'Registersuche' im Feld 'Beginn des Registers' einfach ein 'a' ein (nächstes Bild)
Perl wird ebenfalls mittels eines Installationsprogramms installiert. Der genaue Ort der Installation ist eigentlich nebensächlich, im Folgenden setze ich aber eine Standardinstalltion nach c:\perl voraus. Sie sollten dann noch sicherstellen, dass das bin-Verzeichnis von Perl mit im Suchpfad (Umgebungsvariable PATH) erscheint. Wenn Sie dieses Verzeichnis nach einem Neustart des Rechners nicht im Suchpfad finden, müssen Sie es von Hand eintragen. Unter Windows 95 und 98 ergänzt man die PATH-Angabe in c:\autoexec.bat, unter Windows NT stellt man den Pfad im System-Applet in der Systemsteuerung ein.
Test von Perl und avanti: Im Verzeichnis avanti-W\client gibt es ein minimales Perl-Programm, mit dem man das Zusammenspiel von Perl und avanti testen kann. Es heißt tcp-ip.pl und zeigt beispielhaft, wie man aus einem Perl-Programm heraus mit avanti 'spricht'. (Es eignet sich übrigens sehr gut zum Testen selbst entwickelter avanti-Jobs.) Zum Testen öffnen sie eine MS-DOS-Eingabeaufforderung und wechseln nötigenfalls in das Verzeichnis. Den Aufruf des Programms und Ergebnis zeigt das folgende Bild:
Das Ergebnis muss sehr schnell kommen. Sollte es auf sich warten lassen oder gar nicht erscheinen, stimmt entweder Ihre avanti-Installation nicht, oder Perl ist nicht korrekt installiert.
Die meisten Webserver stellen bei einer Standardinstallation mehrere Verzeichnisse zur Verfügung, in denen einmal pogrammeigene Informationen zu finden sind, wo aber auch Benutzerdaten untergebracht werden. Xitami ist da keine Ausnahme. Die Verzeichnisse befinden sich unterhalb des Installationsverzeichnisses von Xitami, also in unserem Fall unterhalb von c:\xitami. Zwei sind dabei für uns besonders interessant:
In beide Verzeichnise gehören Teile der acwww-Schnittstelle.
Im Verzeichnis avanti-w/acwww finden Sie nach der Installation von avanti das Programm acwww25.exe, ein sich selbst extrahierendes Archiv, und acwww25.htm, diese Dokumentation. Verfahren Sie jetzt wie folgt:
c:\xitami | +-- cgi-bin | | | +------ acwww25 | | | +-- lib | +-- opac | +-- texts | +-- webpages | +------ acwww25 | | | +-- opac | +------ images
Das war's. Wenn Webserver und avanti laufen können Sie Ihren Browser starten und diese Adresse eingeben oder hier klicken:
http://127.0.0.1/cgi-bin/acwww25/maske.pl?db=avdemo
Es sollte dann dieses Bild erscheinen:
Damit ist schon mal die Demo-Datenbank im Web zu finden und damit die Hauptarbeit getan. Was noch zu tun bleibt, ist die eigene Datenbank anzubinden.
Am einfachsten ist es, wenn Ihre Datenbank auch mit dem Standardschema aufgebaut ist. In der folgenden Beschreibung wird davon ausgegangen, dass Ihre Datenbank auf dem Braunschweiger Standardschema beruht. Wenn Ihre Datenbank auf einem anderen Schema beruht, müssen Sie sich zusätzlich mit den Hinweisen zur Parametrierung beschäftigen. Jetzt erstmal die Anleitung für die einfache Version:
Ihre Datenbank wird über das Netz und auch von avanti über einen
symbolischen Namen angesprochen. Im Prinzip ist man da frei, nur soll er
aus nur einem Wort bestehen und kurz sein. Wir wählen
katalog
Nächster Schritt ist, Ihre Datenbank bei avanti bekannt zu machen. Klicken Sie dazu auf das avanti-Icon und evtl. nochmal in der Taskleiste auf das Programmsymbol um den avanti-Bildschirm zur Anzeige zu bringen. Im Dialog unter 'Administration/Settings...' stellen Sie die neue Datenbank ein (das Passwort zum Dialog ist bei einer Neuinstallation von avanti immer allegro):
Klicken Sie auf 'Save' und verlassen Sie den Dialog durch Klick auf 'OK'. Damit 'kennt' avanti Ihre Datenbank. Das dem so ist, können Sie mit Hilfe des Client-W-Programms überprüfen: Tragen Sie einfach im Menü 'Optionen' die neue Datenbank ein und machen Sie eine Testrecherche nach einträgen, von denen Sie sicher sind, dass sie nicht in der Demodatenbank vorhanden sein können. Wenn das Ergebnis korrekt ist, ist dieser Punkt erledigt.
Damit bei einer Recherche auch etwas zu sehen ist, benötigen Sie für Ihre Datenbank noch einige spezielle Parameterdateien. Sie finden Sie im Verzeichnis der /cgi-bin/acwww25/param. Es sind dies:
Diese Dateien können Sie zunächt unverändert übernehmen.
Was avanti weiß, wissen die Programme der WWW-Schnittstelle noch lange nicht. Um die neue Datenbank über das Netz ansprechen zu können, müssen die Scripte der Schnittstelle diese Datenbank ebenfalls kennen. Dazu sind Änderungen in zwei Dateien notwendig.
In der Datei c:\perl\lib\acwww.pl muss eine Tabelle ergänzt
werden. Sie steckt in der Variablen %dbscripte. Es handelt
sich dabei um eine sogenannte Hash-Tabelle. Jeder Eintrag besteht aus
einem Schlüssel-Wert-Paar. Tragen Sie die Datenbank katalog
wie unten angegeben ein:
# relativer Pfad der datenbankspezifischen Scripte und # Parameterdateien. Voreingestellt ist, dass es unterhalb des Verzeichnisses, # in dem die Scripte liegen, jeweils pro Datenbank ein Vezeichnis mit den # spezifischen Scripten und Parameterdateien gibt. # Datenbankkuerzel rel. Pfad %dbscripte = ( "avdemo", "opac", "opac", "opac", "katalog", "kat", );Wichtig ist, dass jeder Eintrag in Anführungszeichen eingeschlossen ist, und die Elemente durch Kommata voneinander getrennt sind. In der ersten Spalte der Tabelle sind die symbolischen Namen der Datenbanken angegeben, die zweite enthält den Namen eines Verzeichnisses. Dieses Verzeichnis muss im nächsten Schritt angelegt werden. Jedoch speichern Sie zunächst die Datei.
Zu jeder Datenbank muss es eine Datei namens dbinfo.pl geben. Sie enthält spezielle Einstellungen zu Überschriften, verwendeten Parameterdateien und anderes. Der Name dieser Datei ist immer derselbe, deshalb muss es bei mehreren Datenbanken für jede Datenbank ein Verzeichnis geben, wo die dbinfo.pl zu finden ist. Diese Verzeichnisse müssen unterhalb von c:\xitami\cgi-bin\acwww25 angelegt werden. Mit der Eintragung in %dbscripte für Ihre neue Datenbank haben Sie den Namen dieses Verzeichnisses schon festgelegt. Legen Sie also unterhalb von c:\xitami\cgi-bin\acwww25 das Verzeichnis kat an. Kopieren Sie dann zunächst nur die dbinfo.pl aus c:\xitami\cgi-bin\acwww25\opac in dieses neue Verzeichnis.
Damit steht Ihre Datenbank schon im Web zur Verfügung! Machen Sie einen Test mit
http://localhost/cgi-bin/acwww25/maske.pl?db=katalogSie werden beim Erscheinen der Suchmaske zunächst dasselbe Bild wie beim Test der Demo-Datenbank sehen. Das liegt daran, dass die Überschriften und der Datenbankname und andere Dinge noch nicht für Ihre Datenbank eingerichtet sind. Aber recherchieren Sie mal nach einem Titel, der garantiert nur in Ihrer Datenbank sein kann. Sie werden ihn finden.
Was jetzt kommt, sind noch Schönheitsarbeiten. Dazu müssen Sie die Datei c:\xitami\cgi-bin\acwww25\kat\dbinfo.pl mit einem Editor bearbeiten und an geeigneter Stelle Ihre Werte einsetzen. Was genau wie einzutragen ist, steht in den Kommentaren in der dbinfo.pl.
Der vorangegangene Abschnitt erläuterte ein einfaches Verfahren, mit dem man eine avanti-Datenbank auf einem Windows-Rechner relativ schnell ins Netz stellen kann. Hier werden jetzt die Zusammenhänge etwas ausführlicher erläutert, so dass man mit diesen Informationen auch andere Konstellationen zusammenstellen kann. Das nächste Bild zeigt die Anbindung einer allegro-Datenbank an das WWW schematisch im Überblick:
Der Browser des Benutzers verbindet sich über das Netz mit Ihrem Webserver und fordert eine Informationsseite an. Da der Benutzer in einer Datenbank recherchieren möchte, kann es keine fertige, schon bereit stehende Datei geben, sondern die von ihm gewünschten Informationen müssen erst zusammenstellt und dann als dynamisch erzeugte HTML-Seite präsentiert werden. Anhand der Konstruktion der URL, mit der die Informationen angefordert werden, kann der Webserver erkennen, dass er zunächst ein Programm starten muß, bevor er ein Ergebnis zurück liefert.
Bisher gibt es leider keinen Webserver, der etwas vom Umgang mit einer avanti-Datenbank versteht. Daher muss es einen Vermittler zwischen Webserver und allegro geben. Das sind die acwww-Programme dieser Schnittstelle. Der Webserver verfügt über eine sogenannte CGI-Schnittstelle (Common Gateway Interface), über die er beliebige Programme starten kann, denen er auf definierte Art und Weise Optionen übergeben kann, und über die er das Ergebnis der Programme empfängt. Dieses Ergebnis schickt er dann an den Browser zurück. Die Programme der acwww-Schnittstelle 'wissen' ihrerseits, wie sie ihre Optionen vom Webserver bekommen, wie sie sie in eine Datenbankrecherche umsetzen, und wie sie das Ergebnis der Recherche im HTML-Format dem Webserver wieder übergeben.
Die acwww-Programme könnten so konstruiert sein, dass sie direkt mit einer allegro-Datenbank umgehen könnten. Dazu wäre es notwendig, dass die Programme direkten Zugriff auf die Daten hätten. Das hieße, die Datenbank müßte entweder auf demselben Rechner liegen wie die acwww-Programme, oder der Rechner müsste über ein Netzwerk direkten Zugriff auf die Datenbank haben. Diese Lösung wäre aber recht starr. Wir sind einen anderen Weg gegangen: Zusätzlich zu den acwww-Programmen kommt der avanti-Server zum Einsatz. avanti ist ein universell einsetzbares Programm, das programmgesteuert, also ohne dass ein Mensch es direkt bedient, alles notwendige mit einer allegro-Datenbank machen kann. Zudem kann er seine Aufträge über das Internet empfangen und die Ergebnisse auch über das Internet wieder abliefern.
Die Kombination aus Webserver, acwww-Progammen und avanti erlaubt somit sehr flexible Lösungen bei der Anbindung einer allegro-Datenbank ans WWW: Im Schema oben sehen Sie zwei in rot und blau markiert Bereiche. Diese Bereiche sind jeweils als logische Einheit zu betrachten. Der Ausdruck 'logische Einheit' suggeriert schon, dass das ganze System nicht unbedingt eine physikalische Einheit sein muss. So sind beim Aufbau folgende Kombinationen bei der Anordnung der Programme denkbar:
Ich habe bewußt nicht erwähnt, dass bestimmte Komponenten auf bestimmten Rechnerplattformen installiert sein müssen, denn auch auf diesem Gebiet ist man frei. So hat die UB Braunschweig den Webserver und die acwww-Programme auf einer SUN installiert, und avanti und die Datenbanken auf einer anderen. Es gibt bei uns aber auch einige Datenbanken für bestimmte interne Aufgaben, wo avanti auf einem NT-Server läuft und die Datenbanken noch in unserem lokalen Novell-Netz liegen. Auch damit lässt sich arbeiten.
So wie es viele Wege nach Rom gibt, so gibt es nicht die Art, eine allegro-Datenbank an Windows anzubinden. Durch geschicktes Verknüpfen der beteiligten Komponenten kann man zu sehr flexibel einsetzbaren Lösungen kommen. Sie sind nicht auf den Einsatz eines bestimmten Rechners mit einer bestimmten Ausbaustufe und bestimmten Programmen festgelegt. Es muss beispielsweise nicht unbedingt eine UNIX-Maschine zum Einsatz kommen. Verglichen mit anderen Systemen ist allegro ein relatives Leichtgewicht und man kommt meistens mit den schon vorhandenen Rechnern sehr weit.
Ich beschreibe hier die grundsätzlichen Dinge, die bei der Installation der Einzelkomponenten zu beachten sind. Die Zusammenhänge und eine Beispielinstallation sind weiter oben beschrieben worden. Sie finden hier allerdings auch keine genaue Schritt-für-Schritt-Anleitung für jede Komponente, denn dafür sind die einsetzbaren Programmdistributionen zu unterschiedlich. Am ausführlichsten erfahren Sie etwas über avanti und die Schnittstellen-Programme.
Unter Windows wird avanti mit einem Setup-Programm installiert.
Zunächst müssen Sie das avanti-Installationsprogramm auf ihre Festplatte
von CD-kopieren. Das geht nicht direkt, sondern wie bei den anderen
allegro-Programmen auch über unser spezielles Zugriffsprogramm auf der CD
(es erscheint meistens automatisch, sowie die CD eingelegt wird).
Klicken Sie auf den Knopf , um das
spezielle Kopierprogramm zu starten. Wählen Sie dort den avanti-Server
aus, wie das folgende Bild zeigt:
Im Schlüsselfeld tragen Sie Ihren Registrierungsschlüssel ein, der mit der letzten Rechnung mitgekommen ist.
Alternativ können Sie sich das Setup-Programm auch von unserem ftp-Server (Adresse: avanti.biblio.etc.tu-bs.de) herunterladen. Benutzen Sie dazu am besten ein spezielles FTP-Programm, weil der Zugriff auf diese Datei passwortgeschützt ist.
Kopieren Sie das Programm in ein temporäres Verzeichnis und starten Sie es einfach. Der Rest läuft automatisch: Man muss sich nur entscheiden, wo avanti liegen soll. Es muss nicht im allgemeinen allegro-Programmverzeichnis installiert werden. Sie können ein anderes Verzeichnis wählen.
Wo die anzubindenden Datenbanken genau liegen, spielt keine Rolle. Sie können auf derselben Platte wie avanti liegen oder auf einer anderen Platte desselben Rechners oder sogar auf einem anderen Rechner im lokalen Netz. Im allgemeinen können sie dort bleiben, wo sie schon sind.
Zur Hardware ist zu sagen: Je mehr RAM desto besser und je mehr MHz desto besser. Bedenken Sie bitte, dass falls alles auf einem Rechner installiert ist, der Rechner bei einer Datenbankrecherche mehrere Programme fast gleichzeitig ausführen muss. Perl und avanti benötigen recht viel Speicher.
Für einen stabilen Serverbetrieb empfehlen wir den Einsatz von Windows-NT, zumal Sie dann auch die NT-Service-Version von avanti einsetzen können. In dem Fall ist es nämlich nicht notwendig, dass ein Benutzer auf dem Rechner eingeloggt ist, um avanti zu starten. Bei Einsatz von Windows 95 oder 98 ist es notwendig, dass ein Benutzer eingeloggt ist.
Unter UNIX ist mehr Handarbeit zu leisten. Die UNIX-Versionen von avanti gibt es nur von unserem FTP-Server. Der Zugang ist passwortgeschützt. Das aktuelle Passwort und den Usernamen entnehmen Sie bitte Ihrer letzten Rechnung.
Die genaue Installationsanleitung finden Sie in einer Textdatei auf dem FTP-Server. Prinzipiell gibt es kein vorgeschriebenes Verzeichnis für die Installation. Richten Sie sich da nach Ihren Vorgaben oder denen des Systemverwalters. Wenn das Programm einmal eingerichtet ist, braucht eigentlich niemand mehr Schreibrechte auf dem Programmverzeichnis. Die Datenbanken hingegen sollten in einem Verzeichnis liegen, wo diejenigen auch Schreibrechte haben, die die Datenbanken erneuern. Aber auch das Nutzerkonto, unter dem avanti läuft, sollte dort eventuell Schreibrechte haben, damit avanti auch Aufträge mit schreibenden Zugriff auf eine Datenbank erledigen kann.
Die Datenbanken sollten auf einer lokalen Festplatte liegen. Systemübergreifende Anbindung über NFS ginge auch. Ob so eine Anbindung praktikabel ist, muss ein Test erweisen. Meistens ist es aber so, dass die Datenbanken nicht auf dem UNIX-System gepflegt werden, sondern auf einem DOS- oder Windows-System. Um die Datenbanken auf der UNIX-Maschine dann aufzufrischen gibt es mehrere Wege:
Je nach Geschmack. Die entsprechende Distribution gibt in den div.
readmes gute Hinweise. Eingebürgert hat sich unter UNIX die Installation
nach /usr/local/bin und unter DOS/Windows c:\perl. Darauf
kommt es aber nicht so genau an. Wichtig nur, dass unter Windows Perl im
Suchpfad aufgenommen wird. Unter Win95/NT erzeugt das
Installationsscript die notwendigen Registry-Einträge selbst. Eventuell
müssen Sie unter Windows noch die Verknüpfung für die Dateiendung
.pl
mit dem Perl-Interpreter einrichten. Wichtig ist nur,
dass ein Perl-Programm von überall her aufrufbar ist.
Die allegro-W3-Schnittstelle besteht aus einigen Programmen in Perl, einigen Textdateien in HTML und einigen Parameterdateien. Für eine Beispieldatenbank der Standardkonfiguration sind die notwendigen Parameter mitgeliefert. Die einzelnen Komponenten werden im nächsten Abschnitt beschrieben. Wer die Schnittstelle für seine eigenen Bedürfnisse anpassen will, muss sich den Abschnitt genauer durchlesen. Hier nur einige grundsätzliche Bemerkungen.
Wenn Sie avanti installiert haben finden Sie im Installationsverzeichnis auch ein Verzeichnis acwww. Darin befindet sich ein sich selbst extrahierendes Archiv acwww25.exe. Starten Sie das Programm und es entpackt alle notwendigen Dateien der WWW-Schnittstelle in zwei Verzeichnissen. Beide Verzeichnisse enthalten wiederum Verzeichnisse. Diese Struktur ist für das Funktionieren der Schnittstelle wichtig. Die Dateien liegen aber noch nicht am richtigen Platz. Verfahren Sie mit der Installation wie in der oben beschriebenen Beispielinstallation. Nur, wo dort konkrete Pfade genannt werden, müssen Sie natürlich Ihre Verhältnisse berücksichtigen.
Genau wie unter Windows finden Sie im Installationsverzeichnis von avanti ein Verzeichnis acwww. Aber in dem Verzeichnis befindet sich nicht ein Archiv, sondern die Dateien selbst in einer Verzeichnisstruktur, wie sie auf unserer SUN besteht. Unser Webserver ist in home/ns-home installiert. Das wird bei Ihnen anders aussehen. Sie sollten aber die Verzeichnisstruktur, die unterhalb von ns-home kommt, übernehmen. Das Verzeichnis cgi-bin gibt es eigentlich unter jedem Webserver, das Verzeichnis docs, in dem die Dokumente liegen, heißt bei Ihnen wahrscheinlich anders. Mit docs meine ich das sogenannte Document-Root-Verzeichnis des Webservers.
Beachten Sie bitte: Alle Hauptprogramme
(acindex.pl, allegro.pl, maske.pl und
regsrch.pl) müssen auf executable gesetzt werden.
In allen Hauptprogrammen muss die erste Zeile
den korrekten Aufruf von Perl enthalten! Voreingestellt ist
#!/usr/local/bin/perl
. Wenn Perl auf Ihrem System in einem
anderen Verzeichnis installiert ist, müssen Sie den Aufruf entsprechend
anpassen.
Die Schnittstelle besteht aus vielen Dateien, die im Folgenden näher erläutert werden sollen. Bevor wir aber in die Einzelheiten abtauchen, etwas zur grundsätzlichen Arbeitsweise der Programme.
Jedes Teilprogramm fängt zunächst ähnlich an:
&Init
(in
acwww25.pl). Es werden einige Voreinstellungen
vorgenommen und die Verbindung zum avanti-Server hergestellt. Die eigentliche Arbeit sieht dann meistens so aus: Zuerst wird der Anfang der Ergebnisseite aus texts/scriptname.kpf ausgeben. Achten Sie darauf, dass hier der Anfang einer HTML-Seite korrekt eingeleitet wird, sonst sieht man im Browser u.U. nichts.
Dann wird der Auftrag für den avanti-Server zusammengestellt.Der Auftrag wird an den Server übergeben und das Script wartet geduldig, bis die Antwort zurückgegeben wird.
Das Ergebnis wird ausgewertet und präsentiert.
Zuletzt wird die Datei texts/scriptname.end ausgegeben. Sie
enhtält den Schluß des HTML-Dokumentes. Hier kann man eintragen, was man
am Ende der Seite erscheinen lassen will. Wichtig sind die
abschließenden </body>
- und
</html>
-Tags.
Sie werden in .../cgi-bin/acwww25 und darunter diese Dateien finden:
acindex.pl | Script zum Erzeugen eines Registerausschnittes. Die Registereinträge sind 'verlinkt', d.h. anklickbar. Entweder löst man mit einem Mausklick eine Titelanzeige oder bei einem Verweis eine weitere Registerproduktion aus. Das Register kann erweitert werden, d. h. zu jedem Registereintag können die Kurztitel angezeigt werden. |
acindex.net | Alternative zu acindex.pl. Hauptunterschied ist, dass der Zugriff auf die Kurztitel für das erweiterte Register nicht direkt erfolgt, sondern über avanti-Jobs geregelt wird. Dieses Programm müssen Sie einsetzen, wenn avanti auf einer anderen Maschine als diese Programme eingesetzt wird. Sie haben dann nämlich keine Möglichkeit, direkt auf die Kurztiteldatei zugreifen zu können! Um dieses Programm einsetzen zu können, müssen Sie es in acindex.pl umbenennen. |
allegro.pl | verarbeitet die Suchanfrage mit logischen Kombinationen und erzeugt aus der Ergebnismenge eine Kurztitelanzeige, aus der heraus dann die gewünschten Titel zur Anzeige gebracht werden können. Übersteigt die Ergebnismenge die Anzahl der anzuzeigenden Zeilen, gibt es eine Blätter-Funktion. |
maske.pl | erzeugt die Suchmasken für die Datenbanken. Dies ist der eigentliche Einstieg für die Recherche einer Datenbank. Die Verwendung diese Programms als Einstieg ist nicht zwingend vorgeschrieben. Es sind nur Besonderheiten in den anderen Programmen zu beachten. |
regsrch.pl | Das Programm zur Erzeugung der Titelanzeige. |
acwww25/texts | Verzeichnis, in dem sich Dateien mit HTML-Dateifragmenten
finden. Für jedes Script zwei. '.kpf ' enthält den
Anfang eines HTML-Dokumentes, '.end ' das Ende. Jedes
Script gibt am Anfang seiner Ausgabe das .kpf -Fragment
aus, dann den eigentlichen Inhalt und zum Schluß das
.end -Fragment. Sinn dieser Konstruktion: Sie können das
generelle Aussehen der produzierten HTML-Seiten einfacher
beeinflussen. Um Änderungen anzubringen, sind undbedingt
HTML-Kenntnisse notwendig. |
acwww25/lib | enthält die Dateien acwww25.pl und cgi-lib.pl. Sie gehören unbedingt in das Library-Verzeichnis von Perl! Für Windows ist das wahrscheinlich c:\perl5\lib und unter UNIX oft /usr/lib/perl5. Der genaue Ort hängt aber von Ihrer Perl-Installation ab! |
acwww25/opac | Ort der Konfigurationsdatei dbinfo.pl für die Datenbank mit der Kennung 'opac' und 'avdemo'. Mehr dazu weiter unten. |
Es gibt notwendige Anpassungen, die Sie in jedem Fall vornehmen müssen und solche, die nicht unbedingt notwendig sind. So werden Sie wahrscheinlich nicht damit zufrieden sein, wenn Ihr OPAC immer unter der Braunschweiger Überschrift zu recherchieren ist. Dann wollen Sie u.U. noch Anpassungen in den Parameterdateien für die Datensatzanzeige vornehmen. Nicht unbedingt notwendig sind Anpassungen, die das gesamte Erscheinungsbild der erzeugten Seiten betreffen. Wenn Sie das aber vorhaben, müssen Sie sich etwas mit Perl vertraut machen, da das Layout der Seiten im Programmcode enthalten ist.
In den Hauptprogrammen acindex.pl, allegro.pl, maske.pl und regsrch.pl sind zunächst mal keine Anpassungen notwendig -- es sei denn, Sie setzen Sie unter UNIX ein. Dann müssen Sie zumindest den Programaufruf in der ersten Zeile jedes der Hauptprogramme überprüfen. Weiter oben ist beschrieben, was zu tun ist.
Hingegen müssen Sie in den Dateien acwww25.pl im Perl-Library-Verzeichnis und in jeder dbinfo.pl einer anzubindenden Datenbank Änderungen vornehmen.
Die Datei acwww25.pl enthält die grundlegenden Einstellungen, die in allen Programmen der Schnittstelle benötigt werden. Außerdem finden Sie hier noch einige wichtige Unterprogramme. Anpassungen sind i. a. nur in den globalen Variablen am Anfang der Datei notwendig. Die Unterprogramme brauchen eingentlich nicht geändert zu werden. Im folgenden erläutere ich die Variablen im Einzelnen. Die Reihenfolge der Beschreibungen stimmt mit der in der Datei acwww25.pl überein und ist ganz bestimmt kein Indiz dafür, wie wichtig die jeweilige Einstellung ist.
Es wurde schon weiter oben erwähnt, dass es nicht notwendig ist, die Programme der Schnittstelle und avanti auf ein und derselben Maschine laufen zu lassen. Daher müssen die Programme natürlich wissen, wo sie avanti finden. Mit diesen beiden Variablen gibt man die Adresse der Maschine an, auf der avanti läuft:
"198.20.1.3"
oder einen symbolischen Namen wie z.B.
"mein_server.meine_domain.de"
angeben. Wenn avanti
auf derselben Maschine laufen sollen wie die
Schnittstellenprogramme muss als Adresse entweder
"localhost"
oder "127.0.0.1"
eingetragen sein.Voreinstellung:
$AVANTI_PORT = 4949; $AVANTI_HOST = "localhost";
An einigen Stellen setzen die Programme Links in den erzeugten HTML-Seiten auf andere Programme der Schnittstelle. Diese Links müssen einen Pfad enthalten. Welcher Pfad dort eingesetzt wird, bestimmt diese Variable. Sie sollte in HTML-Notation auf das CGI-Verzeichnis dieser Schnittstelle verweisen.
Achtung: Hier darf nicht der absolute wirkliche Pfad angegeben werden. Erstens würden die Links in den HTML-Seiten damit nicht funktionieren und zweitens wäre dies ein Sicherheitsloch, denn es offenbart etwas über die Struktur des Webservers.
Voreinstellung:
$HTMLScriptPfad = "/cgi-bin/acwww25";
Hier muss der einzig wahre, real existierende Pfad der Schnittstellenprogramme eingestellt werden. Jedes Programm wechselt am Anfang zu Sicherheit in dieses Verzeichnis. Denn abhängig von Einstellungen im Server, werden die Programme evtl. aus einem anderen Verzeichnis heraus gestartet. Für das Einlesen der datenbankeigenen dbinfo.pl muss das Script aber das eigene Verzeichnis als Arbeitsverzeichnis haben. Wenn sie aus einem anderen Verzeichnis gestartet würden, könnten sie dbinfo.pl nicht finden. Voreinstellung:
$AllegroW3CGIPfad = "c:/xitami/cgi-bin/acwww25";
Dies ist die wirklich wichtige Variable, die immer dann erweitert werden muss, wenn Sie eine neue Datenbank anbinden wollen. Es handelt sich hierbei um ein sogenanntes Hash-Array, auch assoziatives Array oder dictonary genannt. Die Einträge bestehen immer aus einem Schlüssel-Werte-Paar. Der Schlüssel ist der symbolische Name der Datenbank (für die WWW-Schnittstelle, aber auch für avanti), und der Wert ist das Verzeichnis, wo die Programme die zur Datenbank gehörige dbinfo.pl finden können. Die Angabe muss relativ zum Verzeichnis cgi-bin/acwww25 sein. Meistens wird das Verzeichnis genauso genannt wie die Datenbank. Voreingestellt ist:
%dbscripte = ( "avdemo", "opac", "opac", "opac", );
Achten sie bitte genau auf die korrekte Syntax: Sowohl Schlüssel als auch Wert sind in Anführungszeichen einzuschließen, und jedes Element wird mit Komma abgeschlossen!
Die Werte in dieser Variablen werden Sie wahrscheinlich so schnell wie möglich ändern wollen. %Organisation ist auch ein dictionary, enthält aber nur zwei Einträge: Den Namen der Bibliothek in einer Kurz- und in einer Langform. Beide sind in HTML-Schreibweise anzugeben.
Voreinstellung:
# Namen der anbietenden Organisation in Kurzform und Langform %Organisation = ( "Kurzform", "UB Braunschweig", "Langform", "Universitätsbibliothek Braunschweig", );
Diese Datei enthält Einstellungen speziell für eine Datenbank. Damit sollte deutlich sein, dass in dieser Datei so ziemlich alles angepasst werden muss. Für die Einstellungen in dieser Datei gibt es prinzipiell keine Voreinstellungen. Ich erkläre die einzelnen Elemente daher am Beispiel der mitgelieferten dbinfo.pl für die Demo-Datenbank. Sie finden sie im Verzeichnis .../cgi-bin/acwww25/opac.
Diese Variable spielt keine Rolle mehr. Der Wert wird nicht mehr in den Programmen benötigt.
Tragen Sie hier den vollständigen Pfad zu Ihrer Datenbank ein. Er wird von acindex.pl für den Zugriff auf die Kurztiteldatei benötigt. Beachten Sie, dass unter Windows die Pfadtrenner '\' doppelt angegeben werden müssen.
Falls Sie jedoch acindex.net einsetzen, spielt diese Variable keine Rolle mehr, da der Zugriff auf die Kurztitel dort über avanti-Aufträge geregelt wird.
Vorgabe:
$DBPfad="c:\\avanti-w\\avdemo";
Tragen Sie hier den wirklichen Namen Ihrer Datenbank (= Vorname der benutzten Indexparameterdatei) ein. Er wird ebenfalls von acindex.pl für den Zugriff auf die Kurztiteldatei benötigt.
Falls Sie jedoch acindex.net einsetzen, spielt diese Variable keine Rolle mehr, da der Zugriff auf die Kurztitel dort über avanti-Aufträge geregelt wird.
Vorgabe (Name der Demodatenbank avdemo):
$DBName="cat";
Jeder avanti-Auftrag muss mit Nutzernamen und Passwort gekennzeichnet werden. Für jede Datenbank, die unter Windows bei avanti angemeldet wird, gibt es einen voreingestellten Benutzer opac mit dem Passwort OPAC. Ihm ist nur der lesende Zugriff auf die Datenbank erlaubt. Für unsere Zwecke genügt das ebenfalls. Deshalb die Voreinstellung:
$user="opac"; # Nutzername $passwd="opac"; # Password
Die Zahl der möglichen Ausgabeformate ist nur durch die Zahl der bereitgestellten Parameterdateien begrenzt. Jedoch muss es mindestens eine Parameterdatei geben. Bei den Angaben zu den Parameterdateien muss man sich an bestimmte Regeln halten:
DEFAULT
. Alle weiteren Schlüssel sollen in
Kleinbuchstaben geschrieben sein. Sie können aber beliebig gewählt
werden. Aus diesen Angaben erzeugt dann regsrch.pl ggf. eine Auswahl für andere Anzeigformate.
Vorgabe:
%Parameterdateien = ( 'DEFAULT', 'Standardanzeige|d-html.apr', 'allegro', 'allegro-Internformat (a.cfg)|e-1.apr', );
Wenn das Suchergebnis aus mehreren Datensätzen besteht, sollte sie für die Anzeige nach einem sinnvollen Kriterium sortiert sein. Prinzipiell gibt es dafür zwei Möglichkeiten:
$SortChoice="kurztitel";
) und$SortChoice="sortierfile";
)Man kann für eine Datenbank nur eine von beiden Methoden benutzen.
Die erste Möglichkeit ist in der Raktionszeit schneller und damit generell zu empfehlen. Sie muss sogar eingesetzt werden, wenn Schnittstellenprogramme und avanti nicht auf derselben Maschine laufen. Wenn die Kurztitelzeile geschickt aufgebaut ist, kann man schon sehr viele Sortierungen anbieten. So gibt es bei der Demodatenbank, die ja auf dem Standardschema beruht, die Möglichkeiten der Sortierung nach
Die Sortierung lässt sich jeweils auf- oder absteigend einstellen. Das Zusammenstellen der auszugebenden Titel, Sortieren und Erzeugen der Ausgabe kann avanti in einem Auftrag erledigen.
Die zweite Möglichkeit bietet u.U. mehr Flexibiblität bei der Sortierung, ist aber komplizierter einzurichten. Sie dauert in der Ausführung länger, weil zwei avanti-Aufträge notwendig sind, und eine Zwischendatei geschrieben werden muss. Zudem funktioniert sie nur, wenn avanti und Schnittstellenprogramme auf demselben Rechner arbeiten oder auf dasselbe Verzeichnis zugreifen können.
Zunächst müssen Sie die notwendigen Sortierparameterdateien erstellen. Das Ergebnis der Ausgabe mit so einer Datei muss die Datensätze in einem Format liefern, dass sie sortiert werden können. Dieses Format ist dasselbe, was bei der Standardlistenproduktion eingesetzt wird. Nähere Informationen dazu finden Sie im Systemhandbuch unter dem Thema Listenproduktion und am Ende des Kapitels über die Parametrierung. Die erzeugten Daten werden vom Programm regsrch.pl sortiert und müssen dann in eine Datei geschrieben werden, auf die avanti lesend zugreifen kann. Insbesondere unter UNIX muss bei dieser Methode gewährleistet sein, dass zum einen regsrch.pl unter einem Nutzerkonto läuft, das unterhalb von .../cgi-bin/acwww25Schreibrechte hat, weil dort nämlich die Zwischendateien angelegt werden. Zum anderen muß gesichert sein, dass avanti diese Dateien auch lesen darf. In einem zweiten Auftrag liest avanti dann die sortierten Daten ein und gibt das für die Ausgabe formatierte Ergebnis an regsrch.pl zurück.
Nicht nur von der Methodik her ist diese Variante langsamer, sondern sie erfordert auch mehr Programmieraufwand.
$SortChoice="kurztitel"; if($SortChoice eq "kurztitel") { %Sortierung = ( 'DEFAULT', 'nach Erscheinungsjahr (absteigend)|d 58', 'erschjahr', 'nach Erscheinungsjahr (aufsteigend)|a 58', 'verfauf', 'nach Verfasser (aufsteigend)|a 45', 'verfab', 'nach Verfasser (absteigend)|d 45', 'titelauf', 'nach Titel (aufsteigend)|a 1', 'titelab', 'nach Titel (absteigend)|d 1', 'znosort', 'keine Sortierung|a -1', ); } else{ %Sortierung = ( 'DEFAULT', 'nach Verfasser / Jahr|s-verfj.apr', 'erschjahr', 'nach Erscheinungsjahr|s-ejahr.apr', 'verftitel', 'nach Verfasser / Titel|s-pt.apr', 'titel', 'nach Titel|s-titel.apr', 'znosort', 'keine Sortierung|s-nosort.apr', ); }
Wenn in den Ergebnissen Sonderzeichen wie Umlaute etc. zu erwarten sind, kann man das Ergebnis mit unterschiedlichen Codierungen anbieten. Wie bei den Parameterdateien gilt aber auch hier, dass es mindestens eine Parameterdatei geben muss. Die Regeln für den Aufbau der Variablen sind dieselben wie bei %Parameterdateien.
Vorgabe:
%Codierung = ( 'DEFAULT', 'HTML-Codierung|p-html.apt', 'ansi', 'ANSI-Codierung|p-ansi.apt', 'dos', 'DOS-Codierung|p-dos.apt', );
Hier sollten Sie eine kurze, aber sprechende Bezeichnung eingeben. Dieser Wert wird auf den einzelnen Bildschirmen als Überschrift ausgegeben. Daher müssen Sonderzeichen in HTML-Codierung eingegeben werden. Sie haben hier auch die Möglichkeit, den Namen als Link zu gestalten, bei dessen Aktivierung eine andere Seite erscheint.
Vorgabe:
$DatenbankName = "Demo";
Einige Links auf Hilfeseiten werden vom Programm automatisch erzeugt. Der Pfad zu diesen Seiten variiert von Datenbank zu Datenbank oder sollte es zumindest. In $HilfsseitenPfad trägt man diesen Pfad ein. Er ist relativ zum Hauptverzeichnis für die normalen HTML-Seiten anzugeben. Dort müssen dann aber auch die entsprechenden Seiten zu finden sein.
Zur Zeit wird diese Angabe nur von maske.pl benutzt, um einen Link auf die Hilfeseite maske.htm zu erzeugen.
Vorgabe:
$HilfsseitenPfad = '/acwww25/opac';
Trotz des Namens der Variablen, kann man hier Links angeben, die auf beliebiege andere Seiten verweisen. Wenn diese Variable nicht leer ist, erscheinen die aufgeführten Verweise am Ende jedes Bildschirms. Wie aus der Vorgabe unten zu ersehen ist, muss ein Link vollständig angegeben werden.
Vorgabe:
%AndereDBs = ( 'zk', '<a href="/cgi-bin/maske.pl?db=zk">[Katalog der Institute]</A>', 'zd', '<a href="/cgi-bin/maske.pl?db=zd">[Zeitschriftendienst des Deutschen Bibliotheksinstituts]</A>', );
Jeder Bildschirm mit einem Ausschnitt aus einem Register erhält als Überschrift den Namen dieses Registers, wobei er als Link ausgebildet sein sollte. Dieser Link verzweigt bei Aktivierung auf eine für das Register spezifische Hilfe. Diese Variable sollte für jedes angebotene Register einen Eintrag enthalten.
Die Variable ist ein dictionary mit bestimmten Werten als Schlüssel:
allg
verweist auf eine allgemeine Hilfeseite,
die einen Überblick über den prinzipellen Aufbau der Register
geben sollte.benutzung
verweist auf eine Stelle, die
erläutert, wie die Register zu benutzen sind.expandiert
enthält einen Link auf die Hilfe
zum expandierten Register. Dieser erscheint nur, wenn ein
Register expandiert angezeigt wird.Generell gilt hier, dass es egal ist, ob man jeden Link auf verschiedene Seiten zeigen lässt, oder auf unterschiedliche Abschnitte ein und derselben Datei. Historisch gewachsen ist die Aufteilung in verschiedene Seiten, wobei es für jedes Register jeweils eine Seite und für die allgemeinen Bemerkungen eine eigene Seite gibt. Vorbild waren die Hilfsbildschirme der DOS-Distribution.
Vorgabe:
%RegisterHilfe = ( '1', '<A HREF="/acwww25/opac/hreg1.html">Namen von Personen</A>', '2', '<A HREF="/acwww25/opac/hreg2.html">Körperschaften</A>', '3', '<A HREF="/acwww25/opac/hreg3.html">Wörter (Titel- und Schlagwörter)</A>', '4', '<A HREF="/acwww25/opac/hreg4.html">Buchtitel (Sonderabteilung K : Kongresse)</A>', '5', '<A HREF="/acwww25/opac/hreg5.html">Zeitschriften und Reihen (Serientitel ; Bandnummer)</A>', '6', '<A HREF="/acwww25/opac/hreg6.html">Verlage (Name,Erscheinungsjahr)</A>', '7', '<A HREF="/acwww25/opac/hreg7.html">Sachgruppen (mit Sonderabteilungen G und H)</A>', '8', '<A HREF="/acwww25/opac/hreg8.html">Signaturen (insbes. Lesesaal-Standorte)</A>', '9', '<A HREF="/acwww25/opac/hreg9.html">ISBN (mit \'i\' davor, also z.B. i3-512-02341)</A>', 'allg', '<A HREF="/acwww25/opac/hreg.html">[Allgemeine Informationen zu den Registern]</A>', 'benutzung', '<A HREF="/acwww25/opac/hreg.html#ALLGINFO">[Wie benutze ich das Register?]</A>', 'expandiert', '<A HREF="/acwww25/opac/hreg.html#EXPANDIERT">[Wie benutze ich das expandierte Register?]</A>', );
Der Aufbau dieser Variablen ist ähnlich wie der von %RegisterHilfe. Hier werden nur die Registerüberschriften nochmal für einfache Anzeigezwecke angegeben. Die Hinweise auf allgemeine Abschnitte fehlen.
Vorgabe:
%RegisterAnzeige = ( '1', 'Namen von Personen', '2', 'Körperschaften', '3', 'Wörter (Titel- und Schlagwörter)', '4', 'Buchtitel (Sonderabteilung K : Kongresse)', '5', 'Zeitschriften und Reihen (Serientitel ; Bandnummer)', '6', 'Verlage (Name,Erscheinungsjahr)', '7', 'Sachgruppen (mit Sonderabteilungen G und H)', '8', 'Signaturen (insbes. Lesesaal-Standorte)', '9', 'ISBN (mit \'i\' davor, also z.B. i3-512-02341)', );
In der Suchmaske wählt man das anzuzeigende Register über ein Dropdown-Menü aus. Der Inhalt dieses Menüs wird aus dieser Variablen erzeugt. Sie ist ein einfache Liste.
Vorgabe:
@RegisterPullDown = ( '1 Namen von Personen', '2 Körperschaften', '3 Wörter (Titel- und Schlagwörter)', '4 Buchtitel (Sonderabteilung K : Kongresse)', '5 Zeitschriften und Reihen (Serientitel ; Bandnummer)', '6 Verlage (Name,Erscheinungsjahr)', '7 Sachgruppen (mit Sonderabteilungen G und H)', '8 Signaturen (insbes. Lesesaal-Standorte)', '9 ISBN (mit \'i\' davor, also z.B. i3-512-02341)', );
Wenn die durch maske.pl automatisch generierte Suchmaske auch Eingabefelder für die Suche nach mehreren Aspekten anbieten soll, muss diese Variable auf 1 gesetzt werden. Wenn das der Fall ist, müssen auch die im folgenden aufgeführten Variablen belegt sein.
Vorgabe:
$logischeKombinationen = 1;
Jedes Feld der Suchmaske muss einen eigenen Namen haben. Die Schreibweise ist dabei egal. Auch die Benennung ist beliebig. Empfohlen wird jedoch, die Namen 'sprechend' zu wählen. In den nachfolgend beschriebenen Variablen %VarRegister und %VarInputDef müssen die Schlüssel dann jeweils diesen Namen entsprechen. Auch darf es dort nur soviele Einträge geben, wie hier Variablennamen definiert werden!
Vorgabe:
@MaskenVariable = ( 'pers', # fuer Suche nach Person in Register 1 'tit1', # erstes Stichwort (Register 3) 'tit2', # zweites Stichwort (Register 3) 'tit3', # drittes Stichwort (Register 3) );
Aus den Eingaben in den Feldern der Suchmaske wird für avanti ein find-Befehl zusammengesetzt. Dazu muss das Programm wissen, in welchem Register der Datenbank es mit welchem Suchbegriff suchen soll. Die Zuordnung der Eingabefelder zu einzelnen Registern wird in %VarRegister festgelegt. Die Kürzel für die Register entnimmt man der Indexparameterdatei der Datenbank. Es ist die sogenannte I-Tabelle, die man meistens am Ende der Datei findet. Sollten die Registerdefinition dort fehlen, muss man sie anlegen. Näheres dazu finden Sie im Systemhandbuch Kap. 10.2.1.3.
Die Schlüssel dieses dictionary müssen mit den Vorgaben in @MaskenVariable übereinstimmen.
Vorgabe:
%VarRegister = ( 'pers', 'PER', 'tit1', 'TIT', 'tit2', 'TIT', 'tit3', 'TIT', );
Die Felder der Suchmaske werden automatisch generiert. Sie haben alle denselben Aufbau: Sie benötigen einen Prompt, damit der Benutzer weiß, was er wo einzutragen hat, ein Eingabefeld, dessen Länge festgelegt werden muss und eine Angabe über eine Hilfeseite zu diesem Feld. Der Prompt wird als Link aufgebaut, so dass man bei einem Klick darauf auf eine Hilfeseite zu diesem Eingabefeld kommt.
Der Wert zu jedem Schlüssel besteht aus einer Zeichenkette. Diese ist in Unterfelder unterteilt, wobei die Felder durch das Pipe-Symbol ('|') voneinander getrennt werden. Es muss immer dieselbe Anzahl felder geben:
Die Schlüssel dieses dictionary müssen mit den Vorgaben in @MaskenVariable übereinstimmen.
Vorgabe:
%VarInputDef = ( 'pers', '30|50|/acwww25/opac/acautor.html|Name einer Person', 'tit1', '30|50|/acwww25/opac/actitel.html|1. Titelstichwort', 'tit2', '30|50|/acwww25/opac/actitel.html|2. Titelstichwort', 'tit3', '30|50|/acwww25/opac/actitel.html|3. Titelstichwort', );
Tragen Sie hier die Länge der Kurztitelzeilen ein, falls die
Datenbank über ein Kurztitelregister verfügt. Ansonsten tragen Sie
bitte 0 (Null) ein. Abhängig von diesem Wert kann man die
Registeranzeige expandieren oder nicht. Die Länge der Kurztitelzeile
finden Sie in der Indexparameterdatei als Befehl i0
Vorgabe:
$stl = 72;
Es gibt in der Datei dbinfo.pl nur ein Unterprogramm:
sub PrintErgebnis
. Diese Routine gibt das Ergebnis
einer Recherche für die Titelanzeige aus. In der Vorgabe ist sie
ganz einfach gehalten:
sub PrintErgebnis { local ( $ErgebnisDatei ) = @_; # Parameter uebernehmen print "<pre>\n"; print $ErgebnisDatei; print "</pre>\n"; return 1; }
Dieser Routine wird nur ein Parameter übergeben, nämlich das
Downloadergebnis in einer Zeichenkette. Wie das genau
aussieht hängt natürlich von der zur Anzeige benutzten
Parameterdatei ab. Die Vorgabe d-html.apr erzeugt aber eine
recht einfache Ausgabe, die der der DOS-Programme entspricht. Alle
Zeilen sind durch die Codes CR LF (ASCII 13 10) voneinander
getrennt. Die Routine PrintErgebnis
macht nun nichts
weiter als vor der Titelausgabe und danach das Preformatted-Tag
auszugeben.
Sie können diese Routine natürlich nach Belieben erweitern und verändern. Sie benötigen dazu aber solide Perl- und ggf. noch Parametrierkenntnisse.
Selbstverständlich ist es möglich, in der Datei dbinfo.pl weitere Variablen und Unterprogramme unterzubringen, wenn sie für die Anbindung einer Datenbank benötigt werden. Sie müssen die Verwendung dieser Ergänzungen aber in den Hauptprogrammen selbst hinzufügen.
Hier kann man sich nach Herzenslust austoben. Mitgeliefert wird eine für die Anzeige geeignete Parameterdatei d-html.apr. Sie gehört zum Standardschema und ist eine leicht abgewandelte d-1.apr. Sie finden sie im Datenbankverzeichnis avanti-w/avdemo der Demodatenbank.
Änderungen zur d-1.apr:
ak
-Zeilen) sind deaktiviert, weil diese
Datei nur eine Anzeige pro Titelsatz erzeugen soll. Daher geht es
gleich bei #-@
los. Von dort wird zu den einzelnen
Satztypen verzweigt. Vor jedem Satz wird direkt das
<hr>
-Tag (horizontal rule) ausgegeben.
dx=1
eingeschaltet werden, weil die Umlaute und Sonderzeichen in den
wenigsten Fällen schon in korrekter HTML-Codierung in der
Datenbank vorliegen dürften. Für Umcodierungszwecke gibt es z.B. die
Datei p-html.apt, die geeignete Tabellen enthält.
fl=0
auf
'unendlich' gesetzt.
.apt
-Datei) nicht mit dem t
-Befehl
in der Parameterdatei direkt geschehen. Das Nachladen
dieser Dateien geschieht über den avanti-Befehl
xport t
in der Jobdatei abhängig von den
eingestellten Optionen beim Aufruf von regsrch.pl.
In der Standardversion der Schnittstelle sorgt das Programm maske.pl für die Erzeugung der Suchmaske. Es ist aber nicht zwingend notwendig, die Suchmaske damit zu erzeugen. Statische HTML-Seiten sind genauso geeignet. Von denen aus werden dann die anderen Programme des Paketes angesprochen. In der Gestaltung dieser Seiten sind Sie vollständig frei, nur die an die Programme übergebenen Parameter müssen stimmen. Das beste ist, Sie erzeugen sich zunächst mit maske.pl eine Referenzseite und speichern sie ab. Am HTML-Code können Sie dann studieren, welche Variablen und Parameter die einzelnen Programme benötigen.
Der Einstieg für die Recherche in einer der angebundenen Datenbanken kann beliebig gestaltet werden. Ein Beispiel, wie man es machen kann, zeigt http://www.biblio.tu-bs.de/Kataloge.html .
Der Aufbau der Seite ist beliebig. Wichtig ist nur die Gestaltung des Links für die Erzeugung der Suchmaske. Er muss in HTML-Notation ungefähr so aussehen:
<a href="www.myserver.de/cgi-bin/maske.pl?db=katalog">Recherche</a>
Der Ausdruck '/cgi-bin/maske.pl?db=katalog
' bewirkt,
dass das Script maske.pl auf dem Server
'www.myserver.de
' die Suchmaske für die Datenbank mit der
Kennung 'katalog' erzeugt. Alles weitere folgt dann von der erzeugten
Seite aus.
Die Scripte und Parameterdateien können frei verwendet und den eigenen Bedürfnissen angepaßt werden. Eine Erwähnung der Herkunft aber wäre sehr freundlich.
![]() Copyright © 1999 UB Braunschweig 2001-08-29, Dierk Höppner |