framework aglets (para agentes móveis) roseli honorio
TRANSCRIPT
Framework Aglets (para Agentes Móveis)
Roseli Honorio
O que é um Agente?
Um agente é uma entidade autônoma, que toma decisões sozinha sem a interferência de um sistema ou outra entidade. Um agente deve ser capaz de interagir com o ambiente à sua volta e com outros agentes, escolhendo confiar e cooperar ou não com os mesmos. (http://pt.wikipedia.org/wiki/Agente )
O que é IAD?
A inteligência artificial distribuída (IAD) é um subcampo da inteligência artificial que tem investigado modelos de conhecimento, assim como, técnicas de comunicação e raciocínio, que agentes computacionais devem necessitar para participar em “sociedades” compostas por computadores e pessoas. (www.inf.ufrgs.br/~pjaques/papers/dissertacao/cap3.html)
Como é dividida a IAD?
Resolução distribuída de problemas; Sistemas Multi-Agentes
Resolução Distribuída de Problemas – (DPS)
Resolução de um problema em particular; Não podem ser usados em qualquer outro
tipo de problema, mesmo que seja semelhante;
Número de agentes fixos; Possui visão especifica e incompleta do
problema; Devem cooperar entre si para chegar a
solução;
Sistemas Multi-Agentes
Nestes sistemas os agentes são entidades autônomas que têm conhecimento da sua própria existência e da existência de outros agentes e, portanto, colaboram um com os outros para atingirem um objetivo comum dentro de um ambiente.
Sistemas Multi-Agentes(outro conceito)
Os Sistemas Multi-agentes constituem uma sociedade de agentes, cada um interagindo entre si, com suas tarefas definidas e com um conhecimento prévio sobre o ambiente em que irão atuar.
Grupos de Agentes
Reativos: somente reagem aos estimulos recebidos do ambiente, não possuem memória de suas ações e agem como se fossem insetos;
Cognitivos: ao contrário dos reativos, possuem memória e conhecimento de outros agentes e de seu ambiente e devem ter e/ou respeitar algumas características;
Características dos Agentes
Percepção: capacidade de perceber mudanças no ambiente em que estão inseridos;
Ação: ações tomadas conforme seus objetivos dentro do ambiente;
Comunicação: uma das ações necessárias para que o agente alcance seus objetivos, ou seja, é através da comunicação com outro agente que ele mudará seu estado atual para um outro estado, mais próximo de seu objetivo final;
Representação: alguma representação simbólica de seu conhecimento em relação a outros agentes e seu ambiente;
Características dos Agentes
Motivação: uma representação não somente de conhecimento, mas também de desejos, crenças e intenções do agente em relação a outro agente ou do ambiente onde ele está inserido, por iniciativa própria;
Deliberação: a capacidade de decidir entre o estado atual e novo estado, conforme seu conhecimento e sua motivação;
Raciocínio e Aprendizagem – utilizando técnicas de modelagem do conhecimento aplicadas à Inteligência Artificial, pode-se criar agentes com um certo nível de Raciocínio e Aprendizagem.
Agentes Móveis - Conceitos
São processos computacionais capazes de navegar numa rede (possivelmente na WEB) interagindo com “hosts” externos colhendo informações em auxilio ao usuário e a ele retornando quando finaliza a tarefa de sua responsabilidade.
São programas que podem ser despachados de um computador e transferidos para outro computador, continuando sua execução.
Arquitetura Agente Móveis
Agente Agente Agente Agente
Sistema Operacional Sistema Operacional
Software Base Software BaseBase de Dados
real real
lógico
migração
Agente Móveis - Estrutura
Estado - necessário para continuar a execução após a locomoção;
Implementação - código que dá comportamento ao agente;
Interface - para que possa haver comunicação entre agentes;
Identificador - único e imutável; e, Autoridades - autor e dono.
Agentes Móveis - Aplicação
no controle de tráfego aéreo; no controle de linhas de produção; no gerenciamento de negócios; em ambientes de aprendizagem; no entretenimento; no comércio eletrônico; e, em aplicações para a internet em geral.
Agentes Móveis - Vantagens
Redução do tráfego de rede; Oculta a latência da rede; Encapsulamento de protocolo; Execução assíncrona e autônoma; Adaptação dinâmica; Independência de plataforma; Robustez e tolerância a falhas;
Aglets Aglets é uma plataforma baseada em um applet Java para o
desenvolvimento de agentes moveis . Onde alguns métodos de comportamento do agente já estão definidos, e pode-se criar novos estendendo a classe afim de criar novas funcionalidades. (http://aglets.sourceforge.net/home.htm)
Aglets foram desenvolvidos no laboratório da IBM em Tokyo, por Mitsuro Oshima and Danny Lange. O nome original do projeto era AWB – Aglets WokBench, mas simplificaram para Aglets. A IBM é responsável pela versão 1.x, já a versão 2.x é totalmente desenvolvida opensource e esta no site Sorceforge.net (http://aglets.sourceforge.net/home.htm)
Elementos Básicos
O modelo aglet define um conjunto de abstrações e o comportamento necessário para influenciar a tecnologia de agentes móveis em redes de longa distância, como a Internet, ou em redes locais que sigam a mesma tecnologia.
Elementos Básicos (cont...)
Abstrações
Aglet; Context; Identifier; Message; Proxy;
Comportamentos
Creation Cloning Disposal Dispatching Retraction Activation Deactivation Messaging
Visão Geral da API Aglet
Principais Abstrações
Aglet:É um objeto java capaz de mover-se em uma rede de computadores;
Proxy: É um objeto representante de um aglet, que serve como
protetor do aglet, quanto ao acesso direto a seus métodos públicos;
Provê transparência de localização para o aglet, isto é, oculta o aglet de sua localização real.
Principais Abstrações
Context:Um contexto é um lugar de trabalho do aglet.
Corresponde aproximadamente ao conceito de “place”.
O ambiente no qual os aglets operam.
O sistema operacional para o aglet.
Lugar no qual um aglet pode executar.
É um objeto estacionário que provê o meio para manter e gerenciar aglets rodando em um ambiente de execução uniforme, onde o host é seguro contra aglets maliciosos.
Principais Abstrações (cont...)
Identificador;É ligado a cada aglet.
É globalmente único e imutável durante o tempo de vida do aglet.
Message: É um objeto transmitido entre aglets para troca de
informações;
Comportamento
Instanciação de um aglet:A partir de sua instanciação: (creation)
Através de uma cópia de um aglet existente (cloning)
Destruição de um aglet: Disposal
Comportamento (cont...)
Mobilidade: Ativa (dispatching) Passiva (retraction)
Economia de recursos:ActivationDeactivation
Troca de informações:Messaging
O Ciclo de Vida de um Aglet
Aglet Aglet
ClassFile
Disk Storage
Activate
Dispatch
Retract
Clone
Create Deactivate
DisposeContext A Context B
O Modelo de Eventos para Aglets
O modelo de programação aglet é baseado em evento.
O modelo permite ao programador “plug in” listerners customizados (especializados) dentro de um aglet.
Listeners detém eventos particulares no ciclo de vida de um aglet e permite ao programador tomar uma ação, por exemplo, quando um aglet está sendo despachado.
O Modelo de Eventos
AgletAglet MobilityListenerMobilityListener
CloneListenerCloneListener
PersistencyListenerPersistencyListener
Clone EventsClone Events
Mobility EventsMobility Events
Persistency EventsPersistency Events
Existem três tipos de listeners :
O Modelo de Eventos
Clone Listener Ouve eventos de clonagem. Customizar este listener para tomar ações
específicas quando: (a) um aglet é para ser clonado, (b) quando o clone é realmente criado, ou (c) após a clonagem ter tomado lugar.
O Modelo de Eventos
Mobility Listener
Ouve eventos de mobilidade. Usa-se este listener para tomar ação quando: (a) um aglet é despachado para outro contexto; (b) um aglet é “retracted” de um outro contexto; (c) o aglet, realmente, chega em um novo
contexto.
O Modelo de Eventos
Persistence Listener Ouve para eventos persistentes. Permite ao programador tomar ação quando: (a) um aglet é para ser desativado, ou (b) após ele ter sido ativado.
O Modelo de Comunicação Aglet
Aglets se comunicam por passagem de messagem. A facilidade de passar mensagem permite aglets a
criar e trocar mensagens em modos flexíveis. Por default, um aglet não manipula mensagens
concorrentemente. Isto significa que todas as mensagens são
manipuladas uma-a-uma.
O Modelo de Comunicação Aglet
São componentes do modelo de comunicação: Aglet Proxy Message Future Reply Reply Set
O Modelo de Comunicação do Aglet
Aglet/AplicationAglet/Aplication ProxyProxy AgletAgletMessage
Reply
Message
Reply
O Modelo de Comunicação Aglet
Aglet Proxy Message Uma mensagem é um objeto trocado entre aglets.
É permitido a passagem de mensagem assícrona, bem como, a passagem de mensagem síncrona entre aglets.
Passagem de mensagem pode ser usado por aglets para colaborar e trocar informação em um modo acoplado fracamente.
O Modelo de Comunicação Aglet
Future replay
É usado em envio de mensagem assíncrono, como uma manipulação que permite o sender de uma mensagem receber um reply assincronamente.
Reply SetUm reply set pode conter múltiplos reply futuros e é usado para obter resultados quando também torna-se disponíveis. Com este objeto, o sender pode também escolher para obter o primeiro resultado e ignorar respostas subseqüentes.
Aglet Package – The Aglet API
É um pacote Java consistindo de classes e interfaces. Mais notadamente com as classes:
- Aglet - AgletProxy - AgletContext - Message - FutureReply - AgletID
Aglet Package – The Aglet API
Usa-se para criar e operar aglets. Contém métodos: - inicializar um aglet - manipular mensagens - despachar ou expedir um aglet - desativar ou ativar - retirar ou recolher (retracting) - clonagem - desfazer-se de um aglet (disposing)
API Aglet
Simples Flexível É um pacote Java consistindo de classes e
interfaces. Nome completo do pacote:
com.ibm.aglet