Schnittstellen und Webservices

  • View
    2.792

  • Download
    1

Embed Size (px)

Text of Schnittstellen und Webservices

  • 1. Digitale Bibliothek Jakob Voss Schnittstellen und Webservices Digitale Bibliothek WS 2007/2008 Fachhochschule Hannover Informationsmanagement (BA) 19. November 2007

2. 3 Ebenen einer Webseite

  • Verhalten JavaScript
  • Darstellung CSS
  • Inhalt HTML

3. 4 Ebenen einer Webseite

  • Verhalten JavaScript
  • Darstellung CSS
  • Inhalt HTML
  • Informationen APIs

4. APIs

  • A pplicationP rogrammingI nterface
  • Daten rein, Daten raus
  • Nutzung von Dienstleistungen durch Programme
  • Anfrage und Rckgabe/Aktion (im Gegensatz zu Beispiel zu Microformats)

5. APIs Informationssystem Programm 6. Beispiel: unAPI

  • Ziel
    • Bereitstellung einzeln identifizierter Objekte
  • Anfragesyntax
    • HTTP-Request mit zwei Parametern
      • id:Identifikator des Objektes
      • format : Gewnschtes Format
  • Antwortsyntax
    • Formatliste in XML oder spezifisches Format

7. Beispiel: unAPI

  • UNAPI (keine Parameter)
  • Liste von allgemeinen Formaten

8. Beispiel: unAPI

  • UNAPI?id= IDENTIFIER(kein Format)
  • Liste von Formaten fr dieses Objekt

9. Beispiel: unAPI

  • UNAPI?id= IDENTIFIER &format= FORMAT
  • Formatspezifisch (z.B. MARCXML-Format)

10. Weiteres Beispiel: SeeAlso

  • Basiert auf unAPI und OpenSearch Suggestions
  • Query-Format:
    • wie unAPI mit format=seealso&id=...
  • Response-Format:
    • OpenSearch Suggestions (JSON)
    • ["..id..",[..titles..],[..descriptions..],[..urls..]]

11. 12. ? 13. SeeAlso Linkserver Links 14. JavaScript SeeAlso Linkserver Links 15. SeeAlso Linkserver ISBN Links JavaScript 16. (OpenSearch Suggestions) SeeAlso Linkserver ISBN JSON Links JavaScript 17. (OpenSearch Suggestions) SeeAlso Linkserver ISBN JSON Links 18. Weitere Beispiele fr APIs

  • 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 Verlsslichkeit
    • Meist aufwndiger (aber nicht immer)
    • Jemand knnte sich beschweren
  • Oft die einzige Mglichkeit
  • Tip: FirefoxDownloadHelper -Plugin

20. Webservices

  • Informatiker-Buzzword
  • Einfach:API ber HTTP
  • Komplex:SOAP, XML-RPC, WSDL...
  • Meist ist XML im Spiel

21. Relevante Schnittstellen fr Digitale Bibliotheken

  • Suchen: Z39.50, SRU/SRW, OpenSearch...
  • Einsammeln/Verteilen:OAI, ATOM, RSS...
  • Kopieren:unAPI
  • Verlinken:SeeAlso
  • ...

22. APIs fr Suchmaschinen Crawler, Harvester, Import... Anfrage Ergebnis Anfrage Ergebnis Suchmaschine Informationsquellen Metasuchmaschine Suchmaschine Suchmaschine Suchmaschine Informationsquellen 23. APIs fr Suchmaschinen

  • A) Suche
    • Z39.50, SRU/SRW
    • OpenSearch
    • ...
  • B) Crawling, Harvesting, Syndication
    • OAI-PMH, Sitemaps
    • Feeds (ATOM, RSS)
    • ...
  • Suchprotokolle ggf. auch frs Harvesting!

24. OAI-PMH

  • Open Archives Initiative (OAI)
  • Protocol for Metadata Harvesting (PMH)
  • REST-API
    • Anfrage: URL
    • Antwort: XML

25. OAI-PMH

  • Repository als Data 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-Funktionalitt als Webservice
  • Suchabfrage von Datenbanken
  • verschiedene Operationen ( operation )
    • explain
    • searchRetrieve
    • scan

28. SRU/SRW-searchRetrieve

  • Request aus mehreren optionalen Parametern
  • versionist notwendig,queryenthlt die Anfrage in Common Query Language (CQL)

29. API-Programmbibliotheken

  • Zugriff auf APIs mittels Programmiersprache
  • Beispiele: Z39.50-Client in PHP:
  • $con =yaz_connect ( "z3950.loc.gov:7090/voyager" );
  • yaz_syntax ( $con, "usmarc" );
  • yaz_range ( $con, 1, 10 );
  • yaz_search ( $con, "rpn", $query );
  • yaz_wait ();
  • $hits =yaz_hits ( $con );
  • for ($p = 1; $p 100 Seiten nicht frei verfgbar
    • OAI-PMH: ~ 30 Seiten http://www.openarchives.org/OAI/openarchivesprotocol.html
    • unAPI: 1 (+3) Seiten http://unapi.info/specs/

31. Serviceorientierte Architektur

  • Eine monolithische Anwendung
  • Geht nicht, unsere Software kann das nicht
  • Viele lose gekoppelte Bausteine
  • Probier' es selber, hier sind die APIs!

32. Beispiele fr kein SOA

  • Handy, auf dem keine eigenen Klingeltne geladen werden knnen
  • iPod, mit dem keine Musik ausgetauscht werden kann
  • Webseite, die Neuigkeiten nicht als Feed anbietet
  • Tendenziell alle zu groen kommerziellen Systeme (Monopole)

33. Herkmmliches Bibliothekssystem Suchindex Suchinterface Trefferanzeige Titelanzeige Katalogisierung Ausleihe Benachrichtigung Erwerbung Fernleihe u.v.a.m. Gespeicherte Suchen 34. Modulares Bibliothekssystem Suchinterface Trefferanzeige Titelanzeige Katalogisierung Suchindex Ausleihe Fernleihe Gespeicherte Suchen Erwerbung Benachrichtigung 35. Serviceorientiertes Bibliothekssystem Benachrichtigung Gespeicherte Suchen Katalogisierung Suchinterface Trefferanzeige Suchindex Erwerbung Ausleihe Fernleihe Titelanzeige Externe Anwendung Externe Anwendung Externe Anwendung 36. Service-Beispiel: Katalogisierungsclient 37. Bibliographische Daten ? Katalog 38. Bibliographische Daten Katalogisierungs- Webservice Katalog 39. Bibliographische Daten Katalogisierungs- Client Katalog Katalogisierungs- Webservice 40. Bibliographische Daten Katalogisierungs- Client Katalog OpenURLund weitere Formate Katalogisierungs- Webservice 41. Bibliographische Daten Katalogisierungs- Client Katalog COinS oder unAPI OpenURLund weitere Formate Katalogisierungs- Webservice 42. Zusammenfassung

  • API: Klar spezifizierte Schnittstellen*
  • Webservices: APIs ber HTTP (meist REST)
  • Verwendung von Programmbibliotheken
  • Relevant fr digitale Bibliotheken
    • Suchen: Z39.50, SRU/SRW, OpenSearch...
    • Einsammeln/Verteilen:OAI, ATOM, RSS...
    • Kopieren:unAPI,Verlinken:SeeAlso

* hoffentlich