Arquitectura del software Parte II - Arquitecturas multiagente Tema 3 - Sociedades de agentes y middleware social Ingeniería Informática Juan Manuel Serrano http://zenon.etsii.urjc.es/grupo/docencia/as Objetivos Comprender los sistemas multiagente desde el punto de vista de la aplicación de una metáfora social al desarrollo de sistemas distribuidos, en términos de sociedades computacionales desplegadas por medio de middlewares sociales Ser capaz de distinguir la programación de componentes y la programación de interacciones, tal y como ésta se aplica a la programación de sociedades de agentes Conocer los dominios de aplicación característicos de este estilo arquitectónico: las aplicaciones sociales 2 1
Bibliografía M. Wooldridge: An Introduction to Multiagent Systems, John Wiley & Sons, 2002 Luck M., McBurney P., Shehory O., Willmott S. Agent technology: computing as interaction. A Roadmap for agent-based computing. http://www.agentlink.org/roadmap/index.html Munindar P. Singh and Michael N. Huhns. Service-Oriented Computing. Semantics, Processes, Agents. John Wiley & Sons, Ltd., 2005 Harmon P. Business Process Change. Morgan Kaufmann, 2nd ed., 2007 3 Tecnología orientada a agentes Originada en el contexto de la inteligencia artificial l Actualmente, se considera principalmente un nuevo paradigma de desarrollo de software Los agentes son componentes software (en los que la inteligencia es una característica opcional) Los sistemas multiagente son sistemas distribuidos La tecnología badada en agentes software se considera especialmente adecuada para el desarrollo de sistema abiertos l Open systems are dynamic distributed applications made up of a large population of autonomous and heterogeneous software components, which engage in complex patterns of interactions [Singh & Huhns] l La gestión de las interacciones entre componentes software es el principal problema de los sistemas abiertos 4 2
Tecnología orientada a agentes Qué tipo de abstracción software es un agente? l An agent is an heterogeneous and persistent software component capable of autonomous action in a dynamic, situated and social multiagent distributed environment (adapted from [Luck et al. 05]) Los agentes son componentes software autónomos l Tienen control absoluto sobre su estado y actividad Los objetos, por ejemplo, no son autónomos Los componentes autónomos no sólo encapsula su estado (como los objetos), también encapsulan el interfaz Los agentes se encuentran desplegados (situated) en un entorno donde conviven con otros compomentes l Estos componentes pueden ser otros agentes, o distintos tipos de recursos computacionales: componentes no autónomos que proporcionan distintos servicios a los agentes l El entorno de un sistema multiagente es el middleware 5 Tecnología orientada a agentes El entorno de interacción se encuentra diseñado en base a una metáfora social l El sistema multiagente se concibe en términos de una sociedad computacional l El middleware social proporciona mecanismos de interacción inspirados en la forma en la que los seres humanos nos comunicamos e interactuamos en la sociedad: conectores sociales Actos de habla Organizaciones, instituciones, grupos, diálogos, etc. En base a normas sociales: autorizaciones, permisos, obligaciones, sanciones, etc. 6 3
Tecnología orientada a agentes Los agentes pueden entenderse en términos de componentes o roles l Concretamente, los agentes pueden entenderse como un tipo de rol que los componentes desempeñan en el contexto de un middleware social De manera similar a como pueden entenderse los objetos en un contexto distribuido En términos de la perspectiva basada en roles: l Los recursos del entorno de un sistema multiagente también representan un tipo de rol diferente l La autonomía es un concepto relativo Los agentes son autónomos únicamente en sus interacciones a través del middleware social En el contexto de su interacción con el usuario, por ejemplo, se comporta como un entidad no autónoma l Se incrementa el grado de desacoplamiento entre los componentes y el middleware social El ciclo de vida de los agentes no está gestionado por el middleware El de los recursos, puede que sí y puede que no 7 Componentes clásicos :C++ :Java Tecnología orientada a agentes :Resource :Agent :SocialMiddleware Perspectiva organizativa: Instituciones, organizaciones, grupos, Etc. Perspectiva comunicativa: Actos de habla, diálogos, ontologías, Etc. :Agent Componentes Inteligentes : Objetivos, deseos, Intenciones, etc. :Jason :Python :Firefox :Resource :Agent :Resource Perspectiva normativa: Contratos, políticas, autorizaciones, permisos, Obligaciones, compromisos, derechos, propósitos Institucionales, sanciones, etc. :Agent :Agent :Agent :2APL :Prolog :Perl :Lisp 8 4
Lenguajes de programación de interacciones La programación de un sistema multiagente se lleva a cabo mediante la programación de dos tipos de entidades: l Agentes (y recursos) AgentSpeak, Jason, 3APL, Minerva, Jadex, etc. l El entorno social Plataformas de bajo nivel (soportan comunicación basada en actos de habla) FIPA platforms (JADE, ) De alto nivel (soportan abstracciones sociales) AMELI, INGENIAS toolkit, MadKit, S-Moise+, etc. Lenguajes orientados a interacciones vs. lenguajes orientados a componentes l Middleware social definido como máquina abstracta programable 9 Lenguajes de programación de interacciones Lenguajes de componentes l Lenguajes de propósito general orientados a la implementación de componentes software C++, Java, C# l Mecanismos de interacción prefijados de antemano con un grado de programabilidad muy limitado Interfaces Java, IDL, etc. Lenguajes de interacciones l Lenguajes orientados a la programación de conectores Se basan en un modelo genérico y programable de conector La máquina abstracta del lenguaje es el middleware l Ejemplos Lenguajes de procesos/servicios: WS-CDL, WS-BPEL,... Lenguajes de subscripción en arquitectituras publish-subscribe Lenguajes de tranformación y monitorización en integration brokers Lenguajes de procesos de las suites BPM (Business Process Management Suites) 10 5
Lenguajes de programación de interacciones Lenguaje de programación de sociedades de agentes Interaction programming language ESPECIFICACIÓN Máquina abstracta Sistema de tipos Sintaxis superficial (Visual, XML,..) LIBRERÍA ESTÁNDAR Actos de habla Interacciones sociales, IMPLEMENTACIÓN Infraestructura de middelware (Virtual Mchine) WEB SERVICES VM (REST, SOAP) MESSAGING (AMQP, JMS,..)... HERRAMIENTAS USUARIO VM sniffer VM debugger type editor event manager... 11 Lenguajes de programación de interacciones ESPECIFICACIÓN Tema 5 Tema 4 MÁQUINA ABSTRACTA Estructura Ciclo de ejecución Acciones externas SISTEMA DE TIPOS Meta-tipos Especialización Sintaxis visual (UML, XML,..) Interacciones sociales Actos de habla Petición de servicios 12 6
Aplicaciones sociales Las sociedades computacionales proporcionan una tecnología especialmente apta para el desarrollo de aplicaciones sociales: aplicaciones diseñadas para dar soporte a los procesos de generación, difusión y consumo de información en un contexto social determinado APLICACIONES PARA LA SOCIEDAD DE LA INFORMACIÓN SISTEMAS DE INFORMACIÓN Technology-enabled business development [ACM Curriculum Guidelines] SOCIAL SOFTWARE Software systems that allow users to interact and share data... The terms Web 2.0...used to describe this style of software. [Wikipedia] Utilizaremos la expresión Aplicación Social para enfatizar la relevancia de: l los aspectos pragmáticos vs. semánticos l la interacción social vs. información 13 Aplicaciones sociales Contextos sociales Empresa Redes sociales Juegos Economía Salud Política.. Aplicaciones sociales Business process Management Systems Social networking Tools Game servers E-commerce E-Health E-democracy.. 14 7
Aplicaciones sociales cvc cvc 15 Aplicaciones sociales Las aplicaciones sociales (AS) son sistemas distribuidos l Componentes Interfaces de usuario, componentes inteligentes (opcional), l Middleware Gestión de las interacciones entre usuarios Las AS son sistemas abiertos l Heterogéneos Hardware (smartphones, PCs, ) Software Android, Windows, Mac, Linux,.. Navegadores (Firefox, iexplorer, ), interfaces ad-hoc, l l Dinámicos La población de componentes (los usuarios) varía con frecuencia Autónomos Los componentes (usuarios) tienen control absoluto sobre su estado interno 16 8
Aplicaciones sociales Qué tecnología de middleware es más apropiada para el desarrollo de aplicaciones sociales? l Podemos comparar los distintos tipos de middleware en base al paradigma de interacción (o estilo arquitectónico) soportado, gestión del ciclo de vida de los componentes, etc. Middlewares Orientados a objetos (CORBA, Java RMI, ) Orientados a mensajes (AMQP, JMS, ) Orientados a la Web (REST-based WS, W3C WS ) Peer-to-peer (BitTorrent, e2dk, ) 17 Aplicaciones sociales Las tecnologías clásicas tienen varios inconvenientes: l Violan la autonomía de los componentes l Conectores software de bajo nivel de abstracción l Bajo nivel de programabilidad: aspectos de la interacción programados a través de componentes En desacuerdo con el principio de separación de aspectos entre interacción y computación 18 9
Aplicaciones sociales Tecnologías específicas para dominios concretos (lenguajes específicos de dominio DSL) l Vs. lenguajes de programación genéricos Dominios l Redes sociales OpenSocial API, Facebook connect, Elgg, Pinax, l Gestión de procesos de negocios Workflow Design Patterns, BPMS, l l Procesos sociales: Sociedades computacionales Subsume los dominios anteriores 19 Ejemplo 1: Asociaciones deportivas 20 10
Ejemplo 1: Asociaciones deportivas D. SINGLES ENTRY AND WITHDRAWAL 1. Entry. A player may apply for entry into one but not more than six Futures Tournaments for a specific tournament week, in which case he must indicate a priority. I. DRAWS The Singles Main Draw shall consist of 32 players. The Singles Qualifying Draw shall be a minimum of a 32 Draw and a maximum of a 64 Draw... 21 Ejemplo 1: Asociaciones deportivas 22 11
Gestión universitaria Ejemplo 2: gestión de universidades 24 12
Semántica de ejecución Ejemplo 3: comunidades de investigadores :MAS 26 13
Más ejemplos Procesos de estandarización l W3C Process Document l OMG Policies and Procedures Manual l Sun s Java Community Process l Bus/Train/Airplane fleet management Procesos de negocio l Redes de transporte (metro, línea de autobuses, ) l Gestión de bancos de sangre l Agencias de viajes l ITIL (Information Technology Infrastructure Library ) l SCOR (Supply-Chain Operations Reference-model) l etom (enhanced Telecom Operations Map) Asociaciones deportivas l Estatutos de clubs y federaciones deportivas (baloncesto, fútbol, natación,...) l Torneos deportivos (playoffs, formula1,...) Administración pública l Gestión de hospitales, centros de educación,.. l Congreso de los diputados, senado,... Redes sociales l Música, ONGs, IRC,... 27 14