HP-UX 11i; Macintosh OS X Tiger (10.4);
e le modalità di installazione sono: tramite GUI; mediante consolle; in maniera "silenziosa".
Dopo aver eseguito il download di FUSE ESB all'URL http:// HYPERLINK "http://fusesource.com/downloads" fusesource.com/downloads, aver lanciato il comando fuse-esb-4.x.x.x-windows.exe e aver visionato le informazioni introduttive, apparirà la maschera illustrata in figura.
Selezionare l'opzione "I accept the terms of the Licence Agreement" e confermare con il pulsante "Next". Nelle successive maschere, illustrate di seguito, è possibile selezionare la directory di installazione e la destinazione delle icone. Da notare che l'avvio di FUSE ESB, così come anche l'avvio delle restanti soluzioni Open Source FUSE, avviene da riga di comando, pertanto le icone conterranno solo i collegamenti alla documentazione e all'avvio della disinstallazione.
L'ultima maschera prima di avviare l'installazione è quella relativa al salvataggio della configurazione per automatizzare eventuali ulteriori installazioni.
Per avviare FUSE ESB al termine dell'installazione è sufficiente aprire una shell, posizionarsi sulla directory bin del percorso di installazione e invocare il comando servicemix.bat. L'interfaccia visualizzata è illustrata in figura 6.
I comandi utilizzabili tramite questa interfaccia sono elencati tramite l'esecuzione del comando help.
Il comando features consente di accedere al gruppo di funzionalità disponibili, visualizzabile con il comando list.
Al momento dell'installazione le seguenti funzionalità sono in stato "unistalled":
[uninstalled] [ 0.0.0] cxf-osgi [uninstalled] [ 0.0.0] camel-osgi [uninstalled] [ 0.0.0] camel-cxf
Per installarle occorre eseguire il commando:
addUrl mvn:org.apache.servicemix.camel/org.apache.servicemix.camel.features/4.0.0.2-fuse/xml/features
e, dopo essersi posizionati su features, eseguire i seguenti comandi:
install cxf-osgi install camel-osgi install camel-cxf
Il kernel di FUSE ESB può essere installato sulla maggior parte delle piattaforme e utilizza il framework OSGi per semplificare la componentizzazione delle applicazioni. Il framework OSGi è uno standard tornato recentemente a suscitare attenzione nel mondo Java, in grado di gestire facilmente la dipendenza tra i componenti delle applicazioni e di fornire un meccanismo per tenere sotto controllo il ciclo di vita di questi ultimi. FUSE ESB è in grado di interagire con altre infrastrutture che espongono servizi mediante diversi protocolli di trasporto e formati di messaggio. Tra i protocolli supportati ci sono JMS, HTTP, HTTPS, FTP, XMPP, ed è possibile estendere le possibilità di integrazione utilizzando componenti conformi ai modelli OSGi e JBI.
FUSE ESB è composto da tre parti principali: una consolle di comando; un runtime container; un message bus standard.
La consolle di comando consente di gestire le instanze del runtime container, sia locali che remote, e il codice rilasciato mediante diverse shell dedicate a specifiche funzionalità, fra cui: OSGi JBI ActiveMQ features remote
Il runtime container è un implementazione OSGi per il deployment e la gestione dei bundle in grado di fornire strumenti per il logging, la configurazione dinamica e il provisioning. I benefici derivanti dall'utilizzo di OSGi includono: l'hot deployment degli artifact; la gestione di versioni multiple di package, class e bundle; il caricamento dinamico di codice; un footprint leggero; diverse opzioni di packaging.
Il message bus è analogo al Normalized Message Router (NMR) in JBI e fornisce un'interfaccia standard mediante la quale tutti i servizi all'interno di FUSE ESB interagiscono. Il message bus normalizza i messaggi e assicura il delivery al corretto destinatario.
Deployment del service mediator su FUSE ESB La generazione del bundle da utilizzare per il deployment del servizio su FUSE ESB avviene a partire dalla root della directory del servizio in questione, in questo caso da C:\com.iona.fuse.mokabyte\articolo3\broker, eseguendo i seguenti comandi:
mvn clean mvn compile mvn package
l'ultimo comando genera il bundle demo3.broker-1.0.0.jar all'interno della directory target.
Per eseguire il deployment del bundle occorre selezionare osgi dall'interfaccia di FUSE ESB (da notare che la navigazione verso la parent directory avviene con il comando exit) ed eseguire il seguente comando:
install file:///C:/com.iona.fuse.mokabyte/articolo3/broker/target/demo3.broker-1.0.0.jar
il risultato dell'invocazione è l'installazione del bundle e la visualizzazione dell'ID del bundle in questione.
Eseguendo il comando list è possibile visualizzare i bundle installati. Come illustrato in figura 10, il bundle appena installato è nello stato "installed", ma non è ancora attivo.
Per attivarlo è necessario eseguire il comando start seguito dall'ID del bundle. In questo caso il comando sarà
start 151
e il bundle apparirà nello stato "active", come indicato di seguito
[ 151] [Active ] [ 50] Demo Articolo 3 Broker :: CXF OSGi (1.0.0)
Generazione del codice JavaScript per la Web application FUSE Service Framework rende disponibile un comando per la generazione automatica del codice JavaScript necessario all'invocazione di un Web service da una Web application. Questa funzionalità semplifica il processo di implementazione di applicazioni Web based che devo integrarsi con Web service consentendo al programmatore di non occuparsi della componente di codice relativa all'invocazione dei servizi e lasciandolo libero di concentrarsi sugli aspetti applicativi dell'interfaccia grafica.
Per generare il codice JavaScript da utilizzare nella Web application è necessario avviare il servizio, ad esempio in stand alone con il comando
mvn exec:java -Dexec.mainClass=com.iona.fuse.mokabyte.articolo3.broker.LoanBroker
e invocare dal browser il seguente URL:
http://localhost:9008/loanBroker?js
Il risultato visualizzato sul broker sarà il codice JavaScript da utilizzare per l'invocazione del servizio dalla Web application.
Esecuzione del processo completo Dopo aver avviato i service provider delle banche e dell'agenzia di credito e aver avviato il broker da FUSE ESB, è possibile invocare il servizio all'URL
http://localhost:9008/index.html
Le figure che seguono mostrano le varie schermate ottenute utilizzando un iPhone per l'invocazione del servizio.
Conclusioni In questo e nei precedenti articoli abbiamo visto come, partendo da uno use case di business, sia possibile utilizzare le soluzioni presenti nel bundle FUSE (FUSE Services Framework, FUSE Message Broker, FUSE Mediation Router e FUSE ESB) per implementare, configurare ed eseguire il deployment di servizi in ambito SOA. L'ultimo componente della famiglia FUSE, distribuito gratuitamente alla sottoscrizione del supporto, è FUSE HQ. FUSE HQ è basato sulla versione commerciale di Hyperic HQ Enterprise e consente di tenere sotto controllo, sia da un punto di vista sistemistico che applicativo, i servizi distribuiti all'interno dell'organizzazione. La capacità di eseguire il discovery automatico, integrare e gestire diverse tecnologie, consente di controllare facilmente i servizi che supportano processi di business critici.
Riferimenti
- [1] Codice sorgente dei 3 articoli
http://www.iona.com/FUSEEIP/articolo3.zip
- [2] FUSE Services Framework
http://fusesource.com/products/enterprise-cxf
- [3] FUSE Message Broker
http://fusesource.com/products/enterprise-activemq
- [4] FUSE Mediation Router
http://fusesource.com/products/enterprise-camel
- [5] FUSE ESB
http://fusesource.com/products/enterprise-servicemix4
- [6] Gregor Hohpe - Bobby Woolf, "Enterprise Integration Patterns", The Addison-Wesley Professional, 2003
- [7] Maven Project
http://maven.apache.org/
- [8] Spring Framework
http://www.springframework.org/
