Vous êtes sur la page 1sur 7

Agentes Móviles

Lic. Aldo R. Valdez Alvarado


aldo_valdez@hotmail.com

RESUMEN necesitan conocerlos explícitamente (ni cuántos, ni cuáles), ellos


En el presente artículo se intenta dar una visión general de los solamente saben que hay recursos en la red y conocen su nombre
Agentes Móviles desde la perspectiva de los Sistemas o identificador, de tal forma que pueden acceder a ellos de igual
Distribuidos y la Inteligencia Artificial, como una forma de manera que acceden a los recursos locales (por su nombre), sin
mostrar como la aplicabilidad de esta ultima sobre los Sistemas tener que conectarse (explícitamente) en ningún caso a la máquina
Distribuidos. propietaria para utilizar el recurso. Es más, ni siquiera necesita
conocer el nombre de la máquina que alberga el recurso. Como
podemos ver, la diferencia fundamental entre los sistemas en red
Palabras Clave y los sistemas distribuidos es la transparencia. En el sistema
Agentes Móviles, Agentes de Software, Agentes Inteligentes, distribuido, la composición y estructura de la red le pasa
Agentes Móviles, Consistencia, Cliente/Servidor, Marshalling, desapercibida al usuario, es decir, ni la ve ni le importa.
Redes, Sistemas Distribuidos, Transparencia, Unmarshalling. Solamente le importan los recursos disponibles o, a veces,
simplemente el tipo de los recursos disponibles, sin tener en
1. INTRODUCCIÓN cuenta en qué máquina están realmente ubicados.
El uso masivo de las redes de computadoras y los problemas aun
existentes en los sistemas distribuidos, permiten la aparición de 2.1 Definición
los Agentes Móviles a través de la Programación Remota que Aunque el concepto ya tiene bastantes años, todavía está en
representa un nuevo paradigma de programación para el completo desarrollo, y hay distintas ideas y opiniones sobre lo
desarrollo de aplicaciones en red, alternativo a los modelos típicos que debe ser un sistema distribuido. Una de las definiciones más
Cliente/Servidor. En determinadas aplicaciones estos agentes populares es la de Lamport: “Un Sistema Distribuido es aquel que
móviles representan una solución ideal debido a que, permiten la deja de funcionar cuando se estropea una máquina de la que ni
reducción de la carga de tráfico por la red, mejoran la latencia de siquiera habíamos oído hablar”.
la red, eliminan potenciales limitaciones físicas en la máquina del Más formal es la definición que cita Tanenbaum: “Se trata de un
cliente. Además los agentes móviles tienen como principal conjunto de ordenadores independientes e intercomunicados por
característica, la delegación de tareas que requieren la visita de una red y provistos de software distribuido, tal que el usuario lo
diversas plataformas o entornos de ejecución por la red, por eso percibe como si se tratara de un único ordenador”. Como
estos tienen la capacidad de operar asíncrona y autónomamente ejemplo se tiene la red de redes como lo es Internet, ver la
del proceso que los creó. Por todo lo anterior, un agente móvil siguiente figura.
puede ejecutar sus tareas aun cuando la conexión con la red no
esté operativa; es decir, si el agente necesita trasladarse o volver y
la red no está activa, el agente puede esperar o desactivarse hasta
que la conexión se restablezca. Por consiguiente, la conexión se
puede cortar y el agente móvil puede seguir trabajando, cosa que
no ocurre en los modelos cliente-servidor. Todo ello, hace que los
agentes móviles sean particularmente idóneos en conexiones
frágiles y costosas o con un ancho de banda reducido.

2. SISTEMAS DISTRIBUIDOS
Desde la aparición de los primeros ordenadores comercialmente
disponibles halla por los años 50, los grandes ordenadores
centralizados multiusuario por los años 60 y 70, el desarrollo de Figura 1. Estructura Típica de Internet
los potentes microprocesadores que dieron lugar a la aparición
También tenemos a Coulouris [5] con la siguiente definición: “Un
de la PC o Computadora Personal por los años 80; estos siempre
sistema distribuido es aquel en el que los componentes
han presentado ciertos problemas, ya sean los relacionados a los
localizados en computadores, conectados en red, comunican y
costos elevados, o su poco aprovechamiento en términos de
coordinan sus acciones únicamente mediante el paso de
rendimiento, o la posibilidad de administrar otro tipo de recursos
mensajes”.
(como por ejemplo impresoras o procesadores especializados). En
ese contexto aparecen la redes de computadoras de alta velocidad, Lo que debe quedar claro es que el objetivo primordial de los
y la solución a esto ultimo con la unión de los computadores sistemas distribuidos es el compartimiento fácil y eficiente de los
personales y las redes LAN, que permiten la aparición de los recursos entre múltiples usuarios.
Sistemas de Red. El siguiente paso fue el de los Sistemas Un sistema distribuido se puede definir como un conjunto
Distribuidos. Con estos sistemas, los usuarios pueden saber que cooperante y transparente de componentes de hardware y
hay multiplicidad de estaciones y equipos en la red, pero no
software remotos que se comunican entre sí mediante el 3. AGENTES DE SOFTWARE
intercambio de mensajes y que presenta dos características
fundamentales: 3.1 Definición de agentes
La palabra agente deriva de otra, robota [9] (o robot), de origen
• Está basado en una arquitectura en dos y tres niveles. checo cuyo creador fue el escritor checo Karel Kapec que usó
• Define un servicio particular ofrecido en una red de dicha palabra en una novela (Opilek) y posteriormente en una
computadoras. obra de teatro (Rossum Universal Robots). Aunque durante siglos
han existido autómatas de muy diversos tipos, especialmente
2.2 Características de los Sistemas como mecanismos de relojería y ha habido alguna obra influyente
Distribuidos al respecto (Julián La Mettrie: L´Homme Machine) no es hasta la
Un sistema distribuido puede verse como un sistema formado por segunda guerra mundial y el desarrollo de las computadoras
varios ordenadores haciendo algo conjuntamente, de lo que se cuando empieza a cobrar importancia todo lo relacionado con los
desprenden tres características inmediatas: agentes o robots, especialmente de la mano del padre de la
cibernética, Norbert Wiener. Sin embargo, el término agente, tal y
• Compuesto por múltiples ordenadores.
como se entiende actualmente, procede de los trabajos
• Hay interconexión entre ellos. comenzados en 1950, fundamentalmente, por parte del padre de la
• Tienen un estado compartido. inteligencia artificial, John McCarthy, el cual definió un agente
como un programa robot viviendo y trabajando en una
Entre algunas otras características que se consideran computadora e interactuando con el exterior en términos próximos
fundamentales tenemos [7]: al modelo humano. Quiere decir esto, que la primera disciplina
a) Consistencia. Un sistema distribuido es un único informática en estudiar el mundo de los agentes, o los sistemas
sistema formado por múltiples máquinas compuestos por múltiples agentes, fue la inteligencia artificial y
independientes. Ya que es un único sistema, debe tener más en concreto la inteligencia artificial distribuida [6] (DAI); la
un único estado global compartido por todos los equipos cual se divide, a su vez, en dos grandes áreas: Resolución
que lo componen. El estado global se refiere a datos: distribuida de problemas (DPS) y sistemas multiagente (MAS).
como tablas de mantenimiento del sistema, la hora Conviene resaltar que DAI se centra principalmente en la
actual o datos que estén compartidos por procesos de investigación de agentes estáticos o fijos en una máquina sin
distintas máquinas. capacidad de moverse por la red.
b) Transparencia. La construcción de un sistema
distribuido que se comporte según esperan los usuarios, Aunque el término agente no es un término nuevo, no hay todavía
requiere la consideración de otras características, que en una definición estandarizada y aceptada por todos. A la hora de
principio diremos que son deseables tales como: definir un agente, existe una clara controversia entre los
Compartimiento de Recursos, Sistema Abierto, investigadores en función de sus características.
Escalabilidad, Tolerancia a Fallos y Seguridad. Un
sistema que reúna todas estas propiedades conseguirá 3.2 Características de los Agentes
entonces la principal característica deseada por el Podemos reconocer dos tipos de características: las fundamentales
usuario: la TRANSPARENCIA, es decir, su sistema y las adicionales.
distribuido va a comportarse de manera ideal sin que el ¾ Características fundamentales:
usuario se aperciba en ningún momento de los posibles 9 Autonomía: Independencia de actuación, es decir, sin
y normales problemas que pueden producirse en el sufrir la intervención directa de nadie.
sistema (en las máquinas que lo componen). 9 Flexibilidad:
ƒ Reactividad-Adaptabilidad: Perciben, se adaptan
2.3 Modelos de Cliente/Servidor para el al entorno y actúan en él.
desarrollo de Aplicaciones Distribuidas ƒ Proactividad: Capacidad de tomar la iniciativa.
Para el desarrollo de aplicaciones distribuidas o en red según el ƒ Comunicabilidad – Sociabilidad: Acceso a
modelo cliente-servidor, existen los siguientes modelos [4]: recursos y capacidad de interacción con otras
¾ Modelos basados en llamadas a funciones, Sockets. entidades.
¾ Modelos basados en llamadas a procedimientos 9 Continuidad Temporal: Proceso en continua ejecución.
remotos, RPC (Remote Procedure Call). ¾ Atributos adicionales:
¾ Modelos basados en llamadas a objetos distribuidos, 9 Movilidad (Agentes móviles): Migrar, interactuar y
RMI (Remote Method Invocation), JINI, CORBA, regresar bajo su propio control.
COM+ (Common Object Model Plus), Enterprise Java 9 Capacidad de Razonamiento/Aprendizaje: Inteligencia.
Beans. 9 Seguridad/Confiabilidad: Mecanismos y servicios de
¾ Modelo basado en servicios Web distribuidos, es una seguridad para evitar sorpresas por parte del agente
tecnología que, a su vez, utiliza los siguientes representante y/o de otras entidades.
estándares, XML, SOAP, WSDL, UDDI. En función de lo anterior, cuando se define un agente se
¾ Modelos basados en agentes móviles. establecen dos tipos de visiones:
¾ Visión amplia - Atributos mínimos:
9 Autonomía.
9 Flexibilidad:
• Reactividad-Adaptabilidad,
• Proactividad dispone de un conjunto más o menos amplio de atributos entre los
• Comunicabilidad-Sociabilidad que destaca la movilidad en el sentido de que no está limitado al
9 Continuidad Temporal sistema donde comienza la ejecución sino que tiene la completa
¾ Visión estricta.- Atributos opcionales añadidos a los mínimos libertad para viajar, es decir, migrar, interactuar y regresar bajo su
o básicos. propio control.
9 Movilidad Como se muestra en la siguiente figura, los agentes móviles son
9 Capacidad de Razonamiento-Aprendizaje funcionalmente objetos de software [3] que transportan en un
9 Seguridad-Confiabilidad mensaje su estado y código para poder interactuar remotamente
Según se muestra en la siguiente figura, la definición más con otros agentes o recursos. Para que el agente móvil pueda
completa de un agente sería aquélla que junte los atributos básicos interactuar con otros agentes o recursos afines es necesaria la
de la visión amplia con los atributos opcionales de la visión definición de un protocolo que especifique el formato de los
estricta. En definitiva, esta definición se correspondería con todos mensajes y las acciones que se han de efectuar. En el mensaje
los atributos que en teoría debe disponer un agente móvil, transportado por el agente móvil se incluye un:
inteligente y seguro. a) Estado: Como su nombre indica, contiene el estado del
objeto o los valores de los atributos del agente y el
estado de la máquina o estado de ejecución (contador de
programa, punteros de pila, registros, etc.).
b) Código: Incluye la clase con los métodos de interacción
permitidos.

Figura 2. Un Agente móvil, inteligente y seguro. Figura 3. Agentes como Objetos


Como ya se ha indicado, cuando un agente se mueve, realiza una
3.3 Tipos de Agentes migración suspendiendo la ejecución, transportándose a otra
Si la definición de un agente es algo compleja, su clasificación plataforma en la red y reanudando la ejecución en el punto en que
también lo es ya que la taxonomía de los agentes es muy amplia y se suspendió. En este contexto, existen dos tipos de migración que
variada. Para una mayor comprensión, este artículo clasifica los se diferencian por el transporte de más o menos información o
agentes de software desde la perspectiva de los sistemas datos de estado:
distribuidos, en dos grandes tipos y con las siguientes • Migración fuerte: Transporta el estado del objeto
características: (valores de los atributos del agente) y estado de la
9 Agentes estáticos: máquina o estado de ejecución (contador de programa,
• Ejecución limitada al sistema donde se inicia. punteros de pila, registros, ...). Es la “foto completa”,
• Interactúan con entidades locales: agentes, programas, justo cuando se suspende la ejecución para su posterior
usuarios. reanudación en el entorno de otra máquina.
• Accesos a recursos remotos vía sockets, RPC, RMI, • Migración débil: Transporta sólo el estado del objeto
CORBA, etc. (valores de los atributos del agente). Es la “foto
9 Agentes móviles: incompleta” que permite sólo reiniciar la ejecución con
• Capacidad de movimiento: Migración. los valores actuales de los atributos.
• Interacción directa con entidades remotas: Con respecto al transporte de la otra parte del mensaje de un
Programación Remota. agente móvil, es decir, el código de la clase, se presentan tres
• Transportan un mensaje: Estado (datos) y código posibilidades:
(proceso o clase). A. El código se encuentre disponible en la plataforma de
destino ya sea en la memoria caché de clases o en el
4. AGENTES MÓVILES sistema local de ficheros. Consecuentemente, no es
Un agente móvil es un proceso situado en una plataforma o necesario transportar dicho código en el mensaje del
entorno de ejecución [1] para actuar en representación agente.
básicamente de una persona u organización, y llevar a cabo una B. El código se encuentre disponible sólo en la plataforma
tarea para la cual ha sido especialmente designado. Asimismo, de origen. Este es el caso más frecuente y, por tanto, es
necesario su transferencia en el mensaje del agente con 9 El agente móvil realiza una copia inteligente
la lógica penalización del tráfico de la red. de una información que se actualiza a
C. El código se encuentre en un servidor de clases. Se determinadas horas del día o la noche.
procede a recuperarlo bajo demanda desde la plataforma • Diseminación de la Información:
de destino. 9 El agente móvil lleva a cabo una distribución
Llegados a este punto, es importante distinguir ahora entre objetos interactiva de noticias o publicidad a grupos
y agentes móviles [2]. Aunque los agentes son funcionalmente interesados.
objetos, existen, entre otras, las siguientes diferencias: • Negociación:
• Un objeto no es un agente móvil ya que un agente móvil 9 Los agentes móviles negociadores efectúan
es más que un objeto, es decir, es autónomo, flexible, una planificación de reuniones en nombre de
etc. sus representados.
• Un objeto no tiene autonomía sobre su comportamiento • Comercio Electrónico:
a la hora de ejecutar o no un determinado método. 9 El agente móvil localiza productos y precios
• Un objeto no es flexible, es decir, no combina un para, finalmente, llevar a cabo una
comportamiento reactivo, proactivo y sociable. comparación, negociación y compra.
• Desde un agente móvil no se invoca un método sino que • Entretenimiento:
se realiza una solicitud de servicio que el agente llevará 9 El agente móvil se programa con una
a cabo o no. determinada estrategia para su posterior envío
Se recuerda que la migración de un agente consiste básicamente a un servidor de juegos. Opcionalmente, se
en suspender la ejecución, transportarse a otra plataforma en la puede establecer todo un itinerario de
red y reanudar la ejecución en el punto en que se suspendió. Así servidores de juegos.
en el lado del emisor (plataforma de origen) se suspende la • Subastas:
ejecución y se serializa al agente, es decir, se serializa su estado y 9 El agente móvil se programa con una
código en un determinado formato de serialización o de determinada estrategia para su posterior envío
transferencia, es decir, en un flujo de octetos (stream) transferible a un servidor de subastas. Opcionalmente, se
capaz de ser transportado por la red y restaurado en el lado puede establecer todo un itinerario de
receptor (plataforma de destino). Seguidamente, se efectúa el servidores de subastas.
marshalling, es decir, se toman los datos serializados y se
codifican en un formato o sintaxis común de codificación,
representación y transferencia. Finalmente, se transmite al agente, 4.1 Sistemas de Agentes
por ejemplo, vía sockets, RPC, Java RMI, CORBA IIOP, etc. A Un sistema de agentes (SA) o agencia es una plataforma o entorno
su vez, en el lado del receptor (plataforma de destino) se realiza el de ejecución de agentes que permite, fundamentalmente, la
proceso contrario o unmarshalling, es decir, se decodifican los creación, suspensión, terminación y ejecución inicial de un agente
datos serializados para luego deserializar los octetos de dichos o retomar su ejecución, posibilitando la comunicación entre
datos al formato nativo de la nueva máquina; con el objetivo final agentes y sus transferencias.
de poder reiniciar (migración débil) o reanudar (migración fuerte)
la pertinente ejecución. Para finalizar con esta introducción y
descripción de generalidades sobre agentes móviles sólo indicar
que se pueden aplicar los agentes móviles en muchos escenarios
como por ejemplo:
• Recopilación de información de estado:
9 El agente móvil recoge información
diseminada por la red.
9 Se establece un itinerario para que un agente
móvil viaje secuencialmente por una red de
área local recopilando, por ejemplo,
información sobre el estado de
almacenamiento de los discos duros de las
máquinas servidoras de la organización.
• Búsqueda y Filtrado de Información:
9 El agente móvil parte de un conocimiento de
las preferencias del usuario y elimina la Figura 4. Sistema de Agentes en una Máquina
información irrelevante.
• Monitorización de Noticias: Por tanto, un sistema de agentes es responsable de efectuar las
9 El agente móvil se envía para que esté a la siguientes funciones:
escucha de ciertos tipos de información y 9 Coordinar todas las acciones entre agentes.
recoja una determinada información 9 Garantizar la seguridad del sistema interactuando con
diseminada por la red a través del tiempo otras agencias y evitando la llegada de agentes
• Copia o mirroring: procedentes de agencias maliciosas.
9 Permitir la asociación con un representado (autoridad) que
identifique a una persona u organización.
9 Disponer de un tipo que, a su vez, describa parte del perfil 4.2 Lenguajes de Programación para el
de un agente. El perfil compleo de un agente queda
definido por los tres siguientes parámetros: Tipo del SA, desarrollo de Sistemas de Agentes
lenguaje y método de serialización. En un principio se puede utilizar cualquier lenguaje de
9 Disponer de uno o varios lugares (entornos específicos de programación aunque no esté específicamente diseñado para el
ejecución) en función de los intereses y objetivos de los desarrollo de los agentes móviles y sus plataformas o entornos de
agentes). ejecución (los SA). Este tipo de lenguajes obliga al programador a
9 Disponer de un servicio de nombres que permita encontrar desarrollar al agente móvil desde cero teniendo que incluir
agentes y lugares locales. En este contexto, cada agente aquellas funciones, operaciones y comandos que soporten las
dispone de un identificador global y único formado por la características de la teoría de agentes que desee añadir. En este
concatenación de las siguientes informaciones: Autoridad contexto, se destacan los siguientes lenguajes:
representada, SA, lugar, un valor o identificador y la 9 Lenguajes de propósito general: Java, C, C++, etc.
dirección IP de la máquina. 9 Lenguajes interpretados y procedimentales basados en
9 Disponer de una infraestructura de comunicaciones (IC) comandos (scripts): Tcl, Phyton, Perl, etc.
que ofrezca los pertinentes servicios de transporte entre Si no se desea utilizar un lenguaje de propósito general o
los SA. procedimental basado en scripts, se puede utilizar, como
El hecho de que los agentes móviles no actúan de forma aislada se alternativa ideal, un lenguaje especialmente diseñado para el
puede ver todavía de una forma más clara a través del concepto de desarrollo de agentes móviles, es decir, que soporte la
región que permite a una autoridad estar representada por uno o programación orientada a este tipo de agentes. Estos últimos
más SA. Una región contiene uno o más SA con la misma lenguajes se caracterizan porque son interpretados y orientados a
autoridad, pero no necesariamente con el mismo tipo de sistema objetos y disponen de todas aquellas funcionalidades y
de agente. capacidades integradas para dar soporte a las principales
características de los agentes móviles como son la autonomía,
migración, reactividad, proactividad, seguridad, etc. Un ejemplo
de esto último, es el lenguaje Telescript similar a Java y que fue el
primer lenguaje en ser especialmente diseñado y utilizado para
desarrollar el primer sistema de agentes del mismo nombre. Sin
embargo, en la actualidad la mayoría de los sistemas de agentes
(Aglets, Mole, Odissey, Voyager, Grasshopper, ...) se basan en el
lenguaje Java ampliado con nuevas clases para soportar
características o atributos de la teoría de agentes móviles.

4.3 Lenguajes para la comunicación entre


Agentes Móviles
Igual que se ha dicho para los lenguajes de desarrollo de agentes
móviles, lo mismo se puede decir para el caso de la comunicación
entre éstos en los correspondientes entornos de ejecución.
Teniendo en cuenta que el modelo de comunicación de los
mensajes es por paso de mensajes; en principio, se puede utilizar
cualquier lenguaje de programación aunque no esté
específicamente diseñado ni para el desarrollo ni la comunicación
Figura 5. Relación Agentes y Regiones entre los agentes móviles. Por consiguiente, el programador debe
implementar aquellas clases, funciones, procedimientos,
Asimismo, una región es responsable de lleva a cabo las comandos, etc., que permita crear, enviar y recibir los datos de los
siguientes funciones: correspondientes mensajes. En este contexto, se destacan los
9 Facilitar la gestión de los componentes distribuidos (los siguientes lenguajes:
SA, lugares, agentes). 9 Lenguajes interpretados y procedimentales basados en
9 Mejorar la escalabilidad (mejor distribución de carga a scripts: Tcl, Pitón, Perl, etc.
través de múltiples SA). 9 Lenguajes orientados a objetos: Java ampliado,
9 Mejorar el control de acceso y la seguridad. Telescript, etc.
9 Disponer de un servicio de nombres al cual se conectan
los servicios de nombres de cada SA. En este contexto, conviene reseñar que existen los siguientes tres
9 Interconectarse con otras regiones a través de los esquemas para el paso de mensajes entre agentes móviles:
llamados puntos de acceso a la región (SA externas), los 1. Paso síncrono de mensajes (parada y espera): El emisor
cuales pueden compartir un mismo servicio de nombres bloquea su ejecución cada vez que trasmite un mensaje
(previo acuerdo entre sus autoridades). Un punto de hasta que el receptor responde al mismo. Este esquema de
acceso a la región es otro SA que mantiene información parada y espera es el más popular y, por tanto, el más usado.
de todos los SA de la región. 2. Paso asíncrono de mensajes basado en dos envíos: Ahora, el
emisor no tiene que esperar hasta que el receptor responda y
envíe la respuesta. Este esquema es más flexible y
especialmente útil cuando múltiples agentes interactúan con
uno. Para su correcta implementación es necesario mantener http://sourceforge.net/projects/aglets. Muy documentado y
en el emisor un identificador del mensaje enviado para no con abundantes ejemplos. Es de libre distribución con un
tener que bloquear la ejecución actual e ir preguntando en interfaz de programación basado en Java (Java Aglet API o
determinados momentos si hay una respuesta para el J-AAPI) y un Servidor de aglets (Tahiti). Posiblemente, uno
mensaje transmitido. de los SA más conocidos y utilizados actualmente. No
3. Paso asíncrono de mensajes basado en un envío: Por ser un proporciona soporte (clases de agentes reactivos, proactivos,
esquema asíncrono, al igual que en el esquema anterior, no ...) para desarrollar agentes. Proporciona soporte para
se bloquea la actual ejecución. Ahora, el emisor no retiene implementar objetos móviles. Un aglet es un objeto móvil
el identificador del mensaje y el receptor no tiene que escrito en Java. Migración débil. Componentes claves:
responder. Obviamente, este esquema es muy útil cuando el 9 LENGUAJE JAVA: Método de serialización de objetos
agente que transmite un mensaje no espera la pertinente Java (JOS).
respuesta. 9 Proxy u objeto representante.
Si no se desea utilizar un lenguaje orientado a objetos o 9 Paso de mensajes: Métodos específicos de Java.
procedimental basado en comandos (scripts), se puede usar, como 9 Protocolo de transporte de agentes aglets (ATP).-
alternativa ideal, un lenguaje especialmente diseñado para la Ubicado en el nivel de aplicación para construir un
comunicación entre los agentes móviles. Estos lenguajes se bloque de datos: Nombre del SA, identificador del
conocen como declarativos o próximos al modelo humano en el agente y cadena de octetos con el estado y código
sentido de estar basados en sentencias declarativas. Entre dichos procedente del nivel de ejecución de los aglets.
lenguajes se destacan los siguientes: 9 No contempla comunicaciones seguras dejando libertad
9 KQML (Knowledge Query Management Language) de a las plataformas para utilizar otros protocolos seguros
DARPA; sintaxis normalizada de comunicación entre (SSL).
agentes de sistemas heterogéneos.
9 FIPA; sintaxis similar a KQML 6. CONCLUSIONES
Se destaca, que estos dos últimos lenguajes están más pensados La conjunción de dos áreas de la Informática en constante
para la comunicación entre agentes estáticos típicos en el contexto desarrollo como lo son la Inteligencia Artificial y los Sistemas de
de la Inteligencia Artificial que para la propia comunicación entre Software Distribuido, ha posibilitado la implementación de los
agentes móviles. Agentes Móviles como otro modelo que permite el acceso, la
administración de Sistemas de Software Distribuido. Los agentes
5. SISTEMAS DE AGENTES móviles basados en la programación remota y la orientada a
Seguidamente, se describen brevemente algunos, de los muchos, objetos esta especialmente diseñada para aplicaciones distribuidas
SA implementados en la actualidad: que requieren la vista de diversas plataformas o entornos de
1. TELESCRIPT . Diseñado por James White (1994) en la ejecución por la red.
empresa General Magic, Incorporated (California):
http://www.genmagic.com. Fue la primera plataforma
7. BIBLIOGRAFÍA
comercial (SA) para el desarrollo y ejecución de agentes
[1] Agha G. ACTORS: A Model of Concurrent Computation in
móviles, primera en el desarrollo de un comercio electrónico
Distributed Systems. The MIT Press: Cambridge, MA, 1986.
basado en agentes móviles. Basada en conceptos utilizados
en MASIF (CORBA). El código fuente no esta disponible. [2] Agha G., Wegner P., y Yonezawa A., Editores. Research
Conceptos claves: Lugares y agentes. Componentes claves: Directions in Concurrent Object-Oriented Programming. The
9 LENGUAJE TELESCRIPT: Basado en un lenguaje MIT Press: Cambridge, MA, 1993.
propietario orientado a objetos, similar a Java en cuanto [3] Booch G. Object-Oriented Analysis and Design (Segunda
a que es interpretado (máquina virtual Telescript) y Edición). Addison-Wesley: Reading, MA, 1994.
dispone de un modelo de seguridad. Utiliza clases para
crear y enviar mensajes. También cuenta con [4] Comer D. E. Internetworking with TCP/IP. Principles,
mecanismos de seguridad: autenticación y control de Protocols and Architectures. Vol. I, 4ª Edición, Prentice Hall,
acceso 2000.
9 Motor Telescript: Intérprete del lenguaje [5] Coulouris G.; Dollimore J.; Kindberg T. Sistemas
9 Protocolo de transporte Telescript.- Opera en dos Distribuidos: Conceptos y Diseño, Ed. Addison Wesley,
niveles: Nivel más alto: Codificación y decodificación 2001.
de los agentes. Nivel más bajo: Transporte de los [6] Lieberman H. “Leticia: An agent that assists web browsing”.
agentes. In Proceedings of the Fourteenth International Joint
Además presenta una migración fuerte. Sofisticado y Conference on Artificial Intelligence(IJCAI-95), Montréal,
relativamente costoso (96 Mbytes de memoria), como Québec, Canada, Agosto de 1995, pp.924-929.
antecedente en julio de 1995, NTT, AT&T y Sony
desarrollaron en Japón un servicio basado en Telescript. [7] Liu M.L. Computación Distribuida Fundamentos y
Actualmente General Magic ha suspendido el desarrollo de Aplicaciones. Ed. Addison Wesley. 2003.
nuevas versiones de Telescript. [8] Maes P. Agents that reduce work and information overload.
2. AGLETS (AGent+appLETS). Diseñado por Dany B. Lange Communications of the ACM, vol. 37(7) pp. 31-40, Julio
(1996) en el laboratorio de investigación de IBM en Tokyo 1994.
(IBM Tokyo Research Laboratory). Aglets Software
Development Kit (ADSK o Aglets Workbench):
[9] Russell S. and Norvig P. Artificial Intelligence: A Modern .
Approach. Prentice-Hall, 1995.

Vous aimerez peut-être aussi