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
www.extrasrl.it
Cosa è un Enterprise Service Bus?
2
Una infrastruttura software che fornisce servizi
di supporto ad architetture SOA complesse
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.
www.extrasrl.it
Cosa è un Enterprise Service Bus?
4
ESB come punto centralizzato di collegamento
VS
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.
www.extrasrl.it
Componenti Red Hat Jboss Fuse
6
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.
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”.
www.extrasrl.it
Fuse Fabric
9
www.extrasrl.it
Fuse Fabric
10
Fabric è un IpaaS (Integration Platform as a Service) Open Source che utilizza
Apache zookeeper.
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
www.extrasrl.it
Apache Camel
12
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
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.
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>
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.
.
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>
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.
.
www.extrasrl.it
Apache Camel Esempi
19
Enricher
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="direct:start"/>
<enrich uri="direct:resource" strategyRef="aggregationStrategy"/>
<to uri="direct:result"/>
</route>
<route>
<from uri="direct:resource"/>
...
</route>
</camelContext>
<bean id="aggregationStrategy" class="..." />
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.
www.extrasrl.it
Apache Camel Esempi
21
Recipient List
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="direct:a" />
<setHeader headerName="myHeader“>
<simple>http://sito1:8080/app1,http://sito2/app2</simple>
</setHeader>
<recipientList delimiter=",">
<header>myHeader</header>
</recipientList>
</route>
</camelContext>
www.extrasrl.it
Apache ActiveMQ
22
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
www.extrasrl.it
Apache Cxf
24
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
www.extrasrl.it
JBoss Operation Network (JON)
26
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.
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
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
www.extrasrl.it
Flusso Fatturazione Elettronica PA
www.extrasrl.it
Soluzione Architetturale
SDI
Sistema Di
Interscambio
Ente 1
Protocollo
Sistema
Gestionale
Ente 2
Casella PEC
Ente 3
Protocollo
Sistema
Gestionale
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
www.extrasrl.it
Architettura di dettaglio
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
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

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 è unEnterprise Service Bus? 2 Una infrastruttura software che fornisce servizi di supporto ad architetture SOA complesse
  • 3.
    www.extrasrl.it Cosa è unEnterprise 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.
  • 4.
    www.extrasrl.it Cosa è unEnterprise Service Bus? 4 ESB come punto centralizzato di collegamento VS
  • 5.
    www.extrasrl.it Componenti Red HatJboss Fuse 5 Red Hat Jboss Fuse è una soluzione che integra diversi progetti Open Source per fornire tutte le funzionalità di un ESB completo.
  • 6.
  • 7.
    www.extrasrl.it Apache Karaf 7 Grazie allostandard 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 eOSGi 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”.
  • 9.
  • 10.
    www.extrasrl.it Fuse Fabric 10 Fabric èun IpaaS (Integration Platform as a Service) Open Source che utilizza Apache zookeeper.
  • 11.
    www.extrasrl.it Vantaggi architettura cloud 11 ConFabric, 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
  • 12.
  • 13.
    www.extrasrl.it Apache Camel eEIP 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 ContentBased 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 ContentBased 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 Ilpattern 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 ContentBased 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 Ilpattern 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. .
  • 19.
    www.extrasrl.it Apache Camel Esempi 19 Enricher <camelContextid="camel" xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="direct:start"/> <enrich uri="direct:resource" strategyRef="aggregationStrategy"/> <to uri="direct:result"/> </route> <route> <from uri="direct:resource"/> ... </route> </camelContext> <bean id="aggregationStrategy" class="..." />
  • 20.
    www.extrasrl.it Apache Camel Esempi 20 RecipientList 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.
  • 21.
    www.extrasrl.it Apache Camel Esempi 21 RecipientList <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="direct:a" /> <setHeader headerName="myHeader“> <simple>http://sito1:8080/app1,http://sito2/app2</simple> </setHeader> <recipientList delimiter=","> <header>myHeader</header> </recipientList> </route> </camelContext>
  • 22.
  • 23.
    www.extrasrl.it Apache ActiveMQ 23 ActiveMQ fornisceun'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
  • 24.
  • 25.
    www.extrasrl.it Apache Cxf 25 Supporto avari 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
  • 26.
  • 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 Legge66/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
  • 30.
  • 31.
    www.extrasrl.it Soluzione Architetturale SDI Sistema Di Interscambio Ente1 Protocollo Sistema Gestionale Ente 2 Casella PEC Ente 3 Protocollo Sistema Gestionale
  • 32.
    www.extrasrl.it Progetto Il ruolo svoltodall'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
  • 33.
  • 34.
    www.extrasrl.it Enti aderenti 2 UfficiGiunta 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 LondonRiverside 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

  • #2 Bisognerebbe iInserire un collegamento a Pill1) Note per la presentazione Spiegare la logica della presentazione Presenza – Interattività – Il concetto di Extra da Voi..