Digitale Bibliothek Jakob Voss Schnittstellen und Webservices Digitale Bibliothek WS 2007/2008 Fachhochschule Hannover Informationsmanagement (BA) 19. November 2007
3 Ebenen einer Webseite Verhalten   JavaScript Darstellung   CSS Inhalt   HTML
4 Ebenen einer Webseite Verhalten   JavaScript Darstellung   CSS Inhalt   HTML Informationen APIs
APIs A pplication  P rogramming  I nterface Daten rein, Daten raus Nutzung von Dienstleistungen durch Programme Anfrage und Rückgabe/Aktion (im Gegensatz zu Beispiel zu Microformats)
APIs Informationssystem Programm
Beispiel: unAPI Ziel Bereitstellung einzeln identifizierter Objekte Anfragesyntax HTTP-Request mit zwei Parametern id:  Identifikator des Objektes format : Gewünschtes Format Antwortsyntax Formatliste in XML oder spezifisches Format
Beispiel: unAPI UNAPI (keine Parameter) Liste von allgemeinen Formaten <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <formats> <format name=&quot;text&quot; type=&quot;text/plain&quot; /> <format name=&quot;marcxml&quot; type=&quot;application/xml&quot;   docs=&quot;http://www.loc.gov/standards/marcxml/&quot;/> </formats>
Beispiel: unAPI UNAPI?id= IDENTIFIER  (kein Format) Liste von Formaten für dieses Objekt <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <formats id=&quot; IDENTIFIER &quot;> <format name=&quot;text&quot; type=&quot;text/plain&quot; /> <format name=&quot;marcxml&quot; type=&quot;application/xml&quot;   docs=&quot;http://www.loc.gov/standards/marcxml/&quot;/> </formats>
Beispiel: unAPI UNAPI?id= IDENTIFIER &format= FORMAT Formatspezifisch (z.B. MARCXML-Format)
Weiteres Beispiel: SeeAlso Basiert auf unAPI und OpenSearch Suggestions Query-Format: wie unAPI mit format=seealso&id=... Response-Format: OpenSearch Suggestions (JSON) [&quot;..id..&quot;,[..titles..],[..descriptions..],[..urls..]]
 
?
SeeAlso Linkserver Links
JavaScript SeeAlso Linkserver Links
SeeAlso Linkserver ISBN Links JavaScript
(OpenSearch Suggestions) SeeAlso Linkserver ISBN JSON Links JavaScript
(OpenSearch Suggestions) SeeAlso Linkserver ISBN JSON Links
Weitere Beispiele für APIs Google API Amazon API thingISBN, ISBNdb ... zeno API OCLC Service Grid ...
Keine API da? Selber machen! (Scraping, Wraping...) Vorteil Hacken macht Spaß und ist lehrreich Nachteil Keine Verlässlichkeit Meist aufwändiger (aber nicht immer) Jemand könnte sich beschweren Oft die einzige Möglichkeit Tip: Firefox  DownloadHelper -Plugin
Webservices Informatiker-Buzzword Einfach:  API über HTTP Komplex:  SOAP, XML-RPC, WSDL...  Meist ist XML im Spiel
Relevante Schnittstellen für Digitale Bibliotheken Suchen:   Z39.50, SRU/SRW, OpenSearch... Einsammeln/Verteilen:  OAI, ATOM, RSS... Kopieren:  unAPI Verlinken:  SeeAlso ...
APIs für Suchmaschinen Crawler, Harvester, Import... Anfrage Ergebnis Anfrage Ergebnis Suchmaschine Informationsquellen Metasuchmaschine Suchmaschine Suchmaschine Suchmaschine Informationsquellen
APIs für Suchmaschinen A) Suche Z39.50, SRU/SRW OpenSearch ... B) Crawling, Harvesting, Syndication OAI-PMH, Sitemaps Feeds (ATOM, RSS) ... Suchprotokolle ggf. auch fürs Harvesting!
OAI-PMH Open Archives Initiative (OAI) Protocol for Metadata Harvesting (PMH) REST-API Anfrage: URL Antwort: XML
OAI-PMH Repository als Data Provider Harvester sammelt Metadaten-Records Bereitstellung von Dienstleistungen durch Service-Provider  Beispiel: OAIster (http://www.oaister.org/)
OAI-PMH Anfrage-Parameter verb  (Identify, ListMetadataFormats, GetRecord, ListIdentifier, ListRecords) identifier   metadataPrefix  (oai_dc, ...) from,   until ,  set  (Eingrenzung Datum/Menge) resumptionToken  (Ergebnisliste fortsetzen) Ausprobieren: OAI Repository Explorer   http://re.cs.uct.ac.za/
Search/Retrieve via URL (SRU) Search/Retrieve Web Service (SRW) Neuentwicklung der wichtigsten Z39.50-Funktionalität als Webservice Suchabfrage von Datenbanken verschiedene Operationen ( operation ) explain searchRetrieve scan
SRU/SRW-searchRetrieve Request aus mehreren optionalen Parametern version  ist notwendig,  query  enthält die Anfrage in Common Query Language (CQL)
API-Programmbibliotheken Zugriff auf APIs mittels Programmiersprache Beispiele: Z39.50-Client in PHP: $con =  yaz_connect ( &quot;z3950.loc.gov:7090/voyager&quot; ); yaz_syntax ( $con, &quot;usmarc&quot; ); yaz_range ( $con, 1, 10 ); yaz_search ( $con, &quot;rpn&quot;, $query ); yaz_wait (); $hits =  yaz_hits ( $con ); for ($p = 1; $p <= 10; $p++) { $rec =  yaz_record ( $con, $p, &quot;string&quot; ); # ... }
Spezifikation durch Standards Ohne etablierte Programmbibliothek: Standard genau lesen! Vertrauen ist gut, Kontrolle ist besser. Z39.50: > 100 Seiten nicht frei verfügbar OAI-PMH: ~ 30 Seiten http://www.openarchives.org/OAI/openarchivesprotocol.html unAPI: 1 (+3) Seiten http://unapi.info/specs/
Serviceorientierte Architektur Eine monolithische Anwendung Geht nicht, unsere Software kann das nicht Viele lose gekoppelte Bausteine Probier' es selber, hier sind die APIs!
Beispiele für kein SOA Handy, auf dem keine eigenen Klingeltöne geladen werden können iPod, mit dem keine Musik ausgetauscht werden kann Webseite, die Neuigkeiten nicht als Feed anbietet Tendenziell alle zu großen kommerziellen Systeme (Monopole)
Herkömmliches Bibliothekssystem Suchindex Suchinterface Trefferanzeige Titelanzeige Katalogisierung Ausleihe Benachrichtigung Erwerbung Fernleihe u.v.a.m. Gespeicherte Suchen
Modulares Bibliothekssystem Suchinterface Trefferanzeige Titelanzeige Katalogisierung Suchindex Ausleihe Fernleihe Gespeicherte Suchen Erwerbung Benachrichtigung
Serviceorientiertes Bibliothekssystem Benachrichtigung Gespeicherte Suchen Katalogisierung Suchinterface Trefferanzeige Suchindex Erwerbung Ausleihe Fernleihe Titelanzeige Externe Anwendung Externe Anwendung Externe Anwendung
Service-Beispiel: Katalogisierungsclient
Bibliographische Daten ? Katalog
Bibliographische Daten Katalogisierungs- Webservice Katalog
Bibliographische Daten Katalogisierungs- Client Katalog Katalogisierungs- Webservice
Bibliographische Daten Katalogisierungs- Client Katalog OpenURL  und weitere Formate Katalogisierungs- Webservice
Bibliographische Daten Katalogisierungs- Client Katalog COinS   oder unAPI OpenURL  und weitere Formate Katalogisierungs- Webservice
Zusammenfassung API: Klar spezifizierte Schnittstellen* Webservices: APIs über HTTP (meist REST) Verwendung von Programmbibliotheken Relevant für digitale Bibliotheken Suchen:   Z39.50, SRU/SRW, OpenSearch... Einsammeln/Verteilen:  OAI, ATOM, RSS... Kopieren:  unAPI,  Verlinken:  SeeAlso * hoffentlich

Schnittstellen und Webservices

  • 1.
    Digitale Bibliothek JakobVoss Schnittstellen und Webservices Digitale Bibliothek WS 2007/2008 Fachhochschule Hannover Informationsmanagement (BA) 19. November 2007
  • 2.
    3 Ebenen einerWebseite Verhalten JavaScript Darstellung CSS Inhalt HTML
  • 3.
    4 Ebenen einerWebseite Verhalten JavaScript Darstellung CSS Inhalt HTML Informationen APIs
  • 4.
    APIs A pplication P rogramming I nterface Daten rein, Daten raus Nutzung von Dienstleistungen durch Programme Anfrage und Rückgabe/Aktion (im Gegensatz zu Beispiel zu Microformats)
  • 5.
  • 6.
    Beispiel: unAPI ZielBereitstellung einzeln identifizierter Objekte Anfragesyntax HTTP-Request mit zwei Parametern id: Identifikator des Objektes format : Gewünschtes Format Antwortsyntax Formatliste in XML oder spezifisches Format
  • 7.
    Beispiel: unAPI UNAPI(keine Parameter) Liste von allgemeinen Formaten <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <formats> <format name=&quot;text&quot; type=&quot;text/plain&quot; /> <format name=&quot;marcxml&quot; type=&quot;application/xml&quot; docs=&quot;http://www.loc.gov/standards/marcxml/&quot;/> </formats>
  • 8.
    Beispiel: unAPI UNAPI?id=IDENTIFIER (kein Format) Liste von Formaten für dieses Objekt <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <formats id=&quot; IDENTIFIER &quot;> <format name=&quot;text&quot; type=&quot;text/plain&quot; /> <format name=&quot;marcxml&quot; type=&quot;application/xml&quot; docs=&quot;http://www.loc.gov/standards/marcxml/&quot;/> </formats>
  • 9.
    Beispiel: unAPI UNAPI?id=IDENTIFIER &format= FORMAT Formatspezifisch (z.B. MARCXML-Format)
  • 10.
    Weiteres Beispiel: SeeAlsoBasiert auf unAPI und OpenSearch Suggestions Query-Format: wie unAPI mit format=seealso&id=... Response-Format: OpenSearch Suggestions (JSON) [&quot;..id..&quot;,[..titles..],[..descriptions..],[..urls..]]
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
    SeeAlso Linkserver ISBNLinks JavaScript
  • 16.
    (OpenSearch Suggestions) SeeAlsoLinkserver ISBN JSON Links JavaScript
  • 17.
    (OpenSearch Suggestions) SeeAlsoLinkserver ISBN JSON Links
  • 18.
    Weitere Beispiele fürAPIs Google API Amazon API thingISBN, ISBNdb ... zeno API OCLC Service Grid ...
  • 19.
    Keine API da?Selber machen! (Scraping, Wraping...) Vorteil Hacken macht Spaß und ist lehrreich Nachteil Keine Verlässlichkeit Meist aufwändiger (aber nicht immer) Jemand könnte sich beschweren Oft die einzige Möglichkeit Tip: Firefox DownloadHelper -Plugin
  • 20.
    Webservices Informatiker-Buzzword Einfach: API über HTTP Komplex: SOAP, XML-RPC, WSDL... Meist ist XML im Spiel
  • 21.
    Relevante Schnittstellen fürDigitale Bibliotheken Suchen: Z39.50, SRU/SRW, OpenSearch... Einsammeln/Verteilen: OAI, ATOM, RSS... Kopieren: unAPI Verlinken: SeeAlso ...
  • 22.
    APIs für SuchmaschinenCrawler, Harvester, Import... Anfrage Ergebnis Anfrage Ergebnis Suchmaschine Informationsquellen Metasuchmaschine Suchmaschine Suchmaschine Suchmaschine Informationsquellen
  • 23.
    APIs für SuchmaschinenA) Suche Z39.50, SRU/SRW OpenSearch ... B) Crawling, Harvesting, Syndication OAI-PMH, Sitemaps Feeds (ATOM, RSS) ... Suchprotokolle ggf. auch fürs Harvesting!
  • 24.
    OAI-PMH Open ArchivesInitiative (OAI) Protocol for Metadata Harvesting (PMH) REST-API Anfrage: URL Antwort: XML
  • 25.
    OAI-PMH Repository alsData Provider Harvester sammelt Metadaten-Records Bereitstellung von Dienstleistungen durch Service-Provider Beispiel: OAIster (http://www.oaister.org/)
  • 26.
    OAI-PMH Anfrage-Parameter verb (Identify, ListMetadataFormats, GetRecord, ListIdentifier, ListRecords) identifier metadataPrefix (oai_dc, ...) from, until , set (Eingrenzung Datum/Menge) resumptionToken (Ergebnisliste fortsetzen) Ausprobieren: OAI Repository Explorer http://re.cs.uct.ac.za/
  • 27.
    Search/Retrieve via URL(SRU) Search/Retrieve Web Service (SRW) Neuentwicklung der wichtigsten Z39.50-Funktionalität als Webservice Suchabfrage von Datenbanken verschiedene Operationen ( operation ) explain searchRetrieve scan
  • 28.
    SRU/SRW-searchRetrieve Request ausmehreren optionalen Parametern version ist notwendig, query enthält die Anfrage in Common Query Language (CQL)
  • 29.
    API-Programmbibliotheken Zugriff aufAPIs mittels Programmiersprache Beispiele: Z39.50-Client in PHP: $con = yaz_connect ( &quot;z3950.loc.gov:7090/voyager&quot; ); yaz_syntax ( $con, &quot;usmarc&quot; ); yaz_range ( $con, 1, 10 ); yaz_search ( $con, &quot;rpn&quot;, $query ); yaz_wait (); $hits = yaz_hits ( $con ); for ($p = 1; $p <= 10; $p++) { $rec = yaz_record ( $con, $p, &quot;string&quot; ); # ... }
  • 30.
    Spezifikation durch StandardsOhne etablierte Programmbibliothek: Standard genau lesen! Vertrauen ist gut, Kontrolle ist besser. Z39.50: > 100 Seiten nicht frei verfügbar OAI-PMH: ~ 30 Seiten http://www.openarchives.org/OAI/openarchivesprotocol.html unAPI: 1 (+3) Seiten http://unapi.info/specs/
  • 31.
    Serviceorientierte Architektur Einemonolithische Anwendung Geht nicht, unsere Software kann das nicht Viele lose gekoppelte Bausteine Probier' es selber, hier sind die APIs!
  • 32.
    Beispiele für keinSOA Handy, auf dem keine eigenen Klingeltöne geladen werden können iPod, mit dem keine Musik ausgetauscht werden kann Webseite, die Neuigkeiten nicht als Feed anbietet Tendenziell alle zu großen kommerziellen Systeme (Monopole)
  • 33.
    Herkömmliches Bibliothekssystem SuchindexSuchinterface Trefferanzeige Titelanzeige Katalogisierung Ausleihe Benachrichtigung Erwerbung Fernleihe u.v.a.m. Gespeicherte Suchen
  • 34.
    Modulares Bibliothekssystem SuchinterfaceTrefferanzeige Titelanzeige Katalogisierung Suchindex Ausleihe Fernleihe Gespeicherte Suchen Erwerbung Benachrichtigung
  • 35.
    Serviceorientiertes Bibliothekssystem BenachrichtigungGespeicherte Suchen Katalogisierung Suchinterface Trefferanzeige Suchindex Erwerbung Ausleihe Fernleihe Titelanzeige Externe Anwendung Externe Anwendung Externe Anwendung
  • 36.
  • 37.
  • 38.
  • 39.
    Bibliographische Daten Katalogisierungs-Client Katalog Katalogisierungs- Webservice
  • 40.
    Bibliographische Daten Katalogisierungs-Client Katalog OpenURL und weitere Formate Katalogisierungs- Webservice
  • 41.
    Bibliographische Daten Katalogisierungs-Client Katalog COinS oder unAPI OpenURL und weitere Formate Katalogisierungs- Webservice
  • 42.
    Zusammenfassung API: Klarspezifizierte Schnittstellen* Webservices: APIs über HTTP (meist REST) Verwendung von Programmbibliotheken Relevant für digitale Bibliotheken Suchen: Z39.50, SRU/SRW, OpenSearch... Einsammeln/Verteilen: OAI, ATOM, RSS... Kopieren: unAPI, Verlinken: SeeAlso * hoffentlich