La Aproximación Organizacional para Programación Orientada a Agentes (AOPOA) es una metodología para lo construcción de sistemas multi-agentes (SMA) mediante una descomposición de un problema complejo de manera iterativa, recursiva, basado en el concepto de metas y el de identificación de tareas de manera estructurada con un enfoque organizacional. En el presente artículo se realiza una descripción de la definición, aspectos históricos, conceptos importantes, fases y por último la presentación de un artículo en el que se expone la puesta en práctica de la metodología.
Aproximación Organizacional para Programación Orientada a Agentes: Introducción y Aspectos Generales
1. 1
Aproximación Organizacional para Programación Orientada a Agentes:
Introducción y Aspectos Generales
John Sprockel
Maestría de Ingeniería de Sistemas y Computación, Universidad Javeriana
jsprockel@javeriana.edu.co
Resumen. La Aproximación Organizacional para Programación Orientada a Agentes (AOPOA) es una
metodología para lo construcción de sistemas multi-agentes (SMA) mediante una descomposición de un
problema complejo de manera iterativa, recursiva, basado en el concepto de metas y el de identificación de tareas
de manera estructurada con un enfoque organizacional. En el presente artículo se realiza una descripción de la
definición, aspectos históricos, conceptos importantes, fases y por último la presentación de un artículo en el que
se expone la puesta en práctica de la metodología.
Palabras Clave: sistemas multi-agentes, metodología, programación orientada a agentes.
1 Introducción
La Aproximación Organizacional para Programación Orientada a Agentes (AOPOA) es una metodología para lo
construcción de sistemas multi-agentes (SMA) en la que se aborda el diseño de sistemas complejos mediante su
descomposición en sistemas más simples con un enfoque organizacional. La base de dicha descomposición se lleva
a cabo de manera iterativa, recursiva, teniendo en cuenta el concepto de metas y el de la identificación de tareas [1].
El proceso de análisis y diseño se lleva a cabo con un enfoque distinto al de las otras metodologías ya que además de
la asignación de responsabilidades de manera estructurada y progresiva, se efectúa una identificación y
caracterización de las interacciones de manera automática. En AOPOA, cada conjunto mayor de actividades está
formado por un conjunto de procesos iterativos, cada uno de los cuales genera un conjunto de artefactos que
incluyen tablas y diagramas que definen un SMA genérico [2].
En los apartes que se desarrollan a continuación, se hace la descripción de los conceptos básicos y pasos para el
desarrollo de la metodología incluyendo los aspectos históricos, marco conceptual, fases y por último la
presentación de un artículo en el que se expone la puesta en práctica de la metodología.
2 Historia
La metodología se ha venido desarrollando desde el inicio de la maestría en ingeniería de sistemas y computación de
la Pontificia Universidad Javeriana en el 2001, dentro del grupo de investigación SIDRe. Surgió partir del proyecto
marco ASMA (Arquitectura para Sistemas Multi Agentes), dentro del cual se desarrolló la plataforma de desarrollo
BESA (Behavior-oriented Event-driven Social-based Agents). Su desarrollo ha sido compartido desde el área de los
sistemas distribuidos e inteligentes.
2. 2
3 Marco Conceptual: Enfoque Organizacional
El análisis de una organización nos muestra como típicamente se encuentra dividida en un conjunto de entidades
autónomas que actúan de manera proactiva pata alcanzar un objetivo. En la figura 1 se observa como se genera una
jerarquía organizacional modelada como un arbol (A) o un diagrama de conjuntos (B).
A. B.
Figura 1. Descomposición recursiva de una organización (tomado sin modificar de [3]).
La definición de Rol para AOPOA implica la representación de una entidad abstracta para alcanzar un conjunto de
objetivos aprovechamiento de habilidades usando los recursos del entorno [2]. Es así como un SMA puede ser
diseñado como una jerarquía de roles, los cuales pueden obtenerse mediante la descomposición basada en objetivos.
La selección del orden en que se descomponen los roles puede desarrollarse en un recorrido por amplitud o en
profundidad a partir de la imagen del árbol. En AOPOA se lleva a cabo la descomposición de los roles de manera
recursiva, partiendo de los de mayor complejidad (Figura 2).
Figura 2. Descomposición recursiva de los roles como un proceso iterativo, recursivo por amplitud (tomado de [6]).
La interacción surge, en condiciones típicas, cuándo varios roles aportan a la consecución de un objetivo o bien
cuando se comprten los recursos. La figura 3 muestra los niveles de interacción que pueden surgir.
stemas e Informática, Vol.4 No. 2, Septiembre de 2007
Congreso Colombiano de Computación - CCC 2007
Programación
ología para el
MA). En ella,
mado por un
esos procesos
yen tablas y
dología fueron
embargo, con
MA el término
a meta.
los conceptos
e el uso de la
ésta puede ser
da una de las
ón a las metas
los diferentes
operar en el
n una gestión
e que estos
la gestión de
que soportan
encuentra que
utónomas, que
jetivos de la
agrupadas en
ez pueden ser
percibir a toda
compuesto de
ismo proceso,
intetizar una
recursiva. En
abstractas de
ecursiva hasta
n.
uede observar
ual puede ser
equiere que el
abstracta que
mediante el
o los recursos
n SMA puede
cuales pueden
osición basado
ta la jerarquía
es formas, la
nen los roles
amplitud ó en
e, puede ser
Figura 1. Descomposición recursiva de una organización.
En el proceso de análisis o el de síntesis, para lograr un
adecuado funcionamiento es imperativo que las entidades
interactúen entre si. En muy pocos contextos podría ser de
verdadera utilidad tener una organización compuesta por
entidades independientes y separadas. Una característica muy
importante de las interacciones es que éstas surgen en
situaciones típicas, cuándo varios roles aportan a la
consecución de un objetivo. Primero, se requiere establecer
qué tarea va a cumplir cada uno de los roles involucrados; en
este contexto, aparecen interacciones para realizar el manejo
de la asignación de tareas. Segundo, se precisa coordinar el
accionar de los participantes, pues el orden en que se realizan
las acciones puede ser importante para obtener el resultado
deseado; en este caso, emergen interacciones para lograr la
planificación y la ejecución sincronizada de las acciones.
Tercero, se deben detectar y resolver los conflictos que
puedan aparecer en el acceso a los recursos compartidos; en
estas situaciones, se generan interacciones para realizar un
acceso controlado a los recursos. Nótese que al analizar estos
tres casos, los vínculos de cooperación aparecen siempre que
hay un objetivo compartido por varios, ó cuando hay recursos
en común. En AOPOA, se aprovecha está característica
implícita de las interacciones para detectar en forma
automática los potenciales vínculos de cooperación entre roles
que pueden ser requeridos para alcanzar los objetivos del
sistema.
Los dos conceptos anteriormente analizados, la
descomposición organizacional y la detección de vínculos de
cooperación, están fuertemente ligados. En efecto, AOPOA
propone realizar una descomposición gradual en roles; tomar
un rol muy complejo y dividirlo en varios más simples, pero al
Rol_
Rol_ . Rol_ .
Rol_1.1. Rol_1.1.
Rol_
Rol_1 .
Rol_1 .
Rol_ .1.1 Rol_ . .
Revista Avances en Sistemas e Informática, Vol.4 No. 2, Septiembre de 2007
Edición Especial: II Congreso Colombiano de Computación - CCC 2007
72
II. AOPOA
La Aproximación Organizacional a la Programación
Orientada a Objetos (AOPOA) es una metodología para el
análisis y diseño de Sistemas Multi-Agente (SMA). En ella,
cada conjunto mayor de actividades está formado por un
conjunto de procesos iterativos. Cada uno de esos procesos
genera un conjunto de artefactos que incluyen tablas y
diagramas que definen un SMA genérico.
Algunos de los conceptos que rodean la metodología fueron
mencionados en la sección anterior; sin embargo, con
propósitos de referencia, en el contexto de un SMA el término
objetivo es equivalente en significado a la palabra meta.
El foco en esta sección es la presentación de los conceptos
y procesos generales que son aplicados durante el uso de la
metodología.
A. Enfoque Organizacional
Al analizar una organización se observa que ésta puede ser
descompuesta en unidades bien definidas, cada una de las
cuales tiene una responsabilidad clara en relación a las metas
de la organización. Con el fin de lograr que los diferentes
componentes de la organización puedan cooperar en el
cumplimiento de objetivos compartidos y logren una gestión
correcta de los recursos es indispensable que estos
componentes interactúen. La descomposición y la gestión de
las interacciones, son los elementos distintivos que soportan
conceptualmente a AOPOA.
Típicamente, al analizar una organización se encuentra que
está compuesta de un conjunto de entidades autónomas, que
actúan proactivamente para alcanzar los objetivos de la
organización. Normalmente, las entidades están agrupadas en
equipos pequeños de trabajo, los cuales a su vez pueden ser
agrupados de manera recursiva, hasta llegar a percibir a toda
la organización como si fuera un único equipo compuesto de
los equipos de más alto nivel. Realizando el mismo proceso,
pero en sentido contrario, es posible sintetizar una
organización haciendo una descomposición recursiva. En
efecto, la organización se divide en entidades abstractas de
alto nivel, las cuales se subdividen en forma recursiva hasta
llegar a las entidades autónomas que la componen.
La Figura 1 ilustra estos conceptos; como se puede observar
se genera una jerarquía organizacional, la cual puede ser
modelada como un árbol. Nótese que no se requiere que el
árbol sea balanceado.
En AOPOA, un rol representa una entidad abstracta que
debe alcanzar un conjunto de objetivos mediante el
aprovechamiento de sus habilidades y utilizando los recursos
disponibles en su entorno. En consecuencia, un SMA puede
ser diseñado como una jerarquía de roles, los cuales pueden
ser obtenidos mediante un proceso de descomposición basado
en los objetivos. El árbol de roles que representa la jerarquía
organizacional puede desarrollarse de diferentes formas, la
selección del orden en que se descomponen los roles
existentes puede basarse en un recorrido en amplitud ó en
profundidad. Una alternativa más interesante, puede ser
descomponer primero los roles más complejos.
Figura 1. Descomposición recursiva de una organización.
En el proceso de análisis o el de síntesis, para lograr un
adecuado funcionamiento es imperativo que las entidades
interactúen entre si. En muy pocos contextos podría ser de
verdadera utilidad tener una organización compuesta por
entidades independientes y separadas. Una característica muy
importante de las interacciones es que éstas surgen en
situaciones típicas, cuándo varios roles aportan a la
consecución de un objetivo. Primero, se requiere establecer
qué tarea va a cumplir cada uno de los roles involucrados; en
este contexto, aparecen interacciones para realizar el manejo
de la asignación de tareas. Segundo, se precisa coordinar el
accionar de los participantes, pues el orden en que se realizan
las acciones puede ser importante para obtener el resultado
deseado; en este caso, emergen interacciones para lograr la
planificación y la ejecución sincronizada de las acciones.
Tercero, se deben detectar y resolver los conflictos que
puedan aparecer en el acceso a los recursos compartidos; en
estas situaciones, se generan interacciones para realizar un
acceso controlado a los recursos. Nótese que al analizar estos
tres casos, los vínculos de cooperación aparecen siempre que
hay un objetivo compartido por varios, ó cuando hay recursos
en común. En AOPOA, se aprovecha está característica
implícita de las interacciones para detectar en forma
automática los potenciales vínculos de cooperación entre roles
que pueden ser requeridos para alcanzar los objetivos del
sistema.
Los dos conceptos anteriormente analizados, la
descomposición organizacional y la detección de vínculos de
cooperación, están fuertemente ligados. En efecto, AOPOA
propone realizar una descomposición gradual en roles; tomar
un rol muy complejo y dividirlo en varios más simples, pero al
Rol_
Rol_ . Rol_ .
Rol_1.1. Rol_1.1.
Rol_
Rol_1 .
Rol_1 .
Rol_ .1.1 Rol_ . .
Rol 1
Rol 2
Sistema
Iteración 1
Rol 1
Iteración 2
Rol 1i
Iteración 3
Agente 1i
Iteración m
Rol 11
Rol 1i
Rol 1n
Rol 1i1
Rol 1ij
Rol 1in
Agente 1i1
Agente 1ij1
Agente 1ij2
Agente 1in
3. 3
Figura 3. Niveles de Interacción.
El proceso recursivo de descomposición de los objetivos funciona en AOPOA de la siguiente manera: un objetivo
inicial se descompone en dos objetivos (figura 4.A), cada uno es asignado a un rol diferente surgiendo entre ellos un
enlace cooperativo (figura 4.B), se define luego el tipo de interacción correspondiente (figura 4.C), y a ésta se le
asigna un protocolo que puede ser delineado según los estándares FIPA o cualquier otro medio elegido por el
programador (figura 4.A), procediendo luego a definir los mensajes que deben intercambiarse entre los roles
mediante la estructuración de los actos del lenguaje, intencionalidad y sentido semántico que permita dicha
interacción.
A. B.
C. D.
E.
Figura 4. Establecimiento de modelos de interacción (ver explicación en el texto, tomado de [6]).
Tareas!que!requieran!habilidades!similares:!Homogeneidad.!
Mantener!juntas!las!que!requieran!los!mismos!recursos:!minimizar!conflictos!
Mantener!juntas!las!que!requieran!los!mismos!objetivos:!incorporar!el!conocimiento.!
!
!
AGRUPAR*TAREAS*PARA*DEFINIR*ROLES:*
*
Tareas*que*requieran*habilidades*similares:*
Homogeneidad.*
Mantener*juntas*las*que*requieran*los*mismos*recursos:*
Minimizar*conflictos*
Mantener*juntas*las*que*requieran*los*mismos*objetivos:*
Incorporar*el*conocimiento.*
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
Obj 1.1 Obj 1.2
Objetivo 1
Rol 1 Rol 2
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
Objetivo 1
Rol 1 Rol 2
Enlace Cooperativo
Obj 1.1 Obj 1.2
Tipo de Interacción
Indiferencia
Cooperación
Antagonismo
Rol 1 Rol 2
Obj 1.1 Obj 1.2
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
Objetivo 1
Rol 1 Rol 2
Enlace Cooperativo
Obj 1.1 Obj 1.2
Tipo de Interacción
Indiferencia
Cooperación
Antagonismo
Rol 1 Rol 2
Obj 1.1 Obj 1.2
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
Obj 1.1 Obj 1.2Protocolo de Interacción
Estándares FIPA
Rol 1 Rol 2
Mensaje 3
Mensaje 2
Mensaje 1
Actos del Lenguaje
Intencionalidad y Sentido Semántico
Rol 1 Rol 2
Obj 1.1 Obj 1.2
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
Obj 1.1 Obj 1.2Protocolo de Interacción
Estándares FIPA
Rol 1 Rol 2
Mensaje 3
Mensaje 2
Mensaje 1
Actos del Lenguaje
Intencionalidad y Sentido Semántico
Rol 1 Rol 2
Obj 1.1 Obj 1.2
4. 4
Figura 5. Herencia de enlaces cooperativos: al hacerse la división de un rol debe contemplarse que alguno de los roles hijos debe
heredar las interacciones de los roles padres y alguna posible interacción nueva que se desarrolle entre los roles hijos (tomado de [5]).
En la figura 5 se presenta un ejemplo de la herencia de los vínculos cooperativos al avanzar en la iteraciones para la
identificación de roles y la consideración que debe hacerse de las interacciones heredadas y las nuevas tras el
seccionamiento de un rol.
A. B.
Figura 6. Proceso de identificación de los roles: se ejemplifican dos posibles distribuciones de roles que agrupen los objetivos en una
iteración (modificado de [5]).
El procedimiento mediante el cual AOPOA aborda la identificación de los roles (figura 6) considera la optimización
de los objetivos de manera recursiva basados en una heurística en la cual se intenta reducir los conflictos por los
recursos, la redundancia de habilidades y la dispersión de objetivos similares, en cada una de las iteraciones de
división de los roles, mediante la siguiente función:
CG = 1hw * hG + 1ow * oG + 1rw * rG + 2hw * hP + 2ow * oP + 2rw * rP
En donde: CG es la calificación total de la agrupación.
w son los pesos
Los subíndices: h para habilidades, o para objetivos y r para recursos
El criterio para determinar la detención de la descomposición recursiva de roles se basa en el cálculo de la
complejidad de los roles, expresado por la siguiente ecuación:
Iteración
i
Rol 1 Rol 2 Rol 3
Int 1
Int 2
Int 3
Int 4
Int 5
Int 1
Int 2
Int 3
Int 4
Int 5
Rol 1 Rol 2
Rol 3
Iteración
i +1
Rol 11
Rol 12
Rol 21
Rol 22
Rol 32
Rol 33
Rol 31
Int 6
Int 7
!
!
!
!
!
!
!
Rol 1
Obj 11
Obj 12
Obj 21
Obj 22
Obj 32
Obj 33
Obj 31
!
!
!
!
!
!
!
Rol 1
Obj 11
Obj 12
Obj 21
Obj 22
Obj 32
Obj 33
Obj 31
Rol
1.1
Rol
1.2
Rol
1.1
Rol
1.2
Rol
1.3
5. 5
En donde: CRolA es la complejidad del rol A.
CoA es la complejidad del objetivo asignados al rol A
CrA es la complejidad de los recursos asignados al rol A
ChA es la complejidad de las habilidades asignados al rol A
w son los pesos (cuya sumatoria debe ser igual a 1)
4 Fases de desarrollo
La descomposición y la gestión de las interacciones, son los elementos distintivos que soportan conceptualmente a
AOPOA y esto se ve reflejado en cada una de sus fases como veremos a continuación:
4.1 Fase de Análisis:
Consta de dos procesos: caracterización general del sistema y la descomposición organizacional recursiva.
4.1.1 Caracterización General Del Sistema:
En la figura 7 se demuestran los pasos de éste proceso. Se inicia con el levantamiento de los requerimientos
del sistema representando las funcionalidades de este, se generan los artefactos tabla de casos de uso y la
tabla de requerimientos no funcionales. Se identifica el objetivo global y se traslada a la primera columna
de la tabla de tareas, se debe para ello tener en cuenta las tareas de información almacenada o procesada. Se
generan las clases de objetivos como un medio para incluir la información relevante propia del dominio del
problema que mas adelante influirá en la generación de los roles, se consigna ello en la tabla de clases de
objetivos. Se identifican las habilidades necesarias para cumplir estos objetivos que se llevan a la tabla de
habilidades. Se identifican y caracterizan las entidades externas en una tabla. Posteriormente se definen los
recursos externos del SMA, teniendo en cuenta el mantenimiento de su cardinalidad (fijos determinados,
fijos indeterminados o infinitos) además de su origen.
Con estos tres artefactos se constituye el artefacto descriptor de tareas con la cual se llena la tabla de
tareas. Acto seguido se procede a generar los roles considerando que cada uno de ellos tiene un padre. Se
asocian luego, la asociación de los recursos con las entidades externas de forma explicita, constituyendo la
tabla de vínculos externos.
En este momento se debe realizar la validación del enfoque POA:
- Determinar la compejidad del problema.
- Verificar la presencia de interacciones.
- Especificar comunicaciones.
- Definir autonomía.
- Definir escalabilidad
- Especificar el enfoque organizacional
Las cuatro primeras son primordiales y las tres iniciales se deben realizar en este orden.
CRolA = ow * oAC + rw * rAC + hw * hAC
6. 6
Figura 7. Caracterización general del sistema.
4.1.2 Descomposición Organizacional Recursiva (figura 8):
Se parte de la tabla de roles identificando la complejidad del rol decidiendo si va a ser dividido, se inicia
con ello la creación del árbol jerárquico de roles. Se inicia por la descomposición de los objetivos, luego se
identifican los recursos y habilidades, luego cada objetivo se liga a una tarea, es ésta la que incorpora en
una unidad lógica un objetivo con las clases de objetivo, las habilidades y los recursos. La siguiente
actividad tiene como fin obtener una agrupación de tareas, cada uno de los grupos obtenidos constituye la
base de uno de los nuevos roles simples derivados del rol complejo. La mejor agrupación es producida
mediante la aplicación de la heurística anteriormente descrita.
La mejor agrupación se lleva a la tabla de roles y luego se identifican los vínculos de cooperación que
deben ser asumidos por alguno de los nuevos roles identificados. El proceso de identificación de roles es
llevado a cabo de manera iterativa cuantas veces se juzgue necesario, subdividiendo en cada paso uno de
los roles encontrados. Una vez concluido este proceso, es posible pasar a la etapa de diseño.
nivel de comunicaciones entre roles; la heurística penaliza la
aparición de recursos compartidos.
III. FASE DE ANÁLISIS
En esta fase, una vez se ha determinado que el problema
posee las características en las cuales una solución basada en
artefactos Tabla de Roles y Tabla de Tareas, los cuales se
constituirán en el artefacto central del proceso recursivo de
descomposición organizacional.
Enunciado
del
problema
Tabla de
Tareas
Diagrama
de Vínculos
Externos
Identificar objetivo
global, objetivos
generales
Identificar y
Caracterizar
Entidades Externas
Definir recursos
externos al SMA
Asociar Recursos
con Entidades
Externas, Encontrar
Vínculos con Ellas.
Definir Habilidades
Necesarias
Finalizar-
AOPOA no
es aplicable.
Validar
Enfoque POA
Si
No
Finalizar
Proceso
Generar Clases de
Objetivos
Generar la Tabla de
Tareas
Tabla de
Tareas
Generar la Tabla de
Roles
Tabla de
Roles
Elaborar diagramas
de casos de uso
Tabla de
Diagramas de
Casos de Uso
Tabla de
Requerimientos
no Funcionales
Tabla de
Entidades
Externas
Tabla de
Clases de
Objetivos
Tabla de
Habilidades
Tabla de
Recursos
Figura 2. Descomposición recursiva de una organización
La primera actividad es la identificación de los objetivos
generales a partir del análisis de requerimientos del sistema.
Estos objetivos constituyen una aproximación general de la
solución, representan las responsabilidades del sistema como
si éste estuviese constituido por un rol, el cual será refinado
durante el proceso de descomposición organizacional.
7. 7
Figura 8. Proceso de descompocición organizacional.
4.2 Fase de Diseño.
En esta fase se procede a refinar el modelo, pasando de una vista global a una local, en la que se analizan las
necesidades de cooperación e interacción entre los roles encontrados. Se llevan a cabo dos procesos: el diseño
de vínculos de cooperación y el diseño de agentes.
4.2.1 Diseño De Vínculos De Cooperación (figura 9)
El tipo de interacción se asigna de acuerdo con la información obtenida de la Tabla de Recursos, el
Diagrama de Vínculos por Recursos, y el Diagrama de Vínculos por Objetivos para cada caso. El producto
de esta caracterización es registrado en la Tabla de Tipos de Interacción. Se procede a identificar una
técnica de cooperación adecuada; para cada caso se determina si el manejo de la interacción requiere el uso
de mecanismos de colaboración, coordinación ó resolución de conflictos. Luego se diseñan las respectivas
técnicas de interacción.
a de Habilidades y la Tabla de Recursos. Las tres tablas
ionadas (Clases de Objetivos, Habilidades y Recursos)
orman un único artefacto llamado Artefacto Descriptor de
as, cuya información es utilizada para generar la Tabla de
as, en la que cada objetivo da lugar a una tarea. En este
o, el SMA se modela por un único rol, el cual tiene a su
todos los objetivos globales del sistema; este rol será la
que conforman parte del ambiente. En ambos casos, estas
entidades serán asociadas por el SMA con los recursos
requeridos. En el primer caso, los recursos pueden ser
obtenidos a través de los vínculos con los actores externos. En
el segundo caso, los sensores y actuadores de los agentes son
utilizados para percibir y manipular los objetos pasivos.
Tabla de
Roles
El rol es
Complejo
Si
No
Descomponer
Objetivos
Asignar Recursos a
Objetivos
Especificar Tareas
Definir Roles
Tabla de
Objetivos
Tabla
de
Tareas
Tabla de
Roles
Finalizar Proceso
Identificar Vínculos de
Cooperación
Manejar Herencia de
los Vínculos
Diagrama de
Vínculos por
Objetivos
Diagrama de
Vínculos por
Recursos
Figura 3. Proceso de descomposición organizacional
Descomposición Organizacional
a vez han sido identificados y caracterizados las
ades externas, los recursos y los objetivos generales del
ma, se debe proceder a realizar el proceso recursivo de
omposición organizacional en roles. En la primera
ión, el sistema aparece representado por un único rol; en
eraciones siguientes, ya se habrá iniciado el desarrollo del
jerárquico de roles. En cualquier caso, la primera
dad es evaluar la complejidad de los roles que
ituyen la hojas del árbol. Si se determina que la
lejidad de uno de los roles es muy alta, éste debe ser
vidido.
En cada iteración se efectúa la descomposición recursiva de
un rol complejo en dos o más roles simples. El proceso inicia
con la descomposición de los objetivos del rol complejo en
objetivos más simples. Estos objetivos simples son analizados
con el fin de identificar los recursos y habilidades que se
requieren para su obtención. Cada objetivo se asocia a una
tarea; es ésta la que incorpora en una unidad lógica un
objetivo con las clases de objetivo, las habilidades y los
recursos. La Tabla de Tareas es modificada para reflejar estos
cambios.
La siguiente actividad tiene como fin obtener una
agrupación de tareas; es decir, un conjunto de grupos de
8. 8
Figura 9. Diseño de vínculos de cooperación
4.2.2 Diseño De Agentes (figura 10)
Se deben especificar de un modo más detallado los roles encontrados hasta el momento, seguido de la
definición específica los eventos a los que cada rol responderá. Cada evento proveniente del exterior
provocará una respuesta, en la que estarán involucrados el estado del agente, los recursos y las habilidades.
La información básica que describe a cada evento es registrada en la Tabla de Eventos.
Los componentes que describen el estado de un rol son su memoria, le brindan la información que necesita
tener para poder reaccionar adecuadamente a los eventos que le sean comunicados, es almacenada en la
Tabla de Estados. Como parte de la respuesta a eventos, el rol debe percibir y manipular los recursos
disponibles en el ambiente; estas tareas son llevadas a cabo utilizando adaptadores que deben tener
asociada al menos una primitiva que proporcione los medios para llevar a cabo las funcionalidades
requeridas para controlar uno o varios recursos. La definición de los adaptadores y sus primitivas asociadas
es consignada en la Tabla de Adaptadores.
A continuación, se debe proceder a especificar de una manera más detallada las respuestas del rol a los
eventos previamente definidos. e incluye aquí la habilidad mental involucrada en cada respuesta. Una
habilidad mental es el mecanismo por medio del cual el rol toma la decisión de comportarse de una u otra
manera como respuesta a un evento. Como última actividad del diseño interno de los roles debe revisarse el
cumplimiento de los requerimientos no funcionales definidos para el SMA durante la etapa de análisis.
Con los roles completamente definidos, es el momento de agruparlos en meta-agentes. Un meta-agente es
un espacio de ejecución para los roles, que puede agrupar uno o más de ellos. El meta-agente asume el
cumplimiento de los objetivos de todos los roles que lo integran, respondiendo en la forma especificada
para cada rol, a los eventos asociados.
derivados del rol complejo.
da mediante la aplicación de
onar la agrupación que tienda
es que compartan el mínimo
redundancia de habilidades,
mayoría de los objetivos de
uada a partir de la mejor
ada en la Tabla de Roles.
os nuevos roles, se procede a
ínculos de cooperación entre
ir por dos motivos:
rsos compartidos.
en a la obtención de un
, también debe analizarse la
poseía el rol complejo. Estos
r asumidos por alguno de los
e roles es llevado a cabo de
es se juzgue necesario,
de los roles encontrados. Una
posible pasar a la etapa de
e realizó un modelo del
ncentrándose en qué roles
s deben hacer. En la etapa de
alizado durante la etapa de
obal a una vista local, en la
s de SMA, se analizan las
interacción entre los roles
seño se llevan a cabo dos
e cooperación y el diseño de
ración
e diseño de vínculos de
Al finalizar el proceso se
ulos de Comunicación, que
entre los roles encontrados
nculos de cooperación entre
an como interacciones los
ctados durante el análisis,
l tipo de interacción; por
ción o antagonismo. El tipo
uerdo con la información
s, el Diagrama de Vínculos
Vínculos por Objetivos para
racterización es registrado en
abla de Tipos de Interacción,
ca de cooperación adecuada;
requiere el uso de mecanismos de colaboración, coordinación
ó resolución de conflictos. Cabe anotar que en algunos casos,
este manejo puede requerir el uso de mecanismos que realicen
más de una de estas tres funcionalidades. La selección de la
técnica o mecanismo de cooperación particular a utilizar
queda a criterio del diseñador, por cuanto existen numerosas
alternativas para ello.
Diag.
Vínculos
por
Objetivos
Finalizar
Proceso
Diag.
Vínculos
por
Recursos
Caracterizar los
Vínculos de
Cooperación Como
Interacciones
Seleccionar
Técnicas de
Cooperación
Tabla de
Tipos de
Interacción
Completar la Tabla
de Recursos
Tabla de
Recursos
Tabla de
Recursos
Diseñar Protocolos
de Interacción
Diagrama de
Vínculos de
Comunicación
Figura 4. Diseño de vínculos de cooperación
Por último, para cada vínculo de cooperación, a partir de las
técnicas seleccionadas en la actividad anterior, se diseñan
protocolos de interacción que permitan manejar de manera
apropiada cada caso de interacción entre roles. El diseño de un
protocolo implica determinar el flujo específico de eventos
que se intercambian entre los roles involucrados, así como
también la semántica y los datos asociados a cada uno de estos
eventos. Es posible recurrir a protocolos predefinidos, como
los propuestos por FIPA [1], o crear nuevos protocolos que se
ajusten a las necesidades del diseñador, y del problema. Para
este caso, pueden incluso definirse “roles sociales” o
auxiliares que se encarguen de ser mediadores o facilitadores
en el manejo de ciertas situaciones de interacción. La
especificación detallada de los protocolos y de los eventos se
consigna en el Diagrama de Vínculos de Comunicación.
2) Diseño de Agentes
Una vez se han detallado todos los vínculos de cooperación,
sigue el diseño interno de los roles identificados. La dinámica
de este proceso se muestra en la Figura 5.
9. 9
Figura 10. Diseño de agentes
4.3 Fase de despliegue
Se incluye la definición de sitios de despliegue, así como la disponibilidad de recursos, almacenamiento, y
capacidad de cómputo para cada sitio. Con esta información, se verifica las modificaciones que hay que hacer a
los meta-agentes para adaptarse al ambiente de despliegue, como por ejemplo replicación o distribución de
instancias. Todos estos aspectos son relevantes al momento de tomar decisiones en términos de
implementación del sistema, y claramente durante el despliegue físico del mismo.
5 Presentación de un artículo de ejemplo
El problema que se aborda es la manera de identificar y realizar actividades para optimizar la seguridad de los
correos electrónicos. Se especifica la posibilidad de detectar operaciones de consulta, envío y borrado de correos en
un sistema de correo electrónico. Inicia con una extensa revisión de los conceptos de seguridad y dan ejemplo de uso
de SMA para la resolución de estos problemas. Exponen a continuación los lineamiento metodológicos que
siguieron, con los pasos llevados a cabo en AOPOA identificando los siguientes artefactos:
en la que
ursos y las
cada evento
ión de los
Éstos son la
ue necesita
eventos que
el estado es
el rol debe
l ambiente;
dores. Cada
imitiva que
ionalidades
a definición
nsignada en
car de una
los eventos
nte a esta
luye aquí la
na habilidad
rol toma la
o respuesta
s roles debe
mientos no
a etapa de
ificarse los
y los demás
momento de
espacio de
o o más de
os objetivos
en la forma
ciados. Los
on variados,
bjetivos, la
os. Se debe
ultante, en
en un meta-
ntes serán
ra lógica y
dos durante
ue agrupan
sistema, es
spliegue, en
entes reales
os objetivos
modificaciones que hay que hacer a los meta-agentes para
adaptarse al ambiente de despliegue, como por ejemplo
replicación o distribución de instancias. Todos estos aspectos
son relevantes al momento de tomar decisiones en términos de
implementación del sistema, y claramente durante el
despliegue físico del mismo.
Definir componentes
de estado por rol
Roles
finales
Finalizar
Proceso
Especificar
Adaptadores por Rol
Tabla de
Estados
Definir eventos por
rol
Tabla
de
Eventos
Tabla de
Adaptadores
Especificar
Respuesta a Eventos
Tabla de
Eventos
Identificar Meta -
Agentes
Tabla de
Meta-
Agentes
Figura 5. Diseño de agentes.
IV. CASO DE ESTUDIO
Como caso de estudio de aplicación de la metodología
AOPOA a un problema del mundo corporativo, ésta ha sido
aplicada al problema de administración y optimización de
servidores en la Empresa de Telecomunicaciones de Bogotá
ETB. Los servidores de negocios de la compañía han venido
siendo administrados utilizando el software HP OpenView .
Sin embargo, varios factores incluyendo costos de
licenciamiento, consumo de recursos, despliegue estático y
proactividad limitada, hicieron deseable la implementación de
un sistema paralelo de gestión, diseñado siguiendo una
aproximación multi-agente.
El proceso inició con el levantamiento de información
correspondiente al problema. Dicho levantamiento fue llevado
a cabo siguiendo los procedimientos estándares de
levantamiento de información para proyectos de software no
enfocados utilizando el paradigma multi-agente. A partir del
resultado de este proceso se planteó el objetivo principal de la
10. 10
3131
REVISTA VÍNCULOS VOL 7 NÚMERO 1 ENERO - JUNIO 2010
3232
I + D S I S T E M A M U L T I A G E N T E P A R A L A D E T E C C I Ó N D E O P E R A C I O N E S D E C O N S U L T A , E N V Í O Y B O R R A D O D E C O R R E O S N O A U T O R I Z A D O S
REVISTA VÍNCULOS VOL 7 NÚMERO 1 ENERO - JUNIO 2010
3232
I + D S I S T E M A M U L T I A G E N T E P A R A L A D E T E C C I Ó N D E O P E R A C I O N E S D E C O N S U L T A , E N V Í O Y B O R R A D O D E C O R R E O S N O A U T O R I Z A D O S
REVISTA VÍNCULOS VOL 7 NÚMERO 1 ENERO - JUNIO 2010
11. 11
Tabla 5. Vínculos externos
3333
REVISTA VÍNCULOS VOL 7 NÚMERO 1 ENERO - JUNIO 2010
I + D S I S T E M A M U L T I A G E N T E P A R A L A D E T E C C I Ó N D E O P E R A C I O N E S D E C O N S U L T A , E N V Í O Y B O R R A D O D E C O R R E O S N O A U T O R I Z A D O S
12. 12
Figura 11. Arquitectura del Sistema Multiagentes
Se realizaron un marco de pruebas en las que se encuetra una relación cási linenal entre el número de ataques
realizados y la tasa de identificaciones, a mayor número de ataques mejor reaccionaba el sistema. Explican este
comportamiento por las características de los agentes y su habilidad para identificar los ataques.
Si bien no representa el comportamiento optimo para la solución de los problemas de seguridad en servidores de
correo, se debe aprovechar la descripción del proceso de diseño del sistema con cada uno de los artefactos
generados.
3434
REVISTA VÍNCULOS VOL 7 NÚMERO 1 ENERO - JUNIO 2010
JUAN CARLOS GUEVARA B., LUIS FELIPE WANUMEN S., GLORIA ANDREA CAVANZO N., CÉSAR VALDÉS L. L O S
E N E R O - J U N I O D E 2 0 1 0
V O L U M E N 7 N Ú M E R O 1
UCNÍV
13. 13
6 Conclusiones
Como fue expuesto en CLEI 2003 [3]: “… las ventajas que se encuentran al utilizar la metodología AOPOA son:
• El enfoque organizacional permite manejar la complejidad de un sistema al subdividir el problema en partes
más simples, cuyas relaciones están bien definidas.
• La utilización del procedimiento de agrupación permite hallar la mejor combinación de grupos de tareas, para
así optimizar el proceso de generación de los roles de manera que estos sean especializados y se reduzcan los
conflictos entre agentes.
• La flexibilidad para hacer evolucionar el sistema, en cuanto a que permite adicionar nuevos requerimientos a la
definición del problema, los cuales pueden ser cumplidos por el sistema ya existente sin modificar la estructura
inicial, la metodología permite escalabilidad.
• El proceso es completo dado que considera todos los aspectos necesarios para desarrollar un buen SMA, desde
el levantamiento de requerimientos hasta tener en cuenta los protocolos de comunicación para implementar las
interacciones entre los agentes.”
En resumen, AOPOA representa una metodología para el desarrollo de SMA en la que se traduce a un problema de
optimización (basada en objetivos, recursos y tareas) la forma en que se asignan los roles a un grupo de agentes,
dichos roles y sus interacciones son descubiertas de manera automática tras un proceso de descomposición
recursiva.
Referencias
[1] González E, Bustacara C. “Desarrollo de Aplicaciones Basadas en Sistemas Multi-Agentes”. Libro Producto de
Investigación – Grupo SIDRe, Departamento de Ingeniería de Sistemas, Facultad de Ingeniería, Pontificia Universidad
Javeriana. 2007.
[2] Rodríguez J, Torres M, González E. La Metodología AOPOA. Revista Avances en Sistemas e Informática, Vol.4 No.
2, Septiembre de 2007, Medellín, ISSN 1657-7663. Edición Especial: II Congreso Colombiano de Computación –
CCC2007.
[3] Ahogado D, Reinemer AM, González E. AOPOA: Aproximación Organizacional para Programación Orientada a
Agentes. CLEI 2003.
[4] Gonzalez E, Torres M. “AOPOA Organizational Approach for Agent Oriented Programming”, in Proceedings of the
8th International Conference on Enterprise Information Systems, May 2006 Paphos – Cyprus
[5] González E, Rodríguez J. AOPOA: Aproximación Organizacional para Programación Orientada a Agentes.
Presentación del Simposio para la Construcción de Software 2005.
[6] González E. Presentación del proyecto ASMA (Arquitectura de Sistemas Multi-Agentes). Grupo de investigación
SDRe, MISyC, PUJ. 2005.
[7] Juan Carlos Guevara B, Luis Felipe Wanumen S, Gloria Andrea Cavanzo N, César Valdés L. Sistema multiagente para
la detección de operaciones de consulta, envío y borrado de correos no autorizados. Revista Vínculos vol 7 número 1
enero - junio 2010 PP. 25 – 38.