Proposição de Novos Serviços para o SEMSuS: Middleware para Redes de Sensores sem fio baseado em Serviços Semânticos Marianna Angélica de Araújo1, Francisco Cassimiro Neto2, Cláudia Maria Fernandes Araújo Ribeiro1 1 Laboratório LUMEN – Universidade do Estado do Rio Grande do Norte (UERN) Departamento de Computação - Av. Ayrton Senna, 4241 – 59088-100 – Neópolis – Natal/RN - Brasil 2 Instituto Federal da Paraíba (IFPB) - Rua Presidente Tancredo Neves, S/N Jardim Sorrilândia – Sousa/Pb – Brazil [email protected], [email protected], [email protected] Abstract. This paper proposes the extension of SEMSuS, a middleware for wireless sensor networks based on semantic services, by incorporation of news services aimed at improving the reuse of energy resources based in map of energy available in the nodes that make up the wireless sensor networks. Resumo. Este artigo propõe a extensão do SEMSuS, um middleware para redes de sensores sem fio baseado em serviços semânticos, pela incorporação de novos serviços que visam melhoria na reutilização dos recursos energéticos baseado em mapa de energia disponível nos nós que compõem a redes de sensores sem fio. 1. Introdução Redes de sensores sem fio (RSSFs) são compostas por dispositivos heterogêneos denominados nós sensores, com pequeno tamanho, baixo custo, limitações computacionais quando comparados às redes tradicionais, e são intimamente relacionadas com o ambiente em que são implantadas. Tais sensores possuem baterias não recarregáveis como fonte de energia e devem permanecer operando com o mínimo de intervenção humana, pois geralmente são implantados em áreas de difícil acesso. A economia de energia, portanto, é uma questão crucial em RSSFs. Diversas áreas podem utilizar as RSSFs, como a de saúde, monitoramento ambiental, agricultura de precisão, “construções inteligentes”, sistemas militares, dentre outras [Wang et al, 2008]. Embora as aplicações nessas redes se estendam por um amplo espectro, a maioria dessas aplicações requer um nível mínimo de qualidade de serviço (QoS) [Delicato, 2006]. Entretanto, apesar de existirem necessidades comuns as aplicações, os requisitos de QoS são específicos de cada aplicação. Por ser uma plataforma distribuída, as RSSFs também podem se beneficiar do uso de middleware que forneça um ambiente de execução genérico e abstraia funcionalidades de infra-estrutura da rede [Delicato, 2006]. Recentemente têm surgido diferentes propostas de middleware para RSSFs com diferentes abordagens e objetivos. Este artigo faz proposição de novos serviços a serem acrescentados ao SEMSuS um middleware para RSSFs baseado em serviços semânticos [Cassimiro Neto and Ribeiro 2010]. O SEMSuS adota estilos de arquitetura, tal como Arquitetura Orientada a Serviços (SOA) e padrões de projeto tais como o Dispatcher [Gay et at, 2007] e Interceptor [Markus et al, 2004]. Este artigo está estruturado da seguinte forma: a seção 2 apresenta as tecnologias necessárias para uma melhor compreensão sobre o SEMSuS tais como SOA, serviços web, web semântica e ontologias. A seção 3 aborda o SEMSuS, mais especificamente sua arquitetura e como interagem seus principais componentes arquiteturais. A seção 4 discute sobre a extensão do SEMSuS, por fim, na seção 5 tem-se a conclusão e trabalhos futuros. 2. Conceitos fundamentais sobre Serviços Uma RSSF pode ser considerada tipicamente provedora de serviços e as aplicações como clientes de tais serviços. A proposta de utilizar tecnologia semântica no desenvolvimento de serviços tenciona facilitar a automatização de tarefas tipicamente relacionadas à arquitetura SOA que inclui descoberta, seleção e composição de serviços, por permitir o tratamento de dados pelo seu significado independente da forma como está estruturado. A utilização de semântica por sua vez, promove melhorias na comunicação entre aplicação como cliente, e RSSF como provedora, de modo que a comunicação entre eles estejam baseada na definição do significado das informações trocadas e não apenas em sua forma sintática. 2.1. Arquitetura Orientada a Serviços (SOA) e Serviços Web Segundo [Cary et al, 2007], SOA é um conjunto de componentes que podem ser invocados e as descrições de suas interfaces publicadas e descobertas. Os componentes são disponibilizados como serviços independentes que são acessados de forma padronizada. Existem três principais atores em SOA: o cliente, o provedor e o registro. Suas interações se resumem a publicação do serviço, sua busca e sua invocação. Especificamente as interações ocorrem da seguinte maneira: Publicar – o provedor realiza a publicação da descrição do serviço que ele fornece em um lugar conhecido pelo cliente (o registro); Buscar – o cliente realiza perguntas sobre os serviços publicados no registro; Ligar/Invocar – ao obter o endereço do serviço que atende as suas necessidades, o cliente interage com o provedor do serviço para o seu fornecimento. A figura 1 mostra como ocorre às interações entre os principais atores em SOA. Figura 1. Interações entre os atores em SOA. Fonte:[Rocha, 2002] Serviços Web são considerados a realização de SOA mais usada, mas sua utilização não implica necessariamente no uso de SOA [Cary et al, 2007]. A invocação dos serviços web ocorre por meio de mensagens XML (Extensible Markup Language) seguindo o padrão SOAP (Simple Object Access Protocol). As descrições dos serviços contêm informações sobre as operações fornecidas, assim como os formatos de suas mensagens de entrada e saída, e seguem o padrão WSDL (Web Service Definition Language). O provedor publica o WSDL em um registro denominado UDDI (Universal Description, Discovery, and Integration), possibilitando aos requisitantes de serviços a buscarem e acharem no UDDI os serviços que atendam as suas necessidades. 2.2. Serviços semânticos e Ontologias A utilização das tecnologias dos serviços web para implementação das interações de fornecimento de serviços pela RSSF e do consumo pelas aplicações apresenta uma limitação sintática. Uma forma de superar essa limitação sintática é por meio do uso de tecnologias da Web Semântica. Ela não é uma Web separada, mas uma extensão da atual, em que as informações trazem significados bem definidos permitindo que computadores e pessoas trabalhem melhor em cooperação [Berners-Lee, 2001]. Assim, os serviços semânticos são obtidos pela adição de semântica aos padrões dos serviços web, possibilitando o enriquecimento semântico dos mesmos. Um dos principais recursos da Web Semântica é a ontologia. Ela é uma especificação explícita de uma conceitualização, na qual definições associam nomes de entidades no universo do discurso (por exemplo, classes, relações) com textos que descrevam o significado dos nomes e os axiomas formais que restringem a interpretação e o uso desses termos [Gruber, 1996]. Logo, as ontologias possuem um papel importante na comparação ou combinação de informações que possuem diferentes significados para o mesmo conceito. Assim, quando um cliente e o provedor de serviço se comunicam utilizando informações semanticamente estruturadas, eles combinam o significado dos dados que são trocados obtendo uma melhor interpretação dos mesmos. 3. O SEMSuS O middleware denominado SEMSuS utiliza tecnologias da Web Semântica, para fornecer serviços mais inteligentes, no qual as RSSF são consideradas essencialmente fornecedoras de serviços. Nele a RSSF é interpretada como provedora de serviços e a aplicação é quem consome os serviços. Assim quando do uso do SEMSuS, tem-se a realização do componente Provedor pela RSSF e Cliente pela aplicação, enquanto o Registro é realizado por uma terceira máquina, responsável por executar os mecanismos de comparação sintáticos e semânticos na busca de serviços. Esses serviços são implementados nos nós da rede, por meio da linguagem nesC [Levis et al, 2003] no sistema operacional TinyOS [Tymo, 2010], na qual foram especialmente desenvolvido para ambientes restritos. 3.1. Arquitetura do Middleware A arquitetura de software em sistemas de middleware permite a visualização de como os componentes estão distribuídos e como eles interagem entre si, para alcançar os objetivos do sistema. Levando em consideração os elementos arquiteturais organizados em camadas, a arquitetura do SEMSuS fica como apresenta a figura 2. Figura 2. Arquitetura do SEMSuS. Fonte: [Cassimiro Neto, 2010]. A publicação, que não está representada na arquitetura da figura 2 por não ser um serviço diretamente fornecido às aplicações, trata-se de uma interação entre o provedor e o registro sem a participação direta da aplicação, que é o cliente do serviço. É neste processo que as bases de descrição sintática e semântica são alimentadas. A aplicação apenas busca e faz uso dos serviços que tiveram suas descrições publicadas nestas bases. De acordo com a arquitetura da figura 2, o SEMSuS fornece os mecanismos de busca e invocação de serviço. O primeiro é dividido em busca sintática e semântica. A busca sintática se dá por meio do “Comparador Sintático”, sendo necessário o acesso a essa base dos serviços onde são encontrados os arquivos WSDL proveniente da aplicação. Enquanto que a busca semântica pelo “Comparador Semântico” sendo necessário o acesso às descrições enriquecidas com informações semânticas no repositório de “Descrição Semântica” dos serviços. O enriquecimento semântico das descrições é derivado das ontologias de domínio que definem o significado dos termos usados. A invocação dos serviços é executada após a aplicação buscar e encontrar os serviços que atendam as suas necessidades. Esse processo é mostrado na figura 3. Figura 3. Interações e ferramentas utilizadas na invocação dos serviços. Adaptada de [Cassimiro Neto, 2010]. Como mostra a figura 3, é pela invocação que as aplicações fazem uso das funcionalidades oferecidas pela RSSF. Estas funcionalidades são representadas como serviços escolhidos pelo Gerenciador e Dispatcher, ambos encontrados na RSSF juntamente com os serviços. O Gateway é o componente que recebe requisições Web e as mapeia para mensagens a serem trocadas na RSSF e faz a publicação de serviços nas bases de descrições. Ele encontra-se no Web Server (Tomcat). 4. Proposta de extensão do SEMSuS O SEMSuS é um middleware aberto que utiliza como um de seus componentes o Dispatcher, o qual define uma interface genérica de modo que todos os serviços que façam parte do SEMSuS devem obedecer a mesma. Cada um dos serviços está associado a uma instancia da interface. Assim, por exemplo, um serviço de roteamento está associado a instancia de identificador “1”, enquanto o de disseminação a de identificador “2” e assim por diante. Então caso seja adicionado outro serviço, o mesmo deve obedecer à interface disponibilizada pelo Dispatcher e ter um identificador associado a sua implementação. A utilização deste componente possibilita a manutenção do sistema em componentes específicos quando da remoção ou adição de serviços. A princípio, o serviço proposto refere-se ao controle de topologia baseado no mapa de energia. Diante da informação da quantidade de energia disponível em cada nó sensor que compõe a RSSF, torna-se possível fazer um levantamento do mapa de energia da rede, podendo ser usado para tomar uma decisão mais apropriada do que deve ou pode ser feito na RSSF. Escolher como os nós vão atuar em uma RSSF pode ser crítico, pois uma má escolha da topologia física pode levar mais tarde a custos desnecessários, bem como um ineficiente aproveitamento dos recursos de energia. A proposta da obtenção do mapa de energia ocorre com os nós sensores enviando periodicamente para o nó sorvedouro seus respectivos valores de energia e de consumo. O valor desse consumo é baseado em predições de estados de energia passados, possibilitando com essas informações, que o sorvedouro atualize os dados a respeito da energia de cada nó. Se por exemplo, for detectado que os nós têm quantidade de energia suficiente, é possível determinar os componentes que fazem parte do backbone de comunicação, conforme topologia descrita em [Raei et al, 2009]. Para uma topologia baseada em Clusters [Kong et al, 2010], pode-se utilizar o mapa de energia para saber quais os nós que possuem quantidade de energia suficiente para melhor assumirem o papel de cluster head. Outra utilização dos mapas de energia é fazer com que os nós com menor quantidade de energia permaneçam em estado de latência em relação aos que possuem maior quantidade de energia, pretendendo-se com isso um maior alcance do tempo de vida da RSSF e maior controle de possíveis áreas descobertas pela falha de nós devido a falta de energia. 5. Conclusão e Trabalhos Futuros Soluções de middleware para RSSF já são discutidos e encontrados na literatura. O SEMSuS, é baseado em serviços semânticos e permite a exposição da RSSF na Web, realizando os chamados “Sensor Web [Cassimiro Neto, 2010]. O estilo SOA é usado como uma forma de interação entre a RSSF e aplicações, e sua implementação é feita por meio de Serviços Semânticos, oferecendo flexibilidade e dinamismo decorrentes da troca de informações semanticamente estruturadas. Com a obtenção dos valores energéticos dispostos em cada nó sensor, por meio do mapa de energia, torna-se possível a implantação do serviço de gerenciamento de topologia da rede baseado nos recursos energéticos disponíveis. O SEMSuS ajudará a identificar áreas possivelmente descobertas de sensoriamento devido a falhas provocadas por falta de energia suficiente, bem como poderá alterar a topologia e o papel dos nós na rede conforme a quantidade de energia disponível. O SEMSuS foi testado em um ambiente de simulação TOSSIM [TOSSIM, 2010], sendo previsto como trabalho futuro sua implementação em plataformas de hardware de nós sensores. Diante disso pretende-se utilizá-lo em componentes de hardware juntamente com os novos serviços que serão implementados. Referências Apache jUDDI – Welcome <http://ws.apache.org/juddi/>. Acesso em: 23 Agosto 2010. OWL-S / UDDI Matchmaker. Disponível em <http://www.daml.ri.cmu.edu/matchmaker>. Acesso em: Agosto 2010. Apache Tomcat - Welcome!. Disponível em: < http://tomcat.apache.org/>. Acesso em: Agosto 2010. Berners-Lee, T. et al. (2001) “The Semantic Web”, Scientific American. Cary, P. et al. “Semantic Web Services: Theory, Tools and Applications”, J. Cardoso, Editor, Hershey, Pennsylvania: IGI Global, Mar. 2007. Cassimiro Neto, F and Ribeiro, C. M. F. (2010), “Dynamic Change of Services in Wireless Sensor Network Middleware based on Semantic Technologies”, 2010 Sixth International Conference on Autonomic and Autonomous Systems. Cassimiro Neto, F. (2010) “SEMSUS: Middleware para redes de Sensores sem Fio baseado em Serviços Semânticos”. (Dissertação de Mestrado em Ciência da Computação) –Universidade do Estado do Rio Grande do Norte/ Universidade Federal Rural do Semi-Árido. Delicato, F. (2006) “Middleware Baseado em Serviços para Redes de Sensores sem Fio”, Anais do XXVI Congresso da SBC, XIX Concurso de Teses e Dissertações.Gay, D. Levis, P. and Culler, D. (2007) “Software design patterns for TinyOS”, ACM Transactions on Embedded Computing Systems (TECS), v.6 n.4, pp.22-es, doi:10.1145/1274858.1274860. Gruber, T. (1996) What is an ontology? Disponível em: <http://ksl.stanford.edu/kst/what-is-an-ontology.html>. Acesso em: agosto 2010. Kong, Lei. Wang, Qianping. Zhao, Yan. (2010) “Time Synchronization algorithm based on Cluster for WSN”. IEEE Computer Society. Levis, P. et al. (2003) “The nesC Language: A Holistic Approach to Networked Embedded Systems”. In: Programming Language Design and Implementation (PLDI).Markus, V. Michael, K. and Uwe, Z. (2004) “Remoting Patterns: Foundations of Enterprise, Internet, and Realtime Distributed Object Middleware”, England: Wiley and Sons, 2004, pp. 130-133. Raei, H. et al. (2009) “A new distributed algorithm for virtual backbone in Wireless Sensor Networks with different transmission ranges”, Computer Systems and Applications. AICCSA. IEEE/ACS International Conference.Rocha, H. (2002) “Como implementar Web Services em Java”, COMDEX, SUCESU-SP. Disponível em: <http://www.argonavis.com.br/>. Acesso em: 04 Agosto 2010. TOSSIM TinyOS Documentation Wiki. Disponível em: <http://docs.tinyos.net/index.php/TOSSIM >. Acesso em: Agosto 2010. Tymo - TinyOS Documentation Wiki. Disponível em: <http://docs.tinyos.net/index.php/Tymo>. Acesso em: 27 Agosto 2010. Wang, M. et al. (2008) “Middleware for Wireless Sensor Networks: A Survey”, J. Comput. Sci. Technol, pp. 305-326.