Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ESB e Architetture per l'Interoperabilità

430 views

Published on

Stefano Marfella introduced Enterprise Services Bus during the workshop of CommitUniversity!

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

ESB e Architetture per l'Interoperabilità

  1. 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. 2. www.extrasrl.it Cosa è un Enterprise Service Bus? 2 Una infrastruttura software che fornisce servizi di supporto ad architetture SOA complesse
  3. 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.
  4. 4. www.extrasrl.it Cosa è un Enterprise Service Bus? 4 ESB come punto centralizzato di collegamento VS
  5. 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.
  6. 6. www.extrasrl.it Componenti Red Hat Jboss Fuse 6
  7. 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. 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”.
  9. 9. www.extrasrl.it Fuse Fabric 9
  10. 10. www.extrasrl.it Fuse Fabric 10 Fabric è un IpaaS (Integration Platform as a Service) Open Source che utilizza Apache zookeeper.
  11. 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
  12. 12. www.extrasrl.it Apache Camel 12
  13. 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. 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. 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. 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. 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. 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. .
  19. 19. 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="..." />
  20. 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.
  21. 21. 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>
  22. 22. www.extrasrl.it Apache ActiveMQ 22
  23. 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
  24. 24. www.extrasrl.it Apache Cxf 24
  25. 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
  26. 26. www.extrasrl.it JBoss Operation Network (JON) 26
  27. 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. 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. 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
  30. 30. www.extrasrl.it Flusso Fatturazione Elettronica PA
  31. 31. www.extrasrl.it Soluzione Architetturale SDI Sistema Di Interscambio Ente 1 Protocollo Sistema Gestionale Ente 2 Casella PEC Ente 3 Protocollo Sistema Gestionale
  32. 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
  33. 33. www.extrasrl.it Architettura di dettaglio
  34. 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. 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

×