Architettura del Protocollo SBN-MARC

AKROS Informatica
Finsiel
Architettura del
Protocollo
SBN-MARC
L’ accesso ai servizi dell’Indice SBN
tramite il protocollo SBN-MARC
Relatore: Richard Golding
Roma – 13 settembre 2002
Architettura del Protocollo SBN-MARC
1
Finsiel
AKROS Informatica
Implementazione del Protocollo
SBN-MARC
Library Management System
(LMS)
Componente da realizzare
ed integrare con il SW
client (LMS)
SBN-MARC Client Interface
HTTP
JMS
SOAP
SBN-MARC Server Interface
Server SBN Indice
XML Schema
SBNMarc.xsd
(Java 2 Platform 2 Enterprise Specifiche)
Architettura del Protocollo SBN-MARC
2
Finsiel
AKROS Informatica
Introduzione
Scelte architetturali per il client SBN-MARC
–
–
–
Riferimenti tecnici
Modalità di collegamento a SBN
Principali elementi applicativi
“Time-Scale” per il consolidamento del
protocollo SBN-MARC
Architettura del Protocollo SBN-MARC
3
Finsiel
AKROS Informatica
Definizione di SBN-MARC
Protocollo 100% compatibile con la semantica
UNIMARC
- Definizioni semantiche fornite da UNIMARC
- I dati obbligatori sono quelli definiti da UNIMARC
- Le estensioni SBN-MARC allo standard UNIMARC sono
opzionali
MARC21 – UNIMARC
- Mapping tra MARC21 e UNIMARC
Gestione del formato dei record ISO 2709 e XML
- Mapping trasparente tra i tag XML e ISO 2709 usato dai
record MARC21 e UNIMARC
- SBN-MARC accetta il set di caratteri UTF-8 (UNICODE)
Architettura del Protocollo SBN-MARC
4
Finsiel
AKROS Informatica
Obiettivi di Disegno
Compatibilità con standard tecnici e bibliotecari
internazionali
–
–
UNIMARC e MARC21
XML (e Web Services Architecture)
Riduzione dei costi di realizzazione dei client SBNMARC
– Scelta del livello di partecipazione a SBN
– Semplicità e flessibilità del protocollo
•
–
Validazione presso il server dell’Indice SBN
Le tecnologie richieste hanno molti fornitori di
“tools” di sviluppo in diversi linguaggi applicativi
Architettura del Protocollo SBN-MARC
5
Finsiel
AKROS Informatica
Schema dell’Architettura
Client / Sistema
Remoto
Server Web
Presentazione
Int. Diretta
Ammin.
JSP
Server Applicativo
Enterprise
Implementazione dei
Protocolli SBN e SBNMARC
Server Dati
EIS
EJB
{HTML e
XML /XSL
SOAP}
Java
Servlet
EJB
EJB
Nuovo Polo
{Java JMS + XML/SOAP}
EJB
DBMS
EJB
Polo SBN
Attuale
Gateway SBN
{HTTP / IIOP / TCP Sockets / SNA}
Architettura del Protocollo SBN-MARC
{Java JMS + XML/SOAP}
{JDBC v3 - SQL 92/99}
6
Finsiel
AKROS Informatica
XML Schema e Messaggi
XML Schema: elemento principale dell’architettura
–
Consente al client anche la validazione parziale dei messaggi
Stateless Protocol
–
–
Modello di processo
• Ogni messaggio è autonomo
• Nessuna sequenza imposta dal server dell’Indice
• Lo sviluppatore del client può disegnare il processo
Modello di dialogo “CONVERSATIONAL”
• INVIARE e ATTENDERE RISPOSTA
Architettura del Protocollo SBN-MARC
7
Finsiel
AKROS Informatica
Trasporto di SBN-MARC
L’invio di messaggi all’Indice SBN
Architettura del Protocollo SBN-MARC
8
Finsiel
AKROS Informatica
Trasporto 1: XML su HTTP
Il client svolge il ruolo di HTTP client
Sequenza applicativa del client:
–
–
Scrive il messaggio in formato XML in un buffer
di memoria
Invia il buffer come parametro di POST URL
La risposta viene fornita in un file con
Mime-type: text/XML
Architettura del Protocollo SBN-MARC
9
Finsiel
AKROS Informatica
Trasporto 2: JMS Java Message Services
Protocollo orientato a client che usano Java
Il client può inviare i messaggi in formato XML verso
JMS QUEUES (code JMS) comunicando direttamente
con i MESSAGE DRIVEN BEAN del server
Passo 1: Il client effettua una richiesta di connessione (LOOKUP)
utilizzando un protocollo (RMI, COS o LDAP) per identificare
le risorse remote e creare la connessione al server.
Passo 2: Il client attiva un LISTENER sulla connessione creando
una coda temporanea sulla quale invia il messaggio e riceve la
risposta.
Architettura del Protocollo SBN-MARC
10
Finsiel
AKROS Informatica
Trasporto 3: “Web Services”
Il trasporto è conforme alle specifiche W3C per
l’architettura “Web Services”
I messaggi inviati e ricevuti sono impacchettati in un
“Envelope” SOAP
–
–
–
Trasporto su: HTTP
Modello di Connessione: Point-to-Point / One-way con Provider
API java usati sul server: JAX-RPC o SAAJ (JAXM = One-Way).
Registrazione di servizi in “registry” UDDI
–
–
–
Analogo al LOOKUP del queue in JMS
API java usato nel server: JAXR
Corrisponde all’architettura della rete RUPA (Progetto A9)
Architettura del Protocollo SBN-MARC
11
Finsiel
AKROS Informatica
SBN-MARC
I principali elementi della
programmazione
Architettura del Protocollo SBN-MARC
12
Finsiel
AKROS Informatica
Decodifica dei Messaggi
I messaggi possono essere letti e scritti
usando parser XML
–
–
SAX parser utilizza eventi
• Garantisce elevate performance di lettura
DOM parser utilizza un “search tree”
• Facilita la scrittura di messaggi XML e la gestione del
messaggio/documento in memoria
Generazione oggetti da XML Schema
–
Vari linguaggi supportano la generazione di oggetti dallo
Schema XML
Architettura del Protocollo SBN-MARC
13
Finsiel
AKROS Informatica
Identificazione e Sicurezza
•
Servizio fornito dall’application server scelto
per Indice SBN
–
Il server dell’Indice SBN utilizza i componenti di
sicurezza standard che sono definiti da SUN:
•
–
•
Java Platform 2 Standard ed Enterprise Edition
Non è di competenza del protocollo SBN-MARC
Requisiti minimi dell’application server
–
–
Connessione via SSL
Autenticazione via security server (RADIUS /
KERBEROS)
Architettura del Protocollo SBN-MARC
14
Finsiel
AKROS Informatica
Requisiti per il client
•
Si può implementare con diversi linguaggi di
programmazione
–
•
Non esiste nessun vincolo sull’uso di Java
Lo sviluppo è facilitato nei molteplici ambienti che
supportano o forniscono:
–
–
–
–
–
API per il parsing XML
API per la gestione di Web Services (SOAP/WSDL/UDDI)
API per il protocollo HTTP
API per il protocollo LDAP
API per i protocolli di sicurezza dell’application server
(SSL).
Architettura del Protocollo SBN-MARC
15
Finsiel
AKROS Informatica
SBN-MARC Client API:
esempio di connessione
al server SBN
Architettura del Protocollo SBN-MARC
16
Finsiel
AKROS Informatica
SBN-MARC Client API
Status
esempi funzionanti (demo) in cui si è data priorità alla chiarezza
concettuale del codice rispetto ad un uso avanzato ed ottimizzato
delle funzioni
Obiettivi
–
–
–
–
Supplemento alla documentazione di SBN-MARC
Supporto all’analisi dei client (come esempi)
Può essere modificato ed adattato (per chi usa Java)
Verrà mantenuto come esempio illustrativo delle specifiche e
documentazione del protocollo
I fornitori possono sostituire l’esempio con la propria
implementazione ottimizzata
Architettura del Protocollo SBN-MARC
17
Finsiel
AKROS Informatica
SBN-MARC Client API
Inclusi nel package:
–
Classi dello schema XML (usate anche nel server)
•
–
–
Classi esempi di connessione al server SBN
Utility di prova della connessione al server
•
–
Generate con Castor (vedi: http://org.exolab.castor)
Implementa le diverse modalità di collegamento e
permette la visualizzazione dell’XML inviato e ricevuto
Utility di logging che registra messaggi e risposte
in un file di log configurabile
•
Il log viene generato usando LOG4J e può essere
formattato in vari modi.
Architettura del Protocollo SBN-MARC
18
Finsiel
AKROS Informatica
Pianificazione e Tempi
•
settembre 2002 – Rilascio prototipale
–
Rilascio alpha di SBN-MARC Client API
•
–
•
Rilascio delle Specifiche del Protocollo SBN-MARC
dicembre 2002 – Rilascio Architettura Definitiva
–
Rilascio beta di SBN-MARC Client API
•
–
•
Esempi di XML su HTTP e JMS
Verrà aggiunto l’esempio SOAP
Rilascio di servizio di prova (server)
marzo 2003 – Rilascio Stabile
–
Rilascio di SBN-MARC Client API v1.0
Architettura del Protocollo SBN-MARC
19
Finsiel
AKROS Informatica
Riferimenti
•
Web Services Architecture
–
–
–
•
XML, XSL/T, SOAP, WSDL, UDDI
W3C: http://www.w3.org/2002/ws/
UDDI: http://www.uddi.org
Esempi SW e implementazioni di riferimento (non
solo Java)
–
–
–
–
http://java.sun.com/webservices/
http://www-106.ibm.com/developerworks/webservices/
http://msdn.microsoft.com/webservices/
http://xml.apache.org/
• In particolare: il progetto AXIS
Architettura del Protocollo SBN-MARC
20