Regione Campania Linee Di Indirizzo Per L'Implementazione Del Sistema .

Transcription

REGIONE CAMPANIA – LINEE DIINDIRIZZO PER L’IMPLEMENTAZIONEDELSISTEMAINFORMATIVOSANITARIO REGIONALEAllegato 1BSinfonia - Architettura Generaledel sistema applicativo FlussiVersione 1.0021 Settembre 2018

ALLEGATO 1BSINFONIA – ARCHITETTURA GENERALE DEL SISTEMA APPLICATIVO FLUSSIIndice dei Contenuti1. Introduzione . 51.1.Generalità .51.2.Scopo e Ambito di Applicazione .51.3.Ciclo di vita del documento .51.4.Riferimenti .61.5.Glossario .61.6.Acronimi .62. Vincoli ed obiettivi architetturali. 122.1.Obiettivi architetturali .133. Architettura Generale di Sinfonia . 154. Architettura del Sistema Sinfonia (Gestione Flussi) . 154.1.4.2.Presentation Tier .154.1.1Presentation Logic della User Interface . 164.1.2Presentation Logic dei Web Services . 184.1.3Report . 19Business e Data Tier .194.2.14.3.4.4.Elaborazioni Batch.204.3.1Presentation Layer . 224.3.2Business Layer . 22Gestione Utenti ed Integrazione con sistema di SSO .234.4.14.5.Session Facade EJB-tier . 20Identificazione, autenticazione ed autorizzazione degli utenti . 24Sicurezza accesso ai dati su DB.244.5.1Identificazione, autenticazione ed autorizzazione . 254.6.Cifratura .254.7.Disaccoppiamento tra dati sensibili e anagrafici .264.8.Tracciamento e Monitoraggio.264.8.1Ambito del tracciamento. 274.8.2Punti di tracciamento . 274.8.3Procedura di tracciamento . 28Pag. 2 61

ALLEGATO 1BSINFONIA – ARCHITETTURA GENERALE DEL SISTEMA APPLICATIVO FLUSSI4.8.4Persistenza . 284.8.5Canali di tracciamento . 284.8.6Record di tracciamento . 294.9.Funzionalità e meccanismi per la configurazione applicativa .294.10.Gestione delle Notifiche .305. Anonimizzazione e Pseudonimizzazione di flussi informativi. 316. Dettagli architettura Gestione Flussi. 336.1.Gestione Flussi.336.1.1Layer di FrontEnd . 336.1.2Layer di ESB – Enterprise Service Bus / EMS – Enterprice Message Service. 346.1.3Layer di BPM – Business Process Management . 346.1.4Layer di ETL – Extract-Transform-Load . 356.1.5Contesto infrastrutturale . 356.1.6Entità funzionali di processo . 367. Identificazione, autenticazione ed autorizzazione dei sistemi fruitori dei servizi . 417.1.Il processo complessivo .417.2.Identificazione ed autenticazione dei Sistemi Fruitori .427.3.Integrità del messaggio .437.4.Non ripudio del messaggio .437.5.Mantenimento delle informazioni della richiesta di servizio .437.6.Riservatezza del messaggio .447.7.Firma dei messaggi di risposta .447.8.Autorizzazione del Sistema Fruitore .448. I Servizi Infrastrutturali . 458.1.Tibco .468.2.Intalio .478.3.PEC .488.3.18.4.Firma Digitale .498.4.18.5.Il modulo di gestione PEC: J-Communicator . 49Il modulo di firma digitale: J-Sign. 50WSO2 .50Pag. 3 61

ALLEGATO 1BSINFONIA – ARCHITETTURA GENERALE DEL SISTEMA APPLICATIVO FLUSSI8.6.Deployment.51Allegato 1 - Package della presentation logic con le relative responsabilità . 52Allegato 2 - Package per la realizzazione dei casi d’uso dei sistemi con le relative responsabilità. 54Allegato 3 - Package che implementano l’EJB-tier con le relative responsabilità . 57Allegato 4 - Package che implementano le classi di reporting . 59Allegato 5 - Package che contengono le classi che hanno la responsabilità della gestione dei logapplicativi . 60Allegato 6 - Package che contengono le classi che hanno la responsabilità della gestione deiparametri di configurazione delle aree applicative . 61Pag. 4 61

ALLEGATO 1BSINFONIA – ARCHITETTURA GENERALE DEL SISTEMA APPLICATIVO FLUSSI1. Introduzione1.1. GeneralitàIl presente documento fornisce una panoramica generale dell’architettura di Sinfonia in terminidi sistemi e componenti applicative che lo costituiscono e relativa organizzazione strutturale etecnologica. Il documento definisce:-gli elementi cardine dell’architettura dei sistemi applicativi oggetto di fornitura, partendoda quanto previsto nel progetto esecutivo;-gli obiettivi architetturali ai quali si conformano le soluzioni adottate ed oggetto difornitura;-i modelli architetturali e i pattern di riferimento per i sistemi e le relative componentiapplicative;Il documento definisce gli obiettivi architetturali del sistema, i sistemi cooperanti, l’architetturatecnologica generale e la distribuzione dei componenti software applicativi ed infrastrutturalisui diversi nodi dell’infrastruttura. Viene inoltre definita l’architettura applicativa di ciascunsistema, mediante specificazione sui diversi layer dei pattern di sviluppo, delle tecnologie edegli standard e meccanismi necessari per assolvere agli obiettivi architetturali.Esso formalizza le diverse decisioni architetturali e progettuali definite per le componentipreliminarmente alla realizzazione, configurazione ed adeguamento delle stesse ai requisiti diprocesso e funzionali definiti nel workpackage di “Analisi e Progettazione”.1.2. Scopo e Ambito di ApplicazioneIl documento è il risultato delle activity del workflow di Analysis & Design previste dallametodologia adottata e costituisce l’input anche per quelle relative al workflow diImplementation & Test; pertanto è destinato a tutti i ruoli coinvolti nelle attività relative aquest’ultimo workflow.Definisce principalmente gli aspetti riguardanti la logical view, l’implementaion view e ladeployemnt view dell’intero sistema. Tali viste vengono quindi integrate e “complementate”dalle viste dei casi d’uso e dei processi di cui ai documenti di specifica dei requisiti software edi architettura di ciascuna componente applicativa per costituire la “Definizione architetturale”complessiva del sistema Sinfonia.1.3. Ciclo di vita del documentoIl documento sarà revisionato ed aggiornato a seguito dello svolgimento delle attività disviluppo delle componenti software qualora vengano rilevati, in fase di definizione di taliartifact ulteriori obiettivi e vincoli architetturali che richiedano la revisione dell’architetturadefinita da questo documento.Pag. 5 61

ALLEGATO 1BSINFONIA – ARCHITETTURA GENERALE DEL SISTEMA APPLICATIVO FLUSSI1.4. Riferimenti1. Progetto Esecutivo per So.Re.Sa. S.p.A. Società Regionale per la Sanità Regione CampaniaRif. Consip ID SIGEF 1607.2. Decreto Dirigenziale n. 131 del 20.06.2018.1.5. GlossarioModelloRappresentazione concettuale del sistema ottenutaattraverso l’utilizzo di costrutti linguistici e semanticipropri di un linguaggio standardizzato dimodellazione (come ad esempio UML).PackageElemento del modello che rappresenta un contenitoredi altri elementi quali classi, componenti, interfacce,diagrammi, package, ecc.Componente (o Area applicativa)Modulo o sistema applicativo oggetto di fornitura odi terze parti.WEB TierLivello architetturale del sistema software dedicatoalla interazione con l’utente attraverso tecnologia eprotocolli Internet.Documento HTMLDocumento SGML che soddisfa i requisiti dellespecifiche W3C.StylesheetSpecifica del formato di presentazione di undocumentoXMLcondescrizionedellatrasformazione (opzionale) della struttura deldocumento di ingresso in un'altra struttura e dellamodalità di visualizzazione degli elementi dellastruttura. Il linguaggio per definire uno stylesheet èXSL (eXtensible Stylesheet Language).Tabella 1 - Glossario1.6. AcronimiJEE (Java Enterprise Edition)Versione enterprise della piattaforma Java.DAO (Data Access Object)Pattern che ha lo scopo di disaccoppiare la logica dibusiness dalla logica di accesso ai dati.HTTP (HyperProtocol)TextTransfer Protocollo standard di trasferimento di un ipertesto.MVC (Model-View-Controller)Pag. 6 61Pattern architetturale per lo sviluppo di interfacceutente dei sistemi software.

ALLEGATO 1BSINFONIA – ARCHITETTURA GENERALE DEL SISTEMA APPLICATIVO FLUSSISOAPSpecifica per lo scambio di informazioni strutturatenell’implementazione di Web Services in reti dicomputer. Il formato dei messaggi è l’XML.HTML(HyperTextLanguage)Markup Linguaggio usato per descrivere la struttura deidocumenti ipertestuali disponibili nel World uage)Object È basato sul linguaggio JavaScript Standard ECMA262 3ª edizione dicembre 1999, ma ne èindipendente. Viene usato in AJAX come alternativaa XML/XSLT.Markup Metalinguaggio standardizzato dal World Wide WebConsortium (W3C).XHTML (eXtensible HyperText Versione aggiornata ed estesa dell'HTML.Markup Language)JVM (Java Virtual Machine)Macchina virtuale chelinguaggio Java bytecode.DBDatabase.esegueprogrammiinUDDI (Universal Description Registry (base dati ordinata ed indicizzata), basato suDiscovery and Integration)XML ed indipendente dalla piattaforma hardware,che permette alle aziende la pubblicazione dei propridati e dei servizi (Web services) offerti su ent)Query SQL (Structured Query Language) è un linguaggiostandardizzato per database basati sul modellorelazionale (RDBMS)Oriented Architettura software atta a definire l'uso dei serviziper supportare le richieste degli utenti.Cooperative Architettura cooperativa e scalabileProcess Il Business process management è l’insieme diattività necessarie per definire, ottimizzare,monitorare e integrare i processi aziendali, al fine dicreare un processo orientato a rendere efficiente edefficace il business dell’azienda.ESB (Enterprise Service Bus)Pag. 7 61Un Enterprise Service Bus (ESB) è un'infrastrutturasoftware che fornisce servizi di supporto adarchitetture SOA complesse. Un ESB si basa susistemi disparati, interconnessi con tecnologieeterogenee, e fornisce in maniera consistente servizidi orchestration, sicurezza, messaggistica, routingintelligente e trasformazioni, agendo come unadorsale attraverso la quale viaggiano servizi software

ALLEGATO 1BSINFONIA – ARCHITETTURA GENERALE DEL SISTEMA APPLICATIVO FLUSSIe componenti applicativi.JAX-WS (Java API for XML Web JAX-WS (Java API for XML Web Services) è unService)insieme di procedure (API) del linguaggio diprogrammazione Java dedicate allo sviluppo diservizi web. L'insieme fa parte della piattaforma JavaEE. Come altre API della Java EE, JAX-WS usaannotazioni, introdotte nella Java SE 5, persemplificare lo sviluppo e implementazioni di cliente terminali di servizi web. JAX-WS fa parte del kit disviluppo Java per web services (Java Web ServiceDevelopment Pack – JWSDP) e include JavaArchitecture for XML Binding (JAXB) e SOAP.JAX-B (Java API for XML JAXB è una delle API della Java Enterprise Edition,Binding)fa parte del Java Web Services Development Pack(JWSDP) ed è una delle tecnologie di base delprogetto Web Services Interoperability Technology(WSIT) promosso dalla Sun Microsystems; inoltre, apartire dalla versione 1.6, JAXB è inclusa anche inJava SE.Java Architecture for XML Binding (JAXB)permette agli sviluppatori Java di effettuare ilmapping tra classi e una loro corrispondenterappresentazione XML. JAXB fornisce la possibilitàdi serializzare oggetti Java in XML (marshalling) edi effettuare l'operazione inversa (unmarshalling),cioè permette di ottenere a partire da un file XML lacorrispondente rappresentazione a oggetti Java.JAXB permette quindi di manipolare file XML senzala necessità di implementare alcuna routine specificaper il salvataggio e la lettura di dati.JAXB 1.0 fu sviluppato nell'ambito del JavaCommunity Process come JSR 31. Dal 2006, JAXB2.0vienesviluppatacomeJSR222.L'implementazione delle specifiche di JAXB èrilasciata sotto licenza CDDL.WSDL (Web Service Description Il Web Services Description Language (WSDL) è unLanguage)linguaggio formale in formato XML utilizzato per lacreazione di "documenti" per la descrizione di WebService.PEC(PostaCertificata)Pag. 8 61Elettronica PEC è l'acronimo di Posta Elettronica Certificata.È un sistema di "trasporto" di documenti informaticidel tutto simile alla posta elettronica "tradizionale",cui però sono state aggiunte le caratteristiche per

ALLEGATO 1BSINFONIA – ARCHITETTURA GENERALE DEL SISTEMA APPLICATIVO FLUSSIgarantire agli utenti la certezza, a valore legale,dell'invio e della consegna dei messaggi e-mail aldestinatario.JSP (Java Server ne Web in Java per lo sviluppo dellalogica di presentazione (tipicamente secondo ilpattern MVC) di applicazioni Web, fornendocontenuti dinamici in formato HTML o XML. Sibasa su un insieme di speciali tag, all'interno di unapagina HTML, con cui possono essere invocatefunzioni predefinite sotto forma di codice Java(JSTL) e/o funzioni Javascript. In aggiunta, permettedi creare librerie di nuovi tag che estendono l'insiemedei tag standard (JSP Custom Tag Library).JSTL(JavaserverStandard Tag Library)pages JavaServer Pages Standard Tag Library (JSTL) è unalibreria inclusa come componente della piattaformasoftware di sviluppo per applicazioni Web Java EE.È un'estensione di JSP ed incorpora un insieme di tagHTML definiti tramite file XML e programmati inlinguaggio Java. Questa libreria è stata rilasciata dasocietà di sviluppo software quali la SunMicrosystems, utilizzabili per la creazione diJavaServer Pages. In alternativa alle librerie di tagstandard si possono creare librerie di tagpersonalizzati, chiamate Custom Tag LibraryJPA (Java Persistence API)Le Java Persistence API, sono un framework per illinguaggio di programmazione Java che si occupadella gestione della persistenza dei dati di un DBMSrelazionale nelle applicazioni che usano lepiattaforme Java Standard Edition (J2SE) e JavaEnterprise Edition (J2EE).CSS (Cascading Style Sheets)Il CSS (Cascading Style Sheets, in italiano fogli distile), in informatica, è un linguaggio usato perdefinire la formattazione di documenti HTML,XHTML e XML ad esempio i siti web e relativepagine web. Le regole per comporre il CSS s) emanate a partire dal 1996 dalW3C.EJB (Enterprise Java Bean)In informatica gli Enterprise JavaBean (EJB) sono icomponenti software che implementano, lato server,la logica di business di un'applicazione weball'interno dell'architettura/piattaforma Java EEespletando servizi a favore della parte di front-endPag. 9 61

ALLEGATO 1BSINFONIA – ARCHITETTURA GENERALE DEL SISTEMA APPLICATIVO FLUSSIovvero per la logica di presentazione diun'applicazione web. Rappresentano dunque unostrato software residente su un application serverall'interno di un'architettura software di tipo multitier.Le specifiche per gli EJB definiscono diverseproprietà che questi devono rispettare, tra cui lapersistenza, il supporto alle transazioni, la gestionedella concorrenza e della sicurezza e l'integrazionecon altre tecnologie, come JMS, JNDI, e CORBA.Lo standard attuale, EJB 3, completato nellaprimavera del 2006, differisce notevolmente dalleversioni precedenti. Gli EJB necessitano di un EJBcontainer tipicamente implementato all'interno degliapplication server assieme al servlet container per laparte di front-end.Ajax (Asynchronous JavaScript In informatica AJAX, acronimo di Asynchronousand Xml)JavaScript and XML, è una tecnica di svilupposoftware per la realizzazione di applicazioni webinterattive (Rich Internet Application). Lo sviluppodi applicazioni HTML con AJAX si basa su unoscambio di dati in background fra web browser eserver, che consente l'aggiornamento dinamico diuna pagina web senza esplicito ricaricamento daparte dell'utente.AJAX è asincrono nel senso che i dati extra sonorichiesti al server e caricati in background senzainterferire con il comportamento della paginaesistente. Normalmente le funzioni richiamate sonoscritte con il linguaggio JavaScript. Tuttavia, e adispetto del nome, l'uso di JavaScript e di XML nonè obbligatorio, come non è necessario che le richiestedi caricamento debbano essere ctory Interface)jQuery è una libreria di funzioni Javascript per leapplicazioni web, che si propone come obiettivoquello di semplificare la manipolazione, la gestionedegli eventi e l'animazione delle pagine HTML. È unsoftware liberamente distribuibile e gratuito, comeprevisto dalla licenza MIT.and Java Naming and Directory Interface (JNDI) è unaAPI Java per servizi di directory che ricopre un ruolomolto importante all'interno di un application server.Tabella 2 - AcronimiPag. 10 61

ALLEGATO 1BSINFONIA – ARCHITETTURA GENERALE DEL SISTEMA APPLICATIVO FLUSSIPag. 11 61

ALLEGATO 1BSINFONIA – ARCHITETTURA GENERALE DEL SISTEMA APPLICATIVO FLUSSI2. Vincoli ed obiettivi architetturaliLe soluzioni tecnologiche ed architetturali adottate per la definizione del sistema Sinfonia sibasano sulla necessità di disporre di applicazioni che sono tra loro interoperabili e chepermettono l’effettivo passaggio di informazioni tra gli attori coinvolti senza interruzioni diprocesso.Il sistema informativo Sinfonia è implementato sulla base di uno stile architetturale orientato aiservizi (SOA) ove la cooperazione tra le varie componenti applicative di Sinfonia ed i sistemiesterni avviene attraverso l’esposizione e l’invocazione di servizi SOAP, orchestrati e coordinatiattraverso uno strato ESB.Una istanza del Sistema Applicativo Sinfonia è composta da uno strato applicativo di back endche espone servizi su cui è realizzato uno strato web che rende fruibili ad un utente finale lefunzionalità offerte dal sistema. Le caratteristiche generali della soluzione si basano suglistrumenti tecnici ed architetturali che allo stato attuale appaiono più maturi, stabili e con elevatopotenziale di crescita e diffusione come i modelli di comunicazione basata sugli standardnazionali per l’interoperabilità e cooperazione, i servizi per la sicurezza e la privacy basati susmart card e firma digitale, PEC.Elementi fondamentali del modello architetturale sono: l’adozione della SOA (Services Oriented Architecture) e dei Web services che fornisconoun approccio per la definizione, la pubblicazione e l’utilizzo dei servizi applicativi; gli accordi di servizio che specificano gli elementi funzionali e tecnici, necessari perl’invocazione dei servizi; lo strato ESB Enterprise Service Bus, che si occupa dell’orchestrazione e dellacoordinazione dei servizi offerti dalle varie componenti, oltre alle comuni facility previsteda un ESB come messaggistica, routing, trasformazione dei servizi, security e single signon.Inoltre l’architettura del sistema si basa sui seguenti standard tecnologici di progetto e sviluppo: adozione di browser Internet standard per la visualizzazione dell’interfaccia utente deiservizi di back end; logica di presentazione web basata sull’impiego di pagine dinamiche (JSP) e delletecnologie AJAX e JSON; logica di presentazione di tipo programmatico basata su Web Services SOAP; logica applicativa lato server implementata in architettura JEE, EJB3 e JPA.L’accesso ai servizi offerti dal sistema Sinfonia è realizzato mediante: un sistema di front-end realizzato attraverso un portale che funge da entry point di Sinfoniae permette l’accesso a tutte le componenti applicative; un sistema di autenticazione utente di tipo SSO basato su un repository OpenLDAP ed unsistema CAS; un insieme di applicazioni web, realizzate mediante tecnologie enterprise come JSP conJSTL, jQuery, Ajax, CSS3 e (X)Html e fruibile dagli utenti mediante l’utilizzo di unbrowser web;Pag. 12 61

ALLEGATO 1BSINFONIA – ARCHITETTURA GENERALE DEL SISTEMA APPLICATIVO FLUSSI un l’Enterprise Service Bus, che si occupa dell’orchestrazione e della coordinazione deiservizi offerti dalle varie componenti, oltre alle comuni facility previste da un ESB comemessaggistica, routing, trasformazione dei servizi; un registro dei servizi UDDI (service inventory); i servizi di cooperazione applicativa, secondo lo standard SOAP, a favore sia di sistemifruitori cooperanti appartenenti allo stesso dominio organizzativo che ospita il sistemainformativo Sinfonia ma anche verso sistemi esterni.Il modello adottato, fondato sui principi della cooperazione applicativa fra sistemi informativieterogenei e sul concetto di dominio, prevede l’interconnessione di Sinfonia con lo strato ESB,allo scopo di abilitare l’accesso a tutti gli operatori sanitari della Regione e, in prospettiva,anche agli altri Enti.La comunicazione tra i vari domini può essere mediata dalle Porte di Dominio, elemento diaccesso standard alle risorse applicative dei domini interconnessi, capace di veicolare lerichieste di servizio verso altri domini e, simmetricamente, di ricevere le richieste di servizioprovenienti dagli altri domini. La sua capacità di interazione con il mondo esterno si fonda sullacomunicazione e sullo scambio di messaggi in formato XML su protocollo SOAP conforme allaBusta di e-government.2.1. Obiettivi architetturaliNel presente paragrafo vengono riportati gli obiettivi architetturali che saranno soddisfatti dalpresente documento.DenominazioneStandardizzazioneservice contractLoose àPag. 13 61Descrizionedei Va assicurata la standardizzazione dei servicecontract, curando il modo in cui le funzionalità sonoespresse, la definizione dei datatype, del modellodei dati e delle policy. Vi deve essere un’attenzionecostante alla ottimizzazione ed alla appropriatagranularità dei servizi, al fine di assicurare serviziconsistenti affidabili e governabili.Va garantita l’indipendenza del disegno el’evoluzione della logica di business di ogniservizio e simultaneamente l’interoperabilità con iconsumer dei serviziIl disegno deve assicurare che i servizi occultino ilpiù possibile i dettagli interni della loroimplementazioneI servizi devono essere progettati e realizzati inmodo da favorire la loro riusabilità, considerandolicome risorse dell’organizzazione il più possibileagnostiche rispetto ad un contesto funzionalespecificoI servizi devo minimizzare la loro dipendenza siaper quanto concerne la logica che per l’ambiente diimplementazioneI componenti dovranno essere in grado di adeguarsiai mutamenti tecnologici ed all’interazione con altriprogetti presenti e futuri

ALLEGATO 1BSINFONIA – ARCHITETTURA GENERALE DEL SISTEMA APPLICATIVO FLUSSIDenominazioneCapacità di integrazioneDescrizioneI componenti di servizio (service component) sonoil punto di partenza di un progetto ampio ecomplesso e dunque dovranno essere in grado diintegrarsi, dal punto di vista tecnologico, coninformazioni prodotte in sistemi diversi. A tal fine icomponenti dovranno essere in grado diinterfacciarsi con altri sistemi utilizzando standardriconosciuti.ModularitàI componenti dovranno essere progettati, sia perquanto riguarda la parte hardware che la partesoftware, in maniera modulare per garantire unaloro naturale evoluzione ed integrazione con altrisistemiAffidabilità, robustezza e Il sistema deve essere disponibile in mododisponibilitàcontinuativo (H24 e 7x7), rispondendo agli SLAconcordati; il sistema deve poter continuare afunzionare con adeguati livelli di alta affidabilitàsfruttando la sua modularità anche in condizioninon specificate nei requisiti e in presenza di errorilocali senza propagare i guasti a tutto il sistemaManutenibilitàI componenti dovranno essere facilmentemanutenibili; a tal fine il disegno progettuale dovràessere chiaro, la documentazione completa edovranno essere utilizzati software di base estrumenti di sviluppo ampiamente diffusi o standardde factoAccesso utente tramite Tutti i componenti dovranno utilizzare schemiFront-End web-basedstandard di applicativiSemplicità d’usoIl Front-End dovrà minimizzare l’intervento umanomassimizzando, in ogni caso, l’ergonomiadell’interfaccia utente e favorire la facilità diutilizzo, presentando un ambiente intuitivocorredato di help on-line anche contestuale. Nellasua progettazione andranno tenute presenti leinterfacce utente degli applicativi attuali in modo daminimizzare,perquantopossibile,ildisorientamento iniziale degli utentiTabella 3 - Obiettivi architetturaliPag. 14 61

ALLEGAT

BPM (Business Process Management) Il Business process management è l'insieme di attività necessarie per definire, ottimizzare, monitorare e integrare i processi aziendali, al fine di creare un processo orientato a rendere efficiente ed efficace il business dell'azienda.