Index of /anmeldung2/doc
WWW-Anmeldung für PICA
WWW-basierte Benutzeranmeldung
für das PICA-System
Martin Butkus
<mb@buch.biblio.etc.tu-bs.de>
Universitätsbibliothek Braunschweig
Mai 2004
Einführung
Die Bibliotheks-Software PICA [1] wird im
Bibliotheksverbund
GBV [2] unter anderem für die Verwaltung der
Nutzerkonten
eingesetzt. In der aktuellen Version 3 verfügt dieses Programm
jedoch von Haus aus nicht über die Möglichkeit einer
Benutzeranmeldung über ein Web-Interface.
In der Regel sind im Benutzerbereich einer Bibliothek, die PICA
einsetzt, bereits mehrere PCs vorhanden, die für die Recherche im
Online-Katalog eingesetzt werden. Diese könnten ohne weiteren
Mehraufwand als Eingabe-Terminals für eine Online-Anmeldung
mitgenutzt werden. Die Dateneingabe erfolgt dann durch den Benutzer
unmittelbar in elektronischer Form. Zusätzlich kann auch eine
Anmeldung über das Internet leicht realisiert werden. Eine
derartige elektronische Anmeldung bietet etwa gegenüber dem
Einsatz von
Papierformularen insbesondere die folgenden Vorteile:
- die Entlastung des Bibliothekspersonals von der manuellen
Dateneingabe
- eine maschinelle Plausibilitätskontrolle der
Eingabedaten
- die Überprüfung aller Eingaben durch den Benutzer selbst
- die (halb-)automatische Erstellung eines PICA-Datensatzes
- eine insgesamt deutlich zügigere Abwicklung des
Anmeldeverfahrens
Im Zuge einer Modernisierung der Geschäftsgänge wurde an der
Universitätsbibliothek Braunschweig ein Modul entwickelt, das eine
solche Online-Anmeldung realisiert. Das Modul basiert gänzlich auf
"Open Source"-Software [3], die frei von
Lizenzkosten und entsprechend preiswert in der Beschaffung
ist. Es
handelt sich um ein sogenanntes "LAMP"-System, da es auf dem
Betriebssystem Linux, dem
Webserver Apache [4],
der
Datenbank MySQL [5]
sowie - im
Wesentlichen - auf der Skriptsprache PHP
[6] basiert. (Einige wenige Programmteile sind
in Perl geschrieben.)
Trotz der Konzeption als "LAMP"-System ist das Anmeldungs-Modul auch
auf diversen
anderen Betriebssystemen (z.B. Windows, Mac OS X, Solaris) und mit
anderen Webservern (z.B. Xitami, IIS, u.ä.) lauffähig.
Highlights
- benutzerfreundlich
Mehrseitiges, übersichtliches Formular, in dem bequem vor- und
zurückgeblättert werden kann. Automatische
Plausibilitätskontrolle aller Eingaben anhand von frei
konfigurierbaren Textmustern ("Regular Expressions").
- mehrsprachig
Es stehen eine deutsche und eine englische Eingabemaske zur
Verfügung. Zwischen beiden Varianten kann während der Eingabe
gewechselt werden.Weitere Sprachen lassen sich vom Administrator leicht
hinzufügen.
- sicher
Es existiert eine strikte programmtechnische Trennung zwischen dem
"öffentlichen"
Webformular, dem "administrativen" Webformular (passwortgeschützt,
nur
für Bibliotheksmitarbeiter) und der PICA-Datenbank. Das
"öffentliche"
Webformular hat dabei keinerlei Zugriff auf die
PICA-Datenbank. Für die
Speicherung der Antragsdaten und die Kommunikation zwischen
öffentlichem und internen Webformular wird eigens für diesen
Zweck eine separate MySQL-Datenbank verwendet.
- konfigurierbar
Sämtliche Text-Ausgaben und Eingabefelder lassen sich an einer
zentralen Stelle im Skript anpassen. Die Ausgaben sind als SQL-Abfragen
realisiert, und lassen sich ebenso einfach modifizieren. Geplant ist
ferner die Einführung von "Hook"-Funktionen, um eigene
Code-Anpassungen zu erleichtern.
- erweiterbar
Dank einer weitgehenden Modularisierung und einer ausführlichen
Quelltext-Dokumentation lassen sich eigene Erweiterungen ohne
größeren Aufwand
realisieren.
- kostengünstig
Dank der ausschließlichen Verwendung von Open-Source-Software
fallen keine zusätzliche Lizenzkosten für diese Lösung
an.
Alternativen
- Eine Anfrage auf der Mailingliste INETBIB vom März 2004
ergab zwei Bibliotheken im deutschsprachigen Raum, die
ähnliche, selbst entwickelte Lösungen bereits im Einsatz
haben. Keines dieser Systeme scheint jedoch eine weitere Verbreitung
gefunden zu haben.
In beiden Fällen wurde auf eine Zwischenspeicherung der
Anmeldungen in einer eigenen Datenbank verzichtet; stattdessen wurde
der Datensatz unmittelbar nach der Benutzereingabe in die
PICA-Datenbank importiert. Dies halten wir für einen gravierenden
Nachteil, wie wir weiter unten genauer darlegen werden.
- In einigen GBV-Bibliotheken wird bereits der maschinelle Import
von
Benutzerdaten aus externen Quellen (z.B. Immatrikulationsamt)
praktiziert. Oftmals werden dadurch jedoch bestimmte Benutzergruppen -
etwa Gastwissenschaftler und außeruniversitäre Benutzer -
nicht erfaßt, und müssen sich daher weiterhin per Formular
anmelden. In diesem Fall stellt eine Kombination von automatischem
Datenimport und der Online-Anmeldung (für nicht erfaßte
Nutzergruppen) eine einfache und elegante Lösung dar.
Ablauf einer Online-Anmeldung
Dateneingabe
Der Benutzer gibt seine Daten an einem Eingabe-Terminal (Katalog-PC)
oder über das Internet ein. Das Formular besteht aus mehreren
Seiten; ein Vor- und Zurückblättern ist möglich. Es ist
mit einer Plausibilitätskontrolle versehen:
Dateneingaben werden bei der Eingabe anhand von Textmustern
überprüft; ungültige Eingaben werden
zurückgewiesen,
und der Benutzer über die Art des Fehlers informiert. Das Formular
ist multilingual (deutsch/englisch); zwischen den Sprachen kann zu
jeder
Zeit gewechselt werden. Weitere Sprachen lassen sich leicht
nachrüsten.
Nach der Eingabe werden die Daten nochmals in Tabellenform
zusammengefaßt dargestellt, und der Benutzer erhält eine
letzte Möglichkeit zur Korrektur des Datensatzes.
Zwischenspeicherung in einer Datenbank (MySQL)
Wenn der Benutzer den Datensatz absendet, wird dieser in einer
MySQL-Datenbank zwischengespeichert. Diese Datenbank ist
unabhängig
vom PICA-System; sie dient allein der Speicherung der neu
erfaßten
Anmeldungen. Der Benutzer wird aufgefordert, sich bei der
Leihtheke zu melden, um seinen Benutzungsausweis zu erhalten.
Durch die Verwendung einer separaten Datenbank - statt einer
unmittelbaren Übernahme in die PICA-Datenbank - wird
gewährleistet, daß sich tatsächlich nur korrekte Daten
von aktiven Benutzer in der
PICA-Datenbank befinden, da vor der Übernahme die Personalien des
Benutzers überprüft werden (siehe unten).
Ein zweiter Aspekt ist die erhöhte Systemsicherheit. Da das
öffentlich zugängliche "Anmelde"-PHP-Skript nur Zugriff auf
die MySQL-Datenbank, jedoch nicht auf
die PICA-Datenbank hat, sind die dort befindlichen Daten bei
einem Hacker-Angriff auf das Skript nicht gefährdet.
Verifikation und Übernahme in die PICA-Datenbank
Der Benutzer will nun seinen Benutzungsausweis abholen. Der
Bibliotheksangestellte verfügt über eine
paßwortgeschützte "Administrator"-Weboberfläche,
über die er den Datensatz des Benutzers aufruft.
Der Mitarbeiter überprüft die Personalien, korrigiert
falls
nötig den Datensatz, liest den Barcode des neuen
Nutzerausweises ein, und initiiert anschließend den Transfer des
Datensatzes in das PICA-System. Dieser Datentransfer ist innerhalb
weniger Sekunden abgeschlossen.
Ausdruck des Anmeldeformulars
Aus rechtlichen Gründen muß jeder Benutzer der UB
Braunschweig die Benutzungsordnung schriftlich anerkennen. Daher wurde
eine Funktion implementiert, die den Ausdruck eines ausgefüllten,
unterschriftsfertigen Formulars erlaubt. Diese wird nach dem
Datentransfer automatisch aufgerufen; es können jedoch noch
weitere Ausdrucke gefertigt werden. Der Text des Formulars
läßt sich frei anpassen.
Nachdem der Benutzer das Formular unterschrieben hat, erhält er
seinen Nutzerausweis. Der Bibliotheksangestellte löscht nun den
Datensatz in der MySQL-Datenbank. Der Anmeldevorgang ist damit
abgeschlossen.
Technische Details zum PICA-Export
Vor Beginn des Datentransfers wird zunächst per SQL-Abfrage
überprüft,
ob der betreffende Benutzer bereits in der PICA-Datenbank vorhanden
ist. Als Suchschlüssel dienen der Nachname und
das Geburtsdatum des Benutzers. Falls passende Datensätze gefunden
werden, erscheint eine Warnmeldung. Der Bibliotheksmitarbeiter kann die
Übernahme dann abbrechen, oder sie trotzdem fortsetzen.
Der eigentliche Datentransfer erfolgt mittels des Hilfsprogramms ousp_upd_borrower
[7],
das Bestandteil von PICA ist und den automatisierten Datenimport aus
Fremdquellen realisiert. Dieses Programm
funktioniert
jedoch nur korrekt, wenn es auf dem LBS-Datenbankserver unter der
Benutzer-ID lbs_prod
läuft.
Aus Sicherheitsgründen empfiehlt es sich generell, Webserver und
PICA-Datenbankserver auf separaten Rechnern zu betreiben. Da die
Administrator-Oberfläche auf dem Webserver läuft, muß
es einen Mechanismus geben, der die Export-Datei auf den
Datenbankserver kopiert, und anschließend das o.g. Hilfsprogramm
aufruft. Dieser wird durch ein externes Programm realisiert, und ist
frei konfigurierbar.
Wir haben dieses Problem mit Hilfe einer Client-Server-Lösung
gelöst:
- Auf dem PICA-Datenbankserver läuft ein Perl-Skript
unter der Benutzer-ID
lbs_prod
. Dieses Skript
fungiert als Server. Es
empfängt zunächst ein Paßwort, und anschließend
die Export-Datei. Aus Sicherheitsgründen sind nur bestimmte
Client-IP-Adressen zugelassen. Als zusätzliche
Sicherheitsmaßnahme empfiehlt sich die Verschlüsselung der
Verbindung über einen SSH-Tunnel.
Der Server ist bewußt als non-threading
Server
programmiert, das heißt, daß er nur eine einzige
TCP/IP-Verbindung gleichzeitig bedienen kann. Falls mehrere Clients
eine Verbindung initiieren, so blockieren alle Clients bis auf einen.
Auf diese Weise wird gewährleistet, daß immer nur eine
Instanz von ousp_upd_borrower
gleichzeitig aktiv ist.
- Auf dem Webserver läuft das Gegenstück, der Client, derzeit ebenfalls ein
Perl-Skript.
Fehlermeldungen von ousp_upd_borrower
werden - ebenso
wie Netzwerk- und sonstige Fehler - erkannt, und resultieren in
einer Warnmeldung an den Benutzer.
Probleme und Einschränkungen
- In der Regel wird ein Administrator die Skripte an lokale
Gepflogenheiten und die jeweils gewünschte Verwendung der Felder
anpassen wollen. Es wurde versucht, die Skripte so zu gestalten,
daß solche Anpassungen an zentralen Stellen konzentriert
werden, und damit auch geändert werden können, ohne in den
restlichen Programmcode einsteigen zu müssen. Einige im
Programmcode verstreute "Braunschweigensien" sind jedoch zur Zeit noch
vorhanden, und müssen noch beseitigt werden.
- Ein spezielles Problem betrifft das Feld "Registriernummer". Das
Import-Programm
ousp_upd_borrower
kennt zwei Arbeitsmodi:
"Datensatz neu anlegen" und "Datensatz aktualisieren". Es verwendet das
Feld "Registriernummer" als Primärschlüssel, um zwischen den
beiden Funktionen zu unterscheiden. Ein neuer Datensatz wird dann
(und nur dann) angelegt, wenn dieser eine Registernummer
trägt, die sich von den Registernummern aller anderen
Nutzerdatensätze unterscheidet.
Bei der manuellen Dateneingabe per OUS besteht die oben beschriebene
Einschränkung jedoch nicht. Wurden die Nutzer bislang manuell
eingegeben, so kann es vorkommen, daß dieses Feld bisher
anderweitig genutzt wurde. Die Verwendung dieses Feldes muß dann
gegebenenfalls angepaßt und Altdatensätze entsprechend
modifiziert werden.
Beispielsweise wurde in Braunschweig als Registriernummer die
Matrikelnummer verwendet; bei außeruniversitären Nutzer
blieb das Feld leer. Für die Online-Anmeldung
war es
nun notwendig, in solchen Fällen eine (individuelle)
Pseudo-Matrikelnummer zuzuordnen.
Der Code im Anmelde-Modul stellt durch eine PICA-Datenbankabfrage
sicher, daß die Registernummer korrekt gewählt wurde;
andernfalls bricht der PICA-Import mit einer Fehlermeldung ab. Ein
versehentliches Überschreiben bereits existierender
PICA-Datensätze ist also in keinem Fall möglich.
- Einige Benutzer beantragen zwar einen Nutzerausweis, holen diesen
jedoch auch nach längerer Zeit nicht ab. Die MySQL-Datenbank
füllt sich daher immer mehr mit älteren Datensätzen.
Deshalb wird bei der Anmeldung das Eingabedatum registriert. Es ist
somit leicht möglich, unbearbeitete Datensätze entweder
manuell oder aber automatisch nach einer festgelegten Frist zu
löschen.
Weiterführende Informationen
Das System ist seit März 2004 an der UB
Braunschweig im Produktivbetrieb, und hat die bisherige Anmeldung per
Papierformular vollständig ersetzt. Es wurde von den
Benutzern und Mitarbeitern in kürzester Zeit angenommen und
läuft seit seiner Einführung störungsfrei.
Die UB Braunschweig gibt dieses System an interessierte Bibliotheken
kostenfrei weiter. Bitte wenden Sie sich hierzu an den Direktor
der Bibliothek, Prof. Dr. Brandes
<d.brandes@tu-bs.de>.
Die Installation erfordert Systemkenntnisse
in Unix, PHP, MySQL, und PICA, und ist in der Installationsanleitung
beschrieben.
Die Funktionsweise der PHP-Skripte ist in der internen Systemdokumentation
genauer beschrieben.
[1] OCLC PICA. http://www.oclcpica.org
[2] Homepage des Gemeinsamen Bibliotheksverbundes
(GBV). http://www.gbv.de
[3] The Open Source Initiative (OSI). http://www.opensource.org
[4] The Apache Web Server Project. http://httpd.apache.org
[5] MySQL Homepage. http://www.mysql.com
[6] PHP: Hypertext Preprocessor. http://www.php.net
[7] PICA-LBS-3-Ausleihsystem (OUS): OUS_F. Anleitung
zur Systemverwaltung. Gemeinsamer Bibliotheksverbund (GBV), Januar 2001.