AGENTES DE SOFTWARE MÓVILES -...

14
281 NÓMADAS AGENTES DE SOFTWARE MÓVILES Crisman Martínez Barrera * * Ingeniero de Sistemas. Profesor de la Escuela de Ingeniería de la Universidad Central de Bogotá. Candidato a Magíster en Teleinformática de la Universidad Distrital Francisco José de Caldas, Bogotá. Analista de sistemas y consultor en tecnologías de punta. E-mail: [email protected] Los agentes móviles son programas de software inteligen- tes que realizan un objetivo que involucran desarrollos sopor- tados en técnicas de Inteligencia Artificial, los cuales pretenden facilitar la interoperabilidad de sistemas. Este artículo define las disciplinas, plataformas y herramientas necesarias para el desarrollo de agentes móviles, sus características principales y las arquitecturas predominantes de éstas; presenta además una evaluación de sus perspectivas futuras. Mobile agents are intelligent software programs that can obtain an objective that involucrates developments supported in Artificial Intelligence techniques. These pretend to facilitate the interoperability of systems. This article defines disciplines, platforms and tools necessary for the development of mobile agents, their principal characteristics and the predominant architectures of these. A final evaluation and future perspectives are offered.

Transcript of AGENTES DE SOFTWARE MÓVILES -...

281NÓMADAS

AGENTES DESOFTWARE MÓVILES

Crisman Martínez Barrera*

* Ingeniero de Sistemas. Profesor de la Escuela de Ingeniería de la Universidad Central deBogotá. Candidato a Magíster en Teleinformática de la Universidad Distrital Francisco Joséde Caldas, Bogotá. Analista de sistemas y consultor en tecnologías de punta. E-mail:[email protected]

Los agentes móviles son programas de software inteligen-tes que realizan un objetivo que involucran desarrollos sopor-tados en técnicas de Inteligencia Artificial, los cuales pretendenfacilitar la interoperabilidad de sistemas. Este artículo definelas disciplinas, plataformas y herramientas necesarias para eldesarrollo de agentes móviles, sus características principalesy las arquitecturas predominantes de éstas; presenta ademásuna evaluación de sus perspectivas futuras.

Mobile agents are intelligent software programs that canobtain an objective that involucrates developments supportedin Artificial Intelligence techniques. These pretend to facilitatethe interoperability of systems. This article defines disciplines,platforms and tools necessary for the development of mobileagents, their principal characteristics and the predominantarchitectures of these. A final evaluation and futureperspectives are offered.

NÓMADAS282

En la actualidad, existe una gran variedad de pro-ductos de software disponible para los usuarios, la cualproporciona servicios en múltiples dominios; pero estasaplicaciones no son de gran utilidad si trabajan de formaaislada. Existe una demanda creciente que pide lainteroperabilidad entre programas para intercambiar in-formación y servicios para resolver problemas.

La interoperabilidad de sistemas encuentra su difi-cultad en la heterogeneidad, estas aplicaciones puedenestar desarrolladas en diferentes herramientas y sobre di-ferentes plataformas, dando como resultado diferentesinterfaces.

El software basado en agentes pretende facilitar lainteroperabilidad de sistemas(13). Los agentes de softwaremóviles proveen un bus software (conceptual) indepen-diente de: Quién los diseñó, Qué plataforma lo soporta,Cómo se programaron (lenguaje), y Dónde se ejecutan(14).

El software basado en agentes móviles pretende crear,gestionar, mantener, comunicar e inter-operar los siste-mas que están desarrollados en diferentes herramientas yplataformas. Un agente de software móvil tiene las ca-racterísticas de autonomía, sociabilidad, reactividad, pro-actividad, inteligencia y movilidad, como se explica masadelante.

Este artículo pretende introducir al lector en el mun-do de los sistemas multiagentes mediante la presentaciónde las características y estándares que rigen los agentes yque se han convertido en un punto de referencia inevita-ble para el futuro desarrollo de las tecnologías emergen-tes en Internet.

Agentes de Software Móvil

Los agentes móviles son programas de software inte-ligentes que realizan un objetivo y pueden estar cons-truidos con herramientas de desarrollo estructuradas,orientadas a objetos y/o concurrentes. Normalmenteinvolucran desarrollos soportados en técnicas de Inteli-gencia Artificial.

Los agentes actúan de manera autónoma; están pro-gramados para que perciban y aprendan de su entorno através de sensores, razonan sobre lo aprendido; eligen unao varias soluciones para resolver problemas o consultar

requerimientos automáticos o humanos; viajan sobre laplataforma de comunicaciones de una red LAN o WAN;sirven para automatizar tareas que se ejecutan repetida-mente en una red; se programan una única vez y poste-riormente no requieren manipulación humana.

Los agentes de software móviles aprenden de manerainteligente del entorno de red donde se ejecutan y sontransparentes en: quién los diseñó, qué plataforma lossoporta, cómo se programaron (lenguaje de desarrollo) ydónde se ejecutan.

Para desarrollar un agente de software móvil serequiere:

· Una plataforma de gestión de agentes: (Aglets,MOA, ARA, Grasshopper, Odyssey, JATLite).

· Una(s) herramienta(s) de desarrollo de software:estructurada (C), orientado a objetos (C++) oconcurrente (Java).

· Un entorno de red.

Es importante que para su desarrollo se tengan encuenta las normas de estandarización de las organizacio-nes internacionales. Algunas de ellas, las más importan-tes se mencionan en este artículo.

En este artículo se presentan algunas definiciones deagente, sus principales características, su arquitectura, lasorganizaciones de estandarización internacional, así comolas ventajas y desventajas de los agentes de softwaremóviles.

Definiciones de Agente

Actualmente hay tres disciplinas informáticas fun-damentales en el desarrollo y definición de agentes(1).

1. Inteligencia artificial.2. Programación orientada a objetos y programación

concurrente.3. Diseño de interfaces hombre-máquina.

La definición formal de agente de software es de lasgrandes ausentes cuando se trabaja con la tecnología deagentes. Cada autor frecuentemente da su propia defini-ción. Indicaré, a modo de ejemplo, las definiciones másusadas:

283NÓMADAS

Según el Diccionario de la Lengua Española(2):“Agente: Del latín agens, entis, p. a. de agere, hacer.

1. adj. Que obra o tiene virtud de obrar.2. m. Persona o cosa que produce un efecto.3. Persona que obra con poder de otro …”.

Según el Object Management Group (3): “Un agentees un programa de ordenador que actúa autónomamenteen nombre de una persona u organización”.

Según Russell y Norving en su artículo “ArtificialIntelligence: a Modern Approach”(4): “Un agente puedeverse como aquello que percibe su entorno a través desensores y que actúa sobre él, mediante efectores”.

Según Hayes-Roth(5): “Los agentes inteligentes rea-lizan continuamente tres funciones: percepción de lascondiciones dinámicas de un entorno, acción (que afec-ta a dichas condiciones) y razonamiento (para interpre-tar percepciones, resolver problemas, hacer inferencias ydeterminar acciones)”.

Según I.B.M. Aglets(5): “Los agentes inteligentes sonentidades programadas que llevan a cabo una serie deoperaciones en nombre de un usuario o de otro progra-ma, con algún grado de independencia o autonomía,empleando algún conocimiento o representación de losobjetivos o deseos del usuario”.

Desde mi punto de vista, los agentes móviles corres-ponden a un conjunto de instrucciones inteligentes querealizan un objetivo y pueden estar construidos con he-rramientas de desarrollo estructuradas, orientadas a ob-jetos y/o concurrentes.

Este agente actúa de manera autónoma, está progra-mado para que perciba y aprenda de su entorno a travésde sensores, razona sobre lo aprendido, elige una o variassoluciones para resolver problemas o consultar requeri-mientos automáticos o humanos, y puede o no viajar so-bre la plataforma de comunicaciones de una red LAN oWAN.

Para viajar sobre la arquitectura de gestión (Figura 1),el agente realiza los siguientes pasos:

1. Inicia la ejecución en el transmisor.2. Realiza o no una serie de eventos en el transmisor.

3. Suspende la ejecución en el transmisor.4. Transfiere el código por la red (canal de comuni-

caciones).5. Despierta en el receptor.6. Continúa su ejecución (en el receptor) en el pun-

to donde se había suspendido (en el transmisor).7. Realiza o no una serie de eventos en el receptor.8. Finaliza o suspende la ejecución para devolver el

requerimiento al transmisor.

Características de un Agente

Las características de un sistema de agentes de soft-ware móvil según el estándar FIPA (Foundation forIntelligent Physical Agents) son(6):

Autonomía

La autonomía es una de las características más im-portantes del concepto de agente. El software tradicio-nal suele ejecutarse en entornos interactivos de tal formaque responde a ordenes directas del usuario, es decir, elusuario tiene que decir paso a paso qué es lo que se tieneque hacer.

La idea de los agentes consiste en crear programasinformáticos que tengan una serie de objetivos y po-sean unos conocimientos del mundo, de tal forma quepartiendo de sus conocimientos, sean capaces de aproxi-marse lo más posible a sus objetivos sin necesidad deque ningún usuario los guíe paso a paso hacia ellos.

Sociabilidad

Cuando se habla de agente no se suele pensar en unaúnica entidad que se ejecuta de forma aislada. Más bien se

Figura 1. Ciclo de Ejecución de un Agente móvil.

NÓMADAS284

piensa en sistemas complejos (multi-agente) en los que unaserie de agentes colaboran entre sí para llevar a cabo unatarea. Este modelo denominado tradicionalmente como“divide y vencerás” presupone que los agentes son capacesde interactuar entre sí y al mismo tiempo, hacerlo con enti-dades externas al propio sistema como es el caso del usuario.

Reactividad

A pesar de su autonomía, un agente debe ser capaz depercibir estímulos externos tanto para actuar de acuerdoa su entorno cambiante como para poder “conocer” entodo momento cómo es el “mundo” que le rodea. Es de-cir, que el agente debe tener estímulos y actuar de acuer-do con ellos. Estos estímulos afectarán a las accionesrealizadas por él para alcanzar sus objetivos.

Pro-actividad

Es una de las consecuencias de la autonomía de unagente. Éste es capaz de elegir, en cada momento, cuálesson las acciones a realizar para alcanzar sus objetivos. Esdecir, un agente no solo actúa en función de los estímu-los que recibe desde el exterior, sino que puede ejecutaracciones como resultado de sus propias decisiones.

InteligenciaUn agente es inteligente si es racional, coherente,

adaptable y móvil, en mayor o menor medida. Podemosdecir que será más inteligente cuanto más desarrolladastenga estas características.

1. Racionalidad

La racionalidad es una característica propia del serhumano. Un agente se considera racional cuando tieneconocimientos de su entorno, objetivos deseables y re-glas que determinan cómo alcanzar los objetivos a partirdel conocimiento que se tiene del medio.

Esta característica le permite a un agente tomar de-cisiones sin la intervención humana. De momento enproblemas muy simples se está modelando la racionali-dad propia del hombre.

2. Coherencia

El conocimiento que un agente tiene de su mundo sealmacena en una base de datos de conocimiento interna

al propio agente. Todo este conocimiento debe guardarun alto grado de coherencia para que el comportamientodel agente sea el esperado.

3. Adaptabilidad

El aprendizaje o adaptabilidad es una de las caracte-rísticas más complejas que se le puede pedir a una enti-dad de software inteligente. Un agente aprende cuandoes capaz de aumentar su base de conocimiento y su basede reglas a partir de las percepciones que recibe del en-torno y de sus comportamientos anteriores a la hora deresolver problemas.

Ésta es una característica bastante deseable debido aque el entorno de un agente suele ser dinámico en eltiempo y es necesario que se adapte al mismo.

4. Movilidad

Ésta es una característica opcional que pueden po-seer los agentes. Un agente móvil es aquel que se pue-de mover físicamente por los nodos de una red parallevar a cabo sus tareas. El objetivo de la movilidadpuede ser una mejor distribución de la carga de proce-samiento, una mejor repartición de recursos, o una ló-gica distribuida.

Arquitectura de los AgentesMóviles

Uno de los objetivos más importantes de la tecno-logía de agentes móviles es la interoperabilidad entrediferentes sistemas de agentes. Para facilitar dichainteroperabilidad es necesario especificar de una for-ma estándar acciones como la transferencia de agen-tes y la transferencia de clases y operaciones de controlde los agentes. Cuando los sistemas de agentes de ori-gen y destino son similares (mismo lenguaje deimplementación), la estandarización de estas accionesasegura la interoperabilidad. Sin embargo, si los siste-mas son diferentes sólo una mínima interoperabilidadpuede conseguirse, ya que el código que se transfirierea un sistema con un lenguaje diferente no puede eje-cutarse(17).

Según las organizaciones de estandarización inter-nacional:

285NÓMADAS

1. OMG (Object Management Group)(7). MobileAgent System Interoperability Facilities (MASIF)

Dentro de la arquitectura de CORBA se contemplanlos agentes de software móvil (ASM) como objetosCORBA que tienen la posibilidad de moverse, ejecutar-se autónoma y asincrónicamente en sistemas de ejecu-ción seguros, y facilitar la creación de sistemas de agentesmóviles.

La arquitectura CORBA (Common Object RequestBroker Architecture) es una especificación estándar de unmodelo o protocolo de comunicación entre objetos dis-tribuidos. Está basada en un gestor de peticiones a obje-tos comunes y permite la interoperabilidad entreaplicaciones en máquinas remotas en un entorno distri-buido completamente heterogéneo como se observa:

Los clientes y servidores con ORB’s pueden encon-trase en la misma máquina o distribuidos, también pue-den estar implementados con el mismo lenguaje deprogramación o con diferentes (C++, Java, ADA, etc.).La implementación del ORB y de su interfaz con losclientes y servidores (así como la implementación deéstos) es dependiente del lenguaje empleado. Es nece-saria una interfaz y protocolo de comunicación entreORB´s independiente de su implementación. Para elloCORBA proporciona los puentes (bridges) y el proto-colo GIOP:

Arquitectura CORBA

Estandarización de sistemas de agentes en CORBA

Por otro lado, la implementación de una aplica-ción u objeto depende del lenguaje de desarrollo; sinembargo, para poder interoperar con otras aplicacio-nes u objetos, sólo es necesario disponer de susinterfaces. En el desarrollo de la implementación, lainteroperabilidad entre las aplicaciones u objetos, serealiza mediante referencias a los objetos implicados yutilizando sus interfaces. La arquitectura software queda soporte a esta interoperabilidad mediante el uso dereferencias es otro componente fundamental enCORBA llamado ORB (Object Request Broker). ORBes un objeto que gestiona las peticiones a los objetoscomunes, su implementación depende del lenguaje dedesarrollo utilizado aunque ofrece una funcionalidadcomún en todas las plataformas(17).

La interoperabilidad entre ORB’s resuelve el pro-blema de cómo un cliente con un ORB invoca las ope-raciones de un objeto en un servidor con otro ORB.

2. ARPA:

KSE (Knowledge Sharing Effort)Knowledge Querying and Manipulation Language

(KQML)Knowledge Interchange Format (KIF)(8)

El KSE (Knowledge Sharing Effort) es un consorciocentrado en el desarrollo de normas que facilitan la re-partición y reutilización de bases de conocimiento y sis-temas basados en el conocimiento.

Para KSE se requiere Sintaxis (KIF), Semántica(Ontolingua) y Pragmática (KQML), todos correspon-den al lenguaje de comunicación común que soportala capacidad de compartir conocimiento entre agentes:

Como se observa el nivel de contenido (mensaje)hace referencia a la información que realmente se estáintentando comunicar. Para que dos o más agentes pue-dan establecer un diálogo, es necesario que establezcanun lenguaje común para la representación de la infor-

NÓMADAS286

El nivel de coordinación (acto de habla), se refiere ala forma en que se establecen los diálogos entre los agen-tes. ¿Qué convenios deben establecer los agentes paraintercambiar mensajes de un modo eficiente?. Existendiferentes protocolos de coordinación: Contrat NetProtocol AgentTalk, COOL Por ejemplo, el protocolo decoordinación COOL es un lenguaje para la coordinaciónque modeliza la conversación entre los agentes medianteuna máquina de estados finitos. Cada estado representael punto de la conversación en el que nos encontramos.El paso de un estado a otro viene determinado por la lle-gada del mensaje correcto. De este modo se puede esta-blecer la conducta de los agentes frente a la llegada delos mensajes(17).

3. FIPA (Foundation for Intelligent Physical Agents)

Recoge todas las miradas vistas que se tienen de unsistema de agentes (gestión, seguridad, movilidad, comu-nicación, etc.). De tal forma que para cualquiera de lasmismas todos los esfuerzos se orientan en una única di-rección(17). Además reúne las especificaciones de arqui-tectura, infraestructura y aplicaciones:

El Agent Management proporciona la normativa delentorno donde los agentes FIPA se crean y operan. Esta-blece el modelo lógico de referencia para la gestión deagentes (creación, registro, localización, comunicación,migración y terminación de los agentes). Este modelopresenta un conjunto de capacidades lógicas y no impli-ca ninguna configuración física, simplemente deja losdetalles de implementación a elección del equipo dedesarrollo.

Estandarización de sistemas de agentes según KSE

mación o que empleen algún tipo de notación que pue-da ser fácilmente traducible al lenguaje que cada unode ellos utiliza. Para poder interpretar los mensajes, unavez establecido un lenguaje común traducible, es nece-sario que utilicen un vocabulario común: una ontolo-gía. Ésta consiste en un conjunto de términos los cualesse presenta el conocimiento, es como un diccionario declases, relaciones, funciones, objetos y constantes em-pleadas en el área de conocimiento en la que se estátrabajando.

En el nivel de intención, la misma información delnivel de contenido puede comunicarse con diferentesintenciones. Básicamente el nivel de intención de unmensaje es el tipo de dicho mensaje. La construcciónde un conjunto de mensajes, lo suficientemente expre-sivos como para que puedan ser utilizados por cualquiertipo de sistema de agentes cooperantes no es una laborsencilla. Investigadores en el tema han desarrollado unconjunto de primitivas de comunicación (performatives)basadas en la teoría para el modelado de la comunica-ción humana speech act theory que describen el conjun-to de primitivas necesarias para la coordinación entreagentes.

Los tipos de mensajes pueden ser clasificados en tresgrupos: asertivos, directivos y declarativos. Un mensajees asertivo cuando comunica un hecho, por ejemplo lasprimitivas “envía” o “recibe”; directivo cuando indica uncomando o acción, por ejemplo una pregunta o suges-tión: “dime todo lo que sepas acerca de ...”, o “te informoque ...”; y declarativo cuando envía información acercade sus capacidades, como por ejemplo “sé responderinterrogantes con el siguiente formato ...”. Estandarización de agentes en FIPA

287NÓMADAS

El Agent Management o modelo de referencia parala gestión de agentes, está formado por los siguientes com-ponentes lógicos:

Agente: es el componente básico y principal del mo-delo. Combina una o más capacidades de servicio dentrode un entorno de ejecución integrado y unificado queproporciona servicios de comunicación y acceso al soft-ware externo y a los usuarios.

Un agente tiene que tener uno o más dueños. Ade-más debe disponer de una identidad propia proporciona-da por un identificador global y único GUID (GloballyUnique Identifier) denominado nombre del agente. Unagente puede registrarse con un número de direccionesen las cuales puede ser contactado.

Agent Platform (AP): proporciona la infraestructurafísica y lógica necesaria para que los agentes puedan eje-cutarse. Una plataforma de agentes está constituida porel hardware (puede haber varios computadores), el siste-ma operativo, el software de comunicaciones y el soft-ware de agentes.

Directory Facilitator (DF): componente que siempretiene que aparecer en cualquier plataforma de agentesFIPA. Es un agente que proporciona un servicio de pági-nas amarillas a los demás agentes. Un agente puede utili-zar DF para registrar sus servicios o para encontrar losservicios ofrecidos por otros agentes.

Agent Management System (AMS): componente quesiempre tiene que aparecer en cualquier plataforma deagentes FIPA. Existe uno por plataforma. Es un agentede gestión que controla el estado y el acceso a la plata-forma. También proporciona un servicio de páginas blan-cas que permite la localización de agentes a partir desus nombres.

Agent Communication Channel (ACC): todos losagentes tienen acceso al menos a un ACC. El ACCes el canal de comunicación por defecto entre agen-tes de diferentes plataformas. Tiene que soportar elprotocolo de comunicación para interoperabilidadIIOP.

Internal Platform Message Transport (IPMT): métodode intercambio de mensajes dentro de la misma platafor-ma. Depende de la implementación.

4. Agent Society

Arquitectura y protocolos de comunicación ge-néricos (10).

Destaca los agentes que están desarrollados en pla-taformas, protocolos de transferencia, lenguajes de pro-gramación y lenguajes de comunicación diferentes.

Según esta figura, el éxito de Common Agent Plataformy Simple Agent Transport Protocol dependerá de su com-patibilidad con las especificaciones de MASIF y FIPAevolucionando hacia la interoperabilidad y los estándaresabiertos.

Movilidad de los Agentes

Una vez conocidas las diferentes arquitecturas de losagentes de software móviles de cada una de las compa-ñías de estandarización internacional, es necesario co-nocer también los aspectos de comunicación eintercambio de información entre ellos.

La interoperabilidad entre estos sistemas es muy im-portante debido a que si dos sistemas de distinto origenno pueden intercambiar agentes, la movilidad se quedacomo una capacidad no aprovechable.

Para lograr la movilidad de los agentes se puede tra-bajar con dos soluciones(6):

1. Migración: este modelo es más complejo ya querequiere la transferencia de códigos y datos delagente a la plataforma remota. Cuando un agenteva a migrar se suspende, se transfiere por la red y

Arquitectura de plataforma común de agentes

NÓMADAS288

se despierta en el otro extremo siguiendo su eje-cución en el mismo punto donde la había dejado.

2. Clonación: en este caso se crea una copia del agenteen el nodo remoto y éste se encarga de hacer eltrabajo solicitado por su clon en la máquina ori-gen. En este caso no hay una transferencia efecti-va de código y datos, sino solo un conjunto deórdenes que el clon debe realizar.

Modelo de Movilidad Simple:

El AMS (Agent Management System) es el responsa-ble de realizar toda la gestión necesaria. El agente solici-ta a su AMS la transferencia y ésta se ocupa de llevarla acabo (protocolo de migración simple).

Protocolos de movilidad simple: el agente delegaen un protocolo de alto nivel su operación de movili-dad a una determinada plataforma como se ilustra a con-tinuación. El protocolo soporta una única acción (move);en este caso, la plataforma en la que se ejecuta el agen-te tiene que implementar dicho protocolo necesario parala operación de migración(17).

Las ventajas del protocolo simple son:

1. Reduce la complejidad del desarrollo del agentedebido a que la movilidad la proporciona la plata-forma(17).

2. Está orientado hacia sistemas existentes de agen-tes móviles (como MASIF) y facilita la imple-mentación en plataformas ya existentes mediante

el lenguaje de comunicación de agentes de FIPA(ACL).

3. Cuenta con número de interacciones remotasreducido.

Modelo de Movilidad Complejo:

El agente es el responsable de realizar toda laoperatividad que le permite desplazarse a la plataformaremota (protocolo de migración complejo):

Protocolo de movilidad complejo: el agente dirige elprotocolo necesario para su operación de movilidad y nodelega la responsabilidad en la plataforma. Primero elagente mueve su código y estado a la plataforma destinoy una vez el nuevo agente ha sido creado con éxito letransfiere su identidad y autoridad. Además, este proto-colo también permite que el agente informe a la plata-forma en la cual fue creado (home agent platform HAP) ya otras plataformas de agentes (agents platforms AP’s) quese ha movido a una nueva localización.

Las ventajas del protocolo complejo son:

1. Reduce la implementación de la plataforma debi-do a que son los agentes quienes proporcionan lamovilidad.

2. Capacita al agente para controlar la operación demovilidad.

3. Constituye una forma más segura de movilidad.

Cuando un agente inicie con la acción move unaoperación de movilidad (tal como migración,

Modelo de Movilidad simple Modelo de Movilidad Complejo

289NÓMADAS

clonación o invocación), el agente tendrá que indicarel protocolo de movilidad que ha de usarse en la ope-ración. Con esta información, el AMS implicado de-terminará los pasos a realizar para completar laoperación, lo cual puede requerir el uso de otras accio-nes como transfer(17).

Integración de agentes MASIF - FIPA

La movilidad entre los estandares MASIF y FIPA selogra mediante los puntos de acceso de cada uno de loselementos de las dos arquitecturas.

La intención del estándar MASIF es ofrecerinteroperabilidad entre plataformas de agentes mó-viles con implementaciones diferentes. Es posible elacceso a una plataforma de agentes MASIF mediantedos interfaces estándar que son especificadas median-te el Lenguaje de Definición de Interfaces (IDL) deOMG, conforme a la siguiente gráfica. Estas interfacesdenominadas MAFAgentSystem y MAFFinder propor-cionan las operaciones fundamentales para la gestióny transporte de agentes, así como el registro de com-ponentes. También constituyen el medio de accesoal sistema de agentes(17).

Pueden encontrarse algunas características comunesentre una plataforma MASIF y una FIPA relativas a lafuncionalidad especificada:

El FIPA Agent Management System (AMS) puedecompararse con el sistema de agentes MASIF represen-tado por la interfaz MAFAgentSystem. Ambos tienen laresponsabilidad de la gestión de los agentes (creación,terminación, suspensión, autentificación, migración,etc.).

El FIPA Directory Facilitator (DF) es similar al com-ponente MASIF para los registros representado por lainterfaz MAFFinder. La tarea de estas entidades es man-tener la información registrada de los agentes en un en-torno distribuido.

El equivalente del FIPA Agent CommunicationChannel (ACC) es el Object Request Broker (ORB) enel contexto MASIF. Estas entidades se encargan de latransferencia de mensajes en un entorno distribuido deagentes.

FIPA y MASIF proporcionan sus especificacionesindependientes de la implementación.

El estándar FIPA abarca toda la funcionalidad nece-saria para la ejecución y soporte de agentes móviles me-diante un lenguaje de descripción de contenidos yacciones de alto nivel (Agent Communication LanguageACL). El ACL permite la especificación de operacionesy la utilización de protocolos de comunicación de altonivel.

El estándar MASIF no constituye una base completapara el desarrollo de nuevos sistemas sino que simple-mente abarca una mínima funcionalidad para así poderadaptarse a las plataformas de agentes ya existentes. Lafuncionalidad de MASIF se establece mediante interfacesIDL y no utiliza ningún lenguaje de alto nivel sobre losmétodos IDL, sino que directamente se corresponde conmétodos en la implementación de los objetos.

Estos dos estándares pueden ser combinados paraunificarse en un único marco de agentes móviles. Uncamino prometedor parece ser la integración en la espe-cificación IDL de MASIF, de operaciones IDL corres-pondientes a las definidas en FIPA mediante latransferencia de mensajes ACL. Para realizar una plata-forma de agentes compatible FIPA y MASIF, existen tresposibilidades:

1. Las interfaces existentes en MASIF (MAF-AgentSystem y MAFFinder) tienen que incorporarnuevas operaciones que permitan el acceso a laplataforma FIPA.

Movilidad de los agentes entre MASIF y FIPA

NÓMADAS290

2. Las operaciones de las interfases de MASIF de-ben ser modificadas adaptándolas a los requeri-mientos de las especificaciones FIPA.

3. Nuevas interfaces deben ser añadidas.

La especificación FIPA también podría añadir algu-nos métodos definidos en el estándar MASIF. Tendríanque ser métodos que tuvieran una estructura deparámetros simple y que pudieran representarse sin usarun lenguaje de contenidos de alto nivel.

Ventajas de los Agentes deSoftware Móviles

· La consolidación de la tecnología de agentes es lamejor forma de resolución de problemas, muchomejor que la utilizada hasta el momento. Sirveincluso para la resolución de problemas que nohabían podido resolverse por no disponer de latecnología adecuada o porque la utilización de laexistente implicaba un costo excesivo.

· Reducen el trabajo del usuario y del programadorde aplicaciones. El agente puede adaptarse a laspreferencias y hábitos del usuario y puede ser com-partido por múltiples usuarios.

· Poseen mayor robustez y mejor tolerancia a los fa-llos (un agente puede fallar en el sistema sin resul-tados catastróficos). También proporciona unamayor flexibilidad y adaptabilidad y gracias a ellosse obtienen tiempos de respuesta menores que losobtenidos con los sistemas clásicos IA (al poderreaccionar directamente ante los sensores-estímu-los sin necesidad de hacer un procesamiento y pla-nificación previa en un modelo de representacióninterno).

· Asignan dinámicamente las tareas mediante lasolicitud, introducción y eliminación dinámica deagentes en el sistema y a través de un mecanismofiable para realizar un control distribuido.

· Permiten que dos agentes se comuniquen en lamisma localización y no a través de la red (redu-ciendo de esta forma las transferencias de datospor la red).

· Reducen la complejidad del desarrollo del agen-te debido a que la movilidad la proporciona laplataforma.

· No necesitan efectuar accesos y procesamiento deestructuras de representación, por lo que son másrápidos que los sistemas que sí tienen que hacerloy pueden también utilizarse para cumplir restric-ciones de tiempo real estricto.

· Facilitan la reparación del tiempo necesario paralas comunicaciones del tiempo de procesamien-to, pudiéndose realizar este último bajo restriccio-nes de tiempo real estricto a través del nivelreactivo sin las interrupciones debidas a los pro-cesos de comunicación utilizados en los métodostradicionales.

Desventajas de los Agentes deSoftware Móviles

· Su principal inconveniente reside en que algunastécnicas de gestión de agentes no detectan ni re-suelven los conflictos que pueden darse entre lastareas. Se facilita así la existencia de tareas y peti-ciones contradictorias, lo cual no puede permitir-se en coordinación.

· Las técnicas de multiagente requieren que losagentes sean capaces de manejar una gran canti-dad de información. De hecho, son necesarias máscomunicaciones y una mayor potencia de proce-samiento que en el resto de técnicas.

· Puede surgir un cuello de botella importante si elnúmero de agentes es elevado, incluso si el siste-ma de gestión está dividido.

· La necesidad de que los agentes hagan un uso ra-cional de las estrategias definidas para maximizarlas utilidades.

· El hecho de que en la negociación los agentes sóloconsideran el estado actual y no las acciones pa-sadas ni futuras.

· La suposición de que todos los agentes tienen el mis-mo modelo interno y las mismas características.

291NÓMADAS

NÓMADAS292

293NÓMADAS

Conclusiones

El gran potencial de los agentes desarrollados es elpoder que tienen de interactuar entre ellos sobre plata-formas, protocolos de transferencia, lenguajes de progra-mación y lenguajes de comunicación diferentes.

Los sistemas de agentes de software móvil proporcio-nan una plataforma que ofrece un mayor nivel de abs-tracción con respecto a la arquitectura distribuida queconocemos. De esta forma nos podemos acercar aun mása los requisitos del usuario, ya que el programador puedeexpresar las necesidades de una forma más flexible.

La colaboración entre agentes se realiza medianteun lenguaje de comunicación (sintaxis, semántica ypragmática) que soporta la capacidad de compartir co-nocimiento.

Los agentes móviles son programas escritos normal-mente en lenguajes interpretados como Java que puedenser enviados desde una maquina cliente a una maquinaservidor. Esta comunicación se puede lograr mediante losprocesos de migración o clonación.

Los costos en el desarrollo e implantación de la tec-nología de agentes móviles varían de acuerdo a los re-querimientos y necesidades de las empresas. Lainfraestructura en el área de las comunicaciones es unfactor muy importante a tener en cuenta.

En el futuro se llegará un estado en el que un agentepodrá trasladarse sin dificultad de una maquina a otradentro de un sistema totalmente heterogéneo. Java esuno de los lenguajes de programación que aporta mu-chas de la características requeridas por la tecnologíade agentes móviles tanto en comunicaciones como enseguridad.

Se puede concluir que el objetivo ideal de la tecno-logía de agentes es modelar una entidad software con lascaracterísticas propias de una persona, de manera que laresolución de un problema sea lo más parecida posible asu resolución en el mundo real.

Glosario

Acción (action): Elemento básico que representa una actividad queun agente puede realizar. Una clase especial de acción es unacto de comunicación

Agente ARB (ARB Agent): Agente que proporciona el servicio ARB(Agent Resource Broker). Este servicio permite a un agente usarotros servicios fuera del mundo de los agentes (sistemas propie-tarios o “legacy systems”).

Agent Communication Language (ACL):

Lenguaje con una sintaxis, semántica y pragmática formalmentedefinidas. Es la base de las comunicaciones entre agentes deuna naturaleza heterogénea.

Agent Communication Channel (ACC) Router: Es un agente queusa la información proporcionada por el AMS para encaminarlos mensajes entre agentes dentro de la misma plataforma o entreplataformas diferentes.

Agent Management System (AMS): Es un agente que gestiona lacreación, destrucción, suspensión, autentificación y migraciónde los agentes de la plataforma. Además proporciona un servi-cio de nombres para todos los agentes que residen en ella. Guardala correspondencia entre GUID (Globally Unique Identifier) delagente y la dirección de transporte donde se encuentra.

Agent Platform (AP): Proporciona la infraestructura necesaria paraque los agentes puedan ser utilizados. Un agente debe ser regis-trado en una plataforma para poder interactuar con otros agen-tes de esa plataforma. Un AP contiene tres componentes bási-cos: ACC, AMS y DF.

ARA: Agentes para la acción remota. Agentes especializados enviajar remotamente a través de la red.

CORBA: Common Object Request Broker Architecture. Un estándarbien establecido que permite la comunicación de sistemas deobjetos distribuidos.

COOL: Es un lenguaje para la coordinación que modeliza la con-versación entre los agentes mediante una máquina de estadosfinitos. Cada estado representa el punto de la conversación enla que nos encontramos.

Directory Facilitator (DF): Es un agente que proporciona un servi-cio de páginas amarillas. Guarda información de los agentes yde los servicios que éstos ofrecen.

FIPA: Foundation for Intelligent Physical Agents. FIPA se ha converti-do en el estándar con más repercusión y aceptación social. Tra-ta todos los temas relacionados con los sistemas multiagenteproporcionando una amplia gama de documentos.

FIPA ACL: Toda la plataforma FIPA se basa en la comunicaciónentre agentes mediante ACL (Agent Communication Language).Un mensaje ACL consiste básicamente en una expresión de undeterminado lenguaje con un conjunto de términos específicospropios de la ontología usada.

GIOP: General Inter-ORB Protocol. Es el protocolo de comunica-ción estándar entre ORB’s establecido por la especificaciónCORBA.

GUID: Globally Unique Identifier. Es la identidad propia del agen-te, es decir, es el nombre del agente.

HAP: Home Agent Platform. Es la plataforma en la cual se creó unagente. La responsabilidad del HAP es garantizar la identidaddel agente en sus relaciones con otros agentes y plataformas.

NÓMADAS294

IDL: Interface Definition Language. Lenguaje estandarizado porCORBA. OMG IDL es un lenguaje declarativo estándar. Elléxico del lenguaje OMG IDL obedece a las mismas reglas queel léxico del lenguaje C++.

IPMT: Internal Platform Message Transport. Método de intercambiode mensajes dentro de la misma plataforma. Depende de laimplementación.

JATLITE: Java Agent Template. Es un témplate de la universidad deStanford. Estándar de agentes desarrollado en Java.

KIF: Knowledge Interchange Format. Es un lenguaje de contenido yequivale a la sintaxis en el lenguaje de comunicación común.

KQML: Knowledge Querying and Manipulation Language. Equivale ala pragmática en un lenguaje de comunicación común.

KSE: Knowledge Sharing Effort. Es una organización de estandarizaciónque busca compartir el conocimiento entre agentes.

MAFAgentSystem: El interfaz MAFAgentSystem define las opera-ciones de control de los agentes.

MAFFinder: El MAFFinder es un objeto servidor de nombres. An-tes de que un cliente pueda solicitar al objeto MAFFinder labúsqueda de un objeto, el cliente tiene que obtener el objetoreferencia del mismo MAFFinder.

MASIF: Mobile Agent System Interoperability Facilities. Correspondea la OMG. Es una organización de estandarización internacio-nal para agentes. Considera a los agentes como objetos CORBAque tienen la posibilidad de moverse, y ejecutarse autónoma yasíncronamente en sistemas de ejecución seguros (sistemas deagentes).

MOA: Mobile Object Agent. Es una plataforma que soporta agentesde software móviles.

OMG: Object Management Group. Organización Internacional quedesarrolló la especificación CORBA.

Ontología (Ontology): Una ontología da significado a los símbolosde un determinado dominio de conversación. Para que dos agen-tes puedan entenderse es necesario que ambos esten dando elmismo significado a los símbolos de los mensajes intercambiados.

ORB: Object Request Broker. Permite que el agente use otros servi-cios fuera del mundo del objeto.

Protocolo (Protocol): Un patrón de mensajes intercambiados entreagentes para realizar una determinada tarea. Son normalmenteusados para simplificar la lógica que es necesario implementarpara posibilitar el diálogo entre agentes.

Proxy: Objeto que proporciona una interfaz local a un objeto remo-to. Redirige las peticiones al objeto remoto.

UML: Lenguaje de Modelado Unificado. Lenguaje gráfico estándarpara visualizar, especificar, construir y documentar el modeladode un sistemas de software.

XDR: eXternal Data Representation de SUN. Representación exter-na estandarizada para transmitir y recibir valores.

Referencias Bibliográficas

1. JENNINGS, N. R., SYCARA, K., WOOLDRIDGE, M. “ARoadmap of Agent Research and Development”, AutonomousAgents and Multi-Agent Systems, I, 1998.

2. Diccionario de la Lengua Española, Real Academia Española, XXIedición, 1992.

3. MASIF-RTF Results, Object Management Group, 1998.

4. RUSSEL, S., NORVING, P., Artificial intelligence: A ModernApproach, Prentice Hall, 1995.

5. FRANKLIN, S., GRASSER, A., Is it an Agent or just a Program? ATaxonomy for Autonomous Agents, Universidad de Memphis, 1996.http://www.msci.memphis.edu/~franklin/AgentProg. html.

6. FIPA Specification http://www.fipa.org

7. Object Management Group http://www.omg.org

8. Specification of KQML Agent-Communication Language plusexample agent policies and architectures, The DARPA KnowledgeSharing Initiative, External Interfaces Working Group, 1993.http://www.cs.umbc.edu

9. FIPA Abstract Architecture Specification and Agent ManagementSpecification, http://www.fipa.org.

10. Agent Society Home Page http://www.agent.org

11. GUERRAOUI, Ravhid, FAYAD, Mohamed E., Oriented ObjectDistributed Programming Is Not Distributed Oriented ObjectProgramming 1999.

12. VENNERS, B., Solve Real Problems with Aglets, a Type of MobileAgents, JavaWorld, mayo 1997. http://www.javaworld.com/javaworld/jw-05-1997/jw-05-hood.html

13. CARAMAZANA CÁRCAMO, Alberto, Agentes Moviles.Consultor Senior de Ideal Objects.

14. FERNÁNDEZ MOYA, Francisco, [email protected], In-troducción a la arquitectura corba para sistemas distribuídos, Gru-po de Arquitectura y Redes de Computadores, 2001.

15. DIOSA, Henry Alberto, Propuesta para la conformación de gru-po de trabajo en procesamiento basado en objetos distribuidos conCORBA y Objetos de Software Móviles Usando Java, Universi-dad Distrital Francisco José de Caldas, Bogotá, agosto de 2000.

17. POSADA YAGÜE, Juan Luis, Arquitectura de Procesos en siste-mas Reactivos Distribuidos, Departamento de informática de sis-temas y computadores, septiembre de 2000.

18. GÓMEZ LABRADOR, Ramón M., Agentes Móviles y Corba,Departamento de Lenguajes y Sistemas Informáticos, Univer-sidad de Sevilla, febrero de 1999. ([email protected])

19. TANENBAUM, Andrew S., Redes de Computadoras, Prenticemay, Tercera Edición, México, 1997.

Comunications Magazine, IEEE, July 1998.

Mobile Software Agents for Telecomunications.

Htpp://www.comsoc.org

Asociados de comunicaciones.

Htpp://www.research.digital.com/SRC/personal/Luca Cardelli/Obliq

Htpp://www.cs.uit,no/DOS/Tcoma

Htpp://www.meita.com/HSL/Projects/Concordia

Htpp://www.tinac.com

Htpp://www.agent.org

Organización de Agentes Móviles

Htpp://www.cs.dartmouth.edu

Htpp://www.omg.org/library/schedule/technology