![Page 1: Elena Quarantotto, Telecom Italia/IT Innovation 1 Mini-Scuola WOA 2009 WADE: Una piattaforma open source per workflow e agenti Elena Quarantotto (Telecom](https://reader036.vdocuments.mx/reader036/viewer/2022062701/5542eb59497959361e8c6139/html5/thumbnails/1.jpg)
Elena Quarantotto, Telecom Italia/IT Innovation 1
Mini-Scuola WOA 2009WADE: Una piattaforma open source per workflow e
agenti
Elena Quarantotto (Telecom Italia)
![Page 2: Elena Quarantotto, Telecom Italia/IT Innovation 1 Mini-Scuola WOA 2009 WADE: Una piattaforma open source per workflow e agenti Elena Quarantotto (Telecom](https://reader036.vdocuments.mx/reader036/viewer/2022062701/5542eb59497959361e8c6139/html5/thumbnails/2.jpg)
Elena Quarantotto, Telecom Italia/IT Innovation 2
► Piattaforma JADE – principali caratteristiche
► Piattaforma WADE – workflow e amministrazione
► Creazione di applicazione di esempio WADE-based con l’ausilio di WOLF
Agenda
![Page 3: Elena Quarantotto, Telecom Italia/IT Innovation 1 Mini-Scuola WOA 2009 WADE: Una piattaforma open source per workflow e agenti Elena Quarantotto (Telecom](https://reader036.vdocuments.mx/reader036/viewer/2022062701/5542eb59497959361e8c6139/html5/thumbnails/3.jpg)
Elena Quarantotto, Telecom Italia/IT Innovation 3
JADE Java Agent DEvelopment framework
Elena Quarantotto (Telecom Italia)
![Page 4: Elena Quarantotto, Telecom Italia/IT Innovation 1 Mini-Scuola WOA 2009 WADE: Una piattaforma open source per workflow e agenti Elena Quarantotto (Telecom](https://reader036.vdocuments.mx/reader036/viewer/2022062701/5542eb59497959361e8c6139/html5/thumbnails/4.jpg)
Elena Quarantotto, Telecom Italia/IT Innovation 4
JADE
► Java Agent DEvelopment framework
► Framework (librerie + runtime) che facilita lo sviluppo di applicazioni distribuite basate sul paradigma ad agenti
► Interamente scritto in Java
► Puo’ essere eseguito su PC, server e telefonini (MIDP 1.0)
► Conforme allo Standard FIPA
► Distribuito in Open Source con licenza LGPL
► Utilizzato in Telecom Italia come piattaforma per 2 applicazioni mission critical nel dominio OSS
► “Developing Multi Agent Systems with JADE”► pubblicato da J.Wiley nel Febbraio 2007
![Page 5: Elena Quarantotto, Telecom Italia/IT Innovation 1 Mini-Scuola WOA 2009 WADE: Una piattaforma open source per workflow e agenti Elena Quarantotto (Telecom](https://reader036.vdocuments.mx/reader036/viewer/2022062701/5542eb59497959361e8c6139/html5/thumbnails/5.jpg)
Elena Quarantotto, Telecom Italia/IT Innovation 5
Principali caratteristiche
INFORM
REQUEST PROPOS
E
AGREE
REFUSE
► Meccanismi di discovery publish/subscribe
► Gestione e monitoraggio del ciclo di vita
► Mobilita’
► Fault tolerance
► Ricca suite di tool grafici per la gestione della piattaforma
► Facile da integrare con sistemi esterni
► Astrazione di Agenti e Behaviour (task eseguito da un agente)
► Distribuzione trasparente delle componenti (agenti) su un vasto insieme di device
► Comunicazione Peer-to-peer basata sullo scambio asincrono di messaggi
![Page 6: Elena Quarantotto, Telecom Italia/IT Innovation 1 Mini-Scuola WOA 2009 WADE: Una piattaforma open source per workflow e agenti Elena Quarantotto (Telecom](https://reader036.vdocuments.mx/reader036/viewer/2022062701/5542eb59497959361e8c6139/html5/thumbnails/6.jpg)
Elena Quarantotto, Telecom Italia/IT Innovation 6
La Comunita’
► Il progetto Open Source
► Primo rilascio nel 2000
► http://jade.tilab.com
► Dimensioni:
► > 170.000 downloads
► > 3000 sottoscrizioni alla mailing list
► Licenza LGPL
► Versione corrente 3.7 rilasciata a fine giugno
► Il Board di JADE (2003)
► Missione: promuovere, governare e implementare le evoluzioni di JADE
► Tra i membri Telecom Italia (leader) e France Telecom
Downloads
0
5000
10000
15000
20000
25000
30000
35000
2000 2001 2002 2003 2004 2005 2006 2007 2008
Year
![Page 7: Elena Quarantotto, Telecom Italia/IT Innovation 1 Mini-Scuola WOA 2009 WADE: Una piattaforma open source per workflow e agenti Elena Quarantotto (Telecom](https://reader036.vdocuments.mx/reader036/viewer/2022062701/5542eb59497959361e8c6139/html5/thumbnails/7.jpg)
Elena Quarantotto, Telecom Italia/IT Innovation 7
Architettura
JADE
Container
ContainerMain
ContainerPLATFORM
AMS DF
PLATFORM 2JADE
AMS DF
Main Container
JADE JADE
host1
host2 host3
host4
Passaggio di oggetti
Protocollo Proprietario
FIPA(http/iiop)
![Page 8: Elena Quarantotto, Telecom Italia/IT Innovation 1 Mini-Scuola WOA 2009 WADE: Una piattaforma open source per workflow e agenti Elena Quarantotto (Telecom](https://reader036.vdocuments.mx/reader036/viewer/2022062701/5542eb59497959361e8c6139/html5/thumbnails/8.jpg)
Elena Quarantotto, Telecom Italia/IT Innovation 8
Il modello di comunicazione► Basato sullo scambio asincrono di messaggi
A1 A2
Prepara il messaggio per A2
Prende il messaggio dalla coda dei messaggi e lo processa
JADE distributed runtime
(PROPOSE :sender A1 :receiver A2 :content “Cinema evening” :language “English” :ontology “Cinema-ontology” )
► Il formato del messaggio e’ conforme al linguaggio ACL (FIPA)
![Page 9: Elena Quarantotto, Telecom Italia/IT Innovation 1 Mini-Scuola WOA 2009 WADE: Una piattaforma open source per workflow e agenti Elena Quarantotto (Telecom](https://reader036.vdocuments.mx/reader036/viewer/2022062701/5542eb59497959361e8c6139/html5/thumbnails/9.jpg)
Elena Quarantotto, Telecom Italia/IT Innovation 9
FSMBehaviourSequentialBehaviour
ParallelBehaviour
Esecuzione e composizione dei Task
► Un agente nel suo ciclo di vita puo’ eseguire behaviours o assumere lo stato inattivo (jade.core.behaviours.Behaviour)
► Simple behaviours► Metodo action(): Determina il lavoro del task► Metodo done(): Determina la terminazione del task
► Composite behaviours
B1
B2
B3
B1 B2 B3
B1
B2B4
B3
![Page 10: Elena Quarantotto, Telecom Italia/IT Innovation 1 Mini-Scuola WOA 2009 WADE: Una piattaforma open source per workflow e agenti Elena Quarantotto (Telecom](https://reader036.vdocuments.mx/reader036/viewer/2022062701/5542eb59497959361e8c6139/html5/thumbnails/10.jpg)
Elena Quarantotto, Telecom Italia/IT Innovation 10
Il servizio di pagine gialle
A1: - serviceX - serviceY
A2: - serviceZ
A3: - serviceW - serviceK - serviceH
Servizio di Pagine Gialle
Pubblicazione dei servizi
esposti
A1
A2
A3
A4
A5
A6
Ricerca degli agenti che espongono
un determinato
servizio
Utilizza il servizio richiesto
DF
![Page 11: Elena Quarantotto, Telecom Italia/IT Innovation 1 Mini-Scuola WOA 2009 WADE: Una piattaforma open source per workflow e agenti Elena Quarantotto (Telecom](https://reader036.vdocuments.mx/reader036/viewer/2022062701/5542eb59497959361e8c6139/html5/thumbnails/11.jpg)
Elena Quarantotto, Telecom Italia/IT Innovation 11
WADE Workflows and Agents Development Environment
Elena Quarantotto (Telecom Italia)
![Page 12: Elena Quarantotto, Telecom Italia/IT Innovation 1 Mini-Scuola WOA 2009 WADE: Una piattaforma open source per workflow e agenti Elena Quarantotto (Telecom](https://reader036.vdocuments.mx/reader036/viewer/2022062701/5542eb59497959361e8c6139/html5/thumbnails/12.jpg)
Elena Quarantotto, Telecom Italia/IT Innovation 12
► E’ un’estensione di JADE
► Un’applicazione WADE-based e’ ancora un’applicazione JADE-based
► Tutte le features di JADE sono disponibili in WADE
► Aggiunge a JADE
► La possibilita’ di definire i task degli agenti secondo la metafora dei workflow
► Componenti e meccanismi che facilitano l’amministrazione di applicazioni WADE-based che per loro natura sono distribuite
► I due aspetti possono essere usati separamente
► Non e’ un unico grosso workflow engine, ma sono dei “micro-workflow engines” racchiusi negli agenti
► Open Source da Maggio 2008
► http://jade.tilab.com/wade
► Fine Giugno rilascio di WADE 2.5
► Tutorial disponibile all’url http://jade.tilab.com/wade/doc/tutorial/WADE-Tutorial.pdf
WADE
![Page 13: Elena Quarantotto, Telecom Italia/IT Innovation 1 Mini-Scuola WOA 2009 WADE: Una piattaforma open source per workflow e agenti Elena Quarantotto (Telecom](https://reader036.vdocuments.mx/reader036/viewer/2022062701/5542eb59497959361e8c6139/html5/thumbnails/13.jpg)
Elena Quarantotto, Telecom Italia/IT Innovation 13
Workflow► Un workflow e’ la definizione formale di un processo in termini di
attivita’ da eseguire, relazioni tra di loro che specificano il flusso di esecuzione, e condizioni di attivazione e terminazione
► Rappresentazione grafica, facilmente comprensibile sia da esperti di dominio che da programmatori
► Auto-documentativi► Meccanismi automatici per facilitare il
monitoraggio del sistema e l’investigazione di problemi
► Procedure di rollback automatiche a fronte di fallimenti in caso di esecuzione in contesti transazionali
![Page 14: Elena Quarantotto, Telecom Italia/IT Innovation 1 Mini-Scuola WOA 2009 WADE: Una piattaforma open source per workflow e agenti Elena Quarantotto (Telecom](https://reader036.vdocuments.mx/reader036/viewer/2022062701/5542eb59497959361e8c6139/html5/thumbnails/14.jpg)
Elena Quarantotto, Telecom Italia/IT Innovation 14
WOLF (WOrkflow LiFe cycle management environment)L’ambiente grafico di sviluppo
Eclipse plugin
Configurazione e gestione di un progetto
per lo sviluppo di un’applicazione WADE-
based
Configurazione e gestione di un progetto
per lo sviluppo di un’applicazione WADE-
based
Creazione ed aggiornamento grafico
dei workflow
Creazione ed aggiornamento grafico
dei workflow
Workflow permettono la condivisione delle logiche
con gli esperti di dominio
Workflow = Vista grafica e codice della classe
sono allineati
Workflow = Vista grafica e codice della classe
sono allineati
Utilizzatori target:
Sviluppatori
![Page 15: Elena Quarantotto, Telecom Italia/IT Innovation 1 Mini-Scuola WOA 2009 WADE: Una piattaforma open source per workflow e agenti Elena Quarantotto (Telecom](https://reader036.vdocuments.mx/reader036/viewer/2022062701/5542eb59497959361e8c6139/html5/thumbnails/15.jpg)
Elena Quarantotto, Telecom Italia/IT Innovation 15
► Associare la natura WADE ad un progetto JAVA in eclipse → si attivano le funzionalita’ offerte da WOLF
► Configurazione del progetto WADE
► Scelta della tipologia di applicazione: “JADE plus Workflow” o “Full Featured WADE”
► Aggiunta delle librerie WADE al classpath del progetto (fornite direttamente da WOLF o esterne)
► Aggiunta della cartella di configurazione WADE al classpath di progetto
Progetti WADE-based
![Page 16: Elena Quarantotto, Telecom Italia/IT Innovation 1 Mini-Scuola WOA 2009 WADE: Una piattaforma open source per workflow e agenti Elena Quarantotto (Telecom](https://reader036.vdocuments.mx/reader036/viewer/2022062701/5542eb59497959361e8c6139/html5/thumbnails/16.jpg)
Elena Quarantotto, Telecom Italia/IT Innovation 16
Classe Workflow
public class FailCaffeWf extends WorkflowBehaviour { .... private void defineActivities() { registerActivity(new CodeExecutionBehaviour(this, “Controlla”) , INITIAL); registerActivity(new CodeExecutionBehaviour(this, “Prepara”)); registerActivity(new CodeExecutionBehaviour(this, “Errore”), FINAL); registerActivity(new CodeExecutionBehaviour(this, “Versa”) , FINAL); } .... private void defineTransitions() { registerTransition(new Transition(this, “AbbastanzaCaffe”), “Controlla”,
“Prepara”); registerTransition(new Transition(), “Controlla”, “Errore”); registerTransition(new Transition(), “Prepara”, “Versa”); } … protected void executeControlla() { } protected void executePrepara() { } protected void executeVersa() { } protected void executeErrore() { } protected boolean checkAbbastancaCaffe() { } ....}
FailCaffeWf
Prepara
Controlla
Versa
Errore
Abbastanza Caffe
![Page 17: Elena Quarantotto, Telecom Italia/IT Innovation 1 Mini-Scuola WOA 2009 WADE: Una piattaforma open source per workflow e agenti Elena Quarantotto (Telecom](https://reader036.vdocuments.mx/reader036/viewer/2022062701/5542eb59497959361e8c6139/html5/thumbnails/17.jpg)
Elena Quarantotto, Telecom Italia/IT Innovation 17
► Workflow classe Java che estende WorkflowBehaviour
► Activity
► metodo void della classe del workflow
► Behaviour registrato nell’oggetto workflow, responsabile di invocare il metodo dell’activity passando i parametri in base al tipo di activity
► Transition
► Metodo booleano della classe del workflow che implementa la condizione (se presente)
► Transition registrata nell’oggetto workflow, responsabile di invocare il metodo associato alla condizione
► Formal Parameters Field della classe Workflow con l’annotation @FormalParameter
► Informazioni di layout (es. posizione delle activity, routing points delle transizioni, …) definite nell’annotation @WorkflowLayout
Elementi della classe Workflow
![Page 18: Elena Quarantotto, Telecom Italia/IT Innovation 1 Mini-Scuola WOA 2009 WADE: Una piattaforma open source per workflow e agenti Elena Quarantotto (Telecom](https://reader036.vdocuments.mx/reader036/viewer/2022062701/5542eb59497959361e8c6139/html5/thumbnails/18.jpg)
Elena Quarantotto, Telecom Italia/IT Innovation 18
► CodeActivity
► Il metodo dell’activity contiene direttamente il codice che deve essere eseguito
► WebServiceActivity
► Il metodo dell’activity invoca un web service
► Puo’ essere statico o dinamico (non necessita l’import del WSDL → la generazione di classi)
► SubflowActivity
► Il metodo dell’activity invoca l’esecuzione di un altro workflow
► Puo’ essere sincrono o asincrono
► La scelta dell’agente a cui delegare il workflow puo’ essere effettuata a runtime
► SubflowJoinActivity
► Il metodo dell’activity sospende l’esecuzione del workflow in attesa del completamento di uno o piu’ workflow asincroni partiti precedentemente
Tipi di Activity
![Page 19: Elena Quarantotto, Telecom Italia/IT Innovation 1 Mini-Scuola WOA 2009 WADE: Una piattaforma open source per workflow e agenti Elena Quarantotto (Telecom](https://reader036.vdocuments.mx/reader036/viewer/2022062701/5542eb59497959361e8c6139/html5/thumbnails/19.jpg)
Elena Quarantotto, Telecom Italia/IT Innovation 19
Ereditarieta’ dei WorkflowFailCaffeWorkflow
Prepara
Controlla
Versa
Errore
Abbastanza Caffe
AggiungiZucchero
CaffeZuccheratoWf
public class CaffeZuccheratoWf extends FailCaffeWf { .... private void defineActivities() { changeActivityOrder(“Versa”, INTERMEDIATE); registerActivity(new CodeExecutionBehaviour(this,
“AggiungiZucchero”) , FINAL); } .... private void defineTransitions() { registerTransition(new Transition(), “Versa”,
“AggiungiZucchero”); } … protected void executeAggiungiZucchero() { } …}
La classe del workflow esteso contiene solo le differenze con il
workflow base
La classe del workflow esteso contiene solo le differenze con il
workflow base
![Page 20: Elena Quarantotto, Telecom Italia/IT Innovation 1 Mini-Scuola WOA 2009 WADE: Una piattaforma open source per workflow e agenti Elena Quarantotto (Telecom](https://reader036.vdocuments.mx/reader036/viewer/2022062701/5542eb59497959361e8c6139/html5/thumbnails/20.jpg)
Elena Quarantotto, Telecom Italia/IT Innovation 20
WADE-application startupwade-home |---startMain.bat/sh |---... |---cfg/ |---main.properties |---types.xml |---... |---configurations/ |---sample.xml |---... |---lib/ |---wade.jar |---JadeLeap.jar |... |---log/ |---projects/ |---...
failcaffe-home |---cfg/ |---main.properties |---lib/ |---failcaffe.jar
|---failcaffe.properties
# FailCaffe project property fileproject-home=D:/develop/FailCaffe
platform-id=FAILCAFFEagents=p1:com.tilab.wade.performer.WorkflowEngingAgent
wade-home> startMain failcaffe