Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
3
Computao Ubqua Ciente de Contexto: Desafios
e Tendncias
Antonio Alfredo Ferreira Loureiro, Ricardo Augusto Rabelo Oliveira , Thais
Regina de Moura Braga Silva, Waldir Ribeiro Pires Jnior, Lillian Brando
Rezende de Oliveira,Rande Arievilo Moreira,Rafael Guimares Siqueira,Bruno
Pontes Soares Rocha,Linnyer Beatrys Ruiz
Abstract
Ubiquitous computing defines a new paradigm in which devices with processing and communication capacity are embedded into everyday elements, providing services in a transparent way to users. It is possible to notice that this kind of computing has a strong
connection with physical world features, as well as those presented by its users profiles. In this way, if ubiquitous systems are capable of using as input relevant information
about entities (e.g., people, places or objects) related to the application, they can provide
services that are more appropriate, dynamic and optimized, increasing the user satisfaction and minimizing resource consumption, such as energy, processing, communication,
among others. Such information is called context and represents the basic input element
for context-aware computing. The goal of this short course is to discuss research trends
on the ubiquitous context-aware field, presenting and analyzing the research performed
on specific challenges. Such proposal presents interesting solutions to problems ranging
from physical aspects of wireless communication to the design of applications available
to the users.
Resumo
A computao ubqua um novo paradigma no qual dispositivos com capacidade de
processamento e comunicao so embutidos nos elementos do dia-a-dia, provendo servios de forma transparente aos usurios. Pode-se observar que esse tipo de computao
possui forte ligao com as caractersticas do mundo fsico, bem como aquelas apresentadas pelos perfis de seus usurios. Assim, caso um sistema ubquo seja capaz de utilizar
como entrada informaes relevantes sobre as entidades (e.g., pessoas, lugares, objetos)
100
3.1. Introduo
A computao ubqua caracterizada pela presena de dispositivos portteis, cada vez
mais comuns devido aos avanos na fabricao de componentes eletrnicos. Esses dispositivos possuem uma considervel capacidade de processamento, com recursos para
comunicao sem fio e armazenamento de dados. Essa ltima caracterstica permitiu o
crescimento do uso de equipamentos portteis capazes de lidar com dados multimdia. Esses dispositivos se popularizaram como handhelds, PDAs, e, atualmente, tm aparecido
como smartphones e celulares de grande capacidade computacional. Alm das funcionalidades originais, como capacidade de comunicao via telefonia celular, tais dispositivos
tambm possuem diversas funcionalidades e interfaces como GPS, rdio e TV, tocadores de udio e cmeras fotogrficas digitais. Esses dispositivos vm sendo usados em
aplicaes que envolvem indstria, medicina, uso pessoal, etc.
Uma das principais reas de pesquisa dentro da computao ubqua a computao ciente do contexto (context-awareness). A computao ciente ou sensvel ao contexto
(Context-Aware Computing) define uma rea de pesquisa relativamente recente, que possui aplicaes em diferentes cenrios computacionais e que apresenta desafios de implementao importantes, os quais tm sido o alvo da ateno de pesquisadores provenientes
de diferentes partes do mundo. A proposta desta rea , em linhas gerais, elaborar uma
maneira de coletar para dispositivos computacionais, entradas capazes de refletir as condies atuais do usurio, do ambiente no qual o mesmo se encontra e do prprio dispositivo
computacional utilizado, considerando tanto suas caractersticas de hardware, como tambm de software e de comunicao. Tais entradas so os chamados contextos. Vrios
pesquisadores publicaram trabalhos no incio da dcada de 90, descrevendo definies
para o significado do termo contexto.
Dey et al [Dey (2001)] formalizaram a definio de contexto como sendo
Qualquer informao que possa ser utilizada para caracterizar a situao de entidades (pessoa, lugar ou objeto) que sejam consideradas relevantes para interao entre um usurio e uma aplicao (incluindo o usurio e
a aplicao)".
Essa uma das definies mais aceitas e utilizadas atualmente por pesquisadores
da rea, embora vrias outras tenham sido propostas e discutidas. Pode-se observar que a
101
definio bastante imparcial quanto aos tipos e variedades de dados que podem ser considerados como contextos, sendo ampla o suficiente para aceitar as diversas necessidades
especficas de cada aplicao. Alm disso, os autores tambm no restringem as fontes
de contextos possveis de serem utilizadas, permitindo que tais dados reflitam a situao
de qualquer entidade relevante para cada caso em particular. Finalmente interessante
notar como os autores conseguem apresentar uma definio precisa para o termo, sem a
necessidade de listar tipos ou classes especficas de contextos.
Embora os primeiros artigos na rea de computao sensvel ao contexto tenham
sido publicados no incio da dcada de 90, essa rea de pesquisa continua ainda hoje
bastante ativa. Possui muitas questes em aberto, as quais demandam intenso trabalho
de pesquisa para que sejam amplamente entendidas, encontrando-se as melhores e mais
eficiente tcnicas e solues relacionadas. A seguir esto listados alguns dos desafios de
pesquisa ainda existentes divididos em algumas sub-reas:
Sensoriamento: Escolha e incluso dinmica dos contextos mais apropriados a cada
aplicao; Tcnicas para coleta de contextos fsicos, lgicos e virtuais; Atribuio
de semntica uniforme aos contextos utilizados; Identificao e escolha de fontes
de contextos;
Modelagem: Modelo de arquitetura para sistemas cientes de contexto; Modelo para
representao uniforme da sintaxe dos dados de contexto coletados; Modelo de
armazenamento de dados contextuais; Modelo de comunicao adotado entre diversos usurios ou aplicaes;
Qualidade: Qualidade de contexto (QoC); Qualidade de servio (QoS); Qualidade
das fontes de contexto; Gerenciamento de aplicaes cientes de contexto; Tratamento de falhas; Automatizao de tarefas; Utilizao de algoritmos de aprendizado; Identificao e tratamento de contextos individuais conflitantes; Identificao
e tratamento de contextos coletivos conflitantes;
Segurana: Segurana para troca de dados entre usurios e aplicaes; Confiabilidade das fontes de contextos; Segurana da Informao de contexto;
Existem publicados na literatura vrios trabalhos descrevendo diferentes aplicaes para a computao ciente de contexto. A seguir esto listadas algumas das principais
ideias de aplicaes desse tipo. No entanto muitas outras ainda podem ser elaboradas,
visto que essa uma rea com potencial para ser aplicada em diversos e diferentes aspectos.
Uma das mais citadas aplicaes cientes de contexto est relacionada ao turismo.
O trabalho de Cheverst et al [Cheverst et al. (2000)] um dentre vrios que descrevem
como utilizar elementos de contexto para tornar a experincia de turistas mais simples,
personalizada e rica de informaes e detalhes. Em particular, o trabalho citado apresenta uma plataforma chamada GUIDE, construda para atender a demandas especficas
de turistas que viajam para conhecer cidades diferentes. Os requisitos para a ferramenta,
tais como flexibilidade, uso de informaes sensveis ao contexto, suporte para informaes dinmicas e servios interativos, foram obtidos com especialistas na rea de turismo.
102
O sistema combina tecnologias de computao mvel com uma estrutura de rede sem
fio para apresentar aos visitantes informaes adaptadas aos seus contextos pessoais e
ambientais. Testes foram realizados por meio de utilizao do sistema proposto por especialistas e tambm por usurios em potencial. O objetivo principal dos testes era revelar
o grau de usabilidade do sistema, bem como pontos em que melhorias diversas deveriam
ser realizadas.
Schilit et al [Schilit & Theimer (1994)] descrevem o Active Map Service", uma
aplicao que mantm clientes informados sobre mudanas em seus ambientes. Mapas
ativos descrevem a localizao e as caractersticas de objetos dentro de alguma regio enquanto os mesmos se modificam com o passar do tempo. Um aspecto importante, tratado
com cuidado pelos autores do trabalho, a questo de escala: mapas ativos devem tratar
atualizaes e consultas sobre regies suficientemente grandes para satisfazer o interesse
de clientes, assim como deve tratar picos de carga em regies com intensa movimentao
de usurios. Alm disso, a soluo proposta faz uso de endereamentos e roteamentos
multicast, uma vez que detecta grupos de usurios com interesses por atualizaes comuns. Para garantir que no haver sobrecarga nos canais de localizao, prov limites
garantidos no uso da largura de banda disponvel.
Embora possa ser utilizada por qualquer aplicao computacional para a qual seja
relevante, o uso da sensibilidade ao contexto especialmente importante para uma rea
em particular: a computao ubqua e pervasiva. Este tipo de computao define uma
nova maneira de relacionar usurios humanos e dispositivos computacionais. Essa uma
rea recente de pesquisa que prev a disponibilizao de computao e comunicao sem
fio o tempo todo e em todo lugar, permitindo que tais capacidades sejam incorporadas a
elementos do dia-a-dia e utilizadas de maneira transparente [Greenfield (2006)].
Especificamente, a mobilidade permitida aos usurios e seus objetos computacionais em aplicaes ubquas, faz com que o uso de contexto seja ainda mais importante. As
caractersticas utilizadas como entradas em tais solues podero se modificar a qualquer
instante, e essa informao crucial para que os melhores servios sejam oferecidos aos
usurios. Tais modificaes podem ser observadas em situaes nas quais o prprio usurio se movimenta de um local para outro, modificando-se assim as condies do ambiente
corrente em variados aspectos (condies fsicas, recursos fsicos disponveis, recursos
computacionais disponveis, fontes de contexto, conectividade, dentre outros) ou ainda
quando outros usurios e/ou recursos se movimentam para dentro e para fora da rea de
interesse da aplicao. Interessante notar portanto o aspecto dinmico do ambiente das
aplicaes, o qual faz da computao ciente de contexto uma aliada importante para o
melhor funcionamento dos sistemas ubquos. A restrio de recursos disponveis para
execuo das aplicaes outro fator importante a ser considerado, sendo bastante afetado pela caracterstica dinmica das aplicaes ubquas e pervasivas. Uma vez que os
recursos e servios disponibilizados para os usurios se modificam ao longo do tempo,
e os dispositivos utilizados so em geral pequenos, com poucas capacidades computacionais, de energia e memria, os sistemas desse tipo devem realizar um gerenciamento
de recursos consistente de maneira a prolongar o tempo de vida da aplicao, mantendo
os nveis de qualidade de servio desejados pelos usurios. O uso de contextos mais
uma vez importante de ser utilizado como forma de manter as aplicaes conscientes dos
recursos disponveis e demandados. Eles sero usados como entradas por algoritmos de
103
gerenciamento, capazes de comparar e escolher o que precisa e o que pode ser feito para
os usurios.
O objetivo deste minicurso apresentar o estado da arte na pesquisa em alguns
campos da pesquisa usando o computao ciente do contexto. A seo 3.2 apresenta
dois trabalhos sobre a identificao de fontes de contextos e duas tcnicas de aquisio
de dados contextuais atravs da anlise do sinal de rdio usado na comunicao sem
fio. A seo 3.3 mostra a caracterizao do usurio de dispositivos mveis atravs de
perfis. A seo 3.4 prope um sistema de a notificao de eventos para dispositivos mveis
baseado no perfil e contextos do usurio. A seo 3.5 lida com o conceito de contextos
coletivos, em situaes nas quais os contextos dos diferentes usurios so discordantes
ou incompatveis entre si e/ou com o ambiente a ser adaptado e necessrio lidar com
os problemas relacionados de maneira a maximizar a satisfao individual e coletiva dos
usurios. A seo 3.6 aborda a segurana em dois tpicos, sobre confiabilidade dos dados
compartilhados e a seleo adaptativa de protocolos de segurana. Por fim, a seo 3.7
possui os comentrios finais sobre o tema de pesquisa abordado.
104
servio para este tipo de dispositivos. A qualidade percebida pelo usurio depende
do contexto de rede, o qual pode ser definido como os eventos que possuem um impacto significativo na comunicao sem fio. A identificao do comportamento do
canal de comunicao necessria para obter a descrio deste contexto. Devido s
caractersticas intrnsecas da propagao do sinal transmitido, difcil medir e inferir o contexto bsico das redes sem fio, como por exemplo, predizer quando a baixa
qualidade do sinal de rdio causada por interferncia ou efeitos de atenuao devido ao ambiente da comunicao. Essa sub-seo apresenta um novo mtodo para
o gerenciamento centrado no usurio em redes sem fio que usam o padro IEEE
802.11b/g, determinando a presena de mobilidade e interferncia na comunicao.
O mtodo usa dois grficos de controle estatstico, MCEWMA (Moving Centerline
Exponential Weighted Moving Average) e o MCEWMV (Moving Centerline Exponential Weighted Moving Variance), associados com a anlise de resoluo mltipla
com a transformada de wavelets [Hansen & Meno (1977), Judd et al. (2008)].
3.2.1. Sistema de Posicionamento Hbrido e Ubquo para Dispositivos Mveis
Um sistema de posicionamento uma ferramenta usada para determinar e registrar a localizao de um objeto na superfcie da Terra. Existem sistemas de posicionamento para
ambientes internos [Priddge (2000), Kaemarungsi & Krishnamurthy (2004), Hightower
& Borriello (2001), Bahl & Padmanabhan (2000)] e externos [Hightower & Borriello
(2001), Haeberlen et al. (2005), Cheng et al. (2005)], alguns operam apenas em reas delimitadas [Priddge (2000), Kaemarungsi & Krishnamurthy (2004), Bahl & Padmanabhan
(2000)] enquanto outros operam sobre toda a superfcie do globo [Dittmer (2005)]. Seu
funcionamento, normalmente, se baseia na captura de sinais, de rdio, infra-vermelho ou
de satlites, para determinar a posio de um dispositivo, de acordo com algum referencial
ou sistema de coordenadas.
Muitos dispositivos mveis mais recentes j possuem capacidade de posicionamento atravs do Global Positioning System (GPS) [Dittmer (2005)], porm, o funcionamento correto do mesmo est praticamente restrito a ambientes externos pois no
possvel receber o sinal dos satlites quando dentro de alguma construo ou com visibilidade reduzida do cu [Dittmer (2005)]. Devido essa limitao do GPS e ao fato de
grande parte dos dispositivos ainda no serem compatveis com o sistema GPS, torna-se
justificvel a implementao de um Wireless Positioning System (WPS). Esse sistema
utilizar a densa malha de redes sem fio dos padres IEEE 802.11b e 802.11g j instaladas nas cidades para prover informaes de posio. Tambm dever funcionar dentro
de construes e exigir pouco ajuste, ao contrrio de alguns sistemas de localizao para
ambientes internos [Priddge (2000)] e [Kaemarungsi & Krishnamurthy (2004)].
3.2.1.1. Estado da arte
A primeira iniciativa conhecida de uso de sinal Wi-Fi como sinal de localizao o projeto [Bahl & Padmanabhan (2000)], que registrava impresses digitais de sinais de redes
Wi-Fi para determinar a posio de um dispositivo dentro de uma construo. A partir
desse trabalho, surgiram outras tentativas de se determinar a posio de dispositivos utilizando sinais de Wi-Fi, e mais recentemente, essas iniciativas passaram a tentar mapear
105
3.2.1.2. Desenvolvimento
Depois de uma reviso da bibliografia mencionada sobre sistemas de posicionamento, foi
necessrio um estudo prvio de detalhes de implementao da plataforma Android, devido a algumas peculiaridades acerca da programao para esta plataforma. Em seguida,
a primeira etapa da implementao, que corresponde ao cliente de mapeamento, pde ser
desenvolvida. Essa aplicao basicamente coleta as seguintes informaes em cada ponto
mapeado atravs de coordenadas de GPS, redes Wi-fi detectadas naquele ponto, principalmente endereo Mac, Received Signal Strength Indicator (RSSI) e informaes de clula
de celular, principalmente Mobile Country Code (MCC), Mobile Network Code (MNC) e
Cell Tower ID (CID);
Alm dessas informaes, uma parte importante da aplicao a insero de mar-
106
107
qual o ponto de maior probabilidade de representar a posio atual do dispositivo e retorna as coordenadas e posio simblica para o cliente, que por sua vez as exibe na tela,
como visto na Figura 3.4. O servidor tambm registra a posio do dispositivo atravs da
sobreposio de mapas, como pode ser visto na Figura 3.5.
Aps essas etapas de desenvolvimento, o sistema de posicionamento j capaz de
manter o mapeamento colaborativo funcional e sempre atualizado e inferir posies para
os dispositivos que as requisitarem. Os testes realizados so descritos na seo seguinte.
3.2.1.3. Resultados
O funcionamento do sistema aliado ao mapeamento prvio da rea sobre a qual o mesmo
deve operar. Como rea para testes preliminares, optou-se por mapear as redes sem fio ao
redor do prdio do ICEX, no campus da UFMG. Comprovou-se que esta era uma regio
boa para a realizao dos testes, devido densidade de pontos de acesso nessa rea, o que
contribui para a preciso do sistema.
O processo de testes do sistema foi prejudicado pela falta de um dispositivo real
e porttil que executasse o sistema operacional Android, porque as informaes de redes
sem fio, sinais de celular e GPS no podiam ser obtidas diretamente atravs do emulador.
Foram realizados alguns testes preliminares de preciso para o sistema, representados na
Tabela 3.1:
Em 88% dos casos o sistema retornou como posio para o dispositivo o ponto que
representava aquele mais prximo de sua posio real. Em 8% dos casos ele retornou um
ponto imediatamente vizinho, o que representa um erro de aproximadamente 10 metros
para a densidade de pontos do mapeamento usada. Outros dois testes encontraram uma
preciso menor do que a de 10 metros, porm em nenhum dos casos o erro superou os
40 metros. As variaes na preciso do sistema so observadas porque existem pontos no
108
Nmero de testes
44
4
1
1
Figura 3.5.
Posio
de um dispositivo em
tempo real
109
110
111
(a) Usurio prximo ao ponto de acesso. (b) Deslocamento para longe do ponto de
acesso, queda de velocidade.
(b) Queda na velocidade devido a erros de co- (c) Aumento da potncia de transmisso, intermunicao causados pela interferncia
ferncia causa perda de conexo em outros elementos .
Figura 3.7. Adaptao da potncia da antena do ponto de acesso.
vazo efetiva e no atraso presente. Em ambientes com muita interferncia, esse algoritmo
pode ser ativado diversas vezes, ocasionando mais mudanas nos modems e aumentando
com isso a variao do atraso. Em ambientes com mobilidade, e sem interferncia, essa
escolha dos modems pode mudar de maneira gradual, com a velocidade diminuindo proporcionalmente ao deslocamento. De posse dessa informao, os usurios e as aplicaes
podem adaptar a interface, de maneira a melhorar essa vazo, como por exemplo, aumentar da potncia de transmisso em situaes de deslocamento. A deciso adequada deve
levar em conta as restries dos dispositivos e os requisitos da aplicao.
112
113
3.2.2.3. Interferncia
Considerando um transmissor e um receptor, que utilizam a interface de rede IEEE 802.11,
possvel dividir as fontes de interferncia em dois grupos. O primeiro o das interferncias geradas por outros elementos de rede que tambm usam a interface IEEE 802.11,
mas no esto participando diretamente da comunicao. O segundo so aparelhos comuns que tambm trabalham na faixa de freqncia ISM usada pelo IEEE 802.11.
Em relao ao primeiro grupo possvel identificar as seguintes interferncias:
Co-canal: ocorre no momento em que outros elementos fisicamente prximos utilizam canais adjacentes e possuem uma potncia de transmisso elevada, causando
interferncia. A recomendao do prprio padro para esse caso o uso de canais
que no se sobrepem, como os canais 3, 6 ou 11;
Direta: ocorre quando outros elementos no conhecidos utilizam o mesmo canal
de comunicao. Por exemplo, vizinhos que utilizam o mesmo canal em sua rede
sem fio domstica. Dada a grande popularidade do IEEE 802.11 um caso comum.
Considerando o contexto de redes internas em casas e escritrios, sobre o segundo
grupo, possvel identificar as seguintes fontes de interferncia:
Telefones sem fio: Trabalham na faixa de freqncia de 2.4GHz e 5.4GHz. Sua
principal caracterstica o uso constante do canal de transmisso, para manter a
qualidade da comunicao de voz, e da alta potncia, j que o alcance de uso uma
das principais caractersticas deste tipo de aparelho;
Bluetooth: Este padro tem se tornado cada vez mais popular, presente em muitos dispositivos portteis. Ele no possui grande potncia de transmisso, uma vez
que tem o foco em economizar energia e utiliza uma tcnica de envio com salto
de freqncia, trocando os canais de uso a uma taxa de aproximadamente 3200 ms,
para minimizar o uso de canais que sofrem interferncia. Em contrapartida, a interferncia que causa sobre o IEEE 802.11 j bem conhecida, como visto em [Punnoose et al. (2001)] e [Jung-Hyuck & Jayant (2003)];
114
115
o uso das estratgias de mdias mveis exponenciais nos grficos de controle (os grficos
de controle clssicos utilizam modelos mais simples e menos expressivos). Tambm, cabe
notar que a variabilidade e assimetria so melhor caracterizados pela anlise de multiresoluo. Dessa forma, o uso conjunto dos dois mtodos justificado pelos seguintes
pontos:
Anlise Temporal: O grfico de controle MCEWMA identifica eventos fora de controle que aparecem na mdia das amostras das medidas de RSSI e o grfico de
controle MCEWMV identifica as situaes fora de controle sobre a varincia. Utilizando esses grficos de controle, o controle estatstico de processos permite a
investigao da amplitude do sinal identificando tendncias de situaes fora de
controle. Mas a informao sobre a variabilidade entre as diferentes amostras das
medidas de RSSI no so totalmente identificadas, sendo necessrio uma anlise
espectral entre essas medidas;
Anlise Espectral: A transformada de wavelets permite identificar a variabilidade
de um conjunto de amostras sucessivas das medidas de RSSI. Aplicada sobre os dados suavizados na sada do MCEWMA, o resultado da transformada usado para
descrever a variabilidade entre as diferentes amostras. A transformada aplicada
sobre as medidas suavizadas e no sobre as medidas para evitar o rudo presente
nas medidas. O rudo e a amplitude do sinal so verificados pelos grficos de controle. Relaciona a variabilidade das medidas. Descreve as frequncias presentes em
cada janela t. Numa janela t, nveis maiores indicam um transiente relativo a
mobilidade. Nveis menores indicam presena de interferncia
A partir dos vetores gerados pelos grficos de controle, x , su e sl , associados
com o escalograma e a identificao do mdulo feitos na anlise de wavelets, armazenados nos vetores E e M, possvel identificar o comportamento da srie temporal e com
isso associar este comportamento aos eventos presentes no ambiente da rede sem fio.
Com esta informao, e aps uma srie de testes, feitos para garantir um intervalo
de confiana de 95%, a informao dos eventos foi usada para criar a Tabela 3.2. Esta
tabela enumera os eventos, associados com interferncia e mobilidade e apresenta a descrio. Esta informao utilizada para mostrar ao usurio a descrio no momento que
feita a identificao de cada evento.
3.2.2.6. Identificao de Eventos
Estes testes foram conduzidos em um ambiente interno de uma casa, considerando o
cenrio de baixa densidade de usurios e uma distribuio no planejada de pontos de
acesso na vizinhana. Associado a isso, foram utilizados telefones sem fio e dispositivos
Bluetooth como fonte de interferncia.
Toda a mobilidade foi feita em aproximadamente 0.5 m/s, uma velocidade para
uma pessoa andando e usando um dispositivo mvel (a noo de mobilidade humana
ainda um tpico para pesquisas; como pode ser visto em, Gonzlez et al. 2008).
116
Evento Detectado
1
2
3
4
5
6
7
8
Descrio
Perda de Conexo
Perda de Conexo devido Interferncia
Aproximando do AP
Interferncia Fraca
Afastando do AP
Interferncia Mdia
Movendo
Interferncia Forte
Em todos os grficos, cada experimento foi feito com a durao de 300 seconds,
e a resoluo de tempo no eixo x associada a taxa de amostragem de 10 ms. Para cada
evento detectado, o mecanismo pode ser usado para alertar o usurio, usando as descries
mostradas na Tabela 3.2.
A Figura 3.10 mostra o primeiro caso, onde no existe mobilidade ou interferncia. Todas as flutuaes dos sinais so devido ao rudo causado pelo decaimento em
multi-caminho, o qual ignorado pelo sistema de deteco e nenhum evento registrado.
30
50
70
RSSI(dbm)
Measures
500
1000
1500
2000
2500
3000
Detected Event
time
time
Figura 3.10. Investigao da comunicao em um dispositivo parado, sem a presena de interferncia. Nenhum evento identificado.
A Figura 3.11 mostra a deteco de uma comunicao Bluetooth, que causa interferncia sobre a comunicao WiFi. Para este tipo de interferncia, uma interface Bluetooth foi ativada e usada com o Lan Profile, para acessar um ponto de acesso Bluetooth.
Os eventos identificados esto nos pontos ressaltados no grfico. No grfico mostrado o
tempo onde os eventos foram detectados e o nmero que indica o evento, como mostrado
na Tabela 3.2.
O cenrio de mobilidade mostrado na Figura 3.12. Neste teste, o usurio move
afastando do ponto de acesso, a partir do instante 10000 ms at 15000 ms, e o evento 5
detectado, como mostrado no grfico. Quando a movimentao feita em direo
ao ponto de acesso, at o tempo 24400 ms, outros eventos associados com mobilidade
117
30
50
70
RSSI(dbm)
Measures
500
1000
1500
2000
2500
3000
8
4
1760
1920
2080
2240
2400
2560
2720
2880
Detected Event
time
time
tambm so detectados. Neste caso, duas outras identificaes associadas a interferncia foram feitas, causadas pelos pontos de acesso na regio. Com isso, o cenrio final
mostrado na Figura 3.13, onde a mobilidade e a interferncia aparecem: o usurio movimenta para um lugar onde existe a presena de interferncia oriunda de diferentes pontos
de acesso. Neste caso, esta informao mostra ao usurio a condio na qual se encontra
a regio que ele esta se deslocando. A importncia deste resultado oferecer ao usurio
a informao sobre as condies do ambiente de comunicao, oferecendo ao usurio a
opo de movimentar para fora da regio de interferncia.
30
50
70
RSSI(dbm)
Measures
500
1000
1500
2000
2500
3000
78
34
1120
1280
1440
1600
1760
1920
2080
2240
Detected Event
time
time
118
30
50
70
RSSI(dbm)
Measures
500
1000
1500
2000
2500
3000
8
4
1600
1760
1920
2080
2240
2400
2560
2720
2880
800
960
1120
1280
Detected Event
time
time
bilidade e interferncia. Diferente de uma API, que necessita apenas oferecer o acesso a
determinadas funcionalidades do sistema, essa identificao um sistema reativo, assncrono. Dada essa caracterstica, necessrio que essa implementao verifique constantemente a interface e, em seguida, disponibilize essa informao para as aplicaes.
A disponibilizao das informaes sobre a ocorrncia de eventos pode ser feita
de maneira ativa, onde feita a notificao para as aplicaes sobre alguma atualizao no
contexto, ou pode ser feita de maneira passiva, onde as aplicaes buscam a informao
sobre o contexto. Devido necessidade de uma rpida reao ao contexto da comunicao sem fio, a disponibilizao ativa desta informao permite uma adaptao adequada
ao ambiente. A partir deste requisito, foi criado um middleware, integrado a diferentes
sistemas operacionais, com o objetivo de permitir uma base de testes slida, alm de uma
integrao deste middleware de maneira mais transparente com as aplicaes.
O objetivo deste middleware permitir a identificao dos eventos de mobilidade
e interferncia em diferentes tipos de sistemas operacionais. Os seus componentes so
descritos a seguir:
Amostragem: implementa uma interface com a API de cada sistema operacional,
que permite a leitura das medidas de RSSI. Este mdulo tem sua implementao
especfica para cada sistema operacional, atendendo s restries de memria e
processamento.
Controle Estatstico: efetua o clculo do MCEWMA e MCEWMV e a identificao dos eventos fora de controle;
Filtro de Wavelet: efetua a transformada de wavelets e o clculo do escalograma
sobre os dados da janela amostral;
Agente: efetua o clculo do scoreboard e gera a identificao do evento. Tambm especfico para cada sistema operacional, uma vez que utiliza os sistemas de
gerao de eventos e de sinalizao disponveis.
119
Requisito
RSSI
Windows XP
Acesso ao WMI, Microsoft (2008)
Implementao
Servio
Linux
Acesso ao PROC
diretrio proc
Daemon
Integrao
Android
Acesso ao
WifiManager
Servio do
Application framework
Gerao de evento e RPC
120
121
solicitar informaes ao usurio para definir o que deve ser feito. Essa forma mais trabalhosa e exige interao entre a aplicao e usurio a todo instante, o que pode tornar
a aplicao mais lenta. A soluo proposta consiste em estabelecer uma comunicao
apenas entre a aplicao e o perfil. A aplicao no precisa se comunicar com os demais
servios que compem o perfil. Esse perfil j foi construdo previamente por servios
auxiliares (servio de localizao, servio de configurao de dispositivo, servio de gerenciamento de interesses (contexto) servio de configurao da rede e servio de configurao do dispositivo). Uma representao da soluo proposta pode ser vista na Figura
3.14.
Figura 3.14. Modelagem da soluo proposta. O perfil composto por informaes fornecidas pelos servios auxiliares. A aplicao se comunica apenas com
o perfil.
122
123
124
computao ubqua Weiser (1993a), apresenta em uma nica frase o conceito de transparncia: uma boa ferramenta exatamente aquela que est invisvel para o usurio, no
invadindo sua conscincia. O foco do usurio deve ser maior na atividade ao invs da
ferramenta, e a execuo de tarefas deve ser feita sem a necessidade de ateno e cincia
da tecnologia por trs.
O modelo de comunicao baseado em eventos descreve um paradigma aplicvel
na interconexo de elementos que compem aplicaes em ambientes ubquos Weiser
(1993b), Dearle (1998) de uma maneira assncrona. Estes ambientes em geral contem
aplicaes e elementos de rede que so em geral heterogneos e distribudos. Eles so
heterogneos devido ao fato destes poderem executar tipos de tarefas diferentes para o
usurio, requerendo conjuntos variados de componentes de hardware e software. Eles
tambm so distribudos de tal forma que um nico elemento de rede pode possuir uma
dependncia sobre outros elementos, tais como obter informaes do ambiente e executar
tarefas pelo usurio.
3.4.4. Servio Mvel de Notificao de Eventos
O processo de gerenciamento de eventos e os resultados de um prottipo so apresentados
neste trabalho com o objetivo de demonstrar a viabilidade deste servio em aplicaes
mveis e tambm sua importncia na computao ciente de contexto.
3.4.4.1. Arquitetura
O servidor de eventos utiliza uma arquitetura cliente-servidor composta de um componente localizado no dispositivo mvel e um servidor de dados remoto. A razo de o
sistema possuir dois componentes distribudos est no fato da necessidade em se captar
eventos em ambos os lados. O servidor de eventos localizado no dispositivo recebe os
eventos gerados por outros servios ou aplicaes em execuo e os envia para o servidor
de eventos localizado no servidor de dados (SDE). Este servidor de eventos responsvel
por receber os eventos gerados no dispositivo, receber os eventos gerados no prprio servidor e enviar notificaes de eventos ocorridos no lado do servidor de interesse a partir
de SeRBIs para as aplicaes em execuo ou diretamente para o usurio.
3.4.5. DroidGuide
Para fins de demonstrao da viabilidade no gerenciamento de eventos em aplicaes
ubquas, o sistema proposto neste trabalho foi incorporado em uma aplicao turstica denominada DroidGuide. O DroidGuide utiliza uma arquitetura cliente-servidor composta
de clientes mveis na plataforma de software e sistema operacional Android e um servidor de dados remoto na plataforma de desenvolvimento de aplicaes Web App Engine
(GAE ) tambm da Google, executando sobre o ambiente de execuo Python. Clientes
mveis comunicam com o servidor atravs de mensagens de requisio/resposta sobre o
protocolo HTTP. Dados so enviados do cliente para o servidor atravs de requisies do
tipo GET . Ao receber estas requisies, o servidor as processa e responde para o cliente atravs do envio de documentos XML sobre HTTP. Neste prottipo, assume-se que
o dispositivo mvel possui capacidade de se conectar ao servidor utilizando um ponto de
125
acesso em uma das redes sem fio disponveis (wireless LAN ou GPRS/EDGE/HSDPA).
Como o objetivo de simplificar e facilitar a integrao das diversas funcionalidades
do sistema, o DroidGuide foi logicamente dividido em mdulos com responsabilidades e
relacionamentos bem definidos. Cada mdulo em geral composto de um componente
localizado tanto no dispositivo mvel (em forma de cliente) quanto no servidor de dados
(em forma de servio). Os principais mdulos da aplicao so: 1) aplicao, responsvel por gerenciar as principais telas, comandos da aplicao e define o relacionamento
funcional entre todos os outros mdulos do sistema; 2) perfil, responsvel por gerenciar
as informaes e interesses do usurio; 3) contexto, que gerencia as informaes sobre o
estado do usurio, informaes climticas e de localizao; 4) comunicao, que prov
a comunicao de todos os mdulos entre o cliente e o servidor; 5) escalonador, responsvel por apresentar atraes tursticas baseadas nas informaes de perfil e contexto do
usurio; 6) servidor de eventos, responsvel por obter informaes de mudana de dados de perfil e contexto e notificar o usurio de servios relacionados a estas mudanas;
7) adaptao, responsvel pela apresentao do contedo baseado em dados de perfil e
contexto.
126
127
Figura 3.16. Demonstrao do processamento de eventos ocorrendo no dispositivo e no servidor de dados do DroidGuide. Em (A), mudanas no ambiente
ou nos dados de perfil e contexto do usurio causam a ativao do servidor de
eventos (B). O servio cria eventos e os envia para o servidor de dados (C), onde
o servidor de eventos os processa (D). O servidor busca por SeRBIs interessadas nos eventos (E). Caso os SeRBIs subscritos pelo usurio dependam destes
eventos, eles sero ativados. Os SeRBIs tambm podem gerar eventos em situaes onde ocorram mudanas de contexto remoto (F), criando assim eventos
no lado do servidor de dados(G). Estes eventos criados no servidor de dados
e ativaes de SeRBIs causam a criao de mensagens de notificao (H) que
sero entregues ao cliente (I). O dispositivo ento recebe a mensagem de notificao, onde esta repassada para o componente ouvinte ou diretamente para o
usurio (J).
128
129
130
cias e situaes pessoais. Devem explicitar ainda a relao entre o usurio e os demais
elementos de seu grupo. Cada usurio pode apresentar um valor prprio. Fome, sono e
grau de parentesco so alguns tipos possveis de contextos prprios.
A combinao de dados contextuais coletivos deve ser utilizada para realizar a
adaptao das tarefas da aplicao. No entanto, a divergncia entre os mesmos pode levar ocorrncia de conflitos de interesse. Ao analisar os valores de entrada de contextos
coletivos apresentados por cada um dos usurios, bem como os recursos e caractersticas
correntes dos ambientes fsicos e computacionais compartilhados, a aplicao poder entrar em um estado de inconsistncia, incapaz de decidir o que dever ser feito quanto s
adaptaes a serem realizadas de maneira a atender as demandas individuais e coletivas
ao mesmo tempo. Nesse caso, diz-se que ocorreu na aplicao um conflito coletivo.
Identificada a ocorrncia de um conflito coletivo, a aplicao dever encontrar
formas, simples ou sofisticadas, para resolver a inconsistncia ou impasse. A execuo
de uma tcnica ou algoritmo que permita atender de maneira inteligente e conveniente as
diferenas geradas pelos dados contextuais coletivos utilizados denominada tratamento
de contextos coletivos.
Para tratar conflitos coletivos necessrio que a soluo de conciliao proposta
modifique de alguma maneira o conjunto de tarefas da aplicao. Nesse caso, deve-se
escolher em quais aspectos das tarefas sero realizadas tais alteraes, permitindo assim a
escolha do algoritmo de conciliao mais adequado. Tais aspectos so chamados os nveis
de atuao e alguns exemplos para os mesmos so os parmetros, a ordem, o agrupamento
e a composio das tarefas. Vale ressaltar que alteraes nas tarefas podem levar em
ltima instncia a modificaes nos ambientes fsicos e/ou computacionais.
3.5.3. Trabalhos Relacionados
Os trabalhos encontrados em [Masthoff (2004)] e [McCarthy & Anagnost (2000)] podem
ser considerados relacionados ao objetivo geral deste trabalho: realizar tratamento de
conflitos coletivos. No entanto, enquanto tais trabalhos esto focados em uma nica aplicao, um conjunto fechado de contextos e arquiteturas de implementao especficas, a
proposta deste trabalho possui uma viso mais ampla e dinmica, no sendo portanto particular para aplicaes ou contextos e pretendendo oferecer uma gama de possibilidades
de implementao.
Roy et al. em [Roy et al. (2006)] apresentam uma soluo para construo de uma
casa inteligente que considera as atividades e localizaes de mltiplos moradores. A contribuio desse trabalho est em oferecer suporte aos diferentes participantes capturando
as correlaes e interaes entre seus movimentos e atividades, e proporcionando um ambiente adaptado a todos, sem conceder preferncias. Ao contrrio da proposta apresentada
por Roy et al., este trabalho apresenta uma soluo para tratamentos de conflitos coletivos
genrica, possvel de ser implementada para qualquer aplicao e adaptvel s condies
correntes das mesmas. Shin et al. [Shin & Woo (2005)] discutem tambm o problema
da adaptao de ambientes ubquos em situaes de compartilhamento de aplicaes, servios e recursos por mltiplos usurios. A soluo para tais conflitos apresentada pelos
autores foi a atribuio de prioridades para cada usurio. O trabalho utiliza um tipo de
soluo que emprega sempre a mesma maneira simples e rgida para resolver o problema
131
em questo. Ardissono et al. [Ardissono et al. (2002)] apresentam um sistema Web para
elaborao de lista de tarefas para grupos heterogneos de turistas. Cabe a um dos usurios interagir com o sistema para informar o nmero de pessoas no grupo e dividi-las em
sub-grupos relevantes, considerando critrios tais como idades, interesses, capacidades
visuais e deficincias fsicas. Com base nas informaes fornecidas, o sistema escolhe as
melhores tarefas para cada sub-grupo, podendo apresent-las em listas separadas ou em
uma verso nica. O sistema descrito por esse trabalho diferente de aplicaes cientes de contexto uma vez que seu objetivo ajudar usurios a escalonar o passeio, e no
gui-los durante as visitas.
3.5.4. Tratamento de Conflitos Coletivos: Uma Abordagem Dinmica
No processo de desenvolvimento de uma soluo para tratamento de conflitos coletivos,
verificou-se a necessidade de modelar todo o ciclo de vida de aplicaes ciente de contexto
de forma a entender quais seriam as principais aes necessrias de serem projetadas para
a implementao e execuo das mesmas. A viso geral desse ciclo permite uma maior
compreenso da dinmica de funcionamento dessas aplicaes, identificao dos principais desafios associados e em especial a percepo dos pontos nos quais aes especficas
para aplicaes coletivas devem ser executadas.
Uma vez que no foram encontrados pelos autores na literatura trabalhos que abordem tal assunto, em particular considerando aplicaes com carter coletivo, um diagrama
de atividades para o ciclo de vida de aplicaes ubquas, cientes de contexto e coletivas
foi projetado. Tal diagrama composto por fases e suas respectivas atividades. Cada
fase configura um momento do ciclo de vida de uma aplicao ciente de contexto, e cada
atividade representa para a fase associada uma operao importante a ser executada para
o correto e completo funcionamento da aplicao.
Embora proposto para modelar aplicaes coletivas, o diagrama pode ser utilizado
tambm no projeto de aplicaes individuais, uma vez que todos os mdulos a serem
desenvolvidos apenas para as primeiras foram encapsulados em um nico bloco, chamado
Conflict Engine, o qual executado em uma nica atividade.
3.5.5. O Ciclo de Vida das Aplicaes Coletivas
A abordagem escolhida para a construo do diagrama est baseada na distribuio de
atividades a serem executadas em trs fases distintas do ciclo de vida de uma aplicao
ubqua e ciente de contexto: (i) Pr-aplicao, (ii) Aplicao e (iii) Ps-aplicao. A
Figura 3.19 ilustra o diagrama.
A fase Pr-aplicao envolve a preparao de todos os aspectos necessrios ao
correto e completo funcionamento de uma aplicao ubqua e ciente de contexto com
tratamento de conflitos em contextos coletivos. Desse modo, devero ser executadas as
seguintes atividades:
Configurar ambientes inteligentes: os ambientes a serem utilizados devem ser instrumentados com toda e qualquer forma de oferecer para a aplicao dados contextuais diversos, recursos fsicos e computacionais demandados pelas aplicaes e
ainda os meios necessrios para comunicao entre os dispositivos instalados;
132
Pr-aplicao
Configurar Ambientes
Inteligentes
Configurar Hardware
do Usurio
Obter Entradas
Pr-processamento Sinttico e
Semntico das Entradas
Classificao de Tarefas
Desenvolver Software
(Aplic., Arq., Engine)
Executar Tarefas de
Startup
Ps-aplicao
Aplicao
Processamento
de Tarefas
Coletivas
Executar Tarefas
Individuais
Executar Tarefas
Coletivas
Executar Tarefas de
Finalizao
Avaliar Qualidade
Executar Aes de
Aprendizado
Construir / Atualizar
Bases de Dados
Configurar hardware dos usurios: todo usurio necessita de dispositivos de hardware para interagir com a aplicao, sejam eles sensores introduzidos, computadores vestveis ou mesmo os tradicionais computadores de mo ou celulares. Uma
vez que existem diversos modelos e configuraes para dispositivos utilizados nesses casos, necessrio no s detalhar requisitos mnimos de funcionamento, mas
tambm escolher uma estratgia para lidar com a potencial heterogeneidade observada;
Desenvolver software: inclui as implementaes da aplicao, de todos os mdulos
de suporte da arquitetura de software escolhida e do bloco responsvel pelo tratamento de conflitos coletivos.
Executar tarefas de Startup: atividade na qual sero executadas todas as aes necessrias para iniciar a aplicao, os mdulos componentes da arquitetura de software e o bloco para tratamento de conflitos coletivos utilizado.
A fase da Aplicao aquela em que os usurios, portando seus dispositivos corretamente escolhidos e configurados, se inserem em uma diversidade de ambientes inteligentes previamente instrumentados e executam, de acordo com suas necessidades, uma
srie de tarefas disponibilizadas pela aplicao. Nessa fase, os usurios desejam ser servidos de tarefas da melhor maneira possvel de acordo com seus dados contextuais, dos
demais elementos do grupo e os do ambiente a sua volta. Nesse caso, as seguintes atividades so executadas:
Obter entradas: nessa atividade, a aplicao obtm junto arquitetura de software
utilizada as trs entradas bsicas necessrias para sua execuo: dados contextuais
individuais, dados contextuais do ambiente e a lista de tarefas disponibilizadas para
seus usurios;
Pr-processamento semntico e sinttico: dados contextuais e tarefas da aplicao
devem ser pr-processados, de forma a adquirirem associaes semnticas e sintaxes padronizadas. Essas aes viabilizaro melhor armazenamento, intercmbio e
utilizao final dos mesmos. Alm disso, ser necessrio associar contextos s tarefas, de maneira que apenas aqueles dados que sejam realmente importantes para
133
as adaptaes executadas sejam coletados e considerados. Outras tarefas de prprocessamento especficas para cada aplicao podem ainda ser executadas;
Classificao de tarefas: as tarefas da aplicao so separadas em individuais ou
coletivas. As tarefas individuais podem ser prontamente ofertadas aos usurios,
uma vez que sua execuo no possui relao direta com contextos e tarefas de
outros usurios. As tarefas coletivas, entretanto, s devem ser ofertadas aos usurios
aps passarem por um bloco de avaliao. Diferentes tcnicas podem ser utilizadas
para realizar a classificao, como a anlise dos dados semnticos associados, dos
contextos utilizados, troca de mensagens entre usurios participantes, dentre outras;
Processamento de tarefas coletivas: o sistema procurar por conflitos entre os contextos coletivos apresentados pelos diversos usurios participantes, considerando o
estado corrente dos ambientes fsicos e computacionais compartilhados, bem como
o conjunto de tarefas a serem processadas. Caso tal conflito no seja detectado, o
conjunto de tarefas est liberado e poder ser executado. Se um conflito for detectado, o mesmo dever ser ajustado em algum nvel, antes de ser ofertado. Vale
ressaltar que o conjunto de tarefas processados poder conter apenas uma ou at
mesmo todas as tarefas disponibilizadas pela aplicao. Essa atividade executada
apenas para tarefas classificadas previamente como coletivas.
Em algum momento, a aplicao ciente de contexto ser finalizada pelo usurio
ou espontaneamente uma vez que todas as tarefas j foram executadas. Nesse ponto se
inicia a fase chamada Ps-aplicao, a qual possui algumas atividades associadas, utilizadas para encerrar a aplicao, verificar a qualidade das aes realizadas e armazenar
dados e informaes obtidas ao longo do perodo de utilizao. Essa fase em particular
bastante dependente da aplicao, uma vez que cada uma poder apresentar necessidades
especficas de finalizao.
3.5.5.1. Conflict Engine: Deteco e Tratamento de Conflitos
Um conjunto de mdulos deve ser implementado junto aplicao de maneira a permitir,
sempre que necessrio, o processamento das tarefas coletivas. Esse conjunto pode ser
visto como um arcabouo de software e chamado Conflict Engine. Seus componentes
so apresentados a seguir, juntamente com uma discusso sobre as possibilidades de implementao para o mesmo. A organizao dos mdulos do arcabouo conforme mostra a
Figura 3.20 uma contribuio deste trabalho e foi proposta para funcionar com diferentes arquiteturas de software para sistemas cientes de contexto e de maneira independente
das aplicaes utilizadas.
O mdulo de verificao de conflitos realiza uma anlise tri-dimensional considerando como eixos os perfis dos usurios envolvidos, o perfil do ambiente e as tarefas da
aplicao. Pode ser programado para utilizar todos os dados disponveis nessas dimenses para anlise, bem como apenas um subconjunto desses. A escolha de como ser feita
a anlise depende basicamente dos nveis de atuao escolhidos, os quais indicam como
as tarefas podem ser processadas na busca pela ocorrncia de conflitos e como as mesmas
podem ser alteradas em casos de conciliao.
134
Conflict Engine
Nveis
Atuao
Perfis
Re-Startup
Classificar
Algoritmos
Iniciar
Acordos
Execuo
Supervisionada
Tarefas
Outros
BDs
Arquitetura
de Software
O mdulo de conciliao recebe como entradas as tarefas conflitantes, os perfis dos usurios envolvidos, o perfil do ambiente, os nveis de atuao da conciliao,
algoritmos ou tcnicas disponveis para o tratamento e demais informaes necessrias
armazenadas em bases de dados da arquitetura de software utilizada. Esse mdulo deve
executar algoritmos que resolvam o conflito detectado para determinado nvel de atuao.
Uma vez que as aplicaes em foco so ubquas, tal mdulo dever executar tcnicas
de conciliao vinculadas a limites para consumo de recursos e/ou qualidade de servio.
Como resultado tarefas adaptadas so produzidas atendendo aos interesses da coletividade, mas procurando considerar ao mximo as demandas individuais e as possibilidades
contextuais correntes.
O mdulo de Re-Startup invocado em alguns casos, como parte do processo de
anlise para verificao de conflitos ou dos ajustes necessrios para a adaptao de tarefas
que envolvem contextos coletivos. Permite re-executar as aes que foram previamente
realizadas pela atividade de Startup na fase de Pr-aplicao.
135
136
137
138
139
140
Route Selector: A principal funo deste componente (Seletor de Rota) avaliar as rotas baseado nos valores de confiana dos ns que constituem a rota e selecionar a
melhor baseado nesta avaliao. As rotas so avaliadas e aquela com o maior grau
de confiana utilizada. Algumas vezes, uma rota que sabidamente boa pode ser
avaliada como uma rota ruim e outra com um n malicioso pode ser avaliada como
boa. Por isso, a estratgia de seleo da rota uma tarefa bastante difcil e poderia
considerar outros fatores, como latncia. Entretanto, por questes de simplicidade,
a estratgia utilizada avalia a confiana da rota utilizando relaes de transitividade
(a confiana de um n i em um n j calculada levando em conta o valor da confiana entre todos os ns que esto na rota de i at j). Como melhoria sobre o
mecanismo de escolha de rotas original do NS, pode-se citar o fato de que, se uma
rota avaliada com o valor mximo, as demais rotas no so verificadas, havendo
assim um ganho em tempo de execuo.
Acknowledgment Monitor: Para realizar a atualizao dos valores de confiana dos ns,
utilizado um mecanismo de confirmao (do ingls, acknowledgment) de mensagens. Com o intuito de diminuir o overhead da rede, so utilizados acknowledgments apenas para pacotes de dados, e no para pacotes de roteamento. O propsito
do mecanismo de confirmao usar os acknowledgments recebidos ou a falta deles
para ajustar os valores de confiana. Uma requisio de confirmao armazenada
quando o pacote enviado e, se uma confirmao recebida dentre de um tempo
limite, os ns da rota tem seu valor incrementado. Se uma confirmao no for
recebida dentro do tempo limite, ento os ns pertencentes rota tero seus valores
de confiana reduzidos.
3.6.1.2. Concluses e Trabalhos Futuros
Sem a existncia do modelo de confiana embutido no protocolo, uma rota que possua
um n malicioso pode ser usada constantemente. Como os pacotes sero, na maior parte
das vezes, descartados, esperado que o throughput diminua. Por outro lado, se existe o
conceito de confiana e as rotas so escolhidas levando-o em considerao, sero evitadas
aquelas rotas que contenham ns maliciosos. Assim, o throughput utilizando o protocolo
modificado maior quando comparado ao protocolo original.
Uma possvel melhoria no modelo a elaborao de uma forma justa e eficiente
de calcular a recomendao. Atualmente, as recomendaes consideram todos os ns
conhecidos, e no somente os ns vizinhos. Alm disso, qualquer n capaz de fornecer
recomendao, mesmo que seja um n malicioso. Portanto, uma mudana no mecanismo
de clculo da recomendao pode melhorar consideravelmente o modelo.
3.6.2. Seleo adaptativa de protocolos de segurana
Com toda a heterogeneidade da computao mvel, difcil criar especificaes estticas
para qualquer tipo de hardware e software de computao mvel. Projetistas e desenvolvedores devem considerar limitaes no hardware, demandas de segurana e QoS do
software e propriedades do protocolo de comunicao. QoS (Quality of Service), traduo de qualidade de servio, significa mtricas que devem ser respeitadas para que
141
uma aplicao provenha suas funcionalidades mnimas. Como toda essa informao nem
sempre est disponvel, solues integradas e adaptativas para dispositivos mveis so
desejveis.
Neste contexto, a especificao de protocolos de segurana se torna uma preocupao importante. Do ponto de vista do sistema, cada aplicao pode no apenas ter
diferentes necessidades de segurana, como tambm diferentes demandas de QoS. J do
ponto de vista da aplicao, ela pode estar sendo executada em hardware com diferentes
capacidades, bem como sobre diferentes protocolos de comunicao. As atuais solues
nativas dos protocolos de comunicao, como as presentes no IEEE 802.11 e no Bluetooth, propem solues conhecidamente incompletas ou falhas [Karygiannis & Owens
(2002)], alm de serem focadas apenas na camada de enlace da pilha de protocolos.
Com isso foi proposto um middleware de segurana adaptativo que altera dinamicamente os protocolos de segurana usados entre dois pares comunicantes, de acordo
com variaes em um conjunto de parmetros. O servio em questo, nomeado ASecMid, sigla para o termo em ingls Adaptive Security Middleware, monitora parmetros
relacionados s condies do meio sem fio, uso de recursos do sistema, capacidades de
hardware e definies da aplicao quanto a mtricas de QoS e nveis de segurana desejados. mantida uma grande coleo de protocolos de segurana que podem ser usados, e o
mais vivel para cada transmisso escolhido de acordo com os parmetros monitorados.
Aplicaes acessam o middleware de uma forma transparente, como um soquete de rede
tradicional, no ciente dos protocolos de segurana aplicados. Alm disso, a aplicao
pode prover uma descrio semntica do fluxo de dados a ser transmitido, de forma que
a o nvel de segurana de cada parte da transmisso seja definido individualmente para
diferentes blocos de dados. A ideia deste trabalho no desenvolver novos algoritmos de
segurana, mas sim usar os existentes da maneira mais eficiente possvel, com base no
Princpio de Proteo Adequada, que afirma que se deve aplicar a segurana adequada
para cada tipo de dado e contexto. Os resultados obtidos mostram a eficcia da soluo.
As principais motivaes para este trabalho surgem da heterogeneidade de dispositivos, aplicaes e protocolos de comunicao existentes no meio mvel e sem fio, como
explicitado no comeo deste captulo. Diante disso, o desenvolvimento do middleware j
benfico no sentido de prover uma nica camada de segurana para diferentes contextos
de hardware, software e comunicao.
Alm disso, o trabalho toca num ponto importante ao se prover segurana para
aplicaes mveis: a relao custo/benefcio entre prover segurana e manter a qualidade
de comunicao e desempenho do sistema. O middleware tem o objetivo de trabalhar
sobre essa relao, mantendo o equilbrio entre segurana e desempenho de acordo com
o configurado pela aplicao sobrejacente.
As caractersticas do meio em que um dispositivo est inserido muitas vezes so
poderosas fontes de informao [Li et al. (2006)]. Com isso, a utilizao de parmetros de
diversas fontes (aplicao, meio sem fio, recursos do sistema) uma abordagem interessante para se criar um mecanismo adaptativo e que seja sensvel s mudanas no contexto.
Este trabalho foi publicado em [Rocha & Loureiro (2007)].
142
3.6.2.1. Desenvolvimento
Como discutido anteriormente, o principal objetivo do middleware proposto neste trabalho o de escolher dinamicamente o protocolo de segurana mais adequado para comunicao entre dois pares. O protocolo escolhido pode ser trocado durante a execuo,
caso as condies de contexto variem. Em termos gerais, o middleware busca esse objetivo mantendo uma biblioteca de algoritmos de segurana existentes, avalia-os de acordo
com as seis mtricas definidas e monitora parmetros de contexto para serem usados no
processo de tomada de decises.
Um arquivo de configurao lido pelo middleware toda vez que ele inicializado. Esse arquivo contm a biblioteca de possveis algoritmos de segurana a serem
usados. Cada entrada no arquivo representa um algoritmo e informaes sobre ele, incluindo a os valores das seis mtricas. Os valores das mtricas de uso de recursos so
automaticamente calculados e gerados durante a instalao do middleware.
Cada algoritmo de segurana associado a seis propriedades definidas por mtricas. Dessas, trs so mtricas de fora de segurana (ou fora criptogrfica): confidencialidade, integridade e autenticao, e outras trs so mtricas relacionadas a uso de
recursos: uso de memria, tabelas de tempo de processamento e de overhead de rede
(em quanto o pacote de dados original aumenta de tamanho). As mtricas de fora de
segurana so representadas por nmeros inteiros, de 0 a 100, cuja utilidade comparar
diferentes algoritmos. Esses valores so definidos pelo administrador do sistema, atravs
do arquivo de configurao.
O middleware monitora parmetros de diferentes fontes: meio sem fio, capacidades de hardware, uso de recursos do sistema e diretivas de QoS e nveis de segurana vindas da aplicao. Os parmetros usados no sistema proposto so listados na
Tabela 3.4, que mostra tambm quais mtricas dos algoritmos so afetadas por cada parmetro. As unidades usadas tm como finalidade facilitar no processo de deciso de
protocolos. Dessa forma, so privilegiadas unidades percentuais, por consistirem de valores com mnimos e mximos conhecidos.
O middleware dividido em trs partes fundamentais: conexo segura, mquina
de segurana e controle de parmetros. A conexo segura fornece a API para a aplicao
acessar o middleware. Sua interface muito similar a uma biblioteca de rede padro
(sockets) e mltiplas instncias podem ser executadas ao mesmo tempo. A mquina de
segurana responsvel por executar a lgica de tomada de decises, bem como aplicar
os protocolos de segurana em pacotes enviados ou recebidos pelas conexes seguras.
O controle de parmetros monitora todos os parmetros e os torna disponveis para a
mquina de segurana. A Figura 3.21 ilustra a arquitetura do sistema.
Alm dos parmetros monitorados pelo middleware, a aplicao tambm pode
prover um arquivo que descreve a semntica do fluxo de dados a serem transmitidos.
A descrio feita atravs de uma linguagem de anotao baseada em XML chamada
LACS (Language for Annotation and Configuration of data Security) [Costa & Loureiro
(2008)]. A linguagem permite a definio de configuraes de segurana (conjuntos de
parmetros relativos restries de QoS e nveis de segurana), declaraes de padres
de bytes que constituem mensagens especiais e o modelo de transmisso, escrito na forma
143
Parmetro
Mobilidade
Qualidade do canal
Latncia
Roteamento
Capacidade de memria
Informao do rdio
Consumo de memria
Uso de CPU
Bateria
Latncia mxima (QoS)
Memria mxima (QoS)
Mximo overhead de rede (QoS)
Mximo overhead em negociaes (QoS)
Nvel de confidencialidade
Nvel de integridade
Nvel de autenticao
Mtricas
Confidencialidade e Autenticao
Confidencialidade, Integridade e Rede
Processamento
Confidencialidade e Autenticao
Memria
Confidencialidade, Integridade e Autenticao
Memria
Processamento
Processamento, Rede e Memria
Processamento
Memria
Rede
Rede
Confidencialidade
Integridade
Autenticao
de uma sequncia de comandos imperativos, contendo comandos condicionais e de controle de fluxo, tal qual uma linguagem de programao, que descreve o fluxo de dados
a ser transmitido, associando diferentes partes a diferentes configuraes de segurana.
Quando o arquivo descritor de semntica utilizado, o middleware suprime os parme-
144
145
146
Referncias
Akella, A., Judd, G., Seshan, S. & Steenkiste, P. (2007), Self-management in chaotic
wireless deployments, WIRELESS NETWORKS 13(6), 737755.
Ardissono, L., Goy, A., Petrone, G., Segnan, M. & Torasso, P. (2002), Tailoring the recommendation of tourist information to heterogeneous user groups, in Revised Papers
from the International Workshops OHS-7, SC-3, and AH-3 on Hypermedia: Openness,
Structural Awareness, and Adaptivity, Springer-Verlag, London, UK, pp. 280295.
Bahl, P. & Padmanabhan, V. (2000), Radar: An in-building rf-based user location and
tracking system, IEEE INFOCOM 2, 775784.
147
Buszko, D., Lee, W. & Helal, A. (2001), Decentralized ad-hoc groupware api and framework for mobile collaboration.
URL: citeseer.ist.psu.edu/article/buszko01decentralized.html
Cheng, Y.-C., Chawathe, Y., LaMarca, A. & Krumm, J. (2005), ccuracy characterization
for metropolitan-scale wi-fi localization, MobiSys .
Cheverst, K., Davies, N., Mitchell, K., Friday, A. & Efstratiou, C. (2000), Developing a
context-aware electronic tourist guide: some issues and experiences, in CHI 00: Proceedings of the SIGCHI conference on Human factors in computing systems, ACM,
New York, NY, USA, pp. 1724.
Costa, D. N. & Loureiro, A. A. (2008), Adaptao de mecanismos de segurana para
comunicao em ambientes mveis, Masters thesis, Universidade Federal de Minas
Gerais.
Dearle, A. (1998), Toward ubiquitous environments for mobile users, IEEE Internet
Computing 2(1), 2232.
Devlic, A. & Jezic, G. (2005), Location-aware information services using user profile
matching, Telecommunications, 2005. ConTEL 2005. Proceedings of the 8th International Conference on .
Dey, A. K. (2001), Understanding and using context, Personal Ubiquitous Comput.
5(1), 47.
Dittmer, J. (2005), Solving the gps urban canyon problem., Frost and Sullivan Market
Insight .
Ericsson (n.d.), Mobile positioning system.
URL: http://www.ericsson.com/mobilityworld/sub/open/technologies/mobile_positioning/index.html
Gonzlez, M. C., Hidalgo, C. A. & Barabsi, A.-L. (2008), Understanding individual
human mobility patterns, Nature 453(7196), 779782.
Google (n.d.), Google maps advanced programming interface.
URL: http://code.google.com/apis/maps
Greenfield, A. (2006), Everyware : The Dawning Age of Ubiquitous Computing, New
Riders Press.
URL:
http://www.amazon.ca/exec/obidos/redirect?tag=citeulike0920&path=ASIN/0321384016
GSMWORLD (n.d.), Gsm.
URL: http://www.gsmworld.com/technology/index.shtml
Haeberlen, A., Flannery, E., Ladd, A., Rudys, A., Wallach, D. S. & Kavraki, L. E. (2005),
Practical robust localization over large-scale 802.11 wireless networks, in Proceedings
of the 10th annual international conference on Mobile computing and networking.
148
instrumentation,
149
Roy, N., Roy, A. & Das, S. K. (2006), Context-aware resource management in multiinhabitant smart homes: A nash h-learning based approach, in Proceedings of the
Fourth Annual IEEE International Conference on Pervasive Computing and Communications, Washington, DC, USA, pp. 148158.
Schilit, B. N. & Theimer, M. M. (1994), Disseminating active map information to mobile
hosts, Network, IEEE 8(5), 2232.
URL: http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=313011
Schweitzer, C. M. (2006), Mecanismo de consolidao de confiana distribuda para redes
ad hoc, PhD thesis, Escola Politcnica da Universidade de So Paulo.
Schweitzer, C. M., Carvalho, T. C. M. B. & Ruggiero, W. V. (2006), A Distributed Mechanism for Trust Propagation and Consolidation in Ad Hoc Networks, International
Conference on Information Networking .
Shin, C. & Woo, W. (2005), Conflict resolution method utilizing context history for
context-aware applications, in Proceedings of the 1st International Workshop on Exploiting Context Histories in Smart Environments (ECHISE05), Munich, Germany,
pp. .
Velloso, P. B., Laufer, R. P., Duarte, O. M. & Pujolle, G. (2006), Um Novo Modelo para
Confiana em Redes ad hoc, XXIV Simpsio Brasileiro de Redes de Computadores .
Weiser, M. (1993a), Some computer science issues in ubiquitous computing, Commun.
ACM 36(7), 7584.
Weiser, M. (1993b), Ubiquitous computing, Computer 26(10), 7172.