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.