Un nuevo paradigma para el acceso a bases de datos

Anuncio
Encuentro de Investigación en IE, 17—18 Marzo, 2005
Encuentro de Investigación en Ingeniería Eléctrica
Zacatecas, Zac, Marzo 17 —18, 2005
Agente Aglet: Un nuevo paradigma para el
acceso a bases de datos distribuidas
Selene León Sol,
Sistemas Computacionales,
Facultad de Contaduría y Administración Campus I,Universidad Autónoma de Chiapas, Chiapas
CP-29000.
TEL: +(961)6154249, correo-e: [email protected]
y
Luis Ernesto Mancilla Espinosa,
Instituto Tecnológico de León,Guanajuato CP-37290.
TEL: +(477)7105200, correo-e: [email protected]
Resumen — En este proyecto pretendemos difundir un nuevo paradigma para el acceso a base de
datos distribuidas y probar las características que lo hacen ser una de las opciones mas prometedoras
en el futuro de las ciencias computacionales. Nos referimos a los agentes móviles. El presente trabajo
ejemplifica el uso de esta tecnología para el acceso a bases de datos distribuidas a través de Internet.
Para la implementación se ha utilizado el sistema de agentes móviles Aglets, basado en Java. Se han
querido comprobar principalmente dos aspectos de la tecnología: su transparencia para trabajar sobre
redes heterogéneas y la prometedora disminución de ancho de banda en la red. Iniciaremos con una
visión general de esta tecnología y sus ventajas. Mas adelante describiremos las características
generales de nuestra aplicación y su funcionamiento. Finalizamos con el análisis de los resultados
experimentales y las conclusiones.
Abstract — In this paper, we try to make known a new paradigm for distributed database access
and we test the properties that make it be a promising option in computer sciences future. These are
mobile agents. This project presents a use of this technology accessing distributed databases over the
internet. It has been implemented using aglets, a java based mobile agents system. We check two
factors: transparency for traveling over heterogeneous networks and band wide decrease. First we will
describe aglet’s concepts and advantages. For the next we will give details about design and
implementation of our application. Finally we will present experimental results and conclusions.
Palabras clave — Agente Móvil, Aglet, Base de Datos Distribuida, Sistema Distribuido.
C
I. INTRODUCCIÓN
ON LA LLEGADA de la era de Internet y las facilidades que nos ofrece, cada vez es más común
el acceso a recursos geográficamente muy distantes unos de otros. De estos recursos, la
información almacenada en bases de datos distribuidas ocupa un lugar esencial. La red Internet
ofrece la infraestructura adecuada para conectar estos recursos a través de una amalgama de
máquinas, sistemas operativos y redes de computadoras de diferentes tipos.
En este contexto, la saturación del ancho de banda de la red se convierte en el problema clave a
339
Encuentro de Investigación en IE, 17—18 Marzo, 2005
340
solucionar y aquí es donde aparece la tecnología de agentes móviles, al permitir interactuar
localmente con esas bases de datos remotas.
La tecnología de agentes móviles se ha convertido en una de las mas prometedoras y atractivas
para las ciencias computacionales al inicio de este nuevo siglo. Los expertos aseguran que no es
solamente una tecnología prometedora, sino que además está emergiendo como una nueva forma de
pensar, un nuevo paradigma para el diseño de sistemas distribuidos. Esto implica que los agentes
móviles jugarán un papel importante en la recuperación y búsqueda de información en Internet.
Un agente es un programa de software que realiza alguna tarea de un usuario en nombre de este.
La propiedad de movilidad le permite viajar a través de una red, puede parar su ejecución, moverse
a otro nodo de la red mientras mantiene su estado y reiniciar su ejecución en el nodo destino.
Dentro de las ventajas más importantes que los agentes móviles ofrecen y que llaman nuestra
atención para este trabajo es la reducción del tráfico de una red y su habilidad para trabajar dentro
de ambientes heterogéneos desde el punto de vista de software y hardware.
En el Laboratorio de Investigación de IBM en Tokio, los investigadores Lange y Oshima han
creado una Herramienta para el desarrollo de sistemas de agentes móviles, le han llamado Aglets
Workbench, está basado 100% en Java (el lenguaje de Internet), lo que le permite heredar todas las
ventajas de este lenguaje. Dentro de las que llama nuestro interés: su portabilidad.
II. FUNDAMENTOS
A. Agente de Software
La definición de agente de software y su diferencia con un programa, han sido temas muy
discutidos [1]. La mayoría de los autores lo definen como un programa que actúa en nombre del
usuario, realizando las tareas de este bajo ciertas restricciones.
Hay agentes de muchos tipos y operan de maneras diferentes, se pueden encontrar en sistemas
operativos, redes, bases de datos, etc. Sin embargo, dentro de esta variedad, todos ellos comparten
una característica: viven dentro de un ambiente [2]. Un agente requiere de un ambiente para su
implementación y ejecución.
B. Agente Móvil
La movilidad es una propiedad opcional de los agentes. Un agente móvil tiene la capacidad de
transportarse de una computadora a otra . Durante su recorrido por distintos sistemas tienen la
posibilidad de obtener servicios ofertados localmente en los sistemas visitados y dialogar con otros
agentes [3].
Un agente móvil es libre de viajar hacia todas las computadoras conectadas a una red.
Comenzando su ejecución en una terminal, puede repentinamente parar, transportarse por si mismo
a otra terminal y reanudar su ejecución ahí. Esto se debe a que lleva consigo código y estado.
C. Ventajas que ofrece un Agente Móvil
Brindan importantes beneficios en la creación de sistemas distribuidos. Entre las principales
ventajas, Lange y Oshima [4] mencionan las siguientes:
Encuentro de Investigación en IE, 17—18 Marzo, 2005
341
Reducen el tráfico en la red. Los agentes móviles permiten empaquetar un mensaje y despacharlo
a un nodo destino, donde los procesos se llevan a cabo localmente (Figura 1). La idea es sencilla: es
preferible mover los procesos hacia los datos, que los datos hacia los procesos. Oponiéndose al
paradigma de “Llamados a Procedimientos Remotos RPC”
Pueden operar sin conexión. Sistemas críticos de tiempo real, como los robots en procesos de
manufactura, necesitan responder inmediatamente a los cambios del medio. Para los sistemas en
Figura 1. Agentes móviles y reducción de carga en la red [2].
tiempo real, los estados de inactividad o de espera no son aceptables. Los agentes móviles ofrecen
una solución ya que tienen la capacidad de seguir trabajando aún cuando no exista una conexión
abierta a red.
Encapsulan protocolos. Cuando los datos se intercambian en un sistema distribuido, cada
computadora posee el código que
implementa los protocolos necesarios para codificar
correctamente datos de salida e interpretar datos de entrada. Sin embargo, los protocolos tienen que
evolucionar para controlar nuevos requerimientos de eficiencia o seguridad, pero mejorar el código
del protocolo es una tarea difícil o casi imposible. Los agentes móviles se pueden mover a
computadoras remotas con la capacidad de establecer canales basados en protocolos propietarios.
Se ejecutan de manera asíncrona y autónoma. Frecuentemente los dispositivos móviles deben
confiar en conexiones de red frágiles. Para resolver este problema, las tareas pueden ser incrustadas
en agentes móviles. Después de ser despachados, los agentes móviles se vuelven independientes
del proceso de creación y pueden operar de manera asíncrona y autónoma.
Son dinámicos. Los agentes móviles tienen la capacidad de percibir su ambiente de ejecución y
reaccionar automáticamente a cambios. Poseen la habilidad única de trasladarse ellos mismos a
través de las computadoras en la red y establecer la configuración óptima para resolver un problema
en particular.
Son naturalmente heterogéneos. Desde ambas perspectivas, de hardware y de software. Son
robustos y tolerantes a fallas. La capacidad que poseen los agentes móviles de reaccionar
dinámicamente ante eventos no favorables de su ambiente facilita el desarrollo de sistemas
distribuidos robustos y tolerantes a fallas. Si una computadora es apagada, todos los agentes
ejecutándose en ella serán alertados y tendrán un tiempo determinado para moverse y continuar su
operación en otra computadora de la red.
Las desventajas más evidentes en el desarrollo de agentes móviles se refieren a cuestiones de
Encuentro de Investigación en IE, 17—18 Marzo, 2005
342
seguridad y a algunas limitantes que presentan los lenguajes de programación para su diseño.
D. Java
Es un lenguaje orientado a objetos, interpretado, robusto, seguro, de arquitectura neutral, portable
y multihilo [5]. Algunas personas lo definen como un mejor C++, otras personas lo llaman el
lenguaje de Internet.
La plataforma Java permite correr la misma aplicación Java en muchos tipos diferentes de
computadoras [6]. Cualquier aplicación Java puede ser fácilmente distribuida sobre Internet, o
cualquier red, sin problemas de compatibilidad de sistemas operativos o hardware. Por ejemplo, se
podría correr una aplicación de Java en una PC, una Macintosh o incluso sobre nuevas tecnologías
como teléfonos de pantalla para Internet. La idea es simple: el software basado en Java funciona
bien en cualquier lugar.
Las características de Java lo hacen el mejor lenguaje para la programación de agentes móviles.
E. El modelo Aglet
Cuando el lenguaje de programación Java estuvo disponible en 1995, el Laboratorio de
Investigación de IBM en Tokio decidió crear un nuevo sistema para agentes móviles con un
proyecto al que llamó Aglets, que operarían cómodamente en el sistema abierto de Java y la
Internet. En 1996, apareció una versión de Aglets Alpha, que ahora se llama Aglets Software
Development Kit [7]. A finales del año 2000 el proyecto paso a ser “open source” [8] y ahora es
desarrollado y mantenido por la comunidad de Aglets.
Los Aglets son una innovación desarrollada por IBM [9] y es el sistema de agentes que ha tenido
mayor cobertura de la prensa [10]. Un aglet es un agente de Internet basado en Java. El aglet
representa un paso adelante en la evolución del contenido ejecutable de Internet, ya que introduce
código de programa que puede ser transportado junto con la información de estado. Los aglets son
objetos de Java que pueden moverse de una terminal de Internet a otra. Esto quiere decir, que un
aglet que se ejecuta en una terminal puede repentinamente parar su ejecución, transportarse por si
mismo a otra terminal remota, y reanudar su ejecución ahí [11].
También se puede pensar en un aglet como una extensión de los applets y servlets de Java. Los
aglets son hospedados por un servidor de aglets de manera similar a como los applets son
hospedados por un navegador. El servidor de aglets proporciona un ambiente apropiado para que
los aglets se ejecuten en él.
III. DESCRIPCIÓN DE LA APLICACIÓN
La aplicación seleccionada es sencilla, pero completa, ya que con ella podemos representar de
manera eficiente todo el mecanismo o funcionamiento de los agentes móviles aglets. El objetivo es
realizar consultas y recuperar información de una base de datos distribuida haciendo uso de la
tecnología de aglets.
La arquitectura final de nuestro sistema se ilustra en la figura 2. Los principales componentes del
sistema se implementaron de la siguiente manera:
1. Sistemas Operativos. Para conseguir la heterogeneidad de software se han seleccionado dos
sistemas operativos diferentes. El primer servidor ubicado en la parte superior de la figura,
Encuentro de Investigación en IE, 17—18 Marzo, 2005
343
corresponde al sistema operativo Windows NT 4.0. Los dos servidores restantes cuentan con el
sistema operativo Linux RedHat 7.2. El sistema operativo de las estaciones cliente, representadas
por el nodo a la izquierda de la figura, debe ser indiferente.
2. Base de Datos Distribuida. Para esta base de datos se requiere de al menos dos DBMS
diferentes. Por sus características, ventajas y compatibilidad con los sistemas operativos
anteriormente mencionados se ha seleccionado Microsoft SQL-Server 2000 corriendo sobre
plataforma Windows NT y MySQL Server implementada sobre plataforma Linux RedHat.
3. Controladores JDBC. La tecnología JDBC nos permite una fácil conexión a las bases de datos,
Figura 2. Arquitectura Final del Sistema.
debemos seleccionar el controlador adecuado para cada manejador de base de datos y sistema
operativo.
4. Servidores de Agentes Aglets. Como podemos ver en la figura 2, todos los equipos, tanto
servidores como la estación cliente deben tener un servidor de agentes o Tahití ejecutándose. Esto
es absolutamente necesario, ya que de esta aplicación depende una ejecución segura de los aglets.
5. Agente Aglet Maestro. Lo hemos nombrado SecpiMasterAglet. Es un agente estacionario.
Debe mantenerse ejecutando en ambos lados de la aplicación, en los servidores y en las estaciones
cliente. Así, permite a los servidores hacer al mismo tiempo el papel de clientes y viceversa. En el
lado del cliente realiza la función más importante, funciona como web server, de manera que puede
ser visible en un navegador web. Presenta al usuario una interfaz amigable para realizar las
consultas a las bases de datos. En el momento en que el usuario lo solicita se encarga de enviar o
despachar los aglets esclavos con la información necesaria para realizar la consulta. Detecta los
mensajes entrantes con los resultados de la consulta. Estos resultados son desplegados en la misma
Encuentro de Investigación en IE, 17—18 Marzo, 2005
344
interfaz. En el lado del servidor se encarga de detectar, recibir y administrar a los aglets esclavos.
6. Agentes Aglets Esclavos. Los hemos nombrado SecpiSlaveAglets. Son agentes móviles. Estos
agentes viajan a través de la red, son creados por el Aglet Maestro y en el nodo destino realizan la
conexión con la base de datos a través de controladores JDBC.
7. Navegador web. El usuario requiere de un navegador web que le permita tener acceso a la
interfaz del Servidor Web de Aglets generada por SecpiMasterAglet.
IV. RESULTADOS EXPERIMENTALES
Demostramos exitosamente que es posible resolver los problemas de heterogeneidad de redes.
Jugaron el papel de clientes y servidores equipos con diferentes características de hardware y
software. Este conjunto de equipos bien pueden representar el escenario de una red común de
computadoras. Por lo tanto percibimos que nuestro sistema es adaptable a cualquier red
heterogénea.
El demostrar que el ancho de banda de la red que ocupa una aplicación basada en agentes móviles
es reducida nos llevó a la necesidad de monitorear el tráfico en la red.
Se seleccionó una herramienta para monitorear el tráfico actual de la red, ésta nos proporciona
datos interesantes como el promedio de tráfico observado durante el tiempo de captura y el
porcentaje de utilización de la red.
Se tomaron diferentes muestras evaluando las consultas para los casos de un cliente y dos clientes
simultáneamente. También se desarrolló una aplicación similar con la ayuda de un lenguaje visual y
se tomaron muestras de utilización de la red con el fin de comparar nuestra aplicación con una
sistema tradicional.
Los resultados obtenidos demuestran que el tiempo de respuesta de la consulta es mayor en
Figura 3. Comparación con un sistema tradicional.
nuestro sistema basado en agentes, sin embargo el ancho de banda (bytes o paquetes por segundo)
es mucho menor.
Los datos que nos arroja el análisis de consultas con diferentes densidades demuestran que el
aprovechamiento del ancho de banda por parte de los agentes es mejor entre más densa sea la
Encuentro de Investigación en IE, 17—18 Marzo, 2005
345
consulta. Para nuestra consulta más densa el sistema basado en aglets ocupó el 18.64% del ancho de
banda que ocupó el sistema tradicional (figura 3).
V. CONCLUSIONES
La tecnología de agentes móviles proporciona una solución al derroche de ancho de banda que se
produce en la red. Una transacción realizada entre un cliente y el servidor puede requerir varios
viajes por la red para completarse, cada uno de los cuales provoca cierto tráfico de datos. Aplicando
a este problema la tecnología de agentes móviles se puede crear un agente que, dada la transacción
a realizar, se traslade desde el cliente al servidor, complete en él la operación y regrese con los
resultados, necesitando de esta manera sólo dos viajes, eliminando todo el tráfico intermedio de
datos y resultados.
En los sistemas basados en agentes móviles tanto los datos como el código son móviles, es decir:
es la computación misma la que se traslada hasta el sistema remoto a través de la red, mientras que
en los modelos anteriores de objetos distribuidos lo que realmente se transmite son las llamadas a
métodos remotos. Estamos convencidos de que los agentes móviles representan un nuevo
paradigma para la computación distribuida sobre Internet.
En el desarrollo de esta aplicación creemos conseguir un patrón de diseño para futuras
aplicaciones que requieran esta misma funcionalidad, esto es, la recuperación de información de
bases de datos distribuidas.
Quizá debamos considerar que la mayor parte de las ventajas de este sistema sobre otros sistemas
de agentes son gracias a los beneficios que obtiene de su plataforma, ya que Java les proporciona:
portabilidad, seguridad y robustez.
El aspecto de seguridad en los aglets, así como en cualquier sistema de agentes móviles es el mas
difícil de resolver, aunque existe la propuesta de un modelo de seguridad se visualiza aún mucho
trabajo futuro en este aspecto. Proponemos como trabajo futuro la investigación e implementación
de un modelo de seguridad en el presente trabajo o en alguna aplicación propia para agentes
móviles.
Se exige al programador muchos conocimientos para aplicaciones demasiado simples. Para una
sola aplicación se requieren de muchas horas de programación usando esta tecnología mientras que
al realizarla con otro sistema se requeriría de un tiempo mínimo. Un reto para esta tecnología es
crear un entorno de programación mucho más fácil y rápido de entender.
La lista de correos de aglets creada por Sourceforge nos fue de gran utilidad para el desarrollo de
este proyecto.
Por último, aunque esta tecnología emergente es muy joven aún y no ha logrado consolidarse,
creemos oportuna contemplarla como una brillante opción a tener en cuenta en el área de ingeniería
de sistemas.
REFERENCIAS
[1]
Franklin, Stan y Graesser, Art. 1996. Is it an Agent, or just a Program?: A Taxonomy for Autonomous Agents. Proceedings of the
Third International Workshop on Agent Theories, Architectures, and Languages. Institute for Intelligent Systems, University of
Memphis. Berlin, Springer-Verlag.
Encuentro de Investigación en IE, 17—18 Marzo, 2005
[2]
346
Lange, Danny B. y Oshima, Mitsuru. 1998. Programming and Deploying Java Mobile Agents with Aglets. Editorial AddisonWesley. United States of America.
[3] Pavón Mestras, Juan. 1999. Tutorial: Agentes Móviles. Simposio Español de Informática Distribuida. Departamento de Sistemas
Informáticos y Programación, Universidad Complutense de Madrid.
[4] Lange, Danny B. y Oshima, Mitsuru. 1999. “Seven Good Reasons for Mobile Agents”. Communications of the ACM. Marzo. Vol.
42, No. 3.
[5] “The Java Language: an Overview”. (Documento web). http://java.sun.com/docs/overviews/java/java-overview-1.html
[6] “What is Java Technology?”. (Documento web). http://java.sun.com/java2/whatis/
[7] Tai, Hideki y Kosaka, Kazuya. 1999. “The Aglets Project”. Communications of the ACM. Marzo. Vol. 42, No. 3. New York.
[8] “Open Source”. (Sitio web). http://www.opensource.org
[9] Venners, Bill. 1997. “Solve real problems with aglets, a type of mobile agent”. Java World - Under the Hood Magazine. Mayo.
[10] Kiniry, Joseph y Zimmerman, Daniel. 1997. “A Hands-on Look at Java Mobile Agents”. IEEE Internet Computing. Julio-Agosto.
[11] “IBM Japan Research Group Aglets Workbench”. (Sitio web). Marzo del 2002. http://www.trl.ibm.co.jp/aglets/index.html
Descargar