4. Schnittstellen
WofĂŒr werden Schnittstellen benutzt?
ⶠDaten rein (Katalogdaten Ă€ndernâŠ)
ⶠDaten raus (Titeldaten suchen, Status abfragenâŠ)
ⶠAktion anstoĂen (Medium vormerkenâŠ)
âŠund zwar automatisierbar (das Gegenteil von GeschĂ€ftsgang)!
5. Schnittstellen
Arten von Schnittstellen
ⶠNutzerschnittstellen / BenutzeroberïŹĂ€chen
ⶠInterne Programmierschnittstellen
ⶠWeb-APIs / Web-Services
Technische Umsetzung
ⶠMeist JSON oder XML ĂŒber HTTP[S]
ⶠMeist einfache URL-Anfragen (GET/POST):
http://example.org/etwas/damit?machen=los
Buzzwords: REST, Mashup, Web 2.0, SOA âŠ
6. Serviceorientierter Architektur
Vorteile
ⶠGrundfunktionen kombiniertbar (âLego-Bausteineâ)
ⶠUnabhÀngig von Komponenten hinter der Schnittstelle
ⶠz.B. RSS/Atom, SRU, OAI-PMH⊠aus beliebigen Systemen
ⶠz.B. DAIA an LBS3, LBS4, Koha, aDIS/BMSâŠ
Nachteile
ⶠSchnittstellen mĂŒssen sauber speziïŹziert werden
ⶠSchnittstellen mussen sauber implementiert werden
8. Saubere Schnittstellen
Technische SpeziïŹkation
ⶠNicht zu komplex (ĂŒberschaubar)
ⶠNicht zu ungenau (formal und exakt)
ⶠNicht zu abstrakt (wenige Freiheitsgrade)
ⶠNicht zu speziell (unabhĂ€ngig von Software, SpracheâŠ)
ⶠNicht zu allgemein (ein Anwendungsfall pro API)
Umsetzung
ⶠGetestet (manuell und automatisch)
Bei PAIA: SpeziïŹkation durch VZG, Implementierung jeweils durch
shiphrah GmbH und eïŹective WEBWORK GmbH.
11. Motivation
Schnittstelle zum Nutzerkonto
ⶠAnzeige von Ausleihen, Vormerkungen, GebĂŒhrenâŠ
ⶠAusfĂŒhren von Vormerkungen und Bestellungen
ⶠPasswort Àndern
Anwendung
ⶠBibApp
ⶠVuFind
ⶠfreie Verwendung
Benachrichtigungssysteme, Lernumgebungen, Skripte, AppsâŠ
12. PAIA SpeziïŹkation
ĂïŹentlich unter http://gbv.github.io/paia/
Abstraktion von Ausleihsystemen (keine PICA-Besonderheiten)
PAIA besteht aus zwei Teilen:
ⶠPAIA auth (Zugangsdaten)
z.B. https://paia.gbv.de/isil/DE-Hil2/auth/methode
ⶠPAIA core (Nutzerkonto)
z.B. https://paia.gbv.de/isil/DE-Hil2/core/methode
JSON-Antwort auf Methode und Anfrage-Parameter
13. PAIA auth
HTTP POST login ZugriïŹ gewĂ€hren (Nutzername und Passwort)
HTTP POST logout ZugriïŹ entziehen
HTTP POST change Passwort Àndern
ⶠMit jedem login ein neues access_token
ⶠToken gilt fĂŒr begrenzte Zeit, Nutzer und Aktionen (scopes)
z.B. nur LesezugriïŹ, nur ein bestimmter Nutzer âŠ
ⶠKompatibel mit dem OAuth-Standard
15. PAIA core
ZugriïŹ auf das Benutzerkonto:
HTTP GET patron Nutzerinformationen (Name, Email, Status)
HTTP GET items Nutzerkonto (Ausleihen, VormerkungenâŠ)
HTTP GET fees GebĂŒhren
HTTP POST request Vormerkung, BestellungâŠ
HTTP POST renew VerlÀngerung
HTTP POST cancel Stornierung
16. Aktuelle Umsetzung
ⶠLBS-Screenscraping von eïŹective WEBWORK GmbH
ⶠNativer Server (LBS3-Protokoll) von shiphrah GmbH
ⶠProxy http://paia.gbv.de/ fĂŒr saubere URLs
ⶠz.B. http://paia.gbv.de/isil/DE-Hil2/auth
18. Schnittstellen-Ăbersicht
Schnittstellen im GBV-Wiki: http://ws.gbv.de/
SRU und Z39.50 fĂŒr Suche und Abruf von DatensĂ€tzen
unAPI fĂŒr den Abruf einzelner DatensĂ€tze
SeeAlso fĂŒr den Abruf von Links und Empfehlungen
DAIA fĂŒr den Abruf von VerfĂŒgbarkeitsinformationen
PAIA fĂŒr ZugriïŹ auf Benutzerkonten
Linked Data fĂŒr Standortverwaltung und Datenbankinfos
Je KonïŹguration, desto Aufwand.
19. GrundsÀtze
ⶠSaubere Schnittstellen brauchen Zeit fĂŒr Entwicklung,
Dokumentation und Tests
ⶠEinheitliche IdentiïŹer (URIs) fĂŒr Objekten in allen
Schnittstellen
z.B. basierend auf ISIL fĂŒr Bibliotheken
ⶠWichtig zu klÀren:
ⶠWas fĂŒr Objekte haben wir eigentlich?
ⶠWas fĂŒr Grundfunktionen brauchen wir?
20. NĂ€chste Schritte
ⶠDAIA ausbauen und KonïŹguration vereinfachen
ⶠPAIA fĂŒr LBS3 + LBS4 sowie in VuFind
ⶠMehr Clients fĂŒr Schnittstellen programmieren
ⶠPrioritĂ€ten fĂŒr weitere Schnittstellen klĂ€ren
ⶠâŠ
21. âŠ5 Jahre zuvor
Jakob VoĂ (Mai 2008 in Frankfurt):
Mit Webservices zum Katalog 2.0. Warum Mashups und
Serviceorientierte Architektur mehr als Buzzwords sind
http://de.slideshare.net/nichtich/
mit-webservices-zum-katalog-20