Primer acercamiento a Jade

En este post quiero reutilizar el código que escribí antes de empezar a trabajar con Jade y así tener documentación, por si acaso vuelvo a trabajar con Jade alguna vez.

Bueno, lo primero de todo es tener la librería descargada en el ordenador para poder utilizarla en nuestro IDE favorito. Aquí podeís descargar JADE.

Jade es un framework para el desarrollo de agentes en Java. Estos agentes detectan su entorno a través de mensajes y actuan utilizando comportamientos (Behaviours). El primer ejemplo que hice fue crear dos agentes y comportamientos para comunicarse.

Código AgenteS

Creo que no hay mucho que explicar de esta clase. Lo único que hace es  lanzar el comportamiento avisoComportamiento cuando se crea el agente AgenteS. Este comportamiento necesita como parametros el agente que lo lanza y un tiempo que  después se utilizará para definir la longitud de la unidad temporal en la que se relanzará el comportamiento.

Código AgenteR

Esta clase es un poco más compleja porqué en vez de añadir un comportamiento y únicamente lanzarlo en la ejecución, he creado un comportamiento interno en la clase.

Al igual que en el AgenteS este agente tambiés lanza un comportamiento nada más se crea pero la clase es más compacta ya que en un java tenemos un agente y un comportamiento. Este formato es útil cuando tienes agentes y comportamientos simples pero tener los agentes y comportamiento separados es muy beneficioso a la hora de ordenar un proyecto.

Este comportamiento interno se ejecuta una vez cada unidad temporal. Existen comportamiento que se ejecutan una única vez o otros que se ejecutan un número limitado de veces. En cada tick (unidad temporal) el AgenteR recibe los mensajes que puede que le hayan mandado, en el caso de que no hayan mandado ningún mensaje la variable msg es null y si sí que se ha recibido un mensaje entonces se imprime el contenido del mensaje.

Código avisoComportamiento

Este comportamiento define la duración de un tick y, como el comportamiento interno del AgentR, también es recursivo. Cada tick el comportamiento crea un mensaje y lo manda al AgenteR creado. El agente R que se crea con el nombre R1 ( si se creara con otro nombre este código no funcionaría). Esto es una mala práctica pero como era el primer ejemplo pues, Fair Enough!.  Se customiza el mensaje con una ontología. Esta ontología es como el asunto de un Email y puede ser útil para que un mismo comportamiento pueda realizar diferentes acciones dependiendo de la ontología que reciba.

En el mensaje se envía el estado que va cambiando en cada mensaje que se envía.

Ahora solo falta ejecutarlo. Para ello necesitamos una configuración especial:

Una vez se ejecuta el proyecto aparece una pantalla con los agentes creados y ahí podemos crear e iniciar los agentes que queramos de manera manual. También existe la posibilidad de crearlos dentro del código pero esto es un primer ejemplo.

Este es de los primeros ejemplos que hice en Jade. Para ver el código puedes entran el el respositorio y ver la brnach Pr2Ejer1

Advertisements Share this:
Like this:Like Loading...