Presentazione   Descrizione Funzionale
  Criteri di Progettazione   Ambiente di Sviluppo e di Gestione
 
 Ambiente di sviluppo e di gestione


Per lo sviluppo dei servizi applicativi di rete sono stati utilizzati diversi tool ed ambienti di sviluppo object oriented e web.

L’attività di definizione dei requisiti e di progettazione è stata condotta mediante l’utilizzo di IBM Rational Rose. In virtù della visione unitaria e modulare, tutti gli artefatti della progettazione sono allocati su un unico Rose model, condiviso da tutti gli analisti, progettisti e sviluppatori del team e pertanto sottoposto a controllo di configurazione mediante un tool di configuration management. Il Rose model contiene tutte le specifiche del sistema, funzionali e non, sottoforma di modello dei casi d’uso. Con lo stesso tool viene modellata la vista logica del sistema, comprendente i diagrammi delle classi e le specifiche di ogni classe, nonché la definizione della base dati dei servizi applicativi di rete. Nel model viene inoltre allocata e resa disponibile a tutto il team di sviluppo il modello dell’architettura applicativa e la documentazione delle interfacce web e dei servizi, rispettivamente mediante i diagrammi di Conallen e mediante una specifica dei flussi XML/SOAP scambiati tra il richiedente del servizio ed il provider dello stesso. La documentazione tecnica e di specifica viene prodotta automaticamente a partire da quanto riportato nel Rose model, utilizzando Rational SoDA for Word, della stessa suite di prodotti Rose. Il tool di configuration management è Microsoft Visual Source Safe.

La tecnologia utilizzata per lo sviluppo di tutti i servizi applicativi di rete è Java 2 Enterprise Edition (J2EE). Per lo sviluppo di componenti Java e XML, aderenti alle specifiche J2EE, viene utilizzato un ambiente di sviluppo visuale: Borland Jbuilder. La scelta di J2EE garantisce ai prodotti sviluppati caratteristiche di elevata portabilità e integrazione via XML, che consentono la realizzazione di soluzioni BusinessToBusiness e BusinessToConsumer. Infatti il deployment delle componenti sviluppate potrà essere effettuato su tutti gli application server conformi J2EE, sia proprietari (come ad esempio SunONE Application Server, Bea Weblogic o IBM WebSphere) oppure Open Source (come ad esempio Jboss).

La scelta strategiche di utilizzare J2EE garantisce una estrema flessibilità di configurazione dei prodotti in ambiente di produzione. Infatti, dipendentemente dalla loro criticità e complessità architetturale, alcuni servizi applicativi possono essere configurati in modo da prevedere o meno la presenza di un application server J2EE; per alcuni servizi infatti la presenza di un tale componente tecnologico potrebbe risultare eccessiva e si preferisce adottare soluzioni in cui risulta sufficiente un servlet container, come ad esempio Tomcat.

Per garantire la massima aderenza alle specifiche Sun, si è scelto di effettuare lo sviluppo ed il test utilizzando dome application server di riferimento SunONE Application Server, essendo questo l’application server che in maniera più stringente e rigorosa ne implementa le specifiche.

Con Borland Jbuilder vengono realizzate tutte le componenti servlet (i controller del pattern Model View Controller), tutte le classi architetturali di servizio (proxy, helper, ecc.) i Java Beans che tipicamente implementano logica transazionale, di business e realizzano i servizi web offerti dai servizi applicativi di rete e le componenti di accesso ai dati (Data Access Object) che si occupano di richiedere servizi ai data manager.

Il DBMS supportato dai servizi applicativi di rete è Oracle e gli script di definizione degli schemi (DDL) vengono prodotti automaticamente dal model di Rose.

La presenza di un insieme di classi architetturali che implementano servizi riutilizzabili come la connessione al database, la costruzione automatica delle stringhe XML/SOAP a partire da oggetti java e viceversa, servizi di autenticazione ed autorizzazione, ecc. consentono alla maggior parte degli sviluppatori di concentrarsi sulla definizione della logica applicativa, trascurando gli elementi tecnologici. Analogamente, per le componenti della user interface, i template delle pagine sono tutti definiti dallo User Interface Manager che alloca la definizione della presentation e del layout all’interno di fogli di stile, che gli sviluppatori devono includere all’interno delle loro pagine. Per la progettazione del layout e delle componenti grafiche vengono utilizzati i tool della suite Adobe.

Le componenti della user interface sono realizzate, coerentemente con la scelta operata in termini di tecnologia per lo sviluppo, utilizzando le seguenti tecnologie e linguaggi: JavaServerPages (JSP), XHTML e Javascript. Per la realizzazione di queste componenti il team di sviluppo utilizza i tool della suite Macromedia Dreamweaver (Fireworks, Homesite e Flash). Per i controlli che vengono effettuati dalla componente di frontend si usa il linguaggio di scripting Javascript, anche questo standard de jure, tuttavia tutti i controlli sono replicati sulla componenti web questo per garantire che le applicazioni possano comunque essere eseguite anche laddove l’utente abbia disattivato sul suo browser il linguaggio Javascript.

Tutte le stazioni di lavoro degli analisti, progettisti e degli sviluppatori sono configurate con sistema operativo Windows e con i seguenti tool:

  • Client del Microsoft Visual Source Safe
  • Rational Rose
  • Rational SoDA for Word
  • Borland Jbuilder
  • Macromedia Dreamweaver (con Firefox, Homesite e Flash)
  • Tomcat
  • SunOne Application Server

Ogni sviluppatore realizza le componenti sulla sua workstation, facendo riferimento al repository di sviluppo, effettua tutti i test unitari, quindi consolida nel repository quanto sviluppato e testato e chiede al Configuration Manager il deploy delle componenti sviluppate sul server di test per poter effettuare il successivo test di integrazione.

Il team di sviluppo esegue i test sui sistemi operativi più diffusi (ad esempio Microsoft Windows 98/2000/XP, Linux) e sui browser più diffusi (le diverse versioni di IE, Mozilla, Opera, Netscape, Lynx, ecc.). Tutte le pagine sviluppate vengono inoltre sottoposte, mediante il validatore del W3C, a verifica di rispondenza del linguaggio utilizzato alla definizione formale.

 
 
 


I servizi applicativi di rete sono basati su una architettura multi tier tipica delle applicazioni web di tipo enterprise. I servizi applicativi sono esposti agli utilizzatori sia sottoforma di web services (XML su protocollo SOAP) che come applicazioni web (XHTML su protocollo HTTP) e fruibili dagli utenti mediante browser.

Tutti i servizi applicativi fanno riferimento ad un servizio di cooperazione applicativa che è la componente che realizza le funzionalità tipiche della cooperazione orientata ai servizi (Services Oriented Architecture) e ha la responsabilità di coordinare i servizi forniti dai diversi domini partecipanti. Il servizio di cooperazione applicativa realizza il modello di cooperazione per richiesta di servizio mediante interrogazione del database dei domini federati (che può essere anche un UDDI registry) e conseguente inoltro della richiesta di servizio alla porta applicativa del dominio coinvolto.

I macrocomponenti coinvolti sono distribuiti su tre tier:

  • il web tier che espone l’interfaccia utente dei servizi ed i web services e si occupa del dispatching delle richieste e confezionamento delle risposte sottoforma di messaggi SOAP su http, da inoltrare ad altri domini per via del communication tier. Per il trattamento dei messaggi SOAP vengono utilizzate le librerie Sun SOAP with Attachments API for Java (SAAJ) e Java API for XML Messaging (JAXM);
  • il communication tier che conosce la sintassi di utilizzo dei web services di ogni dominio e si preoccupa di invocarli, se necessario anche in modalità concorrente, comunicando il risultato al presentation tier; si tratta di un client di web services di tipo multithreaded;
  • l’EJB tier che implementa la logica applicativa e di accesso ai dati e si occupa principalmente dell’analisi delle richieste, individuazione del dominio interessato e inoltro della richiesta al communication tier e smistamento della risposta al web tier.

Il diagramma che segue rappresenta l’architettura dei sistemi applicativi di rete, inquadrata in uno dei due possibili scenari di utilizzo. In questo caso, un’applicazione di un dominio applicativo A utilizza un servizio web reso disponibile nella componente web tier. Il servizio web viene implementato da componenti EJB che a loro volta, tramite il communication tier, possono invocare i servizi sui restanti domini federati che li rendono disponibili in un ambiente cooperativo. Le risposte dei domini federati, quando necessario, vengono rielaborate dalla componente che implementa la logica di business ed i risultati vengono inoltrati dalla componente web tier all’applicativo del dominio A che ha inoltrato la richiesta di servizio.

 


Nello scenario seguente invece, l’utente di un qualunque dominio federato utilizza i servizi applicativi di rete mediante un browser XHTML che richiede servizi alla logica di presentation, la quale a sua volta invoca i servizi offerti dai domini federati, utilizzando i servizi del comunication tier e dell’EJB tier. Le risposte dei domini federati, quando necessario, vengono rielaborate dalla componente che implementa la logica di business e i risultati vengono presentati all’utente dalla componente di presentation.

 


I domini partecipanti sono sistemi informativi esistenti che rendono disponibili ad altri domini servizi su una porta applicativa, in questo contesto quindi la soluzione CUP Svimservice o le diverse soluzioni applicative facenti parte del Sistema Informativo Sanitario Regionale possono assumere il ruolo di domini che espongono i loro servizi all’intero sistema.

L’elevata modularità delle componenti garantisce una elevata flessibilità nella configurazione dei sistemi di produzione e consente di allocare le tre componenti descritte su nodi elaborativi separati, garantendo in questo modo all’intero sistema elevate capacita load balancing e fault tollerance.

 
 
 

©2001/2007 - Svimservice Spa