Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO Antonio
ESB e Architetture per l'Interoperabilità
1. Via Salvo D’Acquisto, 40/P – 56025 Pontedera – PI – Italy
Tel: +39 0587 975800 | www.extrasrl.it - info@extrasys.it
Commit University
Evento 25/05/2016
Stefano Marfella
Middleware Division Manager
Red Hat JBoss Fuse:
l’interoperabilità
applicativa tramite un
ESB Open Source
2. www.extrasrl.it
Cosa è un Enterprise Service Bus?
2
Una infrastruttura software che fornisce servizi
di supporto ad architetture SOA complesse
3. www.extrasrl.it
Cosa è un Enterprise Service Bus?
3
Difficoltà per uniformare gli applicativi ad uno standard
- Applicativi off the shelf, venduti industrialmente e
non su commessa del cliente
- Mettere d'accordo tutti i responsabili degli
applicativi su un unico standard di comunicazione
- Per ogni applicativo che deve essere modificato il
budget necessario per l'integrazione aumenta.
5. www.extrasrl.it
Componenti Red Hat Jboss Fuse
5
Red Hat Jboss Fuse è una soluzione che integra diversi progetti
Open Source per fornire tutte le funzionalità di un ESB completo.
7. www.extrasrl.it
Apache Karaf
7
Grazie allo standard OSGi, Karaf fornisce un'avanzata
modularità a RH Jboss Fuse.
Karaf è un piattaforma OSGi Open Source che fornisce un contenitore
“leggero” all'interno del quale possono essere inclusi vari componenti
applicativi
Anche i componenti di sistema (console, logging, admin, etc.) sono
moduli OSGi al pari dei moduli applicativi scritti dall'utente.
8. www.extrasrl.it
Apache Karaf e OSGi
8
- riduzione della complessità attraverso la suddivisione in moduli
I vantaggi di un'architettura OSGi:
- possibilità di riuso dei moduli
- aggiornamento dei moduli “a caldo” senza spegnere il sistema
- gestione dinamica dei servizi
- runtime leggero (il runtime di felix è circa 500KiB)
- elimina il problema del “JAR Hell”.
11. www.extrasrl.it
Vantaggi architettura cloud
11
Con Fabric, la modularità di Red Hat Jboss Fuse può essere
estesa a diverse installazioni ognuna delle quali si prende
carico di una parte dell'elaborazione
Fabric rende semplici anche le installazioni in alta affidabilità,
attraverso la predisposizione di server di failover sincronizzati
automaticamente.
Da questa modularità deriva naturalmente un'alta scalabilità. Si
possono aggiungere nuovi server in caso di problemi di
performance
13. www.extrasrl.it
Apache Camel e EIP
13
Apache Camel è un framework di integrazione Open Source che
utilizza gli Enterprise Integration Pattern (EIP) per definire in modo
semplice il flusso dei messaggi .
Recipient list
Processa in parallelo diverse copie del
messaggio
Content based
routing
Instrada il messaggio a seconda del contenuto
Publish-Subscribe
Channel
Inserisce il messaggio su un canale Publish-
Subscribe
Message Translator Trasforma il messaggio in un altro formato
Content Enricher Arricchisce il messaggio attraverso
Aggregator Aggrega diversi messaggi in un unico
messaggio
14. www.extrasrl.it
Apache Camel Esempi
14
Content Based Router
Il pattern si applica in tutti i casi in cui è necessario valutare alcune
condizioni sul contenuto del messaggio per decidere il destinatario
Il componente di Camel permette di configurare le condizioni e le
operazioni da eseguire in base al valore dei predicati.
15. www.extrasrl.it
Apache Camel Esempi
15
Content Based Router
<camelContext errorHandlerRef="errorHandler"
xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="direct:a"/>
<!-- il payload del messaggio è xml -->
<choice>
<when>
<xpath >/libro/genere/text() = ‘Romanzo'</xpath >
<to uri="direct:b"/>
</when>
<when>
<xpath>/libro/genere/text() = ‘Storia'</xpath>
<to uri="direct:c"/>
</when>
<otherwise>
<to uri="direct:d"/>
</otherwise>
</choice>
</route>
</camelContext>
16. www.extrasrl.it
Apache Camel Esempi
16
Splitter
Il pattern si applica in tutti i casi in cui si deve elaborare un messaggio
che contiene elementi ripetuti (liste, collezioni, xml con elementi con
occorrenza maggiore di uno, ecc.)
Il componente di Camel è può riconoscere un elemento java.util.List e
separare automaticamente i suoi elementi senza ulteriori indicazioni.
.
17. www.extrasrl.it
Apache Camel Esempi
17
Content Based Router
<camelContext errorHandlerRef="errorHandler"
xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="direct:a"/>
<!-- il payload del messaggio è una java.util.List -->
<split>
<simple>${body}</simple>
<to uri="direct:b"/>
</split>
</route>
<route>
<from uri="direct:c"/>
<!-- il payload del messaggio è xml -->
<split>
<xpath>/ordiner/lineaordine</xpath>
<to uri="direct:d"/>
</split>
</route>
</camelContext>
18. www.extrasrl.it
Apache Camel Esempi
18
Enricher
Il pattern si applica in tutti i casi in cui si deveno aggiungere nuovi dati a
un messaggio.
Il componente di Camel permette di indicare la sorgente esterna come
URI.
.
20. www.extrasrl.it
Apache Camel Esempi
20
Recipient List
Il pattern si applica in tutti i casi in cui i destinatari possono essere
determinati solo a run time.
Il componente Camel utilizza una lista di URI per inviare il messaggio ai
destinatari.
23. www.extrasrl.it
Apache ActiveMQ
23
ActiveMQ fornisce un'implementazione robusta e veloce per le
code di messaggi
Apache ActiveMQ è un popolare Messaging Service Open Source
Oltre al modello point-to-point, ActiveMQ supporta per le sue
code anche il modello Publish-Subscribe.
Message broker che implementa la specifica JMS 1.1 (Java Message Service)
Utilizza un gestore di persistenza file-based (KahaDB)
Supporta installazioni in alta affidabilità e lo standard JMX per la gestione
remota delle code
25. www.extrasrl.it
Apache Cxf
25
Supporto a vari standard quali WS-Addressing, WS-Discovery, WS-MetadataExchange,
WS-Policy, WS-ReliableMessaging, WS-SecureConversation, WS-Security, WS-
SecurityPolicy, etc…
CXF permette di creare ed interrogare servizi che utilizzano diversi protocolli (SOAP,
REST/HTTP, XML puro) e formati (XML testuale, JSON, FastInfoset).
Effettua il marshaling/unmarshaling tra i messaggi dei WS e degli oggetti Java in maniera
trasparente
Integrato con Camel mediante il componente Camel-CXF
27. www.extrasrl.it
JBoss Operation Network (JON)
27
JBoss Operations Network (JON) è un sistema di monitoraggio attraverso il
quale è possibile monitorare tutti i prodotti Middleware della famiglia JBoss,
compreso Jboss Fuse.
28. Via Salvo D’Acquisto, 40/P – 56025 Pontedera – PI – Italy
Tel: +39 0587 975800 | www.extrasrl.it - info@extrasys.it
Caso di successo:
IntermediaMarche
Sistema di Fatturazione Elettronica Multi-Ente
29. www.extrasrl.it
Contesto Decreto Legge 66/2014 Art. 25 convertito con
modificazioni dalla L. 23 giugno 2014, n. 89:
anticipazione obbligo Fatturazione Elettronica al
31/03/2015 per le Pubbliche Amministrazioni Locali
Regione Marche indice una gara per la realizzazione
di un sistema di gestione della Fatturazione Elettronica
Requisiti:
Ricezione/Inoltro Fatture Sistema di Interscambio
(SDI) dell’Agenzia delle Entrate
Pre-validazione delle fatture tramite controllo formale
sull'XML
Generazione, ricezione e inoltro delle Notifiche di
Esito
Gestione dei re-invii
Estrazione, elaborazione e salvataggio dei metadati
Interfacciamento con i sistemi di protocollo e di
gestione degli enti aderenti
IntermediaMarche
Sistema di Fatturazione
Elettronica Multi-Ente
32. www.extrasrl.it
Progetto
Il ruolo svolto dall'ESB è stato quello a tutti gli effetti di intermediario nel
flusso di fatturazione, come punto unico di ingresso/uscita dei messaggi
scambiati tra il Sistema di Interscambio e gli Enti destinatari delle fatture.
L'intermediario gestisce la comunicazione con il Sistema di Interscambio
sfruttando il canale accreditato SPCoop tramite PDD della Regione Marche
Il sistema espone agli Enti la possibilità di integrarsi tramite differenti canali:
WS, PEC, Email, FTP.
IntermediaMarche gestisce sia il ciclo di fatturazione attiva sia il ciclo di
fatturazione passiva
34. www.extrasrl.it
Enti aderenti
2 Uffici Giunta Regione Marche
6 Uffici Aree Vaste Azienda Sanitaria
3 Aziende Ospedaliere
8 Uffici Unità Montane
4 ERSU
15 Comuni
Oltre 300.000 fatture gestite dal 31/03/15
Più di 20000 Notifiche di Rifiuto gestite
automaticamente
35. 3 More London Riverside SE1 2RE, London Uk|
Tel: 0784 0522 897| www.extrasrl.uk - info@extrasys.uk
Via Salvo D’Acquisto, 40/P – 56025 Pontedera – PI – Italy
Tel: +39 0587 975800 | www.extrasrl.it - info@extrasys.it
Grazie
Stefano Marfella
stefano.marfella@extrasys.it
35
Editor's Notes
Bisognerebbe iInserire un collegamento a Pill1)
Note per la presentazione
Spiegare la logica della presentazione
Presenza – Interattività – Il concetto di Extra da Voi..