Post on 18-Jun-2020
1[Framework di sviluppo – I Progetti Spago e Spagic]2.5 Italia License
Laurea Specialistica in InformaticaStruttura e Configurazione di Sistemi LiberiA.A. 2007-2008www.math.unipd.it/~ruffatti/
Frameworks di sviluppoJava EE e SOA
I progetti Spago e Spagic
Testimonianza di:Gianfranco Boccalon
gianfranco.boccalon@eng.it
2[Framework di sviluppo – I Progetti Spago e Spagic]2.5 Italia License
Laurea Specialistica in InformaticaStruttura e Configurazione di Sistemi LiberiA.A. 2007-2008www.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
3[Framework di sviluppo – I Progetti Spago e Spagic]2.5 Italia License
Laurea Specialistica in InformaticaStruttura e Configurazione di Sistemi LiberiA.A. 2007-2008www.math.unipd.it/~ruffatti/ Spago
• DEFINIZIONE:
SPAGO è un framework J2EE, sviluppato secondo il pattern
architetturaleMVC , 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.
4[Framework di sviluppo – I Progetti Spago e Spagic]2.5 Italia License
Laurea Specialistica in InformaticaStruttura e Configurazione di Sistemi LiberiA.A. 2007-2008www.math.unipd.it/~ruffatti/
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).
Confronto con altri framework
JavaServer Faces
5[Framework di sviluppo – I Progetti Spago e Spagic]2.5 Italia License
Laurea Specialistica in InformaticaStruttura e Configurazione di Sistemi LiberiA.A. 2007-2008www.math.unipd.it/~ruffatti/
� 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
Il futuro di Spago
6[Framework di sviluppo – I Progetti Spago e Spagic]2.5 Italia License
Laurea Specialistica in InformaticaStruttura e Configurazione di Sistemi LiberiA.A. 2007-2008www.math.unipd.it/~ruffatti/
Goals
� Capabilities� Efficiency of all the actors involved in
integration processes� Enterprise Monitoring & Management
Spagic: a Free Open Source SOA/BPM Enterprise Integ ration Platform
� Key points� SOA/BPM Governance� Pragmatic approach to end user’s
projects through the best choice of the single engines/components
ESB
ComponentServices
Ana
lytic
& T
echn
ical
Vis
ual T
ools
Enterprise M
onitor & M
anagement
SOA Governance
Business Actor
Analytic Actor Technical Actor
BPM
7[Framework di sviluppo – I Progetti Spago e Spagic]2.5 Italia License
Laurea Specialistica in InformaticaStruttura e Configurazione di Sistemi LiberiA.A. 2007-2008www.math.unipd.it/~ruffatti/
The reference model: Process Integration Platform
BUS
Busin.Service
1
Busin.Service
2
Busin.Service
3
Busin.Service
…
Light Orchestration
Light Orchestration
OrchestrationOrchestration HumanActivity
HumanActivity
DataIntegration
DataIntegration
SA BPEL WF ETL
Busin.Service
…
FILE FTP JMS
…..
BP
M Layer
Business logic
Layer
Communication layer
WS/SOAP
TCPIP
IntegrationLayer -
ES
B
External System
Services
Catalog
UDDI/EBxml
Monitoring &Management
8[Framework di sviluppo – I Progetti Spago e Spagic]2.5 Italia License
Laurea Specialistica in InformaticaStruttura e Configurazione di Sistemi LiberiA.A. 2007-2008www.math.unipd.it/~ruffatti/
SOA/BPM platformsSpagic Service Manager
� Nova Orchestra
� Nova Bonita
� JBPM (Workflow & BPEL)
� JBI SA
� Apache ODE
� ActiveBPEL
� Talend Open Studio
� SCA SA (Tuscany)
� ServiceMIX
� Petals
� JBossESB
� Custom (e.g. Spring, Spago., ..)
�� Pragmatic approach : different products/technologies available
ESBNode
BPELBPEL WorkflowWorkflow
ETLETL JBI & SCA SAJBI & SCA SA
ESBnode
CommunicationCommunicationLayerLayer
BPM LayerBPM Layer SOA/ESB LayerSOA/ESB Layer
Listener
MetaDBMetaDB
Listener
9[Framework di sviluppo – I Progetti Spago e Spagic]2.5 Italia License
Laurea Specialistica in InformaticaStruttura e Configurazione di Sistemi LiberiA.A. 2007-2008www.math.unipd.it/~ruffatti/
Actors’ Efficiency:Spagic Visual Tools
Business logic implementation� Business Process Modeling Notation (BPMN)� Insert information for monitoring and management
Technical Processes Definition & Deploy� JBI� SCA� BPEL� Workflow� ETL
Developer Implementation� Custom code� Scripting - rules definition (rules engine)� Mapping & transformation drools
BPEL Design.
Customcode
ETLDesign
WF Designer
Mapping & transform.
BPMN
Eclipse STPIM
Deploy
JBISA
SCAEditor
SpagicMetaDB
Rules, policy,..
�� SOA/BPM Governance : Support Collaborative Activities� Pragmatic approach : bridge from BPMN to different and alternative engines
10[Framework di sviluppo – I Progetti Spago e Spagic]2.5 Italia License
Laurea Specialistica in InformaticaStruttura e Configurazione di Sistemi LiberiA.A. 2007-2008www.math.unipd.it/~ruffatti/
Goal: Enterprise Monitoring
� Real Time SOA/BPM Management and Runtime Governance
� SLA Monitoring: SLA correlates system, process and business
�� SOA/BPM Governance : Support Collaborative Activities� Pragmatic approach : Enterprise Monitor with support of different engines/technologies
DataDataWarehouseWarehouse
MetaDBMetaDB(real time)
11[Framework di sviluppo – I Progetti Spago e Spagic]2.5 Italia License
Laurea Specialistica in InformaticaStruttura e Configurazione di Sistemi LiberiA.A. 2007-2008www.math.unipd.it/~ruffatti/
Spagic & Eclipse STP Intermediate Model
� Bridges different SOA Platforms
� Facilitates interoperability between editors
BPMNBPMNEditorEditor
SCASCAEditorEditor
…………EditorEditor
Analytics
Analytics
SCASCApluginplugin
WorkflowWorkflowpluginplugin
SpringSpringpluginplugin
BPELBPELpluginplugin
JBIJBIpluginplugin
ETLETLpluginplugin
EclipseEclipseBPEL editorBPEL editor
TalendTalendOpen St.Open St.
WorkflowEditor
SCASCAEditorEditor
SCASCAContainerContainer
J2EEJ2EEContainerContainer
WorkflowWorkflowEngineEngine
J2EE/JBIJ2EE/JBIContainerContainer
BPELBPELEngineEngine
JBIJBIContainerContainer
Third parties
Third parties
MetaDBMetaDB
Spagic StudioSpagic Studio EnterpriseEnterpriseMonitorMonitor
Eclipse Modeling Framework
Meta M
odelM
eta Model
12[Framework di sviluppo – I Progetti Spago e Spagic]2.5 Italia License
Laurea Specialistica in InformaticaStruttura e Configurazione di Sistemi LiberiA.A. 2007-2008www.math.unipd.it/~ruffatti/
Spagic collaboration & partnership
DataDataWarehouseWarehouse
MetaDBMetaDB(real time)
� Nova Orchestra
� Nova Bonita
� Jasmine
� Talend Open Studio� JBossESB
� JBPM (BPEL & Workflow)
� PeTALS
� ServiceMIX
� Eclipse IM
ESBNode
BPELBPEL WorkflowWorkflow
ETLETL JBI & SCA SAJBI & SCA SA
ESBnode
CommunicationCommunicationLayerLayer
BPM LayerBPM Layer SOA/ESB LayerSOA/ESB Layer
Listener
Listener
13[Framework di sviluppo – I Progetti Spago e Spagic]2.5 Italia License
Laurea Specialistica in InformaticaStruttura e Configurazione di Sistemi LiberiA.A. 2007-2008www.math.unipd.it/~ruffatti/ l Apache Servicemixl The Agile ESB
Standards Based
Flexible
Reliable
Breadth of connectivity
� Standards based
� Flexible
� Reliable
� Breadth of
Connectivity
The Agile ESB
Courtesy of IONA Technologies
14[Framework di sviluppo – I Progetti Spago e Spagic]2.5 Italia License
Laurea Specialistica in InformaticaStruttura e Configurazione di Sistemi LiberiA.A. 2007-2008www.math.unipd.it/~ruffatti/ l Apache Servicemix
����
l Java Business Integration
Standards Based
Flexible
Reliable
Breadth of connectivity
� Integration Systems� Plug-In Components� WSDL� Decoupling
Java Business Integration
Courtesy of IONA Technologies
15[Framework di sviluppo – I Progetti Spago e Spagic]2.5 Italia License
Laurea Specialistica in InformaticaStruttura e Configurazione di Sistemi LiberiA.A. 2007-2008www.math.unipd.it/~ruffatti/ l Apache Servicemixl Java Business Integration
JBI 1.0: architecture���� Standards Based
Flexible
Reliable
Breadth of connectivity
Courtesy of IONA Technologies
16[Framework di sviluppo – I Progetti Spago e Spagic]2.5 Italia License
Laurea Specialistica in InformaticaStruttura e Configurazione di Sistemi LiberiA.A. 2007-2008www.math.unipd.it/~ruffatti/ l Apache Servicemixl Java Business Integration
JBI 1.0: WSDL messaging model
� Abstract model� Concrete model
� Service providers� Service Consumers
���� Standards Based
Flexible
Reliable
Breadth of connectivity
Courtesy of IONA Technologies
17[Framework di sviluppo – I Progetti Spago e Spagic]2.5 Italia License
Laurea Specialistica in InformaticaStruttura e Configurazione di Sistemi LiberiA.A. 2007-2008www.math.unipd.it/~ruffatti/ l Apache Servicemixl Java Business Integration
JBI 1.0: Normalized Message Router
� Normalized Message
� Runtime Endpoint Activation
� Delivery Channel
� Service Invocation using MEPs
� Addressing Endpoints
���� Standards Based
Flexible
Reliable
Breadth of connectivity
Courtesy of IONA Technologies
18[Framework di sviluppo – I Progetti Spago e Spagic]2.5 Italia License
Laurea Specialistica in InformaticaStruttura e Configurazione di Sistemi LiberiA.A. 2007-2008www.math.unipd.it/~ruffatti/ l Apache Servicemixl Java Business Integration
JBI 1.0: Invocation example
���� Standards Based
Flexible
Reliable
Breadth of connectivity
Courtesy of IONA Technologies
19[Framework di sviluppo – I Progetti Spago e Spagic]2.5 Italia License
Laurea Specialistica in InformaticaStruttura e Configurazione di Sistemi LiberiA.A. 2007-2008www.math.unipd.it/~ruffatti/ l Apache Servicemixl Java Business Integration
JBI 1.0: Packaging
� META-INF/jbi.xml
� Components
� Shared Libraries
� Service Units
� Service Assemblies
���� Standards Based
Flexible
Reliable
Breadth of connectivity
Courtesy of IONA Technologies
20[Framework di sviluppo – I Progetti Spago e Spagic]2.5 Italia License
Laurea Specialistica in InformaticaStruttura e Configurazione di Sistemi LiberiA.A. 2007-2008www.math.unipd.it/~ruffatti/ l Apache Servicemix
����
l Reliable
Standards Based
Flexible
Reliable
Breadth ofconnectivity
� QoS attributes● Sync / Async● Persistent● Transactional● Clustered
Reliable� Flows
● ST● SEDA● JMS● JCA
21[Framework di sviluppo – I Progetti Spago e Spagic]2.5 Italia License
Laurea Specialistica in InformaticaStruttura e Configurazione di Sistemi LiberiA.A. 2007-2008www.math.unipd.it/~ruffatti/ l Apache Servicemix
����
l Breadth of Connectivity
Standards Based
Flexible
Reliable
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
Breadth of Connectivity
Courtesy of IONA Technologies
22[Framework di sviluppo – I Progetti Spago e Spagic]2.5 Italia License
Laurea Specialistica in InformaticaStruttura e Configurazione di Sistemi LiberiA.A. 2007-2008www.math.unipd.it/~ruffatti/ l Belgian Success Storyl Context of the project – Goals
� Goals
● Improve communication between Belgium’s French Community and other actors
● Implement SOA
� Use Case : pupils registration
� Before : various communication ways (paper documents, mails, excel sheets, …)
Context
Architecture
Development
Administration
Stress Tests
����
Courtesy of IONA Technologies
23[Framework di sviluppo – I Progetti Spago e Spagic]2.5 Italia License
Laurea Specialistica in InformaticaStruttura e Configurazione di Sistemi LiberiA.A. 2007-2008www.math.unipd.it/~ruffatti/l Asynchronous mode l Belgian Success Story
� Asynchronous communication● JMS between SMX-CAS and SMX-WORK
● polling to retrieve responses
Context
Architecture
Development
Administration
Stress Tests
����
Courtesy of IONA Technologies
24[Framework di sviluppo – I Progetti Spago e Spagic]2.5 Italia License
Laurea Specialistica in InformaticaStruttura e Configurazione di Sistemi LiberiA.A. 2007-2008www.math.unipd.it/~ruffatti/ Riferimenti
� http://spago.ow2.org� http://spagic.org� Mailing list: spago-dev@ow2.org� Mailing list: spagic-dev@ow2.org� My address: gianfranco.boccalon@eng.it
25[Framework di sviluppo – I Progetti Spago e Spagic]2.5 Italia License
Laurea Specialistica in InformaticaStruttura e Configurazione di Sistemi LiberiA.A. 2007-2008www.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 censitenel tracking system (JIRA) di Spagic, a cui si accede previa registrazione (libera).
26[Framework di sviluppo – I Progetti Spago e Spagic]2.5 Italia License
Laurea Specialistica in InformaticaStruttura e Configurazione di Sistemi LiberiA.A. 2007-2008www.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.
27[Framework di sviluppo – I Progetti Spago e Spagic]2.5 Italia License
Laurea Specialistica in InformaticaStruttura e Configurazione di Sistemi LiberiA.A. 2007-2008www.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.
28[Framework di sviluppo – I Progetti Spago e Spagic]2.5 Italia License
Laurea Specialistica in InformaticaStruttura e Configurazione di Sistemi LiberiA.A. 2007-2008www.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à.
29[Framework di sviluppo – I Progetti Spago e Spagic]2.5 Italia License
Laurea Specialistica in InformaticaStruttura e Configurazione di Sistemi LiberiA.A. 2007-2008www.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-beancomponent (molto complessa)
30[Framework di sviluppo – I Progetti Spago e Spagic]2.5 Italia License
Laurea Specialistica in InformaticaStruttura e Configurazione di Sistemi LiberiA.A. 2007-2008www.math.unipd.it/~ruffatti/
31[Framework di sviluppo – I Progetti Spago e Spagic]2.5 Italia License
Laurea Specialistica in InformaticaStruttura e Configurazione di Sistemi LiberiA.A. 2007-2008www.math.unipd.it/~ruffatti/
32[Framework di sviluppo – I Progetti Spago e Spagic]2.5 Italia License
Laurea Specialistica in InformaticaStruttura e Configurazione di Sistemi LiberiA.A. 2007-2008www.math.unipd.it/~ruffatti/
33[Framework di sviluppo – I Progetti Spago e Spagic]2.5 Italia License
Laurea Specialistica in InformaticaStruttura e Configurazione di Sistemi LiberiA.A. 2007-2008www.math.unipd.it/~ruffatti/
34[Framework di sviluppo – I Progetti Spago e Spagic]2.5 Italia License
Laurea Specialistica in InformaticaStruttura e Configurazione di Sistemi LiberiA.A. 2007-2008www.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
35[Framework di sviluppo – I Progetti Spago e Spagic]2.5 Italia License
Laurea Specialistica in InformaticaStruttura e Configurazione di Sistemi LiberiA.A. 2007-2008www.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.