Post on 11-Feb-2019
0
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
UNIVERSIDADE FEDERAL DA PARAÍBA
CENTRO DE CIÊNCIAS EXATAS E DA NATUREZA
BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO
ELENILSON VIERA DA SILVA FILHO
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM
FIO BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA OR IENTAÇÃO A
SERVIÇOS
João Pessoa - PB
2010
1
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
UNIVERSIDADE FEDERAL DA PARAÍBA
CENTRO DE CIÊNCIAS EXATAS E DA NATUREZA
BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO
ELENILSON VIERA DA SILVA FILHO
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM
FIO BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA OR IENTAÇÃO A
SERVIÇOS
Monografia apresentada ao curso de
Bacharelado em Ciência da Computação,
UFPB, em cumprimento às exigências da
disciplina de Trabalho de Conclusão de
Curso – TCC, como requisito para
obtenção do grau de Bacharel em Ciência
Computação.
ORIENTADOR: Prof. Dr. Alisson
Vasconcelos de Brito
João Pessoa - PB
2010
2
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
ELENSILSON VIERA DA SILVA FILHO
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM
FIO BASEADO NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO À
SERVIÇOS
Monografia apresentada ao curso de
Bacharelado em Ciência da Computação,
UFPB, em cumprimento às exigências da
disciplina de Trabalho de Conclusão de
Curso – TCC, como requisito para
obtenção do grau de Bacharel em Ciência
Computação.
Aprovado no dia ____, dezembro de 2010
BANCA EXAMINADORA
Prof. Dr. Alisson Vasconcelos de Brito
Prof. Dr. Hamilton Soares da Silva
Profa. Dra. Tatiana Aires Tavares
3
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
Dedico esse trabalho à minha querida avó que infelizmente não viveu tempo
suficiente para acompanhar a minha graduação.
4
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
AGRADECIMENTOS
A Deus, por eu estar vivo e com saúde.
Aos meus pais por me darem as bases para que meus esforços fossem
transformados em sucesso.
A minha tia Genilza por ser a minha segunda mãe durante todos esses anos de
ajuda a mim e aos meus pais.
Ao meu tutor do PET, o professor Dr. Leonardo Vidal Batista, por seus ensinamentos
durante esses três anos como petiano.
Ao professor doutor Alisson Vasconcelos de Brito por ter aceitado orientar o meu
trabalho e por todos os contatos que me fizeram ter sucesso enquanto Embaixador
de Campus da Sun.
Ao PET.Com pelas oportunidades e conhecimentos adquiridos.
Aos meus amigos por estarem sempre presentes nos momentos bons e ruins da
minha vida.
A todos que um dia me apoiaram, eu não esqueci e um dia os recompensarei.
5
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
Graças a Deus a esse estado de fraqueza
Eu já tô imunizado, minha nação é nordestina
E trás no sangue o suor dessa caatinga
E tem no peito o alimento da fé
Embora a seca tenha secado o seu pranto
O mundo agora vai ter que ouvir meu canto
Sou renitente, continuo dizendo oxente.
(Geraldinho Lins)
6
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
RESUMO
O avanço nas redes de sensores sem fio possibilitou sua utilização no
monitoramento, rastreamento, coordenação e processamento em diferentes
contextos, formando ambientes específicos, chamados de ambientes inteligentes. A
Computação Pervasiva centraliza suas aplicações no usuário, formando um
ambiente de computação comunicável e distribuída. Unindo a utilização de sensores
e a computação pervasiva e ubíqua em uma plataforma orientada a serviços é
possível o desenvolvimento de uma arquitetura para a criação e gerenciamento
desses serviços de forma ágil e simplificada. Uma grande dificuldade está em
gerenciar os dispositivos usados para formar este ambiente, bem como, a
comunicação entre eles e suas aplicações. A intenção da plataforma proposta neste
trabalho está na oferta e gerência de tais serviços computacionais a qualquer tempo
e lugar, com todas as funcionalidades desejadas e do modo desejado. Com esses
serviços disponíveis, aplicações poderão ser desenvolvidas focadas no
monitoramento de ambientes como: casas, carros e fábricas ou ainda, por exemplo,
podem ser desenvolvidos sistemas de segurança para monitoramento de máquinas
ou entrada de funcionários. O objetivo deste trabalho foi fazer uma análise da atual
situação do For-All, propor uma nova arquitetura e faze uma implementação parcial
a fim de oferecer as funcionalidades moldadas pelo usuário, em todo tempo e
independente do local, através de uma arquitetura geral para o desenvolvimento,
gerência e monitoramento de ambientes. Com a nova arquitetura proposta, uma
implementação parcial foi desenvolvida com a realização de testes que tiveram
resultados satisfatórios e é possível concluir que a plataforma abstrai problemas de
montagem e comunicação com os dispositivos.
Palavras-chave: Pervasividade, Ubiquidade, For-All, Redes de Sensores Sem Fio,
Serviços, SOA.
7
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
ABSTRACT
The advances in wireless sensor networks had permitted their use in monitoring,
tracking, coordination and processing at different contexts, forming specific
environments called intelligent environments. The Pervasive Computing centralizes
their applications on the user, forming a computing environment also communicable
and distributed. Joining together the use of sensors and pervasive and ubiquitous
computing in a service-oriented platform is possible the development of an
architecture for creation and management of these services at an agile and simplified
way. A great difficulty is to manage the devices that were used to create this
environment, as well as the communication between them and their applications. The
intent of the proposed platform in this work is the supply and management of such
computational services at any time and any place with all the desired features and
the way desired. With these services available, applications will be able to be
developed focused on monitoring some kind of environments such as homes, cars
and factories, or, for example, can be developed security systems for machine
monitoring or input employees. The aim of this work was to analyze the current
situation of the For-All propose a new architecture and make a partial code
development to provide the features shaped by the user in any time and regardless
of location, through a general architecture for development, management, and
monitoring of environments. With the new architecture proposed, a partial code
development was done, and, with the realization of tests with satisfactory results, this
work concluded that the platform prescinds mounting problems and communication
with devices.
Keywords: Pervasiveness, Ubiquity, For-All, Wireless Sensors Network, Services,
SOA.
8
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
LISTA DE FIGURAS
Figura 1. Arquitetura de um Sistema Pervasivo ........................................................ 18
Figura 2: Relação da Computação Ubíqua com a Computação Pervasiva e Móvel
(ARAÚJO, 2003) ....................................................................................................... 20
Figura 3: Redes de sensores sem fio devem se tornar cada vez mais disponíveis nas
mais diferentes aplicações (LOUREIRO, 2003) ........................................................ 22
Figura 4: Estabelecimento de rede de sensores (OTHMAN, 2007) .......................... 23
Figura 5: Arquitetura de colaboração SOA (ENDREI, 2004) ..................................... 25
Figura 6: Arquitetura Geral do For-All ....................................................................... 31
Figura 7: Arquitetura do sistema básico que é executado em cada Sun SPOT ........ 32
Figura 8: Diagrama de Classes do For-All ................................................................ 33
Figura 9: Código de execução de um alarme genérico (AbstractAlarm) ................... 34
Figura 10: Tela inicial de seleção de serviço e operação .......................................... 35
Figura 11: Tela com resultado do monitor de temperatura ........................................ 35
Figura 12: Tela de resultado do serviço solicitado (alarme de temperatura) ............. 36
Figura 13: Visão geral da arquitetura e suas camadas (VIEIRA, 2010) .................... 39
Figura 14: Detalhamento da comunicação entre as camadas (VIEIRA, 2010).......... 44
Figura 15: Aplicação desenvolvida para solicitação de serviços ............................... 47
Figura 16: Resultado de uma consulta de temperatura ............................................. 48
9
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
LISTA DE SIGLAS
DI Departamento de Informática
GW Gateway
IOT Internet of Things
IP Internet Protocol
JRE Java Runtime Environment
MANET Mobile Ad hoc Network
PDA Personal Digital Assistant
PET.Com Programa de Educação Tutorial do Bacharelado em Computação
RSSF Redes de Sensores sem Fio
SOA Service Oriented Architecture
SOAP Simple Object Access Protocol
Sun SPOT Sun Small Programmable Object Technology
TCP Transmission Control Protocol
TI Tecnologia da Informação
UFPB Universidade Federal da Paraíba
XML Extensible Markup Language
10
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
SUMÁRIO
INTRODUÇÃO .......................................................................................................... 12
Objetivos ................................................................................................................ 13
Contribuição Esperada .......................................................................................... 13
Estrutura da Monografia ........................................................................................ 14
CAPÍTULO 1: Fundamentação Teórica ..................................................................... 15
1.1 Computação Pervasiva ................................................................................ 15
1.1.1. Arquitetura de um Sistema Pervasivo ....................................................... 18
1.2. Computação Ubíqua .................................................................................... 19
1.3. Redes de Sensores sem Fio ........................................................................ 21
1.4. Arquitetura Orientada a Serviços ................................................................. 24
1.5. Sun Small Programmable Object Technology (Sun SPOT) ........................ 27
CAPÍTULO 2: Trabalhos Relacionados ..................................................................... 28
2.1. Ninja ............................................................................................................. 28
2.2. Projeto Middleware Orientado a Servico ...................................................... 28
2.3. Aura .............................................................................................................. 29
2.4. Gaia .............................................................................................................. 29
2.5. Oxygen ......................................................................................................... 29
CAPÍTULO 3: O antigo For-All .................................................................................. 30
3.1. A plataforma ................................................................................................. 30
3.2. Arquitetura Geral .......................................................................................... 30
3.3. Software Base nos Dispositivos ................................................................... 32
3.4. Operações de Gerência ............................................................................... 32
3.5. Resultados e Discussão ............................................................................... 34
CAPÍTULO 4: Uma proposta para o FOR-ALL 1.0 ................................................... 37
4.1. Materiais ....................................................................................................... 37
4.2. For-All 1.0 ..................................................................................................... 37
4.3. Visão Geral da Arquitetura ........................................................................... 38
4.4. Visão Detalhada das Camadas da Arquitetura ............................................ 40
4.4.1. Agente....................................................................................................... 40
4.4.2. Comunidade .............................................................................................. 41
11
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
4.4.3. Gateway .................................................................................................... 43
4.4.4. Aplicações ................................................................................................. 43
4.5. Comunicação entre as camadas .................................................................. 44
4.6. Visão de Implantação ................................................................................... 45
CAPÍTULO 5: Implementação Parcial ....................................................................... 46
CAPÍTULO 6: Resultados e Discussão ..................................................................... 48
CONCLUSÕES ......................................................................................................... 49
REFERÊNCIAS ......................................................................................................... 50
12
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
INTRODUÇÃO
Atualmente há uma crescente necessidade de informação em todos os
lugares de forma rápida e simples. Essa necessidade vai desde uma simples
informação da falta ou não do abastecimento de água em um determinado local até
a temperatura de uma sala com importantes servidores. O acesso a essas
informações deve ser feito através de serviços disponibilizados que precisam ser de
fácil acesso para que, desse modo, uma resposta possa ser gerada rapidamente.
Com a Internet das Coisas (IOT - Internet of Things) é possível fazer com que
qualquer dispositivo do mundo real tenha uma existência própria no mundo virtual
(MELOAN, 2003), onde objetos do mundo físico possuem um identificador único e
uma descrição bem simples, o que facilita a interação e o acesso a eles
(SIORPAES, 2006). Esses objetos estarão interligados em rede e serão capazes de
detectar mudanças na qualidade física das coisas usando tecnologias sensoriais.
Dessa forma será possível criar um ambiente próprio, chamado de ambiente
inteligente, moldável às situações do ambiente em que o usuário se encontra.
Com a disponibilização de serviços é possível o desenvolvimento de
aplicações com foco no monitoramento de ambientes com a coleta de dados feita
através da solicitação de serviços, tais como: temperatura, luminosidade,
movimentação, etc. Esse monitoramento pode ser feito em ambientes imóveis
(casas, fábricas, etc.) e móveis (carros, caminhões, navios, etc.) ou ainda, podem
ser construídos sistemas de segurança para monitoramento de máquinas críticas ou
entrada de funcionários em uma empresa.
As melhores tecnologias são aquelas que desaparecem, se misturam ao meio
a ponto de não serem percebidas (WEISER, 1991). Dessa forma tem-se a
pervasividade do computador, onde não é mais o usuário que entra no mundo
virtual, mas o computador que entra no mundo do usuário. A computação ubíqua
surge como um novo paradigma, permitindo aos usuários acesso aos seus
ambientes computacionais de todo o lugar, o tempo todo (SAHA, 2003). A
computação pervasiva é hoje uma realidade (YAMIN, 2004).
A plataforma proposta por este trabalho possibilita a manipulação e a
configuração de dispositivos que estão distribuídos em um ambiente inteligente,
13
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
disponibilizando serviços computacionais como base para a computação pervasiva.
Tais serviços devem ser oferecidos e utilizados por qualquer tipo de dispositivo
independente de tecnologia e protocolo. O projeto For-All visa exatamente à
universalização dos dispositivos e a transparência da troca informações através dos
serviços.
Objetivos
O objetivo geral dessa monografia é propor uma arquitetura que comporte a
implantação da Internet das Coisas, proporcionando abstrações e facilidades da
criação e manutenção de ambientes inteligentes. A arquitetura deve ser de baixa
complexidade e fácil implantação.
Os objetivos específicos são:
• Encontrar falhas na arquitetura atual do For-All
• Fazer uma revisão bibliográfica para as técnicas mais atualizadas e
integrá-las ao For-All
• Propor uma especificação para o For-All 1.0
• Fazer uma implementação parcial
Contribuição Esperada
Espera-se que, ao final deste trabalho, a especificação da plataforma seja
implementada e possa contribuir de forma significativa para a implantação da
Internet das Coisas e para a otimização na criação de ambientes inteligentes.
Outra contribuição é de que as aplicações desenvolvidas seguirão a mesma
estrutura. Isso pode acabar por facilitar sua manutenção.
Também pode-se destacar a potencial contribuição deste trabalho em
trabalhos futuros, uma vez que foi feita uma revisão de alguns serviços e aspectos
operacionais particulares.
14
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
Estrutura da Monografia
No Capítulo 1 é feita uma revisão bibliográfica onde são mostrados conceitos
que a arquitetura tem como base. No Capítulo 2 são expostos trabalhos
relacionados. No capítulo 3 estão descritos os materiais. No capítulo 4 é descrita a
plataforma atual do For-All. No capítulo 5 é feita uma proposta para o For-All 1.0. No
capítulo 6 é descrita uma implementação parcial do For-All 1.0. No capítulo 7 há
resultados e discussão da implementação parcial. Por fim são feitas considerações
finais.
15
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
CAPÍTULO 1: FUNDAMENTAÇÃO TEÓRICA
Este capítulo apresenta os conceitos teóricos para o desenvolvimento do
trabalho.
1.1 Computação Pervasiva Na década de 80, Mark Weiser descreveu sua visão sobre o futuro da
tecnologia. Segundo ele, o futuro seria de tecnologias invisíveis, ou seja, se
misturariam com o meio a ponto de não serem percebidas (WEISER, 1991). A
tecnologia invade o mundo real se torna parte dele.
Com a evolução da tecnologia, percebe-se que o computador está cada vez
mais fazendo parte do cotidiano, estando presente em: celulares, máquinas
fotográficas, PDAs, carros, sem contar os computadores pessoais e portáteis. Com o
crescimento da internet, a redução dos custos com hardware e o aperfeiçoamento
de redes sem fio, a computação pervasiva tornou-se uma realidade (YAMIN, 2004).
À medida que os dispositivos computacionais foram diminuindo, novas áreas
foram desenvolvidas para englobar tais mudanças. Uma delas é a Computação
Baseada no Contexto na qual as tarefas são realizadas de acordo com a situação
atual das pessoas ou do ambiente. Esta possibilidade trouxe vários novos termos e
conceitos, dentre eles o de “Computação Pervasiva” (GEYER, 2005; LOKE, 2007).
É necessário encontrar uma maneira de abstrair do usuário quais tecnologias
são utilizadas no dia-a-dia. Neste ponto, surgem quatro desafios:
• O uso efetivo de ambientes inteligentes para permitir a união dos
mundos virtual e real;
• A invisibilidade para que se torne totalmente fora da consciência do
usuário;
• Escalabilidade é um ponto crítico na sofisticação do projeto;
• O mascaramento de condições adversas para permitir que o usuário
manipule informações sem se preocupar com a heterogeneidade das
tecnologias utilizadas.
Os ambientes inteligentes da Computação Pervasiva usam as informações do
seu contexto. Estas são geradas pelo ambiente (temperatura, tempo, condições de
16
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
meteorologia), por pessoas (gostos, preferências, localização) e dispositivos (estado
e disponibilidade) sendo então usados para caracterizar a situação de uma entidade
(pessoa, lugar, objeto). Essas informações são compartilhadas entre diferentes
dispositivos (ESCOBEDO, 2006).
Entende-se o conceito de computação pervasiva como sendo a interação
entre os dispositivos computacionais e as pessoas, obtida de tal forma a não permitir
que seja percebida. Desse modo os dispositivos seriam incorporados ao ambiente
para auxiliar atividades humanas e poderiam comunicar-se entre si melhorando o
desempenho. Para obter tal resultado a computação pervasiva deve lançar mão das
seguintes funcionalidades:
• Sentir - envolve sensores que respondem a estímulos ou sinais como,
por exemplo, térmico, luminoso, sonoro, dentre outros. Sua resposta é
enviada como um sinal elétrico e pode reagir a qualquer coisa, como
uma mudança no ambiente.
• Pensar - representa a tomada de decisão. É onde as informações
enviadas pelos sensores são processadas para gerar dados que
possam ser usados ou mostrados na aplicação.
• Agir - são as ações realizadas de acordo com a aplicação e que devem
levar em consideração o desempenho, o controle de usuário e o
planejamento.
Para tanto, é necessário que informações sejam coletadas do meio, gerando
uma resposta própria e imediata. O uso de dispositivos variados e de comunicação
distribuída é uma necessidade, como também é necessária uma computação
distribuída que forme uma grade pervasiva (GEYER, 2005).
Desta forma, as aplicações pervasivas precisam ser inerentemente
distribuídas, ter mobilidade lógica e física e ser adaptativa ao contexto em que serão
processadas.
A utilização em massa de ambientes inteligentes acarretará uma integração
de dois mundos, o real e o virtual, onde o controle do primeiro será feito através do
segundo e possibilitará a automatização de tarefas que antes exigiam atuação
explícita do usuário. Este não deve se preocupar em saber como fazer o sistema
funcionar e simplesmente operá-lo de forma subconsciente.
17
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
Os dispositivos são de natureza heterogênea e isso demandará
adaptabilidade das aplicações para as diversas condições fornecidas.
Vale salientar que alguns problemas deverão ser contornados, dentre eles
estão: os recursos locais nos dispositivos móveis (peso, tamanho, consumo de
energia, poder de processamento e capacidade de armazenamento) são limitados
em comparação com os sistemas fixos de custo similar. Além disso, a infra-estrutura
de suporte é altamente variável (conectividade, recursos remotos), principalmente
quando é feita uma comparação com dispositivos estáticos comumente utilizados.
Dessa forma, desenvolver aplicações móveis se torna uma tarefa difícil, pois o
projetista deve conhecer os domínios em que as aplicações se encontram. Por
essas razões, pesquisadores concordam que as aplicações móveis devem ser
adaptativas: dependendo das características do ambiente de execução, aplicações
alteram seu comportamento e o modo como utilizam os recursos. Linguagens,
bibliotecas ou middlewares podem auxiliar na tarefa de adaptação (YAMIN, 2004).
Diante dessa perspectiva, os componentes que integram o meio de execução
(dados, equipamentos e serviços) deverão ser gerenciados por um ambiente de
execução que permita um acesso independente do equipamento utilizado, do local e
do momento de acesso.
18
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
1.1.1. Arquitetura de um Sistema Pervasivo
De forma genérica, um sistema pervasivo deve possuir a arquitetura mostrada
na Figura 1, podendo ser genérica, ou específica para determinada aplicação.
Figura 1. Arquitetura de um Sistema Pervasivo
19
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
1.2. Computação Ubíqua
Mark Weiser foi o pioneiro na Computação Ubíqua e seus estudos iniciais são da
década de 80. Nestas pesquisas, Weiser relacionou questões, tais como: interface
humano-computador, realidade virtual e agente inteligente de software (WEISER,
1991).
Nessa área o esquema de uma pessoa e um computador pessoal não é mais
válido. O que se tem é a distribuição de dispositivos eletrônicos e móveis com
capacidades computacionais pelo ambiente, mas sem que a presença dos
dispositivos seja notada, ou seja, permitir o uso da tecnologia de forma natural, sem
que o usuário perceba ou precise dedicar sua atenção à utilização (ARAYA, 1995).
Nesse contexto, a área foi denominada Computação Ubíqua e seu objetivo é obter
uma computação espalhada pelo ambiente, onipresente e de uso natural, ou seja,
não invasiva (SARANUMMI, 2008; ADESLTEIN, 2005).
A Computação Ubíqua também é conhecida como Computação Invisível e define
uma nova linha de pesquisa tecnológica baseada na difusão da informática. Estas
investigações buscam tornar transparente e ampliar a integração entre objetos
comuns, dispositivos e serviços para a criação dos chamados ambientes inteligentes
(REMAGNINO, 2005; SARANUMMI, 2008).
Alguns pontos são essenciais para sua implantação:
• Comunicação entre dispositivos: estes tem a capacidade de
comunicação não apenas com o usuário, mas também com os
demais objetos integrados ao ambiente ubíquo;
• Memória: proporcionar uma melhor resposta baseada em fatos
anteriores;
• Ser sensível ao contexto: possibilidade de adaptação às diversas
situações e preferências do usuário, atuando de forma
dependente no contexto que se trata;
• Ser reativo: perceber o quando for gerado qualquer evento em
seu entorno mediante o uso de sensores ou da interação com
outros dispositivos e tomar uma ação baseada numa regra.
(AVELAR, 2008, p. 1-2)
Para tanto, alguns fatores físicos se tornam cruciais para fazer a Computação
Ubíqua ser passível de implementação e a principal delas é a miniaturização dos
matriais utilizado na fabricação dos dispositivos e sensores (CAHILL, 2004).
20
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
Apesar de parecidos, Computação Ubíqua é diferente de Computação Pervasiva,
de forma que computação pervasiva define os modelos dos dispositivos com alto
grau de acoplação e baixo grau de mobilidade, enquanto que Computação Ubíqua
define os modelos dos dispositivos com alto grau de acoplamento e alto grau de
mobilidade (LYYTINEN, 2002). O termo ainda é confundido com a Computação
Móvel (ADELSTEIN, 2005). Apesar dessa proposta de diferenciação, nota-se que
não há uma distinção bem definida.
A Ubiquidade integra a Pervasividade com a Mobilidade, ou seja, qualquer
dispositivo, em posse de um usuário em movimento, pode construir, dinamicamente,
modelos do ambiente em que está inserido e configurar seus serviços dependendo
da necessidade. O que há de fato é que a computação está fora das estações de
trabalhos, ou seja, computadores comuns utilizados atualmente saem desse
ambiente e tornam-se pervasivos no cotidiano dos indivíduos. Weiser visionou que
os computadores estariam presentes nos mais comuns objetos do cotidiano, tais
como: etiqueta de roupas, xícaras de café, televisores, luz, canetas, embalagens de
alimentos, etc. de forma imperceptível aos usuários. Para Weiser é necessários uma
adaptação, não mais há apenas interação com eles, mas também a interação e a
imersão deles no mundo real (WEISER, 1991).
Figura 2: Relação da Computação Ubíqua com a Comput ação Pervasiva e
Móvel (ARAÚJO, 2003)
21
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
1.3. Redes de Sensores sem Fio
A área de Redes de Sensores Sem Fio (RSSF) está em ascensão com diversas
aplicações a fim de prover a conexão entre os meios digital e físico. A obtenção
desse objetivo permitirá que os sensores forneçam medições detalhadas e
simplificadas, medições essas que são difíceis de obter com o uso de técnicas de
tradicionais. Apesar de muitas vantagens, novos desafios são criados. (CARLESSO,
2006).
RSSFs contém geralmente muitos dispositivos de baixo custo e tamanhos
reduzidos capazes de realizar sensoriamento, processamento e transmissão de
informação através de enlaces sem fio. Os sensores devem operar sem assistência
humana por longos períodos de tempo e normalmente são alimentados por baterias
não recarregáveis. Como a maior fonte de consumo de energia nos sensores é a
transmissão de dados, os protocolos de comunicação para RSSFs visam propor
soluções a fim de diminuir os gastos de energia e estender o tempo necessário para
substituição das baterias. A grande maioria dos protocolos são baseados na
comunicação utilizando múltiplos saltos (multi-hop) de curto alcance e adota algum
mecanismo de agregação de dados com o intuito de reduzir os pacotes transmitidos
(LOUREIRO, 2002).
As RSSFs são diferentes das tradicionais redes de computadores em muitos
aspectos. Normalmente essas redes possuem um vasto número de nodos
distribuídos, têm restrições de energia, possuem mecanismos para configuração
automática e adaptação devido a problemas, tais como: falhas de comunicação e
perda de nodos. A não ser pela fonte de alimentação, uma RSSF tende a ser
praticamente autônoma e requer um alto grau de cooperação para a execução das
suas tarefas. Para tanto, algoritmos distribuídos tradicionais e protocolos de
comunicação devem ser revistos para esse novo ambiente. Os desafios para o
desenvolvimento de RSSFs vão muito além das redes tradicionais (LOUREIRO,
2003), por exemplo: preocupação com gasto de energia, otimização na transmissão
dos pacotes de modo a ter menos dados enviados por menos tempo, entre outros.
Essas preocupações até existem nas redes tradicionais, mas não com tamanha
importância como com as RSSFs.
22
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
Os nodos dessas redes são equipados com diversos sensores, tais como: vídeo-
câmera, calor, temperatura, pressão, movimentação, etc. Esses nodos podem ser
organizados em grupos (clusters) e deve poder detectar um evento em suas
proximidades (LOUREIRO, 2003). Isso possibilita das tarefas e a otimização dos
resultados, uma vez que cada nós se torna específico.
Figura 3: Redes de sensores sem fio devem se tornar cada vez mais
disponíveis nas mais diferentes aplicações (LOUREIR O, 2003)
As RSSFs podem ser vistas como um tipo especial de rede móvel ad hoc
(MANET – Mobile Ad hoc Network). Numa rede tradicional, a comunicação
entre os elementos computacionais é feita através de estações base de rádio,
que constituem uma infra-estrutura de comunicação. Esse é o caso da
Internet. Por outro lado, numa rede móvel ad hoc os elementos
computacionais trocam dados diretamente entre si. Do ponto de vista de
organização, RSSFs e MANETs são idênticas, já que possuem elementos
computacionais que comunicam diretamente entre si através de enlaces de
comunicação sem fio. No entanto, as MANETs têm como função básica
prover um suporte à comunicação entre esses elementos computacionais,
que individualmente, podem estar executando tarefas distintas. Por outro
lado, RSSFs tendem a executar uma função colaborativa onde os elementos
(sensores) provêem dados, que são processados (ou consumidos) por nodos
especiais chamados de sorvedouros (sink nodes) (LOUREIRO, 2003, p. 2).
23
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
Figura 4: Estabelecimento de rede de sensores (OTHM AN, 2007)
A Figura 4 mostra as fases do estabelecimento de uma RSSF, onde há a
inserção dos sensores, depois estes se organizam formando uma rede própria e
logo estão trocando dados, elegendo nós mestres e se auto configurando.
24
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
1.4. Arquitetura Orientada a Serviços
Uma Arquitetura Orientada a Serviços (SOA – Service Oriented Architecture) é a
evolução da computação distribuída com base em pedido/resposta para uma
concepção síncrona e assíncrona de aplicações, sendo um estilo de arquitetura de
software cujo princípio fundamental preconiza que as funcionalidades
implementadas pelas aplicações devem ser disponibilizadas na forma de serviços
(VIEIRA, 2010).
Uma arquitetura de software trata basicamente de como os componentes
fundamentais de um sistema se relacionam intrinsecamente e extrinsecamente. Uma
arquitetura orientada a serviços tem como seu componente fundamental o conceito
de serviços. SOA é um meio para organizar as soluções que promovem o reuso,
crescimento e interoperabilidade. Ela não é uma solução para os problemas do
domínio, mas um paradigma para organização e disponibilização de serviços. Esta é
uma promessa de uma nova arquitetura, pois cada elemento de um SOA pode ser
movido, substituído e modificado. Cada serviço ainda pode ser montado e
remontado em diferentes formas para diferentes propósitos e circunstâncias.
SOA possui uma excelente abordagem para o desenvolvimento de sistemas
distribuídos que visam atender as novas tendências do mercado: agilidade e
flexibilidade. De forma única, a proposta SOA aceita (JOSUTIS, 2007):
• Manter a flexibilidade em grandes sistemas distribuídos;
• Suportar a heterogeneidade;
• Descentralização;
• Tolerância a falhas.
Construir aplicações baseadas em SOA requer uma nova forma de pensar e
desenvolver sistemas (JOSUTTIS 2007). SOA é um paradigma para organização e
utilização de competências que estão distribuídas e em diferentes domínios (OASIS,
2006).
Para que seja possível a interação entre os serviços que implementam as
competências e necessidades das entidades é necessário a colaboração,
conforme Figura 5. Nesta arquitetura observamos três serviços: 1)
consumidor: aplicação ou outro serviço que necessita de um serviço e o
executa de acordo com o contrato de interface; 2) provedor: entidade que
aceita e executa as requisições dos consumidores, este publica seus serviços
25
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
e os registra por meio de um contrato de interface; e 3) registro: contém um
repositório de serviço no qual permite a procura deste. A colaboração entre
estes serviços segue o paradigma de encontrar, conectar e invocar. Neste o
consumidor realiza uma localização dinâmica do serviço requisitado,
publicado anteriormente por um provedor. Esta localização é realizada por
meio de consulta no serviço de registro e depois de encontrado, o consumidor
conecta e invoca o serviço solicitado (ENDREI, 2004).
Figura 5: Arquitetura de colaboração SOA (ENDREI, 2 004)
A habilidade de compor aplicações a partir desses serviços, combinando com
a reutilização e os padrões baseados em interoperabilidade, prover a flexibilidade
necessária para a utilizações em Redes de Sensores Sem Fio. (ERICK 2006).
Na SOA, os programadores criam serviços. As organizações que focalizam os
seus esforços de desenvolvimento em torno da criação dos serviços obterão muitos
benefícios. A utilização da SOA nas aplicações, além de tornar mais fácil a
implementação, acarretará em algumas vantagens (KODALI 2008):
• Aumento da mobilidade;
• Maior segurança;
• Prestação de serviços;
• Melhoria da manutenção;
• Melhor escalabilidade.
26
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
Serviços são uma das bases fundamentais para a implementação de um sistema
baseado no paradigma SOA. Entretanto, para utilizar este recurso alguns pontos
precisam ser considerados para prover sua flexibilidade e manutenção. São elas
(ENDREI, 2004):
• Prover conectividade entre provedor e consumidor;
• Quando necessário transformar os formatos das mensagens entre o
consumidor e o provedor;
• Converter protocolos entre consumidor e provedor;
• Realizar o correto e eficiente roteamento da requisição do consumidor ao
provedor do serviço solicitado.
27
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
1.5. Sun Small Programmable Object Technology (Sun SPOT)
O Projeto For-All utiliza a Computação Pervasiva juntamente com a tecnologia
Sun Small Programmable Object Technology (Sun SPOT) (SUN, 2009), unida à
Zigbee (ZIGBEE, 2009) para a comunicação, levando em consideração o contexto
físico computacional do ambiente e dos usuários para realizar tais processamentos.
A facilidade de programação, a arquitetura única, o baixo consumo de energia e a
maior segurança foram alguns dos motivos para a utilização da tecnologia Sun
SPOT no projeto.
O Sun SPOT utiliza um dispositivo do tamanho da palma da mão que é acionado
por um Software Java, com intuito de formar RSSFs. Capacitado com chips ZigBee,
tornando possível a configuração de redes adaptáveis capazes de rotear pacotes
através de qualquer dispositivo e se adaptar à possíveis falhas em qualquer
dispositivo. Aplicações na área de redes de sensores e de computação pervasiva
são potencias utilizações da tecnologia Sun SPOT que são exploradas neste
trabalho.
Estas tecnologias unidas provêm diversas possibilidades de aplicações para
facilitar o dia-a-dia, onde pessoas vão interagir com vários tipos equipamentos
(máquinas, computadores, eletrodomésticos) e também outras pessoas; Sem
perceber toda a complexidade por trás dos serviços utilizados, de forma fácil e
amigável para o usuário final.
28
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
CAPÍTULO 2: TRABALHOS RELACIONADOS
Neste capítulo serão descritos alguns trabalhos relacionados com o For-All.
2.1. Ninja
O projeto Ninja (GRIBBLE, 2001) possui objetivos semelhantes em termos de
arquitetura, onde procura habilitar uma inovação ampla em serviços distribuídos na
internet. Sua arquitetura consiste de quatro elementos básicos: as bases, que são
poderosos terminais com ambientes aglomerados usando um software como
plataforma que simplifica a construção de serviços; unidades, que são os
dispositivos pelos quais os usuários acessam os serviços; active proxies, são
elementos de transformação que são usados pelas unidades ou adaptação de
serviços específicos; e o path, que é uma abstração. O For-All tem como principais
vantagens uma maior simplicidade e clareza, além da grande abstração que é
provida sobre os protocolos de comunicação (VIEIRA, 2010).
2.2. Projeto Middleware Orientado a Servico
O projeto Middleware Orientado a Servico para uma RSSF (DELICATO, 2004)
propõe um middleware para o desenvolvimento de aplicações utilizando Redes de
Sensores Sem Fio. O projeto visa fornecer uma representação padrão, de alto nível,
para interesses da aplicação, dados gerados pelos sensores e funções de
agregação a serem realizadas na rede. Tal representação é baseada no conceito de
serviços e adota XML (W3C, 2008b) como a linguagem de descrição e codificação.
Simple Object Access Protocol (SOAP) (W3C, 2008a) é adotado como o protocolo
para formatar e transportar as mensagens usando um protocolo de rede subjacente
centrado em dados. Esse projeto contribuiu para o For-All utilização do XML para
comunicação, o que torna muito mais transparente e com a interoperabilidade a
troca de informações.
29
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
2.3. Aura
O projeto Aura preconiza que o mais precioso recurso em um sistema de
computador não é processador, memória, disco ou rede: é o usuário. Os atuais
sistemas distraem o usuário e, por consequência, reduzem sua efetividade. O Aura
repensa o sistema na tentativa de solucionar esse problema com o objetivo de
prover a cada usuário, independentemente de localização, uma auréola invisível de
computação e serviços de informação (AURA, 2007). A principal contribuição do
projeto Aura foi na maneira de focar com o usuário, dando prioridade em seu
conforto para melhores resultados nas aplicações.
2.4. Gaia
Nesse projeto foi defendida uma visão onde o espaço habitado pelas pessoas
será interativo e programável, chamado de espaços ativos (Active Spaces). Os
usuários interagem com esses espaços (escritórios, casa, carros, etc.) para
requisitar informações, beneficiar-se de seus recursos e configurar seu
comportamento. Para isso, dados e tarefas estão sempre acessíveis e são
mapeados dinamicamente para os recursos solicitados. Gaia coordena as entidades
de software e dispositivos em rede dentro dos espaços ativos, exporta os serviços
para pesquisa e utilização dos recursos, acessar e usar o contexto corrente, e
também fornece um framework para desenvolvimento de aplicações (GAIA, 2007).
2.5. Oxygen
O projeto Oxygen prevê a computação como livre e disponível em qualquer lugar,
como o oxigênio do ar. Baseia-se em uma infra-estrutura de dispositivos
estacionários e móveis, conectados por uma rede se configura automaticamente.
Essa infra-estrutura fornece computação e comunicação em larga escala e são
intrínsecas ao sistema a fim de satisfazerem as necessidades dos usuários
(OXYGEN, 2007).
30
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
CAPÍTULO 3: O ANTIGO FOR-ALL
Neste capítulo é descrito a plataforma For-All produzida antes que a pesquisa
proposta por esse trabalho fosse iniciada.
3.1. A plataforma
O projeto For-All objetiva a democratização do acesso à informação, oferecendo
os serviços computacionais a qualquer tempo para todas as pessoas nos mais
diversos lugares. Visa à captação rápida de informações sobre mudanças nas
características normais de um ambiente, sendo também capaz de tomar decisões
em tempo hábil, repassando as decisões tomadas instantaneamente para as
pessoas interessadas.
Como estudo de caso, a tecnologia Sun SPOT é utilizada e a idéia é possuir
dispositivos distribuídos, independentes e ao mesmo tempo controlados,
configurados e monitorados pela plataforma For-All, podendo ser adaptados a
quaisquer necessidades que as aplicações venham requisitar.
3.2. Arquitetura Geral
A arquitetura é formada basicamente de agentes gerenciáveis (representados por
Sun SPOTs) que possuem serviços os quais podem ser solicitados a qualquer
momento pelo Gateway (GW). Desta forma, ela é composta por três camadas: a
primeira camada é responsável pela coleta de dados (Camada de Sensoriamento)
do ambiente que são passados para a segunda camada responsável pela tomada
de decisão (Camada de Tomada de Decisão). Na última camada situam-se as
aplicações (Camada de Aplicação) que tanto poderão acessar os dados coletados,
como configurar a tomada de decisão.
FOR-ALL 1.0: UMA PROPOSTA DE ARQUBASEADA NA COMPUTAÇÃO UBÍQUA
Figura
Os Sun SPOTs (Camada de Sensoriame
monitoram características relevantes à aplicação (temperatura, movimentação,
posição, presença de pessoas etc.) e envia
segunda camada que é composta pelas estações base (base stations) ligadas a
computadores pessoais, que por sua vez,
los em informação para transmitir à terceira camada, responsável por distribuí
para os usuários da forma desejada.
UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
Figura 6: Arquitetura Geral do For-All
Os Sun SPOTs (Camada de Sensoriamento), através da tecnologia Zig
características relevantes à aplicação (temperatura, movimentação,
posição, presença de pessoas etc.) e enviam dados pré-processados para a
segunda camada que é composta pelas estações base (base stations) ligadas a
computadores pessoais, que por sua vez, ficam encarregados de tratar e transformá
los em informação para transmitir à terceira camada, responsável por distribuí
para os usuários da forma desejada.
31
E SENSORES SEM FIO ENTAÇÃO A SERVIÇOS
nto), através da tecnologia ZigBee,
características relevantes à aplicação (temperatura, movimentação,
processados para a
segunda camada que é composta pelas estações base (base stations) ligadas a
ficam encarregados de tratar e transformá-
los em informação para transmitir à terceira camada, responsável por distribuí-las
FOR-ALL 1.0: UMA PROPOSTA DE ARQUBASEADA NA COMPUTAÇÃO UBÍQUA
3.3. Software Base nos Dispositivos
Figura 7 : Arquitetura do sistema
A camada de serviços separa
categorias, tais como Alarmes, Monitores e outras. Na camada de Comunicação
existe um elemento chamado Communication Manager que recebe todas as
requisições dos dispositivos (rádio, USB) as quais são analisadas e repassadas ao
serviço pertinente. Este funciona como um thread individual. Além disso, o
Communication Manager também é responsável por receber o resultado do serviço
e responder pela mesma via da requisição.
3.4. Operações de Gerência
A Figura 8 apresenta um Diagrama de Classes simplificado com as operações de
gerência dos serviços implementado
implementados são baseados na mesma interface
principais operações que podem ser realizadas com um serviço. Desse serviço duas
variantes foram criadas até o momento, o AbstractMonitor e o AbstractAlarm.
primeiro especifica como devem ser os monitores, entidades responsáveis por estar
UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
Software Base nos Dispositivos
: Arquitetura do sistema básico que é execu tado em cad
A camada de serviços separa-os e agrupa-os de acordo com algumas
categorias, tais como Alarmes, Monitores e outras. Na camada de Comunicação
existe um elemento chamado Communication Manager que recebe todas as
requisições dos dispositivos (rádio, USB) as quais são analisadas e repassadas ao
serviço pertinente. Este funciona como um thread individual. Além disso, o
Communication Manager também é responsável por receber o resultado do serviço
a via da requisição.
Operações de Gerência
apresenta um Diagrama de Classes simplificado com as operações de
rência dos serviços implementados até o momento. Todos os serviços
implementados são baseados na mesma interface ServiceIF
principais operações que podem ser realizadas com um serviço. Desse serviço duas
variantes foram criadas até o momento, o AbstractMonitor e o AbstractAlarm.
primeiro especifica como devem ser os monitores, entidades responsáveis por estar
32
E SENSORES SEM FIO ENTAÇÃO A SERVIÇOS
tado em cad a Sun SPOT
os de acordo com algumas
categorias, tais como Alarmes, Monitores e outras. Na camada de Comunicação
existe um elemento chamado Communication Manager que recebe todas as
requisições dos dispositivos (rádio, USB) as quais são analisadas e repassadas ao
serviço pertinente. Este funciona como um thread individual. Além disso, o
Communication Manager também é responsável por receber o resultado do serviço
apresenta um Diagrama de Classes simplificado com as operações de
ento. Todos os serviços
ServiceIF. Ela especifica as
principais operações que podem ser realizadas com um serviço. Desse serviço duas
variantes foram criadas até o momento, o AbstractMonitor e o AbstractAlarm. O
primeiro especifica como devem ser os monitores, entidades responsáveis por estar
33
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
sempre monitorando alguma variável através da coleta de dados. A partir dessa
classe desenvolvemos monitores de temperatura (TemperatureMonitor),
luminosidade (LightMonitor) e movimento (MovimentMonitor). O segundo tipo de
serviço é o Alarme, representado pela classe AbstractAlarm. Esse serviço é sempre
agregado a um monitor. O monitor coleta os dados e o alarme verifica se esses
estão dentro de um limiar aceitável (configurado previamente por parâmetro). Caso
os dados coletados passem do limite estabelecido (seja para mais, ou para menos),
o alarme dispara um alerta para o dispositivo requisitante. Os serviços são sempre
solicitados via Rádio ou USB através da classe Request. O alarme lê os dados da
requisição dos serviços e utiliza um objeto resposta (Response) para gerar o alerta
exatamente para o dispositivo solicitante do serviço.
Figura 8: Diagrama de Classes do For-All
Os dispositivos não precisam ter todos os serviços configurados ao mesmo
tempo, todo serviço deve ser registrado no ServiceRegistry para que outros
dispositivos sempre o encontre quando requisitado pelo CommunicationManager. Só
assim a requisição é passada para o serviço específico que o executa. Se o serviço
gerar uma resposta imediata, a mesma é transformada num objeto Response e
34
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
passada para o CommunicationManager que irá utilizar o PackageSender para
enviá-la ao dispositivo solicitante do serviço.
Uma demonstração de como um alarme trabalha pode se r visto na Figura 9. Inicialmente o alarme inicia o monitor respectivo (linha 3) para que o
mesmo comece a monitorar a variável desejada (temperatura, por exemplo). De
tempos em tempos, o alarme verifica se o valor monitorado (linha 8) está fora da
faixa limite (linha 9). Caso isso aconteça, o CommunicationManager é acionado para
que um alerta seja enviado (linha 10) ao mesmo dispositivo que solicitou o serviço
(representado pelo objeto alarmRequest). O valor ultrapassado (value) também é
enviado para que haja uma idéia de quanto o limite estabelecido foi violado.
Figura 9: Código de execução de um alarme genérico (AbstractAlarm)
3.5. Resultados e Discussão
Nas implementações iniciais, foram desenvolvidos três serviços básicos: os
serviços dos níveis de temperatura, de luminosidade e de movimentação. Um
terceiro serviço de localização de serviço também (Service Discovery) foi
desenvolvido para possibilitar que SPOTs na região sejam localizados.
Uma pequena aplicação foi desenvolvida onde, através de um computador
pessoal, o usuário pode acessar os SPOTs e requisitar um dos três serviços
disponíveis. Nesta aplicação os serviços são acessados em três etapas.
Primeiramente, como é mostrado na Figura 10, os SPOTs são automaticamente
detectados pelo Service Discovery e apresentados num Painel de Controle.
35
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
Figura 10: Tela inicial de seleção de serviço e ope ração
Os endereços de cada dispositivo, juntamente com os serviços implementados
são apresentados para escolha do usuário. Serviços recém configurados, ou novos
dispositivos detectados são apresentados no Painel de Controle automaticamente.
Cada serviço é referenciado por seu nome, assim como uma lista de operações
disponíveis para aquele serviço, apresentados pelo nome do método respectivo.
Figura 11: Tela com resultado do monitor de tempera tura
A Figura 11 apresenta o resultado da execução do serviço de monitoramento de
temperatura, após a execução da operação getValue. Neste caso o resultado foi
32,75 graus Celsius. Já na Figura 8, um alarme de temperatura é executado, com o
valor de limite de 25 graus. Neste caso, sempre que a temperatura for maior do que
esse valor, uma mensagem (alarme) é enviada ao solicitante com a temperatura
atual. Neste exemplo a temperatura atual é de 33,25 graus Celsius, juntamente com
o tipo de serviço executado e o SPOT de origem.
36
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
Figura 12: Tela de resultado do serviço solicitado (alarme de temperatura)
37
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
CAPÍTULO 4: UMA PROPOSTA PARA O FOR-ALL 1.0
Neste capítulo são descritos os materiais e métodos utilizados para a a
proposta do For-All 1.0.
4.1. Materiais
Os materiais utilizados na implementação e testes foram:
4.1.1 Computador A
• Processador Intel Core 2 Quad
• Memória DDR2 800 4Gb
• Sistema Operacional Open Solaris 2009
4.1.2 Computador B
• Processador AMD Atlhon X2
• Memória DDR 2 667 2Gb
• Sistema Operacional GNU/Linux Debian 4
4.1.3 Sun SPOTs
• Foram utilizados Sun SPOTs na versão 2.0
4.2. For-All 1.0
O For-All 1.0 é uma arquitetura de rede que utiliza os conceitos de uma SOA
para integrar componentes que facilitem o processo de criação e montagem de
ambientes capazes de serem controlados e monitorados, ditos ambientes
inteligentes. Uma das principais finalidades da arquitetura é abstrair os protocolos de
comunicação utilizados entre os componentes e a aplicação utilizadora dos serviços
e os componentes, permitindo um maior foco no desenvolvimento do próprio
ambiente.
A arquitetura propõe a invisibilidade lógica da camada de sensoriamento, ou
seja, os serviços tem a possibilidade de serem implementados de tal forma a não
necessitarem da interação do usuário para tomarem uma ação. Propõe também a
mobilidade dessa camada, uma vez que os agentes podem estar imersos dentro de
38
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
dispositivos adequados a Redes de Sensores sem Fio. Dessa forma, a plataforma
possibilita a pervasividade e ubiqüidade da computação envolvida e se torna base
para a implantação de ambientes inteligentes.
4.3. Visão Geral da Arquitetura
A arquitetura é composta de quatro componentes intercomunicantes e, ao
mesmo tempo, independentes: agente, comunidade, gateway e aplicação. Esses
quatro componentes podem ser considerados camadas da arquitetura e cada um
tem finalidades específicas (VIEIRA, 2010).
39
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
Figura 13: Visão geral da arquitetura e suas camada s (VIEIRA, 2010)
A primeira e mais baixa das camadas é a dos Agentes, responsável por ser a
camada de sensoriamento, ou seja, pela coleta de dados do ambiente. Quando
incorporados a outros dispositivos, os agentes tornam estes acessíveis, portanto
controláveis e configuráveis. (VIEIRA, 2010)
A segunda camada é a camada das Comunidades, entidades capazes de
comunicar-se com os agentes seja qual for o protocolo utilizado. Essa camada tem
40
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
como principal finalidade a agrupação de agentes em uma entidade maior,
permitindo assim um melhor acesso e distribuição da camada anterior (VIEIRA,
2010).
A terceira camada é a camada do Gateway. Esta é responsável por agrupar as
comunidades e permitir a ela um acesso externo, ou seja, o gateway tem que ser
acessível pelos protocolos Transmission Control Procotol e Internet Protocol
(TCP/IP) (IETF, 1981) e é um elo de aplicações finais e os serviços disponibilizados
pelos agentes (VIEIRA, 2010).
A quarta e última camada é a das Aplicações. Essa camada tem como finalidade
se comunicar com os gateways e expor ao usuário as comunidades, agentes e
serviços cadastrados naquele gateway (VIEIRA, 2010).
4.4. Visão Detalhada das Camadas da Arquitetura
Nesta seção serão detalhadas todas as camadas da arquitetura e suas
especificações.
4.4.1. Agente
Os agentes são entidades que possuem serviços que serão disponibilizados pela
plataforma. Estes podem ser incorporados a outros dispositivos permitindo um
acesso e controle. Estes dispositivos podem ser equipamentos comuns que são
encontrados em um ambiente normal (micro-ondas, tvs, geladeiras, etc.) e os
agentes, uma vez inseridos, permitirão uma interação com estes.
Cada serviço deve ter uma identificação única entre os serviços de um mesmo
agente, mas sua identificação pode ser igual a identificação dos serviços de outros
agentes. Essa identificação deve ser um número inteiro sequencial. Além disso, um
serviço deve conter uma descrição e um nome. Este possui ao menos três
interações: iniciar, parar e executar uma ação. Esses três acessos devem ter
permissão apenas para serem controlados pelo agente que possui o serviço, sendo
o agente que intermedia a solicitação de serviços e a execução destes. O acesso de
execução de uma ação deve ter a possibilidade de ter entrada de dados a serem
41
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
processados e uma resposta deve ser retornada. O agente deve enviar essa
resposta ao solicitante.
Um agente deve ser registrado em uma única comunidade (vide tópico 4.4.2) e
conter uma identificação também única entre os agentes dessa comunidade. Essa
identificação será atribuída pela comunidade no ato do registro e será um número
inteiro. Além da identificação, o agente deverá conter um nome, uma descrição e
todos os serviços a serem disponibilizados.
O agente registra-se em alguma comunidade para poder ser acessível. Esse
pacote de registro a ser enviado deve conter seu nome, sua descrição e todos os
seus serviços disponíveis e deve ser a primeira ação a ser feita antes de qualquer
outra troca de mensagem. Em resposta a um sucesso no registro, o agente deve
receber sua identificação em relação àquela comunidade.
Para uma solicitação de serviço, a comunidade enviará um pacote que conterá a
identificação do serviço solicitado e parâmetros para esse serviço. Como resposta à
solicitação, o agente deve enviar um pacote com o resultado do processamento do
serviço.
O protocolo utilizado de comunicação agente-comunidade deverá ser feito
através de Redes de Sensores sem Fio para dá uma maior mobilidade aos agentes.
A comunicação com outros agentes deve ser feita apenas através da
comunidade ao qual o agente solicitado está cadastrado e essa comunicação deve
ser uma solicitação de serviço feita à comunidade. Não existe comunicação direta
com qualquer outra camada sem ser por intermédio da camada das comunidades.
A identificação em relação a outros agentes será dada pela comunidade por um
número inteiro. A identificação única será apenas em relação aos agentes
registrados em uma determinada comunidade, mas pode ser a mesma em relação a
agentes registrados em comunidades diferentes.
4.4.2. Comunidade
As comunidades são entidades responsáveis por agrupar os agentes. Sua
principal função é ser um elo entre o gateway (GW) e os serviços disponibilizados
pela camada inferior.
42
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
Uma comunidade deve ser registrada em um único GW e conter uma
identificação também única entre as comunidades desse GW. Essa identificação
será atribuída pelo GW no ato do registro e será um número inteiro. Além da
identificação, deverá conter um nome, uma descrição e todas as comunidades
registradas.
A comunidade receberá solicitações de registros dos agentes. Essa solicitação
deverá conter: nome, descrição e serviços disponibilizados e tem a opção de aceitar
ou não a solicitação de registro, após isso uma resposta deverá ser enviada. Em
caso de não aceitação, um pacote com essa informação deverá ser enviada e em
caso de aceitação um pacote com essa informação e uma identificação para o
agente entre os agentes registrados nessa.
Solicitações de serviços serão enviadas ao agente que detém o serviço com a
identificação do serviço solicitado e os parâmetros utilizados. O agente enviará uma
resposta com o resultado do processamento do serviço solicitado.
A comunidade registra-se em algum gateway para poder ser acessível e prover
acesso aos agentes nela registrados. Esse pacote de registro a ser enviado deve
conter seu nome, sua descrição e todos os seus agentes registrados e deve ser a
primeira ação a ser feita antes de qualquer outra troca de mensagem com o
gateway. Em resposta a um sucesso no registro, a comunidade deve receber uma
identificação em relação aquele GW.
O GW fará solicitações de serviços à comunidade. Essa solicitação conterá qual
o serviço solicitado (identificação do agente + identificação do serviço no agente) e
os parâmetros a serem passados ao serviço. A solicitação será enviada ao agente
que detém o serviço e a resposta recebida dele deverá ser enviada ao gateway
solicitante.
O protocolo utilizado deverá ser o TCP/IP onde o gateway aguarda conexões em
uma determinada porta.
A identificação da comunidade em relação a outras camadas será dada pelo GW
por um número inteiro. A identificação única será apenas em relação às
comunidades registradas em um determinado gateway, mas pode ser a mesma em
relação a comunidades registradas em gateways diferentes.
43
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
4.4.3. Gateway
Os gateways tem como principal finalidade prover acesso às comunidades com
seus agentes e respectivos serviços. Sua principal característica é ser acessível
pelas aplicações e pelas comunidades pelo protocolo TCP/IP.
Esses componentes tem como identificação um número IP e uma porta por onde
requisições de aplicações e comunidades devem ser tratadas, além de um nome e
uma descrição.
Na comunicação com a camada inferior, o gateway faz solicitações de registros
das comunidades. Essa solicitação deverá conter: nome, descrição e os agentes
com seus respectivos serviços disponibilizados. O GW tem a opção de aceitar ou
não a solicitação de registro e uma resposta deverá ser enviada. Em caso de não
aceitação, um pacote com essa informação deverá ser enviado e em caso de
aceitação um pacote com essa informação e uma identificação para a comunidade
entre as outras comunidades registradas nesse GW (essa identificação deverá ser
um número inteiro). Solicitações de serviços serão enviadas à comunidade que
detém o agente e serviço solicitado com a identificação do serviço e os parâmetros
utilizados. A comunidade enviará uma resposta com o resultado do processamento
do serviço solicitado. O protocolo utilizado para comunicação com as comunidades é
o TCP/IP onde o gateway deverá aguardar conexões em uma determinada porta.
A aplicação fará solicitações de serviços. Essa solicitação conterá qual o serviço
solicitado (identificação da comunidade + identificação do agente + identificação do
serviço no agente) e os parâmetros a serem passados ao serviço. A solicitação
deverá ser enviada à comunidade que detém o agente solicitado e a resposta
recebida dela deverá ser enviada à aplicação solicitante.
O protocolo utilizado deverá ser o TCP/IP onde o gateway estará esperando
conexões em uma determinada porta. Não há comunicação do gateway com outras
camadas exceto a das comunidades e aplicações.
4.4.4. Aplicações
A camada de aplicações é a camada solicitante de serviços. Essas solicitações
devem ser enviadas ao gateway.
44
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
Solicitações de serviços serão enviadas à comunidade que detém o agente e
serviço solicitado com a identificação do serviço e os parâmetros utilizados. A
comunidade enviará uma resposta com o resultado do processamento do serviço
solicitado. Não há comunicação com qualquer outra camada exceto a dos gateways.
4.5. Comunicação entre as camadas
Figura 14: Detalhamento da comunicação entre as cam adas (VIEIRA, 2010)
A comunicação deve ser feita através de entidades denominadas pacotes. As
solicitações de serviços serão pacotes menores com valores próprios a serem
enviados dentro dos pacotes de comunicação.
Os pacotes de comunicação devem ser organizados em uma estrutura de
arquivos XML, de forma que se possa recuperar facilmente o conteúdo transmitido e
as informações possam ser organizadas hierarquicamente.
Os pacotes devem conter um tempo de vida "X", de 300 segundos. Após esse
tempo o pacote deverá expirar, passando a não ter qualquer valor para a entidade.
Uma identificação entre outros pacotes em uma determinada entidade e essa
identificação deverá ser única durante o período "2X" (duas vezes o tempo de vida
do pacote) para evitar conflitos. Essa identificação deverá ser um número inteiro.
Cada pacote deverá informar se é resposta de algum outro pacote. Caso a
resposta seja positiva, a identificação do pacote ao qual ele é resposta deve ser
incluída. Caso a resposta seja negativa, um valor padrão indicando que ele não é
resposta de nenhum outro pacote deve ser incluído. Além disso, deverá conter um
campo com o valor da mensagem enviada e uma sub-identificação que informará
qual o tipo de pacote. Os valores possíveis são: login, logout, solicitação de serviço,
resposta de solicitação de serviço, mensagem.
Para o pacote de solicitação de serviços, a identificação do serviço será dada
pela junção das identificações de: comunidade, agente, serviço, ou seja, a
45
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
identificação de um serviço se dá de forma hierárquica. Além disso, o pacote conterá
um campo para serem enviados parâmetros ao serviço solicitado e um campo valor
de resposta será preenchido pelo agente com a resposta do serviço e o mesmo
pacote será enviado de volta ao solicitante.
4.6. Visão de Implantação
É importante ressaltar que o gateway utilizado na comunicação precisa ter um
endereço de IP público, acessível externamente ao ambiente do sistema. Ainda é
necessário que as aplicações localizadas nos gateways devem ser executadas como
serviços, para garantir que estejam sempre disponíveis a qualquer momento durante
um longo intervalo de tempo.
46
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
CAPÍTULO 5: IMPLEMENTAÇÃO PARCIAL
Nesta seção estão descritas quais partes da arquitetura foram implementadas
e de que forma.
A plataforma implementada parcialmente teve a construção das quatro
camadas, porém não foram seguidas todas as especificações. O objetivo da
implementação foi ter um exemplo prático do funcionamento do For-All e montar um
básico ambiente inteligente. Toda a implementação foi feita utilizando a linguagem
de programação Java (ORACLE, 2010).
A camada dos agentes foi construída tendo como base o Sun SPOT e suas
especificações. O agente se registra em uma comunidade enviando as informações
sobre seus serviços disponíveis.
Cada serviço possui um nome, uma descrição e lista de argumentos a serem
passados. Utilizando os sensores de movimentação, luminosidade e temperatura,
foram implementados dois tipos de serviços para cada sensor:
• Monitor: responsável por capturar dados do ambiente;
• Alarme: responsável por verificar se os dados capturados estão dentro
de limiares permitidos, caso contrário um evento de alarme é
disparado.
A camada das comunidades foi construída tendo como base de comunicação
a base-station do Sun SPOT. Esse base-station é responsável pela transferência
dos dados entre a comunidade e o agente. Cada instância dessa camada possui
identificação, descrição e lista de agentes cadastrados. A comunidade se comunica
com o gateway através de uma conexão TCP/IP e esta manda as informações de
agentes e serviços disponíveis.
O gateway recebe conexões das comunidades para o registro e guarda essas
conexões para a comunicação. Essa camada tem uma lista de comunidades com
todas as informações de agentes e serviços disponíveis para que as aplicações
possam ter acesso. Aplicações fazem conexão TCP/IP e fazem a solicitação de
serviço indicando a comunidade, o agente e o serviço desejado e recebe a resposta
do resultado do processamento do serviço. O pacote de comunicação é uma classe
Java e é enviada através de fluxo de bytes.
47
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
A aplicação desenvolvida tem como entrada inicial o IP do gateway para a
conexão. Ao estabelecer a conexão, a aplicação recebe do gateway todas as
informações de comunidades, agentes e serviços disponíveis, preenchendo a tela e
deixando-as acessíveis para a escolha do usuário. Ao selecionar a comunidade, são
exibidos seus respectivos agentes. Ao selecionar um agente são exibidos seus
respectivos serviços.
Figura 15: Aplicação desenvolvida para solicitação de serviços
48
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
CAPÍTULO 6: RESULTADOS E DISCUSSÃO
Nesta seção serão apresentados os resultados e a discussão sobre eles.
Figura 16: Resultado de uma consulta de temperatura
Como validação da arquitetura parcialmente implementada, foi posicionado
um agente - utilizando Sun SPOT – na sala do Programa de Educação Tutorial do
Bacharelado em Ciência da Computação (PET.Com), situado no Departamento de
Informática (DI) da Universidade Federal da Paraíba (UFPB). Uma solicitação de
temperatura foi feita e a resposta foi recebida com o valor de 33.5 graus Celsius com
tempo inferior a 1 segundo. Como trata-se de um piloto, a resposta foi adequada e
dada em um tempo razoável, porém otimizações precisam ser feitas.
O teste da aplicação cliente foi feito utilizando o Computador A (vide
materiais): Para o gateway, comunidade e agente foi utilizado o Computador B (vide
materiais):
49
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
CONCLUSÕES
Neste trabalho foram apresentados a pesquisa e o desenvolvimento parcial
de uma arquitetura ubíqua, pervasiva e orientada a serviços para o suporte a criação
e montagem de ambientes inteligentes.
Com o For-All será possível utilizar agentes para diversos tipos de fins, tais
como segurança (monitoramento de temperatura, movimentação), comodidade
(nível de caixa de água, possibilitando a informação à distância da falta do
abastecimento de água) e até mesmo a incorporação de dispositivos encontrados
em ambientes comuns (tv, luz, geladeira, etc) à Internet (inovação), proporcionando
o acesso e o controle destes. Na criação de ambientes inteligentes, o For-All surge
como alternativa para a abstração de problemas encontrados na comunicação e
arquitetura do local, proporcionando um maior foco no ambiente em si e nos seus
serviços. A plataforma provê uma abstração sobre os protocolos de comunicação e
proporciona a criação e montagem de ambientes inteligentes de forma simples e
eficaz.
Pôde ser feito um estudo comparativo com outros trabalhos relacionados e o
For-All aproveitou alguns pontos fortes de cada um deles e o que o torna prático e
com abstração de algumas dificuldades devido a clareza de sua arquitetura.
O For-All permite a utilização de qualquer tipo de agente, desde que ele tenha
a capacidade de comunicação com a comunidade. Isso favorece o acoplamento de
vários dispositivos já existentes à arquitetura, sua manutenibilidade e permite um
horizonte mais vasto de tecnologias a serem utilizadas.
Apesar da não completude no seu desenvolvimento, foi possível perceber que
a arquitetura proposta é válida devido aos bons resultados nas implementações
iniciais, porém sua completa implementação e implantação se faz necessária para a
detectação de possíveis incoerências, não eficiência ou até mesmo falhas.
50
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
REFERÊNCIAS
ADELSTEIN, F.; GUPTA, K. Fundamentals of Mobile and Pervasive Computing. Mc Graw-Hill. 2005. ARAÚJO, R. B. Computação Ubíqua: Princípios, Tecnologias e Desafios. In: Simpósio Brasileiro de Redes de Computadores. XXI. 2003. Natal, RN. ARAYA, A. Questioning ubiquitous computing. In: Proceedings of the 1995 ACM 23rd annual conference on Computer science. 1995. Nashville, TN, USA. AURA, project. Disponível em: <http://www.cs.cmu.edu/~aura/>. Acesso em: 20 nov. 2010. AVELAR, P., GARCIA, R. A Engenharia Clínica no Cenário da Computação Ubíqua. In: 21º Congresso Brasileiro de Engenharia Biomédica. 2008. Salvador, BA. CAHILL, A.; KINDBERG, T., NOBLE, B. Building and evaluating ubiquitous system software. IEEE Pervasive Computing. P. 20-21. 2004 CARLESSO, R. S. Redes de Sensores Sem Fio. Montes Claros. Universidade Estadual de Montes Claros. 2006. DELICATO, F., PIRES, P., LAGES, A., REZENDE, J., PIMEZ, L. Middleware orientado a serviços para redes de sensores sem fio. In: Simpósio Brasileiro de Redes de Computadores. 2003. Natal, RN. ENDREI, M., ANG, J., ARSANJANI, A., CHUA, S., COMTE, P., KROGDAHL, P., LUO, M., NEWLING, T. Patterns: Service-Oriented Architecture and Web Services. 1. ed. Redbooks. 2004. ERICK, U. P., HUGH, T. Understanding Enterprise SOA. Manning Publications. 2006. ESCOBEDO, E. P., KOFUJE, S. T. Introdução a Ambiente Inteligente. In Workshop de Redes de Sensores Sem Fio. Santos, São Paulo, SP. 2006. Disponível em: <http://www.pad.lsi.usp.br/humanlab/workshop.html>. Acesso em: 4 jun. 2009 GAIA, project. Disponível em: <http://gaia.cs.uiuc.edu/>. Acesso em: 20 nov. 2010. GEYER, C. F. R. Projeto GRADEp: Middleware para gerenciar um ambiente de grade pervasiva. In:Rede Nacional de Ensino e Pesquisa, Grupo de Trabalho (GT). 2005. Disponível em: <http://www.rnp.br/pd/gts2004-2005/grade_pervasiva.html>. Acesso em: 23 abril 2009. GRIBBLE, S. D. et. Al. The Ninja Architecture for Robust Internet-Scale Systems and Services. University of California at Berkeley. 2001. Disponível em:
51
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
<http://www.eecs.umich.edu/~zmao/Papers/ninjaArch.pdf>. Acesso em: 10 mai. 2009. IETF - The Internet Engineering Task Force. Transmission Control Protocol. 1981. Disponível em: <http://tools.ietf.org/html/rfc0793>. Acesso em: 24 nov. 2010. JOSUTIS, M. SOA in Pratice. The Art of Distributed System Design. 1. ed. O´Reilly. 2007. KODALI, R. R. What is Service-Oriented Architecture. 2008. Disponível em: <http://www.javaworld.com>. Acesso em: 11 ago. 2008. LOKE, S. Context-Aware Pervasive Systems: Architectures for a New Breed of Applications. 1. ed.. Auerbach Publications, 2007 LOUREIRO, A. A. F. et. AL. Redes de Sensores Sem Fio. In: Simpósio Brasileiro de Redes de Computadores. 2003. Natal, RN. LOUREIRO, A.; RUIZ, L.; NOGUEIRA, J.M.; R. MINI; NAKAMURA, E.; FIGUEIREDO, C. M.. Mini-curso: Redes de Sensores sem Fio. In: Jornada de Atualização em Informática - XXII Simpósio Brasileiro de Computação. 2002. Florianópolis, SC. LYYTINEN, K.; YOO, Y. Issues and Challenges in Ubiquitous Computing. Communications of the ACM. n. 12, p. 63-65. 2002. MELOAN, S. Toward a Global “Internet of Things”. 2003. Disponível em: <http://java.sun.com/developer/technicalArticles/Ecommerce/rfid/>. Acesso em: 10 fev. 2010. OASIS, C. Reference model for service oriented architecture. Version: 1.0. Technical report. 2006. ORACLE. Plataforma Oracle Java Standard Edition (JavaSE). 2010. Disponível em: <http://www.oracle.com/technetwork/java/javase/overview/index.html>. Acesso em: 24 nov. 2010. OTHMAN, N. Y., GLITHO, R. H., KHENDEK, F. The design and implementation of a web service framework for individual nodes in sink-less wireless sensor networks. In: IEEE Symposium on Computers and Communications. 2007 OXYGEN, project. Disponível em: <http://oxygen.csail.mit.edu/>. Acesso em: 20 nov. 2010. REMAGNINO, P., FORESTI, G.L., Ambient Intelligence: A New Multidisciplinary Paradigm. IEEE Transactions on Systems, Man and Cybernetics, Part A, Volume 35. p. 1-6. 2005.
52
FOR-ALL 1.0: UMA PROPOSTA DE ARQUITETURA PARA REDES DE SENSORES SEM FIO
BASEADA NA COMPUTAÇÃO UBÍQUA, PERVASIVA E NA ORIENTAÇÃO A SERVIÇOS
SAHA, D., MUKHERJEE, A. Pervasive computing: a paradigm for the 21st century. In: IEEE Computer, v.36, n.3, p. 25–31, 2003. SARANUMMI, N. IT Applications for Pervasive, Personal, and Personalized Health. IEEE Transactions on Information Technology in Biomedicine, vol. 12, nº 1. 2008. SIORPAES, S., BROLL, G., PAOLUCCI, M., RUKZIO, E., HAMARD, J., WAGNER, M. e SCHMIDT, A. Mobile Interaction with the Internet of Things. In: International Conference on Pervasive Computing. 2006. Dublin, Irlanda. SUN Microsystems. Sun SPOT Project. 2009. Dispinível em: <http://www.sunspotworld.com>. Acesso em: 10 março 2009. VIEIRA, E. S. F., NEGREIROS, A. L. V. BRITO, A. V. For-All - Uma Plataforma para Sistemas Pervasivos Orientados a Serviço. In: Simpósio Brasileiro de Computação Ubíqua e Pervasiva. 2010. Minas Gerais, BH. W3C - World Wide Web Consortium. Simple Object Access Protocol (SOAP). Version 1.1. 2008. Disponível em: <http://www.w3.org/tr/soap/>. Acesso em: 12 maio 2008. W3C - World Wide Web Consortium. Extensible Markup Language (XML). Version 1.0. 2008. Disponível em: <http://www.w3.org/tr/rec-xml>. Acesso em: 10 out. 2008. WEISER, M. The Computer For TheTwenty-First Century. In Scientific American. p. 94-104, set, 1991. YAMIN, A. Arquitetura para um Ambiente de Grade Computacional Direcionado as Aplicações Distribuídas Móveis e Conscientes do Contexto da Computação Pervasiva. Tese (Doutorado em Ciência da Computação). Universidade Federal do Rio Grande do Sul, Porto Alegre, RS. 2004. YAMIN, A., AUGUSTIN, I., BARBOSA, J., SILVA, L., REAL, R., CAVALHEIRO, G. GEIYER, C. Towards merging context-aware, mobile and grid computing. In International journal of high performance computing applications. 2003, Londres, Reino Unido. ZIGBEE Alliance. 2009. Wireless Control that Simply Works. Disponível em: <http://www.zigbee.org>. Acesso em: 10 março 2009.