SlideShare uma empresa Scribd logo
1 de 70
AGENTES INTELIGENTES
CON JAVA NETBEANS.
JADE.
Octavio C. Abundez Ramírez
email: gamabun4@gmail.com
Facebook: Octavio Abundez
• Taller: Agentes Inteligentes
• México, D.F., 29-30 de Octubre de 2015
HISTORIA DE LA PROGRAMACIÓN
LENGUAJE MÁQUINA
PROGRAMACIÓN
ESTRUCTURADA
PROGRAMACIÓN
ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA
A OBJETOS DISTRIBUIDOS
PROGRAMACIÓN
ORIENTADA A
COMPONENTES
PROGRAMACIÓN
ORIENTADA A SERVICIOS
Constituyen subprogramas:
Procedimientos, Funciones (Basic, Pascal,
C, Fortran, )
Objeto = + Estado + Comportamiento
Constituido por: objetos, clases, herencia,
polimorfismo, encapsulación (C ++, Java,
C #, .Middleware (objetos RMI distribuidos a
través de múltiples máquinas, CORBA,
JMS, .
Componente disponible para otras aplicaciones
a través de protocolos heterogéneos remotos
(http) datos de llevar: XML, JSON => JABÓN y
REST)
Servicio de Inteligencia + + aprendizaje +
Lenguaje binario, cada familia tiene su propio cpu
PROGRAMACIÓN
ORIENTADA A AGENTES
Objetos distribuidos, reutilizable,
configurables, Intercambiable, escalable y
móvil: recipiente (EJB)
1- ¿QUÉ ES UN AGENTE?
No existe una definición universalmente aceptada del
término agente.
“Un agente es algo que se puede ver como
Percibir entorno a través de sensores y
actuar
sobre ese ambiente a través de sensores."
2.- ¿QUÉ ES UN AGENTE?
Los agentes inteligentes son entidades de
software que llevan a cabo un conjunto de
operaciones por cuenta de un usuario u otro
programa con cierto grado de independencia
o autonomía, y al hacerlo, emplean algún
conocimiento o representación de metas o
deseos del usuario."
CARACTERÍSTICAS DE UN AGENTE
Un agente puede ser un
proceso,
un robot, un ser humano, etc
...Autonomía. Capacidad de actuar sin
intervención humana directa o de otros agentes
Sociabilidad. Puede comunicarse con otros
agentes con capacidades similares a estar vivo
Capacidad de decisión. Es independiente para
alcanzar los objetivos
Razonan. Tiene unos objetivos específicos y
siempre intenta llevarlos a cabo.
CARACTERÍSTICAS DE UN AGENTE
 Aprenden.
 Veracidad. No comunica información falsa
intencionadamente.
 Benevolencia. No tiene objetos
contradictorios.
 Pueden organizarse. Un agente es una
entidad.
 Desplazarse de un nodo a otro.
1.- APLICACIONES MAS(SISTEMA MULTI AGENTE)
 Simulación de fenómenos complejos,
 Sistemas paralelos y distribuidos
 Robótica, Ingeniería Industrial y
Telecomunicaciones
 Videojuegos Cine (Animación 3D)
 El comercio electrónico, e-learning
 Urbanización y la gestión del tráfico
por carretera
 Finanzas: Trading Auto
 Web Semántica
1.- APLICACIONES MAS(SISTEMA MULTI AGENTE)
2.- APLICACIONES MAS(SISTEMA MULTI AGENTE)
 Sociología, la física de partículas, Química,
Robótica,
En sociología, establece diferentes agentes de
componentes. Mediante restricciones, podemos tratar
de
entender lo que va a ser el componente más efectivo
lograr un resultado deseado (la construcción de
puentes).
Incluso permite experimentar con escenarios que no
sería
factible en las poblaciones reales, si por razones
técnicas
1.- ¿QUÉ ES ?
Jade es básicamente dos cosas:
 Una plataforma: que permite “VIVIR” y
“CONVIVIR” a los agentes dentro de ella.
 Un conjunto de herramientas para el
desarrollo de agentes y sistemas de forma
rápida.
 Totalmente realizado en Java.
(Portabilidad y
Movilidad).
 Software libre distribuido por TILAB en
código
Fuente bajo LPGL. ttp://jade.tilab.com/
 El proyecto JADE es una iniciativa de TILAB
 JADE cumple las especificaciones FIPA
2.- ¿QUÉ ES ?
JADE es un middleware que facilita el desarrollo de:
1. Arquitectura: Aplicaciones Multi-agente
Peer-to-Peer. Integración de diferentes
aplicaciones,
incluso con plataformas de diferentes
propietarios.
Foundation for Intelligent Physical Agents
(FIPA) http://www.fipa.org
¿QUÉ ES ?
Servicios de agentes: ciclo de vida,
páginas
blancas, páginas amarillas, transporte de
mensajes,...
:
¿QUÉ ES ?
2.Lenguaje de comunicación empleado FIPA-
ACL:transporte y análisis de mensajes Peer-to-
peer.,seguridad.
3. Planificación de las tareas del agente.
Herramientas gráficas para la monitorización,
logs,
depuración. Conjunto de herramientas gráficas
que
soportan la depuración y ejecución de agentes
(RMA, sniffer, ...)
¿QUÉ ES ?
1. Una aplicación basada en JADE consta
de
componentes activas denominadas
Agentes.
2. Cada agente tiene un nombre
(identificador)
único.
3. Cada agente es un participante (peer)
capaz
de comunicar bidireccionalmente con otros
¿QUÉ ES ?
¿QUÉ ES ?
112
3
4
 The Foundation for
Intelligent Physical
Agents (FIPA) es la parte
del desarrollo y
configuración para
estandares heterogeneos
de computadoras e
interactuen agentes
basados en sistemas
¿QUÉ ES ?
Programación de java netbeans con jade
1.Descargar la aplicación JADE del siguiente
link: http://jade.tilab.com
2. Al menu Download da click a:
3. Da click a: Continue y I AGREE
4. Da click a ¨jadeAll¨
Instalación de
Descargamos el fichero (JADE-all-3.7.zip)
Descomprimimos el fichero y nos salen cuatro
nuevos ficheros:
•JADE-doc-3.7.zip: la documentacion
javadoc, el manual del administrador, el del
programador y un tutorial.
•JADE-src-3.7.zip: el codigo fuente sin
compilar.
•JADE-bin-3.7.zip: el codigo ya compilado y
listo para ser invocado.
JADE-e examples-3.7.zip: ejemplos de uso
de la plataforma.
Instalación de
5. Descomprimeel archivode jade
6.Creauna carpetaen
la unidadc:jade
Instalación de
7. Extraigomis
archivos a la
carpeta c:jade
8.Seleccionael archivo «JADE-bin-
4.3.3» y lo extraigo ala carpeta
reciénextraída
«c:jade»
Instalación deInstalación de
9.Selecciono –Copio todo el contenido de la
carpetay la mando a …
Programación de java netbeans con jade
10. Ir a PANEL DECONTROLSistema
Config.Avanzada del Sistema–Inicio+Pausa-Da
click al botón VARIABLES DE ENTORNO
como se muestraen
la figura:
A) En la sección
Variables de sistema
Da click al botón
Nuevo
B) Escribe elnombre:
Instalación de
Programación de java netbeans con jade
11.Ahorave ala lineade comandode WINDOWS.Ir aINICIO- Ejecutar--Escribe:cmdDireccionate
do:
12. Captura el siguiente comando: java jade.Boot -gui
12. Escribe la siguientedirección para acceder a JADE 
Instalación de
13. Seabrirá la aplicación deJADE COMO SE muestra:
14. Cierra jade
Instalación de
PROGRAMA_1
1.Abre Java netbeans
2.Crea el proyecto: Dia1
3.Crea el paquete: baseA
4.Crea la clase: HolaMundo
5.Ir a libreríasclick botón
derecho y seleccionaadd
JAR/Folder
6. Busca la librería ”jade.jar”
c:jadelibjade.jar
7. Da click al botón abrir
PROGRAMA_1
8. Captura el siguiente código en la clase:
HolaMundo
import jade.core.Agent;
public class HolaMundo extends Agent
{ protected void setup()
{ System.out.println("Hola Mundo");
System.out.println("Mi nombre local
es"+getLocalName());
System.out.println("Mi GUI es:"+getAID().getName());
System.out.println("Primer ejercicio de jade ;)");
}
}
PROGRAMA_1
9. Corrige los errores en rojo, colocando tu puntero
a lado izquierdo de los focos de advertencia y
señala “add import…”
 10. Ir a SourcePackages, botón
izquierdopropierties-run y anota lo siguiente:
 Da click al botón de ejecutar:
 Se abre Jade.
CONFIGURAR
12.Repite el paso anterior, sólo modifica en lo
siguiente:
13. Da click al botón de ejecutar:
14. Aparece lo siguiente en consola de java netbans
CONFIGURAR
EJECUTARLO EN JAVA
QUE PASA EN
Aparece abierto un container
con el nombre que le dimos al
agente, sea !Hola! . Vamos a
ejecutar nuestro agente desde
JADE.
a) Ir al Container, click botón
derecho y selecciona Start
New Agent
b) Llena los campos como aparece
en la figura:
c) Da click al
Botón “OK”
EJECUTARLO
Qué apareció en java netbeans y en jade?
EJECUTARLO POR MS-DOS
Necesitamos la ubicación de la clase
HolaMundo.java
1.En javaNetbeans ir a la clase HolaMundo, botón
derecho del ratón –propierties-RUNTIME
CLASSPATH, copia la ruta
después del 1er ; hasta el final
2. Abre ms-dos(Inicio+R)cmd(enter)cd (alt+92)
Cierra jade ylas aplicaciones corriendo en java netbeans
EJECUTARLO POR MS-DOS
3. Captura los siguientes comandos para abrir jade.
a)Ir a raíz b)Cambia ala ruta de copiaste de java y abrir
JADE
EJECUTARLO POR MS-DOS
4. Abrir ms-dos, seguir el procedimiento anterior hasta:
a)Ir a raíz cd 
b)Cambia ala ruta de copiaste de java
cd c:jadesrcexamplesDia1buildclasses
c) Escribe el siguiente comando para abrir ejecutar en ms-
dos el programa “HolaMundo”
Ejecución Contenedor Agente - Paquete
- Clase
EJECUTARLO POR MS-DOS
4. QUE SUCEDIÓ EN LA
EJECUCIÓN EN MS-DOS ?
5. QUE SUCEDIÓ EN JADE?
EJERCICIO# 1 HOLAMUNDO2
Instrucciones:
A)Abre un documento en word y toma evidencias de
tu trabajo por medio de una foto(impr-pant) a cada
resultado que se te pide en el ejercicio.
B) El instructor irá a tu lugar si tienes dudas y a tomar
nota de tu desempeño en caso de que hallas
concluido el ejercicio.
Nota: Al finalizar la sesión 1. Podrás sacar una copia del
archivo de la exposición para tu estudio y análisis.
EJERCICIO# 1 HOLAMUNDO2
1. En el mismo proyecto, crea otra clase llamada:
HolaTuNombre
2. Captura el siguiente código:
import jade.core.Agent;
import jade.core.AID;
public class HolaTuNombre extends Agent
{ protected void setup()
{System.out.println("Hola! El agente "+getAID().getName()+" está
listo.");
System.out.println(“Me llamo:TuNombre y aprendo las bases de
agentes.");
}
}
EJERCICIO# 1. HOLAMUNDO2
3. Correrlo por java netbeans-(Inserta imagen en word).Total
8 Fotos
Cuando abres jade por run
Cuando llamas a tu agente por run
Despliega el resultado en consola de java
4. Correrlo por JADE (Inserta imagen en word)
Por Start le pones al agente :TuNombre, por run
Despliega el resultado en consola de java
5. Correrlo por ms-dos (Inserta imagen en word)
Cuando abres jade por msdos
Cuando llamas a tu agente por msdos
Despliega el resultado por msdos
PROGRAMA_2
package baseA;
import jade.core.Agent;
import static jade.tools.rma.StartDialog.getArguments;
public class Hola3 extends Agent
{ protected void setup()
{ System.out.println("Hola Mundo! me
llamo"+getAID().getName());
Object[] args = getArguments();
if (args != null)
{System.out.println("Mis argumentos son:");
for (int i = 0; i < args.length; ++i)
{System.out.println("-"+args[i]);
}
}
}
}
package baseA;
import jade.core.Agent;
import static jade.tools.rma.StartDialog.getArguments;
public class Hola3 extends Agent
{ protected void setup()
{ System.out.println("Hola Mundo! me
llamo"+getAID().getName());
Object[] args = getArguments();
if (args != null)
{System.out.println("Mis argumentos son:");
for (int i = 0; i < args.length; ++i)
{System.out.println("-"+args[i]);
}
}
}
}
PROGRAMA_2
PROGRAMA_2
1. Correrlo por java netbeans-(Inserta imagen en
word).Total 8 Fotos
Cuando abres jade por run
Cuando llamas a tu agente por run
Despliega el resultado en consola de java
2. Correrlo por JADE (Inserta imagen en word)
Por Start le pones al agente :TuNombre, por run
Despliega el resultado en consola de java
3. Correrlo por ms-dos (Inserta imagen en word)
Cuando abres jade por msdos
Cuando llamas a tu agente por msdos
Despliega el resultado por msdos
PROGRAMA
Definir una clase Java que representa al agente
(la cual debe heredar de la
clase jade.core.Agent).
 Implementar los comportamientos que va a
manifestar.
Un agente JADE cumple las siguientes
características:
Tiene un nombre único en el entorno de
ejecución.
Se implementa como un único hilo de ejecución
(single-threaded).
PROGRAMACIÓN EN JADE
Creación de agentes
.Un agente se crea heredando de la clase jade.core.Agent class y
reescribiendo el método setup().
•Cada instancia de agente se idendifica por un AID
(jade.core.AID).
•Un AID se compone de un nombre único más una dirección.
•Un agente puede recuperar su AID mediante el método
getAID() de la clase Agent
PROGRAMACIÓN EN JADE
Los nombres son <local-name>@<platform-name>
El nombre completo debe ser globalmente único.
El nombre de la plataforma por defecto es
<main-host>:<main-port>/JADE
El nombre de la plataforma puede establecerse con la
opción – name
Dentro de una plataforma JADE pueden ser designados
sólo por susnombres.
Dado el nombre de un agente su AID puede ser creado
como
AID id = new AID(localname, AID.ISLOCALNAME);
AID id = new AID(name, AID.ISGUID);
Las direcciones incluidas en un AID son las de los MTPs y se
utilizan
SOLO para comunicar entre agentes de diferentes plataformas
CONTENEDORES Y PLATAFORMAS
-Un Solo contenedor
principal especial debe
estar siempre activo en
una plataforma y todos
los otros contenedores
registrarse con él tan
pronto como empiezan.
MAIN CONTAINER
•AMS (Sistema de
Gestión de Agente)
-Proporciona El servicio
de nombres y representa
la autoridad en la
plataforma.
• DF (Directorio Facilitador)
-Proporciona Un servicio de páginas amarillas por
medio de los cuales un agente puede encontrar otros
agentes que prestan los servicios que requiere para
lograr sus metas.
• RMA (Remote Management Agent)
-Actuando como consola gráfica para la gestión de la
plataforma y el control.
DIRECTORY FACILITATOR
Proporciona un servicio de páginas amarillas por
medio de los cuales un agente puede encontrar
otros agentes que prestan los servicios que
requiere para lograr sus metas.
REMOTE MONITORING AGENT
• Proporcionar a
la interfaz gráfica
de usuario para
controlar el ciclo
de vida de los
agentes
• Canal de comunicación del agente (ACC)
- Agente a Agente
- Plataforma agente a Plataforma Agente
Message Transport System
•Agent identifier
–
<nickname>@<platform_name>
Un objeto es reactiva
Un objeto es una entidad pasiva
(o reactiva). Si nadie solicita el valor
de un atributo o activa un método de
el objeto, entonces no Pasa nada.
Un agente es ProActif
Un agente tiene, además de los
Atributos y métodos, procesos
Internos función, incluso en
ausencia de tensiones externas. Un
agente puede actuar, por tanto,
incluso si nadie le pregunta nada
DUMMY AGENT
Herramienta útil para la depuración
• Permite la interacción con otros agentes de envío,
recepción y visualización de mensajes de ACL
• ¿Cómo poner en marcha:
-Desde La línea de comandos
java jade.Boot da:
jade.tools.DummyAgent.DummyAgent
-Desde El GUI RMA
• Elegir "Herramientas  Iniciar DummyAgent"
• Seleccione "Iniciar nueva Agent" y proporcionar
jade.tools.DummyAgent.DummyAgent como el
nombre de la clase
DUMMY AGENT
Cuando un agente sniff (o un grupo), algunos mensajes
son enviados a el agente, son visibles en una especie de
diagrama UML de secuencia
• Cuando un agentes o contenedores son creados o
destruidos, el Agente Sniffer es informado por la AMS
• ¿Cómo poner en marcha:
-Desde La línea de comandos
java jade.Boot snif: jade.tools.sniffer.Sniffer
-Desde El GUI RMA
• Elegir "Herramientas  Iniciar Sniffer"
• O seleccione "Iniciar nueva Agent" y proporcionar
jade.tools.sniffer.Sniffer como el nombre de la clase
SNIFFER AGENT
SNIFFER AGENT
SNIFFER AGENT
• DF es un servicio de páginas amarillas: agentes
pueden registrar sus servicios o buscar en el
DF
• En cada plataforma, hay al menos un DF
• Cómo iniciar la interfaz gráfica de usuario:
-Desde El GUI RMA
• Elegir "Herramientas  Mostrar la GUI DF"
INTROSPECTORAGENT
Monitoriza el ciclo de vida de un agente: mensajes
enviados recibido, cola / comportamiento
• ¿Cómo poner en marcha:
-Desde El GUI RMA
• elegir "Herramientas -Iniciar IntrospectorAgent"
EL CICLO DE VIDA DE LOS AGENTES Y LA MOVILIDAD.
INICIADO: el objeto Agente está construido, pero no se ha
registrado en sí pero con la AMS, no tiene nombre ni una
dirección y no puede comunicarse con otros agentes.
ACTIVO: el objeto Agente se ha registrado en el AMS, tiene
un
nombre regular y la dirección y puede acceder a todas las
diversas características JADE.
SUSPENDIDO: el objeto del agente se detiene en ese
momento.
su rosca interna se suspende y no se está ejecutando el
comportamiento del agente. doSuspend ()
ESPERA: el objeto Agente está bloqueado, esperando algo. Su
rosca
interna es durmiendo en un monitor de Java y se despierta
cuando
se cumple alguna condición (por lo general, cuando un mensaje
llega).doWait ()
ELIMINADO: el agente es definitivamente muerto. La rosca
interna
ha terminado su ejecución y el Agente no es más registrado en el
AMS.
TRÁNSITO: un agente móvil entra en este estado mientras se
está
migrando a la nueva ubicación. Los sistema continúa para
amortiguar los mensajes que luego serán enviados a su nueva
ubicación.
EL CICLO DE VIDA DE LOS AGENTES Y LA MOVILIDAD.
EL CICLO DE VIDA DE LOS AGENTES Y LA MOVILIDAD.
CREACIÓN DE AGENTES
Hay dos formas de ejecutar un
agente: desde el GUI de JADE y
desde la línea de comandos.
Desde la línea de comandos.
java jade.Boot –container <nombre_agente>:
<paquete_.class>
Ejecución remota de agentes
jade.Boot -container -host nombreHost
<nombre_agente>:<ruta_agente.class>
EJERCICIOS 2ª PARTE 
1. Captura los ejercicios y ejecutalos desde
java
Netbeans.
2. Imprime en pantalla el resultado que
obtuviste.
ENTONCES…¿QUÉ ES UN AGENTE?
 "Los agentes autónomos son sistemas
computacionales que habitan en algún
complejo entorno dinámico, sienten y actúan
de forma autónoma en este entorno, y al
hacerlo, se dan cuenta de un conjunto de
metas o tareas para las que han sido
diseñados."
QUÉ ES UN COMPORTAMIENTO EN JADE?
Un comportamiento o behaviour hace referencia a una
funcionalidad que incorpora el agente.
Los comportamientos especifican tareas o servicios que
realiza un agente para lograr sus objetivos. Cada
comportamiento puede realizar una tarea simple como
"Envia este mensaje" o "compra X " aunque también se
pueden crear comportamientos compuestos.
Cada tarea del agente sará una instancia de una clase
que deber heredar de la clase Behaviour.
class MiComportamiento extends Behaviour{ … }
LIBRERÍA: jade.core.behaviours.*
QUÉ ES UN COMPORTAMIENTO EN JADE?
Los agentes están programados en base a sus
comportamientos.
La programación basada en comportamientos debe realizar
los
siguientes pasos:
1. Determinar qué debe ser capaz de hacer el agente.
2. Asociar cada funcionalidad con un comportamiento.
3. Escoger el tipo de comportamientos
4. Dejar a JADE la tarea del scheduling (un solo
5. comportamiento se está ejecutando en cada
instante).
En el ejemplo ANTERIOR se puede ver como se añade
un comportamiento desde el método setup() del
QUÉ ES UN COMPORTAMIENTO EN JADE?
 Además de añadir nuevos comportamientos,
también se pueden eliminar comportamientos de
un agente con el
método removeBehaviour(Behaviour).
Así, si en el ejemplo anterior quisiéramos borrar el
primer comportamiento desde el segundo
comportamiento bastaría con hacer una llamada
a removeBehaviour() dentro del método action del
segundo comportamiento:

Mais conteúdo relacionado

Mais procurados

Jade Agentes inteligentes básico
Jade Agentes inteligentes básicoJade Agentes inteligentes básico
Jade Agentes inteligentes básicoOctavio Abundez
 
Diagrama componentes
Diagrama componentesDiagrama componentes
Diagrama componentesmarianela0393
 
Metodología de la solución de problemas po equipo5
Metodología de la solución de problemas po equipo5Metodología de la solución de problemas po equipo5
Metodología de la solución de problemas po equipo5mendozaperla
 
Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetosyoiner santiago
 
Métodos POO
Métodos POOMétodos POO
Métodos POO1da4
 
Diagrama uml ing software i promecys
Diagrama uml ing software i promecysDiagrama uml ing software i promecys
Diagrama uml ing software i promecysLeonel Narvaez Ruiz
 
Lectura 3 Modelo De Analisis
Lectura 3   Modelo De AnalisisLectura 3   Modelo De Analisis
Lectura 3 Modelo De Analisisguest0a6e49
 
Requerimientos de Usabilidad
Requerimientos de  UsabilidadRequerimientos de  Usabilidad
Requerimientos de Usabilidadgcaicedo
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clasesNedoww Haw
 
modelos del proceso del software
 modelos del proceso del software  modelos del proceso del software
modelos del proceso del software Brihany Rossell
 
Diagramas De Despligue Uml
Diagramas De Despligue UmlDiagramas De Despligue Uml
Diagramas De Despligue Umlarcangelsombra
 
Jose luisroisic6a 20042015
Jose luisroisic6a 20042015Jose luisroisic6a 20042015
Jose luisroisic6a 20042015JLuis Reyes Olea
 
Paradigmas programacion
Paradigmas programacionParadigmas programacion
Paradigmas programacionLuis Peralta
 

Mais procurados (20)

Jade Agentes inteligentes básico
Jade Agentes inteligentes básicoJade Agentes inteligentes básico
Jade Agentes inteligentes básico
 
Diagrama componentes
Diagrama componentesDiagrama componentes
Diagrama componentes
 
Metodología de la solución de problemas po equipo5
Metodología de la solución de problemas po equipo5Metodología de la solución de problemas po equipo5
Metodología de la solución de problemas po equipo5
 
Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetos
 
Paradigmas de la programación
Paradigmas de la programación Paradigmas de la programación
Paradigmas de la programación
 
tecnicas de revisión del software
tecnicas de revisión del softwaretecnicas de revisión del software
tecnicas de revisión del software
 
Métodos POO
Métodos POOMétodos POO
Métodos POO
 
Conceptos Fundamentales de Base de Datos
Conceptos Fundamentales de Base de DatosConceptos Fundamentales de Base de Datos
Conceptos Fundamentales de Base de Datos
 
Diagrama uml ing software i promecys
Diagrama uml ing software i promecysDiagrama uml ing software i promecys
Diagrama uml ing software i promecys
 
Lectura 3 Modelo De Analisis
Lectura 3   Modelo De AnalisisLectura 3   Modelo De Analisis
Lectura 3 Modelo De Analisis
 
Requerimientos de Usabilidad
Requerimientos de  UsabilidadRequerimientos de  Usabilidad
Requerimientos de Usabilidad
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Diagrama de Componentes
Diagrama de ComponentesDiagrama de Componentes
Diagrama de Componentes
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
modelos del proceso del software
 modelos del proceso del software  modelos del proceso del software
modelos del proceso del software
 
Diagramas De Despligue Uml
Diagramas De Despligue UmlDiagramas De Despligue Uml
Diagramas De Despligue Uml
 
Jose luisroisic6a 20042015
Jose luisroisic6a 20042015Jose luisroisic6a 20042015
Jose luisroisic6a 20042015
 
Ingenieria web
Ingenieria webIngenieria web
Ingenieria web
 
Paradigmas programacion
Paradigmas programacionParadigmas programacion
Paradigmas programacion
 
Pilares de la POO
Pilares de la POOPilares de la POO
Pilares de la POO
 

Destaque

La herramienta de desarrollo de agentes JADE
La herramienta de desarrollo de agentes JADELa herramienta de desarrollo de agentes JADE
La herramienta de desarrollo de agentes JADEpcuestaesei
 
Presentacion servlets
Presentacion servletsPresentacion servlets
Presentacion servletssrcid
 
Guia practica condicionales en java con NetBeans 01
Guia practica condicionales en java con NetBeans 01Guia practica condicionales en java con NetBeans 01
Guia practica condicionales en java con NetBeans 01Emerson Garay
 
Guia practica funciones en java con NetBeans
Guia practica funciones en java con NetBeansGuia practica funciones en java con NetBeans
Guia practica funciones en java con NetBeansEmerson Garay
 
EJEMPLOS DESARROLLADOS
EJEMPLOS DESARROLLADOSEJEMPLOS DESARROLLADOS
EJEMPLOS DESARROLLADOSDarwin Durand
 
Presentación de Netbeans
Presentación de NetbeansPresentación de Netbeans
Presentación de NetbeansMichelle Peña
 

Destaque (12)

La herramienta de desarrollo de agentes JADE
La herramienta de desarrollo de agentes JADELa herramienta de desarrollo de agentes JADE
La herramienta de desarrollo de agentes JADE
 
Presentacion servlets
Presentacion servletsPresentacion servlets
Presentacion servlets
 
Jade1 agentes
Jade1 agentesJade1 agentes
Jade1 agentes
 
SMA_Agentes
SMA_AgentesSMA_Agentes
SMA_Agentes
 
Palabras reservadas de netbeans
Palabras reservadas de netbeansPalabras reservadas de netbeans
Palabras reservadas de netbeans
 
Semana III
Semana IIISemana III
Semana III
 
Guia practica condicionales en java con NetBeans 01
Guia practica condicionales en java con NetBeans 01Guia practica condicionales en java con NetBeans 01
Guia practica condicionales en java con NetBeans 01
 
Epoc
EpocEpoc
Epoc
 
Guia practica funciones en java con NetBeans
Guia practica funciones en java con NetBeansGuia practica funciones en java con NetBeans
Guia practica funciones en java con NetBeans
 
Curso basico de base de datos con java
Curso basico de base de datos con javaCurso basico de base de datos con java
Curso basico de base de datos con java
 
EJEMPLOS DESARROLLADOS
EJEMPLOS DESARROLLADOSEJEMPLOS DESARROLLADOS
EJEMPLOS DESARROLLADOS
 
Presentación de Netbeans
Presentación de NetbeansPresentación de Netbeans
Presentación de Netbeans
 

Semelhante a Jade 1 Agents principios básicos

PLANTEL 7 EL MARQUES.docx
PLANTEL 7 EL MARQUES.docxPLANTEL 7 EL MARQUES.docx
PLANTEL 7 EL MARQUES.docxCitlaliSantos3
 
Presentacion android mistela&tweets
Presentacion android mistela&tweetsPresentacion android mistela&tweets
Presentacion android mistela&tweetsJorge Soro
 
Tutorial de-eclipse-cltt-mpr-dlnl
Tutorial de-eclipse-cltt-mpr-dlnlTutorial de-eclipse-cltt-mpr-dlnl
Tutorial de-eclipse-cltt-mpr-dlnlDiana10919
 
Tutorial de-eclipse-cltt-mpr-dlnl
Tutorial de-eclipse-cltt-mpr-dlnlTutorial de-eclipse-cltt-mpr-dlnl
Tutorial de-eclipse-cltt-mpr-dlnlMichelle Peña
 
Deletreando Android
Deletreando AndroidDeletreando Android
Deletreando Androidjezabelink
 
Tarea 1 (actividades del libro)
Tarea 1 (actividades del libro)Tarea 1 (actividades del libro)
Tarea 1 (actividades del libro)emmanuelsolis16
 
002 Comohacerun J Clic
002 Comohacerun J Clic002 Comohacerun J Clic
002 Comohacerun J ClicMaruja
 
Programación en Java (I)
Programación en Java (I) Programación en Java (I)
Programación en Java (I) Cristian
 
Correcion taller
Correcion tallerCorrecion taller
Correcion tallervienco
 
Pre karla
Pre karlaPre karla
Pre karlaJimkaa
 
Herramientas interactivas
Herramientas interactivasHerramientas interactivas
Herramientas interactivasDANIELA AGUIRRE
 
Ser Referente Tecnológico en la escuela. Prof. Miriam L. Porta
Ser Referente Tecnológico en la escuela. Prof. Miriam L. PortaSer Referente Tecnológico en la escuela. Prof. Miriam L. Porta
Ser Referente Tecnológico en la escuela. Prof. Miriam L. Portammllpp
 

Semelhante a Jade 1 Agents principios básicos (20)

PLANTEL 7 EL MARQUES.docx
PLANTEL 7 EL MARQUES.docxPLANTEL 7 EL MARQUES.docx
PLANTEL 7 EL MARQUES.docx
 
Presentacion android mistela&tweets
Presentacion android mistela&tweetsPresentacion android mistela&tweets
Presentacion android mistela&tweets
 
Tutorial sobre Eclipse
Tutorial sobre EclipseTutorial sobre Eclipse
Tutorial sobre Eclipse
 
Tutorial de-eclipse-cltt-mpr-dlnl
Tutorial de-eclipse-cltt-mpr-dlnlTutorial de-eclipse-cltt-mpr-dlnl
Tutorial de-eclipse-cltt-mpr-dlnl
 
Tutorial de-eclipse-cltt-mpr-dlnl
Tutorial de-eclipse-cltt-mpr-dlnlTutorial de-eclipse-cltt-mpr-dlnl
Tutorial de-eclipse-cltt-mpr-dlnl
 
Iphone
IphoneIphone
Iphone
 
Deletreando Android
Deletreando AndroidDeletreando Android
Deletreando Android
 
Tarea 1 (actividades del libro)
Tarea 1 (actividades del libro)Tarea 1 (actividades del libro)
Tarea 1 (actividades del libro)
 
Sad tema2 pen_test_iii
Sad tema2 pen_test_iiiSad tema2 pen_test_iii
Sad tema2 pen_test_iii
 
002 Comohacerun J Clic
002 Comohacerun J Clic002 Comohacerun J Clic
002 Comohacerun J Clic
 
Programación en Java (I)
Programación en Java (I) Programación en Java (I)
Programación en Java (I)
 
Ejercicios java parte 1
Ejercicios java parte 1Ejercicios java parte 1
Ejercicios java parte 1
 
Lab1-POO
Lab1-POOLab1-POO
Lab1-POO
 
Correcion taller
Correcion tallerCorrecion taller
Correcion taller
 
Unidad 2. Lenguaje orientado a objetos
Unidad 2. Lenguaje orientado a objetosUnidad 2. Lenguaje orientado a objetos
Unidad 2. Lenguaje orientado a objetos
 
Terminal fase 2
Terminal fase 2Terminal fase 2
Terminal fase 2
 
Pre karla
Pre karlaPre karla
Pre karla
 
Herramientas interactivas
Herramientas interactivasHerramientas interactivas
Herramientas interactivas
 
Ser Referente Tecnológico en la escuela. Prof. Miriam L. Porta
Ser Referente Tecnológico en la escuela. Prof. Miriam L. PortaSer Referente Tecnológico en la escuela. Prof. Miriam L. Porta
Ser Referente Tecnológico en la escuela. Prof. Miriam L. Porta
 
1 introduccion a_java_1er_parte
1 introduccion a_java_1er_parte1 introduccion a_java_1er_parte
1 introduccion a_java_1er_parte
 

Jade 1 Agents principios básicos

  • 1. AGENTES INTELIGENTES CON JAVA NETBEANS. JADE. Octavio C. Abundez Ramírez email: gamabun4@gmail.com Facebook: Octavio Abundez • Taller: Agentes Inteligentes • México, D.F., 29-30 de Octubre de 2015
  • 2. HISTORIA DE LA PROGRAMACIÓN LENGUAJE MÁQUINA PROGRAMACIÓN ESTRUCTURADA PROGRAMACIÓN ORIENTADA A OBJETOS PROGRAMACIÓN ORIENTADA A OBJETOS DISTRIBUIDOS PROGRAMACIÓN ORIENTADA A COMPONENTES PROGRAMACIÓN ORIENTADA A SERVICIOS Constituyen subprogramas: Procedimientos, Funciones (Basic, Pascal, C, Fortran, ) Objeto = + Estado + Comportamiento Constituido por: objetos, clases, herencia, polimorfismo, encapsulación (C ++, Java, C #, .Middleware (objetos RMI distribuidos a través de múltiples máquinas, CORBA, JMS, . Componente disponible para otras aplicaciones a través de protocolos heterogéneos remotos (http) datos de llevar: XML, JSON => JABÓN y REST) Servicio de Inteligencia + + aprendizaje + Lenguaje binario, cada familia tiene su propio cpu PROGRAMACIÓN ORIENTADA A AGENTES Objetos distribuidos, reutilizable, configurables, Intercambiable, escalable y móvil: recipiente (EJB)
  • 3. 1- ¿QUÉ ES UN AGENTE? No existe una definición universalmente aceptada del término agente. “Un agente es algo que se puede ver como Percibir entorno a través de sensores y actuar sobre ese ambiente a través de sensores."
  • 4. 2.- ¿QUÉ ES UN AGENTE? Los agentes inteligentes son entidades de software que llevan a cabo un conjunto de operaciones por cuenta de un usuario u otro programa con cierto grado de independencia o autonomía, y al hacerlo, emplean algún conocimiento o representación de metas o deseos del usuario."
  • 5. CARACTERÍSTICAS DE UN AGENTE Un agente puede ser un proceso, un robot, un ser humano, etc ...Autonomía. Capacidad de actuar sin intervención humana directa o de otros agentes Sociabilidad. Puede comunicarse con otros agentes con capacidades similares a estar vivo Capacidad de decisión. Es independiente para alcanzar los objetivos Razonan. Tiene unos objetivos específicos y siempre intenta llevarlos a cabo.
  • 6. CARACTERÍSTICAS DE UN AGENTE  Aprenden.  Veracidad. No comunica información falsa intencionadamente.  Benevolencia. No tiene objetos contradictorios.  Pueden organizarse. Un agente es una entidad.  Desplazarse de un nodo a otro.
  • 7. 1.- APLICACIONES MAS(SISTEMA MULTI AGENTE)  Simulación de fenómenos complejos,  Sistemas paralelos y distribuidos  Robótica, Ingeniería Industrial y Telecomunicaciones  Videojuegos Cine (Animación 3D)
  • 8.  El comercio electrónico, e-learning  Urbanización y la gestión del tráfico por carretera  Finanzas: Trading Auto  Web Semántica 1.- APLICACIONES MAS(SISTEMA MULTI AGENTE)
  • 9. 2.- APLICACIONES MAS(SISTEMA MULTI AGENTE)  Sociología, la física de partículas, Química, Robótica, En sociología, establece diferentes agentes de componentes. Mediante restricciones, podemos tratar de entender lo que va a ser el componente más efectivo lograr un resultado deseado (la construcción de puentes). Incluso permite experimentar con escenarios que no sería factible en las poblaciones reales, si por razones técnicas
  • 10. 1.- ¿QUÉ ES ? Jade es básicamente dos cosas:  Una plataforma: que permite “VIVIR” y “CONVIVIR” a los agentes dentro de ella.  Un conjunto de herramientas para el desarrollo de agentes y sistemas de forma rápida.
  • 11.  Totalmente realizado en Java. (Portabilidad y Movilidad).  Software libre distribuido por TILAB en código Fuente bajo LPGL. ttp://jade.tilab.com/  El proyecto JADE es una iniciativa de TILAB  JADE cumple las especificaciones FIPA 2.- ¿QUÉ ES ?
  • 12. JADE es un middleware que facilita el desarrollo de: 1. Arquitectura: Aplicaciones Multi-agente Peer-to-Peer. Integración de diferentes aplicaciones, incluso con plataformas de diferentes propietarios. Foundation for Intelligent Physical Agents (FIPA) http://www.fipa.org ¿QUÉ ES ?
  • 13. Servicios de agentes: ciclo de vida, páginas blancas, páginas amarillas, transporte de mensajes,... : ¿QUÉ ES ?
  • 14. 2.Lenguaje de comunicación empleado FIPA- ACL:transporte y análisis de mensajes Peer-to- peer.,seguridad. 3. Planificación de las tareas del agente. Herramientas gráficas para la monitorización, logs, depuración. Conjunto de herramientas gráficas que soportan la depuración y ejecución de agentes (RMA, sniffer, ...) ¿QUÉ ES ?
  • 15. 1. Una aplicación basada en JADE consta de componentes activas denominadas Agentes. 2. Cada agente tiene un nombre (identificador) único. 3. Cada agente es un participante (peer) capaz de comunicar bidireccionalmente con otros ¿QUÉ ES ?
  • 17.  The Foundation for Intelligent Physical Agents (FIPA) es la parte del desarrollo y configuración para estandares heterogeneos de computadoras e interactuen agentes basados en sistemas ¿QUÉ ES ?
  • 18. Programación de java netbeans con jade 1.Descargar la aplicación JADE del siguiente link: http://jade.tilab.com 2. Al menu Download da click a: 3. Da click a: Continue y I AGREE 4. Da click a ¨jadeAll¨ Instalación de
  • 19. Descargamos el fichero (JADE-all-3.7.zip) Descomprimimos el fichero y nos salen cuatro nuevos ficheros: •JADE-doc-3.7.zip: la documentacion javadoc, el manual del administrador, el del programador y un tutorial. •JADE-src-3.7.zip: el codigo fuente sin compilar. •JADE-bin-3.7.zip: el codigo ya compilado y listo para ser invocado. JADE-e examples-3.7.zip: ejemplos de uso de la plataforma. Instalación de
  • 20. 5. Descomprimeel archivode jade 6.Creauna carpetaen la unidadc:jade Instalación de
  • 21. 7. Extraigomis archivos a la carpeta c:jade 8.Seleccionael archivo «JADE-bin- 4.3.3» y lo extraigo ala carpeta reciénextraída «c:jade» Instalación deInstalación de 9.Selecciono –Copio todo el contenido de la carpetay la mando a …
  • 22. Programación de java netbeans con jade 10. Ir a PANEL DECONTROLSistema Config.Avanzada del Sistema–Inicio+Pausa-Da click al botón VARIABLES DE ENTORNO como se muestraen la figura: A) En la sección Variables de sistema Da click al botón Nuevo B) Escribe elnombre: Instalación de
  • 23. Programación de java netbeans con jade 11.Ahorave ala lineade comandode WINDOWS.Ir aINICIO- Ejecutar--Escribe:cmdDireccionate do: 12. Captura el siguiente comando: java jade.Boot -gui 12. Escribe la siguientedirección para acceder a JADE  Instalación de
  • 24. 13. Seabrirá la aplicación deJADE COMO SE muestra: 14. Cierra jade Instalación de
  • 25. PROGRAMA_1 1.Abre Java netbeans 2.Crea el proyecto: Dia1 3.Crea el paquete: baseA 4.Crea la clase: HolaMundo 5.Ir a libreríasclick botón derecho y seleccionaadd JAR/Folder 6. Busca la librería ”jade.jar” c:jadelibjade.jar 7. Da click al botón abrir
  • 26. PROGRAMA_1 8. Captura el siguiente código en la clase: HolaMundo import jade.core.Agent; public class HolaMundo extends Agent { protected void setup() { System.out.println("Hola Mundo"); System.out.println("Mi nombre local es"+getLocalName()); System.out.println("Mi GUI es:"+getAID().getName()); System.out.println("Primer ejercicio de jade ;)"); } }
  • 27. PROGRAMA_1 9. Corrige los errores en rojo, colocando tu puntero a lado izquierdo de los focos de advertencia y señala “add import…”
  • 28.  10. Ir a SourcePackages, botón izquierdopropierties-run y anota lo siguiente:  Da click al botón de ejecutar:  Se abre Jade. CONFIGURAR
  • 29. 12.Repite el paso anterior, sólo modifica en lo siguiente: 13. Da click al botón de ejecutar: 14. Aparece lo siguiente en consola de java netbans CONFIGURAR
  • 31. QUE PASA EN Aparece abierto un container con el nombre que le dimos al agente, sea !Hola! . Vamos a ejecutar nuestro agente desde JADE. a) Ir al Container, click botón derecho y selecciona Start New Agent b) Llena los campos como aparece en la figura: c) Da click al Botón “OK”
  • 32. EJECUTARLO Qué apareció en java netbeans y en jade?
  • 33. EJECUTARLO POR MS-DOS Necesitamos la ubicación de la clase HolaMundo.java 1.En javaNetbeans ir a la clase HolaMundo, botón derecho del ratón –propierties-RUNTIME CLASSPATH, copia la ruta después del 1er ; hasta el final 2. Abre ms-dos(Inicio+R)cmd(enter)cd (alt+92) Cierra jade ylas aplicaciones corriendo en java netbeans
  • 34. EJECUTARLO POR MS-DOS 3. Captura los siguientes comandos para abrir jade. a)Ir a raíz b)Cambia ala ruta de copiaste de java y abrir JADE
  • 35. EJECUTARLO POR MS-DOS 4. Abrir ms-dos, seguir el procedimiento anterior hasta: a)Ir a raíz cd b)Cambia ala ruta de copiaste de java cd c:jadesrcexamplesDia1buildclasses c) Escribe el siguiente comando para abrir ejecutar en ms- dos el programa “HolaMundo” Ejecución Contenedor Agente - Paquete - Clase
  • 36. EJECUTARLO POR MS-DOS 4. QUE SUCEDIÓ EN LA EJECUCIÓN EN MS-DOS ? 5. QUE SUCEDIÓ EN JADE?
  • 37. EJERCICIO# 1 HOLAMUNDO2 Instrucciones: A)Abre un documento en word y toma evidencias de tu trabajo por medio de una foto(impr-pant) a cada resultado que se te pide en el ejercicio. B) El instructor irá a tu lugar si tienes dudas y a tomar nota de tu desempeño en caso de que hallas concluido el ejercicio. Nota: Al finalizar la sesión 1. Podrás sacar una copia del archivo de la exposición para tu estudio y análisis.
  • 38. EJERCICIO# 1 HOLAMUNDO2 1. En el mismo proyecto, crea otra clase llamada: HolaTuNombre 2. Captura el siguiente código: import jade.core.Agent; import jade.core.AID; public class HolaTuNombre extends Agent { protected void setup() {System.out.println("Hola! El agente "+getAID().getName()+" está listo."); System.out.println(“Me llamo:TuNombre y aprendo las bases de agentes."); } }
  • 39. EJERCICIO# 1. HOLAMUNDO2 3. Correrlo por java netbeans-(Inserta imagen en word).Total 8 Fotos Cuando abres jade por run Cuando llamas a tu agente por run Despliega el resultado en consola de java 4. Correrlo por JADE (Inserta imagen en word) Por Start le pones al agente :TuNombre, por run Despliega el resultado en consola de java 5. Correrlo por ms-dos (Inserta imagen en word) Cuando abres jade por msdos Cuando llamas a tu agente por msdos Despliega el resultado por msdos
  • 40. PROGRAMA_2 package baseA; import jade.core.Agent; import static jade.tools.rma.StartDialog.getArguments; public class Hola3 extends Agent { protected void setup() { System.out.println("Hola Mundo! me llamo"+getAID().getName()); Object[] args = getArguments(); if (args != null) {System.out.println("Mis argumentos son:"); for (int i = 0; i < args.length; ++i) {System.out.println("-"+args[i]); } } } }
  • 41. package baseA; import jade.core.Agent; import static jade.tools.rma.StartDialog.getArguments; public class Hola3 extends Agent { protected void setup() { System.out.println("Hola Mundo! me llamo"+getAID().getName()); Object[] args = getArguments(); if (args != null) {System.out.println("Mis argumentos son:"); for (int i = 0; i < args.length; ++i) {System.out.println("-"+args[i]); } } } } PROGRAMA_2
  • 42. PROGRAMA_2 1. Correrlo por java netbeans-(Inserta imagen en word).Total 8 Fotos Cuando abres jade por run Cuando llamas a tu agente por run Despliega el resultado en consola de java 2. Correrlo por JADE (Inserta imagen en word) Por Start le pones al agente :TuNombre, por run Despliega el resultado en consola de java 3. Correrlo por ms-dos (Inserta imagen en word) Cuando abres jade por msdos Cuando llamas a tu agente por msdos Despliega el resultado por msdos
  • 43. PROGRAMA Definir una clase Java que representa al agente (la cual debe heredar de la clase jade.core.Agent).  Implementar los comportamientos que va a manifestar. Un agente JADE cumple las siguientes características: Tiene un nombre único en el entorno de ejecución. Se implementa como un único hilo de ejecución (single-threaded).
  • 44.
  • 45. PROGRAMACIÓN EN JADE Creación de agentes .Un agente se crea heredando de la clase jade.core.Agent class y reescribiendo el método setup(). •Cada instancia de agente se idendifica por un AID (jade.core.AID). •Un AID se compone de un nombre único más una dirección. •Un agente puede recuperar su AID mediante el método getAID() de la clase Agent
  • 46. PROGRAMACIÓN EN JADE Los nombres son <local-name>@<platform-name> El nombre completo debe ser globalmente único. El nombre de la plataforma por defecto es <main-host>:<main-port>/JADE El nombre de la plataforma puede establecerse con la opción – name Dentro de una plataforma JADE pueden ser designados sólo por susnombres. Dado el nombre de un agente su AID puede ser creado como AID id = new AID(localname, AID.ISLOCALNAME); AID id = new AID(name, AID.ISGUID); Las direcciones incluidas en un AID son las de los MTPs y se utilizan SOLO para comunicar entre agentes de diferentes plataformas
  • 47. CONTENEDORES Y PLATAFORMAS -Un Solo contenedor principal especial debe estar siempre activo en una plataforma y todos los otros contenedores registrarse con él tan pronto como empiezan.
  • 48. MAIN CONTAINER •AMS (Sistema de Gestión de Agente) -Proporciona El servicio de nombres y representa la autoridad en la plataforma. • DF (Directorio Facilitador) -Proporciona Un servicio de páginas amarillas por medio de los cuales un agente puede encontrar otros agentes que prestan los servicios que requiere para lograr sus metas. • RMA (Remote Management Agent) -Actuando como consola gráfica para la gestión de la plataforma y el control.
  • 49.
  • 50. DIRECTORY FACILITATOR Proporciona un servicio de páginas amarillas por medio de los cuales un agente puede encontrar otros agentes que prestan los servicios que requiere para lograr sus metas.
  • 51. REMOTE MONITORING AGENT • Proporcionar a la interfaz gráfica de usuario para controlar el ciclo de vida de los agentes
  • 52. • Canal de comunicación del agente (ACC) - Agente a Agente - Plataforma agente a Plataforma Agente Message Transport System
  • 54. Un objeto es reactiva Un objeto es una entidad pasiva (o reactiva). Si nadie solicita el valor de un atributo o activa un método de el objeto, entonces no Pasa nada. Un agente es ProActif Un agente tiene, además de los Atributos y métodos, procesos Internos función, incluso en ausencia de tensiones externas. Un agente puede actuar, por tanto, incluso si nadie le pregunta nada
  • 55. DUMMY AGENT Herramienta útil para la depuración • Permite la interacción con otros agentes de envío, recepción y visualización de mensajes de ACL • ¿Cómo poner en marcha: -Desde La línea de comandos java jade.Boot da: jade.tools.DummyAgent.DummyAgent -Desde El GUI RMA • Elegir "Herramientas  Iniciar DummyAgent" • Seleccione "Iniciar nueva Agent" y proporcionar jade.tools.DummyAgent.DummyAgent como el nombre de la clase
  • 57. Cuando un agente sniff (o un grupo), algunos mensajes son enviados a el agente, son visibles en una especie de diagrama UML de secuencia • Cuando un agentes o contenedores son creados o destruidos, el Agente Sniffer es informado por la AMS • ¿Cómo poner en marcha: -Desde La línea de comandos java jade.Boot snif: jade.tools.sniffer.Sniffer -Desde El GUI RMA • Elegir "Herramientas  Iniciar Sniffer" • O seleccione "Iniciar nueva Agent" y proporcionar jade.tools.sniffer.Sniffer como el nombre de la clase SNIFFER AGENT
  • 59. SNIFFER AGENT • DF es un servicio de páginas amarillas: agentes pueden registrar sus servicios o buscar en el DF • En cada plataforma, hay al menos un DF • Cómo iniciar la interfaz gráfica de usuario: -Desde El GUI RMA • Elegir "Herramientas  Mostrar la GUI DF"
  • 60. INTROSPECTORAGENT Monitoriza el ciclo de vida de un agente: mensajes enviados recibido, cola / comportamiento • ¿Cómo poner en marcha: -Desde El GUI RMA • elegir "Herramientas -Iniciar IntrospectorAgent"
  • 61. EL CICLO DE VIDA DE LOS AGENTES Y LA MOVILIDAD. INICIADO: el objeto Agente está construido, pero no se ha registrado en sí pero con la AMS, no tiene nombre ni una dirección y no puede comunicarse con otros agentes. ACTIVO: el objeto Agente se ha registrado en el AMS, tiene un nombre regular y la dirección y puede acceder a todas las diversas características JADE. SUSPENDIDO: el objeto del agente se detiene en ese momento. su rosca interna se suspende y no se está ejecutando el comportamiento del agente. doSuspend ()
  • 62. ESPERA: el objeto Agente está bloqueado, esperando algo. Su rosca interna es durmiendo en un monitor de Java y se despierta cuando se cumple alguna condición (por lo general, cuando un mensaje llega).doWait () ELIMINADO: el agente es definitivamente muerto. La rosca interna ha terminado su ejecución y el Agente no es más registrado en el AMS. TRÁNSITO: un agente móvil entra en este estado mientras se está migrando a la nueva ubicación. Los sistema continúa para amortiguar los mensajes que luego serán enviados a su nueva ubicación. EL CICLO DE VIDA DE LOS AGENTES Y LA MOVILIDAD.
  • 63. EL CICLO DE VIDA DE LOS AGENTES Y LA MOVILIDAD.
  • 64. CREACIÓN DE AGENTES Hay dos formas de ejecutar un agente: desde el GUI de JADE y desde la línea de comandos. Desde la línea de comandos. java jade.Boot –container <nombre_agente>: <paquete_.class> Ejecución remota de agentes jade.Boot -container -host nombreHost <nombre_agente>:<ruta_agente.class>
  • 65. EJERCICIOS 2ª PARTE  1. Captura los ejercicios y ejecutalos desde java Netbeans. 2. Imprime en pantalla el resultado que obtuviste.
  • 66.
  • 67. ENTONCES…¿QUÉ ES UN AGENTE?  "Los agentes autónomos son sistemas computacionales que habitan en algún complejo entorno dinámico, sienten y actúan de forma autónoma en este entorno, y al hacerlo, se dan cuenta de un conjunto de metas o tareas para las que han sido diseñados."
  • 68. QUÉ ES UN COMPORTAMIENTO EN JADE? Un comportamiento o behaviour hace referencia a una funcionalidad que incorpora el agente. Los comportamientos especifican tareas o servicios que realiza un agente para lograr sus objetivos. Cada comportamiento puede realizar una tarea simple como "Envia este mensaje" o "compra X " aunque también se pueden crear comportamientos compuestos. Cada tarea del agente sará una instancia de una clase que deber heredar de la clase Behaviour. class MiComportamiento extends Behaviour{ … } LIBRERÍA: jade.core.behaviours.*
  • 69. QUÉ ES UN COMPORTAMIENTO EN JADE? Los agentes están programados en base a sus comportamientos. La programación basada en comportamientos debe realizar los siguientes pasos: 1. Determinar qué debe ser capaz de hacer el agente. 2. Asociar cada funcionalidad con un comportamiento. 3. Escoger el tipo de comportamientos 4. Dejar a JADE la tarea del scheduling (un solo 5. comportamiento se está ejecutando en cada instante). En el ejemplo ANTERIOR se puede ver como se añade un comportamiento desde el método setup() del
  • 70. QUÉ ES UN COMPORTAMIENTO EN JADE?  Además de añadir nuevos comportamientos, también se pueden eliminar comportamientos de un agente con el método removeBehaviour(Behaviour). Así, si en el ejemplo anterior quisiéramos borrar el primer comportamiento desde el segundo comportamiento bastaría con hacer una llamada a removeBehaviour() dentro del método action del segundo comportamiento: