Schutz vor Datenklau und eingeschleppten Gefahren über Schnittstellen.
Schnittstellen und Webservices
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: ]+>([^>]+)
([^>]+)