[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [InetBib] SOAP Web Services für Bibliotheken



Hallo Herr Schlueter,

On Thu, May 04, 2006 at 05:58:05PM +0200, Roman Schlüter wrote:
ich hätte gerne mal eine techische Frage an euch gerichtet.

Gibt es Projekte, bei denen Bibliothek-Informationen mittels Webservices 
mit SOAP (Simple Object Access Protocol)
angeboten werden?
Oder ist jemandem eine ähnliche SOAP-Anwendung bekannt, die man auch für 
Bibliotheken einsetzen könnte.

wir verwenden im Rahmen unseres KUG Recherche-Portals (KUG = Koelner
UniversitaetsgesamtKatalog, 118 Kataloge, knapp 5 Mio. Titel,
Eigenentwicklung als OpenSource Software, http://kug.ub.uni-koeln.de/) an
verschiedenen Stellen SOAP-basierte WebServices. So kann das Suchportal
intern u.a. ueber eine entsprechend selbst entwickelte Schnittstelle
angesprochen werden. Ebenso greifen wir ueber eigene SOAP-basierte
WebServices auf unsere verschiedenen SunRise Lokalsysteme von Sisis
(firmiert jetzt als OCLC PICA) der USB und verschiedener Institute zu. Das
umfasst diverse WebServices z.B. aus den Bereichen Authentifizierung,
Medienstatus, Benutzerinformationen (Ausleihen, Vormerkungen usw.) sowie
Katalog- und Normdaten. Ebenso verwenden wir in anderen Eigenentwicklungen
an verschiedenen Stellen SOAP-WebServices z.B. zur automatischen
Titelsatzuebernahme, wie z.B. bei unserer Digitalen Einbandatenbank
(http://einbandsammlung.ub.uni-koeln.de/).

Ob man immer SOAP nehmen muss oder ein leichtgewichtigerer Austausch, z.B.
GET/POST-Anfrage mit Daten-Ruecklieferung als XML, nicht manchmal mehr Sinn
machen kann sei mal dahingestellt ;-)

Wir setzen hier komplett auf die Programmiersprache Perl mit dem Modul
SOAP::Lite als in den Apache Webserver eingebettete mod_perl Applikationen.
Damit ist der Aufruf entsprechender WebServices bzw. die Programmierung
eines solchen (zunaechst mal quick'n'dirty als Prototyp) sehr einfach.

Hier z.B. ein Beispiel fuer einen simplen Client ohne strenge Typisierung.

---schnipp---
#!/usr/bin/perl -w

  use SOAP::Lite +trace;
  use YAML;
    
  my $soap = SOAP::Lite
              -> uri("urn:/Circulation")
              -> proxy("http://interner.rechner:port/olws";);
  my $request = $soap->get_reservations("BenutzerNR","OPACPin","Datenbankname");
                                    
  if ($request->fault) {
     print "SOAP MediaStatus Error", join ', ', $request->faultcode,
     $request->faultstring, $request->faultdetail;
  }
  else {
     print YAML::Dump($request->result);
  }
---schnapp---

Das sind ohne Fehlerbehandlung gerade mal 5 Befehle.

WebServices dieser Art werden hier nur zum lesenden Zugriff auf
Informationen in unserem Bibliothekssystem verwendet - zwischen eigenen
Anwendungen natuerlich auch schreibend. Fuer sehr viele Anwendungsfaelle
reicht das aber auch aus. Ansonsten bietet es sich IMHO an, beim jeweiligen
Bibliothekssystemhersteller nach der Existenz bzw. der Lizensierungsmoeglichkeit
etwaig angebotener High-Level APIs zu fragen (die nicht notwendigerweise
SOAP-basiert sein muessen...). Sisis verfuegt z.B. seit vielen Jahren ueber
ein Protokoll namens SLNP, ExLibris bietet nach meiner Erinnerung eine
Komponente namens X-Server an, andere kenne ich bisher nicht. 

Allerdings wuerde ich auch hier empfehlen, diese High-Level APIs dann in
eigene WebServices zu kapseln, um eine konstante Abstraktionszwischenschicht
fuer eigenen Applikationen einzufuehren.

Gruss

O. Flimm

-- 
Oliver Flimm                                E-mail: flimm@xxxxxxxxxxxxxxx
Computing Department                        Voice : +492214703330 (Room 303)
Central Library (USB)                       Adress: Universitaetsstr. 33
University of Cologne, Germany                      D-50931 Koeln



Listeninformationen unter http://www.inetbib.de.