Inicio   Foros     Blogs     Programación   .NET   C & C++   Delphi   SGBD & SQL   Web   Java    
 
Colabora
 

Mándanos un correo

Gracias

Varios
 

Ingreso
 

Bienvenido(a), Visitante

User 
Pass 

Ingresa o regístrate

Blogs @ Club Developers
 

¿Buscas algo?
 

google
Utiliza palabras clave para la búsqueda.

 

¿Buscas fuentes?
 

koders

 

 

17.10.07

Permalink 10:30:20, por fran_jo Email , 102 palabras, 1410 vistas   Spanish (ES)
Categorías: Desarrollo

mudanza

Hay algunas cosas de este blog que no me acaban de agradar. He hablado con algun admin y no hemos encontrado solución a algunas cuestiones.
De momento cierro la terraza, y me traslado a http://cuartoderrota.blogspot.com.
El único motivo de ello es que el nuevo lo encuentro más bonito. No me voy, seguiré colaborando en el foro. De momento, no seguiré publicando por acá

¡Saludos!

P.D.: No olvidaros de dejar alguna firmita cuando paseis por alguno de mis diarios. Es de agradecer que alguien lea lo que uno escribe, para no sentirnos... solos en este mundo :P

04.10.07

Permalink 18:04:39, por fran_jo Email , 289 palabras, 1479 vistas   Spanish (ES)
Categorías: proyecto, agentes

a falta de main... bueno es un boot

Si habeis leído el anterior post, habeis observado que he llamado a
java jade.Boot -gui @nombre_agente:@classe_java_agente(@parámetros). Y os habeis parado a pensar si he creado una clase jade.Boot con el método main, debo deciros que no.
En una POA (Programación Orientada a Agentes) uno debe de olvidarse del main. No existe el tratamiento seqüencial de una aplicación, ahora creo la clase, luego hago el cálculo y sigo. ¡No! Nos encontramos ante un tratamiento concurrente, una ejecución en paralelo de algorismos y cada agente se comporta como un programilla independiente que se comunica con otros programillas independientes. Así que JADE nos proporciona una clase que lleva un método main, encargado de dar vida a los agentes. En una POA, hay pequeños main (por decirlo de alguna manera), no hay un método principal.

Con esto, me ha surgido una duda. ¿Si debo tener varias tareas ejecutándose, un cada agente tiene una tarea diferente, cómo ejecuto la aplicacion si no hay una clase con un main?
La respuesta es tan sencilla como escribir el nombre de todos los agentes que se haya implementado, a razón de parámetros de la instrucción java. Algo como:
java jade.Boot -gui @nombre_agente_1:@classe_java_agente_1(@parámetros) @nombre_agente_2:@classe_java_agente_2(@parámetros) @nombre_agente_n:@classe_java_agente_n(@parámetros)

P.D.: Lo que va entre paréntesis no lo he comentado antes. Són los parámetros que se le puede pasar a un agente, separados por un espacio en blanco. Desde código se recogen con el método Object[] getArguments() de la clase jade.core.Agent

Permalink 13:02:11, por fran_jo Email , 210 palabras, 1479 vistas   Spanish (ES)
Categorías: proyecto, agentes

monitorizar ciclo de vida

El Agente software se comporta a modo de hilo de ejecución/thread. Sabiendo esto, uno se puede imaginar que hacer una traza del código es un poco difícil, debido a su carácter concurrente, que no se sabe si ha pasado por aquí, si está interrumpido... y más si aportas al thread una atonomia a base de estados, que si active, wait, suspended, running, blocked - los tres primeros estados pertenece al agente y los dos últimos al comportemiento -.

Con esto, para ejecutar código java con agentes hay que hacer lo siguiente: (utilizo @ para hacer referencia a varibles que se deben utilizar.)
java jade.Boot -gui @nombre_agente:@classe_java_agente(@parámetros)
(una manera sencilla de hacerlo, hay otras opciones que quien quiera aprenderlas que mire documentación. De momento no las voy a utilizar, así que, de momento no escribiré sobre ello.)

Si os fijais, he incluido la opción -gui. Esta opción lanza el agente RMA (Agente de Monitorizacion Remota o Remote Monitoring Agent para los cultos) permite ver que agentes estan activos, mensajes que se envian... Aún no sé muy bien cómo funciona la monitorización de agentes, por lo que no puedo explicar nada más.

Seguiré aprendiendo

02.10.07

Permalink 13:11:06, por fran_jo Email , 292 palabras, 1491 vistas   Spanish (ES)
Categorías: proyecto, agentes

programacion orientada a agentes

De lo que he podido entender de la documentación que he leído acerca de agentes, y acerca de JADE.
Un Agente es un objeto que actua siguiendo uno o varios comportamientos. Al objeto Agent se le añaden objetos Behaviour, los cuales llevan programado la lógica de un algorismo concreto, y se puede comportar cómo un SimpleBehaviour o un CyclicBehaviour, ejecutándose una sola vez durante la vida del agente o ejecutándose repetidamente, respectivamente. En código, y de manera esquemática seria algo cómo:

public class NuestroAgente extends Agent
{
...
protected void setup()
{
//inicializar variables, crear mensajes ACL
addBehaviour(new SmartBehaviour(this));
...
}

private class SmartBehaviour extends SimpleBehaviour
{
...
public void action()
{
//lógica del algorismo que se debe ejecutar
}
}
}

Como un Agente lleva asociados comportamientos que debe utilizar - la classe Agent puede tener varios Behaviours, en la jerga se llama pool de Behaviour - se pueden implementar dentro de la classe agente que hayamos creado.
El método action() es el encargado de ejecutar los pasos del comportamiento del agente, mientras que el método setup() se encarga de inicializar variables de estado que pueda usar un agente.
Habeis leído algo de ACL ¿qué es? Pues simplemente hace mención a la classe ACLMessage que se encarga de gestionar los mensajes que se van a pasar los agentes entre si.

Con esto, y sabiendo que un Agente se comporta como un Thread - siempre está ahí hasta que lo matas - el estilo de programación cambia bastante. De usar simples classes controladoras, por las que pueda pasar el flujo importante de una aplicación, podemos tener varios objetos Agente pululando y ejerciendo el control de la aplicación o código servidor o cómo gusten.

¡Continuará! :D

01.10.07

Permalink 21:02:43, por fran_jo Email , 0 palabras, 111 vistas   Spanish (ES)
Categorías: terraza

vistas

:: Siguiente página >>

Blogs @ Club Developers

| Siguiente >

Julio 2009
Lun Mar Mié Jue Vie Sáb Dom
<< <     
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

Buscar

Otros

¿Quién está Online?

  • Usuarios invitados: 1

powered by
b2evolution