23
Dead or alive? Le frontiere dei servizi bibliotecari nell'era della condivisione: 15 anni della comunità NILDE Roma, 19-20 Maggio 2016 NILDE Web Services: NILDE Web Services: API e l'integrazione con altri API e l'integrazione con altri sistemi sistemi Jacopo Anderlini, Alessandro Tugnoli, Silvana Mangiaracina CNR - Biblioteca d'Area di Bologna

NILDE Web Services: API e l'integrazione con altri sistemi

Embed Size (px)

Citation preview

Page 1: NILDE Web Services: API e l'integrazione con altri sistemi

Dead or alive? Le frontiere dei servizi bibliotecari nell'era della condivisione: 15 anni della comunità NILDE

Roma, 19-20 Maggio 2016

NILDE Web Services: NILDE Web Services: API e l'integrazione con altri API e l'integrazione con altri

sistemisistemi

Jacopo Anderlini, Alessandro Tugnoli, Silvana MangiaracinaCNR - Biblioteca d'Area di Bologna

Page 2: NILDE Web Services: API e l'integrazione con altri sistemi

Dead or alive? Le frontiere dei servizi bibliotecari nell'era della condivisione: 15 anni della comunità NILDE

Roma, 19-20 Maggio 20162

Indice degli argomenti Indice degli argomenti

● NILDE è un sistema “chiuso” ?

● Il nuovo framework e cosa è possibile farci

● Integrazione con gli altri sistemi

● Integrazione ALPE-NILDE

● Live demo

● Conclusioni

Page 3: NILDE Web Services: API e l'integrazione con altri sistemi

Dead or alive? Le frontiere dei servizi bibliotecari nell'era della condivisione: 15 anni della comunità NILDE

Roma, 19-20 Maggio 20163

NILDE sistema “chiuso” ?NILDE sistema “chiuso” ?

● Sistema “chiuso”:

– Monolitico (non è distribuito)

– Gestione “interna” dell'invio/ricezione delle richieste

● memorizzazione dati sul database

– Nessuno scambio dati

– Assenza protocollo di comunicazione con altri sistemi di DD/ILL

● No ISO-ILL● No NCIP

Page 4: NILDE Web Services: API e l'integrazione con altri sistemi

Dead or alive? Le frontiere dei servizi bibliotecari nell'era della condivisione: 15 anni della comunità NILDE

Roma, 19-20 Maggio 20164

NILDE sistema “chiuso” ?NILDE sistema “chiuso” ?

● Interroga cataloghi esterni (ACNP, SBN, Aleph) ricavandone informazioni

– Utilizzando protocolli standard (Z39.50)

Page 5: NILDE Web Services: API e l'integrazione con altri sistemi

Dead or alive? Le frontiere dei servizi bibliotecari nell'era della condivisione: 15 anni della comunità NILDE

Roma, 19-20 Maggio 20165

NILDE sistema “chiuso” ?NILDE sistema “chiuso” ?

● Ricerca dati bibliografici tramite OpenURL (es: import da banche dati quali PubMed, WoS …)

● Invia dati bibliografici tramite OpenURL (verifica posseduto sui resolver es: SFX, Ebsco ...)

Page 6: NILDE Web Services: API e l'integrazione con altri sistemi

Dead or alive? Le frontiere dei servizi bibliotecari nell'era della condivisione: 15 anni della comunità NILDE

Roma, 19-20 Maggio 20166

Quindi ?Quindi ?

Non è totalmente chiuso ma non basta!

● Offrire dati all'esterno● Maggiore interazione con altri sistemi● Sviluppo software “flessibile”

● Offrire dati all'esterno● Maggiore interazione con altri sistemi● Sviluppo software “flessibile”

Cosa vogliamo?

Page 7: NILDE Web Services: API e l'integrazione con altri sistemi

Dead or alive? Le frontiere dei servizi bibliotecari nell'era della condivisione: 15 anni della comunità NILDE

Roma, 19-20 Maggio 20167

Offrire dati all'esternoOffrire dati all'esterno

● Possibilità di utilizzare dati di NILDE all'interno di altre applicazioni

– Dati statistici

– Anagrafica (utenti, biblioteche)

– Richieste

– ...

Page 8: NILDE Web Services: API e l'integrazione con altri sistemi

Dead or alive? Le frontiere dei servizi bibliotecari nell'era della condivisione: 15 anni della comunità NILDE

Roma, 19-20 Maggio 20168

Interazione con altri sistemiInterazione con altri sistemi

● Scambio di informazioni

– Protocolli standard

– Formato dati aperti

● Es: richieste DD che vengono create su un sw di circolazione e si concretizzano con un DD in NILDE per poi ritornare al sistema di circolazione (SBN-ILL, ExLibris ALMA/Aleph, Kronosdoc GTBib-SOD...)

→ ora la richiesta deve essere duplicata manualmente dall'operatore su entrambi i sistemi!

Page 9: NILDE Web Services: API e l'integrazione con altri sistemi

Dead or alive? Le frontiere dei servizi bibliotecari nell'era della condivisione: 15 anni della comunità NILDE

Roma, 19-20 Maggio 20169

Sviluppo software “flessibile”Sviluppo software “flessibile”

● Realizzazione di applicativi terzi che usano NILDE come fornitore di dati

– Applicazioni che visualizzano dati statistici, le anagrafiche ecc.

● Facilità nella realizzazione di nuovi componenti/moduli di NILDE

– App NILDE “mobile” per gli utenti

– Widget integrati in NILDE

Page 10: NILDE Web Services: API e l'integrazione con altri sistemi

Dead or alive? Le frontiere dei servizi bibliotecari nell'era della condivisione: 15 anni della comunità NILDE

Roma, 19-20 Maggio 201610

Come?Come?

Protocollo: HTTP REST

Formato dati: JSON

Page 11: NILDE Web Services: API e l'integrazione con altri sistemi

Dead or alive? Le frontiere dei servizi bibliotecari nell'era della condivisione: 15 anni della comunità NILDE

Roma, 19-20 Maggio 201611

Le APILe API

API (Application Programming Interface)

“ ...ogni insieme di procedure disponibili al programmatore, di solito raggruppate a formare un set di strumenti specifici per l'espletamento di un determinato compito all'interno di

un certo programma...” (fonte: wikipedia)

Chiunque e qualunque software può utilizzare le API di NILDE per ottenere “dati grezzi” da

rielaborare o inviarne altri al sistema

Page 12: NILDE Web Services: API e l'integrazione con altri sistemi

Dead or alive? Le frontiere dei servizi bibliotecari nell'era della condivisione: 15 anni della comunità NILDE

Roma, 19-20 Maggio 201612

ImplementazioneImplementazione

● Architettura basata su design-pattern standard

– HTTP REST

● Output: JSON-API

– JSON “arricchito”● Relazione tra risorse e ruolo● Semantico

● Sicurezza + Autenticazione: OAuth2

– Protocollo standard (usato da FB, Google...)

– Controllo su chi accede ai dati

– Accesso risorse

Page 13: NILDE Web Services: API e l'integrazione con altri sistemi

Dead or alive? Le frontiere dei servizi bibliotecari nell'era della condivisione: 15 anni della comunità NILDE

Roma, 19-20 Maggio 201613

Accesso alle APIAccesso alle API

● Autenticazione

– Registrazione delle applicazioni: solo i “client” autorizzati possono utilizzare le API

● Accesso ai dati

– API pubbliche: dati accessibili senza credenziali

– API private: ● sono richieste credenziali di accesso = Account

NILDE (utente, biblioteca, Op. ALPE)

Page 14: NILDE Web Services: API e l'integrazione con altri sistemi

Dead or alive? Le frontiere dei servizi bibliotecari nell'era della condivisione: 15 anni della comunità NILDE

Roma, 19-20 Maggio 201614

Documentazione APIDocumentazione API

● Documentazione pubblica per gli sviluppatori

– Descrizione possibili modalità di accesso alle API

– Descrizione di ogni singola API con parametri previsti

– Esempio di output

Page 15: NILDE Web Services: API e l'integrazione con altri sistemi

Dead or alive? Le frontiere dei servizi bibliotecari nell'era della condivisione: 15 anni della comunità NILDE

Roma, 19-20 Maggio 201615

Esempio di APIEsempio di API

● Dati anagrafici e cataloghi della Biblioteca d'Area del CNR di Bologna

– https://nilde.bo.cnr.it/api/libraries/6?access_token=6fc52...

Page 16: NILDE Web Services: API e l'integrazione con altri sistemi

Dead or alive? Le frontiere dei servizi bibliotecari nell'era della condivisione: 15 anni della comunità NILDE

Roma, 19-20 Maggio 201616

ALPE … le prime APIALPE … le prime API

ALPE (Archivio Licenze Periodici Elettronici)

● A supporto del bibliotecario che svolge il servizio di Document Delivery

● Consente di individuare la licenza appropriata e facilita l'interpretazione delle clausole relative al DD

● Contiene le licenze che sono state negoziate con gli editori e le licenze standard rese pubbliche sui siti web degli editori

Page 17: NILDE Web Services: API e l'integrazione con altri sistemi

Dead or alive? Le frontiere dei servizi bibliotecari nell'era della condivisione: 15 anni della comunità NILDE

Roma, 19-20 Maggio 201617

Integrazione ALPE-NILDEIntegrazione ALPE-NILDE

● API per l'accesso al database ALPE

– fornire dati delle licenze a chiunque

● Anche NILDE usa le API: integrazione completa con ALPE

– Widget che chiama le API di accesso al database ALPE per reperire e visualizzare le licenze valide per la propria istituzione specifiche per la richiesta DD (ISSN/Anno di pubb.)

– Interazione completa: NILDE applica le restrizioni contenute nella clausola DD della licenza

Page 18: NILDE Web Services: API e l'integrazione con altri sistemi

Dead or alive? Le frontiere dei servizi bibliotecari nell'era della condivisione: 15 anni della comunità NILDE

Roma, 19-20 Maggio 201618

Le API per ALPE 1/2Le API per ALPE 1/2

● Lista licenze

– Tutte quelle valide per la mia ist.

– Solo licenze pubbliche

– Solo quelle relative a un ISSN/Anno pubb.

– Valide in un certo anno

https://nilde.bo.cnr.it/api/licenses?onlymine=1&onlypub=1&issn=0029-5515&pubyear=2010&year=2014&access_token=6fc52...

Page 19: NILDE Web Services: API e l'integrazione con altri sistemi

Dead or alive? Le frontiere dei servizi bibliotecari nell'era della condivisione: 15 anni della comunità NILDE

Roma, 19-20 Maggio 201619

Le API per ALPE 2/2Le API per ALPE 2/2

● Licenza singola

https://nilde.bo.cnr.it/api/licenses/21?access_token=6fc52...

Page 20: NILDE Web Services: API e l'integrazione con altri sistemi

Dead or alive? Le frontiere dei servizi bibliotecari nell'era della condivisione: 15 anni della comunità NILDE

Roma, 19-20 Maggio 201620

Libreria NigetLibreria Niget

● Niget = Nilde widget

● Libreria software “pure Javascript” per interagire con le API di NILDE

– Interrogazione: lista di risorse o singola risorsa

– Caching: ottimizzazione sulle chiamate alle API

– Visualizzazione: ● Template engine● Libreria grafica: SemanticUI● Responsive

Page 21: NILDE Web Services: API e l'integrazione con altri sistemi

Dead or alive? Le frontiere dei servizi bibliotecari nell'era della condivisione: 15 anni della comunità NILDE

Roma, 19-20 Maggio 201621

DEMODEMO

Page 22: NILDE Web Services: API e l'integrazione con altri sistemi

Dead or alive? Le frontiere dei servizi bibliotecari nell'era della condivisione: 15 anni della comunità NILDE

Roma, 19-20 Maggio 201622

Sviluppi futuriSviluppi futuri

● Estendere l'elenco delle API a tutto NILDE

● NILDE Reference Manager “mobile”

● Integrazione con altri software DD/ILL (ExLibris ALMA, Kronosdoc GTBIB-Sod ...) anche con l'impiego di altri protocolli (es: NCIP)

Page 23: NILDE Web Services: API e l'integrazione con altri sistemi

Dead or alive? Le frontiere dei servizi bibliotecari nell'era della condivisione: 15 anni della comunità NILDE

Roma, 19-20 Maggio 201623

… … quindi …quindi …

NILDE NILDE sarà unsarà unsistema sistema

APERTO !APERTO !