Arquitectura del software Parte II - Arquitecturas multiagente Tema 3 - Sociedades de agentes y middleware social



Documentos relacionados
Introducción a los Servicios Web. Ing. José Luis Bugarin ILUMINATIC SAC jbugarin@consultorjava.com

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

Desarrollo de aplicaciones para la sociedad de la información Bloque II- Dominios de aplicaciones sociales Tema 3- Gestión de procesos de negocio

Service Oriented Architecture

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

Ingeniería de Software en SOA

IWG-101: Introducción a la Ingeniería. Departamento de Informática, UTFSM 1


Estandar FIPA Foundation for Intelligent Physical Agents

UNIVERSIDAD CENTROCCIDENTAL "LISANDRO ALVARADO" DECANATO DE CIENCIAS Y TECNOLOGIA MAESTRIA EN CIENCIAS DE LA COMPUTACION MENCION REDES DE COMPUTADORAS

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

Nombre del documento: Programa de Estudio de asignatura de Especialidad. Referencia a la Norma ISO 9001: Página 1 de 6

RBAC4WFSYS: Modelo de Acceso para Sistemas Workflow basado en RBAC

MAESTRÍA EN INGENIERÍA DE COMPUTACIÓN Y SISTEMAS CON MENCIÓN EN GESTIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN

SISTEMAS DISTRIBUIDOS DE REDES 3.- ESTANDAR CORBA Características

La Necesidad de Modelar. Diseño de Software Avanzado Departamento de Informática

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

Programación Distribuida

Temario máster Java. Módulo 1 Fundamentals of the Java Programming Language. Duración: 40 horas

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO

GUIA DOCENTE DE LA ASIGNATURA MIDDLEWARE DE LA TITULACION Máster Oficial en Sistemas Telemáticos e Informáticos

Estándares para el Uso de Herramientas de Desarrollo y Plataformas de Aplicaciones Web

Grado en Ingeniería del Software

Objetos Distribuidos - Componentes. Middleware

JAVA EE 5. Arquitectura, conceptos y ejemplos.

TEMA 5. Otras arquitecturas distribuidas IV. Web Services

comunidades de práctica

Tema 4: Diseño de flujos interaplicación

Para el desarrollo de aplicaciones Web se han generado múltiples tecnologías entre ellas se encuentran:

GLOSARIO. Análisis Bottom-Up: Técnica utilizada en tareas de ingeniería inversa la cual parte de

Aspectos Tecnológicos y Modelos Conceptuales de un Dispositivo Hipermedial Dinámico

Plataforma desarrollo Java Formación elearning tutorizada en castellano. Fabricante: Java Grupo: Desarrollo Subgrupo: Master Java

Service Oriented Architecture: Con Biztalk?

Introducción a Gestión de Proyectos. Beneficios del Sistema. Arquitectura y Diseño del Aplicativo. Requerimientos del Sistema.

Taller de Programación de Dispositivos Móviles. José Miguel Rubio L. Oficina

Gerencia de Procesos de Negocio (Business Process Management, BPM). Lic. Patricia Palacios Zuleta

Modelos de los sistemas distribuidos. Jorge Iván Meza Martínez

Patrones de Alto nivel: Patrones de Arquitectura Patrones de nivel medio: Patrones de Diseño Patrones de bajo nivel: Idioms


Management(BPM) Gestión de Proceso de negocio con BPM. Universidad Inca Garcilaso de la Vega

Una puerta abierta al futuro

Service Oriented Architecture

Servicios Web: Orquestación y coreografías

Arquitectura de Software

Arquitectura de Aplicaciones

UNIVERSIDAD DEL VALLE DE MÉXICO PROGRAMA DE ESTUDIO DE LICENCIATURA PRAXIS MES XXI

Plataforma de Interoperabilidad Libre Orientada a Servicios para el Estado Venezolano

Anexo 4 Documento de Arquitectura

SYSTEMIC SOLUTIONS BPM. soluciones integrales.

PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto

6.1 Introducción a los sistemas EAI

TEMA 5. Otras arquitecturas distribuidas II. Objetos distribuidos y CORBA

Glosario Plataforma de Interoperabilidad Libre Orientada a Servicios para el Estado Venezolano

Sus correos al mio y taniana@ula.ve (titulo mensaje estudiante AI)

ARQUITECTURAS DE SOFTWARE ORIENTADAS A SERVICIOS

REPÚBLICA BOLIVARIANA DE VENEZUELA UNIVERSIDAD DEL ZULIA NÚCLEO PUNTO FIJO PROGRAMA DE CIENCIA Y TECNOLOGÍA LICENCIATURA EN COMPUTACIÓN

Técnicas Avanzadas de Middleware. Presentación del curso

Iván Ruiz Rube Departamento de Ingeniería Informática Escuela Superior de Ingeniería Universidad de Cádiz

Antecedentes de GT Consultores

Seminario Repositorios Institucionales Centros Públicos de Investigación-CONACYT. La Interoperabilidad en el ámbito de los Repositorios Nacionales

El Cliente y El Ingeniero de Software

[CASI v.0109] Pág. 1

Servicios Web. Capítulo 5: Introducción a los Servicios Web. Pedro Álvarez alvaper@unizar.es José Ángel Bañares banares@unizar.es

Un Sistema Inteligente para Asistir la Búsqueda Personalizada de Objetos de Aprendizaje

Dirección General de Educación Superior Tecnológica

Mejor tecnología para aplicación práctica NOMAD

1 EL SISTEMA R/3 DE SAP AG

Introducción a Plone y Zope. Presentación introductoria sobre Plone y las tecnologías utilizadas, como Zope y Python.

8. Internet y su impacto en las Organizaciones. 8.1 Conceptos y terminología 8.2 Etapas de interacción con la Web 8.3 Impacto de Internet en las

Aproximación práctica a ITIL. Proyecto VeredaCS. F r00

Desarrollo de Sistemas Multi-Agente con INGENIAS

Introducción a SOA (II) Huibert Aalbers Senior Certified Software IT Architect

Clasificación de Áreas y Subáreas para las inscripciones al Doctorado en Ciencias Informáticas

El desarrollo de aplicaciones

5.1 Introducción a Servicios Web

Comunicación entre procesos

WebSphere es una familia de productos de software propietario de IBM

Quito Ecuador EXTRACTO INFORMÁTICA SANITARIA. ARQUITECTURA DE SERVICIOS. PARTE 3: PUNTO DE VISTA COMPUTACIONAL (ISO :2009, IDT)

Competencias generales vinculadas a los distintos módulos Módulo de Formación Básica

Administración de Centros de Computo. ITIL. MSG.ING. DARWIN CERCADO B dcercado@primma.com.ec

UNIVERSIDAD SIMÓN BOLÍVAR Vicerrectorado Académico

Curso Capítulo 4: Arquitectura Orientada a Servicios. Conceptos y estándares de arquitecturas orientadas a servicios Web Curso 2006/2007

TEMA 1.-Programación orientada a objetos (POO) Objetivo

INTEROPERABILIDAD ENTRE LOS MARCOS DE GESTION SNMP Y CORBA (GATEWAY)

Tema 1. Introducción a Java EE

Estándares Web: XHTML y CSS - Usabilidad - Accesibilidad. Desarrollo de Sitios Web de Calidad, Usables, Seguros, Válidos y Accesibles

DIPLOMADO EN MODELADO Y AUTOMATIZACIÓN DE PROCESOS DE NEGOCIO

GMF Gestor de incidencias

SISTEMA DE INFORMACIÓN TERRITORIAL PARA LA ADMINISTRACIÓN LOCAL: GeoPISTA

Organización. Elaboró: Ing. Ma. Eugenia Macías Ríos

A continuación resolveremos parte de estas dudas, las no resueltas las trataremos adelante

Escuela Provincial de Educación Técnica N 1 UNESCO. Planificación Anual 2015 Ciclo Superior Secundario

Sistema de gestión de procesos institucionales y documental.

Boletín de Asesoría Gerencial SOA: enfoque técnico orientado a procesos

Capitulo III. Diseño del Sistema.

ORBERE. Memoria Técnica del Aplicativo de Gestión de la producción para ADIMDE

Ingeniería de Software

Introducción. - Gráfica tomada del Artículo de José David Parra

Software de Simulación aplicado a entornos de e-learning

5. MODELOS DE CLIENTE Y SERVIDOR ORIENTADOS A AGENTES MÓVILES

Transcripción:

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