roseli freire de melo potencial de espécies vegetais para ...
Framework Aglets (para Agentes Móveis) Roseli Honorio.
Transcript of Framework Aglets (para Agentes Móveis) Roseli Honorio.
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