CONTENIDO
Pág
INTRODUCCIÓN 1. OBJETIVOS 1.1. Objetivo general 1.2. Objetivo Especifico 2. METODOLOGIA MESSAGE (METHODOLOGY FOR ENGINEERING SYSTEMS OF SOFTWARE AGENTS) 2.1. UML 2.2. RUP 2.3. Análisis 2.4. Diseño 2.5. Ventajas 2.6. Desventajas 2.7. Ejemplo 3. CONCLUSIÓN 4. BIBLIOGRAFÍA 5. CIBERGRAFÍA
4 5 5 5 6 6 7 8 9 10 11 11 18 19 19
INTRODUCCIÓN
Desde la aparición de la Inteligencia Artificial (IA) surgió uno de sus principales paradigmas a desarrollar, el de los agentes inteligentes, el cual se refiere a que unas entidades sean capaces de actuar en el entorno en el que se encuentran de acuerdo a percepciones que este reciba de él por medio de sensores, de una manera racional y autónoma teniendo en cuenta su principal objetivo el de maximizar su utilidad. Pero, se carecía de modelos que permitieran seguir un proceso bien estructurado para el desarrollo de estos, tal es el caso de la metodología MESSAGE, siendo esta una de las metodologías más jóvenes que integra resultados de sus antecesoras, esta tiene como objetivo principal la utilización de modelos y meta-modelos que define como serán las especificaciones del sistema y las herramientas que brindaran soporte en el proceso de generación de especificaciones de un SMA. A lo largo de este trabajo se podrá encontrar información referente a esta metodología; su concepto, sus características, los modelos en los que se rige, así como también un ejemplo que pueda orientar a los lectores sobre el funcionamiento de esta metodología.
4
OBJETIVOS
OBJETIVO GENERAL
Presentar y explicar de qué manera el modelo MESSAGE (methodology for engineering systems of software agents) aporta a la funcionalidad integral de los SMA.
OBJETIVOS ESPECIFICOS
Analizar cada uno de los modelos que rigen la metodología MESSAGE.
Analizar las fortalezas y debilidades de esta metodología.
Explicar mediante un ejemplo la funcionalidad de esta metodología.
5
METODOLOGIA MESSAGE (METHODOLOGY FOR ENGINEERING SYSTEMS OF SOFTWARE AGENTS)
La metodología MESSAGE tiene como base el Proceso Unificado Racional (RUP), ya que se rige bajo el modelo incremental e iterativo, lo que implica el mejoramiento progresivo de los requisitos, plan, diseño e implementación del sistema. Sin olvidar que esta combinada con el Lenguaje Unificado de Modelado (UML), lo que le permite integrar el desarrollo de Software mediante las notaciones UML como lo son: casos de uso, diagramas de clase, diagramas de interacción, diagramas de transición de estado; además de incorporar ciclos de vida, actividades y tareas. Ya que estos se centran en la fase de elaboración donde la arquitectura del núcleo del sistema y los posibles riesgos deben ser identificados; esta arquitectura se elabora a partir de modelos de agentes relatados y notaciones gráficas. En resumen, la metodología MESAGGE extiende UML con el nuevo agente relacionando conceptos y notaciones gráficas enriqueciendo y adaptando el proceso RUP para el análisis y diseño basado en agentes. Pero es importante recordar en que se basa el UML y el RUP. UML: Es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema. UML ofrece un estándar para describir un plano del sistema, incluyendo aspectos conceptuales tales como procesos, funciones del sistema, y aspectos concretos como expresiones de lenguajes de programación, esquemas de bases de datos y compuestos reciclados. Es importante remarcar que UML es un "lenguaje de modelado" para especificar o para describir métodos o procesos. Se utiliza para definir un sistema, para detallar los artefactos en el sistema y para documentar y construir.
6
RUP: (Rational Unified Process o Proceso Unificado de Racional) Es un proceso de ingeniería de software que suministra un enfoque para asignar tareas y responsabilidades dentro de una organización de desarrollo. Su objetivo es asegurar la producción de software de mayor calidad para satisfacer las necesidades de los usuarios dentro de un límite de tiempo y presupuesto previsible. Antes de abarcar la metodología MESSAGE, es primordial tener en cuenta los conceptos generales que se vendrán desarrollando y las notaciones graficas que representan dichos conceptos. Los más importantes conceptos relacionados con los agentes son los siguientes:
Agente: es una entidad autónoma y atómica capaz de prestar una función potencialmente útil, a esta capacidad le denominaremos servicio.
Organización: es un conjunto de agentes que trabajan entre sí por un bien en común.
Rol: es una descripción externa de un agente en un contexto en particular, además, un agente puede desempeñar varios roles y un rol puede ser desempeñado por varios agentes.
Meta: una meta se asigna a un agente con un estado. Si una instancia de la meta está presente en la memoria de trabajo del agente, entonces la intención del Agente es lograr el estado al que hace referencia la Meta.
Recurso: son las entidades no autónomas utilizadas por los agentes.
Los principales tipos de actividades son:
Tareas: es la unidad que representa la actividad en el nivel de conocimiento con una sola unidad privilegiada o principal. Las tareas tienen dos situaciones que describen pre-condiciones y post-condiciones. Además, las tareas se pueden subdividir. Como se considera a las tareas como máquinas de estados (StateMachines), se utilizan los diagramas de actividad de UML para describirlas.
7
Interacciones: representan la segunda forma de actividad, junto con las tareas. Las interacciones, por definición, son realizadas por varios participantes y tienen un propósito que todos los participantes persiguen.
Mostraremos la sintaxis grafica de lo anteriormente mencionado:
Agente
Rol
Organización
Meta
Tarea
Servicio
Interacción
Estructura
Implicacion
Asignación
Conocido
Flujo de datos
Por consiguiente, la metodología MESSAGE trabaja bajo dos modelos: ANALISIS y DISEÑO, ya que estos aportan un nivel alto de abstracción por la inclusión del (RUP) y (UML), a su vez estos nos permiten saber que debemos hacer durante el desarrollo de esta metodología, pero además también podemos hablar de vistas o meta-modelos que ayudan a entender en profundidad lo que los SMA deben hacer. Análisis: El propósito de este modelo es producir una especificación del sistema que describe el problema a resolver, esto es representado como un modelo abstracto ordenado para entender mejor el problema, lo que facilita la solución de este. El proceso de análisis se lleva a cabo mediante pasos llamados niveles. En el primer nivel se realiza la definición del sistema en relación con su grupo y el entorno. El 8
sistema es visto como un conjunto de organizaciones que interactúan con los recursos, actores u otros. El nivel 1 son definidos la estructura y comportamiento de las entidades como la organización, agentes, tareas y metas de las entidades de dominio. Además, son implementados meta-modelos o vistas en la metodología MESSAGE y entre estos encontramos:
Vista de organización: muestra entidades concretas en el sistema y su entorno y relaciones de alto nivel entre ellos.
Vista de objetivo/tarea: muestra objetivos, tareas, situaciones y sus dependencias. Los objetivos y tareas tienen atributos que permiten crear dependencias lógicas, mostrar división de objetivos y tareas. Además, las dependencias temporales se denotan con la sintaxis de los diagramas de UML.
Vista de agente/role: se representan los objetivos del agente, tareas que sabe cómo realizar, recursos que utiliza, eventos a los que atiende, entre otros.
Vista de interacción: se representa el iniciador, el motivador, los colaboradores, la información relevante comunicada, los eventos que dispara y efectos relevantes de la interacción.
Vista de dominio: muestra los conceptos importantes del dominio donde se desarrolla el SMA y sus relaciones.
Diseño: El propósito del diseño es definir entidades computacionales que representen el SMA apareciendo en el nivel de análisis. En general, los artefactos producidos en cada parte del modelo de análisis necesitan ser transformados en una entidad computacional que puede ser implementada. Así las entidades de análisis son trasladadas a subsistemas, interfaces, clases, firmas operacionales, algoritmos, objetos, diagramas de objetos, y otros conceptos computacionales.
9
En pocas palabras, el proceso de diseño consiste en una serie de actividades iterativas para la transformación del modelo de análisis dentro del diseño de artefactos. El modelo de análisis es refinado para producir la primera versión de la estructura del SMA, al cual se le proponen cuatro pasos:
La asignación de roles a los agentes.
Prestación de servicios con tareas.
Perfeccionamiento de los protocolos de interacción.
Papel de la interacción con especificación de comportamiento con gráficos de estado.
Al igual que todas las metodologías, esta trae consigo tanto fortalezas como debilidades que serán expresadas a continuación: Ventajas:
Las instancias de los agentes definidos pueden variar mientras exista el sistema multi-agente. En esta se modelan las interacciones y se definen tanto los roles como los agentes capaces de actuar en dichos roles.
Los servicios cambian en los SMA. Estos se modelan para definir las organizaciones, los roles y los agentes que brindan algún tipo de servicio específico, los cuales pueden variar dependiendo el tipo de agente.
Los agentes pueden cambiar la forma en que proporcionan un servicio. Cuando se modela se definen las descripciones como tareas, de modo que cualquier agente podría colaborar con otro para el cumplimiento de un servicio antes prestado.
Los agentes pueden comunicarse con propiedad de la información en su entorno. Esto es posible gracias a la ontología, la cual fue obtenida del modelo de dominio que surge en el momento del análisis. Esta ontología puede ser usada por los agentes para comunicarse.
10
Los agentes demuestran un comportamiento orientado a objetos, por esta razón, continuamente optimizan sus tiempos de diseño y ejecución de objetivos; gracias a que se les indica que pueden y se definen como reglas.
Desventajas:
La falta de madurez hace que el análisis de diseños en el RUP no este del todo finalizada.
Un agente cambia los roles de forma dinámica. En este caso, un agente podría dejar de realizar un papel, así como también, podría empezar a ejecutar nuevos roles durante la vida útil del sistema.
Un agente podría interactuar con otro para la realización de su rol.
El constante avance de los sistemas provoca la creación de nuevos conceptos y servicios que deben ser aprendidos por los agentes durante su vida útil.
Ejemplo: Sistema multi-agente para la gestión automatizada del correo interno. Contexto: en ocasiones la entrega de los diferentes paquetes o correos dentro de una empresa u organización puede ser algo compleja, debido a que no siempre se cuenta con el personal disponible para la entrega de estos, por tal razón se desea implementar un sistema automatizado para la realización de dicha tarea. Para poder llevar a cabo todo esto, los recursos que se necesitan son una serie de robots móviles con unos brazos 3D-Robot y una red inalámbrica que permite la comunicación en todo el edificio. Debemos tener en cuenta que los agentes deben actuar en tiempo real incluso en momentos críticos, regidos bajo la misma plataforma y arquitectura. Modelado del sistema: para llevar a cabo el desarrollo de este sistema se requerirá de la utilización de un sistema multiagente al cual se le denomina MESSAGE combinado con el UML, que hará que este funcione en tiempo real.
11
Análisis: El análisis del sistema da como resultado un conjunto de modelos formados por diversos diagramas y esquemas. Estos modelos son:
Modelo de organización;
Modelo de objetivos/tareas;
Modelo de agente;
Modelo de interacciones;
Modelo de dominio.
Modelo de organización: Este modelo permite definir la estructura y la conducta de un grupo de agentes que trabajan de forma conjunta para alcanzar ciertos objetivos. Para el sistema concreto a desarrollar se plantea una organización cuyo principal objetivo es la gestión integral del reparto de cartas en el edificio. Donde se han identificado cuatro tipos de agentes distintos:
Agente Interfaz: encargado de recibir las peticiones de los usuarios humanos del sistema.
Agente Planta: es el encargado de controlar y distribuir todo el trabajo a realizar en una planta del edificio (con lo que existirá uno por cada planta). Este recibe las órdenes del agente interfaz y las asigna a los agente robots de su respectiva planta.
Agente Robot: este agente es el encargado de controlar y gestionando la lista de transportes que debe realizar, pudiendo llevar solo un objeto a la vez así tenga varios pedidos pendientes.
Agente Ascensor: este agente es el encargado de controlar tanto el ascensor como la recogida y distribución de cartas y paquetes que se encuentre en una planta distinta a la de destino.
12
Modelo de objetivos/tareas: este modelo quiere dar respuesta a tres cosas, ¿Por qué?, ¿Quién?, ¿Cómo?, el primero se requiere a los objetivos a cumplir, el segundo hace referencia a los agentes que interactúan en el sistema y el ultimo a las tareas que se deben realizar para cumplir los objetivos. Como bien sabemos, el objetivo principal es Gestionar reparto de carta en un edificio y este debe dividido en objetivos específicos para ser cumplido a corto plazo.
13
Para una representación de cómo se realiza un flujo de trabajo tomaremos en cuenta Gestionar llegada de nuevas cartas. En primer lugar, el agente interfaz tramita la llegada de una nueva petición de envío. Posteriormente analiza la petición y si ésta corresponde a un caso donde el origen y destino están en la misma planta se solicita al agente de planta correspondiente que trate de tramitar la solicitud. Éste realizará una búsqueda del robot más apropiado. En el caso de que el origen y el destino no coincidan en planta se inicia un proceso similar, pero por duplicado, gestionando de forma independiente la labor en cada planta. Finalmente, una vez recibida por parte del agente interfaz las respuestas de los agentes de planta correspondientes, éste informa al solicitante del nuevo envío de la viabilidad o no de su petición.
Modelo de agentes: El modelo de agente está formado por un conjunto de agentes y roles que son descritos de forma individual. Cada elemento del modelo de agente reúne la información específica de un agente o rol incluyendo sus relaciones con otras entidades. Como ya hemos visto, existen cuatro tipos de agentes en este sistema: Interfaz, planta, robot y ascensor. Para permitir el entendimiento de cómo generar roles, tomamos como ejemplo el agente robot, el cual cumple con cuatro roles. Los cuales son:
Ocioso, cuando no tiene ninguna entrega pendiente.
Navegación, cuando debe hacer maniobras complejas por toda la planta.
Repartidor, cuando debe recoger o entregar una carta.
Emergencia, cuando detecta bajo nivel en la batería e intenta llegar a base pronto.
14
Modelo de Interacción: Este modelo captura la forma en que los agentes (o roles) intercambian información con otros (y también con el entorno). Debido a la existencia de diversas interacciones en el sistema y a las limitaciones de espacio, éstas quedan recogidas en el siguiente cuadro, donde se expresa para cada interacción identificada el agente iniciador, el agente receptor, una breve descripción y el protocolo FIPA.
15
Modelo de dominio: El modelo de dominio permite definir los conceptos específicos del dominio con el que los agentes deben trabajar. La forma en que se expresa esto es mediante un modelo donde se muestran las clases necesarias del dominio, los atributos de cada clase y las relaciones entre dichas clases. En este sistema tenemos una entidad llamada robot de la cual obtenemos constantemente información sobre su estado: posición, velocidad, batería, entre otros. Debemos considerar que existen variables de tipo temporal, como lo son: la posición, la batería, etc., donde la posición no siempre será la misma ya que el robot se moverá por toda su área de trabajo, y en consideración con la batería, esta se ira consumiendo con el pasar del tiempo, de este modo se podría saber cuánto tiempo de autonomía le quedaría. En cambio, la velocidad tiende a ser constante, teniendo en cuenta que no debe ser muy rápido ya que podría causar accidente o consumir demasiado la batería, ni muy lento porque generaría demora en la realización de su tarea. Diseño e Implementación de un Agente Robot: Una vez desarrollados los modelos de la actividad de análisis se pasaría a realizar la actividad de diseño. Para esta fase de desarrollo del sistema nos centraremos únicamente en el Agente Robot. Esta herramienta nos permitirá definir los diferentes componentes de los que consta un agente teniendo en cuenta la correspondencia con los elementos resultado del análisis que se recoge en el siguiente cuadro.
16
Es primordial la definición de la jerarquía de entidades que se encuentran el en agente Robot, como se podrá observar en la figura:
Una vez definidos los diferentes comportamientos, se deben establecer las transiciones que puedan ocurrir entre dichos comportamientos, así como las situaciones en las que dichas transiciones deben llevarse a cabo, para lo cual se construye el autómata de transiciones entre comportamientos.
17
CONCLUSIÓN
Partiendo de lo anteriormente dicho, haremos referencia al hecho de que, se debe aprovechar al máximo los avances logrados con respecto a la Inteligencia Artificial para poder desarrollar agentes los cuales posean diferentes cualidades o capacidad para así poder satisfacer cualquier necesidad que tengan los clientes, optimizando procesos Además, se ha evidenciado la importancia de los sistemas multi-agentes, pero sobre todo de la metodología MESSAGE, no sólo para el campo de la Ingeniería de Sistemas, sino que es un campo abierto, donde todos somos beneficiarios de ello.
18
BIBLIOGRAFIA
Brian Henderson-Sellers_ Paolo Giorgini-Agent-oriented Methodologies-Idea Group Pub (2005) PDF
CIBERGRAFIA
http://rupmetodologia.blogspot.com.co/
RUP
https://es.wikipedia.org/wiki/Lenguaje_unificado_de_modelado
UML
http://es.slideshare.net/kasas12/ingeniera-del-software-orientada-a-agentes
Message Metodología
http://www.upv.es/sma/teoria/metodologias/articulos/D3finalReviewed.pdf
Project P907 MESSAGE: Methodology for Engineering Systems of Software Agents Eurescom.
http://www.upv.es/sma/teoria/metodologias/articulos/message2001.pdf
Agent Oriented Analysis using MESSAGE/UML
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.5.9786&rep=rep1&ty pe=pdf
Agent Oriented Analysis using MESSAGE/UML
http://users.dsic.upv.es/grupos/ia/sma/publications/showPublic.php?idFile=45
Modelado de un SMA de Tiempo Real empleando la metodología RT-MESSAGE
19