Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouRaquel Sala Alterado mais de 9 anos atrás
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]”
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.