Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/
Frameworks di sviluppo Java EE e SOA I progetti Spago e Spagic
Testimonianza di: Gianfranco Boccalon [email protected]
1 2.5 Italia License [Framework di sviluppo – I Progetti Spago e Spagic] Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/ Introduzione ai Framework
• COS’E’ UN FRAMEWORK Un framework è un’applicazione “semi-completa”, riutilizzabile che può essere specializzata per produrre applicazioni specifiche • VANTAGGI – Modularità
– Riusabilità
– Estensibilità
– Inversione del Controllo
2 2.5 Italia License [Framework di sviluppo – I Progetti Spago e Spagic] Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/ Spago
• DEFINIZIONE: SPAGO è un framework J2EE, sviluppato secondo il pattern architetturale MVC , che fornisce una soluzione per lo sviluppo di applicazioni “multicanale/multiprotocollo ” e l’integrazione di servizi. Consente lo sviluppo di applicazioni Web, l’integrazione con infrastrutture esistenti e la pubblicazione di servizi su canali diversi.
3 2.5 Italia License [Framework di sviluppo – I Progetti Spago e Spagic] Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/ Confronto con altri framework
Esistono molti framework Open Source per lo sviluppo di applicazioni Web, alcuni dei quali molto specializzati su determinate fasi dello sviluppo (disegno dell’interfaccia grafica, sviluppo della logica di business, etc).
Java Server Faces
4 2.5 Italia License [Framework di sviluppo – I Progetti Spago e Spagic] Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/ Il futuro di Spago
L’evoluzione di Spago è inoltre indotta dai nuovi progetti che ne faranno uso (il primo è SpagoBI, una piattaforma per la Business Intelligence)
Esiste una roadmap evolutiva di Spago sul sito http://spago.eng.it
5 2.5 Italia License [Framework di sviluppo – I Progetti Spago e Spagic] Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi Goals A.A. 2007-2008 www.math.unipd.it/~ruffatti/
Spagic: a Free Open Source SOA/BPM Enterprise Integration Platform
Key points Business Actor SOA/BPM Governance Pragmatic approach to end user’s E projects through the best choice of the ls n t o e single engines/components o r T p r l i a s u e
is M Capabilities V o l n a Efficiency of all the actors involved in Component it ic o n r integration processes h Services & c Enterprise Monitoring & Management e M T a n & a ic g t e ly m a e n BPM ESB n A t
Analytic Actor SOA Governance Technical Actor
6 2.5 Italia License [Framework di sviluppo – I Progetti Spago e Spagic] Laurea Specialistica in Informatica The reference model: Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/ Process Integration Platform Businesslogic Services Catalog Busin. Busin. Busin. Busin. Busin. Layer Service Service Service Service Service 1 2 3 … … UDDI/EBxml nerto ae ESB Layer- Integration
WS/SOAP FILE FTP JMS
TCPIP Communication layer …..
BUS Monitoring & Management
External System BPMLayer
LightLight OrchestrationOrchestration HumanHuman DataData OrchestrationOrchestration ActivityActivity IntegrationIntegration SA BPEL WF ETL
7 2.5 Italia License [Framework di sviluppo – I Progetti Spago e Spagic] Laurea Specialistica in Informatica SOA/BPM platforms Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/ Spagic Service Manager
Nova Orchestra Nova Bonita JBPM (Workflow & BPEL) JBI SA
ServiceMIX BPEL Workflow Petals ESB ESB Communication JBossESB Node node Layer ETL JBI & SCA SA Custom (e.g. Listener Spring, Spago., ..)
BPM Layer Listener SOA/ESB Layer
Apache ODE ActiveBPEL MetaDB Talend Open Studio SCA SA (Tuscany)
Pragmatic approach : different products/technologies available
8 2.5 Italia License [Framework di sviluppo – I Progetti Spago e Spagic] Laurea Specialistica in Informatica Actors’ Efficiency: Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/ Spagic Visual Tools
Business logic implementation Business Process Modeling Notation (BPMN) Insert information for monitoring and management BPMN
Technical Processes Definition & Deploy Rules, policy,.. Spagic Eclipse STP MetaDB JBI IM SCA BPEL JBI SA Workflow SCA WF BPEL ETL ETL Editor Designer Design. Design Deploy Developer Implementation Custom code Scripting - rules definition (rules engine) Mapping & transformation Custom Mapping & drools code transform.
SOA/BPM Governance : Support Collaborative Activities Pragmatic approach : bridge from BPMN to different and alternative engines
9 2.5 Italia License [Framework di sviluppo – I Progetti Spago e Spagic] Laurea Specialistica in Informatica Goal: Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/ Enterprise Monitoring
Real Time SOA/BPM Management and Runtime Governance SLA Monitoring: SLA correlates system, process and business
MetaDB (real time)
Data Warehouse
SOA/BPM Governance : Support Collaborative Activities Pragmatic approach : Enterprise Monitor with support of different engines/technologies
10 2.5 Italia License [Framework di sviluppo – I Progetti Spago e Spagic] Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi Spagic & A.A. 2007-2008 www.math.unipd.it/~ruffatti/ Eclipse STP Intermediate Model Bridges different SOA Platforms Facilitates interoperability between editors Analytics Analytics
BPMN SCA …… Editor Editor Editor
Spagic Studio Enterprise Meta Model Meta Model Monitor
MetaDB Eclipse Modeling Framework
SCA Spring Workflow ETL BPEL JBI Thirdparties Thirdparties plugin plugin plugin plugin plugin plugin
SCA Workflow Talend Eclipse Editor Editor Open St. BPEL editor
SCA J2EE Workflow J2EE/JBI BPEL JBI Container Container Engine Container Engine Container
11 2.5 Italia License [Framework di sviluppo – I Progetti Spago e Spagic] Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi Spagic collaboration & partnership A.A. 2007-2008 www.math.unipd.it/~ruffatti/
MetaDB (real time) Eclipse IM Data Warehouse
ServiceMIX
BPEL Workflow ESB ESB Communication Node node Layer ETL JBI & SCA SA PeTALS Listener
BPM Layer Listener SOA/ESB Layer
JBossESB Nova Orchestra Talend Open Studio JBPM (BPEL & Nova Bonita Workflow) Jasmine
12 2.5 Italia License [Framework di sviluppo – I Progetti Spago e Spagic] Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A.l The 2007-2008 Agile ESB www.math.unipd.it/~ruffatti/ l Apache Servicemix
Standards Based Flexible Reliable The Agile ESB Breadth of connectivity
Standards based Flexible Reliable Breadth of Connectivity
Courtesy of IONA Technologies
13 2.5 Italia License [Framework di sviluppo – I Progetti Spago e Spagic] Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A.l Java 2007-2008 Businesswww.math.unipd.it/~ruffatti/ Integration l Apache Servicemix
Standards Based Flexible Reliable Java Business Integration Breadth of connectivity Integration Systems Plug-In Components WSDL Decoupling
Courtesy of IONA Technologies
14 2.5 Italia License [Framework di sviluppo – I Progetti Spago e Spagic] Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A.l Java 2007-2008 Businesswww.math.unipd.it/~ruffatti/ Integration l Apache Servicemix
Standards Based Flexible Reliable JBI 1.0: architecture Breadth of connectivity
Courtesy of IONA Technologies
15 2.5 Italia License [Framework di sviluppo – I Progetti Spago e Spagic] Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A.l Java 2007-2008 Businesswww.math.unipd.it/~ruffatti/ Integration l Apache Servicemix
Standards Based Flexible Reliable JBI 1.0: WSDL messaging Breadth of connectivity model
Abstract model Concrete model
Service providers Service Consumers
Courtesy of IONA Technologies
16 2.5 Italia License [Framework di sviluppo – I Progetti Spago e Spagic] Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A.l Java 2007-2008 Businesswww.math.unipd.it/~ruffatti/ Integration l Apache Servicemix
Standards Based Flexible Reliable JBI 1.0: Normalized Breadth of connectivity Message Router
Normalized Message Runtime Endpoint Activation Delivery Channel Service Invocation using MEPs Addressing Endpoints
Courtesy of IONA Technologies
17 2.5 Italia License [Framework di sviluppo – I Progetti Spago e Spagic] Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A.l Java 2007-2008 Businesswww.math.unipd.it/~ruffatti/ Integration l Apache Servicemix
Standards Based Flexible Reliable JBI 1.0: Invocation Breadth of connectivity example
Courtesy of IONA Technologies
18 2.5 Italia License [Framework di sviluppo – I Progetti Spago e Spagic] Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A.l Java 2007-2008 Businesswww.math.unipd.it/~ruffatti/ Integration l Apache Servicemix
Standards Based Flexible Reliable JBI 1.0: Packaging Breadth of connectivity
META-INF/jbi.xml Components Shared Libraries Service Units Service Assemblies
Courtesy of IONA Technologies
19 2.5 Italia License [Framework di sviluppo – I Progetti Spago e Spagic] Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A.l Reliable 2007-2008 www.math.unipd.it/~ruffatti/ l Apache Servicemix
Standards Based Flexible Reliable Reliable Breadth of connectivity QoS attributes Flows ● Sync / Async ● ST ● Persistent ● SEDA ● Transactional ● JMS ● Clustered ● JCA
20 2.5 Italia License [Framework di sviluppo – I Progetti Spago e Spagic] Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A.l Breadth 2007-2008 of Connectivitywww.math.unipd.it/~ruffatti/ l Apache Servicemix
Standards Based Flexible Reliable Breadth of Connectivity Breadth of connectivity Binding Components ● http (http/soap), jms (jms/soap) ● file, ftp, xmpp ● Email, RSS, Jabber… Service Engines ● Bean, EIP, Camel, JAX-WS, Drools, Quartz, Saxon, Script, WS- Notification Third Party Components ● ODE, CICS, Corba
Courtesy of IONA Technologies
21 2.5 Italia License [Framework di sviluppo – I Progetti Spago e Spagic] Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A.l Context 2007-2008 of thewww.math.unipd.it/~ruffatti/ project – Goals l Belgian Success Story
Context Goals Architecture Development ● Improve communication between Belgium’s French Community Administration and other actors Stress Tests ● Implement SOA Use Case : pupils registration Before : various communication ways (paper documents, mails, excel sheets, …)
Courtesy of IONA Technologies 22 2.5 Italia License [Framework di sviluppo – I Progetti Spago e Spagic] Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A.l Asynchronous 2007-2008 www.math.unipd.it/~ruffatti/ mode l Belgian Success Story
Context Asynchronous communication Architecture ● JMS between SMX-CAS and SMX-WORK Development Administration ● polling to retrieve responses Stress Tests
Courtesy of IONA Technologies
23 2.5 Italia License [Framework di sviluppo – I Progetti Spago e Spagic] Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/ Riferimenti
http://spago.ow2.org http://spagic.org Mailing list: [email protected] Mailing list: [email protected] My address: [email protected]
24 2.5 Italia License [Framework di sviluppo – I Progetti Spago e Spagic] Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/ Esercitazioni Le esercitazioni consistono nel contribuire, tramite invio di codice, a estensioni di Spago o correzioni di errori conosciuti. Tutte le richieste di miglioramento e di correzione sono censite nel tracking system (JIRA) di Spagic, a cui si accede previa registrazione (libera).
25 2.5 Italia License [Framework di sviluppo – I Progetti Spago e Spagic] Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/ Tracking System Il tracking system di Spagic è accessibile all’URL http://spagoworld.org/ecm/faces/public/guest/, sotto la voce Tracker. Il sito è accessibile dopo aver effettuato il login.
26 2.5 Italia License [Framework di sviluppo – I Progetti Spago e Spagic] Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/ Tracking System Nel tracking system sono censite tutte le richieste di miglioramento o di correzione. Non tutte le richieste sono oggetto delle esercitazioni.
27 2.5 Italia License [Framework di sviluppo – I Progetti Spago e Spagic] Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/ Esercitazioni Le possibili esercitazioni sono censite sotto la voce Project Summary->Open, il che significa che sono chiari i requisiti ma non è ancora stata assegnata l’attività.
28 2.5 Italia License [Framework di sviluppo – I Progetti Spago e Spagic] Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/ Esercitazioni Le possibili esercitazioni sono le seguenti:
• SPAGIC-131: Optimize the creation of the queue connection in the class AuditingExchangeASyncListener: it should performed only once, since it supports concurrent use (abbastanza semplice)
• SPAGIC-106: Add to the process instance properties the server location where the instance is executing (mediamente complessa)
• SPAGIC-102: If the database is not available, the ODE listener doesn't allow the process execution (molto semplice)
• SPAGIC-77: Implement Synchronizer as Servicemix-bean component (molto complessa)
29 2.5 Italia License [Framework di sviluppo – I Progetti Spago e Spagic] Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/
30 2.5 Italia License [Framework di sviluppo – I Progetti Spago e Spagic] Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/
31 2.5 Italia License [Framework di sviluppo – I Progetti Spago e Spagic] Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/
32 2.5 Italia License [Framework di sviluppo – I Progetti Spago e Spagic] Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/
33 2.5 Italia License [Framework di sviluppo – I Progetti Spago e Spagic] Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/ Esercitazioni
Il codice può essere scaricato dal forge di OW2: http://forge.objectweb.org/projects/spagic
o direttamente dall’SVN di OW2: svn://svn.forge.objectweb.org/svnroot/spagic
Il codice presente sull’SVN di Eclipse non è necessario per le esercitazioni: svn://dev.eclipse.org/stp/org.eclipse.stp.model
34 2.5 Italia License [Framework di sviluppo – I Progetti Spago e Spagic] Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/ Esercitazioni Deve essere inviata la patch contenente il codice della contribuzione: la patch è un file di testo creato automaticamente che contiene le differenze tra il codice “ufficiale” e il codice contenente la contribuzione. Viene creata con gli strumenti dell’ambiente di sviluppo.
I commenti nella contribuzione devono essere in inglese.
Se possibile deve essere mantenuta la retrocompatibilità della contribuzione con il codice esistente sviluppato con Spagic.
35 2.5 Italia License [Framework di sviluppo – I Progetti Spago e Spagic]