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

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

1 Mobilidade de Código com μcode Projeto Giga Alexandre Lages

Apresentações semelhantes


Apresentação em tema: "1 Mobilidade de Código com μcode Projeto Giga Alexandre Lages"— Transcrição da apresentação:

1 1 Mobilidade de Código com μcode Projeto Giga Alexandre Lages alexandrelages@nce.ufrj.br

2 2 Sumário Introdução Agentes Móveis μcode

3 3 Introdução Um Agente é um programa cujo código de execução possui recursos capazes de armazenar dados, transferir-se de um local para outro da rede e reiniciar sua execução. Envolve a instalação de código em uma máquina remota; Applets e Servlets como exemplos; Característica principal: pouca utilização da rede;

4 4 Introdução Vantagens em relação a abordagem cliente/servidor: Economia de espaço; Redução do tráfego; Interação assíncrona e em tempo real; Robustez; Operação em ambientes heterogêneos; Extensibilidade em tempo real; Fácil atualização;

5 5 Agentes Móveis Um sistema de agentes móveis é composto de: Código do agente; Estado de execução do agente; Contexto de execução; Mecanismo de deslocamento; Permissões de acesso;

6 6 μcode API desenvolvida em Java que fornece uma série de primitivas de mobilidade de código. Características: Código pequeno; Execução “leve”; Projeto modular; Suporte para vários métodos de realocação de classe; Suporte a compressão;

7 7 μcode Mobile Agent System X μcode: Hardware/SO JVMSem-JVM Mobile Agent System Eventos Persistência Segurança Comunicação Hardware/SO JVM μcode Mobile Agent ComunicaçãoSegurança Persistência

8 8 μcode Desenvolvimento baseado pelas seguintes motivações: Ênfase em mobilidade do código: características adicionais através da adição de módulos; Permite especificar dinamicamente ou individualmente a estratégia de alocação de classes; Tamanho do código pequeno; Transparente para o usuário;

9 9 Única unidade de Mobilidade μcode Ambiente de execução: Group Hardware/SO JVM μcode μserver Group handler Class Space Hardware/SO JVM μcode μserver Group handler Class Space Realocação do código e do estado Extração das classes e objetos Espaço para as classes e objetos

10 10 μcode Resolução de classes: Group Hardware/SO JVM μcode μserver Group handler Class Space Grupo com uma classe C precisa da classe C1: 1.Classe C1 pertence a API do java ou μcode; 2.Classe C1 pertence ao ClassSpace privativo do grupo; 3.Classe C1 pertence ClassSpace compartilhado; 4.Tenta realizar o download da classe C1 de um outro μserver; 5.Exceção é gerada;

11 11 μcode A unidade de migração do μcode é um grupo, composto por um conjunto de classes e objetos. As threads geradas a partir de classes recebidas por um μserver são mantidas em um espaço de classes privativa, de forma a evitar conflitos de nomes com outras classes locais. A tarefa de extrair as classes é feita pelo group handler; É possível publicar classes em um espaço de classe compartilhado associado ao μserver, de forma que as mesmas possam ser acessadas por outras classes do próprio μserver ou de μserver remotos.

12 12 μcode Vantagens de utilização do μcode: Minimização: conjunto mínimo de primitivas e abstrações; Extensibilidade: não requer processamento adicional significativo em relação à máquina virtual; Flexibilidade: seleção de diferentes estratégias para o mesmo código em diferentes situações; Portabilidade;

13 13 public class Clone implements Runnable, java.io.Serializable { public void run() { while (true) { System.out.println("Clone i = " + i++); try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } public static void main(String[] args) { try { Clone r = new Clone(); new Thread(r).start(); MuServer s = new MuServer(); new Launcher(s).parseArgs(args, 1); new Relocator(s).copyThread(“localhost”, r, Relocator.FULLCLOSURE, null, false); System.out.println(“Fim..."); } catch (Exception e) { e.printStackTrace(); } μcode

14 14 μcode Classe Relocator prover as seguintes primitivas para a realocação de classes e objetos: copyThread: permite a cópia de uma thread de um μserver para outro; spawnThread: permite gerar uma thread para um outro μserver; shipClasses: permite enviar uma classe para o ClassSpace de um outro μserver; fetchClasses: permite buscar uma classe de um outro μserver;

15 15 μcode Limitações do μcode: Suporte para apenas mobilidade fraca: salvamento somente do estado em relação aos dados, mas não o seu estado de execução; O núcleo do μcode não suporta nenhuma forma de comunicação direta entre duas threads móveis. Pode ser resolvido através do uso de uma estrutura de dados compartilhada;

16 16 μcode Problemas no desenvolvimento do μcode: Falta de atualização por parte dos desenvolvedores; JDK 1.1;


Carregar ppt "1 Mobilidade de Código com μcode Projeto Giga Alexandre Lages"

Apresentações semelhantes


Anúncios Google