JACK Intelligent Agents és un framework en Java per al desenvolupament de sistemes multiagent. JACK Intelligent Agents va ser creat per Agent Oriented Software Pty. Ltd. (AOS) i és una plataforma d'agents de tercera generació que es basa en les experiències del Sistema de Raonament Procedimental (PRS) i el Sistema de Raonament Multiagent Distribuït (dMARS). JACK és un dels pocs sistemes multiagent que utilitza el model de programari BDI i proporciona el seu propi llenguatge de planificació basat en Java i eines de planificació gràfica.
Història JACK Intelligent Agents va ser desenvolupat inicialment el 1997 per exmembres de l'Australian Artificial Intelligence Institute (AAII o A2I2) que van participar en el disseny, la implementació i l'aplicació de PRS a SRI International i/o dMARS a l'AAII. La plataforma JACK va ser escrita per a l'aplicació comercial del paradigma multiagent (un producte COTS) per a la resolució de problemes complexos i va ser la base per iniciar l'empresa Agent Oriented Software (AOS), on continua sent el producte estrella.
Característiques JACK Intelligent Agents és una plataforma comercial multiagent madura que ha estat en procés d'investigació, desenvolupament i aplicació específica en dominis durant més de 10 anys. A continuació es mostra una llista de les principals característiques diferenciadores de la plataforma.
Temps d'execució de l'agent : El nucli de la plataforma és un temps d'execució multiagent extensible. Un cop especificats els agents, plans, esdeveniments, capacitats, etc. específics del domini, el nucli JACK gestiona l'execució del sistema, incloent-hi el pas de missatges, el raonament i el metaraonament. Llenguatge de planificació JACK (JPL) : JACK proporciona un llenguatge de planificació específic per a agents per escriure plans JACK (el raonament discret executat pels agents). El llenguatge de planificació és una extensió de Java i ofereix ordres com ara @send i @post per a la missatgeria interagent, així com la gestió d'accions, subtasques i manteniment de condicions. Els plans es compilen en classes Java per a la seva execució en temps d'execució de JACK, oferint velocitat i correcció d'execució. Model Creença-Desig-Intenció : A més d'un model d'agent clàssic (no BDI), la plataforma implementa el model de programari BDI, on les creences es gestionen mitjançant conjunts de creences encapsulats dins dels agents, els desitjos són els estats d'objectiu que un agent aspira a assolir i les intencions són el metaraonament i el raonament basat en plans que els agents JACK utilitzen per assolir l'objectiu actual. Capacitats : La plataforma proporciona capacitats que són abstraccions de comportaments comuns que es manifesten com un complex de plans i esdeveniments. Les capacitats proporcionen una manera d'agrupar conceptualment comportaments i accions comuns i reutilitzar-los entre agents. Entorn de desenvolupament JACK (JDE) : Els sistemes multiagent es poden escriure en codi Java i el llenguatge de planificació JACK en un IDE estàndard, tot i que la plataforma proporciona un IDE centrat en agents anomenat Entorn de desenvolupament JACK o JDE. El JDE proporciona eines gràfiques per escriure plans, connectar plans a agents, gestionar la comunicació entre agents, així com compilar i executar. El JDE també proporciona eines gràfiques per a la depuració i el seguiment de l'execució de plans i el pas de missatges entre agents. Plans gràfics : Una característica clau del JDE és la possibilitat d'escriure i gestionar plans gràfics. Aquests són els raonaments discrets realitzats per un agent representats gràficament com un diagrama de flux, que permeten a un programador gestionar el codi realitzat a cada pas del gràfic de raonament i a l'expert en la matèria gestionar el flux lògic del raonament basant-se en la documentació llegible per humans de cada node. JACK Object Modeller (JACOB) : una tecnologia de serialització d'objectes utilitzada pel temps d'execució de JACK per a la inicialització d'objectes i la comunicació entre processos. Els objectes Java es serialitzen en text ASCII llegible per humans, no gaire diferent de YAML i XML. Independència de la plataforma : la plataforma JACK està escrita en Java, cosa que permet el desplegament de sistemes multiagent JACK en l'àmplia gamma de plataformes que admeten la màquina virtual Java. Actualment, JACK només es pot instal·lar en sistemes operatius Microsoft Windows utilitzant una màquina virtual Java de 32 bits, però també funciona en una màquina virtual Java de 64 bits. En les versions més recents dels sistemes operatius Mac OS X (a partir de Mac OS X Lion), JACK només es pot instal·lar mitjançant un instal·lador de consola.
Extensions La plataforma JACK s'ha ampliat diverses vegades des del seu inici. La majoria de les extensions, com ara JACK Teams i CoJACK, van ser desenvolupades per o en col·laboració amb AOS.
JACK Teams : Una extensió del model de programari BDI que facilita la col·laboració dels agents en equips per aconseguir un objectiu. Igual que JACK, JACK Teams admet el seu propi llenguatge de planificació en el que AOS anomena programació orientada a equips. JACK Teams està integrat i disponible com a part de la plataforma JACK Intelligent Agents. CoJACK : Una extensió de la plataforma JACK que afegeix una arquitectura cognitiva als agents per obtenir comportaments més realistes (semblants als humans) en entorns virtuals. FIPA JACK : Una extensió de la plataforma JACK per donar suport al llenguatge de comunicació d'agents FIPA. Prometeu : una metodologia d'enginyeria de programari centrada en agents per gestionar el SDLC d'un sistema basat en múltiples agents. JACK es va utilitzar com a base per a la investigació, la comparació i la prova de la metodologia. El Prometheus va implicar el desenvolupament de l'eina de disseny Prometheus (PDT), que era una eina basada en GUI per gestionar els problemes de disseny durant el procés. Complement JACK Eclipse : Un complement que facilita el desenvolupament de sistemes basats en JACK a l'IDE Eclipse. Concretament, el connector afegeix capacitats a Eclipse per admetre els tipus de fitxer JACK (com ara.plan,.agent, etc.), així com el llenguatge de pla JACK. JACK WebBot : Una extensió que integra el nucli JACK al servidor web Apache Tomcat, permetent que els agents intel·ligents interactuïn i formulin respostes a sol·licituds HTTP (mitjançant l'API de Java Servlet).
Referències
Categoria:Programari