mobics: um simulador de protocolos para computação móvel ricardo couto antunes da rocha...
TRANSCRIPT
MobiCS: Um Simulador de MobiCS: Um Simulador de Protocolos para Computação Protocolos para Computação MóvelMóvel
Ricardo Couto Antunes da RochaRicardo Couto Antunes da [email protected]@ime.usp.br
DCC-IME-USPDCC-IME-USP22 de setembro de 200022 de setembro de 2000
2 / 49
RoteiroRoteiro 1ª Aula - 22/09
MotivaçõesModelo de SistemaArquitetura de MobiCSModos de SimulaçãoProgramação de
protocolos Objetivo: apresentar
motivações e principais conceitos relacionados
2ª Aula - 29/09Exemplo de ProtocoloImplementação do
ProtocoloSimulação
DeterminísticaSimulação Estocástica
Objetivo: tutorial do simulador, com exemplos práticos e interfaces
3 / 49
MotivaçãoMotivaçãoCaracterísticas de ambientes de
Computação Móvel (CM)Localização das estações móveis pode
variar com o tempo Topologia dinâmicaConsumo de potência é crítico
Desconexões voluntáriasMobilidade Variação na qualidade da
comunicação (sem fio)Baixa taxa de transmissão do meio sem fio
4 / 49
Motivação Motivação (cont)(cont)
Implementação de algoritmos distribuídos em CMDeve ser capaz de trabalhar com um
número variável de participantes na interação
Otimizar o uso do meio sem fioDesconexões voluntárias não devem
possuir semântica de falha
5 / 49
Motivação Motivação (cont)(cont)
Projeto SIDAMImplementaçã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 / 49
Motivação Motivação (cont)(cont)
Diferentes abordagens para simulaçãoSimuladores de rede[MobSim, SWiMNet, WiPPET]
focalizado nas características de redebem definido conjunto de protocolos a simularprojetado para simular redes e/ou ambientes
específicos.Simuladores de Protocolos [GloMoSim, ns]
focalizado no desenvolvimento de protocolosdefine uma interface de program. de protocoloscaracterísticas de rede podem ser adaptadas
7 / 49
Motivação Motivação (cont)(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 Limitações comuns para prototipagem e simulação de protocolos distribuídossimulação de protocolos distribuídos
10 / 49
Modelo de Sistema para CMModelo de Sistema para CMTermos
Máquina Fixa Rede FixaEstação móvel - Mh Estação base - MssCélulaCanal sem fioHandoff
11 / 49
Modelo de Sistema para CMModelo de Sistema para CM
handoffhandoff
12 / 49
Modelo de Sistema para CMModelo de Sistema para CMQuando 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 / 49
Protocolos DistribuídosProtocolos DistribuídosSão algoritmos distribuídos que
implementam comunicação e/ou coordenação entre vários hosts em CM
Elementos: estado, algoritmo, instânciaExemplos:
Comunicação multi-pontoExclusão mútuaCheckpointingEntrega ordenada de mensagens
14 / 49
Protocolos Distribuídos Protocolos Distribuídos (cont)(cont)
Protocolos distribuídos vs. Ponto-a-pontoAlgoritmos 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 / 49
Protocolos Distribuídos Protocolos Distribuídos (cont)(cont)
Duas abordagens para implementação de algoritmos distribuídos em CMMobilidade 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 / 49
Protocolos Distribuídos Protocolos Distribuídos (cont)(cont)
Enlace de Dados e FísicoEnlace de Dados e Físico
Transporte e RedeTransporte e Rede
ProtocolosProtocolosDistribuídosDistribuídos
AplicaçõesAplicações
17 / 49
Protocolos Distribuídos Protocolos Distribuídos (cont)(cont)
Problemas resolvidos pelas camadas inferioresMecanismo de gerência de fluxo de
pacotesCorreção de erros do canal sem fioMecanismo de escolha de MSS mais aprop.Gerência do canal sem fio (multiplexação,
alocação de frequência)
18 / 49
Protocolos Distribuídos Protocolos Distribuídos (cont)(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 / 49
MobiCSMobiCSMobiMobile CComputing SSimulator 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ívelTransparê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 / 49
MobiCSMobiCSMobiMobile CComputing SSimulator (cont)
Totalmente desenvolvido em Javauso das abstrações e bibliotecas de Java pelo
programador de protocolosfacilita a distribuição do simuladoruso de reflexão computacional permite a
criação de um modelo de programação mais elegante
21 / 49
Arquitetura de SoftwareArquitetura 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
ProtocolosDistribuídos
22 / 49
Arquitetura de Software Arquitetura de Software (cont)(cont)
Protocolos DistribuídosComposta pelos
protocolos distribuídos sendo simulados
Programador define tratadores de eventos recebidos de outras camadas
Máquina de Simulação
Elementos de Rede
ProtocolosDistribuídos
Aplicação
23 / 49
Arquitetura de Software Arquitetura de Software (cont)(cont)
Elementos de RedeImplementa 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
ProtocolosDistribuídos
Aplicação
24 / 49
Arquitetura de Software Arquitetura de Software (cont)(cont)
Máquina de SimulaçãoImplementa os
modos de simulação determinístico e estocástico
Garante o processamento causal dos eventos
Máquina de Simulação
Elementos de Rede
ProtocolosDistribuídos
Aplicação
25 / 49
Arquitetura de Software Arquitetura de Software (cont)(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
MsgSendSetTimer
TimerMsgArrivedMoveToConnectivity
26 / 49
Modelo de ProgramaçãoModelo 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 comportamentosComunicação por canais sem fio / “com fio” Componentes dinâmicas e estáticas
ProtocoloWired Wireless Handoff
27 / 49
Modelo de Programação Modelo de Programação (cont)(cont)
Protocolo 1µProt11 µProt12 µProt13
Protocolo 2µProt21 µProt22 µProt23
e1 e3 e5e2 e4
Estado compartilhadoEstado compartilhadoMicro-protocolosMicro-protocolos
MensagemMensagem
InterfaceInterface
EncapsulamentoEncapsulamento
28 / 49
Modelo de Programação Modelo de Programação (cont)(cont)
Componentes de um protocoloEstadoMicro-protocolosMensagemInterfaces de µProtAlgoritmosEncapsulamento
Modelo de programação JavaAtributosConjunto de
métodosObjeto MessageInterfacesCorpo de métodosObjeto
29 / 49
Modelo de Programação Modelo de Programação (cont)(cont)
Etapas de implementação de um protocoloDefinir todas as mensagens trocadas entre
elementos e seus respectivos micro-protocolosDeclarar cada uma das mensagens na forma de
um sub-classe de Message.Declarar as interfaces dos micro-protocolosDeclarar uma sub-classe de Protocol que
implementa todas as interfaces dos micro-protocolos
Implementar os métodos
30 / 49
Modelo de ProgramaçãoModelo de ProgramaçãoEx: Declaração de MensagemEx: Declaração de Mensagem
Mensagem UpdateLoc
Implementa a interf. HandoffMessage
Atributos: mh e newMss
Construtor informa o protocolo da mensag.
31 / 49
Modelo de ProgramaçãoModelo de ProgramaçãoEx: Declaração de ProtocoloEx: 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 / 49
Simulação DeterminísticaSimulação Determinística ObjetivoObjetivo:
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 / 49
Simulação Determinística Simulação Determinística (cont)(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 / 49
Simulação Determinística Simulação Determinística (cont)(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 / 49
Simulação Determinística Simulação Determinística (cont)(cont)
server
Home agent
MSSo
MSSn
mh
req
req
res
res
res
trocas de mensagens do IP Móvel
eventosindependentes
36 / 49
Simulação Determinística Simulação Determinística (cont)(cont)
Não há noção de tempo desempenho dos elementos de rede é infinito. Justificativa:Tempo de execução dos protocolos é
indeterminadoFacilidade na programação dos scripts
Para definir ordenação entre os eventos, utiliza-se pontos de sincronização no script.Globais eventos de diferentes elementosLocais eventos de um mesmo elemento
37 / 49
Simulação Determinística Simulação Determinística (cont)(cont)
Dois comandos de sincronizaçãonext() - 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 localBloqueia 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 / 49
Simulação Determinística Simulação Determinística (cont)(cont)
server
Home agent
MSSo
MSSn
mh
req
req
res
res
res
C
Script{ha,MSSo,MSSn}.acceptOn
()mh.send(new Req());mh.moveTo(MSSn);next(); // corte Cserver.accept(Req);mh.accept(Res);
39 / 49
Simulação Determinística Simulação Determinística (cont)(cont)
server
Home agent
MSSo
MSSn
mh
Script{ha,MSSo,MSSn}.acceptOn
()mh.send(new Req());mh.moveTo(MSSn);next(); // corte Cserver.accept(Req);mh.accept(Res);req
req
res
res
res
40 / 49
Simulação EstocásticaSimulação EstocásticaPermite a avaliação do desempenho de
protocolos pela realização de testes exaustivos
Usuário defineModelo de mobilidadePadrão de comportamento dos elementos
Utiliza algoritmo conservador de simulação paralela baseado em janela de tempo.
41 / 49
Simulação Estocástica Simulação Estocástica (cont)(cont)
Modelo de MobilidadeModelo de Mobilidade
Modelo de SimulaçãoAtividade e Atração
Atividade: prob. de Mh estar conectado à redeAtração: prob. de Mhs estarem na região de uma
célulaMobilidade
Probabilidade do Mh migrar para outra célulaVizinhança entre célulasQualidade da comunicação sem fioPadrão de requisições
42 / 49
Simulação Estocástica Simulação Estocástica (cont)(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çõesPadrões de comportamento
No MobiCS, o modelo de mobilidade poderá ser programável.
43 / 49
Uso do SimuladorUso do SimuladorImplementação do protocolo estender
classes básicas Protocol e MessageCriaçã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 / 49
Outros modos de simulaçãoOutros modos de simulaçãoEmulação de ambiente de computação
móveluso no protótipo SIDAMinterface de emulaçãoescalonador de tempo-real, dependendo da
utilizaçãoSimulador de “comportamento” útil
para visualizações; não há tempo simulado.
45 / 49
ConclusõesConclusõesMobiCS ambiente integrado para
desenvolvimento, teste e avaliação de desempenho
Contribuiçõesarquitetura de software flexível e com
transparência de simulação para protocolosmodelo de programação de protocolos
simples e flexível prototipagemmodo de simulação determinístico
46 / 49
Conclusões Conclusões (cont)(cont)
Uso do modo de simulação determinístico no teste de corretude de protocolosflexível aplicável a qualquer classe de
protocolonão exige a especificação formal do protocoloútil na depuração de protocolostestes exaustivos exigem o uso de
ferramentas de geração de casos de teste
47 / 49
Conclusões Conclusões (cont)(cont)
Estágio atualMáquina determinística implementadaUm protocolo SIDAM prototipado e
testadoMáquina estocástica em implementação
(previsão da 1a versão: 5/out).1a. Versão da documentação moldes
de tutorial
48 / 49
Conclusões Conclusões (cont)(cont)
Interação durante a disciplina MAC 5743Home page do MobiCS:
http://www.ime.usp.br/~rcarocha/mobicsartigos, documentação, fontes, links
relacionados, apresentações (incluindo esta),...Lista de discussão: inscrição por e-mail
para [email protected]ção
49 / 49
ReferênciasReferê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]”