FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
Simulac¸˜ao de Sistemas Distribu´ıdos
utilizando o OMNeT++
FISL 14
Prof. Walter Silvestre Coan, MSc.
Universidade da Regi˜ao de Joinville - UNIVILLE
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
FISL 14
FISL 14
SISTEMAS DISTRIBU´IDOS
Conceito
Exemplos de Sistemas Distribu´ıdos
Caracter´ısticas
Simulac¸˜ao de sistemas distribu´ıdos
OMNET++
OMNeT++
Projeto TicToc
Modelos de simulac¸˜ao
Simulac¸˜ao INET
Simulac¸˜ao Adhoc Network
Simulac¸˜ao de uma WSN utilizando MiXiM
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
SISTEMAS DISTRIBU´IDOS
”Um sistema distribu´ıdo ´e aquele no qual os componentes
localizados em computadores interligados em rede se
comunicam e coordenam suas ac¸ ˜oes apenas passando
mensagens”[COULORIS:2007] .
Prop´ositos:
Compartilhamento de recursos
Escalabilidade
Seguranc¸a
Transparˆencia
Topologia de um sistema distribu´ıdo
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
DNS - DOMAIN NAME SYSTEM
Internet utiliza nomes simb´olicos para identificar hosts e redes, o
que n˜ao obriga os usu´arios a ”decorar”os enderec¸os IP v´alidos
dos servidores na Internet.
Dom´ınios - S˜ao as entidades que receberam um
determinado nome.
Nomes de dom´ınio - S˜ao os nomes simb´olicos usados
univille.edu.br - joinville.sc.gov.br
Os aplicativos fazem consultas ao servidor DNS para
traduzir os nomes simb´olicos em enderec¸os IP.
Um ´unico servidor DNS n˜ao consegue manter todos os links
simb´olicos existentes na Internet, ent˜ao, diversos servidores
colaboram entre si para resolver um determinado enderec¸o e
manter seus bancos de dados atualizado atrav´es da troca de
mensagens.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
GOOGLE SERVICES
Google Search Engine + GMail + Youtube + Google AdWords +
Google Maps + Google Drive + Google Agenda + Google
Tradutor + Google Livros + Google Alertas
Google apoia eventos sobre pesquisa na ´area de sistemas distribu´ıdos
como o Simp´osio Brasileiro de Redes e Sistemas Distribu´ıdos (SBRC).
Google Research http://research.google.com/pubs/DistributedSystemsandParallelComputing.html
Fonte: Google Servers (2013)
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
COMPARTILHAMENTO DE RECURSOS
Um sistema distribu´ıdo utiliza-se de diversos computadores
que somam seus recursos realizando cada um parte de uma
atividade complexa com o objetivo suportar um grande
volume de requisic¸ ˜oes.
Utilizam redes de computadores para troca de mensagens
atrav´es de protocolos de comunicac¸˜ao.
Escalabilidade
Suporte a heterogeneidade
redes
hardware
sistemas operacionais
linguagens de programac¸˜ao
Soluc¸˜ao: Middlewares (Corba - Java RMI - WCF Mono)
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
SEGURANC¸ A
Fonte: WEB The New York Times (2013)
http://www.nytimes.com/2013/04/02/science/distributed-denial-of-service.html?r = 0
Sistemas distribu´ıdos est˜ao sujeitos a ameac¸as de seguranc¸a
relevantes como o DoS Denial-of-service (ataque de negac¸˜ao de
servic¸o), ataques de invas˜ao ou substituic¸˜ao de c´odigos m´oveis.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
TRATAMENTO DE FALHAS
Quest˜oes importantes:
Como detectar falhas?
Devido a distribuic¸˜ao de processos em diversos computadores,
encontrar falhas se torna um processo relevante.
Mascaramento de falhas
Retransmiss˜ao de mensagens
Tolerˆancia a falhas
Mesmo em caso de falha de comunicac¸˜ao, o sistema continua tentando
estabelecer uma conex˜ao.
Redundˆancia
Recupera¸c˜ao de falhas
Em caso de falha o sistema ´e capaz de desfazer ou refazer uma
operac¸˜ao mantendo os dados ´ıntegros.
Disponibilidade
Per´ıodo de tempo que um sistema esta pronto para uso.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
TRANSPAR ˆENCIA
Transparˆencia de acesso
Recursos dos sistemas distribu´ıdos podem ser acessados
de forma local e remota da mesma forma.
Transparˆencia de localiza¸c˜ao
Possibilitar o acesso aos recursos sem conhecer a real
localizac¸˜ao f´ısica dos servidores na rede.
Transparˆencia de replica¸c˜ao
Permitir que v´arias instˆancias dos recursos possam
trabalhar em conjunto para aumentar a disponibilidade e
tolerˆancia a falhas.
Transparˆencia de falhas
Permitir que os usu´arios dos recusos consigam concluir
tarefas, mesmo em caso de falhas do sistema.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
SIMULAC¸ ˜AO POR COMPUTADOR
Os principais m´etodos de avaliac¸˜ao de performance s˜ao:
An´alise matem´atica
Medic¸ ˜oes
Simulac¸˜ao por computador
Simulac¸ ˜oes por computador utilizando eventos discretos s˜ao:
”simulac¸ ˜oes onde o estado da aplicac¸˜ao muda em pontos
discretos no tempo que s˜ao conhecidos como
eventos”[Schmidt:2010].
Evoluc¸ ˜ao dos eventos no tempo
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
SIMULAC¸ ˜AO UTILIZANDO EVENTOS DISCRETOS
Princ´ıpios:
A simulac¸˜ao acontece por um tempo m´aximo
determinado;
Eventos s˜ao executados em pontos discretos do tempo e
s˜ao respons´aveis pela mudanc¸a do estado da simulac¸˜ao;
Eventos podem gerar novos eventos, que devem ser
armazenados em uma estrutura de dados respons´avel por
realizar sua ordenac¸˜ao;
Em um ponto do tempo onde um evento ocorre ´e poss´ıvel
verificar o estado global da aplicac¸˜ao;
Para cada evento deve haver um c´odigo fonte para
tratar-lo.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
OMNET++
O OMNeT++ foi criado por Andr´as Vargas na Technical University of Budapest,
no Department of Telecommunications (BME-HIT), em 1998. Ele funciona como
um framework modular, extens´ıvel e baseado em componentes
desenvolvidos em C++ para simulac¸˜ao de redes e sistemas de prop´osito
geral. Para uso acadˆemico seu licenciamento ´e como software livre utilizando
o modelo GNU. Para o uso comercial o produto ´e conhecido como OMNest e
seu licenciamento ´e vendido.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
INSTALAC¸ ˜AO DO OMNET++
Sistemas operacionais suportados
Ubuntu, Debian, Fedora, Red Hat, OpenSUSE
Mac OS X
e at´e naquele outro SO...
Instalac¸˜ao no Ubuntu - http://omnetpp.org/doc/omnetpp/InstallGuide.pdf
Download do pacote omnetpp-4.3-src.tgz com os fontes pelo link:
http://omnetpp.org/omnetpp
Descompacte o pacote no seu diret´orio /home/youruser
Altere a vari´avel de ambiente PATH para incluir o diret´orio do
OMNeT++.
Instalar um conjunto de pacotes requeridos pelo OMNeT++ conforme o
item 5.3.1 do manual de instalac¸˜ao
Executar o script de verificac¸˜ao de ambiente, ex: ˜/omnetpp-4.3$
./configure
Caso nenhum erro ou falta de pacote requerido seja apresentado basta
iniciar a compilac¸˜ao com o comando, ex: ˜/omnetpp-4.3$ make
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
ENTENDENDO O PROJETO TICTOC - CRIANDO
Criando projeto exemplo TicToc
O projeto TicToc ´e um modelo para entender o funcionamento das
simulac¸ ˜oes no OMNeT++ e principalmente a importˆancia de cada um dos
componentes. Para criar esse exemplo devemos criar um novo projeto no
OMNeT++ atrav´es do menu File → New → OMNeT + +Project.
Informe o nome do projeto como ”TicToc”e pressione NEXT, na pr´oxima tela
do wizard conforme a figura acima, selecione o template ”Tictoc
example”dentro da pasta de exemplos, e finalize a criac¸˜ao do projeto com
bot˜ao Finish.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
ENTENDENDO O PROJETO TICTOC - ESTRUTURA 1/2
Source folder simulations
Devem ser colocados os arquivos de configurac¸˜ao e de
m´odulos gerais da simulac¸˜ao.
Arquivo com extens˜ao NED
S˜ao arquivos que utilizam uma linguagem
espec´ıfica para a descric¸˜ao de m´odulos que
s˜ao unidos para compor a aplicac¸˜ao.
Arquivo omnetpp.ini
Permite a configurac¸˜ao de cen´arios de
execuc¸˜ao de uma simulac¸˜ao. Esse arquivo ´e
obrigat´orio e deve possuir pelo menos o
cen´ario [General].
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
ENTENDENDO O PROJETO TICTOC - ESTRUTURA 2/2
Source folder src
Devem ser colocados os c´odigos fonte em C++ e de
m´odulos componenes da simulac¸˜ao.
Txc.ned
Define um m´odulo simples que representa
um n´o da simulac¸˜ao. Esse m´odulo ter´a dois
port˜oes de comunicac¸˜ao: entrada e sa´ıda. E
poder´a receber um parˆametro booleano
atrav´es do arquivo de configurac¸˜ao
omnetpp.ini
Txc.h e Txc.cc
S˜ao os arquivos fonte que definem o
comportamento do m´odulo Txc.ned. No
arquivo Txc.h ´e poss´ıvel observar que a
interface cSimpleModule ser´a implementada.
Com isso o arquivo Txc.cc dever´a conter o
c´odigo fonte dos m´etodos initialize e
handleMessage.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
ENTENDENDO O PROJETO TICTOC - C ´ODIGO FONTE
1/2
O m´etodo initialize() ´e automaticamente
chamado pelo OMNeT++ em todos os
m´odulos que comp˜oe a simulac¸˜ao.
Observando o c´odigo pode-ser verificar que o
m´etodo par() ´e chamado para ler um
parˆametro que foi passado no arquivo
omnetpp.ini. Caso o parˆametro tenha o valor
verdadeiro, uma instancia da classe cMessage
´e criada e o m´etodo send ´e invocado,
direcionando a mensagem para o port˜ao de
comunicac¸˜ao ”out”.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
ENTENDENDO O PROJETO TICTOC - C ´ODIGO FONTE
2/2
J´a o m´etodo handleMessage() ´e chamado
automaticamente pelo OMNeT++ toda vez
que port˜ao de comunicac¸˜ao ”in”recebe uma
mensagem. Observa-se que a mensagem ´e
recebida no formado de uma instˆancia do
objeto cMessage que ´e o parˆametro de
entrada. Como o objetivo do m´etodo ´e
simplesmente realizar a retransmiss˜ao da
mensagem, o m´etodo send() ´e novamente
invocado repassando a mensagem para o
port˜ao de comunicac¸˜ao ”out”.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
ENTENDENDO O PROJETO TICTOC - OMNETPP.INI
O arquivo omnetpp.ini permite a
configurac¸˜ao dos cen´arios de execuc¸˜ao da
simulac¸˜ao. Observa-se que ele segue padr˜ao
de um arquivo .ini no formato
CHAVE=VALOR. Importante destacar que
existem parˆametros padr˜oes do OMNeT++
para as simulac¸ ˜oes como o network que
define o nome do cen´ario, e ainda parˆametros
criados nos m´odulos como o
sendInitialMessage que foi definido no
m´odulo Txc.net.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
ENTENDENDO O PROJETO TICTOC - TICTOC.NED
´E obrigat´oria a existˆencia de
pelo menos um arquivo no
formato NED com o nome do
projeto que ser´a respons´avel
por definir a topologia da
rede. Ao definir a topologia da
rede pelo bloco network s˜ao
criadas duas instˆancias
chamadas tic e toc do mesmo
t´ıpo de m´odulo Txc definido
anteriormente. No item
connections s˜ao criadas as
conex˜oes definindo
efetivamente a topologia
dotada para a simulac¸˜ao.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
MODELOS DE SIMULAC¸ ˜AO
Os modelos de simulac¸˜ao s˜ao projetos desenvolvidos paralelamente ao
OMNeT++ por grupos de pesquisa independentes que permitem adicionar
novas funcionalidades e caracter´ısticas de redes espec´ıficas n˜ao suportadas
de forma nativa pelo OMNeT++.
Permite a simulac¸˜ao de redes utilizando diversos protocolos como UDP,
TCP, IP, IPv6, Ethernet, PPP, 802.11 dentre outros.
MiXiM
Permite a simulac¸˜ao de Wireless Sensor Networks e
Mobile Networks.
Simulac¸˜ao de Wireless Sensor Networks.
Suporta a simulac¸˜ao de Inter-Vehicular
Communications.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
AMBIENTE DE SIMULAC¸ ˜AO USANDO O INET
Para realizar a instalac¸˜ao do INET basta seguir os passos:
Realizar o download do pacote de instalac¸˜ao pelo link:
http://inet.omnetpp.org/index.php?n=Main.Download
Descompactar o pacote
Pela IDE do OMNeT++ importar o pacote utilizando a opc¸˜ao: File -
Import - Existing Project to the Workspace
Ap´os realizar a importac¸˜ao do projeto, executar o processo de Build.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
CRIANDO UM PROJETO COM INET
Vamos criar um projeto utilizando o plugin INET baseado no
modelo Ethernet.
Selecione o menu na IDE do OMNeT++: File - New -
OMNeT++ Project e inform o nome do projeto, clique no bot˜ao
Next.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
CRIANDO UM PROJETO COM INET
Na tela Initial Contents, selecione a opc¸˜ao Empty project with
src and simulations folders e clique na opc¸˜ao Finish.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
CRIANDO UM PROJETO COM INET
Agora ´e necess´ario vincular o projeto a biblioteca do INET para
possibilitar que os componentes possam ser utilizados. Para
isso, clique com o bot˜ao direito sobre o projeto e selecione a
opc¸˜ao propriedades. Na pr´oxima tela selecione a opc¸˜ao Project
References e na lista de projetos selecione o inet.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
NED FILE - NETWORK DESCRIPTION FILE
O primeiro passo para criar uma simulac¸˜ao ´e definir a topologia da rede. Para
isso clique com o bot˜ao direito sobre o source folder simulations e selecione a
opc¸˜ao New - Network Description File (NED). Na tela do wizard informe o
nome do arquivo NED igual ao nome do projeto. Selecione a opc¸˜ao Next.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
NED FILE - NETWORK DESCRIPTION FILE
Voce pode criar um arquivo NED utilizando alguns exemplos
de topologias j´a prontas, vamos utilizar o padr˜ao NED File
with one item. Clique no bot˜ao Next.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
NED FILE - NETWORK DESCRIPTION FILE
Selecione a opc¸˜ao Network que permite definir a topologia de
nossa rede. Finalize o wizard.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
IPV4NETWORKCONFIGURATOR
Vamos agora construir a topologia da nossa rede. De um duplo
clique no arquivo NetworkEthernet.ned no modo de design. O
primeiro componente que vamos inserir ´e o
iPv4NetworkConfigurator. Seu objetivo ´e coordenar de forma
transparente a utilizac¸˜ao do protocolo IP sobre a rede Ethernet.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
IPV4NETWORKCONFIGURATOR
O pr´oximo passo ´e configurar o iPv4NetworkConfigurator
atrav´es de um arquivo xml embedded, nele vamos definir a
faixa de IP utilizada na rede.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
TOPOLOGIA DA REDE
Agora voltamos o modo de design para adicionar mais trˆes
componentes:
etherSwitch - Este componente representa um Switch no
padr˜ao Ethernet.
StandarHost - Este componente representa os
computadores conectados a rede. Devem ser insiridos dois
StandarHosts e seus nomes foram modificados para server
e client.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
CONEX ˜OES
Para concluir a topologia da rede, vamos editar o fonte do
arquivo NED, e incluir um novo grupo de c´odigo type, onde
vamos definir um novo tipo chamado cable que ir´a herdar o
funcionamento de uma conex˜ao por cabo ethernet de 100MBs,
sendo necess´ario importar esta classe. Criamos tamb´em um
novo grupo chamado connections, onde definimos que os dois
StandarHosts utilizam o tipo cable para conectar-se ao switch.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
ARQUIVO OMNETPP.INI
O arquivo omnetpp.ini precisa ser modificado para configurar
a simulac¸˜ao. Para esse exemplo vamos utilizar uma aplicac¸˜ao
padr˜ao existente nos StandarHosts que simula o teste da
conex˜ao pelo envio de um pacote ping. Como o objetivo ´e que
o host cliente envie o pacote ping para o host server, o ip do
host server ´e colocado como parˆametro de enderec¸o de destino.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
BUILD DA SIMULAC¸ ˜AO
Devemos realizar o build da simulac¸˜ao, para isso basta
selecionar o projeto NetworkEthernet e no menu principal do
OMNeT++ clicar em Project - Build Project. Caso o processo de
build ocorra com sucesso, um novo pacote chamado Binaries
ser´a criado no projeto contendo os arquivos compilados da
simulac¸˜ao.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
CONFIGURAR A EXECUC¸ ˜AO
Para testar a simulac¸˜ao devemos acessar o menu principal do
OMNeT++ Run e seleciona a opc¸˜ao Run Configuration. Clique
no bot˜ao nova configurac¸˜ao de execuc¸˜ao no canto da tela,
informe um nome para os parˆametros de execuc¸˜ao e selecione a
configurac¸˜ao General no item Config name. Para concluir basta
clicar em apply e em seguida na opc¸˜ao RUN.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
RESULTADO DA SIMULAC¸ ˜AO ETHERNET
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
ADHOC NETWORKS
Outro ambiente bastante comum para a simulac¸˜ao de sistemas
distribu´ıdos s˜ao as Adhoc Networks, redes formadas sem a
necessidade de uma infraestrutura instalada para a
comunicac¸˜ao (Access Points, Routers, Switchs, etc). Algumas
caracter´ısticas desse tipo de rede s˜ao:
Utilizac¸˜ao de r´adio transmissores (IEEE 802.11, IEEE
802.15.4 ZigBee, Bluetooth);
Os n´os da rede devem se coordenar para definir a
identificac¸˜ao dos n´os;
Deve haver tolerˆancia a desconex˜ao;
Importˆancia dos algoritmos de roteamento.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
ADHOC NETWORKS
Para criar uma simulac¸˜ao no modelo Adhoc Network devemos
criar um novo projeto no OMNeT++ e vincular a dependˆencia
com o projeto INET. Ent˜ao vamos criar um novo arquivo NED
chamado WirelessProject.NED para definir a arquitetura da
simulac¸˜ao. Clique com o bot˜ao direito sobre o source folder
simulations e selecione New - Network Descrition File, informe
o nome do arquivo e na pr´oxima tela selecione a opc¸˜ao NED
File with one item. Na pr´oxima e ´ultima tela selecione em
Initial Content a opc¸˜ao Network e finalize o wizard.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
ADHOC NETWORKS
O pr´oximo passo ´e configurar o arquivo WirelessProject.NED, inserindo os
seguintes componentes:
iPv4NetworkConfigurator
Esse componente coordenaram a utilizac¸˜ao no protocolo IPv4 para
identificac¸˜ao dos n´os da rede;
ChannelControl
Esse componente tem a responsabilidade de controlar o canal de
comunicac¸˜ao por r´adio transmiss˜ao, sendo que o padr˜ao ´e o padr˜ao
IEEE802.11.
adhocHost
Esse componente ir´a simular os n´os da rede adhoc.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
ADHOC NETWORKS
Edite o arquivo WirelessProject.NED no modo de c´odigo fonte. Conforme
ilustra a figura, vamos inserir um novo grupo chamado parameters para
definir uma vari´avel chamada numNodes com o valor inicial de 5, seu
objetivo ´e permitir que o n´umero de n´os da rede possa ser redefinido. No
modulo iPv4NetworkConfigurator insira a linha de configurac¸˜ao da faixa de
IP da rede. E pro fim modifique a declarac¸˜ao da vari´avel adhochost para um
vetor utilizando como tamanho inicial o numhost.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
ADHOC NETWORKS
Configurac¸˜ao do arquivo omnetpp.ini
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
ADHOC NETWORKS
Resultado da simulac¸˜ao da Adhoc Networks
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
WIRELESS SENSOR NETWORKS
As WSN - Wireless Sensor Networks s˜ao uma subclassificac¸˜ao
das adhoc networks, compostas por dispositivos sensores com
restric¸ ˜oes de recursos e normalmente de baixo custo. Isso
possibilita a montagem e distribuic¸˜ao desses sensores por
grandes ´areas gerando redes para monitoramento destas ´areas
de interesse.
O MiXiM ´e um dos plugins que permite a simulac¸˜ao no
ambiente OMNeT++ de redes de sensores sem fio,
acrecentando n˜ao apenas asp´ectos l´ogicos mas tamb´em a
representac¸˜ao de caracter´ısticas f´ısicas aos sensores.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
INSTALAC¸ ˜AO DO MIXIM
Devido a alguns erros liberados nas ´ultimas vers˜oes deste
plugin, o processo de instalac¸˜ao deve seguir os passos:
Realizar o download do pacote pelo enderec¸o:
http://sourceforge.net/projects/mixim/files/mixim/
Descompatar o pacote de instalac¸˜ao (tar xvzf
mixim-2.3.tar.gz)
Acessar o diretorio pelo bash e executar o comando ”make
makefiles”para expans˜ao dos arquivos de compilac¸˜ao do
projeto
Executar o comando ”make”para efetuar a compilac¸˜ao do
projeto
Por fim, abra a IDE do OMNeT++ e selecione a opc¸˜ao File -
Import - General - Import existing projects into workspace
e aponte para o diretorio onde o projeto foi compilado.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
CRIANDO UM PROJETO COM O MIXIM
O processo de criac¸˜ao de um projeto utilizando o MiXiM ´e um
pouco diferente do projeto no INET. O processo inicial
permanece quase igual, precisamos criar um novo projeto do
tipo OMNeT++ que vamos chamar de WSN. Acione a opc¸˜ao
Next.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
CRIANDO UM PROJETO COM O MIXIM
Na pr´oxima etapa do wizard acontece a principal diferenc¸a no
processo de criac¸˜ao de um projeto utilizando o MiXiM. Ele
possui um template para simplificar a criac¸˜ao de projetos
utilizando o simulador. Selecione a opc¸˜ao Basic MiXiM
network, e acione a opc¸˜ao Next.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
CRIANDO UM PROJETO COM O MIXIM
Na etapa de definic¸˜ao do NIC Protocol ´e poss´ıvel optar por algumas
configurac¸ ˜oes importantes do projeto da camada de rede. Vamos selecionar
para a camada de rede a opc¸˜ao Sensor Application Layer, para a camada de
rede um protocolo de roteamento no estilo Flooding, para a camada fisica o
padr˜ao 802.11. Como se trata de uma rede de sensores sem fio, ´e comum
considerar nas simulac¸ ˜oes a possibilidade de mobilidade dos n´os. Selecione o
modelo de velocidade constante e mantenha a simulac¸˜ao considerando
apenas duas dimens˜oes. Acione a opc¸˜ao Finish.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
CRIANDO UM PROJETO COM O MIXIM
Observe que os seguintes componentes s˜ao utilizados na
simulac¸˜ao:
ConnectionManager - respons´avel por gerenciar as conex˜oes utilizando
o padr˜ao IEEE802.11 ou outro padr˜ao de comunicac¸˜ao sem fio;
World - esse m´odulo permite com que os n´os tenham acesso a
informac¸ ˜oes do ambiente onde a simulac¸˜ao esta sendo executada como
por exemplo seu posicionamento geogr´afico;
Host80211 - que simula os n´os de uma WSN.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
CRIANDO UM PROJETO COM O MIXIM
O arquivo omnetpp.ini gerado pela vers˜ao 2.3, possui um erro
na parametrizac¸˜ao do gerador de tr´afego de rede. No
parˆametro **.appl.trafficParam deve ser inserido um ”s”que
representa segundos, logo ap´os o valor um.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
CRIANDO UM PROJETO COM O MIXIM
Agora o processo para a execuc¸˜ao segue o mesmo do plugin
INET, ´e necess´ario realizar o Build do projeto e ent˜ao criar um
conjunto de configurac¸˜ao de execuc¸˜ao para ent˜ao iniciar a
simulac¸˜ao.
FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++
OBRIGADO!
Universidade da Regi˜ao de Joinville - UNIVILLE
Departamento de Inform´atica
Prof. Walter Silvestre Coan, MSc.
walter.s@univille.br - walter.coan@gmail.com
http://www.univille.br/deptoinformatica
http://www.faltoupontoevirgula.com.br
100% LATEX

Simulação de Sistemas Distribuídos utilizando o OMNet+

  • 1.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ Simulac¸˜ao de Sistemas Distribu´ıdos utilizando o OMNeT++ FISL 14 Prof. Walter Silvestre Coan, MSc. Universidade da Regi˜ao de Joinville - UNIVILLE
  • 2.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ FISL 14 FISL 14 SISTEMAS DISTRIBU´IDOS Conceito Exemplos de Sistemas Distribu´ıdos Caracter´ısticas Simulac¸˜ao de sistemas distribu´ıdos OMNET++ OMNeT++ Projeto TicToc Modelos de simulac¸˜ao Simulac¸˜ao INET Simulac¸˜ao Adhoc Network Simulac¸˜ao de uma WSN utilizando MiXiM
  • 3.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ SISTEMAS DISTRIBU´IDOS ”Um sistema distribu´ıdo ´e aquele no qual os componentes localizados em computadores interligados em rede se comunicam e coordenam suas ac¸ ˜oes apenas passando mensagens”[COULORIS:2007] . Prop´ositos: Compartilhamento de recursos Escalabilidade Seguranc¸a Transparˆencia Topologia de um sistema distribu´ıdo
  • 4.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ DNS - DOMAIN NAME SYSTEM Internet utiliza nomes simb´olicos para identificar hosts e redes, o que n˜ao obriga os usu´arios a ”decorar”os enderec¸os IP v´alidos dos servidores na Internet. Dom´ınios - S˜ao as entidades que receberam um determinado nome. Nomes de dom´ınio - S˜ao os nomes simb´olicos usados univille.edu.br - joinville.sc.gov.br Os aplicativos fazem consultas ao servidor DNS para traduzir os nomes simb´olicos em enderec¸os IP. Um ´unico servidor DNS n˜ao consegue manter todos os links simb´olicos existentes na Internet, ent˜ao, diversos servidores colaboram entre si para resolver um determinado enderec¸o e manter seus bancos de dados atualizado atrav´es da troca de mensagens.
  • 5.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ GOOGLE SERVICES Google Search Engine + GMail + Youtube + Google AdWords + Google Maps + Google Drive + Google Agenda + Google Tradutor + Google Livros + Google Alertas Google apoia eventos sobre pesquisa na ´area de sistemas distribu´ıdos como o Simp´osio Brasileiro de Redes e Sistemas Distribu´ıdos (SBRC). Google Research http://research.google.com/pubs/DistributedSystemsandParallelComputing.html Fonte: Google Servers (2013)
  • 6.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ COMPARTILHAMENTO DE RECURSOS Um sistema distribu´ıdo utiliza-se de diversos computadores que somam seus recursos realizando cada um parte de uma atividade complexa com o objetivo suportar um grande volume de requisic¸ ˜oes. Utilizam redes de computadores para troca de mensagens atrav´es de protocolos de comunicac¸˜ao. Escalabilidade Suporte a heterogeneidade redes hardware sistemas operacionais linguagens de programac¸˜ao Soluc¸˜ao: Middlewares (Corba - Java RMI - WCF Mono)
  • 7.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ SEGURANC¸ A Fonte: WEB The New York Times (2013) http://www.nytimes.com/2013/04/02/science/distributed-denial-of-service.html?r = 0 Sistemas distribu´ıdos est˜ao sujeitos a ameac¸as de seguranc¸a relevantes como o DoS Denial-of-service (ataque de negac¸˜ao de servic¸o), ataques de invas˜ao ou substituic¸˜ao de c´odigos m´oveis.
  • 8.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ TRATAMENTO DE FALHAS Quest˜oes importantes: Como detectar falhas? Devido a distribuic¸˜ao de processos em diversos computadores, encontrar falhas se torna um processo relevante. Mascaramento de falhas Retransmiss˜ao de mensagens Tolerˆancia a falhas Mesmo em caso de falha de comunicac¸˜ao, o sistema continua tentando estabelecer uma conex˜ao. Redundˆancia Recupera¸c˜ao de falhas Em caso de falha o sistema ´e capaz de desfazer ou refazer uma operac¸˜ao mantendo os dados ´ıntegros. Disponibilidade Per´ıodo de tempo que um sistema esta pronto para uso.
  • 9.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ TRANSPAR ˆENCIA Transparˆencia de acesso Recursos dos sistemas distribu´ıdos podem ser acessados de forma local e remota da mesma forma. Transparˆencia de localiza¸c˜ao Possibilitar o acesso aos recursos sem conhecer a real localizac¸˜ao f´ısica dos servidores na rede. Transparˆencia de replica¸c˜ao Permitir que v´arias instˆancias dos recursos possam trabalhar em conjunto para aumentar a disponibilidade e tolerˆancia a falhas. Transparˆencia de falhas Permitir que os usu´arios dos recusos consigam concluir tarefas, mesmo em caso de falhas do sistema.
  • 10.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ SIMULAC¸ ˜AO POR COMPUTADOR Os principais m´etodos de avaliac¸˜ao de performance s˜ao: An´alise matem´atica Medic¸ ˜oes Simulac¸˜ao por computador Simulac¸ ˜oes por computador utilizando eventos discretos s˜ao: ”simulac¸ ˜oes onde o estado da aplicac¸˜ao muda em pontos discretos no tempo que s˜ao conhecidos como eventos”[Schmidt:2010]. Evoluc¸ ˜ao dos eventos no tempo
  • 11.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ SIMULAC¸ ˜AO UTILIZANDO EVENTOS DISCRETOS Princ´ıpios: A simulac¸˜ao acontece por um tempo m´aximo determinado; Eventos s˜ao executados em pontos discretos do tempo e s˜ao respons´aveis pela mudanc¸a do estado da simulac¸˜ao; Eventos podem gerar novos eventos, que devem ser armazenados em uma estrutura de dados respons´avel por realizar sua ordenac¸˜ao; Em um ponto do tempo onde um evento ocorre ´e poss´ıvel verificar o estado global da aplicac¸˜ao; Para cada evento deve haver um c´odigo fonte para tratar-lo.
  • 12.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ OMNET++ O OMNeT++ foi criado por Andr´as Vargas na Technical University of Budapest, no Department of Telecommunications (BME-HIT), em 1998. Ele funciona como um framework modular, extens´ıvel e baseado em componentes desenvolvidos em C++ para simulac¸˜ao de redes e sistemas de prop´osito geral. Para uso acadˆemico seu licenciamento ´e como software livre utilizando o modelo GNU. Para o uso comercial o produto ´e conhecido como OMNest e seu licenciamento ´e vendido.
  • 13.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ INSTALAC¸ ˜AO DO OMNET++ Sistemas operacionais suportados Ubuntu, Debian, Fedora, Red Hat, OpenSUSE Mac OS X e at´e naquele outro SO... Instalac¸˜ao no Ubuntu - http://omnetpp.org/doc/omnetpp/InstallGuide.pdf Download do pacote omnetpp-4.3-src.tgz com os fontes pelo link: http://omnetpp.org/omnetpp Descompacte o pacote no seu diret´orio /home/youruser Altere a vari´avel de ambiente PATH para incluir o diret´orio do OMNeT++. Instalar um conjunto de pacotes requeridos pelo OMNeT++ conforme o item 5.3.1 do manual de instalac¸˜ao Executar o script de verificac¸˜ao de ambiente, ex: ˜/omnetpp-4.3$ ./configure Caso nenhum erro ou falta de pacote requerido seja apresentado basta iniciar a compilac¸˜ao com o comando, ex: ˜/omnetpp-4.3$ make
  • 14.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ ENTENDENDO O PROJETO TICTOC - CRIANDO Criando projeto exemplo TicToc O projeto TicToc ´e um modelo para entender o funcionamento das simulac¸ ˜oes no OMNeT++ e principalmente a importˆancia de cada um dos componentes. Para criar esse exemplo devemos criar um novo projeto no OMNeT++ atrav´es do menu File → New → OMNeT + +Project. Informe o nome do projeto como ”TicToc”e pressione NEXT, na pr´oxima tela do wizard conforme a figura acima, selecione o template ”Tictoc example”dentro da pasta de exemplos, e finalize a criac¸˜ao do projeto com bot˜ao Finish.
  • 15.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ ENTENDENDO O PROJETO TICTOC - ESTRUTURA 1/2 Source folder simulations Devem ser colocados os arquivos de configurac¸˜ao e de m´odulos gerais da simulac¸˜ao. Arquivo com extens˜ao NED S˜ao arquivos que utilizam uma linguagem espec´ıfica para a descric¸˜ao de m´odulos que s˜ao unidos para compor a aplicac¸˜ao. Arquivo omnetpp.ini Permite a configurac¸˜ao de cen´arios de execuc¸˜ao de uma simulac¸˜ao. Esse arquivo ´e obrigat´orio e deve possuir pelo menos o cen´ario [General].
  • 16.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ ENTENDENDO O PROJETO TICTOC - ESTRUTURA 2/2 Source folder src Devem ser colocados os c´odigos fonte em C++ e de m´odulos componenes da simulac¸˜ao. Txc.ned Define um m´odulo simples que representa um n´o da simulac¸˜ao. Esse m´odulo ter´a dois port˜oes de comunicac¸˜ao: entrada e sa´ıda. E poder´a receber um parˆametro booleano atrav´es do arquivo de configurac¸˜ao omnetpp.ini Txc.h e Txc.cc S˜ao os arquivos fonte que definem o comportamento do m´odulo Txc.ned. No arquivo Txc.h ´e poss´ıvel observar que a interface cSimpleModule ser´a implementada. Com isso o arquivo Txc.cc dever´a conter o c´odigo fonte dos m´etodos initialize e handleMessage.
  • 17.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ ENTENDENDO O PROJETO TICTOC - C ´ODIGO FONTE 1/2 O m´etodo initialize() ´e automaticamente chamado pelo OMNeT++ em todos os m´odulos que comp˜oe a simulac¸˜ao. Observando o c´odigo pode-ser verificar que o m´etodo par() ´e chamado para ler um parˆametro que foi passado no arquivo omnetpp.ini. Caso o parˆametro tenha o valor verdadeiro, uma instancia da classe cMessage ´e criada e o m´etodo send ´e invocado, direcionando a mensagem para o port˜ao de comunicac¸˜ao ”out”.
  • 18.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ ENTENDENDO O PROJETO TICTOC - C ´ODIGO FONTE 2/2 J´a o m´etodo handleMessage() ´e chamado automaticamente pelo OMNeT++ toda vez que port˜ao de comunicac¸˜ao ”in”recebe uma mensagem. Observa-se que a mensagem ´e recebida no formado de uma instˆancia do objeto cMessage que ´e o parˆametro de entrada. Como o objetivo do m´etodo ´e simplesmente realizar a retransmiss˜ao da mensagem, o m´etodo send() ´e novamente invocado repassando a mensagem para o port˜ao de comunicac¸˜ao ”out”.
  • 19.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ ENTENDENDO O PROJETO TICTOC - OMNETPP.INI O arquivo omnetpp.ini permite a configurac¸˜ao dos cen´arios de execuc¸˜ao da simulac¸˜ao. Observa-se que ele segue padr˜ao de um arquivo .ini no formato CHAVE=VALOR. Importante destacar que existem parˆametros padr˜oes do OMNeT++ para as simulac¸ ˜oes como o network que define o nome do cen´ario, e ainda parˆametros criados nos m´odulos como o sendInitialMessage que foi definido no m´odulo Txc.net.
  • 20.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ ENTENDENDO O PROJETO TICTOC - TICTOC.NED ´E obrigat´oria a existˆencia de pelo menos um arquivo no formato NED com o nome do projeto que ser´a respons´avel por definir a topologia da rede. Ao definir a topologia da rede pelo bloco network s˜ao criadas duas instˆancias chamadas tic e toc do mesmo t´ıpo de m´odulo Txc definido anteriormente. No item connections s˜ao criadas as conex˜oes definindo efetivamente a topologia dotada para a simulac¸˜ao.
  • 21.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ MODELOS DE SIMULAC¸ ˜AO Os modelos de simulac¸˜ao s˜ao projetos desenvolvidos paralelamente ao OMNeT++ por grupos de pesquisa independentes que permitem adicionar novas funcionalidades e caracter´ısticas de redes espec´ıficas n˜ao suportadas de forma nativa pelo OMNeT++. Permite a simulac¸˜ao de redes utilizando diversos protocolos como UDP, TCP, IP, IPv6, Ethernet, PPP, 802.11 dentre outros. MiXiM Permite a simulac¸˜ao de Wireless Sensor Networks e Mobile Networks. Simulac¸˜ao de Wireless Sensor Networks. Suporta a simulac¸˜ao de Inter-Vehicular Communications.
  • 22.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ AMBIENTE DE SIMULAC¸ ˜AO USANDO O INET Para realizar a instalac¸˜ao do INET basta seguir os passos: Realizar o download do pacote de instalac¸˜ao pelo link: http://inet.omnetpp.org/index.php?n=Main.Download Descompactar o pacote Pela IDE do OMNeT++ importar o pacote utilizando a opc¸˜ao: File - Import - Existing Project to the Workspace Ap´os realizar a importac¸˜ao do projeto, executar o processo de Build.
  • 23.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ CRIANDO UM PROJETO COM INET Vamos criar um projeto utilizando o plugin INET baseado no modelo Ethernet. Selecione o menu na IDE do OMNeT++: File - New - OMNeT++ Project e inform o nome do projeto, clique no bot˜ao Next.
  • 24.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ CRIANDO UM PROJETO COM INET Na tela Initial Contents, selecione a opc¸˜ao Empty project with src and simulations folders e clique na opc¸˜ao Finish.
  • 25.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ CRIANDO UM PROJETO COM INET Agora ´e necess´ario vincular o projeto a biblioteca do INET para possibilitar que os componentes possam ser utilizados. Para isso, clique com o bot˜ao direito sobre o projeto e selecione a opc¸˜ao propriedades. Na pr´oxima tela selecione a opc¸˜ao Project References e na lista de projetos selecione o inet.
  • 26.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ NED FILE - NETWORK DESCRIPTION FILE O primeiro passo para criar uma simulac¸˜ao ´e definir a topologia da rede. Para isso clique com o bot˜ao direito sobre o source folder simulations e selecione a opc¸˜ao New - Network Description File (NED). Na tela do wizard informe o nome do arquivo NED igual ao nome do projeto. Selecione a opc¸˜ao Next.
  • 27.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ NED FILE - NETWORK DESCRIPTION FILE Voce pode criar um arquivo NED utilizando alguns exemplos de topologias j´a prontas, vamos utilizar o padr˜ao NED File with one item. Clique no bot˜ao Next.
  • 28.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ NED FILE - NETWORK DESCRIPTION FILE Selecione a opc¸˜ao Network que permite definir a topologia de nossa rede. Finalize o wizard.
  • 29.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ IPV4NETWORKCONFIGURATOR Vamos agora construir a topologia da nossa rede. De um duplo clique no arquivo NetworkEthernet.ned no modo de design. O primeiro componente que vamos inserir ´e o iPv4NetworkConfigurator. Seu objetivo ´e coordenar de forma transparente a utilizac¸˜ao do protocolo IP sobre a rede Ethernet.
  • 30.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ IPV4NETWORKCONFIGURATOR O pr´oximo passo ´e configurar o iPv4NetworkConfigurator atrav´es de um arquivo xml embedded, nele vamos definir a faixa de IP utilizada na rede.
  • 31.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ TOPOLOGIA DA REDE Agora voltamos o modo de design para adicionar mais trˆes componentes: etherSwitch - Este componente representa um Switch no padr˜ao Ethernet. StandarHost - Este componente representa os computadores conectados a rede. Devem ser insiridos dois StandarHosts e seus nomes foram modificados para server e client.
  • 32.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ CONEX ˜OES Para concluir a topologia da rede, vamos editar o fonte do arquivo NED, e incluir um novo grupo de c´odigo type, onde vamos definir um novo tipo chamado cable que ir´a herdar o funcionamento de uma conex˜ao por cabo ethernet de 100MBs, sendo necess´ario importar esta classe. Criamos tamb´em um novo grupo chamado connections, onde definimos que os dois StandarHosts utilizam o tipo cable para conectar-se ao switch.
  • 33.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ ARQUIVO OMNETPP.INI O arquivo omnetpp.ini precisa ser modificado para configurar a simulac¸˜ao. Para esse exemplo vamos utilizar uma aplicac¸˜ao padr˜ao existente nos StandarHosts que simula o teste da conex˜ao pelo envio de um pacote ping. Como o objetivo ´e que o host cliente envie o pacote ping para o host server, o ip do host server ´e colocado como parˆametro de enderec¸o de destino.
  • 34.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ BUILD DA SIMULAC¸ ˜AO Devemos realizar o build da simulac¸˜ao, para isso basta selecionar o projeto NetworkEthernet e no menu principal do OMNeT++ clicar em Project - Build Project. Caso o processo de build ocorra com sucesso, um novo pacote chamado Binaries ser´a criado no projeto contendo os arquivos compilados da simulac¸˜ao.
  • 35.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ CONFIGURAR A EXECUC¸ ˜AO Para testar a simulac¸˜ao devemos acessar o menu principal do OMNeT++ Run e seleciona a opc¸˜ao Run Configuration. Clique no bot˜ao nova configurac¸˜ao de execuc¸˜ao no canto da tela, informe um nome para os parˆametros de execuc¸˜ao e selecione a configurac¸˜ao General no item Config name. Para concluir basta clicar em apply e em seguida na opc¸˜ao RUN.
  • 36.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ RESULTADO DA SIMULAC¸ ˜AO ETHERNET
  • 37.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ ADHOC NETWORKS Outro ambiente bastante comum para a simulac¸˜ao de sistemas distribu´ıdos s˜ao as Adhoc Networks, redes formadas sem a necessidade de uma infraestrutura instalada para a comunicac¸˜ao (Access Points, Routers, Switchs, etc). Algumas caracter´ısticas desse tipo de rede s˜ao: Utilizac¸˜ao de r´adio transmissores (IEEE 802.11, IEEE 802.15.4 ZigBee, Bluetooth); Os n´os da rede devem se coordenar para definir a identificac¸˜ao dos n´os; Deve haver tolerˆancia a desconex˜ao; Importˆancia dos algoritmos de roteamento.
  • 38.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ ADHOC NETWORKS Para criar uma simulac¸˜ao no modelo Adhoc Network devemos criar um novo projeto no OMNeT++ e vincular a dependˆencia com o projeto INET. Ent˜ao vamos criar um novo arquivo NED chamado WirelessProject.NED para definir a arquitetura da simulac¸˜ao. Clique com o bot˜ao direito sobre o source folder simulations e selecione New - Network Descrition File, informe o nome do arquivo e na pr´oxima tela selecione a opc¸˜ao NED File with one item. Na pr´oxima e ´ultima tela selecione em Initial Content a opc¸˜ao Network e finalize o wizard.
  • 39.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ ADHOC NETWORKS O pr´oximo passo ´e configurar o arquivo WirelessProject.NED, inserindo os seguintes componentes: iPv4NetworkConfigurator Esse componente coordenaram a utilizac¸˜ao no protocolo IPv4 para identificac¸˜ao dos n´os da rede; ChannelControl Esse componente tem a responsabilidade de controlar o canal de comunicac¸˜ao por r´adio transmiss˜ao, sendo que o padr˜ao ´e o padr˜ao IEEE802.11. adhocHost Esse componente ir´a simular os n´os da rede adhoc.
  • 40.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ ADHOC NETWORKS Edite o arquivo WirelessProject.NED no modo de c´odigo fonte. Conforme ilustra a figura, vamos inserir um novo grupo chamado parameters para definir uma vari´avel chamada numNodes com o valor inicial de 5, seu objetivo ´e permitir que o n´umero de n´os da rede possa ser redefinido. No modulo iPv4NetworkConfigurator insira a linha de configurac¸˜ao da faixa de IP da rede. E pro fim modifique a declarac¸˜ao da vari´avel adhochost para um vetor utilizando como tamanho inicial o numhost.
  • 41.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ ADHOC NETWORKS Configurac¸˜ao do arquivo omnetpp.ini
  • 42.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ ADHOC NETWORKS Resultado da simulac¸˜ao da Adhoc Networks
  • 43.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ WIRELESS SENSOR NETWORKS As WSN - Wireless Sensor Networks s˜ao uma subclassificac¸˜ao das adhoc networks, compostas por dispositivos sensores com restric¸ ˜oes de recursos e normalmente de baixo custo. Isso possibilita a montagem e distribuic¸˜ao desses sensores por grandes ´areas gerando redes para monitoramento destas ´areas de interesse. O MiXiM ´e um dos plugins que permite a simulac¸˜ao no ambiente OMNeT++ de redes de sensores sem fio, acrecentando n˜ao apenas asp´ectos l´ogicos mas tamb´em a representac¸˜ao de caracter´ısticas f´ısicas aos sensores.
  • 44.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ INSTALAC¸ ˜AO DO MIXIM Devido a alguns erros liberados nas ´ultimas vers˜oes deste plugin, o processo de instalac¸˜ao deve seguir os passos: Realizar o download do pacote pelo enderec¸o: http://sourceforge.net/projects/mixim/files/mixim/ Descompatar o pacote de instalac¸˜ao (tar xvzf mixim-2.3.tar.gz) Acessar o diretorio pelo bash e executar o comando ”make makefiles”para expans˜ao dos arquivos de compilac¸˜ao do projeto Executar o comando ”make”para efetuar a compilac¸˜ao do projeto Por fim, abra a IDE do OMNeT++ e selecione a opc¸˜ao File - Import - General - Import existing projects into workspace e aponte para o diretorio onde o projeto foi compilado.
  • 45.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ CRIANDO UM PROJETO COM O MIXIM O processo de criac¸˜ao de um projeto utilizando o MiXiM ´e um pouco diferente do projeto no INET. O processo inicial permanece quase igual, precisamos criar um novo projeto do tipo OMNeT++ que vamos chamar de WSN. Acione a opc¸˜ao Next.
  • 46.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ CRIANDO UM PROJETO COM O MIXIM Na pr´oxima etapa do wizard acontece a principal diferenc¸a no processo de criac¸˜ao de um projeto utilizando o MiXiM. Ele possui um template para simplificar a criac¸˜ao de projetos utilizando o simulador. Selecione a opc¸˜ao Basic MiXiM network, e acione a opc¸˜ao Next.
  • 47.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ CRIANDO UM PROJETO COM O MIXIM Na etapa de definic¸˜ao do NIC Protocol ´e poss´ıvel optar por algumas configurac¸ ˜oes importantes do projeto da camada de rede. Vamos selecionar para a camada de rede a opc¸˜ao Sensor Application Layer, para a camada de rede um protocolo de roteamento no estilo Flooding, para a camada fisica o padr˜ao 802.11. Como se trata de uma rede de sensores sem fio, ´e comum considerar nas simulac¸ ˜oes a possibilidade de mobilidade dos n´os. Selecione o modelo de velocidade constante e mantenha a simulac¸˜ao considerando apenas duas dimens˜oes. Acione a opc¸˜ao Finish.
  • 48.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ CRIANDO UM PROJETO COM O MIXIM Observe que os seguintes componentes s˜ao utilizados na simulac¸˜ao: ConnectionManager - respons´avel por gerenciar as conex˜oes utilizando o padr˜ao IEEE802.11 ou outro padr˜ao de comunicac¸˜ao sem fio; World - esse m´odulo permite com que os n´os tenham acesso a informac¸ ˜oes do ambiente onde a simulac¸˜ao esta sendo executada como por exemplo seu posicionamento geogr´afico; Host80211 - que simula os n´os de uma WSN.
  • 49.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ CRIANDO UM PROJETO COM O MIXIM O arquivo omnetpp.ini gerado pela vers˜ao 2.3, possui um erro na parametrizac¸˜ao do gerador de tr´afego de rede. No parˆametro **.appl.trafficParam deve ser inserido um ”s”que representa segundos, logo ap´os o valor um.
  • 50.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ CRIANDO UM PROJETO COM O MIXIM Agora o processo para a execuc¸˜ao segue o mesmo do plugin INET, ´e necess´ario realizar o Build do projeto e ent˜ao criar um conjunto de configurac¸˜ao de execuc¸˜ao para ent˜ao iniciar a simulac¸˜ao.
  • 51.
    FISL 14 SISTEMASDISTRIBU´IDOS OMNET++ OBRIGADO! Universidade da Regi˜ao de Joinville - UNIVILLE Departamento de Inform´atica Prof. Walter Silvestre Coan, MSc. walter.s@univille.br - walter.coan@gmail.com http://www.univille.br/deptoinformatica http://www.faltoupontoevirgula.com.br 100% LATEX