allegro meets Internet <mb@biblio.tu-bs.de> allegro Expertentreffen, 9. – 11. Juni 2005 Universitätsbibliothek Braunschweig allegro meets Internet Avanti und Z39.50 Martin Butkus <mb@biblio.tu-bs.de> http://www.allegro-c.de/
Avanti - allegro meets Internet allegro Expertentreffen, 9. – 11. Juni 2005 Universitätsbibliothek Braunschweig Avanti - allegro meets Internet Datenbank-Server für allegro-Datenbanken Online-Katalog¹ (WWW) Z39.50-Schnittstelle² Für Programmierer: Einfacher Zugriff auf allegro-DB aus eigenen Programmen / Skripten Abfragesprache: FLEX ; Netzprotokoll: TCP/IP ¹ Zusatzsoftware “phpac” benötigt (o.a.) ² Zusatzsoftware “z3950” benötigt http://www.allegro-c.de/
allegro Klassenbibliothek allegro Expertentreffen, 9. – 11. Juni 2005 Universitätsbibliothek Braunschweig Web-Online-Katalog mit allegro Internet avanti allegro Klassenbibliothek HTTP TCP/IP, FLEX allegro DB *.ALD, .ADX, ... phpac Apache/PHP Web-Server Datenbank-Server http://www.allegro-c.de/
avanti z3950 Z39.50 mit allegro allegro Klassenbibliothek Z39.50 allegro Expertentreffen, 9. – 11. Juni 2005 Universitätsbibliothek Braunschweig Z39.50 mit allegro Internet avanti allegro Klassenbibliothek Z39.50 TCP/IP, Flex z3950 allegro DB *.ALD, .ADX, ... „Übersetzung“ Z39.50 <-> avanti Z39.50-Server Datenbank-Server http://www.allegro-c.de/
Avanti 2 – was ist neu? http://www.allegro-c.de/ allegro Expertentreffen, 9. – 11. Juni 2005 Universitätsbibliothek Braunschweig Avanti 2 – was ist neu? Ziele: Stabil, robust, konsolidierte Code-Basis Aufteilung Frontend (avanti)- Netzwerk-Code (neu) Backend (avanti-cl): - Datenbank-Abfrage Lauffähig als Daemon (Unix) oder Systemdienst (Win NT/2000/XP) Debugging-Funktionen für die Entwicklung mit avanti Web-Frontend für die Administration von avanti http://www.allegro-c.de/
Installation (Windows) allegro Expertentreffen, 9. – 11. Juni 2005 Universitätsbibliothek Braunschweig Installation (Windows) Download: ftp.allegro-c.de / aktuelle-version / avanti Installationsprogramm starten Achtung: Installationspfad darf keine Leerzeichen enthalten Systemsteuerung Verwaltung Dienste Dienst „avanti“ starten Start-Typ auf „automatisch“ stellen (falls gewünscht) Win XP SP2 Systemsteuerung Windows-Firewall Port 4949 freigeben (ggf.) http://www.allegro-c.de/
Installation (Linux) http://www.allegro-c.de/ allegro Expertentreffen, 9. – 11. Juni 2005 Universitätsbibliothek Braunschweig Installation (Linux) Download: ftp.allegro-c.de / avanti / linux Benutzer „avanti“ anlegen (z.B. per „YAST“) Einloggen als Benutzer „avanti“ ! TAR-Archiv entpacken $ tar xvzf avanti-,,,-linux.tar.gz Starten: $ avanti-,,,/bin/avanti -daemon Automatischer Neustart bei Reboot: Startup-Skript erstellen, siehe /etc/init.d, /etc/rc[0-9].d/ http://www.allegro-c.de/
Funktionstest http://www.allegro-c.de/ Start Ausführen „cmd“ OK allegro Expertentreffen, 9. – 11. Juni 2005 Universitätsbibliothek Braunschweig Funktionstest Start Ausführen „cmd“ OK C:\> telnet telnet> set localecho telnet> open localhost 4949 find per shakesp? list internal @ DB=avdemo ID=opac/OPAC AVANTI:EOJ Ergebnis: Zahlenreihe, gefolgt von „AVANTI:EOR“ http://www.allegro-c.de/
Web-Frontend http://www.allegro-c.de/ allegro Expertentreffen, 9. – 11. Juni 2005 Universitätsbibliothek Braunschweig Web-Frontend Installieren von Apache + PHP (XAMPP) http://www.xampp.org Startmenü xampp basic start Installieren des Web-Frontends Startmenü xampp httpdoc folder Verzeichnis „avadmin“ anlegen Dateien aus <avanti_dir>/shared/avanti/avadmin kopieren Datei „conf.php“ anpassen Aufruf: http://localhost/avadmin/login.php http://www.allegro-c.de/
Programmierbeispiel: Datenbank-Abfrage in PHP allegro Expertentreffen, 9. – 11. Juni 2005 Universitätsbibliothek Braunschweig Programmierbeispiel: Datenbank-Abfrage in PHP <html><body> <?php # avanti request bauen $q = "find per shakesp?\n"; $q .= "list internal\n"; $q .= "@ DB=demo ID=opac/OPAC\n"; $q .= "AVANTI:EOJ"; # socket oeffnen $sock = fsockopen("localhost", 4949); # an avanti-Server senden fputs($sock, $q); flush(); $ans = ""; # antwort lesen while (!feof($sock) and ($l = fgets($sock))) { $ans .= $l; if (substr($l,0,10) == "AVANTI:EOR") break; } # antwort ausgeben print $ans; # socket schliessen fclose($sock); ?> </body></html> http://www.allegro-c.de/
Z39.50 – was ist das ? http://www.allegro-c.de/ allegro Expertentreffen, 9. – 11. Juni 2005 Universitätsbibliothek Braunschweig Z39.50 – was ist das ? Netzwerk-Protokoll zur Datenbank-Abfrage ISO-Norm ; herstellerunabhängig ; verbreitet (im bibl. Bereich) Nützliche Sonderfunktionen, z.B. Suche mit „Attributen“ für Trunkierung, Einschränkung auf bestimmte Register, usw. Probleme: Sehr komplexes Protokoll Schwierig zu implementieren Viele Funktionen optional oft nicht implementiert Nachfolger: SRW/SRU (noch nicht weit genug verbreitet). http://www.allegro-c.de/
Z39.50 Server für Allegro http://www.allegro-c.de/ Historie: allegro Expertentreffen, 9. – 11. Juni 2005 Universitätsbibliothek Braunschweig Z39.50 Server für Allegro Historie: 1996 – 1998 Entwicklung des ersten Z39.50-Servers auf Basis DBV-OSI Funktionsbibliothek 2003 – 2005 Neuentwicklung auf Basis YAZ Funktionsbibliothek Ziele bei der Neuentwicklung: Ablösung der obsoleten DBV-OSI Bibliothek Erweiterte Konfigurationsmöglichkeiten Zukunftssicherheit (SRW/SRU) http://www.allegro-c.de/
-> Avanti-Suchterm allegro Expertentreffen, 9. – 11. Juni 2005 Universitätsbibliothek Braunschweig Z3950 Server: Funktionsprinzip DBNAME.dict USE Attribut -> Avanti-Suchterm Query Suchbegriff Attribute (BIB-1) Z39.50 Client avanti z3950 Response Parameter-Dateien z-mab2.apr z-usmarc.apr sutrs.apr z-unimarc.apr http://www.allegro-c.de/
Z3950 Server: Beispiel für eine DICT-Datei allegro Expertentreffen, 9. – 11. Juni 2005 Universitätsbibliothek Braunschweig Z3950 Server: Beispiel für eine DICT-Datei ### nicht trunkiert 1 = PER "%s" # Name-personal 4 = TIT "%s" # Title 1016 = ( PER "%s" ) or ( TIT "%s" ) # Any 1017 = ( PER "%s" ) or ( TIT "%s" ) # Server-Choice ### rechtstrunkiert t1 = PER "%s?" # Name-personal t4 = TIT "%s?" # Title t1016 = ( PER "%s?" ) or ( TIT "%s?" ) # Any t1017 = ( PER "%s?" ) or ( TIT "%s?" ) # Server-Choice siehe auch Beispiel-Datei etc/z3950.dict-dist http://www.allegro-c.de/
Installation (1/2) http://www.allegro-c.de/ allegro Expertentreffen, 9. – 11. Juni 2005 Universitätsbibliothek Braunschweig Installation (1/2) Avanti-Server installieren und testen Datenbanken per Avanti exportieren Download: ftp.allegro-c.de / aktuelle-version / z3950 Installationsprogramm starten Anpassen: etc/z3950.cfg etc/<db>.dict Parameterdateien kopieren shared/z3950 Allegro-Datenbankverzeichnis http://www.allegro-c.de/
Installation (2/2) http://www.allegro-c.de/ allegro Expertentreffen, 9. – 11. Juni 2005 Universitätsbibliothek Braunschweig Installation (2/2) Startmenü z3950 Als Dienst installieren Systemsteuerung Verwaltung Dienst Dienst „z3950“ starten Start-Typ auf „automatisch“ stellen (falls gewünscht) Windows XP SP2: Systemsteuerung Windows-Firewall Port 9999 freigeben Linux / Solaris: Z3950 läuft als Benutzer „nobody“ Start-Kommando: $ nohup bin/z3950 & http://www.allegro-c.de/
Vielen Dank für Ihre Aufmerksamkeit! allegro Expertentreffen, 9. – 11. Juni 2005 Universitätsbibliothek Braunschweig Informationen im WWW Avanti Server http://www.allegro-c.de/doku/avanti Z39.50 Schnittstelle http://www.allegro-c.de/z3950/ Ansprechpartner: B,Eversberg <ev@biblio.tu-bs.de> Vielen Dank für Ihre Aufmerksamkeit! http://www.allegro-c.de/