Este documento discute sistemas multiagentes e sistemas distribuídos sensíveis ao contexto. Agentes de software são entidades autônomas capazes de interagir socialmente. Sistemas multiagentes envolvem a interação cooperativa de vários agentes distribuídos. Agentes móveis podem migrar entre dispositivos para evitar sobrecarga de rede. Sistemas sensíveis ao contexto permitem que agentes percebam e reajam ao ambiente.
3. Introdução
• A abordagem multiagente vem sendo considerada adequada
para lidar com sistemas que são compostos de muitos
elementos, provavelmente distribuídos.
• Em relação à colaboração entre as entidades envolvidas em
um ambiente distribuído, uma abordagem ideal é que elas
sejam capazes de perceber o contexto no qual estão inseridas,
isto é, que elas façam parte de um ambiente que seja sensível
ao seu contexto.
4. Agentes de software
• Entidades de software que possuem como principais
características:
• Autonomia
• Habilidade social
• Reatividade
• Pró-atividade
• Além destas características, agentes são comumente
idealizados e implementados utilizando-se conceitos
atribuídos a humanos, como conhecimento, crença, intenção
e obrigação.
5. Sistemas multiagentes
• Sistema onde dois ou mais agentes interagem entre si e
trabalham cooperativamente a fim de atingir seus objetivos;
• Principais características:
• Paralelismo
• Escalabilidade
• Divisão em problemas menores
6. Sistemas multiagentes
• Comunicação entre agentes
• Protocolos de comunicação
• Geralmente são especificados em vários níveis
• Ex: 1.Métodos de interconexão; 2. Sintaxe da informação; 3. Semântica da
informação;
• Linguagem comum entre agentes
• Ex: FIPA ACL – Agent Communication Language;
• Ontologias;
• Estratégias:
• Troca de mensagens (principalmente assíncronas);
• Blackboard
• menos privacidade e eficácia; mais difícil de distribuir; preocupação com
mecanismos de sincronização de agentes;
7. Sistemas multiagentes
• Cooperação entre agentes
• Ações coordenadas (dependências entre ações) a fim de atingir
objetivos do sistema (tanto objetivos individuais quanto globais);
• Formas de cooperação:
• Partilha de resultados;
• Partilha de tarefas – balanceamento de carga computacional;
8. Sistemas multiagentes
• Coodernação
• Gerenciamento de agentes – Plataforma de agentes (PA) (FIPA*,
2008);
*Foundation for Intelligent Physical Agents: entidade que visa a definir padrões para construção de agentes
9. Sistemas multiagentes
• Principais infraestruturas (ambientes / frameworks)
existentes:
• JADE
• Segue especificações FIPA. Oferece: API, middleware, mobilidade,
ferramentas gráficas, etc.; ciclo de vida é orientado a
comportamentos;
• SemantiCore
• Segue especificações FIPA; foco em aplicações para Web Semântica;
agentes são estruturados em componentes, que definem seu ciclo
de vida;
• OpenCybele
• MadKit
10. Agentes móveis
• Evolução do conceito de código móvel;
• Agentes que podem se locomover de um dispositivo para o
outro através da rede;
• Estrutura interna de um agente móvel:
11. Sistemas de agentes móveis
• Tipos primários de migração:
• Forte: mobilidade de código, dados e estado
• Migrar estado através do acesso a parâmetros internos da
execução (ex.: pilha de execução);
• Agente implementado como autômato finito;
• Representação ontológica dos agentes (utilizado na
plataforma SemantiCore);
• Fraca: migração apenas de código e dados
• Muito mais simples
12. Sistemas de agentes móveis
• Vantagens:
• AM evitam sobrecarga de rede
• Partes de uma comunicação podem ser empacotadas e
enviadas para o outro local, onde as interações ocorrerão;
• AM superam a latência da rede;
• Para sistemas que devem responder em tempo real, a latência da
rede não é aceitável;
• Agentes podem se mover para o local e executar diretamente;
• AM encapsulam protocolos;
13. Sistemas de agentes móveis
• Vantagens:
• AM podem executar assíncrona e autonomamente
• Ex: em dispositivos móveis que dependem de redes frágeis (ex: wi-fi)
tarefas podem se atribuídas a agentes móveis, que são enviados pela
rede, tornando-se independentes;
• AM podem perceber seu ambiente e reagir a
mudanças
• AM são naturalmente heterogêneos
• Tornam mais fácil a construção de sistemas robustos e
tolerantes a falhas
• Ex: se uma máquina está sendo desligada, agentes percebem isso e
migram para outro local
14. Sistemas de agentes móveis
• Desvantagens e riscos
• Escalabilidade e desempenho
• Agentes reduzem carga da rede, mas aumentam o
processamento local
• Portabilidade e padronização
• Segurança
• Masquerading
• Denegação de serviço
• Acesso não autorizado
15. Sistemas de agentes móveis
• Paradigma cliente/servidor: comunicação exige conexão contínua
entre hosts; pouca flexibilidade;
• Agentes móveis: mais tolerante a falhas de conexão; permite
comportamento autônomo; exige mais cuidados com segurança;
• Modelos híbridos: C/A/S, C/I/S
16. Context awareness
• Sistemas sensíveis ao contexto
• Contexto = informações do ambiente
• Raciocínio sobre o contexto: permite adaptabilidade do
ambiente e assistência a tarefas
• Principais atividades: percepção e processamento
(interpretação) de informações de contexto
17. Context awareness
• Exemplos de informações de contexto:
• especificações do usuário (perfil), dispositivo e requisitos de
aplicação;
• medidas quantificáveis no ambiente;
• Técnicas de representação de contexto:
• Par chave-valor
• Linguagens de marcação
• Mapas de tópicos
• Ontologia
• Modelos gráficos
18. Context awareness
• Ontologias: representação mais adequada
i. Linguagens de representação de conhecimento (ex: RDF e
OWL);
ii. Representação semântica explícita, que pode ser inferida por
motores de inferência;
iii. RDF e OWL podem ser usados para comunicação e
compartilhamento de conhecimento entre agentes;
• Demais modelos têm estendibilidade e interoperabilidade
limitados
• Nem todo agente é capaz de usá-los ou entender a informação
neles contida;
19. Context awareness
• Agentes e context awareness:
• Agentes podem perceber o ambiente e agir nele de acordo com o
contexto;
• Agentes podem causar mudanças no contexto;
• Agentes podem se locomover através de nós em um sistema
distribuído (no caso de sistemas distribuídos sensíveis ao
contexto);
• Agentes podem ter comportamento semelhante a humanos:
podem ser móveis e inteligentes, e devem usar os recursos
disponíveis dinamicamente e tomar decisões de acordo com a
situação.
20. Aplicações
• Sistemas pervasivos / ubíquos
• Requerem tolerância a falhas nas transações em redes sem-fio;
• Devem evitar sobrecarga de rede e reagir a situações
desfavoráveis;
• Sistemas pervasivos devem ser sensíveis ao contexto: devem
estar cientes de seus ambientes e recursos, devem detectar
mudanças no ambiente e devem adaptar suas funcionalidades e
comportamentos às mudanças;
• Computação móvel
• Tolerância a falhas de rede; integração com sistemas pervasivos;
• Web semântica
• Interação peer-to-peer entre Web browsers e servidores Web;
• Apresentação de conteúdo semântico e fornecimento de serviços
Web inteligentes.
21. Referências
• Biasão, A. B. Um mecanismo de processamento de informações contextuais
em um ambiente de desenvolvimento distribuído de software. Dissertação
de mestrado. Universidade Estadual de Maringá. 2011.
• Braun, P., Rossak, W. Mobile Agents: Basic Concepts, Mobility Models, & The
Tracy Toolkit. Morgan Kaufmann Publishers and dpunkt.verlag, 2005.
• FIPA Web Site, disponível em “http://www.fipa.org.br”, 2009.
• Fuggeta, A.; Picco, G. P.; Vigna, G. Understanding Code Mobility. IEEE
Transactions on Software Engineering. Vol.24, num. 5, May 1998.
• Lange, D. B.; Oshima, M. Seven Good Reasons for Mobile Agents.
Communications Of The ACM, March 1999/Vol. 42, No. 3, pg. 88/89.
• Monte Alto, H. H. L. C. Estudo de Mobilidade de Agentes em Sistemas
Sensíveis ao Contexto. Relatório técnico, Universidade Estadual de Maringá,
2010.
• Wooldridge, M., Jennings, N. R. Intelligent Agents: Theory and Practice.
Knowledge Engineering Review, Reino Unido, 1995.
• Zaslavsky, A. Mobile Agents: Can They Assist with Context Awareness?.
Proceedings of the 2004 IEEE International Conference on Mobile Data
Management (MDM’04). 2004.