Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela...
-
Upload
isis-nobrega -
Category
Documents
-
view
213 -
download
0
Transcript of Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela...
![Page 1: Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/1.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/2.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/3.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/4.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/5.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/6.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/7.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/8.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/9.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/10.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/11.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/12.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/13.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/14.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/15.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/16.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/17.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/18.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/19.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/20.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/21.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/22.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/23.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/24.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/25.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/26.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/27.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/28.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/29.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/30.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/31.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/32.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/33.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/34.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/35.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/36.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/37.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/38.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/39.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/40.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/41.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/42.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/43.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/44.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/45.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/46.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/47.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/48.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/49.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/50.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/51.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/52.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/53.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/54.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/55.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/56.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/57.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/58.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/59.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/60.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/61.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/62.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/63.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/64.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/65.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/66.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/67.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/68.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/69.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/70.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/71.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/72.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/73.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/74.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/75.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/76.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/77.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/78.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/79.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/80.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/81.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/82.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/83.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/84.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/85.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/86.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/87.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/88.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/89.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/90.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/91.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/92.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/93.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/94.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/95.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/96.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/97.jpg)
• 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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/98.jpg)
• 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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/99.jpg)
• 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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/100.jpg)
• 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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/101.jpg)
• 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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/102.jpg)
• 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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/103.jpg)
• 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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/104.jpg)
• 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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/105.jpg)
• 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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/106.jpg)
• 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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/107.jpg)
• 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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/108.jpg)
• 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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/109.jpg)
• 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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/110.jpg)
• 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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/111.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/112.jpg)
• 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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/113.jpg)
• 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.](https://reader034.fdocumentos.com/reader034/viewer/2022051704/570638401a28abb8238f11be/html5/thumbnails/114.jpg)
Dúvidas/Perguntas
• Daniela Barreiro Claro• [email protected]
• Bosco Sobral• [email protected]
João Bosco Mangueira Sobral Daniela Barreiro Claro