Monitoração inteligente de estados de comunicação para

Propaganda
Monitoração inteligente de estados de comunicação para
aplicações sobre redes veiculares
Margarete Sá e Sérgio Gorender
1
Laboratório de Sistemas Distribuídos (LaSiD)
Departamento de Ciência da Computação
Universidade Federal da Bahia
Salvador - BA - Brasil
[email protected],[email protected]
Abstract. Distributed applications which have been developed to execute over
vehicular networks have strong communication requirements. Applications like
Vehicular formation, which is a distributed application in which a group of vehicles
must take and maintain a formation, need a reliable inter-vehicle-communication
service with strict time constraints. There are many distinct network protocols
to cope with vehicular communications (the VANETs). This protocols presents
different solutions to the inter-vehicular-communication, providing distinct levels of
reliability. This paper presents link state monitor, modeled as rules, which can be
inserted into the knowledge base of an intelligent, autonomous agent. The monitor
adapts intelligently to dynamic changes which occur in the network by changing its
monitoring strategies. With this information, it is possible to build failure detection
and group communication services, which are fundamental mechanisms to provide
reliable communication. The monitor has been implemented in the OMNet++
network simulator in association with the SUMO traffic simulator.
Resumo. Aplicações distribuídas sobre redes veiculares apresentam fortes requisitos
de comunicação. Formação veicular, por exemplo, uma aplicação distribuída na
qual um grupo de veículos precisa assumir e manter uma formação, em movimento,
necessita de um serviço de comunicação veicular confiável e com rígidas restrições
temporais. As redes veiculares ad hoc fornecem diversas soluções diferentes para
a comunicação entre veículos, com diferentes níveis de confiabilidade. Estas
soluções são baseadas em algoritmos de redes, para descobrir e/ou registrar rotas
de comunicação. Neste artigo apresentamos um monitor de estados de comunicação,
modelado através de regras, a serem inseridas na base de conhecimento de um
agente inteligente autônomo. O monitor se adapta de forma inteligente às alterações
dinâmicas que ocorrem na rede, alterando suas estratégias de monitoração. Com
esta informação pode-se construir serviços de detecção de defeitos e comunicação
em grupo, essenciais para prover confiabilidade à comunicação. O monitor foi
implementado no simulador de redes OMNet++ em associação com o simulador de
tráfego SUMO.
1. Introdução
Formação veicular é uma aplicação na qual um grupo de veículos controlados por agentes
inteligentes autônomos devem cooperar para assumir e manter uma formação, estando em
movimento. Para que este objetivo seja alcançado, os agentes precisam se comunicar,
informando suas posições e seus vetores de movimentação, e possam tomar decisões
em conjunto [Willke et al. 2009, Chen and Wang 2005, Fax and Murray 2004]. Algumas
informações podem ter de ser enviadas a agentes específicos, enquanto outras precisarão ser
encaminhadas para todos os agentes do grupo de formação. Esta aplicação é considerada
como uma aplicação de consenso em sistemas multiagentes [Olfati-saber et al. 2007,
Ren et al. 2005]. Nas aplicações de consenso em sistemas multiagentes, os agentes inteligente
precisam se comunicar e cooperar estabelecendo um acordo com relação ao que devem
executar. Além da formação veicular distribuída, também são consideradas como aplicações
de consenso em sistemas multiagentes o encontro no espaço, teoria de flocking, sincronização
de osciladores acoplados, e outras.
A comunicação entre os agentes, na formação veicular, ocorre através de uma rede
veicular, uma rede de comunicação sem fio, formada dinamicamente pelos veículos em
movimento. Para a aplicação de formação veicular, a comunicação deve ocorrer de forma
confiável e com garantias temporais, ou seja, deve haver garantias de que as mensagens serão
de fato encaminhadas e recebidas nos seus destinos, e de que estas mensagens serão recebidas
em prazos limitados. Estas garantias são requisitos fundamentais da formação veicular com
relação aos serviços de comunicação, pois as informações precisam ser trocadas entre os
agentes veiculares garantindo que as decisões com relação à formação possam ser tomadas
no tempo certo.
Diversos protocolos de comunicação para redes veiculares têm sido apresentados, e
estão em desenvolvimento. Estes protocolos têm o objetivo de prover a construção de uma rede
de comunicação dinâmica, ad hoc, entre os veículos (VANET - Vehicular Ad Hoc Network)
[Karagiannis et al. 2011, Willke et al. 2009, Kakarla et al. 2011]. A rede se forma á medida
em que os veículos se colocam ao alcance de comunicação de seus dispositivos de comunicação
sem fio, e/ou demandam a comunicação entre veículos fora do alcance direto de seus sinais.
Neste segundo caso, a comunicação deverá ser efetuada através de veículos intermediários, que
irão encaminhar (rotear) a mensagem transferida até o seu destino, construindo uma rota de
comunicação.
Existem diversas soluções propostas para a comunicação entre veículos em uma rede
veicular. São protocolos a serem executados pelos dispositivos de comunicação sem fio,
provendo soluções diferentes para o desafio da comunicação entre veículos, em especial quando
os veículos estão fora do alcance de seus dispositivos sem fio. As rotas para a comunicação
entre os veículos são construídas de forma dinâmica, sob demanda. Estes protocolos fornecem
diferentes níveis de confiabilidade à comunicação.
Neste artigo apresentamos um monitor de estados de comunicação, modelado em
regras, a serem inseridas na base de conhecimento dos agentes. Estas regras analisam as
mensagens trocadas entre os agentes, e fornecem a cada agente uma visão do estado de
comunicação deste agente com cada outro agente do grupo. O monitor de estados faz parte de
um serviço de comunicação para VANETS, adequado à formação veicular, o qual chamamos
de I-CAR. O I-CAR foi apresentado em [Gorender and Sá 2012], tendo, além do monitor de
estados, os serviços de comunicação unicast e broadcast e um serviço de detecção de defeitos.
No I-Car adotamos uma abordagem nova para a construção de serviços de comunicação
para redes veiculares. Diferente dos demais trabalhos, desenvolvemos um serviço de
comunicação veicular modelado em regras. O serviço de comunicação é definido como um
conjunto de regras a ser adicionado à base de conhecimento de cada agente veicular. De acordo
com nossa abordagem, as decisões com relação à melhor forma de se efetuar a comunicação se
dá pela análise efetuada pelas regras, no nível da própria aplicação e não no nível da rede.
Como vantagem, a abordagem baseada em regras permite que o serviço de comunicação
possa ser facilmente modificado e adaptado: 1) aos diferentes requisitos apresentados por cada
aplicação; 2) à dinâmica do ambiente das redes veiculares, mantendo uma visão da topologia
da rede para cada agente; 3) à heterogeneidade do ambiente, respeitando a individualidade de
cada nó da rede. Isto faz com que o agente possa ter suas próprias regras e visão do estado do
ambiente de comunicação e tome suas decisões em relação a atuação no ambiente.
Neste ambiente de comunicação dinâmico, conhecer o estado atual de comunicação
com os demais agentes do sistema permite aos agentes tomar decisões com relação a o
que fazer para manter a formação, apesar das dificuldades com a comunicação. Utilizando
estas informações, o agente pode tomar decisões com relação às melhores opções para a
comunicação, e no caso de impedimentos na comunicação, tomar decisões com relação à
aplicação que está sendo executada.
O artigo se organiza da seguinte forma: a seção 2 apresenta as características de redes
veiculares, a seção 3 descreve o monitor de estados de comunicação, a seção 4 mostra a
implementação de um protótipo do monitor de estados e alguns resultados de experimentos
realizados e a seção 5 apresenta as conclusões ao trabalho.
2. Redes de comunicação veiculares
Redes de comunicação veiculares são redes construídas de forma dinâmica, e sob
demanda. Os veículos estabelecem comunicação quando desejam, e se estiverem no
alcance de seus dispositivos de comunicação. A comunicação entre veículos (IVC inter-vehicle-communication) pode ser suportada pelo desenvolvimento de redes móveis ad hoc
MANET (Mobile Ad Hoc Networks) as quais não garantem uma infra-estrutura fixa e podem
acomodar uma constante evolução da topologia da rede. Contudo, algumas características do
ambiente diferem as redes MANETs comuns das redes de IVC, criando assim uma subclasse
de redes MANETs para a comunicação veicular, denominada VANET (Vehicular Ad Hoc
Networks) [Sichitiu and Kihl 2008, Karagiannis et al. 2011].
As VANETs possuem como requisitos: nós com alta mobilidade como aviões, trens,
automóveis, robôs, entre outros; possuem vários tipos de aplicações diferentes que interferem
nas arquiteturas e infra-estruturas do sistema de comunicação; requerem um novo paradigma
de roteamento significativamente diferente dos disponíveis em redes MANETs; devem manter
a conectividade em uma comunicação fim-a-fim, mesmo com o alto grau de mobilidade dos
nós; a eficiência da energia dos nós não é um fator relevante, pois, o sistema considera que a
carga da energia é renovada [Sichitiu and Kihl 2008]. Os veículos se comunicam via conexões
sem fio, podendo utilizar protocolos como: IEEE 802.11p (WiFi); bluetooth; redes móveis de
celular (GSM /GPRS - Global System for Mobile Communications e 3G).
Os protocolos para a construção de VANETs são classificados como: baseados em
topologia, baseados em posição, baseados em cluster, broadcast e geocast [Kakarla et al. 2011,
Dongre et al. 2012]. Embora baseados em princípios diferentes (topologia da rede ou
organização geográfica, por exemplo, ou uso de broadcast), em geral todos oferecem a
possibilidade de comunicação roteada entre os veículos, desde que exista a possibilidade de
uma rota para o tráfego da informação, formada por uma sequencia de veículos, que estejam
ao alcance da comunicação. Muitos destes protocolos utilizam informações do ambiente e da
aplicação em suas decisões, como por exemplo, a distância entre os veículos, a velocidade
e direção dos veículos, condições de vizinhança, a capacidade do sinal de comunicação,
entre outros para definir o modo de transmissão de suas mensagens fim-a-fim e prover
alguma confiança na entrega e no prazo desejados [Karagiannis et al. 2011, Willke et al. 2009,
Sichitiu and Kihl 2008].
O protocolo FROV (Father Relay and Oracle for VANET) [Amoroso et al. 2009], por
exemplo, realiza escolhas sobre o modo da transmissão de mensagens a partir de informações
fornecidas por um oráculo. Este oráculo mantém informações tais como: uma lista de veículos
vizinhos; uma lista de veículos conhecidos de transmissores de mensagens do oráculo; etc.
É possível, que devido à movimentação, veículos fiquem fora do alcance de conexão,
mesmo considerando comunicação roteada, em um dado momento, impossibilitando a
comunicação. Nos casos em que a comunicação não é possível, torna-se interessante para a
formação veicular, obter uma informação sobre este estado de comunicação, para possibilitar
decisões, considerando a inexistência de comunicação naquele momento.
Na próxima seção apresentamos um monitor de estados de comunicação, baseado em
regras, que opera junto com a aplicação de formação veicular. Este monitor faz parte de um
conjunto de serviços de comunicação, o qual chamamos de I-CAR [Gorender and Sá 2012].
3. Monitor de estados de comunicação
O monitor de estados de comunicação que descrevemos nesta seção faz parte de um conjunto
de serviços de comunicação, incluindo comunicação unicast e broadcast. Estes serviços são
modelados em regras, e desenvolvidos para fazer parte da base de conhecimentos de agentes
distribuídos. Chamamos este conjunto de serviços de I-CAR. Os serviços de comunicação
unicast e broadcast foram apresentados em [Gorender and Sá 2012].
O I-CAR caracteriza uma modelagem em regras de um serviço de comunicação para
VANETs que pode ser classificado como baseado em topologia. As regras modelam um
protocolo proativo, no qual, o monitor de estados detecta os estados dos links de comunicação,
utilizados para o roteamento de mensagens na comunicação.
O monitor de estados de comunicação utiliza mensagens trocadas pela aplicação
distribuída e também geradas pelo próprio monitor, para monitorar alterações no estado de
comunicação de cada agente veicular. O envio das mensagens pelo próprio monitor é definido
a partir da estratégia de monitoração adotada por cada veículo, ao monitorar cada um dos
demais veículos envolvidos na aplicação. Esta estratégia é definida por um conjunto de regras,
utilizadas pelo agente para analisar o estado de comunicação anterior do veiculo monitorado,
para obter a resposta pretendida de forma eficiente.
As regras foram desenvolvidas com o objetivo de serem adicionadas à base de
conhecimento do agente veicular envolvido na aplicação, sendo utilizadas tanto para decidir
pela melhor forma de monitorar cada um dos agentes, como para definir o estado de
comunicação destes agentes como resultado da monitoração. As regras foram agrupadas em
diferentes subconjuntos, baseados em sua utilização.
Assumimos a existência de um grupo de agentes veiculares se comunicando via um
protocolo para comunicação entre veículos. Para cada dois agentes, em um determinado
momento do tempo, é possível que a informação possa ser transferida entre ambos nas duas
direções, ou que apenas um dos agentes possa transmitir mensagens para o outro ou, até mesmo,
que ambos não possam se comunicar. Isto ocorre devido às características do ambiente de
comunicação o qual é vulnerável aos efeitos da mobilidade (e.g. distância entre os agentes), do
clima e de outros tipos de interferências nos sinais de comunicação (e.g. tempestades e veículos
entrando em túneis urbanos das grandes cidades).
Consideramos, também, que no caso de agentes não adjacentes, a comunicação
se dá pelo encaminhamento de mensagens através de outros veículos na rede. Embora
existam protocolos para efetuar estes roteamentos, adotamos o encaminhamento de mensagens
de monitoração pelo próprio monitor, ficando estes casos explícitos para o serviço de
monitoramento. Desta forma, estas mensagens podem ser utilizadas pelos agentes de
encaminhamento para também atualizarem sua visão do estado de comunicação dos demais
agentes envolvidos na comunicação.
A informação sobre o estado de comunicação dos agentes é utilizada pelo serviço de
comunicação para decidir por estratégias e rotas para os serviços de comunicação unicast e
broadcast ([Gorender and Sá 2012]). Estas informações estão na base de conhecimento do
agente, podendo ser utilizadas pelo agente para tomar decisões com relação à aplicação sendo
executada.
3.1. Estado do ambiente de comunicação entre os agentes
Cada agente monitora o estado de comunicação dos demais agentes veiculares com relação
ao próprio agente. Temos, portanto, que o agente local a possui uma visão própria do seu
estado da comunicação com cada agente remoto b com o qual existe uma necessidade de
comunicação. Para isso, são definidas quatro situações que definem o estado de comunicação
do agente remoto b com relação ao agente a local, em um instante de tempo recente:
• Communicating - O agente a consegue transmitir para e receber informações do agente
b.
• Non-Communicating - O agente a, não recebe e não transmite mensagens para b.
• Receiving - O agente a apenas consegue transmitir mensagens para o agente b. a
reconhece que transmitiu, em função de informações obtidas diretamente da rede, mas,
não possui garantias de que a mensagem foi realmente recebida por b.
• Transmiting - O agente a, apenas recebe mensagens de b.
Cada vez que o estado de comunicação de um agente é alterado, um tempo máximo
(timeout) para a próxima atualização é calculado. O cálculo do timeout é baseado nas condições
de vizinhança dos agentes envolvidos. A condição da vizinhança é uma das propriedades
que compõe a situação da comunicação entre o agente local a e o agente remoto b, a qual
determina se um agente consegue enviar e receber informações com ou sem a presença de
agentes intermediários (roteamento) para encaminhar as mensagens transmitidas. Para isso,
são definidas duas situações de adjacência entre um par de agentes:
• Não-adjacente - chama-se um agente remoto b de não-adjacente ao agente local a
quando durante a comunicação entre eles é necessário utilizar agentes intermediários
para encaminhar as mensagens. Um agente não-adjacente pode assumir qualquer dos
4 estados definidos.
• Adjacentes - Agentes adjacentes são aqueles que conseguem se comunicar entre si sem
o uso de encaminhamento de mensagens. Um agente b pode ser Transmiting, Receiving
e Communicating em relação aos seus agentes adjacentes.
Em função dos estados de comunicação dos agentes monitorados identificados por
um agente, este define o seu estado de comunicação com relação a todo o grupo de agentes
envolvidos na comunicação. Desta forma um agente pode ser, com relação ao grupo de agentes
da aplicação: (i) comunicável para o grupo de agentes quando envia e recebe informações
de pelo menos um agente remoto do grupo; (ii) parcialmente comunicável para o grupo de
agentes, quando é capaz, apenas, de receber mensagens de membros do grupo ou é capaz,
apenas, de transmitir informações para outros agentes do grupo; (iii) incomunicável para o
grupo de agentes quando não consegue receber e nem transmitir informações a qualquer agente
do grupo.
3.2. O conjunto de Ações dos Agentes
Os agentes veiculares executam ações para enviar, responder e encaminhar mensagens de
monitoração, assim como para atualizar o estado de comunicação dos diversos agentes
monitorados. Mensagens enviadas pela própria aplicação são também percebidas pelo monitor
e utilizadas para atualizar os estados de comunicação, reduzindo assim a quantidade de
mensagens enviadas pelo monitor. A seguir listamos algumas das ações executadas pelo
monitor com relação ao envio de mensagens:
•
•
•
•
•
•
Enviar-solicitacao-monitoramento-agente-adjacente(a, b);
Enviar-solicitacao-monitoramento-agente-não-adjacente(a, b, c);
Enviar-solicitacao-monitoramento-do-estado-agente-todos-agentes(a, b);
Inserir-solicitacao-monitoramento(b);
Encaminhar-mensagem-solicitacao-monitoramento-agente-destino-adjacente(d, b, a);
Encaminhar-mensagem-solicitacao-monitoramento-agente-destino-não-adjacente(d,
b, a, c);
• Encaminhar-solicitacao-monitoramento-o-estado-agente-todos-agentes(d, b, a):
• Atualizar-solicitacao-monitoramento-existente(d, b);
• Enviar-mensagem-resposta-monitoramento-agente-adjacente;
As ações que efetuam a atualização do estado de comunicação dos agentes monitorados
são:
•
•
•
•
Atribuir-Estado-Agente[agente, estado];
Atribuir-adjacência-timeout(a, b);
Atribuir-adjacência-timeout-com-encaminhamento(a, b, c);
Atualizar-matriz-estado-do-agente-de-origem-da-mensagem;
3.3. Base de conhecimento do monitor de estados de comunicação.
As regras do monitor de estados são agrupadas em conjuntos separados, de acordo com seus
objetivos, e ativadas por diferentes eventos, como por exemplo a necessidade de se enviar uma
solicitação de estado a um agente, quando a informação de estado deste agente veicular remoto
se tornar desatualizada, ou quando mensagens (do próprio monitor ou da aplicação) forem
recebidas, para serem encaminhadas ou processadas. As regras para o envio de mensagem de
monitoração estabelecem uma estratégia para obter o estado do agente monitorado, a partir
da informação de estado atual. Os agentes adjacentes podem ser monitorados diretamente,
enquanto que os agentes não adjacentes só podem ser monitorados através de outros agentes.
Temos conjuntos de regras para enviar solicitação de monitoramento para o grupo,
regras para encaminhar a solicitação de monitoramento, regras quando receber solicitação
de monitoramento, regras para enviar mensagem de resposta a solicitação de monitoramento,
regras para encaminhar a mensagem de resposta e regras para receber mensagem de resposta de
solicitação de monitoramento. Para evitar uma sobrecarga de mensagens geradas pelo monitor
de estados, as mensagens geradas pela própria aplicação são aproveitadas para a atualização
do estado de comunicação do agente comunicante. Existe um conjunto de regras para o
recebimento de quaisquer mensagens da aplicação. Na Figura 1 apresentamos um exemplo
das regras. Nesta figura temos parte das regras para enviar mensagem de solicitação de
monitoramento. Nas seções a seguir descrevemos o escopo e funcionamento de cada conjunto
de regras. Por falta de espaço a base de conhecimento não será apresentada integralmente.
É interessante notar que sempre que um agente receber uma mensagem, para
encaminhar ou processar, a mensagem é utilizada para o agente atualizar os estados de
comunicação dos agentes envolvidos na transmissão da mensagem.
3.4. Regras para o envio de mensagem de solicitação de monitoramento para agentes a
serem monitorados
O conjunto de regras que estabelece a estratégia para a solicitação de monitoramento
é apresentado na Figura 1. Estas regras permitem ao agente monitor decidir sobre a
melhor forma de agir para monitorar os agentes remotos em função do seu estado atual
de comunicação em relação ao agente local. As regras indicam a ação a ser executada
em função de o agente monitorado ser adjacente ou não, do estado atual de comunicação,
de existir alguma solicitação de monitoração pendente para este agente e do resultado
da última monitoração realizada. As alternativas para a solicitação de monitoramento
são explicitadas pelas ações:
Enviar-solicitacao-monitoramento-agente-adjacente(a,
b),
Enviar-solicitacao-monitoramento-agente-nao-adjacente(a,
b,
c)
e
Enviar-solicitacao-monitoramento-estado-agente-todos-agentes(a, b).
O tempo para a
espera de uma resposta (timeout) para o monitoramento é calculado de forma diferente de
acordo com a opção de monitoramento selecionada. As ações Atribuir-adjacência-timeout e
Atribuir-adjacência-timeout-com-encaminhamento efetuam este cálculo.
3.5. Regras para o encaminhamento de solicitação de monitoração.
Estas regras representam as decisões do agente quando recebe uma mensagem de solicitação
de monitoramento endereçada a um outro agente. As regras levam em consideração diversos
aspectos da situação, não sendo apenas um roteamento desta mensagem.
Ao receber uma mensagem de solicitação de monitoração para o encaminhamento, o
agente local atualiza o estado da comunicação do agente que fez a solicitação. Caso esta
mensagem tenha sido encaminhada, o agente local também atualiza o estado do agente que
encaminhou, como mostra a Figura 2. Depois, o agente local verifica suas regras em relação
a sua visão sobre o estado do ambiente de comunicação e toma uma decisão sobre a melhor
forma de transmitir esta solicitação ao seu destino.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
se a for não comunicável para todos os agentes
ou (existe agente remoto b no grupo que está com o tempo de atualização do
estado expirado e não há solicitação de monitoramento de b em aberto) então
se b é adjacente a a e ((b é comunicável ou receptor) ou (b é transmissor de a e
b considera a também como adjacente)) então
Enviar-solicitacao-monitoramento-agente-adjacente(a,b)
senão
se [(b é não-adjacente a e existe um agente adjacente c em comum entre o
agente a e o agente b) e ((c é comunicável ou receptor de a) ou (c é
transmissor de a e c considera a também como adjacente))] então
Enviar-solicitacao-monitoramento-agente-nao-adjacente(a,b,c)
senão
se (existe um agente c adjacente de a e não-adjacente a b e (c
comunicável ou receptor de a) e (c transmissor ou comunicável de b))
então
Enviar-solicitacao-monitoramento-agente-nao-adjacente(a,b,c)
senão
se ((c é transmissor de a) e (c é transmissor ou comunicável de b)
e c considera a também como adjacente) então
Enviar-solicitacao-monitoramento-agente-nao-adjacente(a,b,c)
senão
se existe algum agente c adjacente e (comunicável ou receptor)
a a então
Enviar-solicitacao-monitoramento-agente-nao-adjacente(a,b,c)
senão
atribui-estado(b, incomunicável)
fim
fim
fim
fim
fim
fim
se (a) transmitiu uma mensagem para (b) recentemente e corretamente então
atribuir-estado(b, incomunicavel)
Inserir-solicitacao-monitoramento
se c!= b então
Calcular-timeout-monitoramento-agente-nao-adjacente
senão
Calcular-timeout-monitoramento-agente-adjacente
fim
fim
Figura 1. Regras para enviar solicitação de monitoramento
3.6. Regras para o recebimento de mensagem de solicitação de monitoração
Ao receber uma mensagem de solicitação de monitoração, o agente monitorado utiliza este
recebimento para atualizar o estado de comunicação do agente que solicitou a monitoração e
do agente que transmitiu a mensagem, caso esta mensagem tenha sido encaminhada. As regras
para atualização do estado de comunicação são apresentadas da Figura 2.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
se a recebeu uma mensagem de d recentemente e corretamente então
se o tempo de atualização do d está expirado ou d está incomunicável ou falho
em relação a a recentemente então
Atribuir-Estado(d, Transmissor)
fim
se d é receptor em relação a a recentemente então
Atribuir-Estado(d, Comunicável)
fim
se o tempo de atualização do c está expirado ou c está incomunicável ou falho
em relação a a recentemente então
Atribuir-Estado(c, Transmissor)
senão
se c está receptor em relação a a recentemente então
Atribuir-Estado(c, Comunicável)
fim
fim
fim
Figura 2. Regras de atribuição de estado dos agentes na recepção de mensagens
3.7. Regras para enviar mensagem de resposta a solicitação de monitoramento
Ao receber uma mensagem solicitando o seu monitoramento e após utilizar o recebimento
desta mensagem para atualizar o estado do agente que fez a solicitação, como descrito na seção
anterior, o agente monitorado envia uma resposta de monitoramento ao agente solicitante. Caso
não sejam adjacentes, esta mensagem será enviada via encaminhamento. As regras para este
envio são similares às apresentadas na Seção 3.4.
3.8. Regras para o encaminhamento de mensagem de resposta a solicitação de
monitoramento
Ao receber uma mensagem de resposta à solicitação de monitoração para ser encaminhada ao
agente solicitante, o agente local atualiza o estado de comunicação do agente monitorado, que
enviou a resposta, e caso esta tenha sido encaminhada, também atualiza o estado deste agente de
encaminhamento. A mensagem será enviada em direção ao agente solicitante da monitoração.
Caso este agente e o local não sejam adjacentes, a mensagem será encaminhada para um
novo agente de encaminhamento. Estas regras são similares às regras para encaminhamento
da mensagem de solicitação, apresentadas na Seção 3.5.
3.9. Regras para o recebimentos de resposta a solicitação de monitoramento
Estas regras são executadas pelo agente que solicitou a monitoração, ao receber a mensagem
de resposta à solicitação de monitoramento. As regras indicam a atualização de estado de
comunicação a ser realizada com relação ao agente monitorado, dependendo do estado de
comunicação anterior registrado na base de dados do agente local. Caso os agentes local e
monitorado não sejam adjacentes, o agente que transmitiu a mensagem de resposta para o
agente local também terá o seu estado de comunicação atualizado.
As mesmas regras para atualização do estado de comunicação, apresentadas na Figura
2 (Seção 3.6) também são executadas no recebimento da mensagem de resposta à solicitação
de monitoramento.
4. Implementação e Avaliação do Funcionamento do Monitor
A implementação foi feita utilizando o framework Veins (Vehicles in Network Simulation), que
permite integrar o OMNeT++ [Varga et al. 2001] para simulação do ambiente de comunicação
e o SUMO (Simulation of Urban Mobility) [Krajzewicz et al. 2002] para a simulação do tráfego
dos veículos nas vias. O código do monitor foi embarcado no módulo Car do VEINS, cuja
infra-estrutura de rede está detalhada em [Sommer et al. 2011]. Neste contexto, podemos
destacar o protocolo IEEE 802.11b com taxa de transmissão de 11Mbit/s.
O modelo de mobilidade adotado é o livre de colisão entre veículos, o qual, mantém,
para cada veículo, os parâmetros necessários (e.g. velocidade e aceleração) para evitar colisões
entre si. Além disso, utilizamos uma trajetória com rotatórias, retornos e curvas acentuadas,
variando as distâncias e o alcance da comunicação entre os veículos, representando a dinâmica
do ambiente veicular. Neste caso, cada veículo trafega durante 300s e a velocidade máxima é
de 14m/s.
Na avaliação buscamos analisar o comportamento do monitor sobre o efeito da
mobilidade do ambiente. A sobrecarga de monitoração (overhead) apresentada na Figura 3(a)
é calculada a partir da relação entre o total de mensagens de monitoração transmitidas (nmon )
e a quantidade total de mensagens transmitidas na rede (ntot ), isto é: overhead = nmon /ntot .
A sobrecarga aumenta quando o número de veículos também aumenta. Por outro lado, quando
DV E aumenta, diminui o número de mensagens e, consequentemente, a sobrecarga.
(a) Overhead
(b) Mensagens Encaminhadas
(c) Perda de mensagens
Figura 3. Dados Analisados
O DV E (Duração da Validade do Estado) corresponde a quantidade de tempo da
validade do estado de um agente remoto relacionado a um agente local e foi definido de
forma empírica com valores entre 0.5, 1.0, 1.5 e 2 segundos, tomando como base o trabalho
apresentado em [Shankar et al. 2008] que define o período para a próxima atualização do estado
do ambiente entre [1.75, 2.25] segundos para uma aplicação que prover transmissão de dados de
vídeo sobre VANETs. A quantidade de veículos é de 4 e 10 unidades, também definida de forma
empírica, usando como referência os requisitos das aplicações de coordenação do movimento,
citados em [Willke et al. 2009]. De forma experimental definimos, para toda a simulação, a
carga da aplicação gerada pela formação veicular entre 8 e 20 mensagens por segundo (para 4
e 10 veículos respectivamente), baseando-se nos requisitos temporais da formação veicular, os
quais determinam que o tempo máximo de resposta da rede suportado pelo sistema de controle
do movimento é de 100ms [Willke et al. 2009, Karagiannis et al. 2011].
O número de mensagens encaminhadas também está diretamente relacionado à
quantidade de mensagens na rede. Por isso, como mostra a Figura 3(b), com o aumento
do período de monitoração, a quantidade de mensagens encaminhadas diminui. A perda
é calculada por (sentM R − receivedM R)/sentM R, onde sentM R é a quantidade de
solicitações de monitoração enviadas e receivedM R é a quantidade de solicitações de
monitoração recebidas. Assim, como mostra a Figura 3(c), ao diminuir a quantidade de
solicitações, aumentando o período de monitoração, as perdas aumentaram. Isto acontece,
porque, diminuir a quantidade de mensagens na rede não garante que as perdas de mensagens
diminuam. Neste caso, as perdas aconteceram devido à dinâmica do ambiente.
5. Conclusões
Apresentamos neste artigo um monitor de estados de comunicação baseados em regras,
adequados para uso com aplicações desenvolvidas sobre redes veiculares. O monitor utiliza as
regras para obter decisões inteligentes com relação à melhor maneira de efetuar a monitoração,
assim como para decidir pelo estado de comunicação dos agente monitorados, em função do
resultado da monitoração e dos estados anteriores destes agentes. As regras permitem uma
decisão flexível e adaptativa para a monitoração, em função das características dinâmicas das
redes veiculares.
Além desta vantagem, o uso das próprias regras do monitor para decidir sobre o
encaminhamento de mensagens de monitoração entre agentes não adjacentes, permite que
estas mensagens sejam utilizadas pelos agentes roteadores, chamados neste trabalho de agentes
de encaminhamento, para a atualização de sua visão do estado de comunicação dos agentes
solicitante e monitorado. Assim menos mensagens são trocadas pelos agentes para obter uma
monitoração atualizada.
O uso desta abordagem, diferente dos outros trabalhos relacionados neste artigo,
permite que cada agente possa ter suas próprias regras e visão do estado do ambiente de
comunicação, mesmo provendo os mesmos serviços. Isto se deve, principalmente, à estrutura
criada para desenvolver cada serviço com a capacidade de se adaptar ao ambiente não só pela
dinâmica dos links de comunicação, mais também, às diferentes características de cada agente.
Os resultados obtidos pela simulação realizada comprovam o funcionamento do
monitor, a mostram que as mensagens trocadas pelo monitor não geram um overhead excessivo
no sistema.
Referências
Amoroso, A., Gandolfi, L., Grassilli, S., and Roccetti, M. (2009). Frov: a distributed broadcast
protocol for vanet experimental results. In International Conference on Ultra Modern
Telecommunications e Workshops, 2009. ICUMT ’09., pages 1–8.
Chen, Y. and Wang, Z. (2005). Formation control: a review and a new consideration.
In Intelligent Robots and Systems, 2005.(IROS 2005). 2005 IEEE/RSJ International
Conference on, pages 3181–3186. IEEE.
Dongre, M. M., Bawane, N. G., and Jawade, N. R. (2012). Routing protocols for v2v
communications used in urban vanet to improve its. International Journal of Computer
Applications - IJCA, (6):19–22.
Fax, J. and Murray, R. (2004). Information flow and cooperative control of vehicle formations.
IEEE Transactions on Automatic Control, 49(9):1465–1476.
Gorender, S. and Sá, M. (2012). Um serviço de comunicação baseado em regras para veículos
autônomos em redes móveis. In Proceedings of the VII Congresso Nacional de Engenharia
Mecânica - to appear.
Kakarla, J., Sathya, S. S., Laxmiand, B. G., and B, R. B. (2011). A survey on routing protocols
and its issues in vanet. International Journal of Computer Applications, 28(4):38–44.
Published by Foundation of Computer Science, New York, USA.
Karagiannis, G., Altintas, O., Ekici, E., Heijenk, G., Jarupan, B., Lin, K., and Weil, T. (2011).
Vehicular networking: A survey and tutorial on requirements, architectures, challenges,
standards and solutions. Communications Surveys & Tutorials, IEEE, (99):1–33.
Krajzewicz, D., Hertkorn, G., Rössel, C., and Wagner, P. (2002). Sumo (simulation of urban
mobility). In Proc. of the 4th Middle East Symposium on Simulation and Modelling, pages
183–187.
Olfati-saber, R., Fax, J. A., and Murray, R. M. (2007). Consensus and cooperation in networked
multi-agent systems. Proceedings of the IEEE, 95(1):215–233.
Ren, W., Beard, R., and Atkins, E. (2005). A survey of consensus problems in multi-agent
coordination. In American Control Conference, 2005. Proceedings of the 2005, volume 3,
pages 1859–1864.
Shankar, P., Nadeem, T., Rosca, J., and Iftode, L. (2008). Cars: Context-aware rate selection
for vehicular networks. In Network Protocols, 2008. ICNP 2008. IEEE International
Conferenceon, pages 1–12. IEEE.
Sichitiu, M. and Kihl, M. (2008).
Inter-vehicle communication systems:
Communications Surveys & Tutorials, IEEE, 10(2):88–105.
a survey.
Sommer, C., German, R., and Dressler, F. (2011). Bidirectionally coupled network and road
traffic simulation for improved ivc analysis. Mobile Computing, IEEE Transactions on,
10(1):3–15.
Varga, A. et al. (2001). The omnet++ discrete event simulation system. In Proceedings of the
European Simulation Multiconference (ESM2001), pages 319–324.
Willke, T., Tientrakool, P., and Maxemchuk, N. (2009).
A survey of inter-vehicle
communication protocols and their applications. Communications Surveys & Tutorials,
IEEE, 11(2):3–20.
Download