framework aglets (para agentes móveis) roseli honorio

38
Framework Aglets (para Agentes Móveis) Roseli Honorio

Upload: internet

Post on 17-Apr-2015

108 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Framework Aglets (para Agentes Móveis) Roseli Honorio

Framework Aglets (para Agentes Móveis)

Roseli Honorio

Page 2: 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 )

Page 3: Framework Aglets (para Agentes Móveis) Roseli Honorio

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)

Page 4: Framework Aglets (para Agentes Móveis) Roseli Honorio

Como é dividida a IAD?

Resolução distribuída de problemas; Sistemas Multi-Agentes

Page 5: Framework Aglets (para Agentes Móveis) Roseli Honorio

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;

Page 6: Framework Aglets (para Agentes Móveis) Roseli Honorio

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.

Page 7: Framework Aglets (para Agentes Móveis) Roseli Honorio

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.

Page 8: Framework Aglets (para Agentes Móveis) Roseli Honorio

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;

Page 9: Framework Aglets (para Agentes Móveis) Roseli Honorio

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;

Page 10: Framework Aglets (para Agentes Móveis) Roseli Honorio

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.

Page 11: Framework Aglets (para Agentes Móveis) Roseli Honorio

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.

Page 12: Framework Aglets (para Agentes Móveis) Roseli Honorio

Arquitetura Agente Móveis

Agente Agente Agente Agente

Sistema Operacional Sistema Operacional

Software Base Software BaseBase de Dados

real real

lógico

migração

Page 13: Framework Aglets (para Agentes Móveis) Roseli Honorio

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.

Page 14: Framework Aglets (para Agentes Móveis) Roseli Honorio

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.

Page 15: Framework Aglets (para Agentes Móveis) Roseli Honorio

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;

Page 16: Framework Aglets (para Agentes Móveis) Roseli Honorio

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)

Page 17: Framework Aglets (para Agentes Móveis) Roseli Honorio

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.

Page 18: Framework Aglets (para Agentes Móveis) Roseli Honorio

Elementos Básicos (cont...)

Abstrações

Aglet; Context; Identifier; Message; Proxy;

Comportamentos

Creation Cloning Disposal Dispatching Retraction Activation Deactivation Messaging

Page 19: Framework Aglets (para Agentes Móveis) Roseli Honorio

Visão Geral da API Aglet

Page 20: Framework Aglets (para Agentes Móveis) Roseli Honorio

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.

Page 21: Framework Aglets (para Agentes Móveis) Roseli Honorio

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.

Page 22: Framework Aglets (para Agentes Móveis) Roseli Honorio

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;

Page 23: Framework Aglets (para Agentes Móveis) Roseli Honorio

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

Page 24: Framework Aglets (para Agentes Móveis) Roseli Honorio

Comportamento (cont...)

Mobilidade: Ativa (dispatching) Passiva (retraction)

Economia de recursos:ActivationDeactivation

Troca de informações:Messaging

Page 25: Framework Aglets (para Agentes Móveis) Roseli Honorio

O Ciclo de Vida de um Aglet

Aglet Aglet

ClassFile

Disk Storage

Activate

Dispatch

Retract

Clone

Create Deactivate

DisposeContext A Context B

Page 26: Framework Aglets (para Agentes Móveis) Roseli Honorio

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.

Page 27: Framework Aglets (para Agentes Móveis) Roseli Honorio

O Modelo de Eventos

AgletAglet MobilityListenerMobilityListener

CloneListenerCloneListener

PersistencyListenerPersistencyListener

Clone EventsClone Events

Mobility EventsMobility Events

Persistency EventsPersistency Events

Existem três tipos de listeners :

Page 28: Framework Aglets (para Agentes Móveis) Roseli Honorio

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.

Page 29: Framework Aglets (para Agentes Móveis) Roseli Honorio

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.

Page 30: Framework Aglets (para Agentes Móveis) Roseli Honorio

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.

Page 31: Framework Aglets (para Agentes Móveis) Roseli Honorio

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.

Page 32: Framework Aglets (para Agentes Móveis) Roseli Honorio

O Modelo de Comunicação Aglet

São componentes do modelo de comunicação: Aglet Proxy Message Future Reply Reply Set

Page 33: Framework Aglets (para Agentes Móveis) Roseli Honorio

O Modelo de Comunicação do Aglet

Aglet/AplicationAglet/Aplication ProxyProxy AgletAgletMessage

Reply

Message

Reply

Page 34: Framework Aglets (para Agentes Móveis) Roseli Honorio

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.

Page 35: Framework Aglets (para Agentes Móveis) Roseli Honorio

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.

Page 36: Framework Aglets (para Agentes Móveis) Roseli Honorio

Aglet Package – The Aglet API

É um pacote Java consistindo de classes e interfaces. Mais notadamente com as classes:

- Aglet - AgletProxy - AgletContext - Message - FutureReply - AgletID

Page 37: Framework Aglets (para Agentes Móveis) Roseli Honorio

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)

Page 38: Framework Aglets (para Agentes Móveis) Roseli Honorio

API Aglet

Simples Flexível É um pacote Java consistindo de classes e

interfaces. Nome completo do pacote:

com.ibm.aglet