Semantic Service Management for Service-Oriented MAS

por Elena Del Val

El trabajo de tesis trata sobre cómo construir sistemas de agentes que se relacionan en redes complejas. Los resultados muestran que se pueden construir sistemas descentralizados, sin ningún tipo de control, donde los agentes son capaces de localizar los que necesitan realizando búsquedas activas. Los agentes se agrupan por similaridad (homofilia) y son capaces de adaptarse a cambios en el entorno (cambios en la demanda de los recursos) y también de superar situaciones en las que existan agentes que no colaboren en la tarea de búsqueda de información.

La revisión del estado del arte es complicada porque hay muchas áreas involucradas. Se organiza en torno a 3 preguntas clave:

  1. cómo se estructura la red -> sistemas centralizados, distribuidos y descentralizados
  2. comportamiento ante cambios en el entorno -> sistemas auto-organizados, emergencia
  3. comportamiento ante entidades que no cooperan -> aislamiento e incentivos Los resultados más usados en este campo son los que vienen de la teoría de juegos

El modelo formal del sistema es una red, donde los nodos son agentes u organizaciones complejas (que se ven como una única entidad) y las relaciones existentes entre ellas. Las entidades están definidas a través del conjunto de roles que desempeñan, cada uno de los cuales tiene asociado un conjunto de servicios que modelan qué es lo que el agente sabe hacer.

El caso más simple se produce cuando tenemos un sistema centralizado. Fue el principio de la tesis y en él simplemente se establece un sistema mediado por un Service Facilitator (SF). Se encarga de registrar los servicios de todos los agentes que forman el sistema y de resolver las consultas que se produzcan en el sistema, de forma semejante al rol del UDDI dentro de las plataformas orientadas a servicios. Si no se encuentran servicio adecuado, se trata de descubrir una composición de servicios que se ajuste a las necesidades. Pero esta no es una solución útil para sistemas dinámicos y abiertos, así que se ha optado por una

El primer problema es cómo crear las redes para que se puedan localizar los servicios sin tener un registro central que se encargue de organizar los servicios. Para eso se emplean redes basadas en un concepto llamado homofilia. Básicamente, resume la tendencia de las personas a interactuar con otros que son semejantes a ellos. Empleando esta idea, se crean redes en los que los nodos tienen tendencia a conectarse con otros agentes semejantes a sí mismos. De esta manera se obtiene una red con una estructura de growing network (los agentes se añaden a la red a medida que van llegando), con una distribución exponencial de grado. Una característica interesante es que de esta forma se consiguen redes navegables: es posible localizar un servicio teniendo en cuenta la información de los vecinos exclusivamente (racionalidad acotada). La estructura tienen ciertas características de small-world (caminos cortos e índice de clustering significativo).

Con esta formación, cuando se desea localizar un servicio, si nadie de nuestros contextos lo puede realizar le preguntaremos al vecino más prometedor que trate de localizar a un agente que sí lo proporcione. Para ello simplemente tenemos que localizar cuál de nuestros vecinos se parece lo suficiente al servicio que necesitamos y además se tiene en cuenta su grado (cuanto más conectado esté más probabilidades tendrá de encontrar el servicio que necesitamos). Este proceso se repite hasta que se localiza el servicio deseado. Aunque a priori puede parecer ineficiente tener que hacer un búsqueda cada vez que se necesita algo, en el caso de sistemas dinámicos, la sobrecarga de mantener actualizada la lista de servicios es mucho mayor. Y el problema se agrava si hablamos de sistemas distribuidos en los que los repositorios de servicios están replicados en la red.

Para evaluar el rendimiento, se ha comparado con distintas topología de red (random, scale-free, preferential attachment) y diferentes estrategias de búsqueda (random walk, degree, similaridad y homofilia). Se observa que la navegación por grado en redes de tipo scale-free y la basada en homofilia obtiene resultados simulares (en cuanto a las longitudes de los caminos que necesita en las búsquedas y la tasa de aciertos). Sin embargo, las redes scale-free son mucho más sensibles a sabotajes (provocar el fallo de un nodo muy conectado) y en el caso de las redes con homofilia se consigue una degradación mucho más lenta.

Esta alternativa funciona bien si se conoce la carga del sistema, es decir, si el número y el tipo de servicios que se piden en el sistema no cambia. Pero en el caso de sistemas dinámicos, en los que esta carga del sistema cambia, puede optimizarse el rendimiento del sistema adaptando la estructura de la red. Vamos a tratar de hacerlo también de forma descentralizada: cada agente toda la decisión de forma aislada sin conocer ni consultar el resto de lares, teniendo en cuenta únicamente el tráfico que pasa por él. Se plantean dos estrategias: modificar los enlaces o modificar los propios agentes. Para modificar los enlaces, se considera que éstos tienen una utilidad de decae con el tiempo, de manera que si un enlace no se ha usado durante mucho tiempo (y no es vital para el agente, éste puede decidir eliminarlo y tratar de conectarse con otro nodo. Para eso, mantiene una lista de candidatos a partir de los agentes que ha ido encontrando en la red que utiliza como posibles vecinos alternativos cuando cambia la situación. La segunda posibilidad es que si un nodo detecta que ya no es útil puede

Por último, podemos relajar la asunción de que todos los agentes quieran cooperar. En ese caso, podemos encontrarnos con el caso (muy real) de que agentes decidan no colaborar en la transmisión de las búsquedas. Esto puede afectar gravemente al rendimiento global del sistema, por lo que se trata de buscar una solución a este problema. De nuevo se plantean 2 posibilidades: aislar a los vecinos que no cooperan (ostracismo) o tratar de convencerlos de que cambien de comportamiento. En el primer caso se emplea un mecanismo semejante a la redirección de enlaces.. Se les asocia una utilidad que decae con el tiempo de forma si un agente no colabora de forma reiterada, en helase perderá importancia y finalmente se reemplazará. A la hora de redirigir en enlace, se ha comprobado que proporciona mejores resultados en enlazarse con un nodo semejante al nodo que se ha desconectado (usando el criterio de homofilia). SIn embargo, este mecanismo no funciona bien si el número de agentes que no colaboran es alto o éstos tienen un grado elevado. Por eso se trata de usar mecanismos basados en incentivos para tratar de que los agentes que no colaboran cambien de comportamiento. Los incentivos tratan de premiar el comportamiento de los agentes que colaboran de manera que el resto de agentes funcionen por imitación y adapten su comportamiento a de aquellos vecinos que obtienen mejores beneficios. Esto no garantiza la colaboración y de hecho los resultados son semejantes cuando no hay una masa crítica de agentes que comienzan colaborando. Sin embargo, la combinación de los dos métodos: incentivos para tratar de caminar el comportamiento de agentes y aislamiento cuando no se produce este cambio, permite que emerja un comportamiento general de colaboración incluso cuando el número inicial de agentes que colaboran está muy por debajo de los egoístas (inciso en una proporción de 30-70).

Y con esto acaba la presentación de la tesis. Os dejaré más información sobre los artículos que hemos publicado sobre estos temas

Actualización 8-mar-2013: Ya se puede descargar la tesis desde  http://hdl.handle.net/10251/27556 

Definición de agreement

Dentro de un rato vamos a hablar sobre la definición de agreement (acuerdo). Esto no es lo que vamos a usar, pero me apetecía hacerlo y colgarlo para recordarlo bien. Son cosas que ya habíamos comentado en una reunión en junio de 2009 y que no había escrito en ningún lado, así que casi se me olvida. Menos mal que Antonio copió (y sabe dónde lo tenía, que es más importante) lo que dije entonces.

Así que, para que no me vuelva pasar, os dejo aquí las 5 dimensiones que forman el acuerdo: contexto, participantes, creación, contrato y ejecución. Con cada una de ellas he añadido algunas consideraciones que se me iban ocurriendo. Seguro que ni son todas las que están ni están todas las que son, pero puede ser un comienzo.

Y como slideshare no copia las transiciones, lo dejo en un vídeo. Es sólo un minutín, así que no te aburirás mucho. También puedes descargar la versión en  PDF. Y, como siempre, te recuerdo que cualquier comentario será bien recibido.

(he cambiado el vídeo de sitio porque se cortaba el audio)