1. Modelo de comunicacion multi-agente en ambiente
Web con persistencia de datos.
Jesus A. Ferrer Sanchez1, Juan P. Soto Barrera2
1Universidad Juarez Autonoma de Tabasco
jafs-2050@hotmail.com
2Universidad de Sonora
jpsoto@mat.uson.mx
9 de agosto de 2014
Resumen
En este trabajo se presenta el resultado del estudio de la dinamica de los agentes inteligentes
como esfuerzo para la realizacion de un modelo de comunicacion multi-agente en ambienteWeb con
persistencia de datos. Dicho modelo permite de
2. nir ideas a traves de diagramas que cumplen con la
notacion de la metodologa multi-agente INGENIAS a partir de este punto quedan establecidas las
bases para trabajar en la programacion y posteriormente mostrar los resultados del funcionamiento
de un prototipo que valide la funcionalidad del modelo propuesto.
1. Introduccion
El desarrollo de sistemas multi-agente es un campo de estudio al cual se le atribuyen variedad de
aplicaciones practicas, con hacer una revision de contenido a las publicaciones en sitios Web de ciencia
tales como Springer[1], SCOPUS[2], Elsevier[3], ScienceDirect[4], por mencionar algunos, se corrobora
la diversidad de propuestas sobre esta area que va en aumento.
Aqu se aterrizara en un caso practico para encontrar la manera de llevar a cabo la implementacion
de Agentes Inteligentes con nuevas tecnologas, espec
3. camente de Software basado en el lenguaje Ja-va,
aqu nuestra mayor referencia es la API (Application Programming Interface) de JADE[5] (JAVA
Agent DEvelopment Framework) con su propio entorno de ejecucion.
Cabe mencionar que la documentacion de JADE disponible en su sitio o
5. cos y generales, que dan
bases para llevar a cabo nuevas implementaciones.
A lo cual se percibe que un nuevo aliciente al repertorio de innovaciones practicas para este Frame-work
consiste en agregar persistencia a la informacion generada por los agentes inteligentes durante
su ciclo de ejecucion, ya que esta es de existencia temporal, para lo cual se considera necesario lograr
un almacenamiento permanente, que permita su analisis posteriormente.
Hay que aclarar aqu que se retoman las bases del trabajo realizado por Hilda Ana Jimenez[6]
en la UNMSM (Universidad Nacional Mayor de San Marcos). Dicho trabajo se centra en dos puntos
1
6. Modelo de comunicacion multi-agente en ambiente Web con persistencia de datos
clave, el primero usar nuevas tecnologas y el segundo mostrar una tecnica para lograr la persistencia
de informacion generada por los agentes inteligentes.
De este modo por medio de la presente propuesta se pretende cubrir los objetivos de modelar la
comunicacion entre agentes inteligentes desde un entorno integrado para ser creados programatica-mente
y tambien as desarrollar un proyecto JADE que interactue con otras tecnologas Java.
2. Modelo
Para llevar a cabo el modelado se requirio del IDK[7] el cual esta basado en INGENME[8] que
consiste en un editor visual de ingeniera multi-agente. Esto con la
7. nalidad de modelar los agentes
necesarios basandose en el estandar FIPA[9] y tambien porque dicha herramienta cuenta con la capa-cidad
para generar codigo a partir del modelo representado para ser adecuado por el programador y
hacerlo funcional.
De acuerdo a lo anterior por medio de 5 tipos de objetos del sistema de los 11 disponibles en el IDK
se especi
8. co la plantilla del modelo de agente a emplear posteriormente para el desarrollo del prototipo.
Para enfatizar la esencia del modelado se explica y se muestran algunas imagenes de la documen-taci
on generada por el IDK usando el HTML Document Generator y el Ingenias Agent Framework
Generator.
2.1. Agente del sistema
El diagrama de un agente hola mundo (Figura 1) fue de
11. cacion se reutilizaron elementos de la vista de entidades.
Figura 1: Agente hola mundo
Por medio de una tabla de entidades presentes en el diagrama generada por el HTML Document
Generator (Figura 2), se muestran los tipos de entidades y una descripcion de las mismas. Lo cual
resulta util obteniendo as automaticamente la documentacion del modelado.
2
12. Modelo de comunicacion multi-agente en ambiente Web con persistencia de datos
Figura 2: Resumen de entidades presentes
Otra parte de la documentacion autogenerada que resulta de suma utilidad es la matriz de rela-ciones
de
13. niendo los tipos, fuentes y objetivos presentes en el modelo (ver Figura 3).
Figura 3: Relaciones comunes
Por otra parte, en la Figura 4 se muestra la capacidad del Ingenias Agent Framework Generator
para generar codigo a partir del editor gra
14. co. Cabe agregar la compatibilidad de esta herramienta
con JADE, lo cual resulta viable para dar continuidad con el desarrollo de un prototipo funcional.
3
15. Modelo de comunicacion multi-agente en ambiente Web con persistencia de datos
Figura 4: Resultado del Code Generator
Quedando expuesto lo anterior, en el presente documento, los siguientes objetos modelados se
muestran resumidos con un gra
16. co de su diagrama y una breve explicacion de los mismos.
2.2. Tarea y objetivo
El diagrama de TaskAndGoalsModel (Figura 5) saludar usuarios (UsersGreet) consiste en especi-
17. car la tarea saludar (Greet) y el objetivo saludar a usuario (GreetUser). Por ultimo al contenido del
mensaje (ContentGreeting) se le agrego la descripcion de que su contenido es variado.
Figura 5: Saludar a los agentes externos
4
18. Modelo de comunicacion multi-agente en ambiente Web con persistencia de datos
2.3. Componente
En la Figura 6, se describe el diagrama de componentes de la tarea de saludar (Greet), a la cual se le
asigno un componente de codigo Ingenias en lenguaje Java que consiste en: System.out.println(Hola
Mundo);.
Figura 6: De
19. nicion de componentes en codigo Java
2.4. Despliegue
El modelado del despliegue (DeployDiagram) resulta interesante puesto que aqu se relacionan
y determinan los agentes a ejecutar adjuntados a un paquete de despliegue. Para entender como se
especi
20. ca en desplegado unitario por tipo, se selecciono mostrar la vista UML (Figura 7) para la
entidad DeploymentUnitByType nombrada SayingHelloAgents, donde se enlazo un agente existente
(de la coleccion de modelado) y se de
21. nio la creacion de 4 instancias del mismo.
Figura 7: Instanciacion de agente replicado
2.5. Caso de uso
Para cerrar con la rese~na del modelado se muestra el caso de uso (Figura 8) que da idea a la
union de la parte modelada (Ingenias IDK) y la parte programatica (JADE). Donde la funcionalidad
deseada en este caso es el registro persistente de informacion.
5
22. Modelo de comunicacion multi-agente en ambiente Web con persistencia de datos
Figura 8: Representacion de elementos participantes
3. Prototipo
El prototipo realizado consiste en el desarrollo de 3 proyectos funcionando en conjunto:Web, JADE
y una Librera. Los proyectos ejecutables (Web y de Escritorio) hacen uso del codigo del proyecto
Librera. Para realizar la comunicacion entre un proyecto Jade y otro no Jade se programo codigo de
un agente de tipo (extends) GatewayAgent que se encuentra en el paquete jade.wrapper.gateway de
la API de JADE.
3.1. Requerimientos
En este punto se precisa hacer mencion de los recursos necesarios para la realizacion del prototipo,
estos se resumen en el Cuadro 1 el cual se muestra a continuacion.
Recurso Tipo Descripcion
Netbeans IDE Para mejora del tiempo de programacion y pruebas.
JADE Framework Entorno de programacion y ejecucion de agentes del sistema.
JSF (JavaServer Faces) Framework Coleccion de codigos para programacion Java-Web
Hibernate Framework Framework de apoyo para el proyecto Web.
Persistence API Framework de apoyo para el proyecto Jade.
MySQL JDBC Driver Archivo jar de apoyo para el proyecto Web.
MySQL Server Servidor de BD Servidor de prueba para el almacenamiento de los reportes.
IDK Kit de desarrollo Necesario para dise~no de agentes de prueba.
Cuadro 1: Sumarizacion de recursos necesarios
3.2. Construccion
La construccion del modelo en este punto queda netamente re
ejada en la codi
23. cacion de la logica
requerida para la implementacion. Dicho resultado es explicado y evidenciado por cada componente
de software desarrollado.
Proyecto Jade.
El proyecto de JADE esta conformado por 5 clases de codigo de las cuales 3 son compartidas con
el proyecto Web estas son: DAO, Interface e ImpInterface. Para que el proyecto se ejecute a partir
6
24. Modelo de comunicacion multi-agente en ambiente Web con persistencia de datos
de un metodo principal propio fue de
25. nida la clase ProyectoJadetal y como se muestra en la Figura 9.
Figura 9: Estructura
26. nal del proyecto Jade
Proyecto Librera.
Este proyecto de tipo librera solo contiene el dominio o modelo de la base de datos representado en
los archivos POJOs. El archivo Model1 es el que representa a la tabla modelo de la base de datos exis-te
tambien otro archivo llamado MensajeAgente(Figura 10) para enviar el mensaje entre los agentes.
7
27. Modelo de comunicacion multi-agente en ambiente Web con persistencia de datos
Figura 10: Estructura
28. nal del proyecto Librera
Proyecto Web.
Este proyecto es la pieza
29. nal y fundamental de los componentes de software desarrollados puesto
que desde este se desea comunicar con los agentes de la plataforma JADE para lograr esto se dispone
de un Agente de tipo GatewayAgent.
Para que agente sea creado es necesario darle valores iniciales a la clase que inicia al agente Jade-
Gateway el cual tiene tres metodos principales:
Init: Para valores de iniciacion del agente: JadeGateway.init(nombreClaseAgenteGateway, pro-piedadesdelagente);
Execute: Comando que crea agentes y ademas pasa el objeto al metodo proccesCommand del
agente
y Shutdown: Elimina al agente.
Para ejecutar este proyecto se emplea un archivo index.xhtml el cual se muestra el la Figura 11.
8
30. Modelo de comunicacion multi-agente en ambiente Web con persistencia de datos
Figura 11: Estructura
32. car la funcionalidad alcanzada cada proyecto fue sometido a prueba de manera aislada
o unitaria. Primeramente se muestra la ejecucion del proyecto Jade en la Figura 12. Aqu se observa
como correctamente se esta empleando la API de JADE durante la corrida del componente de software,
para esto fue necesario contar con el rma de jade previamente activo para reconocer el entorno y crear
el agente BD en espera de mensaje.
9
33. Modelo de comunicacion multi-agente en ambiente Web con persistencia de datos
Figura 12: Ejecucion aislada del proyecto Jade
Seguidamente se muestra la ejecucion del proyecto Web el cual se encuentra ejecutando de manera
aislada para observar la reaccion ante la falta de un entorno de agentes en ejecucion. En la Figura 13
se muestra que la aplicacion funciona pero no registra informacion de agentes vivos debido a que no
detecta el proyecto Jade con el que debe de interactuar.
Figura 13: Ejecucion aislada del proyecto Web
10
34. Modelo de comunicacion multi-agente en ambiente Web con persistencia de datos
Ejecucion integrada.
Para demostrar si la ejecucion de los proyectos en simultaneidad realizan lo que se planeo y mo-delo
el procedimiento es arrancar el entorno JADE (runjade -gui), ejecutar el proyecto jade, iniciar el
proyecto Web, realizar alguna interaccion y ver el resultado.
Se colocan la Figura 14 y 15 de la evidencia de ejecucion, donde se observo que existe una con-vivencia
entre los proyectos durante la ejecucion, la interaccion en la aplicacion Web fue aceptada
y tomada como mensaje por el agente creado en el entorno del proyecto Jade. El despliegue no se
evaluo con un 100% de aprobacion puesto que de igual manera se presenta un error en el agente BD en
el contenedor Administracion al interactuar con el agente ControlGateway en el contenedor Gateway.
Figura 14: Ejecucion del sistema sin interaccion
Observese el comportamiento
36. Modelo de comunicacion multi-agente en ambiente Web con persistencia de datos
Figura 15: Comportamiento del sistema despues de interactuar
4. Conclusiones
Se recalca que con la evidencia presentada se trato de explicar su
37. cientemente una manera de
establecer persistencia de datos a un sencillo sistema de agentes a los que prede
38. nidamente se les
establecio la necesidad de comunicacion.
Durante el despliegue de la integracion se reconoce la presencia de un error de funcionamiento de
carga y existencia de un agente, a lo cual se obvia la responsabilidad de hacer mejoras continuas para
robustecer el modelo que aqu se ha propuesto.
Para concluir se invita a generar ideas que tomen como base el presente trabajo para realizar
innovaciones en algun tema de interes en los cuales resulte preciso contar con los conocimientos que
aqu se encaminan.
Referencias
[1] Springer, Part of Springer Science+Business Media: Providing researchers with access to mi-
llions of scienti
39. c documents from journals, books, series, protocols and reference works.
http://link.springer.com (2014)
[2] Elsevier B.V.: Scopus Document Search. http://www.scopus.com (2014)
[3] Elsevier B.V.: Elsevier is a world-leading provider of information solutions that enhance the
performance of science, health, and technology professionals.. http://www.elsevier.com (2014)
[4] Elsevier B.V.: ScienceDirect. http://www.sciencedirect.com (2014)
12
40. Modelo de comunicacion multi-agente en ambiente Web con persistencia de datos
[5] Telecom Italia SpA: JAVA Agent DEvelopment Framework. http://jade.tilab.com (2014)
[6] Hilda Ana: Curso de Agentes Jade Con JSF y Hibernate.
http://es.scribd.com/doc/152333598/Curso-de-Agentes-Jade-Con-JSF-y-Hibernate (2013)
[7] Juan Pavon: INGENIAS Development Kit (IDK). http://es.sourceforge.jp/projects/sfnet ingenias
(2013)
[8] Jorge J. Gomez-Sanz: INGENME. http://ingenme.sourceforge.net (2010)
[9] IEEE Foundation for Intelligent Physical Agents: FIPA. http://www.