114
Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Embed Size (px)

Citation preview

Page 1: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Computação com a Mobilidade do Código

Prof.º João Bosco Mangueira Sobral, Dr.

Profª Daniela Barreiro Claro, M.Sc

Page 2: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Conteúdo

• Atualidade

• Histórico dos Agentes

• Características

• Tipos de Agentes

• Agentes Móveis

• Agentes Móveis em Java

• Sistemas de Agentes

• Voyager• Aglets• Concordia• MASIF• Aplicabilidades• Estudo de Caso

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 3: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Atualidade

• Crescimento acelerado da Internet e das redes coorporativas em geral– Aumento do tráfego de informação– Melhoria da infra-estrutura de comunicação

• Acesso todo o tempo, toda a parte– Devido ao baixo custo– Comunicação sem fio

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 4: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Atualidade

• Novos domínios de aplicação– Internet como base para novos meios de comunicação,

cooperação e negócios entre usuários• Atualmente existem vários desafios

– Escalabilidade• Soluções devem ser aptas a interagir com redes de larga escala

– Mobilidade Física• Desconexões freqüentes• Limitações de memória e largura de banda

– Dinamismo das tendências tecnológicas• Necessidade de flexibilidade

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 5: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Atualidade

• Adaptação de modelos e tecnologias estáveis para novos contextos

• A maioria baseada no modelo Cliente/Servidor– Tentativa de combinar benefícios da OO com as

facilidades de uma bem conhecida infra-estrutura de comunicação

– Exemplos: CORBA, DCOM, RMI, SOAP• Não garantem a escalabilidade, a flexibilidade e a

capacidade de customização e reconfiguração exigidas pelas aplicações modernas.

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 6: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Atualidade

• Uma alternativa é explorar a noção de mobilidade do código“Capacidade de alterar dinamicamente as ligações entre os

componentes de uma aplicação distribuída e os locais da rede onde eles serão executados”[Fuggetta et al.,1998]

• Benefícios– Maior grau de flexibilidade, expansibilidade e

customização– Melhor utilização da infra-estrutura de comunicação– Provisão de serviços de maneira autônoma, sem a

necessidade de conexão permanente

Page 7: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Histórico dos Agentes

• Inteligência Artificial– Necessidade de explorar as interações

complexas com o mundo físico – Agentes• Paralelamente

– Agentes de Software• Desenvolvimento de partes de código menores e

mais confiáveis

• Várias definições de agentes...

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 8: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Histórico dos Agentes• Definições

– “Agentes são programas de computadores que empregam técnicas de IA para fornecer assistência ativa para usuários em tarefas baseadas no computador”(MAES,1994)

– “Uma entidade de software com um programa contido em si próprio que tem a capacidade de sua própria criação e ação, baseado na percepção do seu ambiente, e com isso perseguir um ou mais objetivos

– ”Entidade computacional, programa ou máquina, que age em benefícios de outros pró-ativamente ou reativamente e exibe capacidade de aprender, cooperar e mover-se.

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 9: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Características• Autonomia

– Operam sem a intervenção direta do usuário, possuem algum tipo de controle em cima de suas ações e dos seus estados internos

• Habilidade Social– Interagem com outros agentes ou com seres humanos,

usando algum tipo de linguagem de comunicação• Reatividade

– Agentes percebem o ambiente e respondem a estes estímulos• Iniciativa

– Além de reativos, comportamento que satisfaça seus objetivos

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 10: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Características

• Continuidade Temporal– Agentes executam continuamente processos

tanto ativos quanto em background• Orientado a objetivos

– Agentes devem ter objetivos específicos e só podem retornar caso o tenham cumprido

• Mobilidade– Agente se mover de uma rede para outra

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 11: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Características

• Racionalidade– Hipótese que um agente deve agir de forma a atingir

seus objetivos e não ir contra eles, pelo menos dentro do alcance de suas crenças

• Adaptabilidade– Agente deve ser capaz de se adaptar ao ambiente,

hábitos e métodos de trabalho dos usuários• Colaboração

– Agente deve sempre ter considerações em relação aos objetivos pra ele demandados.

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 12: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Tipos de Agentes

• Agentes Reativos– Agem em resposta aos estímulos externos alterando o

seu estado. Não há previsão de nenhuma ação futura. Ex. Robôs limitados à percepção do mundo através dos sensores

• Agentes Deliberativos– São baseados em modelos de organizações sociais,

como grupos. Se engajam junto com outros agentes para planejar e negociar o cumprimento de uma tarefa

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 13: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Tipos de Agentes

• Agentes Autônomos– Executam uma tarefa sem a intervenção humana.

Situam-se internamente em um ambiente, reagindo sobre o mesmo. Ex. SNMP

• Agentes Cooperativos– Vários agentes executam tarefas em benefício a um

usuário em comum• Agentes Aprendizes

– Observam as ações dos usuários, otimizam-nas e automatiza-as da melhor maneira possível.

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 14: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Tipos de Agentes

• Agentes Inteligentes– Capazes de absorver conhecimento específico, processar a

resolução de problemas e realizar uma tarefa a ele delegada

• Agentes Estáticos– Também chamado de fixo ou estacionário,se mantém em

um mesmo host. Prove serviços de acordo com os recursos disponíveis na maquina que ele está situado.

• Agentes Móveis– Migrar dentro de uma rede, realizando tarefas. Agentes

com algoritmos secretos, não devem trafegar na rede.

Page 15: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Tipos de Agentes

• Pode-se combinar estes vários tipos de agentes e ter um– Agente Cooperativo Reativo Móvel

• Podem ser classificados de acordo com a sua função– Agentes de Informação de Internet

• Engloba mecanismos de buscas realizados na Internet

• Agentes podem ser benevolentes ou não. Podem competir entre si e ter ainda ações antagônicas

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 16: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Agentes Móveis

• Programas/Objetos que podem se transportar para uma máquina remota e executar o seu código

• São capazes de se mover em uma rede de computadores heterogêneas, visando a execução progressiva das tarefas que foram a ele designadas pelos seus proprietários

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 17: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Agentes Móveis

• Histórico• A idéia de execução remota é antiga

– Submissão de esquemas para execução, os batch jobs

– Processamento em lote enviado aos computadores de grande porte

• O código se move para a máquina e passa a ser um processamento local

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 18: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Agentes Móveis

• Os conceitos seguem uma evolução lógica do paradigma da programação

• Execução local do código local– Execução tradicional de um programa

• Execução remota com o código remoto– Execução do RPC e CORBA

• Execução remota com código local– Paradigma de Agentes

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 19: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Agentes Móveis

• Definições– Tirado do 2nd International Workshop on Mobile Object

Systems– “Agentes móveis são objetos compostos por código,

dados e estado de execução que trafegam entre domínios protegidos”(Kazuhiko Kato/University of Tsukuba)

– “Um agente móvel é um componente contendo pelo menos uma thread de execução, que é habilitado para autonomamente migrar para uma máquina diferente”(Gian Pietro Picco/Politecnico di Torino, and Giovanni Vigna/Politecnico di Milano)

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 20: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Agentes Móveis

• Definições – Continuação– Um agente móvel é um conjunto de objetos que

desenvolve uma computação de acordo com o comportamento de um usuário.Esta computação é executada dentro de uma plataforma de execução de um agente que controla a execução do agente. Um agente pode requisitar que se mova, causando a interrupção nesta computação e inicia a outra execução em outra plataforma. (Jan Vitek/University of Geneva)

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 21: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Agentes Móveis

• Definições – Continuação– Agentes móveis são programas que juntos com

os seus recursos, podem mover em uma rede de um host para outro resolvendo as suas tarefas.(Anonymous in “Aufruf zur Teilnahme am 2. Deutschen Mobile-Agenten-Treffen”)

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 22: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Agentes Móveis

• Agentes Móveis diferem– Applets

• Download do Servidor para Cliente– Servlets

• Upload do Cliente para o Servidor

• AM podem visitar outros host sem ter a necessidade de manter uma interação contínua com o nodo de origem(home host)

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 23: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Agentes Móveis

• Paradigma da Computação em Rede– Cliente / Servidor

• Servidor armazena o know-how, recursos e processamento

• Cliente necessita usar serviços fornecidos pelo Servidor

• Exemplos: RPC(Remote Procedure Call), ORB, RMI(Remote Method Invocation)

– Código sob Demanda• Obtém-se o know-how apenas quando necessário

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 24: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Agentes Móveis

• Paradigmas da Computação em Rede– Código sob Demanda

• Cliente não tem recurso pré-instalado• Todo código necessário é carregado do Servidor• Cliente possui os recursos e o processamento• Servidor possui o know-how• Exemplos: Applets Java carregados em um browser

para execução• Exemplos: Servlets que são códigos enviados para

um WebServer para a execução remota

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 25: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Agentes Móveis

• Paradigmas da Computação em Rede– Agentes Móveis

• Qualquer estação possui alto grau de flexibilidade• Mistura de know-how , recurso e processamento• A capacidade de processamento pode ser combinada

a recursos locais• O know-how está distribuído na rede

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 26: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Agentes Móveis

• Cliente / Servidor

João Bosco Mangueira Sobral Daniela Barreiro Claro

Cliente

Servidor

know-how

Page 27: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Agentes Móveis

• Código sob Demanda

João Bosco Mangueira Sobral Daniela Barreiro Claro

ClienteServidor

know-how

know-howdownload

Page 28: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Agentes Móveis• Agentes Móveis

João Bosco Mangueira Sobral Daniela Barreiro Claro

Agenteknow-how

Estação

Agenteknow-how

Estação

Rede

Page 29: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Agentes Móveis

• Vantagens dos AM– Redução do tráfego de rede– Ocultação da latência de rede– Encapsulamento de protocolo– Execução assíncrona e autônoma– Adaptação dinâmica– Independência de plataforma– Robustez e tolerância à falhas

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 30: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Agentes Móveis

• Vantagens– Redução do tráfego de redes

• Despacham as tarefas para serem executadas nas máquinas destinos

• Move o processamento para o local onde os dados se encontram• Seleção de uma imagem

– Agente enviado até a fonte de dados– Efetua a seleção localmente– Envia a imagem selecionada

– Modo tradicional• Muitas imagens são enviadas para a seleção ser feita na

maquina de origem – HÁ MUITO TRÁFEGO

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 31: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Agentes Móveis

• Vantagens– Ocultação da latência de redes

• Tempo de atraso na rede• Há uma diminuição do tráfego e por isso há uma

diminuição no tempo de atraso da rede• Sistemas críticos necessitam de resposta em tempo

real• Os AM são despachados e realizam o controle em

um computador central

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 32: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Agentes Móveis

• Vantagens– Encapsulamento de protocolos

• Sistemas distribuídos tem seu próprio código para a transferência de dados

• AM podem se mover para maquinas remotas• Estabelecem canais de comunicação baseados em

protocolos proprietários

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 33: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Agentes Móveis

• Vantagens– Execução assíncrona e autônoma

• Conexões de redes muito frágeis• AM são despachados pela rede• Passam a ser autônomos e independentes da

máquina home• Podem ser despachados para iniciar uma tarefa

durante uma sessão rápida de conexão• Desconecta-se e depois vem a busca pela resposta

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 34: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Agentes Móveis

• Vantagens– Execução assíncrona

• Dois atores da comunicação não necessitam estar fisicamente presente todo o tempo.

• Atualmente, usuários de e-mail se valem de tal tecnologia

• Usuários de telefone, precisam de comunicações síncronas

• “...you ship the agent, you disconnect and reconnect later”(About agents and databases; Arnaud Sahuguet)

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 35: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Agentes Móveis• Vantagens

– Execução assíncrona - Linhas de comunicação• Sessões baseadas em comunicação impõem que uma conexão seja

aberta permanentemente entre a origem e o destino• Isso permite que se armazene algum histórico sobre a comunicação,

requerendo uma conexão ativa mesma sem nada trafegando• Para comunicações com bases de dados isso é ruim em relação às

transações• Na WWW, o próprio protocolo HTTP é stateless. Esta conexão é

independente e não depende do que aconteceu antes• Quando há um download da página, há somente uma conexão para

aquela páginaAGENTES PODEM TER AS DUAS VANTAGENS

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 36: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Agentes Móveis

• Vantagens– Adaptação Dinâmica

• Percebem mudanças no ambiente de execução e agem de forma autônoma

• Podem se multiplicar em prol da resolução de um problema

– Independência de Plataforma• Independentes de máquina e da rede• Dependem do ambiente de execução• AM utilizam linguagens interpretadas

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 37: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Agentes Móveis

• Vantagens– Robustez e tolerância à falhas

• Reagirem dinamicamente às situações desfavoráveis

• Se uma máquina for desligada, os agentes serão avisados e despachados para outra máquina

• Favorável à construção de sistemas robustos

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 38: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Agentes Móveis• Vantagens e facilidades remotas

– CPU• AM é executado na máquina remota, com a CPU remota• Dispositivos móveis pouca ou não disponível CPU

– Memória• Algumas operações requerem maior quantidade de

memória(processamento de imagens)• Acesso à memória remota

– Multi-processamento• Código do agente pode ser executado em paralelo

– Multi-threading• Threads podem ser vistas como versões simples de paralelismo

– Largura de Banda• PC em home 28.8, enviando o agente de computadores pessoais

mais potentes

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 39: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Agentes Móveis

• Desafios– Aplicações

• Várias possibilidades de aplicações dos AM• Poucas na prática• Não é muito utilizado em aplicações comerciais

– Segurança• A própria tecnologia de segurança não está em sua

completa maturidade• Área completamente aberta para estudos

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 40: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Agentes Móveis

• Desafios– Necessidade de Infraestrutura

• Nomeação• Localização• Controle • Comunicação

– Padrões• São de suma importância no processo de desenvolvimento• Padrões precisam de desenvolvimento e desenvolvimento

precisa de padrões

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 41: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Agentes Móveis em Java

• Implementação de Agentes implicam em requerimentos técnicos

• Linguagem Java – Independência de Plataforma

• Ambientes heterogêneos• Criação e utilização de bytecodes

– Segurança de Execução• Modelo de ponteiros elimina a possibilidade de sobrescrita de

memória e corrupção de dados• Não permite casting de tipos ilegais ou de algum ponteiro aritmético

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 42: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Agentes Móveis em Java• Linguagem Java

– Segurança de Execução• Programas não conseguem dissimular acesso aos dados

privados caso não tenham permissão. Evita ataque de vírus• Bytecode alterado, o sistema runtime do Java garante que o

código seja desativado• Possui um gerente de segurança para checar as operações

potencialmente inseguras– Acesso a arquivos, conexões de redes

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 43: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Agentes Móveis em Java

• Linguagem Java– Leitura Dinâmica de Classes

• Permite a maquina virtual carregar e definir classes em tempo de execução

– Programação Multithread• Agentes por si só são autônomos.Executa

independentemente de outro agente• Possui um conjunto de sincronização da própria

linguagem

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 44: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Agentes Móveis em Java

• Linguagem Java– Serialização de Objetos

• Podem ser serializados e deserializados• Objetos são transportados na rede

– Reflexão• Código Java pode descobrir informações sobre

campos, métodos, e construtores carregados. A reflexão implementa a necessidade dos agentes serem inteligentes sobre si mesmos e outros agentes

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 45: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Mitos e Fatos

• Agentes Móveis são arriscados para se usar– Relativos a segurança– Medo de aceitar agentes nos seus computadores– Não é diferente do acesso remoto, aceitar os applets, ou

aceitar e-mail com anexos• Paradigma de agentes móveis necessita de uma

aplicação final– Técnica nova, ainda não há uma completa aplicação– POO teve 2 décadas para ser utilizada

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 46: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Sistemas de Agentes• Plataforma que pode criar, interpretar, executar,

transferir ou extinguir agentes• Associada uma autoridade

– Identifica para qual pessoa ou organização o sistema trabalha• Tipo de Sistema de agentes define o perfil de um

agente– Aglets

• Implementado pela IBM• Suporta Java como a linguagem dos agentes• Utiliza-se de itinerário• Usa serialização através de objetos Java

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 47: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Sistemas de Agentes• Agente pode se transferir de um local para outro

– Local• Contexto onde o agente executa• Contexto prove funções, como controle de acesso

– Região• Conj. De Sistemas de agentes com a mesma autoridade

– Interconexão de regiões• Partilham um serviço de nomeação dos agentes• Outros sistemas de agentes que estão fora da região acessam a

região pelos sistemas que são considerados públicos– Codebase

• Especifica a localização das classes utilizadas pelo agente

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 48: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Sistemas de Agentes

• Funções– Transferência de um agente

• AM solicita uma transferência de um sistema de origem para um destino

• Antes de um agente ser recebido no destino, o sistema deve se certificar que o agente pode ser interpretado

• Estado, autoridade, segurança e demais classes são transferidos

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 49: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Sistemas de Agentes

• Funções– Início da Transferência de Agentes(Lado

Origem)1. Suspende a execução do agente2. Identifica as partes a transferir do AM3. Serializa a instância da classe e o estado do agente4. Codifica para o protocolo de transporte escolhido5. Autentica o cliente6. Transfere o agente

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 50: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Sistemas de Agentes

• Funções– Recebendo um agente(Lado Destino)

1. Autentica o cliente2. Decodifica o agente3. Desserializa a classe e o estado do agente4. Instancia o agente5. Restaura o estado do agente6. Inicia a execução

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 51: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Sistemas de Agentes

• Casos em que a transferência de Classes é necessária– Criação remota do agente

• Criado remotamente a classe é necessária para a instanciação• Caso não exista, ela deve ser transferida a partir do destino

– Transferência do Agente• Classe é necessária para o mesmo ser instanciado

– Agente cria outros objetos• Necessário que a classe destes objetos sejam transferidas , para

que os objetos novos sejam instanciados

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 52: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Sistemas de Agentes

• Funções– Criar um agente

• Sistema de Agentes cria uma instância de uma classe do agente

• Objetivos1. Iniciar um agente2. Instanciar a classe do agente3. Gerar um nome único global para o agente4. Iniciar a execução do agente

• Um sistema de agentes deve gerar um nome único para si, seus agentes e locais

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 53: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Plataformas

• Todas as plataformas baseadas em Java• Características em comum• Possuem própria biblioteca Java• Aglets/IBM• Voyager/ObjectSpace• Concordia/Mitsubishi

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 54: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Plataforma - Aglets

• Após surgimento do Java – Aglets• Ambiente para programação de agentes móveis• Criada em 1996, através de um kit ASDK• Versão 1.0.3, 1.1.0 beta• Possui uma interface de usuário chamada Tahiti

– Representação gráfica de um contexto• Pode-se criar, despachar, monitorar, extinguir agentes• Para a representação é necessária a instalação da máquina

virtual Java, servidor Aglets e pelo menos um Aglet

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 55: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Plataforma - Aglets

• Elementos Básicos– Aglet

• Objeto Java e também um agente móvel, capacidade de mover-se de um modo autônomo

– Proxy• Atua como representante de um aglet. • Protege o acesso direto, os métodos públicos e sua real

localização– Contexto

• Objeto estacionário que promove um ambiente de execução para o gerenciamento e manutenção dos agentes

• Um servidor pode conter vários contextos

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 56: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Plataforma - Aglets

• Elementos Básicos– Mensagem

• Objeto para troca de mensagens• Pode ser realizado em modo síncrono e assíncrono

– Respostas futuras• Utilizada quando do envio de mensagens assíncronas para

posterior envio e recebimento

– Identificador• Cada aglet recebe uma identificação única• Acompanha por toda a sua existência

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 57: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Plataforma - Aglets

• Modelo de Eventos– Programação do Aglets é baseada em eventos– Três tipos de Listeners– Clone Listener

• Utilizado para adoções específicas quando da Clonagem

• Pode atuar imediatamente antes, ou logo em seguida da clonagem

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 58: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Plataforma - Aglets

• Modelo de Eventos– Mobility Listener

• Utilizado na movimentação, seja um envio ou retração de um aglet

• Ativa ações específicas a serem tomadas quando o agente é enviado, for recuperado ou quando chega em um novo contexto

– Persistence Listener• Quando se solicita a exclusão de um agente. Permite

o encerramento prévio das atividades

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 59: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Plataforma - Aglets

• Operações Fundamentais– Criação/Clonagem

• Primeira etapa na utilização de um aglet• Pode ser instanciado de uma classe Aglet ou

clonado de um aglet existentegetAgletContext().createAglet(getCodeBase(), “Agente”,null);

– Inicialização/Suspensão• Controlam a persistência de um aglet• Também denominados de ativação e desativação

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 60: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Plataforma - Aglets

• Operações Fundamentais– Inicialização/Suspensão

• A desativação permite a colocação de um agente no estado de espera

• Se mantém no contexto, libera as linhas de execução e passa para um armazenamento secundário

• A ativação executa o processo inverso• Método: deactivate()• Persistence Listener: onDeactivating()

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 61: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Plataforma - Aglets

• Operações Fundamentais– Envio/Retração

• Primeiro modo de envio de um aglet a outro local é o dispatch()

• Após a chegada do Aglet no destino, o método onArrival() é executado e em sequencia o run().

Public final void Aglet.dispatch(URL destination)• O segundo modo através do retractAglet()

– O sistema de origem chama o agente de volta– Somente pode ser utilizado após a utilização do método

dispatch

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 62: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Plataforma - Aglets• Operações Fundamentais

– O método de retração• onReverting()

– Informa ao aglet que o mesmo está para ser transferido– Depois é executado o método onArrival(), no local de origem após a

transferência de volta

– Destruição• Todas as referências entre o contexto e o aglet são eliminadas• Memória utilizada colocada a disposição para a próxima coleta de

memória (garbage collector)• Aglet pode ser avisado que vai ser desativado• Aglet.dispose()• Chamada do método onDisposing()

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 63: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Plataforma - Aglets• Padrões de Projeto

– Modelos pré-estabelecido– Permitem uma reutilização de código– Aproveitamento de soluções a problemas comuns– Padrões já são utilizados no Java e esta idéia

aproveitada no Aglets– Classificados em :

• Travelling Patterns; Task Patterns; Interaction Patterns

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 64: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Plataforma - Aglets

• Padrões de Projeto– Travelling Patterns

• Relativos a movimentação dos aglets• Exemplo seria listas com o roteamento para

múltiplos destinos, chamado de itinerário• Define o que deve ser feito caso o destinatário não

exista em um objeto• Permite que se reutilize e altere os destinos

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 65: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Plataforma - Aglets

• Padrões de Projeto– Task Patterns

• Conclusão das tarefas submetidas aos aglets• Refere-se ao modelo Mestre-Escravo• Um aglet pode ser instanciado e criar vários aglets

escravos• Os escravos executam as tarefas e retornam o

resultado ao aglet-mestre

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 66: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Plataforma - Aglets

• Padrões de projeto– Interaction Patterns

• Relativo a comunicação entre agentes• Permite a cooperação entre os mesmos• Aglets podem se despachar para um determinado

ponto de encontro(meeting) e interagir• Pode se comunicar com outro agente através de um

agente intermediário

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 67: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Plataforma - Aglets• O Pacote Aglet

– Três classes abstratas e três interfaces– Classe Aglet (com.ibm.aglet.Aglet)

• Classe básica para o desenvolvimento de agentes• Define métodos para o controle do ciclo de vida

– Classe Message (com.ibm.aglet.Message)• A comunicação se dá por meio de objetos desta classe• Conteúdo é passado como um parâmetro do método

handleMessage()– Classe AgletID

• Cada aglet possui uma identificação única e o que acompanhe por toda sua existência

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 68: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Plataforma - Aglet

• Pacote Aglet– Interface AgletProxy

• Age como assessor do Aglet prevenindo o acesso direto aos aglets

• As solicitações destinadas aos aglets são interceptadas pelo AgletProxy que consulta o gerenciamento de segurança visando determinar se o acesso é ou não permitido

– Interface AgletContext• É no contexto que o Aglet é criado, suspenso e destruído• Contexto se refere ao local onde o agente se encontra

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 69: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Plataforma Aglets

• Pacote Aglets– Interface FutureReply

• Objeto desta interface é retornado pelo método de envio de mensagem assíncrono

• Através deste objeto pode-se determinar se uma resposta já está disponível ou esperar um tempo limite e continue sua tarefa

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 70: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Plataforma - Aglets• Transmissão do Agente

– Tudo se inicia com a chamada do método dispatch()– Em seguida o método onDispatching()

• Informa que a transferência do Agente se iniciará• Pode encerrar a atividade ou recusar-se a ser transferido• Se inicia a transferência• Quando o destino detectar o Aglet, é chamado o método

onArrival() para a recepção do agente• Em seguida, o método run() é executado para iniciar o mesmo• O destino informa a origem o novo proxy do Agente• Os agentes são atendidos em ordem de chegada• A porta default é 434, pela RFC1700

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 71: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Plataforma - Aglets

• Transmissão do Agente– Protocolo utilizado pelo Agente

• ATP – Agent Transfer Protocol• Utilizado para transferência de agentes móveis na

rede• Projetado visando a Internet • Simples e independente de plataforma• Protocolo define 4 métodos padrões

– Dispatch, Retract, Fetch, Message

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 72: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Plataforma - Aglets• Protocolo ATP

– Método Dispatch()• Envia um agente de A para B

– Método Retract()• Para chamar o agente de volta

– Método Fetch()• Quando se executa um agente, há possibilidades de se necessitar de

alguma classe, assim executa o Fetch_class()– Método Message()

• Envio de uma mensagem de uma agente A para um agente B

• Camada de transporte baseada no IIOP (Corba) está para ser desenvolvida

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 73: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Plataforma - Voyager

• Elaborado pela ObjectSpace,mas atualmente já foi transferido para outra empresa

• Plataforma para o desenvolvimento de aplicações distribuídas

• Baseada em Java com recursos para agentes móveis• Capacidade para criar e mover objetos remotamente• Composto por um ORB com suporte a objetos e

agentes móveis

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 74: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Plataforma - Voyager• Elementos Básicos

– Voyager ORB• ORB com vários pacotes para utilização de objetos móveis e agentes

autônomos• Voyager propriamente dito da versão 3.2

– Voyager Security• Provê serviços de segurança tais como: autenticação, autorização,

privacidade e integridade dos dados• Voyager Transactions

– Fornece serviços de atomicidade, consistência e isolação dos dados

• Voyager Application Server– Implementação para o modelo EJB

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 75: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Plataforma - Voyager

• Operações Fundamentais– Migração

• Capacidade de mover qualquer objeto Java presente em uma plataforma para outra

• Somente objetos da classe Agent podem, após mover-se, continuar sua execução no destino

– Persistência• Interface IVoyagerDb pode armazenar um objeto

Voyager em um BDR ou BDOO

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 76: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Plataforma - Voyager• Operações Fundamentais

– Segurança• Impõe, através de métodos restrições a objetos originários

de outras redes– Ciclo de Vida

• Vida do agente pode ser finalizada por um fato, por tempo determinado, ou determinar que o agente vai viver permanentemente

– Mensagens e Eventos• Podem ser enviadas mensagens síncronas, one-way e de

uso futuro.

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 77: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Plataforma - Voyager• Pacote Voyager

– Voyager• Classes principais para o funcionamento do Voyager• Namespace – Nomes para associar um espaço a um determinado

objeto• Factory – Métodos para a criação remota de objetos

– Mobility• Movimentação de objetos serializáveis entre ORBs

– Agent• Agentes são criados por instanciações desta classe

– CORBA• Implementação CORBA do Voyager

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 78: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Plataforma - Voyager

• Transmissão do Agente– Quando a inicialização de um agente inicia

automaticamente serviços para:• Tráfego de rede• Controle de tempo• Coleta de Lixo

– É atribuída uma porta para cada VoyagerVoyager.startup(7000);

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 79: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Plataforma - Voyager

• Transmissão de um agente– Método MoveTo()

• Mover de uma localidade para outra• Pode informar qual o método será executado no

destinomoveTo(“yemanja:8000”,”mInstalar”)

– Segurança implementada pelo módulo Security– Não são incluídos no Voyager mecanismos de

criptografia e autenticação de hosts ou agentes

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 80: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Plataforma – Concordia

• Plataforma para desenvolvimento e gerenciamento de agentes móveis

• Escrita em Java• Desenvolvida pela Mitsubishi Eletric

Information Tecnology Center America (MEITCA)

• Objetivo– Transferir agentes através da mobilidade

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 81: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Plataforma - Concordia

• Finalidades– Utilização de portáteis com recursos limitados– Banco de Dados remoto com conexões

temporárias e precárias– Melhor aproveitamento de conexões de rede– Crescimento das redes sem aumentar a sua

complexidade– Permitir atualização de programas sem

interrupção do funcionamento da rede

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 82: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Plataforma - Concordia

• Constituído de 3 partes– Maquina virtual Java– Servidor Concordia– Pelo menos um agente

• Componentes do Servidor– Gerenciador de agentes

• Provê um ambiente para criação, execução e destruição do agente

• Não é necessário ao programador do agente incluir código referente às especificidades da rede

• Gerencia o ciclo de vida do agente

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 83: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Plataforma - Concordia

• Componentes– Gerenciador de segurança

• Manter a segurança e integridade dos agentes móveis

– Gerenciador de persistência • Mantém um registro do estado dos agentes móveis em trânsito

pela rede• Gerenciador de comunicação

– Controla o registro de mensagens de e para agentes móveis

• Possui uma interface para administração, transporte e aplicações associadas

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 84: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Plataforma - Concordia• Transmissão do Agente

– Baseia-se no Java RMI para a transmissão dos agentes– As classes são enviadas na medida que se tornam necessárias– A transmissão do agente é realizada pelo Gerenciador de

Agentes– Quando se deseja realizar uma transferência, há uma

invocação do método do Gerenciador.– A execução do agente é suspensa, e uma imagem persistente

é criada– O Servidor verifica o destino, e manda uma imagem do

agente– Somente após a confirmação do recebimento do destino, o

agente é eliminado da origem

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 85: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Plataforma - Concordia• No Concordia a migração é considerada fraca

– Somente o estado do agente é serializado, a pilha e contadores de threads não

– O agente não é questionado se aceita ou não ser movido

– Não recebe aviso prévio que será transportado– Pode não haver a aplicação servidora no cliente,

mas o ConcordiaApplet para envio, recebimento e execução dos agentes

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 86: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Plataforma - Concordia

• Protocolo– Utiliza o RMI do Java para buscar métodos em

objetos em execução em outras máquinas

– Na medida que é necessário, um método presente em outra JVM é chamado

– O primeiro método a ser chamado é o run()

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 87: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

MASIF

• Necessidade de troca de agentes entre plataformas de diversas empresas ou grupos

• Padronização desta troca de agentes• Quando um agente chegue em uma outra

plataforma, possa ser recebido e realize as atividades a ele proposta

• MASIF é a proposta da OMG de algumas funções entre plataformas

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 88: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

MASIF• MAF – Mobile Agent Facility posteriormente

transformada em MASIF – Mobile Agent System Interoperability Facility

• Interoperabilidade entre sistemas de agentes• Não padroniza operações em agentes locais como

interpretação, serialização e execução• Interfaces de interoperabilidade são definidas ao

nível de sistemas de agentes e não ao nível de agentes• Padronizações do MASIF

– Gerenciamento de agentes, transferência de agentes, nomeação de agentes e de sistemas de agentes

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 89: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

MASIF

• É desejável que aplicativos de agentes possam mover-se livremente entre diferentes sistemas de agentes

• Resultando em uma infra-estrutura comum• Deve haver uma padronização na

nomeação, nas chamadas dos métodos...

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 90: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

MASIF

• ORB do voyager não é compatível com o ORB da OMG

• Grassshoper é a única plataforma comercial compatível com o MASIF

• A MAP desenvolvida pela Università di Catania/Itália também compatível com MASIF

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 91: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Aplicabilidade

• Domínios que a mobilidade trazem benefícios

– Recuperação de Informação Distribuída

– Serviços Avançados de Telecomunicações

– Controle de Dispositivos Remotos

– Gerência de Fluxos de Trabalho

– Comercio Eletrônico

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 92: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Aplicabilidade• Recuperação de Informação Distribuída

– Agrupamento de Informações satisfazendo critérios a partir de fontes dispersas na rede

• Fontes visitadas determinadas estaticamente ou durante o processo de recuperação

• Exemplos: Busca na Internet, monitoramento de rede– Contribuição da mobilidade de código

• Maior eficiência através da migração do processo de busca para locais próximos às fontes de informações

• Freqüentemente considerada a aplicação “killer” para motivar o uso de Agentes Moveis

– Dependendo de alguns casos ainda é melhor o modelo Cliente -Servidor

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 93: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Aplicabilidades

• Serviços Avançados de Telecomunicações– Infra-estrutura de comunicação para suportar,

gerenciar e monitorar serviços como video-conferência, vídeo sob demanda

• Educação a distância, tele-medicina– Contribuição da mobilidade

• Facilidade de customização e re-configuração dinâmica

• Suporte a clientes móveis através de componentes autônomos(operações desconectadas)

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 94: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Aplicabilidades

• Configuração e Monitoramento do status de uma rede de dispositivos– Tradicional

• Monitoramento via coleta periódica do status dos dispositivos, configuração através de um conjunto pré-definido de serviços

• Gerencia de Redes– Contribuição da Mobilidade

• Colocação de componentes de monitoramento junto aos dispositivos monitorados para reportarem a evolução do status dos dispositivos

• Envio de componentes de gerência para configurar dispositivos remotos localmente(maior desempenho e flexibilidade)

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 95: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Aplicabilidade

• Gerência de Fluxos de Trabalho– Suporte à cooperação entre pessoas e ferramentas

envolvidas num processo de engenharia e negócios• Definição das atividades necessárias para realizar uma dada

tarefa, e de como, onde e quando estas atividades envolvem cada participante

– Contribuição da mobilidade• Encapsulamento de atividades como componentes móveis

• Revisão de documentos compartilhados

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 96: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Aplicabilidade• Comércio Eletrônico

– Suporte à realização de transações de negócios através da rede

• Negociação com entidades remotas e acesso a informação em constante evolução

• Tele-vendas;transações bancárias;– Contribuição da mobilidade

• Customização do comportamento dos participantes e dos protocolos de comunicação

• Migração de componentes da aplicação para locais próximos às fontes de informação relevantes para a transação

– Aumento do desempenho– Suporte a clientes móveis e operações desconectadas

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 97: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

• Configuração– Voyager3.2 + JDK 1.2.2 (path e classpath)

• Ambiente de execução (DOS)voyager <nº da porta>

Estudo de CasoEstudo de Caso

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 98: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

• Interface Gráfica do Usuário

Estudo de CasoEstudo de Caso

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 99: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

• Interface do Agente Móvel– Métodos a serem executados por objetos

remotos

Estudo de CasoEstudo de Caso

ManipulaI <interface>enviaRequisicao(Carga requisicao);enviaResultado(Vector itsResult);Enumeration recebeResultado();moveAgente();criaAgente();

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 100: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

• Criação do Agente MóvelVoyager.startup(); //Estabelece a conexão com ambiente

ManipulaI agMovel = (ManipulaI) Proxy.export( new AgenteMovel(), "//192.168.0.2:6000" );

Namespace.bind( "//192.168.0.2:6000/NASDAQ", agMovel );

agMovel.enviaRequisicao(requisicao);agMovel.moveAgente();Voyager.shutdown();

Estudo de CasoEstudo de Caso

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 101: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

• A classe Carga– Objeto requisicao– Objeto resultado

Estudo de CasoEstudo de Caso

Carga <classe>public int codUsuario;public String nome;public String endereco;public int sexopublic int profissao;

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 102: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

• Agente Móvel e o Agente Estático – Herdam a classe do Voyager com.objectspace.voyager.agent.Agent

• Agente Móvel implementa duas Interfaces– ManipulaI e Serializable

• Resultado dos Agentes Estáticos– agMovel.recebeResultado() – Despeja os resultados na Interface gráfica

Estudo de CasoEstudo de Caso

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 103: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

• Banco de Dados Relacional - SQLServer 7.0

• Criação através de scriptsCREATE TABLE [dbo].[eEmprestimo] (

[EmprestimoID] [int] NOT NULL ,[LivroID] [int] NOT NULL ,[UsuarioID] [int] NOT NULL ,[Data] [timestamp] NOT NULL

) ON [PRIMARY]GO

Estudo de CasoEstudo de Caso

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 104: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

• Banco de Dados Relacional - SQLServer 7.0– As chaves primárias

ALTER TABLE [dbo].[eEmprestimo] WITH NOCHECK ADD CONSTRAINT [PK_eEmprestimo] PRIMARY KEY NONCLUSTERED ( [EmprestimoID] ) ON [PRIMARY]

GO

– As chaves estrangeirasALTER TABLE [dbo].[eEmprestimo] ADD

CONSTRAINT [FK_eEmprestimo_eLivro] FOREIGN KEY ( [LivroID] )

REFERENCES [dbo].[eLivro] ( [LivroID] ),CONSTRAINT [FK_eEmprestimo_eUsuario] FOREIGN KEY ( [UsuarioID] )

REFERENCES [dbo].[eUsuario] ( [UsuarioID] )GO

Estudo de CasoEstudo de Caso

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 105: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

• Banco de Dados Objeto-Relacional -Oracle8i– Estruturas dos objetos

CREATE OR REPLACE TYPE objEmprestimo AS OBJECT (EmprestimoID Integer, LivroID REF objLivro,UsuarioID REF objUsuario,Data Integer,

);

– Estrutura das relações ou tabelasCREATE TABLE Usuario OF objUsuario

( UsuarioID PRIMARY KEY);

Estudo de CasoEstudo de Caso

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 106: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

• Banco de Dados Objeto-Relacional -Oracle8i– Consulta a uma tabela com relacionamento

SELECT Emp.UsuarioID.Nome as Nome, Emp.LivroID.Titulo as Titulo FROM Emprestimo Emp;

• Banco de Dados Orientado a Objeto- POET6.1– Arquivo ptj (Configuração do BDOO)

[schemata\AgentesDict]oneFile = true

[databases\AgentesDB]schema = AgentesDictoneFile = true

Estudo de CasoEstudo de Caso

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 107: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

• Banco de Dados Orientado a Objeto- POET6.1– Classe persistente - Usuario

[classes\Usuario]persistent = truehasExtent = trueuseIndexes = UsuarioNomeIndex

[indexes\UsuarioNomeIndex]class = Usuariomembers = nome_unique = true

– ptj -enhance -inplace -create

Estudo de CasoEstudo de Caso

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 108: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

• Banco de Dados Orientado a Objeto- POET6.1– Classe Usuario

class Usuario { private String nome_;

private String endereco_;private int sexo_;private int profissao_;public Usuario( String nome, String endereco, int sexo, int profissao ) {

nome_ = nome;endereco_ = endereco;sexo_ = sexo;profissao_ = profissao; }

public String getNome() {return nome_; }

}

Estudo de CasoEstudo de Caso

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 109: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

• Agente estático

– agBDOO.recebeRequisicao(requisicao);• AgenteBDR

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection con= DriverManager.getConnection("jdbc:odbc:AgentesDB", "", "");

Statement stmt = con.createStatement();ResultSet rs = stmt.executeQuery("SELECT * FROM eUsuario WHERE Profissao = 3");

Estudo de CasoEstudo de Caso

AgenteEstaticoI <interface>

conexaoDB( );acessoDadosDB( );recebeRequisicao(Carga requisicaoF);

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 110: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

• AgenteBDORClass.forName("oracle.jdbc.driver.OracleDriver");DriverManager.getConnection("jdbc:oracle:thin:@agentemovel:1521:AMORIns","d

anclaro","nt");

Statement stmt = con.createStatement();ResultSet rs = stmt.executeQuery("SELECT * FROM eUsuario WHERE Profissao =

3");

• AgenteBDOODatabase agenteDB = new Database();agenteDB.open("poet://DANCLARO:nt@LOCAL/

AgentesDB",Database.OPEN_READ_WRITE );

– Consulta OQLString queryString ="select c from UsuarioExtent as c where c.profissao_ =3"

Estudo de CasoEstudo de Caso

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 111: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Estudo de CasoEstudo de Caso

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 112: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

• Facilidade na interação do usuário– Transparência das ações do AM

• Inter-relacionamento de sistemas legados com a tecnologia emergente

• Execução do acesso às bases de dados local

• Cliente/Servidor– Busca em uma conexão as informações

pertinentes às bases de dados

Estudo de Caso - Estudo de Caso - ConclusãoConclusão

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 113: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

• Consulta aos Dados– Satisfatória

• Criação remota do Agente– Voyager 4.0

• Extensões do trabalho– Utilização de outra plataforma - Aglets– Segurança dos agentes no ambiente– Transações nos Agentes Estáticos– Outras manipulações ao BD

Estudo de Caso - Estudo de Caso - ConclusãoConclusão

João Bosco Mangueira Sobral Daniela Barreiro Claro

Page 114: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc

Dúvidas/Perguntas

• Daniela Barreiro Claro• [email protected]

• Bosco Sobral• [email protected]

João Bosco Mangueira Sobral Daniela Barreiro Claro