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

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

MobiCS: Um Simulador de Protocolos para Computação Móvel Ricardo Couto Antunes da Rocha 22 de setembro de 2000.

Apresentações semelhantes


Apresentação em tema: "MobiCS: Um Simulador de Protocolos para Computação Móvel Ricardo Couto Antunes da Rocha 22 de setembro de 2000."— Transcrição da apresentação:

1 MobiCS: Um Simulador de Protocolos para Computação Móvel Ricardo Couto Antunes da Rocha rcarocha@ime.usp.brDCC-IME-USP 22 de setembro de 2000

2 2 / 49 Roteiro 1ª Aula - 22/09  Motivações  Modelo de Sistema  Arquitetura de MobiCS  Modos de Simulação  Programação de protocolos Objetivo: apresentar motivações e principais conceitos relacionados 2ª Aula - 29/09  Exemplo de Protocolo  Implementação do Protocolo  Simulação Determinística  Simulação Estocástica Objetivo: tutorial do simulador, com exemplos práticos e interfaces

3 3 / 49 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 4 / 49 Motivação (cont) Implementação 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

5 5 / 49 Motivação (cont) Projeto SIDAM  Implementação de sistemas de informação distribuídos para clientes móveis e fixos.  Desenvolvimento de protocolos para CM  broadcast atômico, entrega confiável de respostas.  Validação e análise dos protocolos por simulação  Simulador será um elemento central do protótipo do SIDAM  emulador de amb. CM

6 6 / 49 Motivação (cont) Diferentes abordagens para simulação  Simuladores de rede[ MobSim, SWiMNet, WiPPET ]  focalizado nas características de rede  bem definido conjunto de protocolos a simular  projetado para simular redes e/ou ambientes específicos.  Simuladores de Protocolos [ GloMoSim, ns ]  focalizado no desenvolvimento de protocolos  define uma interface de program. de protocolos  características de rede podem ser adaptadas

7 7 / 49 Motivação (cont) Simuladores de rede não possib. prototipagem Simuladores de protocolos devem possibilitar adaptação para simular diferentes amb. de CM. Prototipagem  abstrações de programação e transparência de simulação Validação de protocolos distribuídos é difícil Teste de diferentes modelos de mobilidade  abstrações de mobilidade de alto nível Limitações comuns para prototipagem e simulação de protocolos distribuídos

8 8 / 49 Motivação (cont) GloMoSim  Protocolos são implementados em PARSEC, uma linguagem para simulação paralela Simulação paralela de alto desempenho  escalabilidade  Protocolos  entidades: módulos monolíticos  Padrões de comportamento devem ser programados explicitamente

9 9 / 49 Motivação (cont) Ns (network simulator)  Modelo dividido: C++ (máquina de simulação) e OTcl (programação) Flexibilidade e extensibilidade Abordagem adotada  Prover flexibilidade com simulação paralela  Novo modelo de programação de protocolos que facilite prototipagem e modularização  Simulação determinística

10 10 / 49 Modelo de Sistema para CM Termos  Máquina Fixa  Rede Fixa  Estação móvel - Mh  Estação base - Mss  Célula  Canal sem fio  Handoff

11 11 / 49 Modelo de Sistema para CM handoff

12 12 / 49 Modelo de Sistema para CM Quando um Mh detecta que enoutr em outra célula, ele envia para o Mss responsavél um Greet(mh,oldMss) Cada Mh por ter, no máximo, um Mss responsável. Não é possível interseção de áreas de células.

13 13 / 49 Protocolos Distribuídos São algoritmos distribuídos que implementam comunicação e/ou coordenação entre vários hosts em CM Elementos: estado, algoritmo, instância Exemplos:  Comunicação multi-ponto  Exclusão mútua  Checkpointing  Entrega ordenada de mensagens

14 14 / 49 Protocolos Distribuídos (cont) Protocolos distribuídos vs. Ponto-a-ponto  Algoritmos distribuídos possuem estado distribuído  a desconexão pode causar perda parcial do estado mas o algoritmo deve conseguir manter a interação  Alta dependência da mobilidade  tanto no funcionamento como no desempenho Conclusão: a avaliação da corretude do protocolo é mais complexa

15 15 / 49 Protocolos Distribuídos (cont) Duas abordagens para implementação de algoritmos distribuídos em CM  Mobilidade e desconexões transparentes  encaminhamento de mensagens é feito por protocolo no nível de rede (IP Móvel)  gerência de QoS só é possível em camadas inferiores  não é possível adaptação de alto nível (aplicações)  Modelo Indireto (mobility-aware)

16 16 / 49 Protocolos Distribuídos (cont) Enlace de Dados e Físico Transporte e Rede ProtocolosDistribuídos Aplicações

17 17 / 49 Protocolos Distribuídos (cont) Problemas resolvidos pelas camadas inferiores  Mecanismo de gerência de fluxo de pacotes  Correção de erros do canal sem fio  Mecanismo de escolha de MSS mais aprop.  Gerência do canal sem fio (multiplexação, alocação de frequência)

18 18 / 49 Protocolos Distribuídos (cont) Abstração básica de interação entre protocolos/máquinas  mensagem Problemas como taxa de erros no canal e retransmissões são transparentes. Taxa efetiva de envio de dados incorpora todas as características físicas do canal. O envio de mensagens é confiável, embora os MHs nem sempre sejam acessíveis  confirmações devem ser feitas pelos próprios protocolos

19 19 / 49 MobiCS Mobi C S MobiCS Mobile Computing Simulator 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 (paralel.)

20 20 / 49 MobiCS Mobi C S MobiCS Mobile Computing Simulator (cont) Totalmente desenvolvido em Java  uso das abstrações e bibliotecas de Java pelo programador de protocolos  facilita a distribuição do simulador  uso de reflexão computacional permite a criação de um modelo de programação mais elegante

21 21 / 49 Arquitetura de Software Camada de Aplicação  Implementa aplicações que usam os protocolos  Pode ser um usuário do simulador ou um protótipo de aplicação  Captura eventos que permitem adaptação: MESSAGE, NEWCELL, QOS_CHANGE, CONNECT, DISCONNECT Máquina de Simulação Elementos de Rede Aplicação Protocolos Distribuídos

22 22 / 49 Arquitetura de Software (cont) Protocolos Distribuídos  Composta pelos protocolos distribuídos sendo simulados  Programador define tratadores de eventos recebidos de outras camadas Máquina de Simulação Elementos de Rede Protocolos Distribuídos Aplicação

23 23 / 49 Arquitetura de Software (cont) Elementos de Rede  Implementa a funcionalidade dos elementos de rede de ambiente de CM: MSSs, MHs, canais, etc.  Cada elemento é implementado em um processo concorrente Máquina de Simulação Elementos de Rede Protocolos Distribuídos Aplicação

24 24 / 49 Arquitetura de Software (cont) Máquina de Simulação  Implementa os modos de simulação determinístico e estocástico  Garante o processamento causal dos eventos Máquina de Simulação Elementos de Rede Protocolos Distribuídos Aplicação

25 25 / 49 Arquitetura de Software (cont) Interface de eventos bem definida entre camadas de simulação e de elementos  transparência de simulação Elementos de Rede Máquina de Simulação MsgSend SetTimer Timer MsgArrived MoveTo Connectivity

26 26 / 49 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 A vantagem é a separação de comportamentos  Comunicação por canais sem fio / “com fio”  Componentes dinâmicas e estáticas Protocolo Wired Wireless Handoff

27 27 / 49 Modelo de Programação (cont) Protocolo 1 µProt 11 µProt 12 µProt 13 Protocolo 2 µProt 21 µProt 22 µProt 23 e1e1 e3e3 e5e5 e2e2 e4e4 Estado compartilhado Micro-protocolos Mensagem Interface Encapsulamento

28 28 / 49 Modelo de Programação (cont) Componentes de um protocolo  Estado  Micro-protocolos  Mensagem  Interfaces de µProt  Algoritmos  Encapsulamento Modelo de programação Java  Atributos  Conjunto de métodos  Objeto Message  Interfaces  Corpo de métodos  Objeto

29 29 / 49 Modelo de Programação (cont) 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 um sub-classe de Message.  Declarar as interfaces dos micro-protocolos  Declarar uma sub-classe de Protocol que implementa todas as interfaces dos micro-protocolos  Implementar os métodos

30 30 / 49 Modelo de Programação Ex: Declaração de Mensagem Mensagem UpdateLoc Implementa a interf. HandoffMessage Atributos: mh e newMss Construtor informa o protocolo da mensag.

31 31 / 49 Modelo de Programação Ex: Declaração de Protocolo Todo protocolo estende de Protocol mIP_HA é o módulo de handoff do protocolo Método UpdateLoc é um handler para a mensagem UpdateLoc

32 32 / 49 Simulação Determinística Objetivo Objetivo:  fornecer um mecanismo para depuração e avaliação da corretude de protocolos. O simulador reproduz os cenários específicos (e determinísticos) descritos em um script. É parecida com uma simulação trace-driven, só que é o próprio usuário quem cria os traços de simulação.

33 33 / 49 Simulação Determinística (cont) Um cenário pode conter comandos que definem: envio de requisições, movimentações, alterações na disponibilidade de um Mh, etc. Exemplo: Apenas o comportamento dos protocolos não pode ser descrito no script  definido pela implementação do protocolo Mh1.moveTo(cell1); Mh1.send(Req); Mss3.send(server, Ack); Mh2.unavailable();

34 34 / 49 Simulação Determinística (cont) O script deve descrever situações críticas nas quais o protocolo precisa ser testado. Em cenários de CM, tipicamente essas situações ocorrem durante o handoff. Questão: Como definir a ordenação entre eventos de diferentes elementos simulados?

35 35 / 49 Simulação Determinística (cont) server Home agent MSSo MSSn mh req res trocas de mensagens do IP Móvel eventos independentes

36 36 / 49 Simulação Determinística (cont) Não há noção de tempo  desempenho dos elementos de rede é infinito. Justificativa:  Tempo de execução dos protocolos é indeterminado  Facilidade na programação dos scripts Para definir ordenação entre os eventos, utiliza- se pontos de sincronização no script.  Globais  eventos de diferentes elementos  Locais  eventos de um mesmo elemento

37 37 / 49 Simulação Determinística (cont) Dois comandos de sincronização  next() - sincronização global Determina o início de um novo passo de simulação, que só é iniciado quando todos os elementos terminarem a execução dos comandos do passo anterior.  Accept(m) - sincronização local Bloqueia o elemento até o recebimento e processamento da mensagem m indicada. Necessário porque não há controle sobre o envio de mensagens pelo protocolos.

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

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

40 40 / 49 Simulação Estocástica Permite a avaliação do desempenho de protocolos pela realização de testes exaustivos Usuário define  Modelo de mobilidade  Padrão de comportamento dos elementos Utiliza algoritmo conservador de simulação paralela baseado em janela de tempo.

41 41 / 49 Simulação Estocástica (cont) Modelo de Simulação  Atividade e Atração  Atividade: prob. de Mh estar conectado à rede  Atração: prob. de Mhs estarem na região de uma célula  Mobilidade  Probabilidade do Mh migrar para outra célula  Vizinhança entre células  Qualidade da comunicação sem fio  Padrão de requisições

42 42 / 49 Simulação Estocástica (cont) Modelo de Mobilidade: padrão abstrato no qual um elemento se move.  Granularidade de movimentações: célula, posição (2D ou 3D), velocidade/direção, sentido e direção de vias.  Restrições às movimentações  Padrões de comportamento No MobiCS, o modelo de mobilidade poderá ser programável.

43 43 / 49 Uso do Simulador  Implementação do protocolo  estender classes básicas Protocol e Message  Criação do ambiente de CM simulado  estender classes básicas Mss, Mh,...  Criação do(s) cenário(s) de simulação  Escolhas dos cenários determinísticos de teste  descrever script determinístico  avaliar funcionamento do protocolo  Escolha dos cenário aleatório  simulação estocástica  avaliação do desempenho

44 44 / 49 Outros modos de simulação Emulação de ambiente de computação móvel  uso no protótipo SIDAM  interface de emulação  escalonador de tempo-real, dependendo da utilização Simulador de “comportamento”  útil para visualizações; não há tempo simulado.

45 45 / 49 Conclusões MobiCS  ambiente integrado para desenvolvimento, teste e avaliação de desempenho Contribuições  arquitetura de software flexível e com transparência de simulação para protocolos  modelo de programação de protocolos simples e flexível  prototipagem  modo de simulação determinístico

46 46 / 49 Conclusões (cont) Uso do modo de simulação determinístico no teste de corretude de protocolos flexível  aplicável a qualquer classe de protocolo não exige a especificação formal do protocolo útil na depuração de protocolos  testes exaustivos exigem o uso de ferramentas de geração de casos de teste

47 47 / 49 Conclusões (cont) Estágio atual  Máquina determinística implementada  Um protocolo SIDAM prototipado e testado  Máquina estocástica em implementação (previsão da 1a versão: 5/out).  1a. Versão da documentação  moldes de tutorial

48 48 / 49 Conclusões (cont) Interação durante a disciplina MAC 5743  Home page do MobiCS: http://www.ime.usp.br/~rcarocha/mobics  artigos, documentação, fontes, links relacionados, apresentações (incluindo esta),...  Lista de discussão: inscrição por e-mail para rcarocha@ime.usp.br  Documentação

49 49 / 49 Referências “Um Simulador de Protocolos para Computação Móvel”. 2o. Workshop de Comunicação sem Fio. BH, maio/2000. “Flexible Simulation of Distributed Protocol for Mobile Computing”. DT-SIDAM-2-00.1 “MobiCS: Documentação [Draft]”


Carregar ppt "MobiCS: Um Simulador de Protocolos para Computação Móvel Ricardo Couto Antunes da Rocha 22 de setembro de 2000."

Apresentações semelhantes


Anúncios Google