Sei sulla pagina 1di 51

Captulo

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

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

relacionadas aplicao, os mesmos podero prover servios de maneira mais precisa,


dinmica e otimizada, aumentando a satisfao dos usurios e minimizando o consumo
de recursos tais como energia, processamento, comunicao, entre outros. Tais informaes so chamadas de contextos e representam o elemento bsico de entrada para
a computao ciente de contexto. O objetivo deste minicurso discutir tendncias de
pesquisa na rea da computao ubqua ciente de contexto por meio da apresentao e
anlise de trabalhos realizados sobre desafios especficos da rea. Tais resultados apresentam solues interessantes para desafios que vo desde problemas relacionados com a
parte fsica da comunicao sem fio utilizada, at outros ligados s aplicaes oferecidas
aos usurios.

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

Livro Texto dos Minicursos

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

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

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

Livro Texto dos Minicursos

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.

3.2. Aquisio de Dados Contextuais


A identificao de fontes de contextos no ambiente, bem como a coleta dos dados contextuais por parte dos dispositivos ubquos so tarefas importantes em sistemas ubquos
cientes de contexto. Cada tipo de dado contextual a ser utilizado apresenta seus prprios
desafios de aquisio, processamento, co-relao com outros dados, verificao de qualidade, definio de sintaxe, associao semntica, dentre outros aspectos. Em particular,
essa seo descrever trabalhos que prope solues para aquisio de dois tipos de contextos importantes e frequentemente utilizados pelas aplicaes: a qualidade do canal de
comunicao sem fio e a localizao.
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 e externos, alguns operam apenas em reas delimitadas
enquanto outros operam sobre toda a superfcie do globo. 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. O objetivo dessa seo desenvolver um sistema de posicionamento hbrido e ubquo para dispositivos mveis. Um sistema caracterizado
como hbrido quando apresenta uma mistura de tecnologias diferentes, nesse caso,
o uso dos sinais de celular, redes sem fio e GPS(Global Positioning System), para inferir a posio do dispositivo. A ubiquidade do sistema est no fato de que o mesmo
dever proporcionar informao contnua de posio, alternando entre os sinais utilizados, para obter localizao em ambientes internos e externos, mesmo que cada
tecnologia utilizada proporcione uma preciso diferente no posicionamento do dispositivo.
Identificao de Eventos no Canal de Comunicao em Redes IEEE 802.11: A qualidade da comunicao em sistemas de comunicao sem fio depende de diversos
fatores e ajustar e/ou alertar o usurio sobre as condies da rede um importante

104

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

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

Livro Texto dos Minicursos

105

ambientes externos desde campi de universidades, bairros e at cidades inteiras.


O nmero de algoritmos de posicionamento aplicveis bem menor quando se
desconhece a real posio dos pontos de acesso da rede, uma vez que muitos se baseiam
em mtodos probabilsticos [Haeberlen et al. (2005)], e requerem um grande volume de
informaes que no podem ser obtidos nesse caso.
Com a posio dos pontos de acesso desconhecida existe um projeto da Intel chamado Placelab que comparou trs algoritmos de posicionamento ao mapear trs bairros com caractersticas diferentes em cidades distintas dos Estados Unidos [Cheng et al.
(2005)].
Dentre os sistemas de posicionamento implementados para dispositivos mveis
especificamente, podemos citar o [Ericsson (n.d.)], que utiliza informaes de sinais de
celular GSM [GSMWORLD (n.d.)], para prover informao de posio, porm com uma
preciso menor do que no caso de um WPS. Mas principalmente, podemos citar o [Navizon (n.d.)], que utiliza informaes de GPS, WPS e de redes de celular para prover
informaes de posio. Seu funcionamento est praticamente restrito aos Estados Unidos, porm a idia de utilizar as trs abordagens em um mesmo sistema relevante e
constituiu um dos objetivos deste trabalho.
Outro desafio deste projeto foi o mapeamento da regio amostral, j que o funcionamento do algoritmo est aliado a esses mapas. A ideia um mapeamento colaborativo, pelo uso de aparelhos que possuam dispositivos de GPS e um servidor para
armazenamento e sincronizao dos mapas. Para tal, foi implementado um cliente cujo
funcionamento transparente e no influencia no uso normal do aparelho. Parte do trabalho [Akella et al. (2007)] consistiu em comprovar que a criao de um nmero imenso
de redes sem fio, no-planejadas e no-gerenciadas, gerou um ambiente catico, no qual
praticamente toda rede sem fio sofre interferncia de outra. Alm disso, o artigo tambm
explicita interferncias de outras tecnologias sem fio, como telefonia celular ou Bluetooth,
que afetam os valores de intensidade de sinal no momento da medio, assim como fatores climticos e outros praticamente desconhecidos. Por essas razes, tambm de suma
importncia que o mapeamento filtre alguns resultados de pouca confiabilidade devido
ocorrncia de interferncias.

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

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

cadores que em conjunto representam a localizao simblica de um conjunto de pontos,


como por exemplo: pas - estado - cidade - bairro - estabelecimento. O cliente deve
possibilitar a insero e remoo desses marcadores, que junto com as informaes de
ambiente, citadas anteriormente, representam a "impresso digital"de determinado ponto,
e que ser usada para o posicionamento, posteriormente. A Figura 3.1 mostra o emulador
do Android executando o cliente de mapeamento.

Figura 3.1. Cliente de Mapeamento

Aps construdos os mapas, o cliente de mapeamento os submete para o servidor,


quando o usurio utilizar a funcionalidade Submit Scan. A interface do servidor responsvel por esta operao de submisso e armazenamento dos mapas, foi a segunda etapa
de implementao. Ao receber os mapas de um cliente, o servidor deve armazen-los de
forma que possam ser encontrados facilmente, quando for necessrio consult-los. Para
limitar o espao de busca do algoritmo de posicionamento, foi utilizada uma combinao
entre o MNC, MCC e o CID, que nica para qualquer clula GSM no mundo, para
indexar os arquivos de mapas. Nesse momento, o servidor tambm deve atualizar uma
representao grfica de todos os mapas j coletados, que utiliza sobreposio de mapas
e uma API do Google Maps [Google (n.d.)], para a representao dos mapas. A Figura
3.2 demonstra a representao em tempo real dos pontos mapeados ao redor do Instituto
de Cincias Exatas (ICEX) da Universidade Federal de Minas Gerais (UFMG):
A prxima etapa no desenvolvimento do sistema a implementao do cliente
de posicionamento. Ele basicamente interage com o servidor, enviando as informaes
do ambiente onde se encontra, para depois receber as informaes de posio, calculadas pelo servidor. Depois de receber suas informaes de localizao, o cliente desenha
sua posio em um mapa, utilizando funcionalidades integradas na prpria plataforma
Android para realizar sobreposio de mapas. A Figura 3.3 e 3.4 mostram o cliente de
posicionamento em execuo no emulador.
Finalmente, a ltima etapa do desenvolvimento a implementao da interface
do servidor que trata as requisies de posio do cliente de posicionamento. Ao receber uma requisio, o servidor executa um algoritmo que atribui pontos e pesos, para
os pontos mapeados, de acordo com a similaridade com os dados de ambiente, enviados
pelo cliente na requisio de posio. Baseado na soma dessas pontuaes, ele determina

Livro Texto dos Minicursos

Figura 3.2. Mapas em tempo real

107

Figura 3.3. Cliente de


Posicionamento

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

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

Figura 3.4. Sobreposio de mapas no cliente

Nmero de testes
44
4
1
1

Figura 3.5.
Posio
de um dispositivo em
tempo real

Erro (em nmero de pontos de distncia)


0
1
2
3

Tabela 3.1. Testes preliminares de preciso do sistema

mapeamento, nos quais os pontos de acesso detectados so os mesmos de outros pontos,


e as medidas de intensidade de sinal durante o mapeamento foram diferentes das obtidas
durante os testes de posicionamento, o que provocado por interferncias diversas, e at
fatores climticos.
3.2.2. Identificao de Eventos no Canal de Comunicao em Redes IEEE 802.11
A comunicao ubqua tem como objetivo permitir o acesso informaes, servios e
aplicaes em qualquer lugar e a qualquer momento. Sua utilizao deve prover o usurio com acesso permanente uma rede fixa ou mvel independentemente de sua posio
fsica. Dispositivos mveis com vrias interfaces de rede para acesso a diferentes tecnologias de rede sem fio esto cada vez mais populares e isso introduz a flexibilidade da
seleo e acesso aos diferentes tipos de redes. Das tecnologias de redes sem fio pode-se
identificar as redes da telefonia celular, como por exemplo: GPRS, UMTS, CDMA2000;
as redes sem fio metropolitanas, definidas pelo padro IEEE 802.16; e as redes sem fio
locais, definidas no IEEE 802.11. Um usurio portando um smartphone com diferentes
interfaces de rede pode usar as conexes disponveis que melhor atendam a sua demanda.
Uma vez conectado, o usurio utiliza os servios disponveis, mas a maneira como

Livro Texto dos Minicursos

109

atendido depende de diversos fatores, que no so encontrados na comunicao com


fio. Por exemplo, a variao do nvel do sinal recebido que causam perdas de dados e
mudanas continuas na velocidade das interfaces de rede sem fio. Somado a isso, os
dispositivos possuem restries com relao ao consumo de energia. O resultado final so
novos requisitos para o funcionamento adequado das aplicaes. Dadas essas diferenas
na comunicao da rede com fio, o desenvolvimento de aplicaes deve ser feito com foco
em atender esses requisitos. Para isso, as informaes do ambiente da comunicao so
essenciais.
3.2.2.1. Motivao
Para classificar a qualidade da comunicao, primeiro necessrio identificar as mtricas
para medir e qual o tipo de impacto que o ambiente de comunicao sem fio causa sobre
ela. Essas mtricas descrevem a relao entre o nvel de energia do sinal recebido e a
integridade dos dados transmitidos. As variaes na qualidade da comunicao possuem
diferentes impactos sobre o desempenho da aplicao, pois as interfaces de rede sem fio
possuem variadas estratgias para lidar com os quadros perdidos. As seguintes mtricas
identificam esses efeitos:
Vazo Ideal: a velocidade mxima do modem utilizado pela interface de rede sem fio,
medida em MBps, selecionado de acordo com o canal de comunicao. Cada interface de rede sem fio possui um conjunto de modems, que so selecionados de
acordo com as caractersticas do ambiente da comunicao;
Vazo Efetiva: a vazo dos dados efetiva percebida pela aplicao durante a comunicao, medida em MBps. Este leva em conta a sobrecarga causada pelas retransmisses dos quadros e das mensagens de controle dos protocolos de rede, assim como
a mudana do modem utilizado;
Atraso: medida do impacto causado pelas sucessivas retransmisses e as mudanas nas
interfaces de rede sem fio, como por exemplo a escolha dos modems, falhas de
recebimentos de quadros e etc.;
Variao no atraso: variao do atraso, que associada a diferentes atrasos, gerados
pela variabilidade presente na comunicao sem fio. A variao de atraso aumenta
quando existe uma grande variabilidade na qualidade da comunicao.
Aqui define-se o conceito de contexto da comunicao. Este contexto composto
pelo ambiente no qual receptor e transmissor se encontram e por suas interfaces de rede
sem fio do padro IEEE 802.11 usadas para a comunicao. Esse ambiente pode ser descrito pelos impactos que so causados no sinal recebido na interface de rede sem fio durante a comunicao. As interfaces de rede sem fio possuem parmetros e programaes
internas que reconfiguram seu funcionamento automaticamente, em resposta ao ambiente.
Por exemplo, a especificao do IEEE 802.11 deixa a cargo do fabricante da interface de
rede a escolha do algoritmo de seleo de velocidade. A escolha da velocidade pode ser
feita com o objetivo de manter a comunicao ativa, pois velocidades menores permitem

110

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

o funcionamento da interface em modo mais robustos, que suportam melhor as variaes


no sinal. Em outras situaes, a velocidade maior pode ser preferida em detrimento da
permanncia da conexo.
A otimizao da qualidade da comunicao numa rede sem fio essencial para
a melhoria do desempenho das aplicaes que usam a comunicao ubqua. Dentre as
estratgias usadas para tal, a adaptao o elemento central. A implementao das estratgias adaptativas pode ocorrer em diversos nveis, sobre os dados transmitidos, sobre
alguma funcionalidade da aplicao ou na reconfigurao da interface de rede sem fio. As
estratgias envolvidas, podem ser, por exemplo, a escolha de algoritmos adequados para
a compresso dos dados, o uso de diferentes algoritmos nas aplicaes dependendo das
condies da comunicao e o ajuste do funcionamento da placa de rede sem fio.
Dispositivos que utilizam outras interfaces ou a presena de muitas redes sem fio
nas proximidades so fontes de interferncia. Os prprios objetos presentes no ambiente
onde a comunicao acontece afetam as caractersticas da comunicao. A mobilidade
dos dispositivos expe as interfaces diferentes efeitos de propagao e atenuao do
sinal. Contudo, muito difcil inferir a partir do sinal recebido, quando a queda na qualidade se deve interferncia ou mobilidade. A informao sobre o contexto da comunicao essencial para uma adaptao da mesma, no intuito de se atingir o melhor
desempenho das aplicaes.
A descrio do contexto da comunicao um fator importante para se atingir
uma boa qualidade na comunicao. Neste caso, a Figura 3.6(a) mostra a situao inicial,
no qual o usurio est prximo ao ponto de acesso se comunicando a uma velocidade de
11MBps. Os crculos verdes mostram a potncia do sinal, a cor mais escura indica mais
energia e a mais clara, menos energia. O deslocamento do usurio para longe do ponto
de acesso causa uma queda de velocidade de comunicao, devido variao deste sinal,
como mostrado na Figura 3.6(b). Em situaes como essa, a Figura 3.6(c) mostra uma
estratgia de melhoria que pode ser feita: aumentar da potncia da antena do ponto de
acesso, de maneira que o usurio continue sendo atendido com uma velocidade adequada.
Mas caso a perda de velocidade seja causada por uma interferncia, a mesma estratgia de adaptao pode causar resultados adversos. A Figura 3.7 mostra este cenrio,
onde um usurio se encontra no alcance de dois pontos de acesso e estabelece a comunicao com um deles. O sinal que chega sobre este usurio a soma do sinal oriundo
dos dois pontos de acesso. Neste caso, como no est conectado ao segundo ponto de
acesso, o usurio no pode evitar a interferncia causada, como mostrado na Figura
3.7(a). A Figura 3.7(b) mostra o impacto da presena de interferncia na velocidade de
comunicao, a qual diminui devido s sucessivas perdas. Caso no seja identificado que
esta diminuio de velocidade causada pela interferncia, a Figura 3.7(c) mostra que a
mesma estratgia adotada na soluo anterior pode gerar mais interferncia, acarretando
em problemas de comunicao em outros elementos na rede.
A importncia de conhecer os efeitos destes eventos acentuada pela necessidade
de identificar quando a interface de rede sem fio pode mudar seus modos de funcionamento, possibilitando assim para melhor lidar com essas situaes limite. Quando a interface identifica uma qualidade ruim do sinal recebido, ela aciona o algoritmo que escolhe
a velocidade, modificando a vazo ideal. Esta mudana causa um impacto tambm na

Livro Texto dos Minicursos

111

(a) Usurio prximo ao ponto de acesso. (b) Deslocamento para longe do ponto de
acesso, queda de velocidade.

(c) Aumento da potncia de transmisso, recuperao da velocidade.


Figura 3.6. Adaptao da potncia da antena do ponto de acesso

(a) Usurio em regio sob efeito de interferncia.

(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

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

Para auxiliar na identificao da estratgia correta de adaptao, neste ponto so


definidos os eventos do contexto da comunicao. Esses eventos so a presena de mobilidade e de interferncia, de maneira no exclusiva, no contexto da comunicao. A
distino destes eventos se faz necessria por causa das possveis estratgias a serem adotadas na melhoria da comunicao.
A justificativa em se utilizar somente a variao do sinal para a deteco da movimentao devido ao fato que existe uma relao direta entre essa variao e a qualidade
da comunicao percebida pelas aplicaes. Alm disso, nem todo sistema computacional
dotado de ferramentas de localizao. Por exemplo, considerando somente a variao
do sinal, existem situaes onde tal movimentao no efetua nenhum impacto. O importante para este trabalho identificar que a variao do sinal pode ser associada a algum
tipo de movimentao e que no seja no relacionada com a presena de interferncia.
Assim como, na presena de interferncia ou de mobilidade, as respectivas variaes do
sinal sejam identificadas.
Para uma identificao mais precisa destes eventos, considerado o ambiente de
comunicao interno, no qual a velocidade de deslocamento entre o receptor e o transmissor limitada e as fontes de interferncia so as mais comuns de se encontrar em um
ambiente interno. Apesar desta restrio, que se faz essencial nessa caracterizao, este
o cenrio mais comum de utilizao das redes sem fio do padro IEEE 802.11.
No sentido de melhorar a tomada de deciso de tais mecanismos, esta tese fornece
um mecanismo que permite distinguir em tempo real e com alta preciso eventos de mobilidade e interferncia a partir do monitoramento constante dos valores de sinal medido
na interface.

3.2.2.2. Propagao de sinais


A partir da viso geral da fsica de propagao em ambientes sem fio, a comunicao
descrita como dependente da separao que existe entre o transmissor e o receptor. Essa
separao pode ser associada distncia, velocidade de deslocamento, s caractersticas
do ambiente da comunicao e s fontes de interferncia. O sinal transmitido chega ao
receptor como uma ou mais ondas que foram afetadas pelos efeitos de propagao no ambiente, sendo este fenmeno conhecido como multipath. Dessa maneira, essas ondas so
componentes que formam o sinal recebido. Se no existirem obstculos entre o receptor
e o transmissor, algumas dessas ondas sero consideradas como principais na transmisso, somadas com as outras geradas pelos efeitos da reflexo, disperso e refrao. Esses
efeitos podem causar mudanas de fase e atenuaes em cada componente. A Figura
3.8 ilustra este cenrio. Considerando um transmissor e um receptor separados por uma
distncia d em um instante de tempo t , as ondas de sinal emitidas percorrem diferentes
caminhos e o resultado final que chegam no receptor um somatrio destas ondas.

Livro Texto dos Minicursos

113

Figura 3.8. Mltiplos caminhos da propagao da onda transmitida

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

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

Microondas: Outro elemento relativamente comum em ambientes internos o


forno de microondas, que possui uma margem de fuga de energia, a qual interfere
nas interfaces IEEE 802.11 que se encontram prximas a estes aparelhos.
3.2.2.4. Qualidade da Comunicao
Define-se qualidade da comunicao em uma interface de rede IEEE 802.11 como a relao da quantidade de bits alterados ao comparar o quadro transmitido e o mesmo quadro
recebido. O quadro transmitido uma seqncia de bits que compe os dados, o cabealho e o prembulo enviados pelo transmissor e o quadro recebido a seqncia recebida
no receptor. Este quadro recebido pode ser alterado pelos efeitos que atuam sobre o sinal,
descritos na seo 3.2.2.2. Uma boa qualidade de comunicao descrita como o caso
onde os efeitos do canal no afetem o quadro recebido, ficando este o mais prximo do
quadro que foi enviado.
Neste trabalho, para se inferir essa qualidade usada a medida do RSSI Receiver
Signal Strength Indicator que mede a intensidade do sinal do ltimo quadro recebido.
Esse valor mensurado no prembulo do quadro e indica a quantidade de energia presente
na interface. Esse valor pode ser recuperado acessando funes especficas do driver do
dispositivo.
3.2.2.5. Identificao de eventos
O mtodo de identificao de eventos efetua a anlise sobre os dados amostrados na placa
de rede sem fio. Essas amostras das medidas do RSSI so uma janela de dez medidas
consecutivas, espaadas com um intervalo de tempo de 10 ms. A srie temporal que
descreve o canal de comunicao sem fio no-linear, no gaussiana e no estacionria.
A Figura 3.9 mostra todas as etapas envolvidas no processo.

Figura 3.9. Metodologia de identificao

Essas caractersticas foram consideradas no modelo de maneira a fazer vivel a


descrio da assimetria forte entre as amostras e as variaes da mdia e da disperso. A
complexidade da srie temporal prev o uso de modelos simples de previso, justificando

Livro Texto dos Minicursos

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

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

Tabela 3.2. Classificao de Eventos

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

Livro Texto dos Minicursos

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

Figura 3.11. Investigao da comunicao em um dispositivo parado em um


ambiente com interferncia.

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

Figura 3.12. A identificao do dispositivo movimentando.

3.2.2.7. Arquitetura e Implementao


A implementao da metodologia proposta nessa tese, atravs de um software, foi feita
com o foco em permitir que as aplicaes sejam notificadas sobre a identificao da mo-

118

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

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

Figura 3.13. Identificao de um dispositivo movendo em um ambiente sujeito a


interferncias.

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.

Livro Texto dos Minicursos

119

A implementao ocorreu para os sistemas operacionais Linux e Windows XP.


At o momento da finalizao deste trabalho, uma nova verso, para o sistema operacional Android estava em desenvolvimento. Para permitir que essa metodologia seja implementada em diferentes sistemas operacionais, a Tabela 3.3 mostra uma breve descrio
dos requisitos de cada sistema e o que foi adotado para essa implementao.
Tabela 3.3. Tcnicas de Implementao

Requisito
RSSI

Windows XP
Acesso ao WMI, Microsoft (2008)

Implementao

Servio

Linux
Acesso ao PROC
diretrio proc
Daemon

Integrao

Conexo via socket com agente

Escrita no diretrio proc

Android
Acesso ao
WifiManager
Servio do
Application framework
Gerao de evento e RPC

120

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

3.3. Servio de Caracterizao e Gerenciamento de Perfis de Usurios Mveis


O principal objetivo da seo demonstrar os benefcios de caracterizar o usurio de dispositivos mveis atravs de perfis. A computao mvel uma rea em crescimento. O
usurio deseja obter informaes em qualquer lugar e em qualquer instante. Por esse motivo, aplicaes dependentes do contexto so desenvolvidas para atender aos desejos do
usurio. Uma forma de representar esses desejos atravs de um perfil, que no caso do
usurio mvel muito dinmico. Pode ser alterado devido a mudanas de ambiente, dispositivo, infra-estrutura e interesses. Logo, ele deve ser representado de maneira simples
para facilitar a comunicao entre a aplicao dependente de contexto e o perfil. O trabalho apresentado nessa seo prope a criao de um servio de identificao de usurios
mveis, construindo um perfil para cada um deles. Para isso, necessrio utilizar servios auxiliares (servio de configurao da rede, servio de configurao do dispositivo,
servio de gerenciamento de interesses e servio de localizao) para compor o perfil.
O desenvolvimento do trabalho foi realizado na plataforma Android a fim de verificar a
aplicabilidade da soluo proposta [Buszko et al. (2001)].
3.3.1. Viso Geral
A computao dependente do contexto tem crescido proporcionalmente ao crescimento
do uso de dispositivos mveis. Isso porque o usurio deseja obter informaes em qualquer lugar, a qualquer momento e em qualquer dispositivo, mesmo que esse esteja em
movimento [Devlic & Jezic (2005)]. O perfil de usurio uma tcnica utilizada para caracterizar um usurio num dado contexto. Para isso, ele integra as informaes do usurio
mvel, o seu dispositivo utilizado e o ambiente em que ele se encontra. Para definir o
perfil do usurio deve-se tratar de assuntos como questes espaciais, temporais, lgicas
e relacionamentos com outros usurios. Esse perfil pode ser representado atravs de ontologias, isto , modelos de dados que representam um conjunto de conceitos e relaes
entre eles dentro de um domnio de conhecimento. O perfil de usurio pode ser facilmente
alterado devido s mudanas de localizao ou alterao de interesse.
3.3.2. Motivao
Utilizando o servio, ser possvel desenvolver aplicaes que so cientes do contexto.
Existe tambm a possibilidade de criar publicidade ou cupons de descontos para clientes
que visitam uma determinada loja ou departamento. Um exemplo do uso do servio seria o seguinte caso. Um mdico, aficionado por futebol, deseja receber uma notificao
no seu celular quando o seu time marcar um gol. Suponha que ele comece a fazer uma
cirurgia e o seu time est jogando. Nesse contexto, o seu trabalho no deve ser interrompido caso o seu time faa um gol. No entanto, se ele estivesse andando de carro naquele
instante, ele poderia receber essa notificao. Ou seja, dependendo do contexto em que
o usurio se encontra, a aplicao deveria ser projetada para ter um comportamento diferente. Esse um ponto fundamental que distingue o paradigma de computao mvel do
paradigma tradicional de sistemas distribudos.
3.3.3. Soluo proposta
A soluo proposta nesse trabalho consiste em retirar da aplicao a responsabilidade de
criar o perfil do usurio. Comumente, a aplicao dependente do contexto deve sempre

Livro Texto dos Minicursos

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.

O servio de gerenciamento proposto consiste em armazenar os perfis de usurios


j construdos de forma que a aplicao acesse facilmente o perfil do usurio que j foi
definido previamente.
3.3.4. Perfil
O perfil uma forma de representar as caractersticas e interesses de um usurio em um
determinado contexto. Esse perfil de grande importncia para aplicaes dependentes
do contexto porque elas determinam seu fluxo de acordo com o perfil do usurio. Para
cada aplicao pode ser necessrio identificar certas caractersticas. Aps estudar as caractersticas essenciais utilizadas pelas aplicaes para identificar um usurio mvel, foi
definido que o perfil ser composto de:
Informaes de localizao - Descreve onde o usurio est localizado no momento.
Identifica a latitude, longitude, nome e descrio do local onde o usurio est.
Configurao da rede - Descreve as caractersticas da rede, incluindo dados sobre
banda e latncia.
Configurao do dispositivo - Descreve as caractersticas do dispositivo. As informaes essenciais do dispositivo so bateria, memria, modelo e processamento.
Essas so as informaes mais importantes que a aplicao mvel precisa saber sobre os dispositivos mveis. A bateria, memria e processamento pois so recursos

122

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

escassos nesses aparelhos. O modelo uma informao importante para identificar


as funcionalidades do dispositivo.
Interesses do usurio - Descreve os temas em que o usurio tem interesse em receber
informaes. No caso mais genrico, basta o nome e a descrio do interesse.
Entretanto, caso seja necessrio identificar melhor os interesses, deve-se definir
novos conceitos de interesse que estendam a classe de interesse mais genrica.
O perfil do usurio mvel muito dinmico. Devido a sua mobilidade, o usurio
pode alterar rapidamente sua localizao e, por esse motivo, mudar os seus interesses.
Essa dinamicidade do perfil dificulta a representao do perfil. A forma de representao
do perfil escolhida para o trabalho ser atravs de um arquivo XML devido a sua facilidade de alterar as informaes. Pode ser considerado tambm mais fcil para a aplicao
recuperar as informaes contidas no perfil.

Livro Texto dos Minicursos

123

3.4. Servio Mvel de Notificao de Eventos Baseado em Contexto


A utilizao de servios diversificados baseados em contexto muito limitada ou inexistente para um conjunto pr-determinado de servios de grande utilidade como informaes de trfego, clima, comrcio, turismo, medicina, emergncias e veicular. Os dispositivos atuais possuem pouca ou nenhuma interatividade com eventos externos localizados
no ambiente em que este se encontra. A razo disto se deve ao fato do contexto ser pouco
usado para atividades desempenhadas por dispositivos e usurios. Alguns poucos casos
de utilizao atualmente envolvem informaes de localizao, energia e identificao
(endereo IP, dados de coordenadas GPS), coletadas a partir do ambiente e do usurio.
Essa seo apresenta um trabalho que prope uma especificao de modelo de sistema
e a construo de um prottipo com o objetivo de prover a notificao de eventos para
dispositivos mveis (aplicaes e usurios) baseado no perfil e contextos do usurio e do
dispositivo/aplicao. O objetivo prover a notificao de eventos como uma funcionalidade agregvel no desenvolvimento de aplicaes mveis.
3.4.1. Viso Geral
Em um futuro bem prximo, diversos ambientes sero capazes de fornecer informaes e
servios para usurios e aplicaes mveis atravs da comunicao entre estes, a sensibilidade e responsividade. Para isto, elementos computacionais tero este objetivo, fazendo
parte destes ambientes inteligentes. A computao ubqua e a interao voltada para o
usurio definem o alicerce nesta rea de ambientes inteligentes. Algumas das tecnologias
e sistemas relacionadas incluem: 1) elementos computacionais embutidos, onde diversos
dispositivos conectados em rede so integrados ao ambiente; 2) sensibilidade ao contexto, adaptabilidade e antecipao de tarefas, onde dispositivos possuem a capacidade de
reconhecer o usurio e seu contexto atual, mudar em resposta deste e prever o seu comportamento respectivamente e 3) a personalizao de servios, onde dispositivos podem
ser adaptados de acordo com as necessidades do usurio.
3.4.2. Objetivos
Aqui apresentada a especificao de um servidor de eventos com o objetivo de gerenciar a notificao de eventos em aplicaes mveis. O servidor de eventos tambm
responsvel por fornecer os SeRBIs (Servios Remotos Baseados em Informaes) para
aplicaes mveis. As mudanas de perfil e contexto em aplicaes mveis utilizao o
servio de eventos para a criao de eventos que podem ser processador e, em forma de
notificao, informando aplicaes e servios a sua ocorrncia. A notificao, neste caso,
em forma de mensagem, reportar a ocorrncia destes eventos para que a aplicao ou o
usurio possa tomar alguma iniciativa de adaptao.
3.4.3. Estado da Arte
Os servios ubquos, em geral, buscam prover caractersticas importantes para dispositivos mveis. Algumas destas incluem: disponibilidade, transparncia na utilizao e na
transio (localizao e tecnologia), sensitividade e confiana. A disponibilidade define
para aplicaes acessibilidade independente do contexto e mudanas de estado, necessidades e preferncias do usurio, levando em considerao o contexto, a conectividade
com os servios e a energia do dispositivo. O cientista Mark Weiser, considerado o pai da

124

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

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

Livro Texto dos Minicursos

125

Figura 3.15. A arquitetura do servidor de eventos para aplicaes ubquas.

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.

3.4.5.1. O Processo de Gerenciamento de Eventos


O DroidGuide utiliza o servidor de eventos na captao e processamento de eventos internos (no dispositivo) e externos (no servidor de dados) e na entrega de mensagens de
notificao a partir de SeRBIs para aplicaes e servios interessados. O servidor de eventos localizado no dispositivo recebe as requisies de mudana de perfil e contexto dos
principais mdulos do DroidGuide, as processa, criando assim um conjunto de eventos.
O mdulo de comunicao utilizado no envio e recepo de eventos para o servidor de

126

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

dados, onde os eventos sero tambm processados pelo servio de eventos.


Todos os eventos criados por servios e aplicaes em execuo no dispositivo
mvel so capturados pelo gerenciador de eventos e enviados ao SDE em perodos cclicos configurveis e adaptveis de acordo com as necessidades das aplicaes. Quando o
servidor de dados recebe os eventos vindos do dispositivo, o servio de eventos os avalia e
efetua uma busca por SeRBIs relacionados que foram inicialmente subscritos pelo usurio
durante a aplicao. Por exemplo, quando o usurio subscreve em um servio de clima,
ele estar apto a receber notificaes deste a partir de eventos que forem gerados durante
a execuo da aplicao. Suponha que a prxima atividade turstica a ser executada pelo
usurio exija uma condio climtica na qual o clima no pode estar chuvoso. Quando o
usurio se deslocar para a tal atividade turstica, o servidor de eventos no dispositivo ir
receber uma requisio de mudana de contexto, neste caso relacionado sua localizao
e execuo da atividade. Um evento ser criado para representar a mudana de contexto
e ser enviado para o servidor de dados, onde ser processado. No processamento, o
SeRBI especfico de clima ser consultado, verificando o interesse por tal evento. Como
o servio de clima subscrito pelo usurio possui um interesse pelo evento (tipo clima), o
SeRBI verificar as condies climticas do local da atividade turstica a ser visitada pelo
turista. Em caso de tempo chuvoso, o SeRBI criar uma notificao que ser repassada
do servidor de dados para o dispositivo. Desta forma, o turista receber uma notificao
informando-o da condio climtica do destino, oferecendo-o, neste caso, alternativas
para a substituio da atividade em questo. As notificaes em geral podem ser apresentadas de diversas formas, desde uma simples notificao em texto para o usurio at
uma operao a ser executada por componentes ou servios internos de aplicaes. Este
processo pode ser visualizado na Figura 3.16.
3.4.6. Resultados
No prottipo desenvolvido, o servidor de eventos foi capaz de capturar mudanas de perfil
e contexto da aplicao. Os eventos foram capturados no dispositivo e enviados para o
servio de eventos remoto. A partir dos interesses definidos pelo usurio no perfil, o escalonador de atividades no servidor foi acionado para definir atividades tursticas de acordo
com os interesses do turista. A subscrio de SeRBIs tambm mostrou a viabilidade na
utilizao destes em aplicaes ubquas. Os SeRBIs foram capazes de enviar mensagens
de notificao para o dispositivo em situaes onde eventos remotos foram criados no
lado do servidor de dados.
3.4.7. Concluses e Trabalhos Futuros
Conforme apresentado neste trabalho, o servidor de eventos possibilitou ao turista a subscrio de SeRBIs e a notificao de eventos relacionados s suas atividades que, no caso
do prottipo apresentado, as atividades tursticas executadas sobre uma determinada regio. O servidor de eventos tambm foi capaz de receber eventos gerados a partir de atividades que foram selecionadas ou executadas pelo usurio, informando assim o servidor
de dados de eventos (SDE) mudanas de perfil e contexto do usurio como localizao,
interesses, condies do usurio e informaes de adaptao e de atividades. Os SeRBIs
subscritos pelo usurio foram capazes de receber eventos vindos do dispositivo mvel e
enviar notificaes de volta para o dispositivo contendo informaes teis para o usurio

Livro Texto dos Minicursos

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).

e para a aplicao em execuo.


Dentre vrias melhorias no modelo proposto inclui a configurao do perfil de processamento de eventos no dispositivo e no servidor remoto com o objetivo de aperfeioar
a utilizao dos recursos presentes nos dispositivos mveis como bateria e processador e
custo de transmisso de dados na rede. Este perfil de processamento incluiria a opo de
definir os ns responsveis pelo processamento de eventos mediante as condies em que
o dispositivo se encontra, tais como o acesso rede (qualidade do canal, tipo), custo de
transmisso (valor, consumo de energia), densidade de eventos sendo gerados.

128

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

Figura 3.17. a) interface com mapas apresentando as atraes tursticas, b) mapa


mostrando uma possvel rota entre as atividades tursticas.

Figura 3.18. c) notificaes de mensagens e d) apresentao de contedo ao


usurio a partir de atraes.

Livro Texto dos Minicursos

129

3.5. Tratamento de Contextos Coletivos em Aplicaes Cientes de Contexto


Existem diversas aplicaes em que aes para um grupo de usurios devero ser realizadas. Dentre elas podemos imaginar os cenrios de uma casa inteligente compartilhada
por uma famlia, apresentaes pblicas (concertos, teatros, palestras), escritrios compartilhados, guias tursticos utilizados em excurses, dentre outras. Todas as aplicaes
citadas possuem a seguinte caracterstica em comum: embora cada entidade de um grupo
possua contextos individuais, as aes realizadas pelas suas aplicaes cientes de contexto devem levar em considerao no s tais entradas, mas tambm os contextos de
outros elementos do grupo e do ambiente ao qual o indivduo pertence [Roy et al. (2006),
Shin & Woo (2005)]. Nas aplicaes coletivas problemas podem ser encontrados em situaes onde os contextos dos diferentes usurios so discordantes ou incompatveis entre
si e/ou com o ambiente a ser adaptado. Esses so precisamente os problemas que devero
ser resolvidos em um trabalho sobre o tratamento de contextos coletivos em aplicaes
cientes de contexto. O objetivo geral do trabalho o de conseguir solues inteligentes,
que consigam identificar a ocorrncia dos problemas relacionados e resolv-los de forma
a maximizar a satisfao individual e coletiva dos usurios.
3.5.1. Introduo
Existem diversas aplicaes cientes de contexto nas quais adaptaes de servios para um
grupo de usurios simultneos devero ser realizadas. Essas so as chamadas aplicaes
cientes de contexto coletivas, e a ocorrncia das mesmas em cenrios ubquos geram situaes particularmente interessantes. Os problemas tpicos da colaborao entre usurios
de uma mesma aplicao so agregados a todos os desafios especficos da computao
ubqua, tais como escassez de recursos e dinamicidade das configuraes.
3.5.2. Conceitos Relacionados
As aplicaes coletivas ocorrem em sistemas cientes de contexto que consideram para
a adaptao de suas tarefas os interesses e dados contextuais de cada membro de um
grupo de usurios simultaneamente associados. interessante notar que no importa qual
o tipo de aplicao considerada ou mesmo como os usurios se associaram mesma.
Importa apenas que a aplicao reconhea que em um dado momento, existem dois ou
mais usurios interessados em suas tarefas, e que as mesmas devem ser adaptadas de
acordo com os contextos coletivos adquiridos.
Contextos coletivos podem ser definidos como as informaes sobre os ambientes
compartilhados bem como os dados que refletem as condies prprias de cada elemento
de um grupo. Tais contextos so utilizados pelas aplicaes coletivas para realizarem suas
adaptaes. Existem dois tipo de dados contextuais coletivos: (i) Contextos ambientais:
so dados que representam os ambientes (fsico e/ou computacional) e seus elementos,
compartilhados pelos usurios envolvidos. Representam tambm a relao entre o grupo
de usurios e o ambiente, caracterizando situaes tais como propriedades, compartilhamentos, associaes temporrias ou permanentes, dentre outras. Apresentam o mesmo
valor para todos os usurios associados. Condies climticas, estao do ano e a utilizao de elementos do ambiente so exemplos de contextos desse tipo; (ii) Contextos
prprios: so dados referentes ao usurio, os quais refletem suas caractersticas, prefern-

130

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

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

Livro Texto dos Minicursos

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

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

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

Figura 3.19. Diagrama de atividades: O ciclo de vida das aplicaes coletivas.

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

Livro Texto dos Minicursos

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

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

Conflict Engine

Deteco de Conflitos - Anlise Tri-dimensional

Nveis
Atuao

Conciliao - Metodologia para Resoluo de Conflitos Coletivos

Perfis

Re-Startup

Classificar
Algoritmos

Iniciar
Acordos

Execuo
Supervisionada

Tarefas
Outros
BDs

Executar Tarefas Coletivas

Arquitetura
de Software

Figura 3.20. Mdulos componentes da Conflict Engine.

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.

3.5.5.2. Uma Metodologia para Resoluo de Conflitos Coletivos


O mdulo de conciliao da Conflict Engine pode ser implementado de maneiras diferentes, utilizando diversos algoritmos capazes de ofertar uma soluo para os conflitos
detectados. Alguns trabalhos na literatura j abordaram o assunto, oferecendo solues
especficas para determinadas situaes, aplicaes e contextos [Masthoff (2004), McCarthy & Anagnost (2000)]. No entanto, por representarem abordagens particulares, as
mesmas no seriam facilmente aplicveis em cenrios diferentes daqueles inicialmente
propostos.
O presente trabalho, alm da proposta do diagrama para o ciclo de vida das aplicaes ubquas, coletivas e cientes de contexto, bem como do arcabouo de software para
processamento de tarefas coletivas, define uma nova metodologia de implementao para
o mdulo de conciliao de conflitos, dinmica o suficiente para se adequar a diferentes
aplicaes de acordo com a situao corrente das mesmas. Tal metodologia visa orientar
a execuo das aes necessrias para, em caso da ocorrncia de conflitos, classificar e
escolher automaticamente algoritmos de resoluo que realizem o tratamento de conflitos

Livro Texto dos Minicursos

135

dentro de parmetros previamente acordados para o consumo de recursos e ndices de


qualidade de servio.
Dentro do mdulo de conciliao, implementado de acordo com a metodologia
proposta, est definida a execuo das seguintes aes: classificao e escolha do algoritmo a ser utilizado, parametrizao do mesmo segundo os acordos para consumo de
recursos e nveis de qualidade e execuo supervisionada.
A classificao e escolha de algoritmos poder ser implementada de maneira simples ou sofisticada. Exemplos de implementaes interessantes seriam a utilizao de
polticas pr-programadas e instaladas para guiar a escolha, ou a utilizao de tcnicas
de aprendizado de mquina. De qualquer maneira, para que essa ao seja realizada,
inicialmente dever ser executada uma monitorao de parmetros da aplicao e dos ambientes compartilhados. Em seguida, uma anlise dos dados monitorados deve fornecer
o conhecimento necessrio sobre a situao corrente da aplicao, de maneira a permitir
um planejamento sobre a escolha e configurao de um algoritmo de conciliao mais
adequado.
Em relao aos possveis algoritmos a serem utilizados, diferentes opes j descritas na literatura podem ser consideradas. Tais opes divergem uma da outra pelo
nvel de sofisticao e complexidade, e podem ser obtidas junto as mais diversas reas,
tais como sistemas distribudos, teoria dos jogos, computao biologicamente inspirada,
otimizao, dentre outras. Em comum dentre todas essas reas, est o fato de utilizarem
tcnicas especficas para lidar com situaes em que um conjunto de usurios trabalhando
de forma cooperativa desejam compartilhar os recursos de uma mesma aplicao. Uma
vez escolhido, o algoritmo dever passar por uma etapa de configurao para que possa se
adequar ao planejamento realizado anteriormente, considerando os resultados de conciliao desejados e o consumo de recursos possvel. Finalmente, a execuo da estratgia
de conciliao ser realizada. No entanto, tal execuo se dar de maneira supervisionada
com o objetivo de impedir que os limites para os acordos de nvel de servio estabelecidos
sejam excedidos ou violados de alguma maneira.
A metodologia proposta neste trabalho possui como vantagem sobre as demais
opes para resoluo de conflitos coletivos, um perfil de funcionamento capaz de se adequar diferentes situaes. Ela conhece e respeita a quantidade de recursos disponveis e
tenta encontrar a soluo que trar a melhor qualidade de servio possvel. Essa caracterstica bastante vantajosa para sistemas ubqos, considerando a restrio de recursos e
a dinamicidade das configuraes dos mesmos.
3.5.6. Concluso
Esse trabalho apresentou uma discusso sobre um problema especfico encontrado em
sistemas ubqos cientes de contexto compartilhados por grupos de usurios. Conceitos
relacionados ao tema foram formalizados e, para resolver o problema em questo, foram
propostos um diagrama de atividades para o ciclo de vida de aplicaes ubqas cientes de
contexto, um arcabouo contendo mdulos responsveis por processar tarefas coletivas e
uma metodologia para execuo de tcnicas para o tratamento de conflitos coletivos. Um
estudo de caso baseado na implementao de um guia turstico coletivo foi apresentado
como forma de ilustrar o conceito de aplicaes coletivas, assim como validar as propostas

136

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

apresentadas para o tratamento de conflitos em aplicaes ubquas coletivas e cientes de


contexto. Como direes futuras de pesquisa para o trabalho apresentado, pode-se citar
a implementao de outros estudos de caso como forma de avaliar a ocorrncia de maior
nmero de conflitos em diferentes reas de atuao e a implementao e avaliao de
outros algoritmos para tratamento de conflitos coletivos.

Livro Texto dos Minicursos

137

3.6. Utilizao de Dados Contextuais para Segurana em Aplicaes Ubquas


A segurana um tema de pesquisa considerado atual e de grande importncia para diversas reas da computao. Em particular, a computao ubqua necessita com urgncia
do desenvolvimento de mecanismos de segurana prprios, uma vez que suas caractersticas, tais como dispositivos, aplicaes, redes de comunicao, dentre outros, so bastante
especficas e em geral diferentes da computao tradicional. Alm disso, os dados compartilhados por sistemas ubquos so bastante sensveis, uma vez que refletem o estado
corrente de pessoas, lugares e objetos. Dados contextuais podem mais uma vez serem
usados por aplicaes ubquas, desta vez em suas solues de segurana, como forma de
adaptar tais mecanismos s necessidades reais e correntes, diminuindo a sobrecarga nos
dispositivos e na rede e aumentando a eficincia de atuao. Esta seo apresentar dois
trabalhos neste tpico:
Confiana de Dados: uma rede mvel ad hoc uma rede em que os ns so responsveis pela criao, operao e gerenciamento da rede. Este tipo de rede tambm
conhecida como rede auto-configurvel, que no apresenta uma infra-estrutura fixa.
As prprias entidades componentes da rede so responsveis, por exemplo, pelo roteamento de pacotes. Assim, para que a rede funcione bem, necessrio que haja
cooperao entre os ns. Entretanto, desta necessidade de cooperao, e mais ainda,
de confiana entre os ns, surge uma vulnerabilidade a ataques por ns maliciosos.
As solues atuais para garantir a segurana e evitar ataques baseiam-se em uma
entidade centralizadora que cuida, por exemplo, do gerenciamento de chaves ou da
emisso de certificados para as entidades componentes. Entretanto, esta no a
realidade das redes mveis ad hoc. Essa seo descreve um trabalho no qual os
prprios ns determinam o nvel de confiana dos ns vizinhos levando em considerao fatores como o nmero de vizinhos confiveis e nmero de rotas confiveis.
Uma vez que estes fatores mudam com o passar do tempo, o mecanismo capaz de
se adaptar ao ambiente, seja ele mais ou menos hostil [Schweitzer et al. (2006)].
Seleo adaptativa de protocolos de segurana: essa seo tambm descreve um
trabalho que prope um servio de segurana, que funciona como um middleware,
com a habilidade de alterar dinamicamente os protocolos de segurana usados entre
duas entidades computacionais. Mudanas so feitas de acordo com variaes nos
parmetros do meio sem fio e do uso de recursos do sistema, capacidades de hardware, mtricas de qualidade de servio e nveis desejados de segurana definidos
pela aplicao. Tambm apresentamos uma extenso que permite ao middleware
considerar o valor semntico de pacotes sendo transmitidos com o objetivo de escolher melhor o protocolo a ser usado para cada trecho do fluxo de dados. Comparamos a soluo com alguns protocolos estticos de segurana bem difundidos
e mostramos como o middleware capaz de se adaptar em diferentes condies
de meio e sistema, alm de como ele consegue prover um ganho de desempenho
atravs do uso da descrio da semntica de dados.
3.6.1. Confiana de Dados
O conceito de confiana bastante comum aos seres humanos e est relacionado, diretamente, percepo e ao conhecimento que um indivduo tem a respeito de outro, atravs

138

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

do seu comportamento ou sua reputao. Baseado neste conhecimento, este indivduo


capaz de aceitar riscos e conceder privilgios a algum em quem confie. Este mesmo
conceito empregado em ambientes de redes ad hoc, pois as entidades que participam
deste ambiente interagem diretamente entre si, havendo a necessidade de se definir uma
relao de confiana para viabilizar esta interao.
A avaliao de confiana efetuada atravs da observao do comportamento destas entidades de acordo com os tipos de servios providos e requisitados. Esta avaliao
de confiana em uma rede ad hoc no uma tarefa fcil devido mobilidade das entidades
e interao temporria com outras entidades, sem a presena de um elemento centralizador capaz de auxiliar no processo de atribuio de confiana [Schweitzer (2006)].
3.6.1.1. Desenvolvimento
Ao longo dos anos, vrios trabalhos foram feitos na tentativa de trazer para o ambiente
computacional o conceito de confiana. A maioria desses trabalhos tem como objetivo
proporcionar aos ns uma forma de identificar e excluir ns maliciosos da rede.
Pirzada e McDonald [Pirzada, A. and McDonald, C. (2004)] propem um modelo
que seja capaz de julgar a confiabilidade de uma determinada rota. Para avaliar o modelo,
eles propem uma extenso para o protocolo DSR (Dynamic Source Routing). O modelo
simples e, segundo os autores, flexvel para uso em MANETs, podendo ser adaptado
para outros protocolos de roteamento. Contudo, depende do funcionamento dos ns em
modo promscuo (modo da placa de rede), o que acarreta problemas como o aumento
significativo do nmero de colises. Outro problema do modelo que a escuta por
confirmao de pacotes fica restrita ao alcance da transmisso. Mais um ponto negativo
o fato de desconsiderar a limitao de recursos dos ns (por exemplo, energia, memria e
espao de armazenamento).
Schweitzer et al. [Schweitzer et al. (2006)] descreve um mecanismo distribudo
para propagao e consolidao do grau de confiana em redes ad hoc, construindo relaes de confiana e tornando as entidades autnomas e capazes de tomar decises independente de um elemento central de rede. O modelo considera trs operaes fundamentais para a atualizao e propagao dos valores de confiana: (i) composio simples (de
um n i com respeito a um n j); (ii) composio transitiva (de um n i sobre um n k
baseado na opinio de um n intermedirio j); (iii) composio consensual (dois ns, i e
j, concordam sobre a opinio com relao a um n k). Com essas operaes, possvel
que dois ns estabeleam uma relao de confiana quando se encontrarem pela primeira
vez. A desvantagem desse modelo que o processo de propagao pode ser lento e gerar
um overhead alto na rede.
Um conceito interessante abordado por Velloso et al. [Velloso et al. (2006)] o
de maturidade do relacionamento, que acrescenta mais um nvel de informao sobre o
grau de confiana existente entre os ns. Para a atribuio do valor inicial de confiana,
so adotadas duas estratgias: (i) prudente, adequada para ser utilizada em um ambiente
mais hostil; (ii) amigvel/ingnua, prpria para ambientes j conhecidos. Outra particularidade do trabalho a sugesto de um protocolo para troca de recomendaes (REP Recomendation Exchange Protocol). Este protocolo bastante flexvel com relao s

Livro Texto dos Minicursos

139

tabelas que devem ser armazenadas e aos parmetros que so considerados.


A fim de se realizar um experimento prtico para concretizar esse conceito, realizouse um trabalho composto de duas partes: a elaborao de um modelo que incorporasse
vrios das abordagens sobre confiana (discutidas ao longo do texto) e a implementao
de mdulos no NS que fossem capazes de refletir as ideias do modelo elaborado.
Como pontos principais do modelo proposto, pode-se destacar que ele capaz de
estabelecer e atualizar os valores de confiana a fim de fornecer as informaes necessrias para identificar ns maliciosos, que so entidades que no colaboram para o bom
funcionamento da rede. Ele tambm capaz de identificar a rota mais confivel para
transmisso de dados entre dois ns quaisquer da rede. O modelo tambm explora a ideia
de grafos, o que permite a definio de relaes transitivas entre os ns. Alm destes, os
protocolos de roteamento para redes ad hoc geram custos para os ns. Estes custos podem
ser divididos em custos de hardware (consumo de energia, memria e bateria) e custos de
rede (throughput). O modelo proposto leva em conta os dois fatores. O modelo proposto
tambm explora o conceito de maturidade de uma relao: ns que esto em contato entre
si a mais tempo devem possui mais confiana/desconfiana um no outro, dependendo do
histrico de interao entre eles. O modelo tambm oferece recomendaes que permitem que um n consiga informao a respeito de um outro n com o qual ele no tenha
tido um contato prvio.
Na listagem a seguir, sero explicados cada um dos mdulos do NS e suas respectivas responsabilidades:
Trust Formater: Neste mdulo, so implementadas as decises relacionadas com o estabelecimento de relaes de confiana entre os ns. Quando um n i descobre
uma rota para um determinado n j, todos os ns pertencentes rota que ainda no
so conhecidos pelo n i recebem um valor inicial. Esse valor calculado como a
recomendao que os vizinhos de i tem a oferecer sobre cada um dos ns da rota.
No caso dos vizinhos no serem capazes de fornecer uma recomendao, o n desconhecido recebe um valor padro previamente definido. Em um ambiente hostil,
com muitos ns maliciosos, esperado que esse valor seja baixo, indicando que
inicialmente a desconfiana alta.
Trust Manager: Esse mdulo responsvel pelo gerenciamento dos valores de confiana de cada um dos ns da rede. Uma das operaes realizadas por esse mdulo
a de armazenamento das informaes de confiana sobre os ns conhecidos durante
o tempo de execuo. Oferece tambm mtodos para recuperar a informao armazenada. Ele funciona como uma ponte entre a implementao do DSR e os demais
mdulos (Trust Updater e Trust Formatter).
Trust Updater: Esse componente implementa as funes para atualizao dos valores
de confiana. A confiana um conceito subjetivo e depende da experincia dos
ns em uma dada situao. Isso significa que no aconselhvel construir um
mtodo geral de atualizao que seja aplicvel em todos os domnios. Sendo assim,
a funo projetada nesse trabalho destina-se a domnios com vrios ns maliciosos.

140

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

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

Livro Texto dos Minicursos

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

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

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

Livro Texto dos Minicursos

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

Tabela 3.4. Mapeamento de parmetros e mtricas afetadas

Figura 3.21. Arquitetura do middleware proposto

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

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

tros globais de restries de QoS e nveis de segurana, usando aqueles especificados no


descritor semntico.
A lgica de seleo de algoritmos de segurana consiste em 4 estgios: instalao,
inicializao, conexo e transmisso. Segue uma breve descrio da lgica aplicada em
cada estgio.
1. Instalao: Durante o processo de instalao o middleware l o arquivo de configurao, que nesse ponto ainda no possui as mtricas de uso de recursos de cada
algoritmo, e calcula os valores dessas mtricas. Para isso, cada algoritmo testado com diferentes combinaes de dados e chaves gerados aleatoriamente e de
diferentes tamanhos. Os tamanhos de blocos e o nmero de execues para cada
tamanho podem ser configurados. Durante esses testes o middleware mede o uso de
memria, tempo de processamento e overhead em bytes de cada algoritmo. Para o
uso de memria considerada a mdia de todas as execues, enquanto que para as
tabelas de processamento e overhead so consideradas as mdias de execues para
cada tamanho de dados. Os resultados das medies so ento escritos no arquivo
de configurao, de forma que esse processo no tenha que ser repetido (a no ser
que o sistema sofra uma modificao de hardware, o que invalidaria os resultados
anteriores).
2. Inicializao: Quando o middleware inicializado pela aplicao, sua principal
tarefa ler e processar o arquivo de configurao. Com isso, o middleware l as definies de algoritmos do aquivo e ento gera um conjunto com todos os possveis
protocolos de segurana. O procedimento de gerao dos protocolos respeita regras
bsicas de consistncia, como no gerar um protocolo que inclua dois algoritmos do
mesmo tipo (como uma funo hash). Alm disso, so disponibilizados protocolos
que no contm algoritmos de todos os trs servios criptogrficos tratados (confidencialidade, integridade e autenticao), incluindo protocolos com somente um
algoritmo. Finalmente, durante a inicializao, o controle de parmetros adquire os
parmetros fixos. As capacidades de hardware so obtidas do sistema operacional e
nesta fase espera-se que a aplicao chame as diretivas para definio de restries
de QoS e nveis de segurana.
3. Conexo: Para cada conexo estabelecida, o middleware executa quatro passos
bsicos: (1) combinar os parmetros fixos, (2) selecionar o conjunto de protocolos a serem usados durante aquela conexo, (3) selecionar algoritmos para troca de
chaves e (4) gerar e trocar as chaves. O primeiro passo um processo simples que
consiste em os dois pares transmitirem seus parmetros fixos e manterem, para cada
parmetro, o valor mais restritivo. A seleo de protocolos feita atravs de uma
filtragem inicial, que elimina protocolos incompatveis com parmetros fixos (capacidades de hardware dos pares, restries de QoS e nveis de segurana mnimos),
e depois utiliza uma estratgia gulosa para selecionar um conjunto de protocolos
de segurana que cobre diferentes aspectos (mais/menos seguros, que economiza
memria, que proporciona baixo overhead de rede, etc...). A seleo e a execuo
de algoritmos de troca de chaves um processo direto, e algoritmos so escolhidos
de acordo com os protocolos escolhidos no passo anterior e com restries de QoS
quanto a mximo overhead do processo de negociao de chaves.

Livro Texto dos Minicursos

145

4. Transmisso: O passo final executado a cada transmisso de dados. Quando um


par decide transmitir um pacote, o middleware analisa os parmetros de tempo real
para escolher o melhor protocolo naquele momento, aplica-o sobre a mensagem
e concatena o pacote gerado com o nmero do protocolo utilizado e os tamanhos
de cada segmento, de modo que o outro lado possa aplicar o mesmo protocolo de
forma reversa. Nesse ponto, o middleware possui um pequeno conjunto de protocolos (nmero depende das constantes ni ), cada um com suas seis mtricas, e o grupo
de parmetros que pode influenciar em quais mtricas devem ser mais importantes
naquela situao. O fato dessa escolha ser crtica em termos de tempo caracteriza essa parte do processo como um algoritmo online, tornando impraticvel o uso
de tcnicas pesadas computacionalmente, como aquelas baseadas em otimizao
e pesquisa operacional. Para uma computao rpida e eficaz, nosso mtodo obtm uma pontuao para cada protocolo. Usando constantes de configurao que
determinam o quanto cada parmetro do meio influencia em cada mtrica, o middleware calcula a pontuao de cada protocolo relativa ao especfico momento de
transmisso, usando o protocolo que obtiver a maior pontuao.
3.6.2.2. Concluso
A implementao deste trabalho robusta no sentido de poder ser configurada em relao
as pesos das decises tomadas. O middleware proposto tambm configurvel tanto pela
aplicao que o utiliza (restries de QoS e segurana), quanto pela entidade que mantm
o sistema, atravs das configuraes da biblioteca de algoritmos. At onde se sabe, essa
uma abordagem inovadora para o problema.
Os resultados alcanados mostraram que a tcnica proposta adaptvel a diversos
contextos e traz benefcios em desempenho e facilidade, uma vez que a aplicao deixa
de se preocupar com aplicaes de algoritmos e protocolos de segurana. Os principais
fatores que estimulam o uso do middleware so a presena da alta variabilidade de parmetros de contexto, alm de aplicaes que permitem maior flexibilidade na escolha de
protocolos.
Alm disso, foi testada um middleware com uma extenso que permite aplicao
determinar valores semnticos para cada trecho de dado transmitido. Com isso, o poder de
adaptao aos parmetros de contexto do middleware se soma possibilidade de aplicar
segurana de acordo com o real valor de cada dado. Dessa forma, o middleware consegue
um ganho de desempenho considervel quando possvel descrever o formato de dados a
ser transmitido.

146

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

3.7. Concluso do Minicurso


Neste minicurso foi apresentado o estado da arte de uma rea de pesquisa importante
e atual chamada computao ubqua ciente de contexto. Essa rea representa a juno
de dois universos de trabalho: a computao ubqua e a computao ciente de contexto.
O primeiro lida com o desenvolvimento de sistemas capazes de serem embutidos nos
elementos do dia-a-dia e que interagem de forma transparente com os usurios finais,
oferecendo computao e comunicao sem fio o tempo todo e em todo lugar. J o universo da computao ciente de contexto trata da aquisio, processamento e utilizao
de informaes relevantes sobre os ambientes fsicos e computacionais relacionados a
determinada aplicao, bem como dos dados de seus usurios. Esses valores, chamadas
contextos, so utilizadas por tais aplicaes para tornar seus servios mais adaptados s
reais necessidades dos usurios finais. A utilizao de valores contextuais em aplicaes
ubquas leva ao desenvolvimento de sistemas inteligentes e integrados ao seus ambientes
de execuo. Tais sistemas sero capazes de ofertar aos usurios servios altamente personalizados, considerando as melhores estratgias e configuraes correntes, de maneira
integrada, automtica e transparente.
Embora seja uma rea de pesquisa relativamente recente, a computao ciente de
contexto tem sido estudada e explorada por grupos de pesquisa de diferentes localidades
h alguns anos. Dessa forma muitos trabalhos publicados na literatura puderam ser encontrados e serviram como referncia para a definio de conceitos bsico. Em particular
foram encontrados muitos trabalhos especificamente relacionados a vises gerais da rea,
propostas de arquiteturas e middlewares, definies de aplicaes para a computao ciente de contexto e mais recentemente artigos relacionados com qualidade de contexto,
gerenciamento, automatizao de tarefas, dentre outros aspectos.
Foram apresentados trabalhos de pesquisa relacionados a temas importantes e
ainda pouco explorados no desenvolvimento de sistemas ubquos e cientes de contexto.
Tais trabalhos foram discutidos de maneira ampla, e solues concretas para os problemas
relacionados foram descritas. A abrangncia dos temas apresentados mostra que existem
ainda muitas frentes de trabalho ainda pouco exploradas, em diversas sub-reas especficas, relacionadas ao tema. Espera-se que o amadurecimento dos trabalhos existentes,
bem como o surgimento de novas propostas, levem ao crescimento e solidificao dos
conceitos e solues para essa rea de pesquisa.

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.

Livro Texto dos Minicursos

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

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

Hansen, F. & Meno, F. I. (1977), Mobile fading-rayleigh and lognormal superimposed,


IEEE Transactions on Vehicular Technology 26, 332335.
Hightower, J. & Borriello, G. (2001), Location systems for ubiquitous computing,
COMPUTER -LOS ALAMITOS- 34, 5766.
Judd, G., Wang, X. & Steenkiste, P. (2008), Efficient channel-aware rate adaptation in dynamic environments., in D. Grunwald, R. Han, E. de Lara & C. S. Ellis, eds, MobiSys,
ACM, pp. 118131.
Jung-Hyuck, J. & Jayant, N. (2003), Performance Evaluation of Multiple IEEE 802.11b
Wlan Stations in the Presence of Bluetooth Radio Interference, in IEEE International
Conference on Communications, Vol. 2, pp. 11631168.
Kaemarungsi, K. & Krishnamurthy, P. (2004), Modeling of indoor positioning systems
based on location fingerprinting, IEEE Infocom .
Karygiannis, T. & Owens, L. (2002), Wireless network security: 802.11, Bluetooth, and
handheld devices, NIST Special Publication 800-48 .
Li, Z., Xu, W., Miller, R. & Trappe, W. (2006), Securing wireless systems via lower
layer enforcements, in Proceedings of the 5th ACM workshop on Wireless security
(WiSe06), ACM Press, New York, NY, USA, pp. 3342.
Masthoff, J. (2004), Group modeling: Selecting a sequence of television items to suit a
group of viewers, User Modeling and User-Adapted Interaction 14(1), 3785.
McCarthy, J. E. & Anagnost, T. D. (2000), Musicfx: an arbiter of group preferences for
computer supported collaborative workouts, in Proceedings of the ACM conference
on Computer Supported Cooperative Work, New York, USA, p. 348.
Microsoft
(2008),
Wmi
windows
management
http://msdn.microsoft.com/en-us/library/aa394582.aspx.

instrumentation,

Navizon (n.d.), Virtual gps.


URL: http://www.navizon.com/
Pirzada, A. and McDonald, C. (2004), Establishing trust in pure ad hoc networks, in 27th
Australian Computer Science Conference.
Priddge, E. (2000), An indoor absolute positioning system with no line of sight restrictions and building-wide coverage, IEEE International Conference on Robotics and
Automation 2, 10151022.
Punnoose, R., Tseng, R. & Stancil, D. (2001), Experimental Results for Interference
Between Bluetooth and IEEE 802.11b DSSS Systems, in IEEE VTS Vehicular Technology Conference, Vol. 1, pp. 6771.
Rocha, B. P. & Loureiro, A. A. (2007), Middleware de segurana adaptativo para computao mvel, Masters thesis, Universidade Federal de Minas Gerais.

Livro Texto dos Minicursos

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.