Schnittstellen und Webservices

download Schnittstellen und Webservices

If you can't read please download the document

Transcript of Schnittstellen und Webservices

Folien zur Lehrveranstaltung Digitale Bibliothek von Jakob Voss

Digitale Bibliothek

Jakob Vo

Schnittstellen und
Webservices

Digitale BibliothekWS 2008/2009

Fachhochschule HannoverInformationsmanagement (BA)13. Oktober 2008

Zusammenfassung Datenformate

Es gibt viele Wege, die gleichen
Informationen zu kodieren

Festlegung von Datenformaten geschieht durch aufeinander aufbauende Standards

Abstrakte Strukturierung (Datenmodell)

Konkrete Kodierung (Datenformat)

Anwendung (Werkzeuge und Praxis)

Einhaltung von Standards muss mittels Validierung berprft werden

Zeitangabe nach RFC 822*

date-time = [ day "," ] date time ; dd mm yy

; hh:mm:ss zzz

day = "Mon" / "Tue" / "Wed" / "Thu"

/ "Fri" / "Sat" / "Sun"

date = 1*2DIGIT month 2DIGIT ; day month year

; e.g. 20 Jun 82

month = "Jan" / "Feb" / "Mar" / "Apr"

/ "May" / "Jun" / "Jul" / "Aug"

/ "Sep" / "Oct" / "Nov" / "Dec"

time = hour zone ; ANSI and Military

hour = 2DIGIT ":" 2DIGIT [":" 2DIGIT]

; 00:00:00 - 23:59:59

zone = "UT" / "GMT" ; Universal Time

; North American : UT

/ "EST" / "EDT" ; Eastern: - 5/ - 4

/ "CST" / "CDT" ; Central: - 6/ - 5

/ "MST" / "MDT" ; Mountain: - 7/ - 6

/ "PST" / "PDT" ; Pacific: - 8/ - 7

/ 1ALPHA ; Military: Z = UT;

; A:-1; (J not used)

; M:-12; N:+1; Y:+12

/ ( ("+" / "-") 4DIGIT ) ; Local differential

; hours+min. (HHMM)

FormaleRegeln inBackus-Naur-Form

*STANDARD FOR THE FORMAT OFARPA INTERNET TEXT MESSAGES(E-Mail) August 13, 1982

Motivation

Fr Aufbau, Weiterentwicklung und Wartung digitaler Bibliotheken sind Kenntnisse von Datenformaten und Schnittstellen (Zweck, Eigenschaften...) unerlsslich.

Wie kommen nun
die Daten zusammen?

Dokumente

Nutzer

Datenbank

Experte

Autor

Beitrag

Dokumente

Datensatz

Datenbank

Datensatz

Anwendung

Datenbank

Unbekanntes System

Anwendung

Wie kommen nun
die Daten zusammen?

Dokumente

Nutzer

Datenbank

Experte

Anwendung

Autor

Beitrag

Dokumente

Datensatz

Datenbank

Datensatz

Anwendung

Datenbank

Unbekanntes System

Informations-systemSchnittstellen

Benutzer

Programm

Benutzerschnittstelle

Programmierschnittstelle

Programmierschnittstellen
= Application Programming Interface (API)

Spezifikation durch Standards

Implementation durch Programme

Kompatibilitt durch gemeinsame Einhaltung der Spezifikation

Nutzung von Diensten (Services) durch andere Programme

Grundprinzip: Daten rein, Daten raus

Beispiel: HTTP

Cache-Control: private

Content-Type: text/html; charset=UTF-8

Content-Encoding: gzip

Server: gws

Content-Length: 1845

Date: Mon, 01 Oct 2007 09:05:53 GMT

200 OK

...

GET /search?q=internet HTTP/1.1

Host: www.google.de

User-Agent: Mozilla/5.0 (...)

...

Referer: http://www.wikipedia.de/wiki/Internet

Relevant auch fr Webserver-Logfiles

Antwort

Anfrage

Beispiel: HTTP

Cache-Control: private

Content-Type: text/html; charset=UTF-8

Content-Encoding: gzip

Server: gws

Content-Length: 1845

Date: Mon, 01 Oct 2007 09:05:53 GMT

200 OK

...

GET /search?q=internet HTTP/1.1

Host: www.google.de

User-Agent: Mozilla/5.0 (...)

...

Referer: http://www.wikipedia.de/wiki/Internet

Antwort

Anfrage

URL

DNS

MIME type

HTML

RFC 822 date-time

Relevante Schnittstellen
fr Digitale Bibliotheken

Suchen: Z39.50, SRU/SRW, OpenSearch

Sammeln/Verteilen: OAI-PMH, ATOM, RSS

Kopieren/Status: unAPI, SeeAlso, DAIA

Bearbeiten: SRU Update, ATOMPub

Identity Management: Shibboleth, OpenID

Auerdem bisher: NCIP, SIP2 ...

Initiativen fr bessere Schnittstellen:

Jangle, OCLC Service Grid ...

Beispiel: unAPI

Zweck

Bereitstellung einzeln identifizierter Objekte

Anfragesyntax

HTTP-Request mit zwei Parametern

id: Identifikator des Objektes

format: Gewnschtes Format

Antwortsyntax

Formatliste in XML oder Objekt
in einem gewnschten Format

unAPI

BASEURL (keine Parameter)

Liste von allgemeinen Formaten

unAPI

BASEURL?id=IDENTIFIER (kein Format)

Liste von Formaten fr dieses Objekt

unAPI

BASEURL?id=IDENTIFIER&format=FORMAT

Formatspezifisch (z.B. DC, MARCXML, ...)

Datensatz

unAPI Server

Schnittstelle != Datenformat

Viele Schnittstellen lassen offen, welche konkreten Datenformate verwendet werden

hnlich wie bei allgemeinen Kodierungs-formen (XML, JSON, CSV...) und konkreten Kodierungen von Datenformaten

Format X ber Schnittstelle Y

Beispiele:

HTML, XML ... ber HTTP

DC, MARCXML ... ber unAPI oder OAI-PMH

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/

Webservices

Informatiker-Buzzword

Komplex: SOAP, XML-RPC, WSDL...

Einfach: API ber HTTP

Meist ist XML im Spiel

Kombination mehrere Services als Mashup

Was tun ohne API?

Selber machen! (Scraping, Wraping...)

Vorteil

Lehrreich

Nachteil

Keine Verlsslichkeit

Meist aufwndiger (aber nicht immer)

Jemand knnte sich beschweren

Oft die einzige Mglichkeit

Tip: Firefox DownloadHelper-Plugin

Verfgbarkeit ermitteln mittels Screen Scraper

Katalog der Bibliothek im Kurt-Schwitters-Forum

http://opc4.tib.uni-hannover.de:8080/DB=11/

Titeldaten Standort und Ausleihstatus

Raussuchen per Hand

Verfgbarkeit ermitteln mittels Screen Scraper

use LWP::Simple;

my $opac = 'http://opc4.tib.uni-hannover.de:8080/DB=11';

my $ikt = 1016;

my $regexp = '>Ausleihstatus: ]+>([^>]+)
([^>]+)