Elena Quarantotto, Telecom Italia/IT Innovation 1 Mini-Scuola WOA 2009 WADE: Una piattaforma open...

20
Elena Quarantotto, Telecom Italia/IT Innovation 1 Mini-Scuola WOA 2009 WADE: Una piattaforma open source per workflow e agenti Elena Quarantotto (Telecom Italia)

Transcript of Elena Quarantotto, Telecom Italia/IT Innovation 1 Mini-Scuola WOA 2009 WADE: Una piattaforma open...

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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