1 / 29

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

Simulação Flexível de Protocolos Distribuídos para Computação Móvel. Ricardo Couto A. da Rocha (*) rcarocha@ime.usp.br rcarocha@altavista.com DCC-IME-USP Orientador: Markus Endler (*) Atualmente no Centro de Pesquisas da Xerox (ES). Roteiro. Motivação Modelo de Sistema

gwyn
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Simulação Flexível de Protocolos Distribuídos para Computação Móvel Ricardo Couto A. da Rocha(*) rcarocha@ime.usp.br rcarocha@altavista.com 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 • 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 SistemaProtocolos 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 SistemaProtocolos Distribuídos  Aplicações Protocolos Distribuídos Transporte e Rede Enlace de Dados e Físico

  13. Modelo de SistemaProtocolos 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 de Referência: • 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. Interface de eventos bem definida entre camadas de simulação e de elementos  transparência de simulação Timer MsgArrived MsgArrived SetTimer MoveTo Connectivity Arquitetura de Referência para Simulação Elementos de Rede Máquina de Simulação

  17. MobiCSMobileComputingSimulator • 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. Protocolo Wired Wireless Handoff MobiCSModelo 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 • Micro-protocolos se comunicam por eventos  mensagens, timers

  21. MobiCSModelo 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 }

  22. MobiCSSimulaçã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.

  23. MobiCSSimulaçã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();

  24. MobiCSSimulaçã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)

  25. C eventos independentes MobiCSSimulaçã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 Home agent req res MSSo req mh res MSSn

  26. MobiCSSimulaçã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).

  27. MobiCSSimulaçã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.

  28. Interfaces com Usuário MobiCS Modos de Simulação Implementação do MobiCS • Características • Biblioteca escrita em Java • 120 classes, 10.000 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 Nova Ferramenta de Simulação

  29. 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).

More Related