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

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

Simulação Flexível de Protocolos Distribuídos para Computação Móvel

Apresentações semelhantes


Apresentação em tema: "Simulação Flexível de Protocolos Distribuídos para Computação Móvel"— Transcrição da apresentação:

1 Simulação Flexível de Protocolos Distribuídos para Computação Móvel
Ricardo Couto A. da Rocha(*) DCC-IME-USP Orientador: Markus Endler (*) Atualmente no Centro de Pesquisas da Xerox (ES)

2 Roteiro Motivação Modelo de Sistema Arquitetura de Referência
O Simulador MobiCS Exemplo Implementação Avaliação Conclusões

3 Motivação  Características de ambientes de Computação Móvel (CM)
Localização das estações móveis pode variar com o tempo  Topologia dinâmica Consumo de potência é crítico  Desconexões voluntárias Mobilidade  Variação na qualidade da comunicação sem fio Baixa taxa de transmissão do meio sem fio

4 Motivação  Implem. de algoritmos distribuídos em CM
Deve ser capaz de trabalhar com um número variável de participantes na interação Otimizar o uso do meio sem fio Desconexões voluntárias não devem possuir semântica de falha Protocolos distribuídos vs. Ponto-a-ponto Algoritmos distribuídos possuem estado distribuído  a desconexão pode causar perda parcial do estado Alta dependência da mobilidade  corretude e desempenho Conclusão: Avaliação da corretude é mais complexa

5 Motivação  Projeto SIDAM
Desenvolvimento de protocolos para CM  multicast atômico, entrega confiável de respostas. Validação e análise dos protocolos por simulação. Requisitos para simulação de protocolos em CM Abstrações para programação de protocolos. Permitir o teste de protocolos. Extensibilidade para permitir criação de elementos simulados com diferentes comportamentos. Programação de modelos de simulação, sobretudo para modelos de mobilidade. Simuladores para CM  ns, GloMoSim

6 Motivação  GloMoSim Protocolos são implementados em PARSEC, uma linguagem para simulação paralela. Protocolos da camada TCP/IP e de baixo nível. Simulação paralela de alto desempenho  escalabilidade Protocolos  entidades: módulos monolíticos. Padrões de comportamento devem ser programados explicitamente  falta de abstrações.

7 Motivação  ns (network simulator)
Modelo dividido: C++ (máquina de simulação) e OTcl (programação) Protocolos da camada de rede e transporte Flexibilidade e extensibilidade Avaliação da corretude de protocolos Baseada em especificação formal [Verif, SPIN] Baseada em simulações exaustivas [STRESS no ns]. Nenhuma das abordagens é adequada à prototipagem de protocolos.

8 Motivação  Limitações comuns para prototipagem e simulação de protocolos distribuídos Nível de detalhamento não adequado. Prototipagem  abstrações de programação e transparência de simulação. Extensibilidade nem sempre é possível. Falta de ferramentas integradas para teste e validação de protocolos distribuídos. Teste de diferentes modelos de mobilidade  faltam abstrações de mobilidade de alto nível.

9 Motivação Coyote - Ambiente para Desenvolv. de Protocolos Objetivos
Composição horizontal de protocolos. Micro-protocolos, que interagem por eventos. Aplicado em protocolos para CM. Conceito de micro-protocolos foi adotado no trabalho. Objetivos Ambiente integrado para prototipagem, teste e avaliação de desempenho de algoritmos distribuídos. Transparência de simulação e abstrações de programação. Modelos de simulação programáveis.

10 Modelo de Sistema 

11 Modelo de Sistema Protocolos Distribuídos 
São algoritmos distribuídos que implementam comunicação e/ou coordenação entre vários hosts em CM Exemplos: Difusão de mensagens (multicast) Exclusão mútua Checkpointing Entrega ordenada de mensagens Algoritmos implementados sob o modelo indireto  conscientes da mobilidade

12 Modelo de Sistema Protocolos Distribuídos 
Aplicações Protocolos Distribuídos Transporte e Rede Enlace de Dados e Físico

13 Modelo de Sistema Protocolos Distribuídos
Abstração básica de interação entre protocolos/máquinas  mensagem Mensagem é entregue se não há migração intercelular do MH durante envio.  envio é confiável, mas MHs nem sempre estão acessíveis. Envio de mensagens na rede fixa é confiável O canal sem fio é caracterizado pela taxa efetiva de envio de dados. Hand-Off é iniciado pelo MH revelando ao novo MSS a sua identidade e o MSS anterior

14 Arquitetura de Referência para Simulação 
Arquitetura generalizada que define uma infra-estrutura e interfaces comuns para sistema em um mesmo domínio de aplicação. Requisitos, conceitos, abstrações e uma arquitetura de software. Sugere: Modo de simulação determinístico Modelo de programação baseado em micro-protocolos Abstrações para programação de modelos de simulação.

15 Arquitetura de Referência para Simulação 
Camada de elementos de rede implementa funcionalidade do hardware e software de baixo nível (SO, protocolos). Processos concorrentes implementam cada elemento de rede. A máquina de simulação determina a ordem de processamento de eventos. A máquina de simulação pode implementar diferentes modos de simulação. Aplicação ProtocolosDistribuídos Elementos de Rede Máquina de Simulação

16 Arquitetura de Referência para Simulação
Interface de eventos bem definida entre camadas de simulação e de elementos  transparência de simulação Elementos de Rede Timer MsgArrived MoveTo Connectivity MsgArrived SetTimer Máquina de Simulação

17 MobiCS Mobile Computing Simulator 
Biblioteca Java  Rápida prototipagem de protocolos distribuídos Modelo de programação de protocolos simples e flexível Abstrações de programação de alto nível Transparência total de simulação Possibilita abstrações de mobilidade  usuário pode criar seu próprio modelo de mobilidade Abordagem para teste de corretude  simulações determinísticas Permite também simulação estocástica

18 Uso do MobiCS Usuário implementa classes que definem os protocolos a serem simulados, o ambiente de rede e o modelo de simulação desejado. Pacote MobiCS estende estende Protocolos estende Modelos de Simulação instancia instancia Simulação

19 Uso do MobiCS MobiCS é composto de 2 pacotes:
mobics.ppi  programação de protocolos mobics.ppi.protocol mobics.ppi.message mobics.simulation  programação do modelo de simulação e configuração do ambiente de rede mobics.simulation.DetermSimulation mobics.simulation.StochSimulation

20 Uso do MobiCS Sequência de Passos 
Sequência de passos p/ implementar e simular: Declarar as interfaces e programar o protocolo  mobics.ppi.message & mobics.ppi.protocol Escolher o modo de simulação (determ./ estocástico) Programar um modelo de simulação adequado ao protocolo (script deterministico ou classes simulação) Estender a classe DetermSimulation (ou StochSimulation) definindo o ambiente de rede (elementos simulados & topologia, outros conceitos) Implementar um programa Java que cria e inicia um objeto Simulação e chamar o método Simulation.start

21 MobiCS Modelo de Programação 
Modelo de programação OO e modular Protocolos são compostos de micro-protocolos  módulos com funcionalidade bem definida Arranjo típico Protocolo Wired Wireless Handoff Micro-protocolos se comunicam por eventos  mensagens, timers

22 MobiCS Modelo de Programação 
Micro-protocolos são interfaces Java que declaram um conjunto de tratadores para eventos Os tratadores são métodos com assinatura when<Event>(EventType e) Tratadores de eventos são atômicos. Modelo de execução é seqüencial. Abstrações para envio confiável e não-confiável de mensagens: send e rsend try { rSend(hostDest, message); } catch (MsgNotAcknow notAck) { // host not found

23 MobiCS Modelo de Programação 
Etapas de implementação de um protocolo Definir todas as mensagens trocadas entre elementos e seus respectivos micro-protocolos Declarar cada uma das mensagens na forma de uma subclasse de Message. Declarar as interfaces dos micro-protocolos Declarar uma subclasse de Protocol que implementa todas as interfaces dos micro-protocolos Implementar os métodos

24 O Pacote mobics.ppi.message 
Toda mensagem é um objeto de uma subclasse de mobics.ppi.message.Message e contém um tipo (sua classe) e um conteúdo Classe Message = conjunto mínimo de informações para processar uma mensagem Atributos: sender, receiver, responsible (protocolo ao qual msg está associada) Métodos: Message, callHandler, clone, toString callHandler(Protocolo) faz chamada ao método Protocolo.whenTipoMensagem

25 O Pacote mobics.ppi.message 
O pacote declara 4 interfaces (que definem o tipo da mensagem): HandoffMessage, WiredMessage, WirelessMessage e AppMessage Toda mensagem deve implementar uma destas interfaces! Mensagem é um objeto imutável (métodos públicos não podem alterar estado) Mensagem padrão greet, enviada por um MH para iniciar um Hand-Off

26 O Pacote mobics.ppi.protocol 
Novo Microprotocolo é declarado estendendo-se as interfaces WiredModule, WirelessModule, e HandoffModule Devem ser declarados todos os tratadores para as mensagens que compôem o micro-protocolo Duas subclasses de Protocol, MssProtocol e MhProtocol possuem uma interface específica para a implementação de protocolos em MHs e MSSs Método Protocol.send(Addr, Message)é a forma de interação entre instanâncias de um protocolo Pode gerar uma exceção CommunicatioException send envio assíncrono de uma mensagem para outro elemento simulado (rsend é a versão confiável)

27 MobiCS Simulação Determinística 
Abordagem para teste e avaliação da corretude de protocolos. O simulador reproduz cenários específicos (e determinísticos) descritos em um script. É similar a uma simulação trace-driven, só que é o próprio usuário quem cria os traços de simulação. Um script pode conter: envio de requisições, migrações, alterações na disponibilidade de um Mh, etc.

28 MobiCS Simulação Determinística 
Exemplo: O comportamento dos protocolos é definido apenas pela sua própria implementação. O script deve descrever situações críticas nas quais o protocolo precisa ser testado. Mh1.moveTo(cell1); Mh1.send(Req); Mss3.send(server, new Ack(req)); Mh2.unavailable();

29 MobiCS Simulação Determinística 
Não há noção de tempo  desempenho dos elementos de rede é infinito. Uma simulação ocorre em passos. Para definir ordenação entre os eventos, utiliza-se pontos de sincronização no script. Globais  eventos de diferentes elementos (end_step) Locais  eventos de um mesmo elemento (acceptTurnOn e accept)

30 MobiCS Simulação Determinística 
Script {ha,MSSo,MSSn}.acceptOn() mh.send(new Req()); mh.moveTo(MSSn); end_step(); // corte C server.accept(Req); mh.accept(Res); server eventos independentes res Home agent req res MSSo req mh res MSSn

31 MobiCS Simulação Determinística 
Script {ha,MSSo,MSSn}.acceptOn() mh.send(new Req()); mh.moveTo(MSSn); end_step(); // corte C server.accept(Req); mh.accept(Res); server res req Home agent MSSo mh MSSn

32 MobiCS Simulação Determinística 
Saída do modo determinístico Mensagens exibidas no corpo dos tratadores de eventos Log de eventos exibidos pelo MobiCS e configurado pelo usuário. Exceções no script determinístico e nos protocolos (erros em tempo de execução e violações a assertivas).

33 MobiCS Simulação Estocástica 
Permite a avaliação do desempenho de protocolos pela realização de testes exaustivos. Usuário define Padrão de comportamento dos elementos Modelo de mobilidade O modelo de simulação pode ser programado (extensão de classes) e configurado pelo usuário (instanciação de objetos). Deve ser atribuído a cada elemento simulado um objeto que define seu comportamento na simulação a partir de um modelo de simulação.

34 Implementação do MobiCS 
Características Biblioteca escrita em Java 120 classes, linhas de código Abordagem de Implementação Implementa um núcleo de simulação Uso intensivo de objetos Permite a implementação e incorporação de outros modos de simulação  Arcabouço MobiCS Interfaces com Usuário Modos de Simulação Nova Ferramenta de Simulação

35 Implementação do MobiCS 
Arcabouço para Implementação de Modos de Simulação, provê uniformidade: Incorporação de máquinas de simulação Utilização das interfaces pelo usuário Define Encapsulamento da nova máquina de simulação (AbstractSimulatedElement). Delegação da criação dos objetos específicos de simulação (Simulator). Uso das interfaces do novo modo de simulação (Simulation).

36 Implementação do MobiCS
Arquitetura da Camada de Simulação Camada de Simulação Fila de Mensagens Gerador de Eventos Interfaces de Rede Fila de Eventos Controlador de Simulação Canal de Controle Notificador de Protocolos Gerenciador de Eventos


Carregar ppt "Simulação Flexível de Protocolos Distribuídos para Computação Móvel"

Apresentações semelhantes


Anúncios Google