29
Simulação Flexível de Simulação Flexível de Protocolos Distribuídos Protocolos Distribuídos para para Computação Móvel Computação Móvel Ricardo Couto A. da Rocha Ricardo Couto A. da Rocha (*) (*) [email protected] [email protected] [email protected] [email protected] DCC-IME-USP DCC-IME-USP Orientador: Markus Endler Orientador: Markus Endler (*) Atualmente no Centro de Pesquisas da (*) Atualmente no Centro de Pesquisas da Xerox (ES) Xerox (ES)

Simulação Flexível de Protocolos Distribuídos para Computação Móvel Ricardo Couto A. da Rocha (*) [email protected] [email protected] [email protected]

Embed Size (px)

Citation preview

Page 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 rcarocha@altavista.comDCC-IME-USP

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(*)(*)

[email protected] [email protected]

[email protected]@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)

Page 2: 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 rcarocha@altavista.comDCC-IME-USP

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

Page 3: 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 rcarocha@altavista.comDCC-IME-USP

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

Page 4: 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 rcarocha@altavista.comDCC-IME-USP

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

Page 5: 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 rcarocha@altavista.comDCC-IME-USP

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

Page 6: 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 rcarocha@altavista.comDCC-IME-USP

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.

Page 7: 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 rcarocha@altavista.comDCC-IME-USP

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.

Page 8: 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 rcarocha@altavista.comDCC-IME-USP

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

Page 9: 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 rcarocha@altavista.comDCC-IME-USP

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.

Page 10: 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 rcarocha@altavista.comDCC-IME-USP

Modelo de SistemaModelo de Sistema

Page 11: 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 rcarocha@altavista.comDCC-IME-USP

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

Page 12: 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 rcarocha@altavista.comDCC-IME-USP

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

Page 13: 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 rcarocha@altavista.comDCC-IME-USP

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

Page 14: 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 rcarocha@altavista.comDCC-IME-USP

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.

Page 15: 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 rcarocha@altavista.comDCC-IME-USP

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

Page 16: 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 rcarocha@altavista.comDCC-IME-USP

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

Page 17: 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 rcarocha@altavista.comDCC-IME-USP

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

Page 18: 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 rcarocha@altavista.comDCC-IME-USP

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

Page 19: 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 rcarocha@altavista.comDCC-IME-USP

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

Page 20: 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 rcarocha@altavista.comDCC-IME-USP

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

Page 21: 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 rcarocha@altavista.comDCC-IME-USP

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}

Page 22: 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 rcarocha@altavista.comDCC-IME-USP

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.

Page 23: 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 rcarocha@altavista.comDCC-IME-USP

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();

Page 24: 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 rcarocha@altavista.comDCC-IME-USP

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

Page 25: 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 rcarocha@altavista.comDCC-IME-USP

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

Page 26: 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 rcarocha@altavista.comDCC-IME-USP

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

Page 27: 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 rcarocha@altavista.comDCC-IME-USP

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.

Page 28: 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 rcarocha@altavista.comDCC-IME-USP

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

Page 29: 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 rcarocha@altavista.comDCC-IME-USP

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