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