mobics: tutorial introdução - endler/mobics/mobics-tutorial1.pdf · semântica de falha ......
TRANSCRIPT
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.