About this project
it-programming / others-5
Open
Problema 1. Debe crear 2 agentes utilizando la plataforma JADE para Java y el IDE de su preferencia.
Estos agentes se enviarán mensajes entre ellos siguiendo las siguientes pautas.
Agente 1 <Calculador>
• Este agente implementará un comportamiento
• Definir un nombre fijo para este agente para que pueda ser usado en el código.
• Recibirá un mensaje que incluirá un número entero
• Utilizará el número para realizar los siguientes cálculos
o Calcule el área, volumen y longitud de una circunferencia dado un radio
o El factorial del número
o Si el número es primo
o La evaluación del número en la siguiente ecuación
▪
[2?
6 − ?
3 + 4?
2 − 7? + 1]
[3?
3 + 4? − 3]
⁄
Agente 2 <Remitente>
• Este agente implementará 2 comportamientos. Uno que envíe el número y otro que incluya la
acción a realizar cuando se reciba un mensaje.
• Este agente enviará cada 40 segundos un mensaje al Agente 1 con un número generado
aleatoriamente, dicho número debe ser mayor a 1.
• Debe desplegar la respuesta del Agente 1, incluyendo cual ha sido el número enviado.
• Como sugerencia (no obligatorio) puede usar el método createReply() de la clase ACLMessage para
responder el mensaje.
Puede consultarlo en este enlace.
Problema 2 Debe crear 2 agentes utilizando la plataforma JADE para Java y el IDE de su elección. Estos
agentes deberán controlar una interfaz gráfica cada uno que permita la interacción con el usuario. En
este caso se emulará el funcionamiento de un sistema de gestión de acceso a las oficinas de una
universidad.
Agente 1 <Sistema Central> [JFrame + GuiAGent]
• Dentro de la documentación del examen, encontrará el código fuente incompleto de esta
clase, el cual puede usar como base para el desarrollo de su agente. Nombre del Archivo:
“AgSistema.java”
• Dentro de la documentación del examen, encontrará el código fuente pata la clase “Empleado”
la cual detalla los atributos de los empleados que se utilizan. Esta clase no requiere
modificación alguna para que funcione con el código fuente para el Agente 1.
Pero el
estudiante tiene libertad de cambiarla según sus necesidades. Nombre del Archivo:
“Empleado.java”
• Funciones como Agente<GuiAgent>
o Solo debe existir un agente de este tipo cuando se ejecute el sistema.
O Contiene la base de datos con la información de los empleados que laboran en la
universidad.
O Recibirá mensajes de los Agentes Salas solicitando la autorización de acceso del personal
en una determinada sala
o Deberá responder al respectivo Agente Sala indicando si se concede o no el acceso a la
sala.
O Este agente recibirá del Agente Sala un ID de empleado y devolverá una instancia de la
Clase Empleado con la información correspondiente.
O Para la solicitud de acceso a las salas se debe comunicar con el agente sala mediante
Protocolos ProposeInitiator/ProposeResponder.
O El agente debe incluir un comportamiento que permita recibirá mensajes del Agente Sala,
indicando cuando alguien ha sido salido de la Sala, ya sea la salida, de manera automática
o si es retirado manualmente.
O La decisión de permitir o no el acceso a una sala depende solamente de si el empleado no
se encuentra dentro de otra al momento de realizar la solicitud de acceso.
O La base datos que se menciona puede ser un arreglo/matriz con la información
precargada directamente en código.
no se esta solicitando la creación de una
conexción real a una base datos.
• Funciones como Interfaz <JFrame>
o En este caso la interfaz del sistema agente tendrá como función principal la de ser una
pantalla donde se muestran los registros de entradas y salidas de los empleados a las
diferentes salas.
Página 3 de 6
o JTextArea: mostrará los registros de actividad durante toda la ejecución del sistema.
Cada
línea impresa en esta consola debe indicar la hora a la cual se produce la acción que
representa.
O JButton: botón que permite el cierre todo el sistema al hacer click en este.
O JLabel: Que indique el nombre o función del agente.
Agente 2 <Sala> [JFrame + GuiAGent] {Al ejecutar debe crear 3 o más instancias de este agente}
• Dentro de la documentación del examen, encontrará el código fuente incompleto de esta
clase, el cual puede usar como base para el desarrollo de su agente. Nombre del Archivo:
“AgSala.java”
• Cada sala debe tener un nombre diferente durante su tiempo de ejecución
• JFrame
o JList: Esta estructura contendrá la lista de las personas que actualmente se encuentran
en la sala, se deben poder seleccionar sus elementos para cumplir alguna función
específica. Se recomienda consultar los siguientes enlaces, como guía de este
componente: JList Tutorial JList Manual(Puntos Relevantes del Manual del 1 al 5)
o JTextArea: mostrará los registros de actividad durante toda la ejecución del sistema.
Cada
línea impresa en esta consola debe indicar la hora a la cual se produce la acción que
representa.
O JButton <Retirar de Sala>: este botón permitirá sacar a una persona seleccionada en el
JList, de la sala. Debe de igual manera notificar al Agente Sistema cuando esto ocurra.
El
JList debe ser actualizado luego de esta operación.
O JButton <Ver información>: este botón permitirá ver la información disponible en la BD
de una persona que esta en la sala y la cual ha sido seleccionada del JList. Esta
información se puede presentar de la manera que desee el estudiante, ya sea mediante
un JOptionPane o Mediante un Jframe u otra manera, exceptuando la consola del ide o
so.
O Campo de texto o Label: Donde se indique en el nombre de la sala.
• GuiAgent
o Esta clase establecerá el control del JFrame y se encargará de realizar la comunicación
con el Agente 1
o Esta clase enviará las peticiones de acceso de las personas a la sala que representa.
O Debe implementar un comportamiento que le permita recibir mensajes del Agente
Recepción.
O La persona que solicite el acceso se indicara mediante un mensaje que llega a través del
Agente Recepción. Luego el agente Sala lo envía al Agente Sistema para su evaluación.
Este mensaje debe incluir el ID de Empleado y como respuesta el Agente Sistema
devolverá una instancia de la clase Empleado con la información del mismo.
O Para la solicitud de acceso a las salas se debe comunicar con el agente sistema mediante
Protocolos ProposeInitiator/ProposeResponder.
Página 4 de 6
o Deberá implementar un comportamiento del tipo <TickerBehaviour> que seleccione
aleatoriamente una persona de los presentes en la sala y lo saque de la misma. El
intervalo para este comportamiento puede ser definido de manera aleatoria o de forma
fija, pero con una duración mínima de 45 segundos.
O Debe responder a los eventos ocurridos en la interfaz.
O Se recomienda almacenar los empleados en la sala en un ArrayList<Empleado>
Agente Recepción
• Dentro de la documentación del examen, encontrará el código fuente de esta clase, el cual
debe usar para el desarrollo de su sistema. Nombre del Archivo: “AgRecepcion.java”
• Este agente se encarga de simular a empleados que desean entrar a las diferentes salas
actualmente activas en el sistema.
• El agente implementa un comportamiento el cual cada 8 segundos consulta las salas disponibles
en él entorno y elige una aleatoriamente, de igual manera elige aleatoriamente un numero
entre la cantidad de empleados disponibles. Utilizando esta información envía el ID de
empleado elegido a la sala elegida.
• El estudiante puede definir el intervalo de funcionamiento de esta función, según su gusto.
Tenga en cuenta que la duración de este intervalo condiciona el funcionamiento de todo el
sistema.
Estos agentes se enviarán mensajes entre ellos siguiendo las siguientes pautas.
Agente 1 <Calculador>
• Este agente implementará un comportamiento
• Definir un nombre fijo para este agente para que pueda ser usado en el código.
• Recibirá un mensaje que incluirá un número entero
• Utilizará el número para realizar los siguientes cálculos
o Calcule el área, volumen y longitud de una circunferencia dado un radio
o El factorial del número
o Si el número es primo
o La evaluación del número en la siguiente ecuación
▪
[2?
6 − ?
3 + 4?
2 − 7? + 1]
[3?
3 + 4? − 3]
⁄
Agente 2 <Remitente>
• Este agente implementará 2 comportamientos. Uno que envíe el número y otro que incluya la
acción a realizar cuando se reciba un mensaje.
• Este agente enviará cada 40 segundos un mensaje al Agente 1 con un número generado
aleatoriamente, dicho número debe ser mayor a 1.
• Debe desplegar la respuesta del Agente 1, incluyendo cual ha sido el número enviado.
• Como sugerencia (no obligatorio) puede usar el método createReply() de la clase ACLMessage para
responder el mensaje.
Puede consultarlo en este enlace.
Problema 2 Debe crear 2 agentes utilizando la plataforma JADE para Java y el IDE de su elección. Estos
agentes deberán controlar una interfaz gráfica cada uno que permita la interacción con el usuario. En
este caso se emulará el funcionamiento de un sistema de gestión de acceso a las oficinas de una
universidad.
Agente 1 <Sistema Central> [JFrame + GuiAGent]
• Dentro de la documentación del examen, encontrará el código fuente incompleto de esta
clase, el cual puede usar como base para el desarrollo de su agente. Nombre del Archivo:
“AgSistema.java”
• Dentro de la documentación del examen, encontrará el código fuente pata la clase “Empleado”
la cual detalla los atributos de los empleados que se utilizan. Esta clase no requiere
modificación alguna para que funcione con el código fuente para el Agente 1.
Pero el
estudiante tiene libertad de cambiarla según sus necesidades. Nombre del Archivo:
“Empleado.java”
• Funciones como Agente<GuiAgent>
o Solo debe existir un agente de este tipo cuando se ejecute el sistema.
O Contiene la base de datos con la información de los empleados que laboran en la
universidad.
O Recibirá mensajes de los Agentes Salas solicitando la autorización de acceso del personal
en una determinada sala
o Deberá responder al respectivo Agente Sala indicando si se concede o no el acceso a la
sala.
O Este agente recibirá del Agente Sala un ID de empleado y devolverá una instancia de la
Clase Empleado con la información correspondiente.
O Para la solicitud de acceso a las salas se debe comunicar con el agente sala mediante
Protocolos ProposeInitiator/ProposeResponder.
O El agente debe incluir un comportamiento que permita recibirá mensajes del Agente Sala,
indicando cuando alguien ha sido salido de la Sala, ya sea la salida, de manera automática
o si es retirado manualmente.
O La decisión de permitir o no el acceso a una sala depende solamente de si el empleado no
se encuentra dentro de otra al momento de realizar la solicitud de acceso.
O La base datos que se menciona puede ser un arreglo/matriz con la información
precargada directamente en código.
no se esta solicitando la creación de una
conexción real a una base datos.
• Funciones como Interfaz <JFrame>
o En este caso la interfaz del sistema agente tendrá como función principal la de ser una
pantalla donde se muestran los registros de entradas y salidas de los empleados a las
diferentes salas.
Página 3 de 6
o JTextArea: mostrará los registros de actividad durante toda la ejecución del sistema.
Cada
línea impresa en esta consola debe indicar la hora a la cual se produce la acción que
representa.
O JButton: botón que permite el cierre todo el sistema al hacer click en este.
O JLabel: Que indique el nombre o función del agente.
Agente 2 <Sala> [JFrame + GuiAGent] {Al ejecutar debe crear 3 o más instancias de este agente}
• Dentro de la documentación del examen, encontrará el código fuente incompleto de esta
clase, el cual puede usar como base para el desarrollo de su agente. Nombre del Archivo:
“AgSala.java”
• Cada sala debe tener un nombre diferente durante su tiempo de ejecución
• JFrame
o JList: Esta estructura contendrá la lista de las personas que actualmente se encuentran
en la sala, se deben poder seleccionar sus elementos para cumplir alguna función
específica. Se recomienda consultar los siguientes enlaces, como guía de este
componente: JList Tutorial JList Manual(Puntos Relevantes del Manual del 1 al 5)
o JTextArea: mostrará los registros de actividad durante toda la ejecución del sistema.
Cada
línea impresa en esta consola debe indicar la hora a la cual se produce la acción que
representa.
O JButton <Retirar de Sala>: este botón permitirá sacar a una persona seleccionada en el
JList, de la sala. Debe de igual manera notificar al Agente Sistema cuando esto ocurra.
El
JList debe ser actualizado luego de esta operación.
O JButton <Ver información>: este botón permitirá ver la información disponible en la BD
de una persona que esta en la sala y la cual ha sido seleccionada del JList. Esta
información se puede presentar de la manera que desee el estudiante, ya sea mediante
un JOptionPane o Mediante un Jframe u otra manera, exceptuando la consola del ide o
so.
O Campo de texto o Label: Donde se indique en el nombre de la sala.
• GuiAgent
o Esta clase establecerá el control del JFrame y se encargará de realizar la comunicación
con el Agente 1
o Esta clase enviará las peticiones de acceso de las personas a la sala que representa.
O Debe implementar un comportamiento que le permita recibir mensajes del Agente
Recepción.
O La persona que solicite el acceso se indicara mediante un mensaje que llega a través del
Agente Recepción. Luego el agente Sala lo envía al Agente Sistema para su evaluación.
Este mensaje debe incluir el ID de Empleado y como respuesta el Agente Sistema
devolverá una instancia de la clase Empleado con la información del mismo.
O Para la solicitud de acceso a las salas se debe comunicar con el agente sistema mediante
Protocolos ProposeInitiator/ProposeResponder.
Página 4 de 6
o Deberá implementar un comportamiento del tipo <TickerBehaviour> que seleccione
aleatoriamente una persona de los presentes en la sala y lo saque de la misma. El
intervalo para este comportamiento puede ser definido de manera aleatoria o de forma
fija, pero con una duración mínima de 45 segundos.
O Debe responder a los eventos ocurridos en la interfaz.
O Se recomienda almacenar los empleados en la sala en un ArrayList<Empleado>
Agente Recepción
• Dentro de la documentación del examen, encontrará el código fuente de esta clase, el cual
debe usar para el desarrollo de su sistema. Nombre del Archivo: “AgRecepcion.java”
• Este agente se encarga de simular a empleados que desean entrar a las diferentes salas
actualmente activas en el sistema.
• El agente implementa un comportamiento el cual cada 8 segundos consulta las salas disponibles
en él entorno y elige una aleatoriamente, de igual manera elige aleatoriamente un numero
entre la cantidad de empleados disponibles. Utilizando esta información envía el ID de
empleado elegido a la sala elegida.
• El estudiante puede definir el intervalo de funcionamiento de esta función, según su gusto.
Tenga en cuenta que la duración de este intervalo condiciona el funcionamiento de todo el
sistema.
Category IT & Programming
Subcategory Other
Delivery term: Not specified
Skills needed