SlideShare a Scribd company logo
1 of 51
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

More Related Content

Similar to Simulação de sistemas distribuídos com OMNeT

I Workshop de Redes do Iespes
I Workshop de Redes do IespesI Workshop de Redes do Iespes
I Workshop de Redes do Iespesluizfelipemz
 
Aula 4 introducao iii
Aula 4   introducao iiiAula 4   introducao iii
Aula 4 introducao iiiwab030
 
Cloud Native Microservices - Rumo a uma Arquitetura de Microsserviços Nativos...
Cloud Native Microservices - Rumo a uma Arquitetura de Microsserviços Nativos...Cloud Native Microservices - Rumo a uma Arquitetura de Microsserviços Nativos...
Cloud Native Microservices - Rumo a uma Arquitetura de Microsserviços Nativos...Frederico Garcia Costa
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas OperacionaisAdir Kuhn
 
Apresentacao Aula01 So
Apresentacao Aula01 SoApresentacao Aula01 So
Apresentacao Aula01 Soguest30b190
 
Sistemas Distribuidos Java
Sistemas Distribuidos JavaSistemas Distribuidos Java
Sistemas Distribuidos Javalimadavi
 
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on AzureTDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azuretdc-globalcode
 
Tecnologia front end back-end
Tecnologia front end back-end Tecnologia front end back-end
Tecnologia front end back-end Andressa Silveira
 
DISCIPLINA REDES 1 TRABALHO A1
 DISCIPLINA REDES 1 TRABALHO A1 DISCIPLINA REDES 1 TRABALHO A1
DISCIPLINA REDES 1 TRABALHO A1Marcus Java
 
Microservices arquitetura parte 2
Microservices arquitetura parte 2Microservices arquitetura parte 2
Microservices arquitetura parte 2Agni Campos
 
Sistemas Operacionais parte 1
Sistemas Operacionais parte 1Sistemas Operacionais parte 1
Sistemas Operacionais parte 1Matheus Brito
 
Arquitetura e instalacao p10
Arquitetura e instalacao p10Arquitetura e instalacao p10
Arquitetura e instalacao p10Emerson Torres
 
Computação Paralela - Uma Abordagem Geral
Computação Paralela - Uma Abordagem GeralComputação Paralela - Uma Abordagem Geral
Computação Paralela - Uma Abordagem GeralIgor José F. Freitas
 
Sistemas Embarcados - 22 06-2011
Sistemas Embarcados - 22 06-2011Sistemas Embarcados - 22 06-2011
Sistemas Embarcados - 22 06-2011Steve Rogers
 

Similar to Simulação de sistemas distribuídos com OMNeT (20)

Arquitetura paralela
Arquitetura paralelaArquitetura paralela
Arquitetura paralela
 
I Workshop de Redes do Iespes
I Workshop de Redes do IespesI Workshop de Redes do Iespes
I Workshop de Redes do Iespes
 
Aula 4 introducao iii
Aula 4   introducao iiiAula 4   introducao iii
Aula 4 introducao iii
 
Protocolos logicos de_comunicacao
Protocolos logicos de_comunicacaoProtocolos logicos de_comunicacao
Protocolos logicos de_comunicacao
 
Cloud Native Microservices - Rumo a uma Arquitetura de Microsserviços Nativos...
Cloud Native Microservices - Rumo a uma Arquitetura de Microsserviços Nativos...Cloud Native Microservices - Rumo a uma Arquitetura de Microsserviços Nativos...
Cloud Native Microservices - Rumo a uma Arquitetura de Microsserviços Nativos...
 
Apostila SO
Apostila SOApostila SO
Apostila SO
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Apresentacao Aula01 So
Apresentacao Aula01 SoApresentacao Aula01 So
Apresentacao Aula01 So
 
Supervisão
SupervisãoSupervisão
Supervisão
 
Arquitetura tcp ip - 1
Arquitetura tcp ip - 1Arquitetura tcp ip - 1
Arquitetura tcp ip - 1
 
Sistemas Distribuidos Java
Sistemas Distribuidos JavaSistemas Distribuidos Java
Sistemas Distribuidos Java
 
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on AzureTDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
 
Tecnologia front end back-end
Tecnologia front end back-end Tecnologia front end back-end
Tecnologia front end back-end
 
DISCIPLINA REDES 1 TRABALHO A1
 DISCIPLINA REDES 1 TRABALHO A1 DISCIPLINA REDES 1 TRABALHO A1
DISCIPLINA REDES 1 TRABALHO A1
 
Microservices arquitetura parte 2
Microservices arquitetura parte 2Microservices arquitetura parte 2
Microservices arquitetura parte 2
 
Sistemas Operacionais parte 1
Sistemas Operacionais parte 1Sistemas Operacionais parte 1
Sistemas Operacionais parte 1
 
Arquitetura e instalacao p10
Arquitetura e instalacao p10Arquitetura e instalacao p10
Arquitetura e instalacao p10
 
Computação Paralela - Uma Abordagem Geral
Computação Paralela - Uma Abordagem GeralComputação Paralela - Uma Abordagem Geral
Computação Paralela - Uma Abordagem Geral
 
Sistemas Embarcados - 22 06-2011
Sistemas Embarcados - 22 06-2011Sistemas Embarcados - 22 06-2011
Sistemas Embarcados - 22 06-2011
 
ALUNO.docx
ALUNO.docxALUNO.docx
ALUNO.docx
 

More from Walter Coan

CODECON Caminhos para Formação de um Arquiteto de Soluções em Nuvem
CODECON Caminhos para Formação de um Arquiteto de Soluções em NuvemCODECON Caminhos para Formação de um Arquiteto de Soluções em Nuvem
CODECON Caminhos para Formação de um Arquiteto de Soluções em NuvemWalter Coan
 
Talk Floripa - Desenvolvimento de projetos de Internet das Coisas
Talk Floripa - Desenvolvimento de projetos de Internet das CoisasTalk Floripa - Desenvolvimento de projetos de Internet das Coisas
Talk Floripa - Desenvolvimento de projetos de Internet das CoisasWalter Coan
 
TechConnection 2023 Floripa Azure Container Apps
TechConnection 2023 Floripa Azure Container AppsTechConnection 2023 Floripa Azure Container Apps
TechConnection 2023 Floripa Azure Container AppsWalter Coan
 
Shift left DevOps Experience
Shift left DevOps ExperienceShift left DevOps Experience
Shift left DevOps ExperienceWalter Coan
 
DevFest2023-Pragmatismo da Internet das Coisas
DevFest2023-Pragmatismo da Internet das CoisasDevFest2023-Pragmatismo da Internet das Coisas
DevFest2023-Pragmatismo da Internet das CoisasWalter Coan
 
DevOps Experience 2022: Build de aplicações Spring Boot utilizando Github Act...
DevOps Experience 2022: Build de aplicações Spring Boot utilizando Github Act...DevOps Experience 2022: Build de aplicações Spring Boot utilizando Github Act...
DevOps Experience 2022: Build de aplicações Spring Boot utilizando Github Act...Walter Coan
 
Primeira certificação no Azure: AZ-900
Primeira certificação no Azure: AZ-900Primeira certificação no Azure: AZ-900
Primeira certificação no Azure: AZ-900Walter Coan
 
Novidades da plataforma Azure IoT
Novidades da plataforma Azure IoTNovidades da plataforma Azure IoT
Novidades da plataforma Azure IoTWalter Coan
 
Aplicações resilientes e Chaos Engineering em .NET com Polly + Simmy
Aplicações resilientes e Chaos Engineering em .NET com Polly + SimmyAplicações resilientes e Chaos Engineering em .NET com Polly + Simmy
Aplicações resilientes e Chaos Engineering em .NET com Polly + SimmyWalter Coan
 
TDC Connections 2022 - .NET + Microsserviços: alternativas open source para d...
TDC Connections 2022 - .NET + Microsserviços: alternativas open source para d...TDC Connections 2022 - .NET + Microsserviços: alternativas open source para d...
TDC Connections 2022 - .NET + Microsserviços: alternativas open source para d...Walter Coan
 
Desenvolvimento de aplicações para o Microsoft Azure utilizando C#
Desenvolvimento de aplicações para o Microsoft Azure utilizando C#Desenvolvimento de aplicações para o Microsoft Azure utilizando C#
Desenvolvimento de aplicações para o Microsoft Azure utilizando C#Walter Coan
 
Microsoft Reactor Desenvolvimento serverless com azure function
Microsoft Reactor Desenvolvimento serverless com azure functionMicrosoft Reactor Desenvolvimento serverless com azure function
Microsoft Reactor Desenvolvimento serverless com azure functionWalter Coan
 
Azure Floripa - Introdução a plataforma Azure IoT
Azure Floripa - Introdução a plataforma Azure IoTAzure Floripa - Introdução a plataforma Azure IoT
Azure Floripa - Introdução a plataforma Azure IoTWalter Coan
 
Utilização do NVidia DeepStream para execução de modelos de IA no Azure IoT Edge
Utilização do NVidia DeepStream para execução de modelos de IA no Azure IoT EdgeUtilização do NVidia DeepStream para execução de modelos de IA no Azure IoT Edge
Utilização do NVidia DeepStream para execução de modelos de IA no Azure IoT EdgeWalter Coan
 
Azure Sphere: a evolução da plataforma de IoT concebida com princípios de seg...
Azure Sphere: a evolução da plataforma de IoT concebida com princípios de seg...Azure Sphere: a evolução da plataforma de IoT concebida com princípios de seg...
Azure Sphere: a evolução da plataforma de IoT concebida com princípios de seg...Walter Coan
 
Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.
Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.
Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.Walter Coan
 
MVPConf 2021 - .NET + Azure Functions Dicas e truques no desenvolvimento serv...
MVPConf 2021 - .NET + Azure Functions Dicas e truques no desenvolvimento serv...MVPConf 2021 - .NET + Azure Functions Dicas e truques no desenvolvimento serv...
MVPConf 2021 - .NET + Azure Functions Dicas e truques no desenvolvimento serv...Walter Coan
 
Canal .NET - Utilizando o Event Hub e o Event Grid
Canal .NET - Utilizando o Event Hub e o Event GridCanal .NET - Utilizando o Event Hub e o Event Grid
Canal .NET - Utilizando o Event Hub e o Event GridWalter Coan
 
Internet das Coisas na Medicina - Summit ACM 2021
Internet das Coisas na Medicina - Summit ACM 2021Internet das Coisas na Medicina - Summit ACM 2021
Internet das Coisas na Medicina - Summit ACM 2021Walter Coan
 
TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...
TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...
TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...Walter Coan
 

More from Walter Coan (20)

CODECON Caminhos para Formação de um Arquiteto de Soluções em Nuvem
CODECON Caminhos para Formação de um Arquiteto de Soluções em NuvemCODECON Caminhos para Formação de um Arquiteto de Soluções em Nuvem
CODECON Caminhos para Formação de um Arquiteto de Soluções em Nuvem
 
Talk Floripa - Desenvolvimento de projetos de Internet das Coisas
Talk Floripa - Desenvolvimento de projetos de Internet das CoisasTalk Floripa - Desenvolvimento de projetos de Internet das Coisas
Talk Floripa - Desenvolvimento de projetos de Internet das Coisas
 
TechConnection 2023 Floripa Azure Container Apps
TechConnection 2023 Floripa Azure Container AppsTechConnection 2023 Floripa Azure Container Apps
TechConnection 2023 Floripa Azure Container Apps
 
Shift left DevOps Experience
Shift left DevOps ExperienceShift left DevOps Experience
Shift left DevOps Experience
 
DevFest2023-Pragmatismo da Internet das Coisas
DevFest2023-Pragmatismo da Internet das CoisasDevFest2023-Pragmatismo da Internet das Coisas
DevFest2023-Pragmatismo da Internet das Coisas
 
DevOps Experience 2022: Build de aplicações Spring Boot utilizando Github Act...
DevOps Experience 2022: Build de aplicações Spring Boot utilizando Github Act...DevOps Experience 2022: Build de aplicações Spring Boot utilizando Github Act...
DevOps Experience 2022: Build de aplicações Spring Boot utilizando Github Act...
 
Primeira certificação no Azure: AZ-900
Primeira certificação no Azure: AZ-900Primeira certificação no Azure: AZ-900
Primeira certificação no Azure: AZ-900
 
Novidades da plataforma Azure IoT
Novidades da plataforma Azure IoTNovidades da plataforma Azure IoT
Novidades da plataforma Azure IoT
 
Aplicações resilientes e Chaos Engineering em .NET com Polly + Simmy
Aplicações resilientes e Chaos Engineering em .NET com Polly + SimmyAplicações resilientes e Chaos Engineering em .NET com Polly + Simmy
Aplicações resilientes e Chaos Engineering em .NET com Polly + Simmy
 
TDC Connections 2022 - .NET + Microsserviços: alternativas open source para d...
TDC Connections 2022 - .NET + Microsserviços: alternativas open source para d...TDC Connections 2022 - .NET + Microsserviços: alternativas open source para d...
TDC Connections 2022 - .NET + Microsserviços: alternativas open source para d...
 
Desenvolvimento de aplicações para o Microsoft Azure utilizando C#
Desenvolvimento de aplicações para o Microsoft Azure utilizando C#Desenvolvimento de aplicações para o Microsoft Azure utilizando C#
Desenvolvimento de aplicações para o Microsoft Azure utilizando C#
 
Microsoft Reactor Desenvolvimento serverless com azure function
Microsoft Reactor Desenvolvimento serverless com azure functionMicrosoft Reactor Desenvolvimento serverless com azure function
Microsoft Reactor Desenvolvimento serverless com azure function
 
Azure Floripa - Introdução a plataforma Azure IoT
Azure Floripa - Introdução a plataforma Azure IoTAzure Floripa - Introdução a plataforma Azure IoT
Azure Floripa - Introdução a plataforma Azure IoT
 
Utilização do NVidia DeepStream para execução de modelos de IA no Azure IoT Edge
Utilização do NVidia DeepStream para execução de modelos de IA no Azure IoT EdgeUtilização do NVidia DeepStream para execução de modelos de IA no Azure IoT Edge
Utilização do NVidia DeepStream para execução de modelos de IA no Azure IoT Edge
 
Azure Sphere: a evolução da plataforma de IoT concebida com princípios de seg...
Azure Sphere: a evolução da plataforma de IoT concebida com princípios de seg...Azure Sphere: a evolução da plataforma de IoT concebida com princípios de seg...
Azure Sphere: a evolução da plataforma de IoT concebida com princípios de seg...
 
Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.
Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.
Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.
 
MVPConf 2021 - .NET + Azure Functions Dicas e truques no desenvolvimento serv...
MVPConf 2021 - .NET + Azure Functions Dicas e truques no desenvolvimento serv...MVPConf 2021 - .NET + Azure Functions Dicas e truques no desenvolvimento serv...
MVPConf 2021 - .NET + Azure Functions Dicas e truques no desenvolvimento serv...
 
Canal .NET - Utilizando o Event Hub e o Event Grid
Canal .NET - Utilizando o Event Hub e o Event GridCanal .NET - Utilizando o Event Hub e o Event Grid
Canal .NET - Utilizando o Event Hub e o Event Grid
 
Internet das Coisas na Medicina - Summit ACM 2021
Internet das Coisas na Medicina - Summit ACM 2021Internet das Coisas na Medicina - Summit ACM 2021
Internet das Coisas na Medicina - Summit ACM 2021
 
TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...
TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...
TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...
 

Simulação de sistemas distribuídos com OMNeT

  • 1. 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
  • 2. 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
  • 3. 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
  • 4. 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.
  • 5. 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)
  • 6. 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)
  • 7. 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.
  • 8. 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.
  • 9. 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.
  • 10. 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
  • 11. 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.
  • 12. 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.
  • 13. 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
  • 14. 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.
  • 15. 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].
  • 16. 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.
  • 17. 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”.
  • 18. 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”.
  • 19. 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.
  • 20. 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.
  • 21. 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.
  • 22. 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.
  • 23. 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.
  • 24. 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.
  • 25. 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.
  • 26. 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.
  • 27. 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.
  • 28. 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.
  • 29. 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.
  • 30. 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.
  • 31. 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.
  • 32. 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.
  • 33. 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.
  • 34. 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.
  • 35. 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.
  • 36. FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++ RESULTADO DA SIMULAC¸ ˜AO ETHERNET
  • 37. 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.
  • 38. 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.
  • 39. 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.
  • 40. 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.
  • 41. FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++ ADHOC NETWORKS Configurac¸˜ao do arquivo omnetpp.ini
  • 42. FISL 14 SISTEMAS DISTRIBU´IDOS OMNET++ ADHOC NETWORKS Resultado da simulac¸˜ao da Adhoc Networks
  • 43. 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.
  • 44. 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.
  • 45. 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.
  • 46. 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.
  • 47. 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.
  • 48. 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.
  • 49. 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.
  • 50. 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.
  • 51. 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