MobiCS: Tutorial Introdução - endler/MobiCS/mobics-tutorial1.pdf · semântica de falha ......

20
1 MobiCS MobiCS: Tutorial Tutorial Introdução Introdução Ricardo Couto A. da Rocha Ricardo Couto A. da Rocha (*) (*) ricardo ricardo.rocha@ .rocha@bra bra.xerox.com .xerox.com rcarocha rcarocha@altavista altavista.com .com Orientador: Orientador: Markus Endler Markus Endler (*) Atualmente no Centro de Pesquisas da Xerox (ES) (*) Atualmente no Centro de Pesquisas da Xerox (ES) Roteiro Roteiro n Motivação Motivação n Modelo de Sistema Modelo de Sistema n Arquitetura de Referência Arquitetura de Referência n O Simulador O Simulador MobiCS MobiCS n Exemplo Exemplo n Implementação Implementação

Transcript of MobiCS: Tutorial Introdução - endler/MobiCS/mobics-tutorial1.pdf · semântica de falha ......

1

MobiCSMobiCS:: Tut or ia l Tut or ia l In t roduç ãoInt roduç ão

Ric ardo Cout o A. da Roc haRic ardo Cout o A. da Roc ha (*)(*)

[email protected]@brabra.xerox.com .xerox.com rcarocharcarocha@@altavistaaltavista.com.com

Orient ador :Or ient ador : Mark us EndlerMark us Endler

(*) Atualmente no Centro de Pesquisas da Xerox (ES)(*) Atualmente no Centro de Pesquisas da Xerox (ES)

Rot ei roRot e i ro

nn MotivaçãoMotivaçãonn Modelo de SistemaModelo de Sistemann Arquitetura de ReferênciaArquitetura de Referênciann O SimuladorO Simulador MobiCSMobiCSnn ExemploExemplonn ImplementaçãoImplementação

2

Mot ivaç ãoMot ivaç ão 44

nnCaracterísticasCaracterísticas de de ambientesambientes de de Computação MóvelComputação Móvel (CM)(CM)uuLocalizaLocalizaçãçãoo dasdas estaestaçõções mes móóveis pode variarveis pode variar

com o tempo com o tempo ÍÍ Topologia dinâmicaTopologia dinâmicauuConsumoConsumo de de potênciapotência é é críticocrítico ÍÍ

Desconexões voluntáriasDesconexões voluntáriasuuMobilidadeMobilidade ÍÍ Variação na qualidade da Variação na qualidade da

comunicação sem fiocomunicação sem fiouuBaixa taxaBaixa taxa de de transmissãotransmissão do do meio sem fiomeio sem fio

Mot ivaç ãoMot ivaç ão 44

nn ImplemImplem. de . de algoritmos distribuídosalgoritmos distribuídos emem CMCMuuDevemDevem serser capazcapaz de de trabalhartrabalhar com um com um número número

variávelvariável de de participantes na interaçãoparticipantes na interaçãouuOtimizarOtimizar o o usouso do do meio sem fiomeio sem fiouuDesconexões voluntárias não devem possuir Desconexões voluntárias não devem possuir

semânticasemântica de de falhafalha

nn Protocolos distribuídosProtocolos distribuídos vs. vs. PontoPonto--aa--pontopontouuAlgoritmos distribuídos possuem estado distribuídoAlgoritmos distribuídos possuem estado distribuídoÍÍ a a desconexdesconexãão pode causar perda parcialo pode causar perda parcial do do estadoestado

uuAlta Alta dependência da mobilidadedependência da mobilidade ÍÍ corretudecorretude e e desempenhodesempenho

uu&RQFOXV&RQFOXVmmRR: : AvaliaAvaliaçãção da corretudeo da corretude éé mais complexamais complexa

3

Mot ivaç ãoMot ivaç ão 44

nn ProjetoProjeto SIDAMSIDAMuuDesenvolvimentoDesenvolvimento de de protocolos paraprotocolos para CM CM ÍÍ multicast multicast

atatôômicomico, , entrega confientrega confiáávelvel de de respostasrespostas. . uuValidaValidaçãçãoo e e ananááliselise dos dos protocolos por simulaprotocolos por simulaçãçãoo..

nn Requisitos para simulaRequisitos para simulaçãção de protocolos em CMo de protocolos em CMuuAbstraAbstraçõções para programaes para programaçãção de protocolos.o de protocolos.uuPermitir o teste de protocolos.Permitir o teste de protocolos.uuExtensibilidade para permitir criaExtensibilidade para permitir criaçãção de elementos o de elementos

simulados com diferentes comportamentos.simulados com diferentes comportamentos.uuProgramaProgramaçãção de modelos de simulao de modelos de simulaçãção, sobretudo o, sobretudo

para para PRGHORV�GH�PRELOLGDGHPRGHORV�GH�PRELOLGDGH..

nn Simuladores para CM Simuladores para CM ÍÍ QVQV,, *OR0R6LP*OR0R6LP

Mot ivaç ãoMot ivaç ão 44

nnGloMoSimGloMoSimuuProtocolos são implementadosProtocolos são implementados emem PARSEC, PARSEC, uma uma

linguagem para simulação paralelalinguagem para simulação paralela..uuProtocolos da camadaProtocolos da camada TCP/IP e de TCP/IP e de baixo nívelbaixo nível..JJ Simulação paralelaSimulação paralela de alto de alto desempenhodesempenho ÍÍ

escalabilidadeescalabilidadeLL ProtocolosProtocolos ÍÍ eentidadesntidades: : módulos monolíticosmódulos monolíticos..LL PadrõesPadrões de de comportamento devemcomportamento devem serser programados programados

explicitamenteexplicitamente ÍÍ faltafalta de de abstraabstraçõçõeses..

4

Mot ivaç ãoMot ivaç ão 44

nn ns (network simulator)ns (network simulator)uuModelo divididoModelo dividido: C+ + (: C+ + (máquinamáquina de de simulaçãosimulação) e ) e OTclOTcl

((programaçãoprogramação))uuProtocolos da camadaProtocolos da camada de de rederede e e transportetransporteJJFlexibilidadeFlexibilidade e e extensibilidadeextensibilidade

nn Avaliação daAvaliação da corretudecorretude de protocolosde protocolosuuBaseada em especificação formal [Baseada em especificação formal [ VerifVerif, SPIN], SPIN]uuBaseada em simulações exaustivas [STRESS noBaseada em simulações exaustivas [STRESS no QVQV] .] .uuNenhuma das abordagens é adequada àNenhuma das abordagens é adequada à

prototipagemprototipagem de protocolos.de protocolos.

Mot ivaç ãoMot ivaç ão 44

nn NívelNível de de detalhamento não adequadodetalhamento não adequado. . nn 3URWRWLSDJHP3URWRWLSDJHP ÍÍ abstraabstraçõçõeses de de programaprogramaçãçãoo

e e transpartransparêênciancia de de simulasimulaçãçãoo..nn Extensibilidade nem sempreExtensibilidade nem sempre é é possívelpossível. . nn FaltaFalta de de ferramentas integradas para teste ferramentas integradas para teste e e

validaçãovalidação de de protocolos distribuídosprotocolos distribuídos..nn TesteTeste de de diferentes modelosdiferentes modelos de de mobilidademobilidade ÍÍ

faltam abstrafaltam abstraçõçõeses de de mobilidademobilidade de alto de alto nníívelvel..

/LPLWDo}HV�FRPXQV�SDUD�SURWRWLSDJHP/LPLWDo}HV�FRPXQV�SDUD�SURWRWLSDJHP H�H�VLPXODomRVLPXODomR GH�GH�SURWRFRORV�GLVWULEXtGRVSURWRFRORV�GLVWULEXtGRV

5

Mot ivaç ãoMot ivaç ão

nn CoyoteCoyote -- Ambiente paraAmbiente para DesenvolvDesenvolv. de Protocolos. de ProtocolosuuComposiComposiçãção horizontal de protocolos.o horizontal de protocolos.uuMicroMicro--protocolos, que interagemprotocolos, que interagem porpor eventos.eventos.uuAplicado em protocolos para CM.Aplicado em protocolos para CM.uuConceito de microConceito de micro--protocolos foi adotado no trabalho.protocolos foi adotado no trabalho.

n ObjetivosuAmbiente integrado para prototipagem, teste e

avaliação de desempenho de algoritmos distribuídos.uTransparência de simulação e abstrações de

programação.uModelos de simulação programáveis.

nn ObjetivosObjetivosuuAmbiente integrado paraAmbiente integrado para prototipagemprototipagem, teste e , teste e

avaliação de desempenho de algoritmos distribuídos.avaliação de desempenho de algoritmos distribuídos.uuTransparência de simulação e abstrações de Transparência de simulação e abstrações de

programação.programação.uuModelos de simulação programáveis.Modelos de simulação programáveis.

Modelo de Sis t em aModelo de Sis t em a 44

6

ModeloModelo de de Sis t em aSist em aProt oc olos Dis t r ibuídosProt oc olos Dis t r ibuídos 44

nn São algoritmos distribuídos que implementam São algoritmos distribuídos que implementam comunicaçãocomunicação e/e/ ou coordenação entre váriosou coordenação entre várioshostshosts emem CMCM

nn ExemplosExemplos::uuDifusãoDifusão de de mensagensmensagens (multicast)(multicast)uuExclusão mútuaExclusão mútuauuCheckpointingCheckpointinguuEntrega ordenadaEntrega ordenada de de mensagensmensagens

nn Algoritmos implementadosAlgoritmos implementados no no ModeloModelo IndiretoIndiretouucomponentescomponentes wired/wirelesswired/wirelessuugerenciamento dagerenciamento da mobilidademobilidade ((componentecomponente handoff)handoff)

ModeloModelo de de Sis t em aSist em aProt oc olos Dis t r ibuídosProt oc olos Dis t r ibuídos 44

Enlac e de Dados e Enlac e de Dados e Fís ic oFís ic o

Transport eTransport e e e RedeRede

Prot oc o losProt oc o losDist r ibuídosDist r ibuídos

Apl ic aç õesApl ic aç ões

7

ModeloModelo de de Sis t em aSist em aProt oc olos Dis t r ibuídosProt oc olos Dis t r ibuídos

nn Abstração básicaAbstração básica de de interação entre interação entre protocolosprotocolos// máquinasmáquinas ÍÍ mensagemmensagem

nn MensagemMensagem é é entregueentregue se se não há migração não há migração intercelularintercelular do MH do MH durante enviodurante envio. . ÍÍ envio envio é é confiávelconfiável, , mas MHs nem sempre estão mas MHs nem sempre estão acessíveisacessíveis. .

nn Envio Envio de de mensagens na rede fixa mensagens na rede fixa é é confiávelconfiávelnn O canal O canal sem fio sem fio é é caracterizado pela taxa efetivacaracterizado pela taxa efetiva

de de envioenvio de dados.de dados.nn HandHand--Off é Off é iniciado pelo iniciado pelo MH MH revelando ao revelando ao novo novo

MSS a MSS a sua identidade sua identidade e o MSS anteriore o MSS anteriorgreet(greet(oldMSSoldMSS))

Arqui t e t ura de Referênc ia Arqui t e t ura de Referênc ia para Sim ulaç ãopara Sim ulaç ão 44

nn Arquitetura de ReferênciaArquitetura de Referência: : uuArquitetura generalizada que define uma infraArquitetura generalizada que define uma infra--estrutura e 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.

nn Requisitos, conceitos, abstrações e uma Requisitos, conceitos, abstrações e uma arquitetura de software.arquitetura de software.

nn Sugere:Sugere:uu Modo de simulaçãoModo de simulação determinísticodeterminísticouu Modelo de programação baseado em microModelo de programação baseado em micro--

protocolosprotocolosuuAbstrações para programação de modelos de Abstrações para programação de modelos de

simulação.simulação.

8

Arqui t e t ura de Referênc ia Arqui t e t ura de Referênc ia para Sim ulaç ãopara Sim ulaç ão 44

nn CamadaCamada de de elementoselementos de de rede rede implementa funcionalidadeimplementa funcionalidade do do hardware e software de hardware e software de baixobaixonníívelvel (SO, (SO, protocolosprotocolos).).

nn Processos concorrentes Processos concorrentes implementam cada elementoimplementam cada elementode de rederede..

nn A A máquinamáquina de de simulação simulação determinadetermina a a ordemordem de de processamentoprocessamento de de eventoseventos..

nn A A máquinamáquina de de simulação pode simulação pode implementar diferentes modosimplementar diferentes modosde de simulaçãosimulação. .

MáquinaMáquina de de Sim ulaç ãoSim ulaç ão

Elem ent osElem ent os de de RedeRede

Apl ic aç ãoApl ic aç ão

Prot oc o losProt oc o losDist r ibuídosDist r ibuídos

Arqui t e t ura de Referênc ia Arqui t e t ura de Referênc ia para Sim ulaç ãopara Sim ulaç ão

nn Interface de Interface de eventos bem definida entre eventos bem definida entre camadascamadas de de simulaçãosimulação e de e de elementoselementos ÍÍtranspartransparêênciancia de de simulasimulaçãçãoo

Elem ent osElem ent os de de RedeRede

MáquinaMáquina de de Sim ulaç ãoSim ulaç ão

Send()SetTimer()

TimerMsgArrivedMoveToConnectivity

9

MobiCSMobiCSMobiMobi le CCom put ing SSim ulat or 44

nn BibliotecaBiblioteca Java Java ÍÍ Rápida prototipagemRápida prototipagem de de protocolos distribuídosprotocolos distribuídosuuModeloModelo de de programaçãoprogramação de de protocolosprotocolos simples e simples e

flexívelflexíveluuAbstraçõesAbstrações de de programaçãoprogramação de alto de alto nívelníveluuTransparênciaTransparência total de total de simulaçãosimulação

nn Possibilita abstraçõesPossibilita abstrações de de mobilidademobilidade ÍÍ usuusuáário rio pode criar seu prpode criar seu próóprio modeloprio modelo de de mobilidademobilidade

nn Abordagem para testeAbordagem para teste de de corretudecorretude ÍÍsimulasimulaçõções determines determiníísticassticas

nn Permite também simulação estocásticaPermite também simulação estocástica

Uso Uso do do MobiCSMobiCS44

nn Usuário implementa Usuário implementa classes classes que definem os protocolos que definem os protocolos a a serem simuladosserem simulados, o , o ambiente ambiente de de rede rede e o e o modelo modelo de de simulação desejadosimulação desejado..

Pacote MobiCS

Protocolos Modelos de Simulação

Simulação

estende

estende

estende

instanciainstancia

10

Uso Uso do do MobiCSMobiCS44

MobiCS MobiCS é é composto composto de 2 de 2 pacotespacotes::

nn PRELFVPRELFV��SSL�SSL�ÍÍ programaprogramaçãção o de de protocolosprotocolosuu PRELFVPRELFV��SSLSSL�SURWRFRO�SURWRFROuu PRELFVPRELFV��SSLSSL�PHVVDJH�PHVVDJH

nn PRELFVPRELFV�VLPXODWLRQ��VLPXODWLRQ�ÍÍ programaprogramaçãçãoo do do modelo modelo de de simulasimulaçãção o e e configuraconfiguraçãção o do do ambiente ambiente de de rede rede

uu PRELFVPRELFV�VLPXODWLRQ��VLPXODWLRQ�'HWHUP6LPXODWLRQ'HWHUP6LPXODWLRQuu PRELFVPRELFV�VLPXODWLRQ��VLPXODWLRQ�6WRFK6LPXODWLRQ6WRFK6LPXODWLRQ

Uso Uso do do MobiCSMobiCSSequênc ia Sequênc ia de de PassosPassos 44

nn Sequência Sequência de de passos passos p/ p/ implementar implementar e e simularsimular::ååDeclarar Declarar as interfaces e as interfaces e programar programar o o protocolo protocolo

Í PRELFV�SSL�PHVVDJH & PRELFV�SSL�SURWRFRO��Escolher Escolher o o modo modo de de simulação simulação ((determdeterm./ ./ estocásticoestocástico))êêProgramar Programar um um modelo modelo de de simulação adequado ao simulação adequado ao

protocolo protocolo (script (script deterministico ou deterministico ou classes classes simulaçãosimulação))��EstenderEstender a a classe DetermSimulation classe DetermSimulation ((ou ou

StochSimulationStochSimulation) ) definindodefinindo o o ambienteambiente de de rede rede ((elementos simulados elementos simulados & & topologiatopologia, , outrosoutros conceitosconceitos))

�� Implementar Implementar um um programa programa Java Java que cria que cria e e inicia inicia um um objeto Simulação objeto Simulação e e chamar chamar o o método método Simulation.startSimulation.start

11

MobiCSMobiCSModeloModelo de de Program aç ãoProgram aç ão 44

nn ModeloModelo de de programaçãoprogramação OO e modularOO e modularnn Protocolos são compostosProtocolos são compostos de de micromicro--protocolosprotocolosÍÍ mmóódulosdulos com com funcionalidade bem definidafuncionalidade bem definida

nn Arranjo tArranjo tíípicopico

nn MicroMicro--protocolosprotocolos se se comunicam por comunicam por eventoseventos ÍÍmensagensmensagens, timers, timers

3URWRFROR:LUHG:LUHG :LUHOHVV:LUHOHVV +DQGRII+DQGRII

MobiCSMobiCSModelo de Program aç ãoModelo de Program aç ão 44

nn MicroMicro--protocolos são interfacesprotocolos são interfaces JavaJava que declaram um que declaram um conjunto de tratadores para eventos conjunto de tratadores para eventos

nn Os tratadores são métodos com assinaturaOs tratadores são métodos com assinaturaZKHQZKHQ��(YHQW(YHQW!!��(YHQW7\SH(YHQW7\SH H�H�

nn Tratadores de eventos são atômicos.Tratadores de eventos são atômicos.nn Modelo de execução é seqüencial.Modelo de execução é seqüencial.nn Abstrações para envio confiável e nãoAbstrações para envio confiável e não--confiável de confiável de

mensagens: mensagens: sendsend e e rsendrsend WU\ {rSend(hostDest, message);

}FDWFK (MsgNotAcknow notAck) {

/ / host not found}

WU\ {rSend(hostDest, message);

}FDWFK (MsgNotAcknow notAck) {

/ / host not found}

12

MobiCSMobiCSModeloModelo de de Program aç ãoProgram aç ão 44

nn EtapasEtapas de de implementaçãoimplementação de um de um protocoloprotocoloååDefinir todasDefinir todas as as mensagens trocadas entre elementosmensagens trocadas entre elementos

e e seus respectivosseus respectivos micromicro--protocolosprotocolos��Declarar cada umaDeclarar cada uma dasdas mensagens namensagens na forma de forma de uma uma

subclassesubclasse de de 0HVVDJH0HVVDJH..

êêDeclararDeclarar as interfaces dos microas interfaces dos micro--protocolosprotocolos��Declarar uma subclasseDeclarar uma subclasse de de 3URWRFRO3URWRFRO que que

implementa todasimplementa todas as interfaces dos microas interfaces dos micro--protocolosprotocolos�� Implementar os métodosImplementar os métodos

O O Pac ot e Pac ot e PRELFVPRELFV��SSLSSL�PHVVDJH�PHVVDJH 44nn Toda Toda mensagem mensagem é um é um objeto objeto de de uma subclasse uma subclasse dede

mobicsmobics..ppippi.message.Message.message.Message e e contém contém um um tipo tipo ((sua classesua classe) e um ) e um conteúdoconteúdo

nn ClasseClasse MessageMessage = = conjunto mínimo conjunto mínimo de de informações informações para processar uma mensagempara processar uma mensagem

nn AtributosAtributos::uu sendersender, , receiverreceiver, , responsibleresponsible ((protocolo ao protocolo ao

qual msg está associadaqual msg está associada))nn MétodosMétodos::

uuMessageMessage, , callHandlercallHandler, , cloneclone, , toStringtoString

nn callHandlercallHandler((ProtocoloProtocolo)) faz chamada ao método faz chamada ao método ProtocoloProtocolo..whenTipoMensagemwhenTipoMensagem

13

O O Pac ot e Pac ot e PRELFVPRELFV��SSLSSL�PHVVDJH�PHVVDJH 44

nn O O pacote declara pacote declara 4 interfaces (4 interfaces (queque definemdefinem o o tipotipo dadamensagemmensagem):):HandoffMessageHandoffMessage, , WiredMessageWiredMessage, , WirelessMessage WirelessMessage e e AppMessageAppMessage

nn Toda Toda mensagem deve implementar uma destas mensagem deve implementar uma destas interfaces!interfaces!

nn Mensagem Mensagem é um é um objeto imutável objeto imutável ((métodos públicos não métodos públicos não podem alterar estadopodem alterar estado))

nn Mensagem padrão Mensagem padrão greetgreet, , enviada por enviada por um MH um MH para para iniciar iniciar um Handum Hand--OffOff

O O Pac ot e Pac ot e PRELFVPRELFV��SSLSSL�SURWRFRO�SURWRFRO 44

nn Novo Novo MicroprotocoloMicroprotocolo é é declaradodeclarado estendendoestendendo--se as se as interfaces interfaces WiredModuleWiredModule, , WirelessModuleWirelessModule, e , e HandoffModuleHandoffModule

nn DevemDevem serser declarados todos os tratadores para declarados todos os tratadores para as as mensagens que compôem mensagens que compôem o microo micro--protocoloprotocolo

nn DuasDuas subclasses de Protocol, subclasses de Protocol, MssProtocolMssProtocol e e MhProtocolMhProtocol possuempossuem umauma interface interface específicaespecífica parapara a a implementaçãoimplementação de de protocolosprotocolos em MHsem MHs e e MSSsMSSs

nn ExemploExemplo::public class public class MyMssProtocolMyMssProtocol extends extends MssProtocolMssProtocol

implements implements MyMssWirelessMyMssWireless, , MyMssWiredMyMssWired, , MyMssHandoffMyMssHandoff {{

}}

14

O O Pac ot e Pac ot e PRELFVPRELFV��SSLSSL�SURWRFRO�SURWRFRO 44nn ParaPara cada tipocada tipo de de mensagemmensagem (p.ex. (p.ex. MyMsgTypeMyMsgType) o ) o

método método whenMyMsgTypewhenMyMsgType(Message m)(Message m) implementaimplementa o o tratador da mensagemtratador da mensagem..

nn MétodoMétodo send(send(AddrAddr, Message), Message)é a forma de é a forma de interação entre instânciasinteração entre instâncias de um de um protocolo protocolo

nn ExemploExemplo::public void whenMyMsgT1 (Message m) {public void whenMyMsgT1 (Message m) {

MyMsgT2 MyMsgT2 msgmsg = (MyMsgT2) m;= (MyMsgT2) m;try {try {

send(msg.send(msg.getMhgetMh(), new MyMsgT2(..))(), new MyMsgT2(..))} catch (} catch (CommunicationExceptionCommunicationException e) {e) {

}}

nn sendsend envio assíncronoenvio assíncrono de de uma mensagem para outro uma mensagem para outro elemento simuladoelemento simulado ((rsendrsend é a é a versão confiávelversão confiável))

MobiCSMobiCSSim ulaç ão Det erm iníst ic aSim ulaç ão Det erm iníst ic a 44

nn Abordagem para testeAbordagem para teste e e avaliação da corretudeavaliação da corretudede de protocolosprotocolos..

nn O O simulador reproduz cenários específicossimulador reproduz cenários específicos (e (e determinísticosdeterminísticos) ) descritosdescritos emem um um scriptscript ..

nn É similar a É similar a uma simulaçãouma simulação tracetrace--drivendriven, , só quesó que é é o o próprio usuário quem cria os traçospróprio usuário quem cria os traços de de simulaçãosimulação..

nn Um Um scriptscript pode conterpode conter: : envioenvio de de requisiçõesrequisições, , migraçõesmigrações, , alterações na alterações na disponibilidadedisponibilidade de um de um MhMh, etc., etc.

15

MobiCSMobiCSSim ulaç ão Det erm iníst ic a Sim ulaç ão Det erm iníst ic a 44

nn ExemploExemplo::

nn O O comportamentocomportamento dos dos protocolosprotocolos é é definido definido apenas pela sua própria implementaçãoapenas pela sua própria implementação. .

nn O O scriptscript deve descrever situações críticas nas deve descrever situações críticas nas quaisquais o o protocolo precisaprotocolo precisa serser testadotestado..

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

MobiCSMobiCSSim ulaç ão Det erm iníst ic a Sim ulaç ão Det erm iníst ic a 44

nn Não há noçãoNão há noção de tempo de tempo ÍÍ desempenhodesempenho dos dos elementoselementos de de rederede éé infinitoinfinito. .

nn Uma simulaUma simulaçãção ocorreo ocorre emem passospassos. . nn ParaPara definir ordenação entre os eventosdefinir ordenação entre os eventos, , utilizautiliza--

se se pontospontos de de sincronizaçãosincronização no script.no script.uuGlobaisGlobais ÍÍ eventoseventos de de diferentes elementosdiferentes elementos

((QH[W��QH[W��))uuLocaisLocais ÍÍ eventoseventos de um de um mesmo elementomesmo elemento

((DFFHSW7XUQ2QDFFHSW7XUQ2Q e e DFFHSWDFFHSW))

16

MobiCSMobiCSSim ulaç ão Det erm iníst ic a Sim ulaç ão Det erm iníst ic a 44

server

Home agent

MSSo

MSSn

mh

UHT

UHT

UHV

UHV

UHV

C

DFFHSW2Q�KD�WUXH�DFFHSW7XUQ2Q�066Q�WUXH�DFFHSW7XUQ2Q�066R�WUXH�PK�VHQG�QHZ�5HT����PK�PRYH7R�066Q��QH[W��������FRUWH &VHUYHU�DFFHSW�5HT��PK�DFFHSW�5HV��

DFFHSW2QDFFHSW2Q�KD�WUXH��KD�WUXH�DFFHSW7XUQ2QDFFHSW7XUQ2Q��066Q066Q�WUXH��WUXH�DFFHSW7XUQ2QDFFHSW7XUQ2Q��066R066R�WUXH��WUXH�PKPK�VHQG�QHZ��VHQG�QHZ�5HT5HT��������PKPK��PRYH7RPRYH7R��066Q066Q����QH[W�����QH[W�����������FRUWHFRUWH &&VHUYHU�DFFHSW�VHUYHU�DFFHSW�5HT5HT����PKPK�DFFHSW��DFFHSW�5HV5HV����

eventosindependentes

MobiCSMobiCSSim ulaç ão Det erm iníst ic a Sim ulaç ão Det erm iníst ic a 44

server

ha

MSSo

MSSn

mh

nn ScriptScriptDFFHSW2QDFFHSW2Q�^KD��^KD�066R066R��066Q066Q`�7��`�7��PKPK�VHQG�QHZ��VHQG�QHZ�5HT5HT��������PKPK��PRYH7RPRYH7R��066Q066Q����QH[W����QH[W����������FRUWHFRUWH &&VHUYHU�DFFHSW�VHUYHU�DFFHSW�5HT5HT����PKPK�DFFHSW��DFFHSW�5HV5HV����

UHT

UHT

UHV

UHV

UHV

17

MobiCSMobiCSSim ulaç ão Det erm iníst ic a Sim ulaç ão Det erm iníst ic a 44

nnSaSaíídada do do modo determinmodo determiníísticosticouuMensagens exibidasMensagens exibidas no no corpocorpo dos dos tratadorestratadores

de de eventoseventosuuLogLog de de eventos exibidos pelo MobiCSeventos exibidos pelo MobiCS e e

configurado pelo usuconfigurado pelo usuááriorio..uuExceExceçõçõeses no script no script determindeterminíísticostico e e nos nos

protocolosprotocolos ((erroserros emem tempo de tempo de execuexecuçãçãoo e e violaviolaçõçõeses a a assertivasassertivas).).

MobiCSMobiCSSim ulaç ão Est oc ást ic aSim ulaç ão Est oc ást ic a 44

nn PermitePermite a a avaliaçãoavaliação do do desempenhodesempenho de de protocolos pela realizaçãoprotocolos pela realização de testes de testes exaustivosexaustivos..

nn UsuárioUsuário definedefineuuPadrãoPadrão de de comportamentocomportamento dos dos elementos elementos uuModeloModelo de de mobilidademobilidade

nn O O modelomodelo de de simulação podesimulação pode serseruuprogramadoprogramado ((extensãoextensão de classes) ede classes) euuconfiguradoconfigurado pelo usuáriopelo usuário ((bibliotecabiblioteca de de modelosmodelos).).

nn DeveDeve serser atribuídoatribuído a a cada elemento simuladocada elemento simuladoum um objeto queobjeto que define define seu comportamento na seu comportamento na simulaçãosimulação a a partirpartir de um de um modelomodelo de de simulaçãosimulação..

18

Im plem ent aç ão do Im plem ent aç ão do MobiCSMobiCS 44

nnCaracterísticasCaracterísticasuuBiblioteca escrita emBiblioteca escrita em JavaJavauu120 classes, 10.000 linhas de código120 classes, 10.000 linhas de código

nnAbordagem de Implementação Abordagem de Implementação uuImplementa um Implementa um Q~FOHR�GH�VLPXODomRQ~FOHR�GH�VLPXODomRuuUso intensivo de objetosUso intensivo de objetosuuPermite a implementação e incorporação de Permite a implementação e incorporação de

outros modos de simulação outros modos de simulação ÍÍ $UFDERX$UFDERXooRRMobiCSMobiCS

Int er fac es c om In t er fac es c om Usuár ioUsuár io

ModosModos de de Sim ulaç ãoSim ulaç ão1RYD�)HUUDPHQWD�GH�6LPXODomR1RYD�)HUUDPHQWD�GH�6LPXODomR

Im plem ent aç ão do Im plem ent aç ão do MobiCSMobiCS 44

nn Arcabouço para Implementação de Modos de Arcabouço para Implementação de Modos de Simulação, provê uniformidade:Simulação, provê uniformidade:uuIncorporação de máquinas de simulaçãoIncorporação de máquinas de simulaçãouuUtilização das interfaces pelo usuárioUtilização das interfaces pelo usuário

nn Define Define uuEncapsulamento da nova máquina de simulação Encapsulamento da nova máquina de simulação

(($EVWUDFW6LPXODWHG(OHPHQW$EVWUDFW6LPXODWHG(OHPHQW).).uuDelegação da criação dos objetos específicos de Delegação da criação dos objetos específicos de

simulação (simulação (6LPXODWRU6LPXODWRU). ). uuUso das interfaces do novo modo de simulação Uso das interfaces do novo modo de simulação

((6LPXODWLRQ6LPXODWLRQ).).

19

Im plem ent aç ão doIm plem ent aç ão do MobiCSMobiCS

nn Arquitetura comum para os dois modos de Arquitetura comum para os dois modos de simulação, baseada em um controlador de simulação, baseada em um controlador de simulação.simulação.

nn Camada de SimulaçãoCamada de Simulação EstocásticaEstocásticauuAlgoritmo de simulaçãoAlgoritmo de simulação sequencialsequencialuuAlgoritmo de entrega de mensagens pelo meio sem Algoritmo de entrega de mensagens pelo meio sem

fiofiolDetermina o tempo de envio da mensagem quando ocorrem

migrações intercelulares.lUsuário define modelo de qualidade de comunicação sem fio

independentemente das migrações.

Aval iaç ãoAval iaç ãoEx per iênc ia c om oEx per iênc ia c om o MobiCSMobiCS 44

nn Disciplinas:Disciplinas:uu 2000.2 IME/USP: 15 alunos, implementação do 2000.2 IME/USP: 15 alunos, implementação do

MCAST [Acharya93].MCAST [Acharya93].uu 2001.2 PUC2001.2 PUC--Rio: 10 alunos, implementação deRio: 10 alunos, implementação de

MobileIPMobileIP e Otimização de Rotas do MIP[Perkins98]e Otimização de Rotas do MIP[Perkins98]uu 2002.2 Algoritmos Distribuídos (DCC/UFMG)2002.2 Algoritmos Distribuídos (DCC/UFMG)

nn Pesquisa:Pesquisa:uu Serviço de Notificação usandoServiço de Notificação usando ProxiesProxies MóveisMóveisuu AM2C e iAM2C:AM2C e iAM2C: MulticastMulticast Atômico [Ribeiro02]Atômico [Ribeiro02]uu Provisão deProvisão de QoSQoS para redes móveis [Lima02]para redes móveis [Lima02]

20

Aval iaç ãoAval iaç ãoEx per iênc ia c om oEx per iênc ia c om o MobiCSMobiCS 44

nn Modelo de Programação de ProtocolosModelo de Programação de ProtocolosJ Simples.Simples.J Uso deUso de JavaJava facilita a implementafacilita a implementaçãção.o.J Permite o uso dePermite o uso de TimersTimersK ProgramaProgramaçãção no nãão o éé threadthread--safesafe, compartilhamento , compartilhamento

de estruturas de dados, atomicidade dede estruturas de dados, atomicidade de handhand--offoff..L ModularizaModularizaçãção em microo em micro--protocolos protocolos éé limitada (limitada (ÍÍ

nnãão ho háá suporte intrsuporte intríínsecos para pilhas de protocolos)nsecos para pilhas de protocolos)

Aval iaç ãoAval iaç ãoEx per iênc ia c om oEx per iênc ia c om o MobiCSMobiCS 44

nn SimulaçãoSimulação DeterminísticaDeterminísticaJ Mecanismo de exceções deMecanismo de exceções de JavaJava foi útil.foi útil.J Detecção de erros nãoDetecção de erros não--determinísticosdeterminísticos..

nn SimulaçãoSimulação EstocásticaEstocásticaJ Programação de modos de simulação é simples.Programação de modos de simulação é simples.J Identificação de problemas dos protocolos não Identificação de problemas dos protocolos não

considerados na especificação.considerados na especificação.J LogLog de eventos colaborou para identificação de de eventos colaborou para identificação de

problemas nos protocolos.problemas nos protocolos.L Dificuldade para identificar noDificuldade para identificar no loglog as informações as informações

relevantes erelevantes e associáassociá--laslas aos elementos simulados.aos elementos simulados.