200 likes | 524 Views
Architettura del Protocollo SBN-MARC . L’ accesso ai servizi dell’Indice SBN tramite il protocollo SBN-MARC. Relatore: Richard Golding. Roma – 13 settembre 2002. Implementazione del Protocollo SBN-MARC. Componente da realizzare ed integrare con il SW client (LMS). Library Management System
E N D
Architettura del Protocollo SBN-MARC L’ accesso ai servizi dell’Indice SBN tramite il protocollo SBN-MARC Relatore: Richard Golding Roma – 13 settembre 2002
Implementazione del Protocollo SBN-MARC Componente da realizzare ed integrare con il SW client (LMS) Library Management System (LMS) SBN-MARC Client Interface HTTP JMS SOAP SBN-MARC Server Interface XML Schema SBNMarc.xsd Server SBN Indice (Java 2 Platform 2 Enterprise Specifiche)
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
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)
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 SBN-MARC • 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
Client / Sistema Remoto Server Web Presentazione Server Applicativo Enterprise Implementazione dei Protocolli SBN e SBN-MARC Server Dati EIS {HTML e XML /XSL SOAP} Int. Diretta Ammin. {Java JMS + XML/SOAP} JSP Nuovo Polo EJB EJB EJB EJB EJB Java Servlet {HTTP / IIOP / TCP Sockets / SNA} {Java JMS + XML/SOAP} {JDBC v3 - SQL 92/99} Gateway SBN Polo SBN Attuale DBMS Schema dell’Architettura
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
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
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.
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)
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
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)
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).
SBN-MARC Client API Status esempi funzionanti (demo)in cuisi è 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
SBN-MARC Client API Inclusi nel package: • Classi dello schema XML (usate anche nel server) • Generate con Castor (vedi: http://org.exolab.castor) • Classi esempi di connessione al server SBN • Utility di prova della connessione al server • 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.
Pianificazione e Tempi • settembre 2002 – Rilascio prototipale • Rilascio alpha di SBN-MARC Client API • Esempi di XML su HTTP e JMS • Rilascio delle Specifiche del Protocollo SBN-MARC • dicembre 2002 – Rilascio Architettura Definitiva • Rilascio beta di SBN-MARC Client API • Verrà aggiunto l’esempio SOAP • Rilascio di servizio di prova (server) • marzo 2003 – Rilascio Stabile • Rilascio di SBN-MARC Client API v1.0
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