Meta-modelo de Organización

El modelo de organización es el equivalente a la arquitectura del sistema en un SMA. El valor principal de un modelo de organización, como ocurre en las organizaciones humanas, son los flujos de trabajo que define. Del estudio de estos flujos surgen nuevas interacciones que reflejan con detalle cómo se coordinan los participantes del flujo. El modelo de organización también contribuye al modelo de tareas y objetivos identificando las tareas relevantes para la organización así como los objetivos que se persiguen globalmente. También define restricciones en el comportamiento de los agentes mediante relaciones como la de subordinación. Gracias a estas restricciones, el diseñador asegura que unos agentes obedecerán a otros o que se comprometerán a la ejecución bajo demanda de tareas respetando sus prioridades.

En esta sección primero se encuadra el trabajo relacionado para determinar qué debe aparecer en el meta-modelo. A continuación se presenta el meta-modelo que reune los elementos indicados por el estado del arte. Y para terminar, se introducen ejemplos de utilización del meta-modelo y un conjunto de consideraciones acerca de la consistencia del modelo generado.

Organizaciones de agentes

En general los trabajos realizados sobre la organización de SMAs no estudian en profundidad el problema del diseño de la organización, dedicándose a buscar organizaciones emergentes [Shoham y Tennenholtz 97;Walker y Wooldridge 95], tipos de organizaciones [Pattison 87] o cómo las organizaciones determinan el comportamiento del agente (razonamiento social [Sichman et al. 94] y el nivel social [Jennings N. y J. 97]). En MESSAGE se plantean, sin embargo, los aspectos de desarrollo, por lo que toma en consideración otras fuentes:

Estas consideraciones fueron integradas dentro del meta-modelo de organización de MESSAGE basándose en dos principios:

Tomando principalemente el trabajo de MESSAGE como punto partida, se ha aumentado la cohesión de los elementos de la organización con respecto a los elementos pertenecientes a otros meta-modelos. También se ha desarrollado la idea de flujo de trabajo, poco destacada dentro de MESSAGE, como tercer pilar del meta-modelo. El flujo de trabajo, siguiendo ideas de [Workflow Management Coalition 99], permite contextualizar la ejecución de las tareas e interrelacionarlas unas con otras independientemente de los ejecutores de las mismas.

Presentación del meta-modelo de organización

Para simplificar la presentación del meta-modelo de organización, se han separado tres aspectos del mismo, como muestra la Ilustración 1.

Ilustración 1. Las tres vistas de una organización

La estructura de la organización define los elementos principales que componen la organización y cómo se construye ésta a partir de ellos. Las relaciones sociales establecen relaciones de alto nivel entre los componentes para poner restricciones al comportamiento de la organización. Por último, la definición funcional establece qué ofrece la organización y cómo se lleva ésta a cabo.

Descripción estructural de la organización

De acuerdo con algunas tendencias filosóficas [WHITAKER 95] [Maturana 02] la organización es la entidad de más alto nivel en el sistema. La organización, desde el punto de vista estructural, es un conjunto de entidades asociadas por relaciones simples de agregación y herencia. En esta estructura se define el esqueleto donde van a existir los agentes, los recursos, tareas y objetivos. Sobre este esqueleto se definen una serie de relaciones que inducen la formación de flujos de trabajo y de restricciones sociales (ver siguientes secciones).

Según la Ilustración 2, la organización es una entidad autónoma, como lo es también un agente (ver sección ). Los objetivos perseguidos por la organización son los objetivos comunes a los agentes que la componen y el motivo por el cual se han agrupado. No obstante, una organización no es un agente. La diferencia fundamental es que la organización no tiene capacidad de ejecutar tareas ni para tomar decisiones, son los agentes que la componen quienes se encargan de ello.

La visión estructural de la organización proporciona la descomposición de la organización en grupos (OContieneOrganizacion) y flujos de trabajo (OContieneFlujoTrabajo). La descomposición recursiva de flujos y grupos se realiza mediante ODescomponeGrupo y ODescomponeFlujoTrabajo, respectivamente.


Ilustración 2. Meta-modelo de organización. Visión estructural

Cada grupo contiene (OContieneGrupo) agentes, recursos, aplicaciones o roles. La asignación de estos elementos a un grupo obedece a propósitos organizativos, esto es, están agrupados porque clarifica la creación de flujos de trabajo. Cualquiera de ellos puede pertener a otros grupos de la misma u otras organizaciones. La utilidad de los grupos aparece cuando el número de estos elementos (agentes, roles o recursos) empieza a ser poco manejable. Los grupos son herramientas inestimables para la estructuración de la organización, ya que permiten al desarrollador aplicar divide-y-vencerás para facilitar el problema de la definición del sistema, y también para modelar estructuras organizativas existentes en el mundo real. En cuanto a la gestión de los grupos, a nivel de meta-modelo no se expresa, ya que se pueden definir roles de tipo gestor de comunidad desempeñados por agentes que realicen estas funciones (como se sugiere en [Ferber y Gutknecht 98]).

Para aumentar la capacidad de abstracción e incrementar la reusabilidad de los agentes y roles, se ha incluido la posibilidad de extenderlos. Como en MAS-CommonKADS, se permite definir nuevos agentes o roles que extiendan los existentes. La herencia entre agentes es una herencia simple, mientras que con los roles se admite herencia múltiple. La semántica de la herencia es parecida a la semántica de la herencia de objetos. Así, si un agente A extiende un agente B, el agente A puede sustituir a un agente B en cualquier situación. Y si un rol A, extiende los roles B1 hasta Bn, entonces A puede sustituir a cualquier Bi en cualquier situación. Como restricción, se exige que no se redefina ningún aspecto ya establecido en el ancestro (por ejemplo asociaciones con tareas, estados mentales, participación en flujos de trabajo) y que las nuevas capacidades de los agentes no creen conflictos con las de sus ancestros (por ejemplo asociando tareas que hagan lo contrario de otras que ya existan).

Descripción funcional

El objetivo del flujo de trabajo es establecer cómo se asignan los recursos, qué pasos (tareas) son necesarios para la consecución de un objetivo, y quiénes son los responsables de ejecutarlas. Según el la WorkFlow Management Coalition (WfMC), un flujo de trabajo [Workflow Management Coalition 99] es la automatización de un proceso de negocio, en su totalidad o parcialmente, durante el cual los documentos, información o tareas son pasadas de un participante a otro, de acuerdo con un conjunto de reglas procedimentales. En el flujo de trabajo, se habla de actividades en lugar de tareas1, aunque en este contexto se pueden emplear indistintamente.

Dentro del flujo del trabajo interesa presentar dos tipos de información: cómo se asocian unas tareas con otras y cómo se ejecutan. La forma de presentar estos dos aspectos es a través de instancias de meta-relaciones que interconectan entradas y salidas de las tareas y los responsables de ejecutarlas (Ilustración 3).

Ilustración 3. Meta-modelo de organización. Elementos que componen un flujo de trabajo

Algunas relaciones (concretamente WFConsume, WFUsa, WFProduce, WFDescompone) ya se han visto dentro del meta-modelo de objetivos y tareas. Las únicas nuevas son WFEspecificaEjecucion y WFConecta (ver Ilustración 4). WFEspecificaEjecucion indica que la especificación concreta de las condiciones de ejecución de una tarea se presenta dentro de una interacción. Se ha adoptado esta solución para correlacionar tareas ejecutadas por distintos actores. WFConecta se corresponde con la conexión de las salidas (instancias de WFProduce) de una tarea con las entradas de otra (instancias de WFConecta). La conexión no es completa en el sentido de que hay necesidad de que todo lo producido por una tarea deba ser consumido por la otra. Para determinar exactamente qué se consume, hay que considerar las instancias de WFConsume.

Ilustración 4. Meta-modelo de organización. Relación entre los elementos del flujo de trabajo

Para permitir descripciones incrementales, se permite que la entidad Flujo de Trabajo actúe como extremo de las relaciones WFProduce, WFConecta y WFConsume de la misma forma en que lo hace la entidad tarea. De esta forma, se pueden incluir flujos de trabajo dentro de la descripción de los flujos de trabajo.

Ilustración 5. Descomposición de tareas y flujos de trabajo

Para terminar la inclusión de los flujos de trabajo, se permite que un flujo de trabajo se descomponga en otros flujos de trabajo o tareas. De esta forma se pueden generar definiciones incrementales de las tareas que componen el flujo de trabajo. No se permite la descomposición de una tarea en flujos de trabajo.

Las tareas son ejecutadas por agentes que son directamente responsables de ellas (mediante instancias de WFResponsable) o indirectamente a través de roles (mediante instancias de WFJuega), como indica la Ilustración 6. Que un agente o rol sea responsable de la ejecución de una tarea, significa que el agente sabe ejecutar esa tarea.


Ilustración 6. Meta-modelo de organización. Asociación de tareas con sus ejecutores.

La ejecución puede ser local o involucrar la ejecución de otras tareas en otros agentes. Ambas variantes se inician de la misma forma y tienen efectos locales idénticos: un agente inicia la tarea motivado por la satisfacción de un objetivo (principio de racionalidad) e indica lo que se produce por instancias de WFProduce y su efecto sobre el entorno con WFUsa (sobre aplicaciones y recursos). La diferencia entre ambos tipos es que la tarea que involucra ejecución de otras tareas en otros agentes produce interacciones. Las interacciones, indican bajo qué condiciones tiene lugar la ejecución de tareas (instancias de UIInicia y UIColabora), como se vio en la sección . Aparecen en los modelos de organización dentro de flujos de trabajo como producto de la ejecución de tareas. Para concretar quien participa en las interacciones, se utilizan instancias de Consulta Entidad Autónoma. Estas instancias pueden asociarse a un agente o rol mediante la meta-relaciónAInstanciaDe. Las etiquetas asociadas a Consulta Entidad Autónoma harán referencia a elementos consumidos o producidos por las tareas Ilustración 15.

En cuanto al uso que se hace de los recursos, la principal preocupación es el evitar interbloqueos. En este trabajo se asume que no va a haber interbloqueos ya que se eliminan una de las cuatro condiciones de [Coffman, Elphick y Shoshani 71] para que se éste se presente (ver meta-modelo de entorno).

Descripción social

Las relaciones que se mencionan aquí entre Organizaciones, Agentes y Grupos, configuran restricciones sociales que limitan la ínteractuación entre estas entidades. En concreto, aquí se incluyen relaciones de subordinación, de prestación de un servicio y de cliente de un servicio. Estas relaciones se definen teniendo como extremos posibles organizaciones, agentes, roles y grupos.


Ilustración 7. Meta-modelo de organización. Relaciones sociales entre los componentes de la organización

Las relaciones de subordinación (AGOSubordinacion) obligan al subordinado a obedecer en todo y permiten al subordinante dar cualesquiera órdenes. Esta relación contradice uno de los supuestos sobre los agentes, que tienen libertad de actuación. Aunque deseable en algunas ocasiones, es cierto que esta libertad añade nuevas variables al sistema (los grados de libertad del agente) haciéndolo mucho más complejo. El compromiso del diseñador en estos casos es utilizar desde un punto de vista racional las libertades del agente. Así, estas relaciones son interesantes desde el punto de vista de la ingeniería porque permiten al diseñador asegurar que un agente no deja de obedecer ordenes críticas. Esta obediencia se limita a los agentes que el diseñador establezca, respetando en otros la libertad de desobedecer.

El siguiente paso es descomponer esta relación en obediencia incondicional (AGOSubordinacionIncondicional) y condicionada (AGOSubordinacionCondicional). La incondicional consiste en obedecer todas y cada una de las órdenes. La condicional es asimilable a un contrato, donde si se infringen algunas de las condiciones impuestas, el contrato deja de tener validez. Las condiciones del contrato se establecen utilizando un Patron de estado mental. Con este tipo de patrón es posible expresar:

Respecto a las relaciones Proveedor y Cliente (AGOClienteServidor), hacen referencia a que existe un servicio ofrecido (proveedor) y que se busca un servicio determinado (cliente). En la descripción de proveedor y cliente, y del servicio en sí, existen múltiples variantes. Aquí se propone una alternativa coherente con el meta-modelo ya descrito. A la hora de pedir o informar de la capacidad de dar o recibir un servicio, simplemente se informa qué se sabe satisfacer o qué se busca utilizando un objetivo. La técnica es similar a la más extendida de definición de ontología y a la utilización de un matchmaking [Sycara et al. 99]. La ontología la constituyen los objetivos a satisfacer. La utilización de los objetivos tiene la ventaja de orientar el sistema hacia la concepción de agente de Newell. Aquí, los agentes buscan satisfacer objetivos, y si se ponen en contacto unos con otros, es para conseguir satisfacer objetivos.

En cierto modo la subordinación condicional es similar a la prestación de un servicio, ya que en ambos se busca ejecutar una acción para otro. Sin embargo, son diferentes en la forma. En la prestación de un servicio, el proveedor puede denegar la petición, mientras que en la subordinación existe la obligación de ejecutar lo pedido.

Prioridad entre las relaciones sociales

Entre las distintas entidades de la organización (ver Ilustración 7) surgen dieciséis posibles combinaciones de dependencias entre organizaciones, grupos, roles y agentes. Para limitar y estructurar estas relaciones, se admiten sólo relaciones entre entidades del mismo tipo. Sobre las relaciones resultantes se plantea una política de aplicación. Se establece que entre dos entidades de la organización pueden existir como máximo relaciones a tres niveles. De mayor a menor nivel, estos niveles son:

Ilustración 8. Meta-modelo de Organización. Semántica sobre las meta-relaciones sociales

No puede haber relaciones sociales entre dos entidades entre las cuales no exista una relación a nivel inmediatamente superior.

Ejemplos de modelo de organización

Este ejemplo se ha extraído del caso de estudio principal de este trabajo. Se quiere diseñar un sistema de filtrado colaborativo de documentos donde los usuarios se suscriban a grupos de interés para recibir documentos que coincidan con sus gustos. En este sistema, los usuarios actúan a través de Agentes Personales. Estos agentes se suscriben a los grupos o comunidades de interés interactuando con el representante de la comunidad, el Agente de Comunidad. Se admite que un usuario pueda estar suscrito a múltiples comunidades. Una vez suscritos, los usuarios pueden sugerir documentos a la comunidad y recibir sugerencias de otros usuarios de la misma comunidad a través de su Agente Personal. Como arquitectura del sistema de este SMA, se propone el modelo de organización de la Ilustración 9.

Ilustración 9. Estructura de una organización dedicada a la distribución de documentos de interés para sus usuarios

La empresa consta de de dos grupos, uno que representa la administración de recursos compartidos (Administración) y otro que representa comunidades de usuarios (Comunidad). Dentro del grupo Comunidad existe un agente responsable de su administración (altas y bajas de usuarios), el Agente de Comunidad, y otros agentes que actúan como miembros de la comunidad, Agentes Personales. Los Agentes Personales representan al usuario en los procesos internos del sistema. Aquí se verá como ejemplo su participación en la evaluación de nuevos candidatos desempeñando los roles Miembro de la comunidad y Solicitante de suscripción.

Los flujos de trabajo Actividades de la comunidad, Gestionar comunidades y Compartir Documentos aparecen para estructurar las tareas identificadas con modelos de interacción y con modelos de tareas y objetivos. En estos modelos se ha estudiado qué comportamiento básico se espera de los agentes a la hora de suscribirse a comunidades y sugerir documentos y cómo se alcanzan los objetivos iniciales asociados a los agentes.

Los flujos de trabajo se pueden refinar para obtener flujos de trabajo más especializados. En la Ilustración 10 se refina la gestión de comunidades en tareas básicas de gestión (añadir un miembro a la comunidad, quitar un miembro de la comunidad, monitorizar miembros de la comunidad), y flujos de trabajo para determinar bajas en la comunidad y altas en la comunidad.

Ilustración 10. La gestión de la comunidad refinada en flujos

La descripción de los flujos de trabajo comienza indicando qué tareas forma parten del flujo. Como ejemplo, la Ilustración 11 muestra las tareas que componen el flujo de trabajo para dar de alta a un nuevo miembro en la comunidad.

Las altas en la comunidad se deciden primero en función de la comparación de los gustos del solicitante y los gustos conocidos de los miembros existentes, y después en función de la opinión del resto de los miembros de la comunidad. Para no molestar a todos, se elige un subconjunto de miembros para que emitan su voto. Si la mayoría vota afirmativamente, el solicitante es admitido como nuevo miembro.


Ilustración 11. Tareas asociadas al flujo de trabajo para dar de alta en una comunidad

Las tareas anteriores se interconectan según las relaciones de la Ilustración 12. Estas relaciones muestran cómo se conectan las entradas y salidas de cada tarea. La primera tarea en ejecutarse es solicitar incorporación, ejecutada por el solicitante. A continuación, la comunidad procesa la solicitud con procesar petición suscripción. Si la solicitud coincide con los gustos de los usuarios ya registrados, se procede a ejecutar enviar petición de evaluación de suscripción para conocer la opinion de los miembros de la comunidad. Los miembros deciden qué hacer mediante procesar petición evaluación suscripción. La comunidad recolecta todas las opiniones de los miembros de la comunidad con procesa evaluaciones de suscripción, tras lo cual se procede a incluir el nuevo miembro (agregar nuevo miembro) y a informar al solicitante (procesar respuesta alta).


Ilustración 12. Asociación de tareas en el flujo de trabajo para dar de alta en una comunidad

Cada tarea de la Ilustración 12 es asignada a tres posibles roles: el gestor de suscripciones de la comunidad, el solicitante de alta en comunidad y los miembros de la comunidad. El gestor de suscripciones se encarga de tramitar las solicitudes de altas y bajas en la comunidad. El solicitante de alta en comunidad es el que ha pedido ingresar en la comunidad. El rol miembro de la comunidad designa a cualquier agente que pertenezca a una comunidad. La asociación de estos roles con las tareas que tienen que saber ejecutar se muestran en la Ilustración 13.

Ilustración 13. Responsabilidades asociadas a roles dentro de un flujo de trabajo

Como hay tareas que no se van a ejecutar por el mismo agente (no se espera que estos tres roles sean desempeñados por un único tipo de agente), se hace que la primera tarea que inicia el flujo de trabajo produzca una interacción donde se indica quién ejecuta qué y cuándo. En el flujo de trabajo se indica una tarea que ocasiona la interacción y otras tareas que se ejecutan como consecuencia de esta primera (Ilustración 14).

Ilustración 14. Tareas del flujo de trabajo asociadas a la interacción para dar de alta en una comunidad

La ejecución de los flujos de trabajo obedece a condiciones mentales de sus ejecutores. Estas condiciones mentales se explicitan dentro de la interacción, indicando por qué tiene lugar la primera y siguientes unidades de interacción.

Para completar la definición del flujo de trabajo, habría que indicar cómo se decide quién rellena los roles que participan en la interacción solicitar alta en comunidad. Esta interacción utiliza los roles gestor de suscripciones de la comunidad, el solicitante de alta en comunidad y los miembros de la comunidad, lo cual en el análisis es suficiente. Sin embargo, para completar una definición exhaustiva del flujo de trabajo hace falta señalar criterios para decidir quién desempeñará estos roles. Esta información se proporciona con instanciaciones de Consulta Entidad Autónoma. En este caso, los agentes concretos se determinan a través de hechos que deben existir en el agente ejecutor, como indica la Ilustración 15. La relación etiquetada como Contiene es simplemente azúcar sintáctico para denotar que la entidad mental pertenece un estado mental asociado a Consulta Entidad Autónoma.


Ilustración 15. Descripción de qué agentes desempeñan los roles en la interacción que define la ejecución de tareas del flujo de trabajo para dar de alta en la comunidad

El Agente Personal, que jugará el rol solicitante suscripción, no puede saber quienes jugarán el rol de miembro comunidad porque no pertenece todavía a la comunidad. Sólo puede indicar quién actuará de gestor de la comunidad, que será el gestor asociado a la comunidad donde se quiere suscribir. Este gestor se incluye dentro de un slot (comunidad) del evento etiquetado con susc. La localización del agente se hace utilizando Gestor Agentes que proporciona la ubicación de todos los agentes del sistem.

El gestor de la comunidad fijará más tarde el resto de los roles con el hecho SeleccionEvaluacionPeticionSuscripcion. Este hecho contiene los colaboradores de en la interacción, que son los miembros de la comunidad a los que se preguntará acerca de la admisión. Estos miembros se expresan mediante una Consulta Requisitos Agente que describe los agentes involucrados. La descripción es una instancia de Descripción Agente denominada agentes pertenecientes a una comunidad que codifica los requisitos mediante un predicado PROLOG. Este predicado dice que los agentes seleccionados son aquellos cuyo identificador pertenece a la lista sel.colaboradores (todas las posibles unificaciones de pertenece(Miembro_comunidad, sel.colaboradores)).

Integración con otros meta-modelos

El meta-modelo de organización mantiene fuertes dependencias con los otros meta-modelos, ya que muestra a nivel general cada entidad representada por los otros meta-modelos.

Ilustración 16. Meta-modelo de organización. Relaciones con otros meta-modelos

Cuando una tarea implica la ejecución de otras tareas en otros agentes, se necesitan instancias del modelo de interaccion que muestren quién ejecuta qué y cuándo. Estas instancias recogen dentro de diagramas de colaboración o diagramas GRASIA las distintas tareas ejecutadas indicando bajo qué condiciones se deben lanzar.

El meta-modelo de agente se centra en describir los agentes que aparecen en la organización, reproduciendo las capacidades que se descubren dentro de los flujos de trabajo, como el desempeño de roles, responsabilidades o condiciones mentales de subordinación a los deseos de otros agentes.

El meta-modelo de objetivos y tareas muestra cómo las tareas ejecutadas llegan a satisfacer los objetivos de la organización. También muestran de forma cómo son las tareas de forma aislada, qué consumen, qué producen y qué aplicaciones y recursos precisan. Por último, también sirve para relacionar las motivaciones de cada agente (instancias de GTPersigue) con las motivaciones asociadas a flujos de trabajo (instancias de WFPersigue).

El meta-modelo de entorno proporciona descripciones detalladas de los recursos, aplicaciones y agentes que existen separadamente del sistema en desarrollo. Estas entidades se utilizan para describir los flujos de trabajo y la estructura de la organización.

Las restricciones inducidas por estas relaciones son las siguientes:

  1. Las tareas de las que se responsabiliza un agente, así como los roles que juega, deben aparecer también en el modelo de agente donde éste se describe.

  2. Las tareas que aparecen en la organización han de ser asignadas a algún agente o rol.

  3. Las tareas que se conectan con otras tareas asignadas a otros agentes o a roles que no puedan ser desempeñados por el mismo agente, deben aparecer en una interacción.

  4. Las tareas que aparecen conectadas deben compartir al menos una entrada y una salida.

  5. Todos los recursos y aplicaciones que aparecen en el modelo deben aparecer en algún modelo de entorno.

  6. Todos los agentes que aparezcan deben tener un modelo de agente donde se les describa. En estos modelos, los agentes se asociarán a los roles identificados en los flujos de trabajo de la organización.

  7. Las tareas deben especificarse con detalle dentro de un modelo de tareas y objetivos. En este modelo se describirán las entradas y salidas de la tarea, recursos consumidos y aplicaciones utilizadas. Además, la ejecución de la tarea se debe relacionar con la satisfacción de alguno de los objetivos previstos.

1 Una actividad [Workflow Management Coalition 99] es una descripción de un trozo de trabajo que forma un paso lógico dentro de un proceso. Una actividad puede ser manual, que no soporte automatización computerizada, o una actividad automatizada de flujo de trabajo. Una actividad es típicamente la unidad de trabajo más pequeña que se organiza dentro de una activación de proceso.