Hacia un ADL para diseñar sistemas basados en agentes Marie -Pierre Gervais (*+) and Florin Muscutariu(*) *Laboratoire d’Informatique de Paris 6, 8 rue du Capitaine Scott-F 75015 Paris +University Paris 10 Resumen En este artículo, se describe el Architecture Description Lenguaje (ADL) definido para el diseño de sistemas basados en agentes. Se busca llenar el vacío entre las etapas de análisis y diseño de las metodologías orientadas a agentes. La etapa de análisis permite hacer una descripción de la arquitectura del software sin ninguna consideración del ambiente de ejecución mientras que la etapa de diseño suplementa la salida del análisis con descripciones acerca del ambiente distribuido en el que los agentes se pondrán en funcionamiento. El ambiente distribuido que se considera aquí es una plataforma de agentes móviles acomodable a OMG MASIF. Esta aproximación provee un perfil concerniente a los aspectos de distribución relacionados al ambiente de ejecución para los diseñadores de sistemas basados en agentes. Este trabajo es una parte del proyecto ODAC que maneja el desarrollo de una metodología para la creación de sistemas orientados a agentes. Esta basado en los estándares ISO Open Distributed Processing que definen una estructura arquitectural para la construcción de sistemas distribuidos. Introducción Un Sistema Multiagentes es comúnmente considerado un sistema distribuido en el cual las entidades son agentes. Esta característica requiere que los agentes sean desplegados en un ambiente que soporte su ejecución. Construir un sistema basado en agentes debe abarcar todos los pasos desde el análisis y diseño hasta la implementación del sistema. El análisis se relaciona con el desarrollo de una solución detallada que no depende de la elección de logros. Incluye la descripción de todos los procesos que componen la operación del sistema, la definición de información y la especificación de tareas. El propósito del diseño es conducir a la implementación del sistema y llevar a cabo elecciones para hacer el modelo operacional para el logro del sistema. Se relaciona con las especificaciones operacionales que se necesitan para asegurar el logro del sistema. Incluye tener en cuenta los medios escogidos para la solución adoptada, particularmente un ambiente objetivo que apoyará la ejecución del sistema. De acuerdo a estas definiciones, se debe reconocer que la mayoría de las metodologías se enfocan en la fase de análisis en el sentido de que definen la organización, la arquitectura y la descripción de los elementos del sistema, particularmente los agentes y sus relaciones. Esto corresponde a la definición funcional del sistema. Por otro lado, otros trabajos manejan el desarrollo de plataformas para la ejecución de agentes, sea siguiendo o no los estándares como MASIF o FIPA. Sin embargo no existe una correlación entre la arquitectura resultante de la etapa de análisis y su mapeo al ambiente operacional. Hay un punto de ruptura entre estos dos aspectos. Aquí se apoya que la construcción de un sistema basado en agentes es un proceso que debe tener en cuenta la definición del sistema tanto como la implementación del mismo en un ambiente objetivo en el cual se pondrá en funcionamiento. Este proceso debe ser logrado de acuerdo con una metodología orientada a agentes que abarque todos los pasos incluyendo el análisis, diseño e implementación. La metodología debe reflejar la especificidad de la tecnología de agentes. Una de las características que diferencia la tecnología orientada a agentes de otras tecnologías de software es el requerimiento de un protocolo par a par. La distribución de datos y control es una de las razones para que se considere a los sistemas Multiagentes como una nueva dirección importante en la ingeniería de software. El protocolo par a par y la distribución de datos y control asumen la existencia de una infraestructura distribuida que provee mecanismos de comunicación transparentes (Ej. Un servicio de nombramiento de agentes), o un eventual soporte para movilidad. Basándose en estas consideraciones, LIP6 inició un proyecto para desarrollar una metodología, llamada ODAC (Open Distributed Applications Construction). Para ello hace uso de un estándar ISO relacionado con el procesamiento distribuido que es el Open Distributed Processing (ODP). Este define un conjunto de conceptos rigurosos para modelar sistemas distribuidos. Hace uso del paradigma de objetos en una manera general que hace posible manejar objetos ODP de la misma manera que si fueran agentes. Por ejemplo, los objetos ODP son entidades autónomas capaces de actuar por si mismas. En este enfoque un agente es un objeto ODP y los sistemas basados en agentes son distribuidos en los términos de OPD, dado que obedecen en un contexto técnico y organizacional. Estos sistemas consisten de entidades interactuantes, que pueden ser agentes y/u objetos. El modelo de referencia de ODP (RM-ODP) puede ser útil cuando se están construyendo sistemas orientados a agentes porque provee una infraestructura arquitectural que abarca todos los aspectos necesarios, por ejemplo las descripciones tanto técnica como funcional de del sistema mientras provee algunas reglas de correspondencia entre ellos. ODP no provee sin embargo ninguna metodología prescriptita que pueda ser utilizada en el desarrollo de un sistema. Tampoco da un soporte para este desarrollo. Por ejemplo, define conceptos y reglas, pero no se proponen notaciones ni formalismos para utilizar en forma concreta para la especificación del sistema. En ODAC se propone el uso de una notación UML estandarizada para especificar el sistema basado en agentes de acuerdo a la semántica de ODP. Así, se está definiendo un Lenguaje de Descripción de Arquitectura (ADL) para modelar el sistema en las fases de análisis y diseño. En el artículo se hace énfasis en la fase de diseño de la metodología ODAC. Más precisamente ilustra los requerimientos para llenar el vacío existente entre las fases de análisis y diseño y para lograr que de esta fase de diseño se obtenga una descripción operacional del sistema basado en agentes a ser implementado. Esta aproximación define un perfil de UML para habilitar la descripción del ambiente de ejecución distribuido y la ubicación de los agentes en este ambiente. Se enfoca en la etapa de diseño de esta manera.