Sviluppare software open source non è solo una prerogativa degli ambienti accademici, il Progetto JADE sviluppato all’interno dei laboratori di TelecomItalia ne è la dimostrazione. Abbiamo posto alcune domande a Giovanni Caire – Project Manager del Progetto Jade
Cosa è JADE, quali sono gli obiettivi di questo progetto?
JADE (Java Agent DEvelopment framework) è un middleware per lo sviluppo di applicazioni ad agenti realizzato da Telecom Italia e distribuito in Open Source con licenza LGPL sul sito http://jade.tilab.com.
Il paradigma della programmazione ad agenti concepisce una applicazione software come un insieme di componenti (gli agenti appunto) che concorrono al raggiungimento di determinati obiettivi. JADE è caratterizzato da:
Ø Un runtime environment distribuito per l’esecuzione di agenti ovvero un ambiente che deve essere attivo su uno o più host prima che si possano eseguire agenti su quegli host. Tale ambiente nasconde agli agenti la loro effettiva locazione così che essi comunicano in modo del tutto indipendente dal fatto di essere attivi sullo stesso host o su host diversi. Ogni istanza del runtime environment di JADE su un dato host è detta “Container” in quanto può contenere un certo numero di agenti;
Ø Una libreria di classi che il programmatore utilizza per realizzare agenti che potranno essere eseguiti sul runtime environment;
Ø Una suite di tool grafici che consentono di attivare/distruggere agenti, monitorare le comunicazioni tra gli agenti e visionare lo stato interno di un agente.
L’obiettivo di JADE è quello di facilitare e velocizzare lo sviluppo di applicazioni distribuite fornendo varie funzionalità indipendenti da uno specifico dominio applicativo, tra queste le principali sono:
-
Le astrazioni di agente e behaviour (un task eseguito da un agente);
-
Comunicazione peer-to-peer tra gli agenti basata sul paradigma dello scambio di messaggi asincrono;
-
Gestione del ciclo di vita degli agenti (attivazione, terminazione, sospensione) controllabile da remoto;
-
Meccanismi di discovery degli agenti al runtime basati sulle caratteristiche e sui servizi offerti.
Quale piattaforma di sviluppo avete utilizzato?
JADE è realizzato totalmente in Java Standard Edition e il programmatore che sviluppa applicazioni basate su JADE (ovvero agenti che saranno eseguiti sul runtime environment di JADE) lavora al 100% in Java.
Quali sono i problemi che avete incontrato?
Sicuramente il fatto di sfruttare un paradigma avanzato come quello degli agenti ha favorito la diffusione di JADE nell’ambiente accademico e in ambito R&D, ma al contempo ha costituito un limite alla sua adozione nel mondo dell’industria a vantaggio di framework più tradizionali e già affermati. Solo recentemente si comincia a vedere un uso significativo in ambito commerciale. La stessa Telecom Italia, che oggi ha due applicazioni mission critical basate su JADE nel mondo della gestione della rete e dell’assistenza ai tecnici in-field, ancora due anni fa lo utilizzava solo per lo sviluppo di prototipi.
Quali sono stati invece i fattori critici di successo?
I fattori alla base del successo di JADE sono molteplici,innanzi tutto l’adozione della piattaforma Java (che oggi potrebbe apparire una scelta scontata, ma nel 1998 quando nei laboratori di Telecom Italia è nato il progetto JADE non lo era affatto) ha garantito una base di potenziali utenti estremamente vasta. In secondo luogo la facilità di uso e la filosofia “pay as you go” seguita nella progettazione delle API consentono di realizzare immediatamente applicazioni di una certa complessità senza necessità di training specifici. Non solo, ma JADE è corredato di una ricca documentazione tra cui vari tutorial e il libro “Developing Multi Agent Systems with JADE” pubblicato da J. Wiley nel Febbraio 2007. Un altro fattore chiave nel successo di JADE è sicuramente rappresentato dal continuo supporto offerto agli utilizzatori in termini di risoluzione problemi, suggerimenti, integrazione di contributi e così via. Non va poi dimenticato il forte impegno per assicurare sempre la compatibilità man mano che le successive versioni venivano rilasciate. Infine mi piace pensare che gli utenti di JADE ne apprezzino non solo le funzionalità offerte, ma anche il design pulito e flessibile che offre vari punti di estendibilità e customizzazione.
Quali sono i prossimi sviluppi previsti?
Per il prossimo futuro gli sviluppi si stanno focalizzando su una estensione di JADE denominata WADE (Workflow Agent Development Environment) che consente di definire logiche applicative secondo la metafora dei workflow e di eseguirle in un ambiente distribuito. L’obiettivo di WADE è quello di portare il paradigma dei workflow, con i vantaggi che ne conseguono in termini di leggibilità, tracciabilità e transazionalità, dal livello di Business Process Management (coordinamento/orchestrazione di sistemi) al livello di logiche di funzionamento interno del singolo sistema. Punti chiave per il raggiungimento di questo obiettivo sono l’integrazione con gli ambienti di sviluppo (Eclipse) con possibilità di sfruttarne tutte le features (e.g. debugging, refactoring), estendibilità dei workflow con gli stessi meccanismi dell’ereditarietà delle classi Java e libertà per lo sviluppatore di utilizzare l’approccio a workflow solo dove ritenuto utile/vantaggioso rispetto ad un approccio tradizionale.WADE sarà distribuito in Open Source insieme con il rilascio della versione 3.6 di JADE prevista per Aprile 2008.
——————–
Giovanni Caire is a Project Manager in the OSS Innovation division of Telecom Italia. His main interest is in the field of distributed applications with particular focus on the Java technology. Since 2005 he is leading the JADE Open Source project as President of the JADE Board.