Java e Agentes Mveis z Implementao de Sistemas

  • Slides: 20
Download presentation
Java e Agentes Móveis z Implementação de Sistemas de Agentes Móveis y diversos desafios

Java e Agentes Móveis z Implementação de Sistemas de Agentes Móveis y diversos desafios técnicos, principalmente com respeito ao ambiente onde os agentes devem operar y além da capacidade de mobilidade, os agentes devem ter a capacidade de rodar de maneira segura z Principais Requisitos y Portabilidade: chegando a um servidor, um agente deve ser capaz de ser executado y Comunicação via Rede: o mecanismo de acesso a rede deve ser simples e confiável y Segurança no Servidor: proteção para o servidor (sandbox) e para o agente

Java e Agentes Móveis z Java e os Requisitos y Portabilidade x. Java utiliza

Java e Agentes Móveis z Java e os Requisitos y Portabilidade x. Java utiliza uma máquina virtual x. Programas são enviados na forma de bytecodes y Comunicação via Rede x. Java provê acesso simples à rede xserialização e RMI y Segurança no Servidor x. Security Manager: quais recursos um programa Java pode acessar xmáquina virtual possui um verificador de bytecodes: • impede o uso de sequências de código proibidas

IBM Aglets z Aglet Workbench y Tecnologia de agentes móveis 100% Pure Java y

IBM Aglets z Aglet Workbench y Tecnologia de agentes móveis 100% Pure Java y Desenvolvido no IBM Tokyo Research Laboratory z Aglets y objetos Java que podem mover-se de um host para outro z Java Aglet API (J-AAPI) y define métodos para a criação, gerenciamento de mensagens, despacho, retorno, ativação, desativação, cloneamento e descarte de aglets. y API é independente de plataforma, e utiliza o JDK 1. 1 z Agent Transfer Protocol (ATP) y protocolo a nível de aplicação para sistemas baseados em agentes distribuídos

IBM Aglets z ATP - Métodos Padrões para Requisição y Dispatch: requisita à agência

IBM Aglets z ATP - Métodos Padrões para Requisição y Dispatch: requisita à agência destino que reconstrua o agente que é enviado como conteúdo da requisição, e inicie sua execução. Se a requisição tiver sucesso, o emissário deve terminar o agente localmente e liberar os recursos por ele alocados y Retract: requisita à agência destino que envie de volta o agente especificado na requisição. O destinatário deve então enviar o agente, e se a transferência tiver sucesso, terminar localmente o agente, liberar seus recursos y Fetch: requisita o envio de informações (semelhante ao GET do HTTP) y Message: usado para passar mensagens para o agente especificado e receber uma mensagem de resposta deste

IBM Aglets z Servidor de Agentes (Agência) y Tahiti y usa a porta 434

IBM Aglets z Servidor de Agentes (Agência) y Tahiti y usa a porta 434 para comunicação, configurável y para transferência entre agências, usa o ATP y usa uma GUI para monitorar e controlar aglets executando no servidor z Recursos y iniciar novos aglets, verificar os aglets que estão rodando no sistema, enviar, requisitar e matar aglets y informações sobre uso de memória, threads e mensagens de log

IBM Aglets z Principais Classes y Aglet xclasse abstrata que define os métodos fundamenais

IBM Aglets z Principais Classes y Aglet xclasse abstrata que define os métodos fundamenais para agentes móveis xtodo agente móvel deve extender a classe Aglet xvariável Aglet. Info armazena atributos e informações sobre o criador e o host onde o Aglet foi criado y Aglet. Proxy xutilizada para permitir a comunicação entre aglets x. Aglets nunca são acessados diretamente, mas somente por meio de seu Proxy y Message xclasse utilizada para a comunicação entre Aglets

IBM Aglets z Mecanismo de Troca de Mensagens y Todo aglet deve implementar o

IBM Aglets z Mecanismo de Troca de Mensagens y Todo aglet deve implementar o método handle. Message y método recebe um objeto do tipo Message z Tipos de Mensagens y Now-type: mensagem síncrona e bloqueante y Future-type: mensagem assíncrona e não-bloqueante. Método retorna um objeto Future. Reply y Oneway-type: mensagem assíncrona e não-bloqueante. Difere da mensagem future-type porque é colocada no final da fila, mesmo que seja mandada para o próprio aglet, e não tem um valor de retorno y Normalmente, se um aglet manda uma mensagem para si próprio, esta é colocada no início da fila e não no final, para evitar deadlocks.

IBM Aglets z Mecanismos de Segurança y autenticação de usuários e domínios y verificação

IBM Aglets z Mecanismos de Segurança y autenticação de usuários e domínios y verificação da integridade após a comunicação y mecanismo de autorização similar ao security model do JDK 1. 2 z Mecanismo de Transferência y utiliza a API de comunicação, que abstrai a comunicação entre sistemas de agentes y derivado do MASIF z Garbage-Collection y Aglets nunca são afetados pelo mecanismo de garbagecollection y necessitam ser explicitamente destruídos

Mitsubishi Concordia z Concordia y framework de desenvolvimento e gerenciamento de agentes móveis em

Mitsubishi Concordia z Concordia y framework de desenvolvimento e gerenciamento de agentes móveis em Java y consiste de múltiplos componentes, todos eles escritos em Java z Concordia System y Java Virtual Machine y Concordia Server y Pelo menos um agente em um nó de rede z Usualmente y vários servidores Concordia, um em cada nó de rede

Componentes do Concordia z Agent Manager y provê a infra-estrutura de comunicação que permite

Componentes do Concordia z Agent Manager y provê a infra-estrutura de comunicação que permite a mobilidade dos agentes. Abstrai a interface de rede z Security Manager y protege recursos e garante a segurança e integridade dos agentes e seus dados. Pode ser configurado via uma GUI z Persistence Manager y mantém o estado de agentes e objetos em trânsito pela rede. Permite a reinicialização de um agente no caso de uma falha no servidor z Inter-Agent Comunication Manager y gerencia o registro, postagem e notificação de eventos entre agentes. Permite eventos do tipo Multicast (múltiplos destinatários)

Componentes do Concordia z Queue Manager y responsável pelo sequenciamento e envio garantido entre

Componentes do Concordia z Queue Manager y responsável pelo sequenciamento e envio garantido entre servidores Concordia z Directory Manager y provê um serviço de nomes para aplicações e agentes z Administration Manager y provê administração remota de um sistema Concordia. Somente um em toda a rede z Agent Tool Library y ferramentas de desenvolvimento do Concordia: APIs Concordia (Administration APIs, Lightweight Agent Transport APIs, Service Bridge API, etc) e classes de agentes necessárias para o desenvolvimento de agentes móveis usando o Concordia

Desenvolvimento de Agentes Concordia z Desenvolvimento pode ser feito de maneiras diferentes y normalmente,

Desenvolvimento de Agentes Concordia z Desenvolvimento pode ser feito de maneiras diferentes y normalmente, extende-se a class Agent, que possui todos os métodos necessários para um agente ser executado e viajar pela rede y movimentação do agente é especificada por meio de um itinerário, composto de uma lista de destinos y cada destino, indica o nome de uma máquina na rede para onde o agente deve viajar, e o nome do método do agente que deve ser executado quando o agente chegar ao seu destino y um objeto Agent. Transporter é utilizado para iniciar, receber e executar agentes Concordia y diversas classes de agentes podem ser criadas x. Collaborator. Agent x. Secure. Agent xetc.

General Magic Odyssey z Odyssey y Sistema de Agentes implementado como um conjunto de

General Magic Odyssey z Odyssey y Sistema de Agentes implementado como um conjunto de bibliotecas de classes Java que provê suporte a aplicações de agentes móveis z Principais Classes y classe Agent y classe Worker, derivada de Agent z Agent y Java Thread z Worker y conjunto de tarefas e conjunto de destinos

General Magic Odyssey z Place y contexto onde um agente executa y agentes se

General Magic Odyssey z Place y contexto onde um agente executa y agentes se movem de Place a Place y pode ter controle de acesso y primeiro place criado: Boot. Place xquando destruído destrói todo o sistema de agentes z Outras Classes y Ticket y Means y Petition y Process. Name z Interfaces y Agent. System, Finder, Transport

Objectspace Voyager z Voyager y Linha de produtos da Objectspace para o desenvolvimento de

Objectspace Voyager z Voyager y Linha de produtos da Objectspace para o desenvolvimento de aplicações distribuídas z Principais Componentes y Voyager ORB (Free) y Voyager ORB Professional x. ORB + Serviços y Voyager Management Console Security Transactions Application Server

Objectspace Voyager z Recursos y habilitação remota de classes y criação remota de classes

Objectspace Voyager z Recursos y habilitação remota de classes y criação remota de classes y carregamento dinâmico de classes y mensagens remotas y gerenciamento de excessões y garbage-collection distribuído y agregação dinâmica y CORBA y mobilidade y agentes móveis autônomos y ativação dinâmica e persistência y applets e servlets

Objectspace Voyager z Recursos y Serviço de nomes unificando diversos outros disponíveis comercialmente y

Objectspace Voyager z Recursos y Serviço de nomes unificando diversos outros disponíveis comercialmente y multicast y publish-subscribe y RMI y Timers y Thread Pooling y Mensagens Avançadas y Segurança

Comparação entre Sistemas de Agentes

Comparação entre Sistemas de Agentes

Comparação entre Sistemas de Agentes

Comparação entre Sistemas de Agentes

Comparação entre Sistemas de Agentes

Comparação entre Sistemas de Agentes