Integrazione di applicazioni

Documenti analoghi
(e integrazione di applicazioni)

Messaging (stile architetturale) e integrazione di applicazioni

Alcune idee sui sistemi software e la loro architettura

POLO REGIONALE DI FATTURAZIONE ELETTRONICA

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

Manuale Utente F.IT.A.B. MANUALE UTENTE F.IT.A.B. F.IT.A.B. Pagina 1

Manuale Utente CMMG Corso Medici Medicina Generale

TERNA SRM- Aste On Line Manuale Fornitore

Manuale antievasione (spesometro) su Gestionale 1 con immagini

VALORIZZAZIONE MOVIMENTI DI SCARICO E VALORIZZAZIONE TRASFERIMENTO COSTI DI ANALITICA

Compilazione on-line del Piano di Studio

Definizione di metodi

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre

SPORTELLO DIPENDENTE. - Personale amministrativo tecnico ausiliario (A.T.A.);

Manuale di Aggiornamento BOLLETTINO. Rel B. DATALOG Soluzioni Integrate a 32 Bit

MANUALE OPERATIVO 00132

UML I diagrammi implementativi

DOCUMENTAZIONE WEB RAIN - ACCESSO CLIENTI

Caratteristiche di un PC

Note_Batch_Application 04/02/2011

Il sistema informativo aziendale

NUVOLA COMUNICAZIONI

Regole e modalità di utilizzo della PEC e della PEO istituzionale

Importazione dati. e/fiscali Spesometro - Rel con gestionale e/satto. Gestionale e/satto

(1) (2) (3) (4) 11 nessuno/a (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B

Generalità sui protocolli Tecniche di multiplazione Tecniche di accesso Tecniche di commutazione

La disposizione estetica della lettera commerciale

Procedura operativa per la gestione della funzione di formazione classi prime

Sportello Unico per l Edilizia

WINDOWS TERMINAL SERVER PER L ACCESSO REMOTO AL SISTEMA DI PROTOCOLLO INFORMATICO

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

INTRODUZIONE ALLE BASI DATI RELAZIONALI

WINDOWS Avviare Windows95. Avviare Windows95 non è un problema: parte. automaticamente all accensione del computer. 2. Barra delle applicazioni

CAPITOLO V. DATABASE: Il modello relazionale

Servizio Conservazione No Problem

I database. Introduzione alla teoria delle basi di dati

Flusso operativo per Bilancio Europeo 2015

Corso di Informatica

Firma Digitale Corporate Gestione Certificati

TomTom WEBFLEET Tachograph Manager Installazione

DESCRIZIONE CREAZIONE APP Si suddivide in 4 fasi di lavoro: 1. PIANIFICAZIONE; 2. PROGETTAZIONE; 3. SVILUPPO; 4. DISTRIBUZIONE.

Tramite questa procedura vengono emessi i documenti di trasporto relativi alla merce che facciamo produrre all esterno dell azienda.

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1

REGISTRAZIONE ed ACCESSO AL PORTALE PER LA CONSULTAZIONE DELLE FATTURE DI GAS NATURALE E DI ENERGIA ELETTRICA

LE RETI DI COMPUTER. Il modello ISO/OSI Prima parte

Sistema Pagamenti del SSR. Manuale Utente funzionalità Gestione Cessioni. Utente del sistema di fatturazione regionale

Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.

Informatica d ufficio

Sommario. Introduzione. Di cosa si tratta?

Pagamento Oneri. Gli oneri di istruttoria ed i bolli vengono pagati all invio della richiesta.

PENSIONI MINIME E MAGGIORAZIONI 2013: ATTENZIONE AI REDDITI

Direttive di applicazione del Regolamento Bachelor per il corso di laurea in lavoro sociale

PVIS: Pilz VISualization

Indice. Ricerca richiesta d offerta. Risultati della ricerca Navigazione Stati

Protocolli multimediali

Utilizzo di fusibili di stringa

Corso di Marketing DIPARTIMENTO SCIENZE SOCIALI, POLITICHE E COGNITIVE. Gaetano Torrisi SIENA a.a

15/03/2016. SISC Area Sviluppo Software

Valutazione del personale

Specifiche tecniche per l interoperabilità tra i sistemi regionali di FSE

Lavoro & Previdenza La circolare su temi previdenziali e giuslavoristici

HTH HIP - Healt In Prison Applicazione Mobile per la Gestione Carceri. Manuale Utente

Guida semplice all utilizzo del sistema D-STAR Seconda Parte

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.

ERP, ENTERPRISE RESOURCE PLANNING

Architettura dei computer

Guida Compilazione Questionario SCUOLA DELL INFANZIA PARITARIA

ECDL CORE 5.0. Modulo 1 Concetti di base dell ICT 1.6 Aspetti giuridici. Docente: Stefania De Martino Liceo G. Leopardi Recanati a.s.

La segreteria didattica dovrà eseguire semplici operazioni per effettuare lo scrutinio:

Microsoft Software Assurance per i contratti multilicenza

Guida all utilizzo di Campaign Builder

Gestione della memoria

Servizi per la Protezione Civile. Preventivo Comune / Unione di

ISCRIZIONI ONLINE 2014 II FASE Scuole Verifica domande

INDICE. Vista Libretto Livello Digitale 2. Importazione di dati da strumento 3. Inserisci File Vari 5. Compensazione Quote 5.

Gestione Commissioni Esami

Documento non definitivo

Progetto B. Utenti. Di conseguenza si potranno avere solo utenti di questi tipi

Integrazione di rete di campo PROFIBUS in reti di fabbrica di tipo Ethernet

Modulo 2 Data Base - Modello Relazionale

Distribuzioni campionarie. Antonello Maruotti

La codifica. dell informazione

Segnale RAI. Rilevazione Co.re.com. Piemonte

Linguaggio C: introduzione

PG-SGSL 03 Definizione degli obiettivi e dei programmi

1 Considerare la seguente descrizione del processo di prestito dei libri di una biblioteca, per il quale si vuole progettare un software:

Grafici. 1 Generazione di grafici a partire da un foglio elettronico

Procedura tecnica di accreditamento dei Registrar

Introduzione alle macchine a stati (non definitivo)

Vademecum inserimento Modello Organizzativo attraverso

ICT e Business Solutions. Passaporto Elettronico Agenda On Line

Grafici e Pagina web

Portale Unico dei Servizi NoiPA. Guida all accesso

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

Manuale Sito Videotrend

FATTURAZIONE E PAGAMENTO

Acquisto corsi online da parte di aziende

Dichiarazione di intento: approvato il modello e chiarito il regime transitorio

Dal CRM all e-crm. Andrea De Marco

Come utilizzare i riferimenti assoluti e relativi in Microsoft Excel

Transcript:

Luca Cabibbo Architettura dei Sistemi Software dispensa asw447 marzo 2017 We believe that asynchronous messaging will play an increasingly important role in enterprise software development, particularly in integration. 1 Martin Fowler - Fonti Hohpe, G. and Woolf, B. Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions. Addison- Wesley, 2004. Referenziato come [EIP] http://www.enterpriseintegrationpatterns.com/ http://eaipatterns.com/ Buschmann, F., Henney, K., and Schmidt, D.C. Pattern-Oriented Software Architecture (Volume 4): A Pattern Language for Distributed Computing. Wiley, 2007. Referenziato come [POSA4] 2

Obiettivi - Obiettivi e argomenti presentare brevemente il problema dell integrazione di applicazioni presentare e discutere uno studio di caso sull applicazione del Messaging all integrazione di applicazioni Argomenti introduzione all integrazione di applicazioni uno studio di caso di integrazione di applicazioni discussione 3 * Introduzione all integrazione di applicazioni Le applicazioni interessanti vivono raramente in isolamento piuttosto, devono spesso comunicare tra loro, per scambiarsi dati o servizi in particolare, l integrazione di applicazioni Enterprise Application Integration o EAI ha l obiettivo di comporre i componenti di un insieme di applicazioni esistenti per realizzare una nuova applicazione, con un maggior valore di business 4

Stili di integrazione Nel corso del tempo, sono stati introdotti e utilizzati in pratica diversi approcci per l integrazione di applicazioni trasferimento di file le applicazioni si scambiano dei file di dati condivisi basi di dati condivise le applicazioni memorizzano i dati che si devono scambiare in una base di dati condivisa invocazioni remote le applicazioni si scambiano i dati mediante l invocazione di operazioni remote messaging (con riferimento al pattern architetturale Messaging) i sistemi si scambiato dati, sotto forma di messaggi e in modo asincrono, collegandosi ad un infrastruttura per lo scambio di messaggi 5 Stili di integrazione In pratica, il Messaging è divenuto lo stile preferito per l integrazione di applicazioni poiché supera numerosi limiti degli altri approcci trasferimento di file è poco tempestivo spesso lo scambio di dati è tra singole coppie di applicazioni, con formati non compatibili con le altre applicazioni basi di dati condivise è difficile progettare una base di dati condivisa per l integrazione di tutte le applicazioni problemi di prestazioni invocazioni remote accoppiamento alto tra le applicazioni l integrazione sincrona è spesso caratterizzata da problemi di prestazioni e di affidabilità 6

Integrazione e messaging Oggi, la comunicazione asincrona e il messaging sono elementi fondamentali nell integrazione di applicazioni l integrazione avviene realizzando un infrastruttura di comunicazione tra le applicazioni preesistenti, basata appunto sullo scambio di messaggi il messaging viene spesso preferito ad altri approcci e tecnologie perché richiede un accoppiamento basso tra i componenti ed offre una maggior flessibilità alcuni vantaggi accoppiamento debole, asincronia, consegna immediata (appena possibile), affidabilità, formati personalizzati,... 7 * Uno studio di caso di integrazione di applicazioni Viene ora presentato e discusso uno studio di caso (parziale) per l integrazione di applicazioni basata sul messaging si tratta dello studio di caso Widgets & Gadgets R Us (WGRUS) di [EIP] http://www.enterpriseintegrationpatterns.com/chapter1.html 8

WGRUS Widgets & Gadgets R Us è un rivenditore che acquista e rivende widgets e gadgets Widgets & Gadgets R Us nasce dalla fusione di due aziende, Widget Co e Gadget Co WGRUS è il sistema software per Widgets & Gadgets R Us, che deve integrare alcuni componenti (preesistenti) dei sistemi informatici (preesistenti) di Widget Co e Gadget Co 9 WGRUS Alcune funzionalità di WGRUS inserimento ordini elaborazione ordini verifica stato di avanzamento di un ordine gestione clienti gestione catalogo prodotti... Qui consideriamo (parzialmente) solo la gestione degli ordini inserimento, elaborazione, verifica stato di avanzamento degli ordini 10

WGRUS come problema di integrazione Come detto, il sistema WGRUS deve realizzare le varie funzionalità integrando alcuni componenti preesistenti tra cui i sistemi preesistenti di Widget Co e Gadget Co a loro volta composti da vari elementi a sinistra, sono mostrati i canali di interazione con i clienti a destra, i componenti applicativi preesistenti da riusare 11 - Ricezione di ordini Gli ordini possono essere ricevuti/immessi da vari client un client web, un client per un addetto al telefono, ordini ricevuti via fax ciascuno genera ordini con un formato diverso si vuole invece avere un flusso di messaggi (unico e omogeneo) per tutti gli ordini 12

Pattern per l EAI Alcuni pattern per l Enterprise Application Integration Messaging per integrare un insieme di applicazioni, in modo che possano scambiarsi informazioni e lavorare assieme Message un messaggio ovvero, un tipo/flusso di messaggi Message (Point-to-Point) Channel un canale (una coda) per lo scambio di messaggi 13 Pattern per l EAI Message Endpoint collega un componente al sistema di messaging, per trasmettere/ricevere messaggi Message Translator una trasformazione che cambia il formato di un messaggio 14

Pattern per l EAI Esistono vari tipi di Message Endpoint tra cui Messaging Gateway message endpoint che incapsula l accesso al sistema di messaging, fornendo un interfaccia con i metodi specifici del dominio applicativo ma in modo indipendente dal sistema di messaging usato Channel Adapter message endpoint che realizza una connessione tra un applicazione (di solito preesistente) e il sistema di messaging 15 - Elaborazione di ordini Ora abbiamo un flusso consistente di ordini l elaborazione di un ordine richiede verifica dello stato del cliente nessun debito in sospeso verifica dell inventario disponibilità degli articoli ordinati se tutto ok, si può procedere 16

Elaborazione di ordini Come elaborare gli ordini? ordini inviati separatamente e in parallelo a contabilità e inventario per le verifiche le due risposte devono poi essere aggregate gli ordini confermati vanno poi inviati ai sistemi di spedizione e di fatturazione 17 Pattern per l EAI Publish-Subscribe Channel un canale (un topic/argomento) per lo scambio di messaggi Aggregator combina il contenuto di messaggi diversi ma correlati Content-Based Router gira un messaggio a un opportuna destinazione, sulla base del contenuto del messaggio 18

- Controllo dell inventario In realtà, ci sono due sistemi/funzionalità per il controllo dell inventario una per i Widget e una per i Gadget ciascuna richiesta va instradata al sistema giusto ipotesi (temporanea): una sola riga d ordine per ordine ipotesi (semplificativa): il primo carattere del codice del prodotto è G o W 19 Pattern per l EAI Invalid Message Channel destinazione di messaggi non validi 20

- Ordini con più righe d ordine In realtà, un ordine contiene normalmente più righe d ordine alcune saranno relative a widget, altre a gadget la disponibilità delle merci va verificata riga d ordine per riga d ordine 21 Pattern per l EAI Splitter decompone un messaggio in un insieme di messaggi, ciascuno dei quali può richiedere (successivamente) una diversa elaborazione 22

Un osservazione Si consideri questa porzione del diagramma sembra che il componente preesistente Widget Inventory partecipi in prima persona alla soluzione di integrazione ma è proprio lui a consumare e produrre messaggi direttamente? no, tale componente verrà probabilmente utilizzato tramite un opportuno message endpoint (ad es., un channel adapter) 23 considerazioni analoghe si possono fare per accedere alle funzionalità di altri componenti preesistenti - Identificatore d ordine Messaggi elaborati separatamente possono essere ricombinati mediante un Aggregator sulla base di opportune informazioni di correlazione ad es., un identificatore d ordine ma è necessario aggiungere un identificatore a ciascun ordine 24

Pattern per l EAI Content Enricher aggiunge informazioni a un messaggio 25 - Gestione degli ordini rivista 26

Pattern per l EAI Composed Message Processor mantiene il flusso di messaggi complessivo, anche se i diversi messaggi richiedono elaborazioni diverse 27 - Verificare lo stato di un ordine L elaborazione di un ordine richiede lo svolgimento di varie attività come è possibile verificare lo stato di avanzamento di un ordine? è stata effettuata la spedizione? è in attesa di prodotti? è bloccato perché il cliente ha debiti in sospeso? è possibile rispondere conoscendo l ultimo messaggio scambiato nel sistema circa l ordine questo può essere fatto memorizzando i messaggi rilevanti in un repository di messaggi 28

Pattern per l EAI Message Store quando viene inviato un messaggio nel sistema, viene inviato anche un messaggio duplicato e memorizzato in un repository di messaggi semplice se il canale di cui bisogna memorizzare i messaggi è di tipo Publish-Subscribe Wire Tap per duplicare su più canali i messaggi inviati su un certo canale 29 * Discussione Lo studio di caso WGRUS esemplifica l applicazione di alcuni pattern per lo scambio di messaggi e la comunicazione asincrona per l integrazione di applicazioni i componenti preesistenti non vengono collegati tra di loro direttamente piuttosto, l integrazione è basata su costruzione, consumo, trasformazione, splitting, aggregazione e routing di messaggi, anche con riferimento a un certo numero di canali per messaggi i componenti preesistenti non sono collegati direttamente all infrastruttura per lo scambio di messaggi piuttosto, vengono collegati ad essa mediante dei message enpoint, che incapsulano l accesso all infrastruttura per i messaggi, ed inoltre fungono da collante tra i componenti preesistenti 30

Discussione [EIP] presenta numerosi pattern per la comunicazione basata sullo scambio di messaggi alcuni dei quali sono stati ripresi anche da [POSA4] per rappresentare, tra l altro elementi infrastrutturali per lo scambio di messaggi come Message e Message Channel tipi di canali per messaggi come Point-to-point Channel, Publish-Subscribe Channel o Invalid Message Channel tipi di messaggi come Document Message o Request-Reply routing di messaggi come Splitter o Aggregator trasformazioni di messaggi come Content Enricher o Content Filter estremità per lo scambio di messaggi come Messaging Gateway gestione e monitoraggio del sistema come Control Bus o Process Manager 31 Discussione Nell esempio relativo al sistema WGRUS è possibile osservare l applicazione di alcuni stili architetturali fondamentali Messaging come stile di integrazione Domain Model il modello di dominio utilizzato in questo caso è un modello delle attività, che descrive le attività da svolgere nel processo di gestione degli ordini, insieme al loro ordine l architettura del sistema integrato per la gestione degli ordini ha la forma del diagramma delle attività che è stato mostrato Pipes and Filters i sistemi basati sullo scambio di messaggi sono chiaramente organizzati mediante questo stile il processo di gestione degli ordini deve trasformare un flusso di messaggi in ingresso (ordini) in flussi di messaggi in uscita (spedizioni, fatture) la trasformazione è stata decomposta in una sequenza di passi successivi guidati dal diagramma delle attività 32