Elena Quarantotto, Telecom Italia/IT Innovation 1 Mini-Scuola WOA 2009 WADE: Una piattaforma open...
-
Upload
giambattista-grosso -
Category
Documents
-
view
215 -
download
1
Transcript of Elena Quarantotto, Telecom Italia/IT Innovation 1 Mini-Scuola WOA 2009 WADE: Una piattaforma open...
Elena Quarantotto, Telecom Italia/IT Innovation 1
Mini-Scuola WOA 2009WADE: Una piattaforma open source per workflow e
agenti
Elena Quarantotto (Telecom Italia)
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
Elena Quarantotto, Telecom Italia/IT Innovation 3
JADE Java Agent DEvelopment framework
Elena Quarantotto (Telecom Italia)
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
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
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
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)
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)
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
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
Elena Quarantotto, Telecom Italia/IT Innovation 11
WADE Workflows and Agents Development Environment
Elena Quarantotto (Telecom Italia)
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
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
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
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
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
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
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
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
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