Los Aglets consiste en una API que contiene un grupo de clases e interfaces Java, las mismas proporcionan movilidad y comunicación entre agentes. Estos pueden ejecutarse de forma segura. Y por las características del lenguaje Java permiten que sean multiplataformas. Es flexible ya que permite que se añadan nuevas funciones al mismo.

Un Aglets también puede ser un agente móvil, el mismo fue creado en Java por IBM. Primeramente este proyecto fue nombrado AWB “Aglets WorkBench”. Este proyecto se encuentra disponible con su documentación en SourceForge bajo la licencia pública de IBM.

¿Por qué usar agentes móviles?

Estas tecnologías pretenden solucionar diversos problemas. Los mismos permiten el ahorro de ancho de banda, algo muy importante a tener en cuanta en la aplicaciones cliente/servidor.

Aplicando el problema del consumo de ancho de banda a la tecnología de agentes móviles, podríamos crear un agente que al necesitar consultar el servidor este se traslade al mismo y al completarse, envíe los resultados. De esta forma se disminuiría el tráfico por la red.

El Aglets Software Development Kit (ASDK) es un framework para desarrollar agentes móviles, que nos permiten:

  • Cifrar el código y los datos de un aglet utilizando el método de seriación de Java (JOS).
  • Traslado de agentes utilizando el Protocolo para el Transporte de Aglets (ATP).
  • Ofrecer un Interfaz de Programación para Aglets (A-API).
  • Interconexión e intercambio de información entre aglets y otros objetos mediante paso de mensajes.
  • El ciclo de vida de un aglet puede tratarse por métodos basados en captura de eventos. Los eventos definidos son: creación, clonación, expedición, retractación, eliminación, activación, desactivación y paso de mensaje.
  • Control de seguridad mediante definición de autoridades y de sus privilegios y preferencias.

Como bien comentamos los aglets cuentan con diferentes clases que al revisar su documentación obtendremos mayor información de su forma de uso. El paquete com.ibm.aglet es un conjunto de clases e interfaces para la creación de agentes móviles en Java.

Clases

  • Aglet: es una clase básica para crear y trabajar con aglets personalizados.
  • Message: es una clase que sirve para manejar mensajes recibidos y responder.
  • AgletProxy: interfaz para interactuar con los proxies de otros Aglets.
  • AgletContext: interfaz para crear, modificar, eliminar, enviar y otros aglets en un contexto.

Métodos para el control del ciclo de vida de un aglet:

  • public final Object clone(): Crea una copia idéntica del aglet (y su proxy) en el equipo donde se encuentre. El método devuelve el proxy del aglet clonado.
  • public final void dispatch(URL direccion): Envía un aglet al equipo donde se dirija especificado por el parámetro de destino.
  • public final void dispose(): Destruye y elimina el aglet de su contexto actual.
  • public final void deactivate(long duration): para temporalmente el aglet, el cual reanudará su ejecución una vez haya transcurrido el periodo de tiempo especificado.
  • public void run(): Un aglet comienza su ejecución con el método run que es el punto de entrada para el hilo de ejecución del propio aglet. La estructura del método run contiene la definición de las instrucciones.

aglet1.jpg

Los métodos clone(), dispatch(),dispose() y deactivate() son usados para el control del aglet. El método sendMessage() es usado para enviar mensajes asincrónicos via proxy al aglet.

Los elementos principales de la arquitectura aglet son:

  • Aglet: define los métodos básicos para el control de un agente móvil.
  • Representante: Permite aislar al aglet del entorno, permitiendo un mayor grado de seguridad y ofreciendo transparencia respecto a la localización del agente.
  • Contexto: ofrece al aglet una interfaz con su entorno de operación.
  • Mensaje: objetos utilizados para la comunicación entre aglets.

Características de los aglets:

  • Comunicación entre agente mediante mensajes sincrónicos y asincrónicos.
  • Un esquema global único para agentes.
  • Un itinerario de viaje, para la especificación de patrones complejos de viajes con múltiples destinos y manejos de fallas automáticos.
  • Un mecanismo white-board permitiendo que múltiples agentes colaboren y compartan información asíncronamente.
  • Un esquema de transmisión de mensajes que soporta una unión asíncrona desahogada tan bien como una comunicación síncrona entre agentes.
  • Una carga de clases dinámicamente que permite que el código Java de los agentes y la información de su estado viajen a través de la red.
  • Un contexto de ejecución que proporciona un ambiente independiente del sistema actual sobre el cual se están ejecutando.

Desventajas de los aglets:

  • Soporte inadecuado de control de recursos.
  • No tiene protección de referencias.
  • No provee ayuda para la preservación y reanudación del estado de ejecución.

A continuación mostramos varias imágenes del mismo que podemos encontrar en su sitio del proyecto ubicado en sourceforge:

Ventana de acceso

agletplataforma.jpg

Menú

agletview1.jpg

Crear un Aglet

agletview.jpg

¿Qué es Taihti?

Tahití es un programa que funciona como servidor del agente. Se pueden ejecutar varios servidores (Tahití) en una sola computadora asignándoles diferentes números de puerto. Tahití proporciona un interfaz para el usuario para monitorizar, crear, enviar, y disponer de agentes y para configurar los privilegios de acceso para el servidor de agente.

El paquete de ASDK

  • Guía de instalación: Incluye los pasos iniciales para instalar y configurar el ASDK y sus variables de entorno.
  • Manual de usuario de Tahiti: Introducción general del Tahiti y crear tu primer aglet.
  • Características de la versión: Notas detalladas de las nuevas características y cambios realizados.
  • Demostración: Descripciones sobre los programas de demostración de ASDK.
  • Ejemplos: Ejemplos simples con sus códigos.
  • Procedimientos de compilación: Un ejemplo simple de cómo compilar un aglet.

Deseamos que luego de la lectura de este artículo queden motivados a la continuidad de sus conocimientos sobre los aglets para agentes móviles. Esperamos sus comentarios y que compartan su experiencias sobre este tema.

Referencias