Web Service e integrazione dei sistemi Enrico Lodolo [email protected] 1 Informatizzazione In tutte le organizzazioni l’informatizzazione è nata e si è sviluppata in modo non organico, per stratificazioni successive La prima area ad essere informatizzata è stata di solito quella contabile In seguito si è passati alla logistica (magazzino) e alla gestione della produzione (o equivalente) Nel contempo si sono diffuse applicazioni “locali”: produttività individuale (Office), piccoli applicativi realizzati ad hoc per automatizzare singole funzioni Si parla di modello di informatizzazione ad isole E’ la situazione normale in tutte le organizzazioni complesse 2 Esempio: il modello a isole in un’Università Contabilità Patrimonio Personale Ricerca Formazione 3 Una piccola storia dell’integrazione fra sistemi… Livello di integrazione Orchestr. Orchestr. ESB ESB Applicazioni Stored Stored procedures procedures Dati File di File di scambio scambio LAN LAN unica unica Rete Nessuno 1970 RDBMS RDBMS eeallineamenti allineamenti batch batch Web Web Services Services Consolidamento Consolidamento DB DB Internet Internet Intranet Intranet Extranet Extranet Reti locali Reti locali (LAN) (LAN) a isole a isole Isole non Isole non integrate integrate 1980 1990 2000 2010 4 Integrazione a livello di rete E’ un processo che si può considerare ormai concluso Con l’avvento di Internet si ha ormai ovunque un’unica rete (Intranet), che si estende al di fuori dell’organizzazione ai partner (Extranet) o al mondo intero (Internet) TCP/IP ha soppiantato i diversi protocolli precedenti (IPX/SPX, NETBEUI…) La presenza della rete consente una prima forma di integrazione: Si possono scambiare dati mediante file di scambio emessi da un sistema e importati in un altro E’ un integrazione molto debole: fuori linea, con cadenza al più giornaliera, unidirezionale 5 Il modello a isole con integrazione di rete Contabilità Patrimonio File di scambio File di scambio Personale Ricerca Formazione 6 Integrazione a livello di database Con la diffusione dei database relazionali è iniziato negli anni ’80 un processo di integrazione a livello di dati Gli RDBMS consentono modalità di scambio dati più strette dei file di scambio: Repliche asincrone e sincrone DBLink … Negli anni ’90 si è passati ad un consolidamento dei database Non più tanti database separati fisicamente ma un solo DB con divisioni di tipo logico (schema) Si ha una effettiva condivisione dei dati E’ un processo tuttora in corso 7 Il modello a isole con DB consolidati Contabilità Patrimonio Personale Ricerca Formazione 8 Limiti dell’integrazione a livello di DB L’integrazione a livello di DB, pur rappresentando un notevole passo avanti, non risolve tutti i problemi Rimangono aperte diverse questioni: Duplicazione della logica applicativa: le diverse applicazioni che accedono alla stessa base di dati sono costrette a replicare una parte consistente di codice (business logic) Accoppiamento troppo stretto: se la base dati di un’applicazione cambia tutte le altre applicazioni che vi accedono risentono dei cambiamenti Difficoltà di distribuzione su scala geografica. Se i sistemi non sono collocati nello stesso luogo e se non si ha a disposizione una banda molto ampia ci sono grossi problemi di prestazioni e sicurezza. 9 Verso un’integrazione a livello applicativo Gli strumenti di integrazione a livello applicativo si pongono come obiettivo proprio il superamento di questi limiti Il primo tentativo in questo senso è stato quello di estendere verso l’alto l’integrazione a livello di DB: Viste logiche e snapshot per diminuire l’accoppiamento Stored procedures per centralizzare la logica applicativa Sono però strumenti di livello troppo basso Non forniscono un’astrazione sufficiente 10 Web Services e SOA Al giorno d’oggi lo strumento principale per l’integrazione a livello applicativo è costituito dai Web Services Consentono di avere un livello di astrazione molto maggiore Consentono di integrare anche sistemi distribuiti su scala geografica non necessariamente integrati a livello di DB Sono le fondamenta di quelle che vengono comunemente chiamate SOA (Service Oriented Architectures) Anche in questo ambito abbiamo diversi livelli di integrazione 11 Il modello a isole con frontiere applicative Contabilità Patrimonio Le Leapplicazioni applicazioni espongono espongonodei dei “connettori” “connettori”sotto sotto forma formadidiWeb WebServices Services Ricerca Personale Formazione Si riducono di Si riducono di parecchio parecchiogli gliaccessi accessi diretti ai dati diretti ai datididialtre altre applicazioni applicazioni 12 Vantaggi e limiti del modello a frontiere applicative Può essere applicato con uno sforzo ragionevole anche con applicazioni non predisposte (legacy) Però: Se non si fa attenzione si crea un reticolo di connessioni che tende a diventare molto complesso Si tende a ragionare ancora su un’organizzazione di tipo funzionale con applicazioni monolitiche (silos) Non sempre si riescono a modellare bene i processi che attraversano le varie aree Comunque è un primo passo importante e già arrivare a questo livello dà molti vantaggi 13 SOA: lo scenario futuro Database consolidati e integrati Centralizzazione della logica applicativa con Web Services Organizzazione per processi con workflow Gestione dei processi interarea Richiede software progettato in logica SOA SOA Front-end Front-end applicativo applicativo Processi Processi (anche (ancheinterarea) interarea) Logica Logica applicativa applicativa comune comune ESB, ESB, Workflow, Workflow, Orchestrazione Orchestrazione Ricerca Contabilità Personale Formazione Web Web services services DB DBConsolidati Consolidati 14 UNIBO: il punto di partenza (mappa dei sistemi) Portale Guide Web Struttura org. … Gestioni esterne Ricerca PRIN Formazione Segreterie AlmaWelcome Valutazione … Plitvice Uniwex … Personale IFN Presenze/assenze App. locali … Patrimonio SAI Area contabile Banca PAL CIA 15 Integrazione applicativa: una nuova mappa dei sistemi Portale Guide Web Struttura org. … Ricerca Gestioni esterne PRIN Formazione Segreterie AlmaWelcome Valutazione … Plitvice Uniwex … Personale IFN Presenze/assenze App. locali Interfacce Interfaccesincrone sincrone ++ processi processi … Patrimonio Banca SAI Area contabile PAL CIA 16 Un piano per l’integrazione E’ fondamentale che ogni nuovo intervento entri a far parte di un quadro generale: un ecosistema software Per ogni intervento bisogna valutare gli aspetti di integrazione e l’impatto complessivo Ogni nuova funzionalità deve essere contestualizzata in un processo e nel modello generale 17 Linee guida per le applicazioni Per garantire una sempre maggior integrazione fra i sistemi è necessario che le nuove applicazioni seguano una serie di linee guida In questo modo possono entrare a far parte di un unico grande disegno Le linee guida prevedono (tra l’altro): Autenticazione su DSA (in modalità sicura) Dati su DB Oracle Interfaccia utente e modalità di interazione standardizzate (allineate al portale) Non replicazione delle regole e della logica applicativa (utilizzo quindi web services o, in subordine, stored procedures per accedere alla logica già esistente) 18 Esempio: offerta formativa, mappa dei processi Costituzione CdS Gestione ordinamenti Informativo Descrizione CdS Pianificazione Operativo Definizione manifesti Regolamenti Regole piani Programmaz. Didattica Descrizione AF Elaborazione carriera Pubblicazione Guide Coperture Erogazione Diploma supplement Contratti Registri Compensi Immatricolazione Piani di studio Trasferimento in ingresso Esami 19 Esempio: nuova applicazione predisposta per SOA Utenti Altri sistemi (Portale, Uniwex, MIUR ecc.) Interfaccia utente (JSF – ADF Faces) Web Services (AXIS) Corsi i studio E ordinamenti Attività formative (Session Beans) Regole dei piani di studio Session Beans Presentazione Logica applicativa (Business Logic) Mappatura object-relational (Toplink) Persistenza Database dell’area della formazione 20 Esempio: frontiera del sistema contabile (legacy) Formazione (Plitvice e segreterie) Ricerca Web Services Web Services PRIN PRIN Assegni Assegnididi ricerca ricerca Borse Borse … … Coperture Coperture Rimborsi Rimborsi studenti studenti Convenzioni Convenzioni CAF CAFeeMaster Master … … Frontiera applicativa CIA … Stored Stored procedures procedures Viste Viste Personale PAL Contratti Contratti personale… personale… Costruzioni Costruzioni Acquisizioni Acquisizioni Cessioni Cessioni Manutenzioni Manutenzioni … … 21 Frontiera del sistema contabile: le tecnologie Il produttore del sistema contabile sta realizzando queste funzionalità sotto forma di stored procedures (limite imposto dalla tecnologia con cui il sistema contabile è stato realizzato) UNIBO realizzera uno strato di Web Services che incapsulano queste stored procedures A seconda della tecnologia utilizzata per lo sviluppo le applicazioni potranno utilizzare sia i WS che le stored procedures 22 Esempio misto: didattica e coperture Regolamenti Regole piani Nuova applicazione pensata per SOA Programmaz. Didattica Coperture Formazione Frontiera Frontiera applicativa applicativadidiIFM IFM Contratti Personale Frontiera Frontiera applicativa di CIA applicativa di CIA Scadenziario passivo Applicazioni legacy Compensi Ragioneria 23 Convenzioni alta formazione (CAF e Master) Immatricolazione Master/CAF (AlmaWelcome) Pagamento UNICREDIT Convenzione con azienda Formazione Impianto tasse Frontiera Frontiera applicativa di CIA applicativa di CIA Contratto attivo Contabilità Nota di contabile per azienda Flusso FlussoBanca Banca (file (filedidiscambio!) scambio!) Gestione tasse Scadenziario attivo Incasso azienda e studenti 24