Die allegro-W3-Schnittstelle

Version 2.5

Inhalt

  1. Einleitung
  2. Eigenschaften der Schnittstelle
  3. Was braucht man?
  4. Installation
  5. ACWWW25
  6. Arbeitsweise
  7. Der Einstieg für den WWW-Benutzer
  8. Notwendige Anpassungen in den Scripten
  9. Parametrierung
  10. Erweiterungen in der Jobsprache von AVANTI
  11. Abschließender Hinweis

Hinweis:
Für Neulinge auf diesem Gebiet dürfte auch die Dokumentation Einrichtung eines WWW-Dienstes unter Windows 95 interessant sein.

Einleitung

Die neue Version der Schnittstelle zur Anbindung einer oder mehrerer allegro-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, haben wir zunächst die schon bestehende Schnittstelle so geändert, daß 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, die AVANTI bietet, ausgeschöpft. Wir glauben aber dennoch, daß 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.

Eigenschaften der Schnittstelle

Ü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:

  1. kann er einzelne Register ansteuern, die ähnlich aussehen, wie man es von den 'normalen' allegro-Programmen APAC und PRESTO her gewohnt ist. Die Einträge sind dabei als Hyperlinks ausgebildet. Das Anzeigen von Titelaufnahmen Verfolgen von Verweisen geschieht dabei ähnlich wie man es von allegro gewohnt ist.
  2. kann man in einer selbst definierten Maske mehrere Suchbegriffe eingeben. Das System sucht dann alle passenden Datensätze dazu heraus.

Die Anzeige ist natürlich über Parameterdateien voll parametrierbar.

Was braucht man?

Sie benötigen

acwww25.exe
ein selbstentpackendes Archiv von unserem ftp-Server. Sie finden es im öffentlich zugänglichen Verzeichnis anwender.
avanti
Der AVANTI-Server und das Hilfsprogramm sind den Abonnenten in dem entsprechenden Verzeichnissen zugänglich. Hier sollten Sie sich unbedingt die neusten Versionen holen, denn es waren zwei Erweiterungen der Auftragssprache notwendig geworden.
Perl
Perl gibt es am frischesten in den sogenannten CPAN-Archiven. In Deutschland ist das ftp://ftp.rz.ruhr-uni-bochum.de im Verzeichnis /pub/programming/languages/perl/CPAN/ Dort gibt es Versionen sowohl für UNIX, als auch für Win32 (NT/Win95)
... und
Phantasie und Programmierkenntnisse, wenn Sie die Schnittstelle und deren Ausgaben auf Ihre Verhältnisse anpassen wollen/müssen.

Installation

avanti
das AVANTI-Programm und seine Zusatzprogramme werden mit einem Setup-Programm installiert. Im Verzeichnis \avanti-w, das bei der Installation entsteht, finden Sie auch ein Unterverzeichnis \acwww25. Dort befindet sich die aktuelle Version der allegro-WWW-Schnittstelle.
In der Datei uifsger sind alle Fehlermeldungen des Programms aufgeführt. Ersetzen Sie dort alle ':' hinter dem Typbuchstaben, damit alle Fehlermeldungen in die Errordatei umgelenkt werden.
Perl
Je nach Geschmack. Die entsprechende Distribution gibt in den div. readmes gute Hinweise. Eingebürgert hat sich unter UNIX /usr/local/bin und unter DOS/Windows c:\perl. Darauf kommt es aber nicht so genau an. Wichtig nur, daß 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.
acwww25
Die allegro-W3-Schnittstelle besteht aus einigen Scripten in Perl und einigen Textdateien. Für eine Beispieldatenbank der Standardkonfiguration sind die notwendigen Parameter mitgeliefert.
acwww25.exe ist ein selbstextrahierendes Archiv, daß eine Verzeichnisstruktur enthält. Diese Struktur ist für das Funktionieren der Schnittstelle wichtig. Sie sollten sie zunächst übernehmen.
Kopieren Sie das Programm in das Verzeichnis, in dem die CGI-Scripte Ihres Servers normalerweise angesiedelt sein sollen. (Beim Internet Information Server unter NT ist das z.B. \InetPub\scripts, unter UNIX heißt das entpsrechende Verzeichnis meistens /usr/local/httpd/cgi-bin.) Der eigentliche Ort hängt aber von der Installation Ihres Web-Servers ab!
Das Archiv richtet unterhalb dieses Verzeichnises ein Verzeichnis acwww25 ein, um nicht bestehende Installationen der alten Schnittstelle zu überschreiben, und kopiert dorthinein alle notwendigen Dateien.

Nachdem alles an seinem Platz ist, müssen Änderungen in diversen Dateien vorgenommen werden. Kenntnisse von Perl und der Exportparametersprache von allegro erleichtern einem das Leben hier ungemein!

ACWWW25

Sie werden in .../cgi-bin/acwww25 diese Dateien finden:

acindex.pl Script zum Erzeugen eines Registerausschnittes. Die Registereinträge sind 'verlinkt', d.h. anklickbar. Entweder löst man eine Titelanzeige oder bei einem Verweis eine weitere Registerproduktion aus.
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.
maske.pl erzeugt die Suchmasken für die Datenbanken. Dies ist der eigentliche Einstieg für die Recherche einer Datenbank.
regsrch.pl wird nie direkt angesprochen. Erzeugt die eigentliche 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/perllib 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/perl. Der genaue Ort hängt aber von Ihrer Perl-Installation ab.
acwww25/opac Konfigurations- und Parameterdateien für die Datenbank mit der Kennung 'opac'. Mehr dazu weiter unten.

Arbeitsweise

Bevor Sie verstehen, warum Sie wo was ändern müssen, folgt hier eine kurze Beschreibung der Arbeitsweise dieser Schnittstelle.

Jedes Script lädt zunächst cgi-lib.pl und acwww25.pl. In cgi-lib.pl befinden sich Routinen, die die Auswertung von Optionen für die Scripte erleichtern. Die Datei acwww25.pl enthält zentrale Einstellungen für das Gesamtsystem (Pfade etc.). Nach der Grundinitialisierung werden die übergebenen Optionen ausgewertet.

Nach der Grundinitialisierung wird die datenbankeigene dbinfo.pl ausgewertet. Zum Verständnis wichtig ist jetzt dies: Jede Datenbank erhält ein Kürzel, mit dem sie in den Scripten bekannt ist. Diese Kürzel sind im Array %dbscripte in acwww25.pl deklariert. Für jede Datenbank muß weiterhin ein Verzeichnis unterhalb von ../cgi-bin/acwww25 existieren, in dem sich die Datei dbinfo.pl für diese Datenbank befinden. Jede Datenbank verfügt also über eine eigene dbinfo.pl. Dort sind alle datenbankspezifischen Einstellungen zu finden. ohne diese Datei läuft nichts!

Jetzt wird der Anfang der Ergebnisseite aus texts/scriptname.kpf ausgeben. Achten Sie darauf, daß 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ückkommt. Eine Timeout-Routine sorgt dafür, daß man nicht ewig wartet, falls der Server nicht laufen sollte.

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.

Zum AVANTI-Server: Es läuft nur ein AVANTI für alle Datenbanken. Die Aufträge und die Ergebnisse werden nicht mehr wie früher über Dateien ausgetauscht, sondern über Socket-Verbindungen. Spezielle Parameterdateien für die Schnittstelle müssen entweder in dem Datenbankverzeichnis oder in das AVANTI-Programmverzeichnis abgelegt werden. Man kann dabei so verfahren: Die Parameterdateien, die speziell für eine bestimmte Datenbank gedacht sind, kommen in das Datenbankverzeichnis, die Parametedateien, die für alle nutzbar sind, in das Programmverzeichnis. An diese Aufteilung muß man sich aber nicht halten.

Der Einstieg für den WWW-Benutzer

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/acrecher.html .

Der Aufbau der Seite ist beliebig. Wichtig ist nur die Gestaltung des Links für die Erzeugung der Suchmaske. Er muß in HTML-Notation ungefähr so aussehen:

<a href="www.myserver.de/cgi-bin/maske.pl?db=katalog">Recherche</a>

Der Ausdruck 'maske.pl?db=katalog' bewirkt, daß 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.

Bei dieser Art des Aufrufs wird die Suchmaske dynamisch von einem Script generiert. Der Vorteil dieser Methode ist, daß man sich um die Gestaltung relativ wenig Gedanken machen muß. Das meiste wird in der dbinfo.pl einer Datenbank festgelegt. Man nimmt damit aber auch in Kauf, daß die Suchmasken für alle Datenbanken ähnlich aussehen. Man kann es aber auch anders machen. Verzichten Sie auf die Verwendung von maske.pl und verwenden Sie die anderen Scripte direkt in selbstgestalteten Masken. Sie müssen sich dann aber in den Scripten genau ansehen, welche Parameter diese verlangen, um korrekt zu arbeiten.

Notwendige Anpassungen in den Scripten

Sie werden es schon wissen: Änderungen sind in acwww25.pl unbedingt notwendig. Sehen Sie sich den ersten Teil an. Hier finden Sie nur Variablen. Setzen sie die Werte entsprechend Ihrer Installation. Der zweite Teil der Datei enthält Unterprogramme, an denen Sie zunächst noch nicht drehen sollten.

Dann ist wichtig, daß jede Datenbank ihr eigenes Verzeichnis unterhalb von /cgi-bin/acwww25 erhalten muß. Der Name spielt keine Rolle. Im mitgelieferten Beispiel wurde für die Datenbank 'opac' als Verzeichnisname auch opac gewählt. Das muß aber so nicht sein.

In diesem Verzeichnis darf aber nicht die eigentliche Datenbank liegen. Auf dieses Verzeichnis hat naturgemäß jeder Zugriff. Wer die Struktur der Schnittstelle kennt, kann dann u.U. die Daten leicht absaugen. (Das kann natürlich von Ihnen gewollt sein, dann sollten Sie aber dafür aber einen eigenen ftp-Bereich anlegen.)

Hier muß unbedingt eine Datei dbinfo.pl vorhanden sein. Dort sind die genauen Einstellungen zu der Datenbank abgelegt. Hier sind Konfiguration, Verzeichnis der Datenbank und verwendete Parameterdateien abgelegt. Hier werden auch Einstellungen für die Suchmasken vorgenommen.

Ein kritischer Punkt ist das Erzeugen Links für Verweise in der Registerliste (acindex.pl). Dieser Teil hängt sehr stark vom Aufbau der Verweise in den Registern Ihrer Datenbank ab und ist in der vorliegenden Version ganz auf die Register der Braunschweiger Standardkonfiguration ausgelegt. Wenn Ihre Register anders aufgebaut sind, müssen Sie hier eingreifen. Gute Perl-Kenntnisse sind an dieser Stelle notwendig.

Gilt nur unter UNIX: Jedes der Perlscript enthält in der ersten Zeile den genauen Aufruf des Perlinterpreters:

#!/usr/local/bin/perl

Dieser muß natürlich von Ihnen auf die Verhältnisse auf Ihrem System angepaßt werden.

Parametrierung

Hier kann man sich nach Herzenslust austoben. Mitgeliefert ist für eine einfache Anzeige eine Parameterdatei d-html.apr. Sie gehört zum Standardschema und ist eine leicht abgewandelte d-1.apr.

Dies Änderungen sind gemacht worden und auch in anderen Fällen das absolute Minimum:

Erweiterungen in der Jobsprache von AVANTI

Während der Umstellung auf die Nutzung von AVANTI hat sich gezeigt, daß zwei Erweiterungen an diese Sprache notwendig sind. Sie werden im folgenden erläutert. Optionen in eckigen Klammern können wahlweise eingegeben werden. '|' bedeuted 'oder'. Man gibt dann nur eine der angegeben Optionen an!

  1. Ein Formatbefehl für den Befehl q(rix). Dieser Befehl muß gesetzt werden, wenn man eine andere Ausgabe als die voreingestellte mit qrix i oder qrix reg erzeugen will.

    qrix format [0|1]

    Das Format 0 ist das bisherige Format der Ausgabe einer Registerzeile. Das Ergebnis sieht ungefähr so aus:

    anzahl eintrag

    anzahl ist fünfstellig die Anzahl der Einträge zu dem Registereintrag eintrag

    Das Format 1 ist für die Aufbereitung der Einträge im WWW besser geeignet. Es entspricht ungefähr dem, was man bisher mit dem Programm QRIX und der Option -E erreichte:

    anzahl<tab>eintrag<tab>nr1:nr2:nr3: .....

    Erst kommt die Anzahl der Einträge, dann das Tabulatorzeichen ASCII-09, dann der Eintrag, dann die internen Satznummern der dazugehörigen Datensätze mit ':' voneinander getrennt.

    Beispiel:

    qrix format 1       // Format '1' einstellen
    qrix n 20           // maximal 20 Zeilen ausgeben
    qrix 1 shakes?      // gib alles ab 'schakes?' aus
    .
    .
    .
       
  2. Das Nachladen von .apt-Dateien wird über eine Erweiterung des xport-Befehls erreicht.

    Das hat einen besonderen Grund: Eine Hilfstabelle kann nur in diesen Verzeichnissen von allegro automatisch gefunden werden:

    Wenn die Hilfstabellen in einem dieser Verzeichnisse liegen, kann man in der Parameterdatei mit dem t-Befehl eine Datei nachladen. Problem dabei: Wenn man, wie in der vorgestellten Version, für die Ausgabe eine Parameterdatei nutzen will und über p-Tabellen andere Umcodierungen ermöglichen möchte, kann es zu Konflikten, bei mehreren gleichzeitigen Anfragen kommen. Die Standardlistenproduktion, die prinzipiell auch hier funktionieren würde, arbeitet ja so, daß die ausgwählte Hilfsdatei auf eine Datei namens printer.apt kopiert wird. In den Parameterdateien wird dann mit tprinter diese Datei nachgeladen. printer.apt liegt in einem Netzwerk auf dem Nutzerverzeichnis oder im Programmverzeichnis.

    Nutzerverzeichnis ist bei der WWW-Schnittstelle aber das Datenbankverzeichnis oder das Programmverzeichnis. Es ist aber für alle WWW-Klienten das Nutzerverzeichnis. Gleichzeitige Anfragen mehrerer Klienten können sich daher gegenseitig tropedieren, wenn jede eine andere Hilfstabelle auswählt, weil diese sich gegenseitig überschreiben.

    Die Lösung sieht also so aus: Wir verzichten auf den t-Befehl in der Parameterdatei und verlagern das Nachladen in den AVANTI-Auftrag. Der Server lädt dann die angegeben Datei direkt. Einen Kopiervorgang spart man sich dabei. Damit ist gewährleistet, daß sich verschiedene Aufträge nicht gegenseitig stören.

    Befehl:

    xport t name

    t steht für 'Tabelle', name ist der Name der Hilfsdatei. Die Endung kann entfallen. Dieser Befehl muß nach dem Befehl xport param ... gegeben werden.

    Beispiel:

    .
    .
    .
    xport param d-html          // Anzeigeparameterdatei d-html.apr laden
    xport t p-html              // Umcodierung ASCII -> HTML nachladen
    .
    .
    .
    
  3. Ein Befehl, um in einem Register von einem Startpunkt aus rückwärts zu gehen. Nützlich ist dies für einen 'Seite zurück'-Knopf in einem Registerausschnitt. Man stellt mit qrix - einmalig für den Auftrag die Suchrichtung um. Bei der Auswertung des Ergebnisses ist aber zu beachten, daß die Registereinträge nicht in verkehrter Reihenfolge, sondern in richtiger alphabetischer Reihenfolge geliefert werden!

Abschließender Hinweis

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.


letzte Änderung: 15.04.1998
UB Braunschweig
allegro-C Entwicklung
Dierk Höppner ( d.hoeppner@tu-bs.de )