A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "Computação com a Mobilidade do Código Prof.º João Bosco Mangueira Sobral, Dr. Profª Daniela Barreiro Claro, M.Sc."— Transcrição da apresentação:

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

2 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

3 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

4 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

5 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

6 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

7 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

8 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

9 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

10 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

11 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

12 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

13 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

14 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.

15 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

16 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

17 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

18 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

19 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

20 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

21 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

22 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

23 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

24 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

25 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

26 Agentes Móveis Cliente / Servidor João Bosco Mangueira Sobral Daniela Barreiro Claro Cliente Servidor know-how

27 Agentes Móveis Código sob Demanda João Bosco Mangueira Sobral Daniela Barreiro Claro Cliente Servidor know-how download

28 Agentes Móveis João Bosco Mangueira Sobral Daniela Barreiro Claro Agente know-how Estação Agente know-how Estação Rede

29 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

30 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

31 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

32 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

33 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

34 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

35 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ágina AGENTES PODEM TER AS DUAS VANTAGENS João Bosco Mangueira Sobral Daniela Barreiro Claro

36 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

37 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

38 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

39 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

40 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

41 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

42 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

43 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

44 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

45 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

46 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

47 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

48 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

49 Sistemas de Agentes Funções –Início da Transferência de Agentes(Lado Origem) 1.Suspende a execução do agente 2.Identifica as partes a transferir do AM 3.Serializa a instância da classe e o estado do agente 4.Codifica para o protocolo de transporte escolhido 5.Autentica o cliente 6.Transfere o agente João Bosco Mangueira Sobral Daniela Barreiro Claro

50 Sistemas de Agentes Funções –Recebendo um agente(Lado Destino) 1.Autentica o cliente 2.Decodifica o agente 3.Desserializa a classe e o estado do agente 4.Instancia o agente 5.Restaura o estado do agente 6.Inicia a execução João Bosco Mangueira Sobral Daniela Barreiro Claro

51 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

52 Sistemas de Agentes Funções –Criar um agente Sistema de Agentes cria uma instância de uma classe do agente Objetivos 1.Iniciar um agente 2.Instanciar a classe do agente 3.Gerar um nome único global para o agente 4.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

53 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

54 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

55 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

56 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

57 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

58 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

59 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 existente getAgletContext().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

60 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

61 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

62 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

63 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

64 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

65 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

66 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

67 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

68 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

69 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

70 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

71 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

72 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

73 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

74 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

75 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

76 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

77 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

78 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 Voyager Voyager.startup(7000); João Bosco Mangueira Sobral Daniela Barreiro Claro

79 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 destino moveTo(“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

80 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

81 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

82 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

83 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

84 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

85 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

86 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

87 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

88 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

89 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

90 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

91 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

92 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

93 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

94 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

95 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

96 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

97 Configuração –Voyager3.2 + JDK 1.2.2 ( path e classpath) Ambiente de execução (DOS) voyager Estudo de Caso João Bosco Mangueira Sobral Daniela Barreiro Claro

98 Interface Gráfica do Usuário Estudo de Caso João Bosco Mangueira Sobral Daniela Barreiro Claro

99 Interface do Agente Móvel –Métodos a serem executados por objetos remotos Estudo de Caso ManipulaI enviaRequisicao(Carga requisicao); enviaResultado(Vector itsResult); Enumeration recebeResultado(); moveAgente(); criaAgente(); João Bosco Mangueira Sobral Daniela Barreiro Claro

100 Criação do Agente Móvel Voyager.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 Caso João Bosco Mangueira Sobral Daniela Barreiro Claro

101 A classe Carga –Objeto requisicao –Objeto resultado Estudo de Caso Carga public int codUsuario; public String nome; public String endereco; public int sexo public int profissao; João Bosco Mangueira Sobral Daniela Barreiro Claro

102 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 Caso João Bosco Mangueira Sobral Daniela Barreiro Claro

103 Banco de Dados Relacional - SQLServer 7.0 Criação através de scripts CREATE TABLE [dbo].[eEmprestimo] ( [EmprestimoID] [int] NOT NULL, [LivroID] [int] NOT NULL, [UsuarioID] [int] NOT NULL, [Data] [timestamp] NOT NULL ) ON [PRIMARY] GO Estudo de Caso João Bosco Mangueira Sobral Daniela Barreiro Claro

104 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 estrangeiras ALTER 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 Caso João Bosco Mangueira Sobral Daniela Barreiro Claro

105 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 tabelas CREATE TABLE Usuario OF objUsuario ( UsuarioID PRIMARY KEY); Estudo de Caso João Bosco Mangueira Sobral Daniela Barreiro Claro

106 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 = AgentesDict oneFile = true Estudo de Caso João Bosco Mangueira Sobral Daniela Barreiro Claro

107 Banco de Dados Orientado a Objeto- POET6.1 –Classe persistente - Usuario [classes\Usuario] persistent = true hasExtent = true useIndexes = UsuarioNomeIndex [indexes\UsuarioNomeIndex] class = Usuario members = nome_ unique = true –ptj -enhance -inplace -create Estudo de Caso João Bosco Mangueira Sobral Daniela Barreiro Claro

108 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 Caso João Bosco Mangueira Sobral Daniela Barreiro Claro

109 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 Caso AgenteEstaticoI conexaoDB( ); acessoDadosDB( ); recebeRequisicao(Carga requisicaoF); João Bosco Mangueira Sobral Daniela Barreiro Claro

110 AgenteBDOR Class.forName("oracle.jdbc.driver.OracleDriver"); DriverManager.getConnection("jdbc:oracle:thin:@agentemovel:1521:AMORIns","danclaro","nt"); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM eUsuario WHERE Profissao = 3"); AgenteBDOO Database agenteDB = new Database(); agenteDB.open("poet://DANCLARO:nt@LOCAL/AgentesDB",Database.OPEN_R EAD_WRITE ); –Consulta OQL String queryString ="select c from UsuarioExtent as c where c.profissao_ =3" Estudo de Caso João Bosco Mangueira Sobral Daniela Barreiro Claro

111 Estudo de Caso João Bosco Mangueira Sobral Daniela Barreiro Claro

112 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 - Conclusão João Bosco Mangueira Sobral Daniela Barreiro Claro

113 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 - Conclusão João Bosco Mangueira Sobral Daniela Barreiro Claro

114 Dúvidas/Perguntas Daniela Barreiro Claro danclaro@inf.ufsc.br Bosco Sobral bosco@inf.ufsc.br João Bosco Mangueira Sobral Daniela Barreiro Claro


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

Apresentações semelhantes


Anúncios Google