simulação flexível de protocolos distribuídos para computação móvel ricardo couto a. da rocha...
Post on 17-Apr-2015
107 Views
Preview:
TRANSCRIPT
Simulação Flexível de Simulação Flexível de Protocolos Distribuídos para Protocolos Distribuídos para Computação MóvelComputação Móvel
Ricardo Couto A. da RochaRicardo Couto A. da Rocha(*)(*)
rcarocha@ime.usp.br rcarocha@ime.usp.br
rcarocha@altavista.comrcarocha@altavista.com
DCC-IME-USPDCC-IME-USPOrientador: Markus EndlerOrientador: Markus Endler
(*) Atualmente no Centro de Pesquisas da Xerox (ES)(*) Atualmente no Centro de Pesquisas da Xerox (ES)
RoteiroRoteiro
MotivaçãoMotivação Modelo de SistemaModelo de Sistema Arquitetura de ReferênciaArquitetura de Referência O Simulador MobiCSO Simulador MobiCS ExemploExemplo ImplementaçãoImplementação AvaliaçãoAvaliação ConclusõesConclusões
Motivação Motivação
Características de ambientes de Características de ambientes de Computação Móvel (CM)Computação Móvel (CM)Localização das estações móveis pode Localização das estações móveis pode
variar com o tempo variar com o tempo Topologia dinâmicaTopologia dinâmicaConsumo de potência é crítico Consumo de potência é crítico
Desconexões voluntáriasDesconexões voluntáriasMobilidade Mobilidade Variação na qualidade da Variação na qualidade da
comunicação sem fiocomunicação sem fioBaixa taxa de transmissão do meio sem fioBaixa taxa de transmissão do meio sem fio
Motivação Motivação
Implem. de algoritmos distribuídos em CMImplem. de algoritmos distribuídos em CMDeve ser capaz de trabalhar com um número variável Deve ser capaz de trabalhar com um número variável
de participantes na interaçãode participantes na interaçãoOtimizar o uso do meio sem fioOtimizar o uso do meio sem fioDesconexões voluntárias não devem possuir Desconexões voluntárias não devem possuir
semântica de falhasemântica de falha Protocolos distribuídos vs. Ponto-a-pontoProtocolos distribuídos vs. Ponto-a-ponto
Algoritmos distribuídos possuem estado distribuídoAlgoritmos distribuídos possuem estado distribuído a desconexão pode causar perda parcial do estadoa desconexão pode causar perda parcial do estado
Alta dependência da mobilidadeAlta dependência da mobilidade corretude e corretude e desempenhodesempenho
ConclusãoConclusão: Avaliação da corretude é mais complexa: Avaliação da corretude é mais complexa
MotivaçãoMotivação
Projeto SIDAMProjeto SIDAMDesenvolvimento de protocolos para CM Desenvolvimento de protocolos para CM multicast multicast
atômico, entrega confiável de respostas. atômico, entrega confiável de respostas. Validação e análise dos protocolos por simulação.Validação e análise dos protocolos por simulação.
Requisitos para simulação de protocolos em CMRequisitos para simulação de protocolos em CMAbstrações para programação de protocolos.Abstrações para programação de protocolos.Permitir o teste de protocolos.Permitir o teste de protocolos.Extensibilidade para permitir criação de elementos Extensibilidade para permitir criação de elementos
simulados com diferentes comportamentos.simulados com diferentes comportamentos.Programação de modelos de simulação, sobretudo para Programação de modelos de simulação, sobretudo para
modelos de mobilidademodelos de mobilidade.. Simuladores para CM Simuladores para CM nsns, , GloMoSimGloMoSim
Motivação Motivação
GloMoSimGloMoSimProtocolos são implementados em PARSEC, uma Protocolos são implementados em PARSEC, uma
linguagem para simulação paralela.linguagem para simulação paralela.Protocolos da camada TCP/IP e de baixo nível.Protocolos da camada TCP/IP e de baixo nível. Simulação paralela de alto desempenho Simulação paralela de alto desempenho
escalabilidadeescalabilidade Protocolos Protocolos entidades: módulos monolíticos. entidades: módulos monolíticos. Padrões de comportamento devem ser Padrões de comportamento devem ser
programados explicitamente programados explicitamente falta de falta de abstrações.abstrações.
Motivação Motivação
ns (network simulator)ns (network simulator)Modelo dividido: C++ (máquina de simulação) e Modelo dividido: C++ (máquina de simulação) e
OTcl (programação)OTcl (programação)Protocolos da camada de rede e transporteProtocolos da camada de rede e transporteFlexibilidade e extensibilidadeFlexibilidade e extensibilidade
Avaliação da corretude de protocolosAvaliação da corretude de protocolosBaseada em especificação formal [Verif, SPIN]Baseada em especificação formal [Verif, SPIN]Baseada em simulações exaustivas [STRESS no Baseada em simulações exaustivas [STRESS no nsns].].Nenhuma das abordagens é adequada à Nenhuma das abordagens é adequada à
prototipagem de protocolos.prototipagem de protocolos.
Motivação Motivação
Nível de detalhamento não adequado. Nível de detalhamento não adequado. PrototipagemPrototipagem abstrações de abstrações de
programação e transparência de simulação. programação e transparência de simulação. Extensibilidade nem sempre é possível. Extensibilidade nem sempre é possível. Falta de ferramentas integradas para teste Falta de ferramentas integradas para teste
e validação de protocolos distribuídos.e validação de protocolos distribuídos. Teste de diferentes modelos de mobilidade Teste de diferentes modelos de mobilidade
faltam abstrações de mobilidade de alto faltam abstrações de mobilidade de alto nível.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
MotivaçãoMotivação
Coyote - Ambiente para Desenvolv. de Coyote - Ambiente para Desenvolv. de ProtocolosProtocolosComposição horizontal de protocolos.Composição horizontal de protocolos.Micro-protocolos, que interagem por eventos.Micro-protocolos, que interagem por eventos.Aplicado em protocolos para CM.Aplicado em protocolos para CM.Conceito de micro-protocolos foi adotado no Conceito de micro-protocolos foi adotado no
trabalho.trabalho. ObjetivosObjetivosAmbiente integrado para prototipagem, teste e Ambiente integrado para prototipagem, teste e
avaliação de desempenho de algoritmos avaliação de desempenho de algoritmos distribuídos.distribuídos.
Transparência de simulação e abstrações de Transparência de simulação e abstrações de programação.programação.
Modelos de simulação programáveis.Modelos de simulação programáveis.
ObjetivosObjetivosAmbiente integrado para prototipagem, teste e Ambiente integrado para prototipagem, teste e
avaliação de desempenho de algoritmos avaliação de desempenho de algoritmos distribuídos.distribuídos.
Transparência de simulação e abstrações de Transparência de simulação e abstrações de programação.programação.
Modelos de simulação programáveis.Modelos de simulação programáveis.
Modelo de SistemaModelo de Sistema
Modelo de SistemaModelo de SistemaProtocolos Distribuídos Protocolos Distribuídos
São algoritmos distribuídos que São algoritmos distribuídos que implementam comunicação e/ou implementam comunicação e/ou coordenação entre vários hosts em CMcoordenação entre vários hosts em CM
Exemplos:Exemplos:Difusão de mensagens (multicast)Difusão de mensagens (multicast)Exclusão mútuaExclusão mútuaCheckpointingCheckpointingEntrega ordenada de mensagensEntrega ordenada de mensagens
Algoritmos implementados sob o Algoritmos implementados sob o modelo modelo indiretoindireto conscientes da mobilidade conscientes da mobilidade
Modelo de SistemaModelo de SistemaProtocolos Distribuídos Protocolos Distribuídos
Enlace de Dados e FísicoEnlace de Dados e Físico
Transporte e RedeTransporte e Rede
ProtocolosProtocolosDistribuídosDistribuídos
AplicaçõesAplicações
Modelo de SistemaModelo de SistemaProtocolos DistribuídosProtocolos Distribuídos
Abstração básica de interação entre Abstração básica de interação entre protocolos/máquinas protocolos/máquinas mensagemmensagem
Mensagem é entregue se não há migração Mensagem é entregue se não há migração intercelular do MH durante envio. intercelular do MH durante envio. envio é envio é confiável, mas MHs nem sempre estão confiável, mas MHs nem sempre estão acessíveis. acessíveis.
Envio de mensagens na rede fixa é confiávelEnvio de mensagens na rede fixa é confiável O canal sem fio é caracterizado pela taxa O canal sem fio é caracterizado pela taxa
efetiva de envio de dados.efetiva de envio de dados. Hand-Off é iniciado pelo MH revelando ao novo Hand-Off é iniciado pelo MH revelando ao novo
MSS a sua identidade e o MSS anteriorMSS a sua identidade e o MSS anterior
Arquitetura de Referência Arquitetura de Referência para Simulaçãopara Simulação
Arquitetura de ReferênciaArquitetura de Referência: : Arquitetura generalizada que define uma infra-estrutura e Arquitetura generalizada que define uma infra-estrutura e
interfaces comuns para sistema em um mesmo domínio de interfaces comuns para sistema em um mesmo domínio de aplicação.aplicação.
Requisitos, conceitos, abstrações e uma Requisitos, conceitos, abstrações e uma arquitetura de software.arquitetura de software.
Sugere:Sugere: Modo de simulação determinísticoModo de simulação determinístico Modelo de programação baseado em micro-Modelo de programação baseado em micro-
protocolosprotocolosAbstrações para programação de modelos de Abstrações para programação de modelos de
simulação.simulação.
Arquitetura de Referência para Arquitetura de Referência para SimulaçãoSimulação
Camada de elementos de rede Camada de elementos de rede implementa funcionalidade do implementa funcionalidade do hardware e software de baixo hardware e software de baixo nível (SO, protocolos).nível (SO, protocolos).
Processos concorrentes Processos concorrentes implementam cada elemento implementam cada elemento de rede.de rede.
A máquina de simulação A máquina de simulação determina a ordem de determina a ordem de processamento de eventos.processamento de eventos.
A máquina de simulação pode A máquina de simulação pode implementar diferentes modos implementar diferentes modos de simulação. de simulação.
Máquina de SimulaçãoMáquina de Simulação
Elementos de RedeElementos de Rede
AplicaçãoAplicação
ProtocolosDiProtocolosDistribuídosstribuídos
Arquitetura de Referência para Arquitetura de Referência para SimulaçãoSimulação
Interface de eventos bem definida entre Interface de eventos bem definida entre camadas de simulação e de elementos camadas de simulação e de elementos transparência de simulação transparência de simulação
Elementos de RedeElementos de Rede
Máquina de SimulaçãoMáquina de Simulação
MsgArrivedSetTimer
TimerMsgArrivedMoveToConnectivity
MobiCSMobiCSMobiMobile CComputing SSimulator
Biblioteca Java Biblioteca Java Rápida prototipagem de Rápida prototipagem de protocolos distribuídosprotocolos distribuídosModelo de programação de protocolos simples e Modelo de programação de protocolos simples e
flexívelflexívelAbstrações de programação de alto nívelAbstrações de programação de alto nívelTransparência total de simulaçãoTransparência total de simulação
Possibilita abstrações de mobilidade Possibilita abstrações de mobilidade usuário usuário pode criar seu próprio modelo de mobilidadepode criar seu próprio modelo de mobilidade
Abordagem para teste de corretude Abordagem para teste de corretude simulações determinísticassimulações determinísticas
Permite também simulação estocásticaPermite também simulação estocástica
Uso do MobiCSUso do MobiCS
Usuário implementa classes que definem os protocolos Usuário implementa classes que definem os protocolos a serem simulados, o ambiente de rede e o modelo de a serem simulados, o ambiente de rede e o modelo de simulação desejado.simulação desejado.
Pacote MobiCS
Protocolos Modelos de Simulação
Simulação
estende
estende
estende
instanciainstancia
Uso do MobiCSUso do MobiCS
MobiCS é composto de 2 pacotes:MobiCS é composto de 2 pacotes:
mobics.ppi mobics.ppi programação de protocolos programação de protocolos mobics.ppi.protocolmobics.ppi.protocol mobics.ppi.messagemobics.ppi.message
mobics.simulation mobics.simulation programação do modelo programação do modelo de simulação e configuração do ambiente de rede de simulação e configuração do ambiente de rede
mobics.simulation.DetermSimulationmobics.simulation.DetermSimulation mobics.simulation.StochSimulationmobics.simulation.StochSimulation
MobiCSMobiCSModelo de Programação Modelo de Programação
Modelo de programação OO e modularModelo de programação OO e modular Protocolos são compostos de Protocolos são compostos de micro-protocolosmicro-protocolos
módulos com funcionalidade bem definida módulos com funcionalidade bem definida Arranjo típicoArranjo típico
Micro-protocolos se comunicam por Micro-protocolos se comunicam por eventoseventos mensagens, timers mensagens, timers
Protocolo
WiredWired WirelessWireless HandoffHandoff
MobiCSMobiCSModelo de ProgramaçãoModelo de Programação
Micro-protocolos são interfaces Java que Micro-protocolos são interfaces Java que declaram um conjunto de tratadores para declaram um conjunto de tratadores para eventos eventos
Os tratadores são métodos com assinatura Os tratadores são métodos com assinatura whenwhen<Event><Event>(EventType e)(EventType e)
Tratadores de eventos são atômicos.Tratadores de eventos são atômicos. Modelo de execução é seqüencial.Modelo de execução é seqüencial. Abstrações para envio confiável e não-confiável Abstrações para envio confiável e não-confiável
de mensagens: de mensagens: sendsend e e rsendrsendtry { rSend(hostDest, message);}catch (MsgNotAcknow notAck) { // host not found}
try { rSend(hostDest, message);}catch (MsgNotAcknow notAck) { // host not found}
MobiCSMobiCSSimulação Determinística Simulação Determinística
Abordagem para teste e avaliação da Abordagem para teste e avaliação da corretude de protocolos.corretude de protocolos.
O simulador reproduz cenários específicos O simulador reproduz cenários específicos (e determinísticos) descritos em um (e determinísticos) descritos em um scriptscript..
É similar a uma simulação É similar a uma simulação trace-driventrace-driven, só , só que é o próprio usuário quem cria os que é o próprio usuário quem cria os traços de simulação.traços de simulação.
Um Um scriptscript pode conter: envio de pode conter: envio de requisiçõesrequisições, , migraçõesmigrações, alterações na , alterações na disponibilidadedisponibilidade de um Mh, etc. de um Mh, etc.
MobiCSMobiCSSimulação Determinística Simulação Determinística
Exemplo:Exemplo:
O comportamento dos protocolos é definido O comportamento dos protocolos é definido apenas pela sua própria implementação. apenas pela sua própria implementação.
O O scriptscript deve descrever situações críticas deve descrever situações críticas nas quais o protocolo precisa ser testado.nas quais o protocolo precisa ser testado.
Mh1.moveTo(cell1);Mh1.send(Req);Mss3.send(server, new Ack(req));Mh2.unavailable();
Mh1.moveTo(cell1);Mh1.send(Req);Mss3.send(server, new Ack(req));Mh2.unavailable();
MobiCSMobiCSSimulação Determinística Simulação Determinística
Não há noção de tempo Não há noção de tempo desempenho desempenho dos elementos de rede é infinito. dos elementos de rede é infinito.
Uma simulação ocorre em Uma simulação ocorre em passospassos. . Para definir ordenação entre os eventos, Para definir ordenação entre os eventos,
utiliza-se pontos de sincronização no utiliza-se pontos de sincronização no script.script.GlobaisGlobais eventos de diferentes eventos de diferentes
elementos (elementos (end_stepend_step))LocaisLocais eventos de um mesmo eventos de um mesmo
elemento (elemento (acceptTurnOnacceptTurnOn e e acceptaccept))
MobiCSMobiCSSimulação Determinística Simulação Determinística
server
Home agent
MSSo
MSSn
mh
req
req
res
res
res
C
ScriptScript{ha,MSSo,MSSn}.acceptO{ha,MSSo,MSSn}.acceptO
n()n()
mh.send(new Req());mh.send(new Req());
mh.moveTo(MSSn);mh.moveTo(MSSn);
end_step(); end_step(); // corte C// corte C
server.accept(Req);server.accept(Req);
mh.accept(Res);mh.accept(Res);
ScriptScript{ha,MSSo,MSSn}.acceptO{ha,MSSo,MSSn}.acceptO
n()n()
mh.send(new Req());mh.send(new Req());
mh.moveTo(MSSn);mh.moveTo(MSSn);
end_step(); end_step(); // corte C// corte C
server.accept(Req);server.accept(Req);
mh.accept(Res);mh.accept(Res);
eventosindependentes
MobiCSMobiCSSimulação Determinística Simulação Determinística
Saída do modo determinísticoSaída do modo determinísticoMensagens exibidas no corpo dos Mensagens exibidas no corpo dos
tratadores de eventostratadores de eventosLogLog de eventos exibidos pelo MobiCS e de eventos exibidos pelo MobiCS e
configurado pelo usuário.configurado pelo usuário.Exceções no script determinístico e nos Exceções no script determinístico e nos
protocolos (erros em tempo de protocolos (erros em tempo de execução e violações a assertivas).execução e violações a assertivas).
MobiCSMobiCSSimulação Estocástica Simulação Estocástica
Permite a avaliação do desempenho de Permite a avaliação do desempenho de protocolos pela realização de testes exaustivos.protocolos pela realização de testes exaustivos.
Usuário defineUsuário definePadrão de comportamento dos elementos Padrão de comportamento dos elementos Modelo de mobilidadeModelo de mobilidade
O modelo de simulação pode ser O modelo de simulação pode ser programadoprogramado (extensão de classes) e (extensão de classes) econfiguradoconfigurado pelo usuário (instanciação de objetos). pelo usuário (instanciação de objetos).
Deve ser atribuído a cada elemento simulado Deve ser atribuído a cada elemento simulado um objeto que define seu comportamento na um objeto que define seu comportamento na simulação a partir de um modelo de simulação.simulação a partir de um modelo de simulação.
Implementação do MobiCSImplementação do MobiCS
CaracterísticasCaracterísticasBiblioteca escrita em JavaBiblioteca escrita em Java120 classes, 10.000 linhas de código120 classes, 10.000 linhas de código
Abordagem de Implementação Abordagem de Implementação Implementa um Implementa um núcleo de simulaçãonúcleo de simulaçãoUso intensivo de objetosUso intensivo de objetosPermite a implementação e incorporação Permite a implementação e incorporação
de outros modos de simulação de outros modos de simulação ArcabouçoArcabouçoMobiCSMobiCS
Interfaces com UsuárioInterfaces com Usuário
Modos de SimulaçãoModos de Simulação
Nova Ferramenta de SimulaçãoNova Ferramenta de Simulação
Implementação do MobiCSImplementação do MobiCS
Arcabouço para Implementação de Modos Arcabouço para Implementação de Modos de Simulação, provê uniformidade:de Simulação, provê uniformidade:Incorporação de máquinas de simulaçãoIncorporação de máquinas de simulaçãoUtilização das interfaces pelo usuárioUtilização das interfaces pelo usuário
Define Define Encapsulamento da nova máquina de simulação Encapsulamento da nova máquina de simulação
((AbstractSimulatedElementAbstractSimulatedElement).).Delegação da criação dos objetos específicos de Delegação da criação dos objetos específicos de
simulação (simulação (SimulatorSimulator). ). Uso das interfaces do novo modo de simulação Uso das interfaces do novo modo de simulação
((SimulationSimulation).).
top related