Buscar

Computacao_Ubiqua_Ciente_de_Contexto_Des

Prévia do material em texto

Capítulo
3
Computação Ubíqua Ciente de Contexto: Desafios
e Tendências
Antonio Alfredo Ferreira Loureiro, Ricardo Augusto Rabelo Oliveira , Thais
Regina de Moura Braga Silva, Waldir Ribeiro Pires Júnior, Lillian Brandão
Rezende de Oliveira,Rande Arievilo Moreira,RafaelGuimarães Siqueira,Bruno
Pontes Soares Rocha,Linnyer Beatrys Ruiz
Abstract
Ubiquitous computing defines a new paradigm in which devices with processing and com-
munication capacity are embedded into everyday elements, providing services in a trans-
parent 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 profi-
les. 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 satisfac-
tion 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 computação ubíqua é um novo paradigma no qual dispositivos com capacidade de
processamento e comunicação são embutidos nos elementos do dia-a-dia, provendo ser-
viços de forma transparente aos usuários. Pode-se observar que esse tipo de computação
possui forte ligação com as características do mundo físico, bem como aquelas apresen-
tadas pelos perfis de seus usuários. Assim, caso um sistema ubíquo seja capaz de utilizar
como entrada informações relevantes sobre as entidades (e.g., pessoas, lugares, objetos)
relacionadas à aplicação, os mesmos poderão prover serviços de maneira mais precisa,
dinâmica e otimizada, aumentando a satisfação dos usuários e minimizando o consumo
de recursos tais como energia, processamento, comunicação, entre outros. Tais infor-
mações são chamadas de contextos e representam o elemento básico de entrada para
a computação ciente de contexto. O objetivo deste minicurso é discutir tendências de
pesquisa na área da computação ubíqua ciente de contexto por meio da apresentação e
análise de trabalhos realizados sobre desafios específicos da área. Tais resultados apre-
sentam soluções interessantes para desafios que vão desde problemas relacionados com a
parte física da comunicação sem fio utilizada, até outros ligados às aplicações oferecidas
aos usuários.
3.1. Introdução
A computação ubíqua é caracterizada pela presença de dispositivos portáteis, cada vez
mais comuns devido aos avanços na fabricação de componentes eletrônicos. Esses dis-
positivos possuem uma considerável capacidade de processamento, com recursos para
comunicação sem fio e armazenamento de dados. Essa última característica permitiu o
crescimento do uso de equipamentos portáteis capazes de lidar com dados multimídia. Es-
ses dispositivos se popularizaram como handhelds, PDAs, e, atualmente, têm aparecido
como smartphones e celulares de grande capacidade computacional. Além das funciona-
lidades originais, como capacidade de comunicação via telefonia celular, tais dispositivos
também possuem diversas funcionalidades e interfaces como GPS, rádio e TV, tocado-
res de áudio e câmeras fotográficas digitais. Esses dispositivos vêm sendo usados em
aplicações que envolvem indústria, medicina, uso pessoal, etc.
Uma das principais áreas de pesquisa dentro da computação ubíqua é a computa-
ção ciente do contexto (context-awareness). A computação ciente ou sensível ao contexto
(Context-Aware Computing) define uma área de pesquisa relativamente recente, que pos-
sui aplicações em diferentes cenários computacionais e que apresenta desafios de imple-
mentação importantes, os quais têm sido o alvo da atenção 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 condi-
ções atuais do usuário, do ambiente no qual o mesmo se encontra e do próprio dispositivo
computacional utilizado, considerando tanto suas características de hardware, como tam-
bém de software e de comunicação. Tais entradas são os chamados contextos. Vários
pesquisadores publicaram trabalhos no início da década de 90, descrevendo definições
para o significado do termo contexto.
Dey et al [Dey (2001)] formalizaram a definição de contexto como sendo
“Qualquer informação que possa ser utilizada para caracterizar a situa-
ção de entidades (pessoa, lugar ou objeto) que sejam consideradas relevan-
tes para interação entre um usuário e uma aplicação (incluindo o usuário e
a aplicação)".
Essa é uma das definições mais aceitas e utilizadas atualmente por pesquisadores
da área, embora várias outras tenham sido propostas e discutidas. Pode-se observar que a
100 27º Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos
definição é bastante imparcial quanto aos tipos e variedades de dados que podem ser con-
siderados como contextos, sendo ampla o suficiente para aceitar as diversas necessidades
específicas de cada aplicação. Além disso, os autores também não restringem as fontes
de contextos possíveis de serem utilizadas, permitindo que tais dados reflitam a situação
de qualquer entidade relevante para cada caso em particular. Finalmente é interessante
notar como os autores conseguem apresentar uma definição precisa para o termo, sem a
necessidade de listar tipos ou classes específicas de contextos.
Embora os primeiros artigos na área de computação sensível ao contexto tenham
sido publicados no início da década de 90, essa área de pesquisa continua ainda hoje
bastante ativa. Possui muitas questões em aberto, as quais demandam intenso trabalho
de pesquisa para que sejam amplamente entendidas, encontrando-se as melhores e mais
eficiente técnicas e soluções relacionadas. A seguir estão listados alguns dos desafios de
pesquisa ainda existentes divididos em algumas sub-áreas:
• Sensoriamento: Escolha e inclusão dinâmica dos contextos mais apropriados a cada
aplicação; Técnicas para coleta de contextos físicos, lógicos e virtuais; Atribuição
de semântica uniforme aos contextos utilizados; Identificação e escolha de fontes
de contextos;
• Modelagem: Modelo de arquitetura para sistemas cientes de contexto; Modelo para
representação uniforme da sintaxe dos dados de contexto coletados; Modelo de
armazenamento de dados contextuais; Modelo de comunicação adotado entre di-
versos usuários ou aplicações;
• Qualidade: Qualidade de contexto (QoC); Qualidade de serviço (QoS); Qualidade
das fontes de contexto; Gerenciamento de aplicações cientes de contexto; Trata-
mento de falhas; Automatização de tarefas; Utilização de algoritmos de aprendi-
zado; Identificação e tratamento de contextos individuais conflitantes; Identificação
e tratamento de contextos coletivos conflitantes;
• Segurança: Segurança para troca de dados entre usuários e aplicações; Confiabili-
dade das fontes de contextos; Segurança da Informação de contexto;
Existem publicados na literatura vários trabalhos descrevendo diferentes aplica-
ções para a computação ciente de contexto. A seguir estão listadas algumas das principais
ideias de aplicações desse tipo. No entanto muitas outras ainda podem ser elaboradas,
visto que essa é uma área com potencial para ser aplicada em diversos e diferentes aspec-
tos.
Uma das mais citadas aplicações cientes de contexto está relacionada ao turismo.
O trabalho de Cheverst et al [Cheverst et al. (2000)] é um dentre vários que descrevem
como utilizar elementos de contexto para tornar a experiênciade turistas mais simples,
personalizada e rica de informações e detalhes. Em particular, o trabalho citado apre-
senta uma plataforma chamada GUIDE, construída para atender a demandas específicas
de turistas que viajam para conhecer cidades diferentes. Os requisitos para a ferramenta,
tais como flexibilidade, uso de informações sensíveis ao contexto, suporte para informa-
ções dinâmicas e serviços interativos, foram obtidos com especialistas na área de turismo.
Livro Texto dos Minicursos 101
O sistema combina tecnologias de computação móvel com uma estrutura de rede sem
fio para apresentar aos visitantes informações adaptadas aos seus contextos pessoais e
ambientais. Testes foram realizados por meio de utilização do sistema proposto por espe-
cialistas e também por usuários 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
aplicação que mantém clientes informados sobre mudanças em seus ambientes. Mapas
ativos descrevem a localização e as características de objetos dentro de alguma região en-
quanto os mesmos se modificam com o passar do tempo. Um aspecto importante, tratado
com cuidado pelos autores do trabalho, é a questão de escala: mapas ativos devem tratar
atualizações e consultas sobre regiões suficientemente grandes para satisfazer o interesse
de clientes, assim como deve tratar picos de carga em regiões com intensa movimentação
de usuários. Além disso, a solução proposta faz uso de endereçamentos e roteamentos
multicast, uma vez que detecta grupos de usuários com interesses por atualizações co-
muns. Para garantir que não haverá sobrecarga nos canais de localização, provê limites
garantidos no uso da largura de banda disponível.
Embora possa ser utilizada por qualquer aplicação computacional para a qual seja
relevante, o uso da sensibilidade ao contexto é especialmente importante para uma área
em particular: a computação ubíqua e pervasiva. Este tipo de computação define uma
nova maneira de relacionar usuários humanos e dispositivos computacionais. Essa é uma
área recente de pesquisa que prevê a disponibilização de computação e comunicação 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 usuários e seus objetos computacio-
nais em aplicações ubíquas, faz com que o uso de contexto seja ainda mais importante. As
características utilizadas como entradas em tais soluções poderão se modificar a qualquer
instante, e essa informação é crucial para que os melhores serviços sejam oferecidos aos
usuários. Tais modificações podem ser observadas em situações nas quais o próprio usuá-
rio se movimenta de um local para outro, modificando-se assim as condições do ambiente
corrente em variados aspectos (condições físicas, recursos físicos disponíveis, recursos
computacionais disponíveis, fontes de contexto, conectividade, dentre outros) ou ainda
quando outros usuários e/ou recursos se movimentam para dentro e para fora da área de
interesse da aplicação. Interessante notar portanto o aspecto dinâmico do ambiente das
aplicações, o qual faz da computação ciente de contexto uma aliada importante para o
melhor funcionamento dos sistemas ubíquos. A restrição de recursos disponíveis para
execução das aplicações é outro fator importante a ser considerado, sendo bastante afe-
tado pela característica dinâmica das aplicações ubíquas e pervasivas. Uma vez que os
recursos e serviços disponibilizados para os usuários se modificam ao longo do tempo,
e os dispositivos utilizados são em geral pequenos, com poucas capacidades computaci-
onais, de energia e memória, os sistemas desse tipo devem realizar um gerenciamento
de recursos consistente de maneira a prolongar o tempo de vida da aplicação, mantendo
os níveis de qualidade de serviço desejados pelos usuários. O uso de contextos é mais
uma vez importante de ser utilizado como forma de manter as aplicações conscientes dos
recursos disponíveis e demandados. Eles serão usados como entradas por algoritmos de
102 27º Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos
gerenciamento, capazes de comparar e escolher o que precisa e o que pode ser feito para
os usuários.
O objetivo deste minicurso é apresentar o estado da arte na pesquisa em alguns
campos da pesquisa usando o computação ciente do contexto. A seção 3.2 apresenta
dois trabalhos sobre a identificação de fontes de contextos e duas técnicas de aquisição
de dados contextuais através da análise do sinal de rádio usado na comunicação sem
fio. A seção 3.3 mostra a caracterização do usuário de dispositivos móveis através de
perfis. A seção 3.4 propõe um sistema de a notificação de eventos para dispositivosmóveis
baseado no perfil e contextos do usuário. A seção 3.5 lida com o conceito de contextos
coletivos, em situações nas quais os contextos dos diferentes usuários são discordantes
ou incompatíveis entre si e/ou com o ambiente a ser adaptado e é necessário lidar com
os problemas relacionados de maneira a maximizar a satisfação individual e coletiva dos
usuários. A seção 3.6 aborda a segurança em dois tópicos, sobre confiabilidade dos dados
compartilhados e a seleção adaptativa de protocolos de segurança. Por fim, a seção 3.7
possui os comentários finais sobre o tema de pesquisa abordado.
3.2. Aquisição de Dados Contextuais
A identificação de fontes de contextos no ambiente, bem como a coleta dos dados con-
textuais por parte dos dispositivos ubíquos são tarefas importantes em sistemas ubíquos
cientes de contexto. Cada tipo de dado contextual a ser utilizado apresenta seus próprios
desafios de aquisição, processamento, co-relação com outros dados, verificação de quali-
dade, definição de sintaxe, associação semântica, dentre outros aspectos. Em particular,
essa seção descreverá trabalhos que propõe soluções para aquisição de dois tipos de con-
textos importantes e frequentemente utilizados pelas aplicações: a qualidade do canal de
comunicação sem fio e a localização.
• Sistema de Posicionamento Híbrido e Ubíquo para Dispositivos Móveis: Um sis-
tema de posicionamento é uma ferramenta usada para determinar e registrar a loca-
lização de um objeto na superfície da Terra. Existem sistemas de posicionamento
para ambientes internos e externos, alguns operam apenas em áreas delimitadas
enquanto outros operam sobre toda a superfície do globo. Seu funcionamento, nor-
malmente, se baseia na captura de sinais, de rádio, infra-vermelho ou de satélites,
para determinar a posição de um dispositivo, de acordo com algum referencial ou
sistema de coordenadas. O objetivo dessa seção é desenvolver um sistema de posi-
cionamento híbrido e ubíquo para dispositivos móveis. Um sistema é caracterizado
como híbrido quando apresenta uma mistura de tecnologias diferentes, nesse caso,
o uso dos sinais de celular, redes sem fio e GPS(Global Positioning System), para in-
ferir a posição do dispositivo. A ubiquidade do sistema está no fato de que o mesmo
deverá proporcionar informação contínua de posição, alternando entre os sinais uti-
lizados, para obter localização em ambientes internos e externos, mesmo que cada
tecnologia utilizada proporcione uma precisão diferente no posicionamento do dis-
positivo.
• Identificação de Eventos no Canal de Comunicação em Redes IEEE 802.11: A qua-
lidade da comunicação em sistemas de comunicação sem fio depende de diversos
fatores e ajustar e/ou alertar o usuário sobre as condições da rede é um importante
Livro Texto dos Minicursos 103
serviço para este tipo de dispositivos. A qualidade percebida pelo usuário depende
do contexto de rede, o qual pode ser definido como os eventos que possuem um im-
pacto significativo na comunicação sem fio. A identificação do comportamento do
canal de comunicação é necessária para obter a descriçãodeste contexto. Devido às
características intrínsecas da propagação do sinal transmitido, é difícil medir e infe-
rir o contexto básico das redes sem fio, como por exemplo, predizer quando a baixa
qualidade do sinal de rádio é causada por interferência ou efeitos de atenuação de-
vido ao ambiente da comunicação. Essa sub-seção apresenta um novo método para
o gerenciamento centrado no usuário em redes sem fio que usam o padrão IEEE
802.11b/g, determinando a presença de mobilidade e interferência na comunicação.
O método usa dois gráficos de controle estatístico, MCEWMA (Moving Centerline
Exponential Weighted Moving Average) e o MCEWMV (Moving Centerline Expo-
nential Weighted Moving Variance), associados com a análise de resolução múltipla
com a transformada de wavelets [Hansen & Meno (1977), Judd et al. (2008)].
3.2.1. Sistema de Posicionamento Híbrido e Ubíquo para Dispositivos Móveis
Um sistema de posicionamento é uma ferramenta usada para determinar e registrar a lo-
calização de um objeto na superfície 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 de-
limitadas [Priddge (2000), Kaemarungsi & Krishnamurthy (2004), Bahl & Padmanabhan
(2000)] enquanto outros operam sobre toda a superfície do globo [Dittmer (2005)]. Seu
funcionamento, normalmente, se baseia na captura de sinais, de rádio, infra-vermelho ou
de satélites, para determinar a posição de um dispositivo, de acordo com algum referencial
ou sistema de coordenadas.
Muitos dispositivos móveis mais recentes já possuem capacidade de posiciona-
mento através do Global Positioning System (GPS) [Dittmer (2005)], porém, o funcio-
namento correto do mesmo está praticamente restrito a ambientes externos pois não é
possível receber o sinal dos satélites quando dentro de alguma construção ou com visi-
bilidade reduzida do céu [Dittmer (2005)]. Devido à essa limitação do GPS e ao fato de
grande parte dos dispositivos ainda não serem compatíveis com o sistema GPS, torna-se
justificável a implementação de um Wireless Positioning System (WPS). Esse sistema
utilizará a densa malha de redes sem fio dos padrões IEEE 802.11b e 802.11g já insta-
ladas nas cidades para prover informações de posição. Também deverá funcionar dentro
de construções e exigir pouco ajuste, ao contrário de alguns sistemas de localização 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 localização é o pro-
jeto [Bahl & Padmanabhan (2000)], que registrava impressões digitais de sinais de redes
Wi-Fi para determinar a posição de um dispositivo dentro de uma construção. A partir
desse trabalho, surgiram outras tentativas de se determinar a posição de dispositivos uti-
lizando sinais de Wi-Fi, e mais recentemente, essas iniciativas passaram a tentar mapear
104 27º Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos
ambientes externos desde campi de universidades, bairros e até cidades inteiras.
O número de algoritmos de posicionamento aplicáveis é bem menor quando se
desconhece a real posição dos pontos de acesso da rede, uma vez que muitos se baseiam
em métodos probabilísticos [Haeberlen et al. (2005)], e requerem um grande volume de
informações que não podem ser obtidos nesse caso.
Com a posição dos pontos de acesso desconhecida existe um projeto da Intel cha-
mado Placelab que comparou três algoritmos de posicionamento ao mapear três bair-
ros com características diferentes em cidades distintas dos Estados Unidos [Cheng et al.
(2005)].
Dentre os sistemas de posicionamento implementados para dispositivos móveis
especificamente, podemos citar o [Ericsson (n.d.)], que utiliza informações de sinais de
celular GSM [GSMWORLD (n.d.)], para prover informação de posição, porém com uma
precisão menor do que no caso de um WPS. Mas principalmente, podemos citar o [Na-
vizon (n.d.)], que utiliza informações de GPS, WPS e de redes de celular para prover
informações de posição. Seu funcionamento está praticamente restrito aos Estados Uni-
dos, porém a idéia de utilizar as três abordagens em um mesmo sistema é relevante e
constituiu um dos objetivos deste trabalho.
Outro desafio deste projeto foi o mapeamento da região amostral, já que o fun-
cionamento do algoritmo está aliado a esses mapas. A ideia é um mapeamento cola-
borativo, pelo uso de aparelhos que possuam dispositivos de GPS e um servidor para
armazenamento e sincronização dos mapas. Para tal, foi implementado um cliente cujo
funcionamento é transparente e não influencia no uso normal do aparelho. Parte do tra-
balho [Akella et al. (2007)] consistiu em comprovar que a criação de um número imenso
de redes sem fio, não-planejadas e não-gerenciadas, gerou um ambiente caótico, no qual
praticamente toda rede sem fio sofre interferência de outra. Além disso, o artigo também
explicita interferências de outras tecnologias sem fio, como telefonia celular ou Bluetooth,
que afetam os valores de intensidade de sinal no momento da medição, assim como fato-
res climáticos e outros praticamente desconhecidos. Por essas razões, também é de suma
importância que o mapeamento filtre alguns resultados de pouca confiabilidade devido à
ocorrência de interferências.
3.2.1.2. Desenvolvimento
Depois de uma revisão da bibliografia mencionada sobre sistemas de posicionamento, foi
necessário um estudo prévio de detalhes de implementação da plataforma Android, de-
vido a algumas peculiaridades acerca da programação para esta plataforma. Em seguida,
a primeira etapa da implementação, que corresponde ao cliente de mapeamento, pôde ser
desenvolvida. Essa aplicação basicamente coleta as seguintes informações em cada ponto
mapeado através de coordenadas de GPS, redes Wi-fi detectadas naquele ponto, principal-
mente endereço Mac, Received Signal Strength Indicator (RSSI) e informações de célula
de celular, principalmenteMobile Country Code (MCC), Mobile Network Code (MNC) e
Cell Tower ID (CID);
Além dessas informações, uma parte importante da aplicação é a inserção de mar-
Livro Texto dos Minicursos 105
cadores que em conjunto representam a localização simbólica de um conjunto de pontos,
como por exemplo: país - estado - cidade - bairro - estabelecimento. O cliente deve
possibilitar a inserção e remoção desses marcadores, que junto com as informações de
ambiente, citadas anteriormente, representam a "impressão 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
Após construídos os mapas, o cliente de mapeamento os submete para o servidor,
quando o usuário utilizar a funcionalidade Submit Scan. A interface do servidor respon-
sável por esta operação de submissão e armazenamento dos mapas, foi a segunda etapa
de implementação. Ao receber os mapas de um cliente, o servidor deve armazená-los de
forma que possam ser encontrados facilmente, quando for necessário consultá-los. Para
limitar o espaço de busca do algoritmo de posicionamento, foi utilizada uma combinação
entre o MNC, MCC e o CID, que é única para qualquer célula GSM no mundo, para
indexar os arquivos de mapas. Nesse momento, o servidor também deve atualizar uma
representação gráfica de todos os mapas já coletados, que utiliza sobreposição de mapas
e uma API do Google Maps [Google (n.d.)], para a representação dos mapas. A Figura
3.2 demonstra a representação em tempo real dos pontos mapeados ao redor do Instituto
de Ciências Exatas (ICEX) da Universidade Federal de Minas Gerais (UFMG):
A próxima etapa no desenvolvimento do sistema é a implementação do cliente
de posicionamento. Ele basicamente interage com o servidor, enviando as informações
do ambiente onde se encontra,para depois receber as informações de posição, calcula-
das pelo servidor. Depois de receber suas informações de localização, o cliente desenha
sua posição em um mapa, utilizando funcionalidades integradas na própria plataforma
Android para realizar sobreposição de mapas. A Figura 3.3 e 3.4 mostram o cliente de
posicionamento em execução no emulador.
Finalmente, a última etapa do desenvolvimento é a implementação da interface
do servidor que trata as requisições de posição do cliente de posicionamento. Ao rece-
ber uma requisição, 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 requisição de posição. Baseado na soma dessas pontuações, ele determina
106 27º Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos
Figura 3.2. Mapas em tempo real
Figura 3.3. Cliente de
Posicionamento
qual o ponto de maior probabilidade de representar a posição atual do dispositivo e re-
torna as coordenadas e posição simbólica para o cliente, que por sua vez as exibe na tela,
como visto na Figura 3.4. O servidor também registra a posição do dispositivo através da
sobreposição de mapas, como pode ser visto na Figura 3.5.
Após essas etapas de desenvolvimento, o sistema de posicionamento já é capaz de
manter o mapeamento colaborativo funcional e sempre atualizado e inferir posições para
os dispositivos que as requisitarem. Os testes realizados são descritos na seção seguinte.
3.2.1.3. Resultados
O funcionamento do sistema é aliado ao mapeamento prévio 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 prédio do ICEX, no campus da UFMG. Comprovou-se que esta era uma região
boa para a realização dos testes, devido à densidade de pontos de acesso nessa área, o que
contribui para a precisão do sistema.
O processo de testes do sistema foi prejudicado pela falta de um dispositivo real
e portátil que executasse o sistema operacional Android, porque as informações de redes
sem fio, sinais de celular e GPS não podiam ser obtidas diretamente através do emulador.
Foram realizados alguns testes preliminares de precisão para o sistema, representados na
Tabela 3.1:
Em 88% dos casos o sistema retornou como posição para o dispositivo o ponto que
representava aquele mais próximo de sua posição 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
precisão menor do que a de 10 metros, porém em nenhum dos casos o erro superou os
40 metros. As variações na precisão do sistema são observadas porque existem pontos no
Livro Texto dos Minicursos 107
Figura 3.4. Sobreposi-
ção de mapas no cliente
Figura 3.5. Posição
de um dispositivo em
tempo real
Número de testes Erro (em número de pontos de distância)
44 0
4 1
1 2
1 3
Tabela 3.1. Testes preliminares de precisão do sistema
mapeamento, nos quais os pontos de acesso detectados são 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 interferências diversas, e até
fatores climáticos.
3.2.2. Identificação de Eventos no Canal de Comunicação em Redes IEEE 802.11
A comunicação ubíqua tem como objetivo permitir o acesso à informações, serviços e
aplicações em qualquer lugar e a qualquer momento. Sua utilização deve prover o usuá-
rio com acesso permanente à uma rede fixa ou móvel independentemente de sua posição
física. Dispositivos móveis com várias interfaces de rede para acesso a diferentes tecno-
logias de rede sem fio estão cada vez mais populares e isso introduz a flexibilidade da
seleção 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 padrão IEEE 802.16; e as redes sem fio
locais, definidas no IEEE 802.11. Um usuário portando um smartphone com diferentes
interfaces de rede pode usar as conexões disponíveis que melhor atendam a sua demanda.
Uma vez conectado, o usuário utiliza os serviços disponíveis, mas a maneira como
108 27º Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos
é atendido depende de diversos fatores, que não são encontrados na comunicação com
fio. Por exemplo, a variação do nível do sinal recebido que causam perdas de dados e
mudanças continuas na velocidade das interfaces de rede sem fio. Somado a isso, os
dispositivos possuem restrições com relação ao consumo de energia. O resultado final são
novos requisitos para o funcionamento adequado das aplicações. Dadas essas diferenças
na comunicação da rede com fio, o desenvolvimento de aplicações deve ser feito com foco
em atender esses requisitos. Para isso, as informações do ambiente da comunicação são
essenciais.
3.2.2.1. Motivação
Para classificar a qualidade da comunicação, primeiro é necessário identificar as métricas
para medir e qual o tipo de impacto que o ambiente de comunicação sem fio causa sobre
ela. Essas métricas descrevem a relação entre o nível de energia do sinal recebido e a
integridade dos dados transmitidos. As variações na qualidade da comunicação possuem
diferentes impactos sobre o desempenho da aplicação, pois as interfaces de rede sem fio
possuem variadas estratégias para lidar com os quadros perdidos. As seguintes métricas
identificam esses efeitos:
Vazão Ideal: a velocidade máxima do modem utilizado pela interface de rede sem fio,
medida em MBps, selecionado de acordo com o canal de comunicação. Cada in-
terface de rede sem fio possui um conjunto de modems, que são selecionados de
acordo com as características do ambiente da comunicação;
Vazão Efetiva: a vazão dos dados efetiva percebida pela aplicação durante a comunica-
ção, medida em MBps. Este leva em conta a sobrecarga causada pelas retransmis-
sões dos quadros e das mensagens de controle dos protocolos de rede, assim como
a mudança do modem utilizado;
Atraso: medida do impacto causado pelas sucessivas retransmissões e as mudanças nas
interfaces de rede sem fio, como por exemplo a escolha dos modems, falhas de
recebimentos de quadros e etc.;
Variação no atraso: variação do atraso, que é associada a diferentes atrasos, gerados
pela variabilidade presente na comunicação sem fio. A variação de atraso aumenta
quando existe uma grande variabilidade na qualidade da comunicação.
Aqui define-se o conceito de contexto da comunicação. Este contexto é composto
pelo ambiente no qual receptor e transmissor se encontram e por suas interfaces de rede
sem fio do padrão IEEE 802.11 usadas para a comunicação. Esse ambiente pode ser des-
crito pelos impactos que são causados no sinal recebido na interface de rede sem fio du-
rante a comunicação. As interfaces de rede sem fio possuem parâmetros e programações
internas que reconfiguram seu funcionamento automaticamente, em resposta ao ambiente.
Por exemplo, a especificação do IEEE 802.11 deixa a cargo do fabricante da interface de
rede a escolha do algoritmo de seleção de velocidade. A escolha da velocidade pode ser
feita com o objetivo de manter a comunicação ativa, pois velocidades menores permitem
Livro Texto dos Minicursos 109
o funcionamento da interface em modo mais robustos, que suportam melhor as variações
no sinal. Em outras situações, a velocidade maior pode ser preferida em detrimento da
permanência da conexão.
A otimização da qualidade da comunicação numa rede sem fio é essencial para
a melhoria do desempenho das aplicações que usam a comunicação ubíqua. Dentre as
estratégias usadas para tal, a adaptação é o elemento central. A implementação das es-
tratégias adaptativas pode ocorrer em diversos níveis, sobre os dados transmitidos, sobre
alguma funcionalidade da aplicação ou na reconfiguração da interface de rede sem fio.As
estratégias envolvidas, podem ser, por exemplo, a escolha de algoritmos adequados para
a compressão dos dados, o uso de diferentes algoritmos nas aplicações dependendo das
condições da comunicação e o ajuste do funcionamento da placa de rede sem fio.
Dispositivos que utilizam outras interfaces ou a presença de muitas redes sem fio
nas proximidades são fontes de interferência. Os próprios objetos presentes no ambiente
onde a comunicação acontece afetam as características da comunicação. A mobilidade
dos dispositivos expõe as interfaces à diferentes efeitos de propagação e atenuação do
sinal. Contudo, é muito difícil inferir a partir do sinal recebido, quando a queda na qua-
lidade se deve à interferência ou à mobilidade. A informação sobre o contexto da co-
municação é essencial para uma adaptação da mesma, no intuito de se atingir o melhor
desempenho das aplicações.
A descrição do contexto da comunicação é um fator importante para se atingir
uma boa qualidade na comunicação. Neste caso, a Figura 3.6(a) mostra a situação inicial,
no qual o usuário está próximo ao ponto de acesso se comunicando a uma velocidade de
11MBps. Os círculos verdes mostram a potência do sinal, a cor mais escura indica mais
energia e a mais clara, menos energia. O deslocamento do usuário para longe do ponto
de acesso causa uma queda de velocidade de comunicação, devido à variação deste sinal,
como mostrado na Figura 3.6(b). Em situações como essa, a Figura 3.6(c) mostra uma
estratégia de melhoria que pode ser feita: aumentar da potência da antena do ponto de
acesso, de maneira que o usuário continue sendo atendido com uma velocidade adequada.
Mas caso a perda de velocidade seja causada por uma interferência, a mesma es-
tratégia de adaptação pode causar resultados adversos. A Figura 3.7 mostra este cenário,
onde um usuário se encontra no alcance de dois pontos de acesso e estabelece a comu-
nicação com um deles. O sinal que chega sobre este usuário é a soma do sinal oriundo
dos dois pontos de acesso. Neste caso, como não está conectado ao segundo ponto de
acesso, o usuário não pode evitar a interferência causada, como é mostrado na Figura
3.7(a). A Figura 3.7(b) mostra o impacto da presença de interferência na velocidade de
comunicação, a qual diminui devido às sucessivas perdas. Caso não seja identificado que
esta diminuição de velocidade é causada pela interferência, a Figura 3.7(c) mostra que a
mesma estratégia adotada na solução anterior pode gerar mais interferência, acarretando
em problemas de comunicação em outros elementos na rede.
A importância de conhecer os efeitos destes eventos é acentuada pela necessidade
de identificar quando a interface de rede sem fio pode mudar seus modos de funciona-
mento, possibilitando assim para melhor lidar com essas situações limite. Quando a inter-
face identifica uma qualidade ruim do sinal recebido, ela aciona o algoritmo que escolhe
a velocidade, modificando a vazão ideal. Esta mudança causa um impacto também na
110 27º Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos
(a) Usuário próximo ao ponto de acesso. (b) Deslocamento para longe do ponto de
acesso, queda de velocidade.
(c) Aumento da potência de transmissão, re-
cuperação da velocidade.
Figura 3.6. Adaptação da potência da antena do ponto de acesso
(a) Usuário em região sob efeito de interferên-
cia.
(b) Queda na velocidade devido a erros de co-
municação causados pela interferência
(c) Aumento da potência de transmissão, inter-
ferência causa perda de conexão em outros ele-
mentos .
Figura 3.7. Adaptação da potência da antena do ponto de acesso.
vazão efetiva e no atraso presente. Em ambientes com muita interferência, esse algoritmo
pode ser ativado diversas vezes, ocasionando mais mudanças nos modems e aumentando
com isso a variação do atraso. Em ambientes com mobilidade, e sem interferência, essa
escolha dos modems pode mudar de maneira gradual, com a velocidade diminuindo pro-
porcionalmente ao deslocamento. De posse dessa informação, os usuários e as aplicações
podem adaptar a interface, de maneira a melhorar essa vazão, como por exemplo, aumen-
tar da potência de transmissão em situações de deslocamento. A decisão adequada deve
levar em conta as restrições dos dispositivos e os requisitos da aplicação.
Livro Texto dos Minicursos 111
Para auxiliar na identificação da estratégia correta de adaptação, neste ponto são
definidos os eventos do contexto da comunicação. Esses eventos são a presença de mo-
bilidade e de interferência, de maneira não exclusiva, no contexto da comunicação. A
distinção destes eventos se faz necessária por causa das possíveis estratégias a serem ado-
tadas na melhoria da comunicação.
A justificativa em se utilizar somente a variação do sinal para a detecção da movi-
mentação é devido ao fato que existe uma relação direta entre essa variação e a qualidade
da comunicação percebida pelas aplicações. Além disso, nem todo sistema computacional
é dotado de ferramentas de localização. Por exemplo, considerando somente a variação
do sinal, existem situações onde tal movimentação não efetua nenhum impacto. O impor-
tante para este trabalho é identificar que a variação do sinal pode ser associada a algum
tipo de movimentação e que não seja não relacionada com a presença de interferência.
Assim como, na presença de interferência ou de mobilidade, as respectivas variações do
sinal sejam identificadas.
Para uma identificação mais precisa destes eventos, é considerado o ambiente de
comunicação interno, no qual a velocidade de deslocamento entre o receptor e o trans-
missor é limitada e as fontes de interferência são as mais comuns de se encontrar em um
ambiente interno. Apesar desta restrição, que se faz essencial nessa caracterização, este é
o cenário mais comum de utilização das redes sem fio do padrão IEEE 802.11.
No sentido de melhorar a tomada de decisão de tais mecanismos, esta tese fornece
um mecanismo que permite distinguir em tempo real e com alta precisão eventos de mo-
bilidade e interferência a partir do monitoramento constante dos valores de sinal medido
na interface.
3.2.2.2. Propagação de sinais
A partir da visão geral da física de propagação em ambientes sem fio, a comunicação é
descrita como dependente da separação que existe entre o transmissor e o receptor. Essa
separação pode ser associada à distância, à velocidade de deslocamento, às características
do ambiente da comunicação e às fontes de interferência. O sinal transmitido chega ao
receptor como uma ou mais ondas que foram afetadas pelos efeitos de propagação no am-
biente, sendo este fenômeno conhecido como multipath. Dessa maneira, essas ondas são
componentes que formam o sinal recebido. Se não existirem obstáculos entre o receptor
e o transmissor, algumas dessas ondas serão consideradas como principais na transmis-
são, somadas com as outras geradas pelos efeitos da reflexão, dispersão e refração. Esses
efeitos podem causar mudanças de fase e atenuações em cada componente. A Figura
3.8 ilustra este cenário. Considerando um transmissor e um receptor separados por uma
distância d em um instante de tempo t ′, as ondas de sinal emitidas percorrem diferentes
caminhos e o resultado final que chegam no receptor é um somatório destas ondas.
112 27º Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos
Figura 3.8. Múltiplos caminhos da propagação da onda transmitida
3.2.2.3. Interferência
Considerando um transmissor e um receptor, que utilizam a interface de rede IEEE 802.11,
é possível dividir as fontes de interferência em dois grupos. O primeiro é o das interfe-
rências geradas por outros elementos de rede que também usam a interface IEEE 802.11,
mas não estão participando diretamente da comunicação. O segundo são aparelhos co-
muns que também trabalham na faixa de freqüência ISM usada pelo IEEE 802.11.
Em relação ao primeiro grupo é possível identificar as seguintes interferências:
• Co-canal: ocorre no momento em que outros elementos fisicamente próximos uti-
lizam canaisadjacentes e possuem uma potência de transmissão elevada, causando
interferência. A recomendação do próprio padrão para esse caso é o uso de canais
que não se sobrepõem, como os canais 3, 6 ou 11;
• Direta: ocorre quando outros elementos não conhecidos utilizam o mesmo canal
de comunicação. Por exemplo, vizinhos que utilizam o mesmo canal em sua rede
sem fio doméstica. Dada a grande popularidade do IEEE 802.11 é um caso comum.
Considerando o contexto de redes internas em casas e escritórios, sobre o segundo
grupo, é possível identificar as seguintes fontes de interferência:
• Telefones sem fio: Trabalham na faixa de freqüência de 2.4GHz e 5.4GHz. Sua
principal característica é o uso constante do canal de transmissão, para manter a
qualidade da comunicação de voz, e da alta potência, já que o alcance de uso é uma
das principais características deste tipo de aparelho;
• Bluetooth: Este padrão tem se tornado cada vez mais popular, presente em mui-
tos dispositivos portáteis. Ele não possui grande potência de transmissão, uma vez
que tem o foco em economizar energia e utiliza uma técnica de envio com salto
de freqüência, trocando os canais de uso a uma taxa de aproximadamente 3200ms,
para minimizar o uso de canais que sofrem interferência. Em contrapartida, a inter-
ferência que causa sobre o IEEE 802.11 já é bem conhecida, como visto em [Pun-
noose et al. (2001)] e [Jung-Hyuck & Jayant (2003)];
Livro Texto dos Minicursos 113
• 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 próximas a estes aparelhos.
3.2.2.4. Qualidade da Comunicação
Define-se qualidade da comunicação em uma interface de rede IEEE 802.11 como a rela-
ção da quantidade de bits alterados ao comparar o quadro transmitido e o mesmo quadro
recebido. O quadro transmitido é uma seqüência de bits que compõe os dados, o cabeça-
lho e o preâmbulo enviados pelo transmissor e o quadro recebido é a seqüência recebida
no receptor. Este quadro recebido pode ser alterado pelos efeitos que atuam sobre o sinal,
descritos na seção 3.2.2.2. Uma boa qualidade de comunicação é descrita como o caso
onde os efeitos do canal não afetem o quadro recebido, ficando este o mais próximo 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 preâmbulo do quadro e indica a quantidade de energia presente
na interface. Esse valor pode ser recuperado acessando funções específicas do driver do
dispositivo.
3.2.2.5. Identificação de eventos
Ométodo de identificação de eventos efetua a análise sobre os dados amostrados na placa
de rede sem fio. Essas amostras das medidas do RSSI são uma janela de dez medidas
consecutivas, espaçadas com um intervalo de tempo de 10ms. A série temporal que
descreve o canal de comunicação sem fio é não-linear, não gaussiana e não estacionária.
A Figura 3.9 mostra todas as etapas envolvidas no processo.
Figura 3.9. Metodologia de identificação
Essas características foram consideradas no modelo de maneira a fazer viável a
descrição da assimetria forte entre as amostras e as variações da média e da dispersão. A
complexidade da série temporal prevê o uso de modelos simples de previsão, justificando
114 27º Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos
o uso das estratégias de médias móveis exponenciais nos gráficos de controle (os gráficos
de controle clássicos utilizam modelos mais simples e menos expressivos). Também, cabe
notar que a variabilidade e assimetria são melhor caracterizados pela análise de multi-
resolução. Dessa forma, o uso conjunto dos dois métodos é justificado pelos seguintes
pontos:
• Análise Temporal: O gráfico de controle MCEWMA identifica eventos fora de con-
trole que aparecem na média das amostras das medidas de RSSI e o gráfico de
controle MCEWMV identifica as situações fora de controle sobre a variância. Uti-
lizando esses gráficos de controle, o controle estatístico de processos permite a
investigação da amplitude do sinal identificando tendências de situações fora de
controle. Mas a informação sobre a variabilidade entre as diferentes amostras das
medidas de RSSI não são totalmente identificadas, sendo necessário uma análise
espectral entre essas medidas;
• Análise Espectral: A transformada de wavelets permite identificar a variabilidade
de um conjunto de amostras sucessivas das medidas de RSSI. Aplicada sobre os da-
dos suavizados na saída do MCEWMA, o resultado da transformada é usado para
descrever a variabilidade entre as diferentes amostras. A transformada é aplicada
sobre as medidas suavizadas e não sobre as medidas para evitar o ruído presente
nas medidas. O ruído e a amplitude do sinal são verificados pelos gráficos de con-
trole. Relaciona a variabilidade das medidas. Descreve as frequências presentes em
cada janela δ t. Numa janela δ t, níveis maiores indicam um transiente relativo a
mobilidade. Níveis menores indicam presença de interferência
A partir dos vetores gerados pelos gráficos de controle, xε , suε e slε , associados
com o escalograma e a identificação do módulo feitos na análise de wavelets, armazena-
dos nos vetores E e M, é possível identificar o comportamento da série temporal e com
isso associar este comportamento aos eventos presentes no ambiente da rede sem fio.
Com esta informação, e após uma série de testes, feitos para garantir um intervalo
de confiança de 95%, a informação dos eventos foi usada para criar a Tabela 3.2. Esta
tabela enumera os eventos, associados com interferência e mobilidade e apresenta a des-
crição. Esta informação é utilizada para mostrar ao usuário a descrição no momento que
é feita a identificação de cada evento.
3.2.2.6. Identificação de Eventos
Estes testes foram conduzidos em um ambiente interno de uma casa, considerando o
cenário de baixa densidade de usuários e uma distribuição não planejada de pontos de
acesso na vizinhança. Associado a isso, foram utilizados telefones sem fio e dispositivos
Bluetooth como fonte de interferência.
Toda a mobilidade foi feita em aproximadamente 0.5m/s, uma velocidade para
uma pessoa andando e usando um dispositivo móvel (a noção de mobilidade humana
ainda é um tópico para pesquisas; como pode ser visto em, González et al. 2008).
Livro Texto dos Minicursos 115
Tabela 3.2. Classificação de Eventos
Evento Detectado Descrição
1 Perda de Conexão
2 Perda de Conexão devido Interferência
3 Aproximando do AP
4 Interferência Fraca
5 Afastando do AP
6 Interferência Média
7 Movendo
8 Interferência Forte
Em todos os gráficos, cada experimento foi feito com a duração de 300 seconds,
e a resolução de tempo no eixo x é associada a taxa de amostragem de 10ms. Para cada
evento detectado, o mecanismo pode ser usado para alertar o usuário, usando as descrições
mostradas na Tabela 3.2.
A Figura 3.10 mostra o primeiro caso, onde não existe mobilidade ou interfe-
rência. Todas as flutuações dos sinais são devido ao ruído causado pelo decaimento em
multi-caminho, o qual é ignorado pelo sistema de detecção e nenhum evento é registrado.
0 500 1000 1500 2000 2500 3000
−
7
0
−
5
0
−
3
0
Measures
time
R
S
S
I(
d
b
m
)
time
D
e
te
c
te
d
 E
v
e
n
t
Figura 3.10. Investigação da comunicação em um dispositivo parado, sem a pre-
sença de interferência. Nenhum evento é identificado.
A Figura 3.11 mostra a detecção de uma comunicação Bluetooth, que causa inter-
ferência sobre a comunicação WiFi. Para este tipo de interferência, uma interface Blue-
tooth foi ativada e usada com o Lan Profile, para acessar um ponto de acesso Bluetooth.
Os eventos identificados estão nos pontos ressaltados no gráfico. No gráfico é mostrado o
tempo onde os eventos foram detectados e o número que indica o evento, como mostrado
na Tabela 3.2.
O cenário de mobilidade é mostrado na Figura 3.12. Neste teste,o usuário move
afastando do ponto de acesso, a partir do instante 10000ms até 15000ms, e o evento 5
é detectado, como é mostrado no gráfico. Quando a movimentação é feita em direção
ao ponto de acesso, até o tempo 24400ms, outros eventos associados com mobilidade
116 27º Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos
0 500 1000 1500 2000 2500 3000
−
7
0
−
5
0
−
3
0
Measures
time
R
S
S
I(
d
b
m
)
time
D
e
te
c
te
d
 E
v
e
n
t
1
7
6
0
1
9
2
0
2
0
8
0
2
2
4
0
2
4
0
0
2
5
6
0
2
7
2
0
2
8
8
0
4
8
0
4
8
Figura 3.11. Investigação da comunicação em um dispositivo parado em um
ambiente com interferência.
também são detectados. Neste caso, duas outras identificações associadas a interferên-
cia foram feitas, causadas pelos pontos de acesso na região. Com isso, o cenário final é
mostrado na Figura 3.13, onde a mobilidade e a interferência aparecem: o usuário movi-
menta para um lugar onde existe a presença de interferência oriunda de diferentes pontos
de acesso. Neste caso, esta informação mostra ao usuário a condição na qual se encontra
a região que ele esta se deslocando. A importância deste resultado é oferecer ao usuário
a informação sobre as condições do ambiente de comunicação, oferecendo ao usuário a
opção de movimentar para fora da região de interferência.
0 500 1000 1500 2000 2500 3000
−
7
0
−
5
0
−
3
0
Measures
time
R
S
S
I(
d
b
m
)
time
D
e
te
c
te
d
 E
v
e
n
t
0
4
8
3
7
1
1
2
0
1
2
8
0
1
4
4
0
1
6
0
0
1
7
6
0
1
9
2
0
2
0
8
0
2
2
4
0
Figura 3.12. A identificação do dispositivo movimentando.
3.2.2.7. Arquitetura e Implementação
A implementação da metodologia proposta nessa tese, através de um software, foi feita
com o foco em permitir que as aplicações sejam notificadas sobre a identificação da mo-
Livro Texto dos Minicursos 117
0 500 1000 1500 2000 2500 3000
−
7
0
−
5
0
−
3
0
Measures
time
R
S
S
I(
d
b
m
)
time
D
e
te
c
te
d
 E
v
e
n
t
8
0
0
9
6
0
1
1
2
0
1
2
8
0
1
6
0
0
1
7
6
0
1
9
2
0
2
0
8
0
2
2
4
0
2
4
0
0
2
5
6
0
2
7
2
0
2
8
8
0
0
4
8
Figura 3.13. Identificação de um dispositivo movendo em um ambiente sujeito a
interferências.
bilidade e interferência. Diferente de uma API, que necessita apenas oferecer o acesso a
determinadas funcionalidades do sistema, essa identificação é um sistema reativo, assín-
crono. Dada essa característica, é necessário que essa implementação verifique constan-
temente a interface e, em seguida, disponibilize essa informação para as aplicações.
A disponibilização das informações sobre a ocorrência de eventos pode ser feita
de maneira ativa, onde é feita a notificação para as aplicações sobre alguma atualização no
contexto, ou pode ser feita de maneira passiva, onde as aplicações buscam a informação
sobre o contexto. Devido à necessidade de uma rápida reação ao contexto da comunica-
ção sem fio, a disponibilização ativa desta informação permite uma adaptação 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 sólida, além de uma
integração deste middleware de maneira mais transparente com as aplicações.
O objetivo deste middleware é permitir a identificação dos eventos de mobilidade
e interferência em diferentes tipos de sistemas operacionais. Os seus componentes são
descritos a seguir:
• Amostragem: implementa uma interface com a API de cada sistema operacional,
que permite a leitura das medidas de RSSI. Este módulo tem sua implementação
específica para cada sistema operacional, atendendo às restrições de memória e
processamento.
• Controle Estatístico: efetua o cálculo do MCEWMA e MCEWMV e a identifica-
ção dos eventos fora de controle;
• Filtro de Wavelet: efetua a transformada de wavelets e o cálculo do escalograma
sobre os dados da janela amostral;
• Agente: efetua o cálculo do scoreboard e gera a identificação do evento. Tam-
bém é específico para cada sistema operacional, uma vez que utiliza os sistemas de
geração de eventos e de sinalização disponíveis.
118 27º Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos
A implementação ocorreu para os sistemas operacionais Linux e Windows XP.
Até o momento da finalização deste trabalho, uma nova versão, para o sistema operacio-
nal Android estava em desenvolvimento. Para permitir que essa metodologia seja imple-
mentada em diferentes sistemas operacionais, a Tabela 3.3 mostra uma breve descrição
dos requisitos de cada sistema e o que foi adotado para essa implementação.
Tabela 3.3. Técnicas de Implementação
Requisito Windows XP Linux Android
RSSI Acesso ao WMI, Microsoft (2008) Acesso ao PROC Acesso ao
diretório proc WifiManager
Implementação Serviço Daemon Serviço do
Application framework
Integração Conexão via socket com agente Escrita no diretório proc Geração de evento e RPC
Livro Texto dos Minicursos 119
3.3. Serviço de Caracterização e Gerenciamento de Perfis de Usuários Móveis
O principal objetivo da seção é demonstrar os benefícios de caracterizar o usuário de dis-
positivos móveis através de perfis. A computação móvel é uma área em crescimento. O
usuário deseja obter informações em qualquer lugar e em qualquer instante. Por esse mo-
tivo, aplicações dependentes do contexto são desenvolvidas para atender aos desejos do
usuário. Uma forma de representar esses desejos é através de um perfil, que no caso do
usuário móvel é muito dinâmico. Pode ser alterado devido a mudanças de ambiente, dis-
positivo, infra-estrutura e interesses. Logo, ele deve ser representado de maneira simples
para facilitar a comunicação entre a aplicação dependente de contexto e o perfil. O traba-
lho apresentado nessa seção propõe a criação de um serviço de identificação de usuários
móveis, construindo um perfil para cada um deles. Para isso, é necessário utilizar servi-
ços auxiliares (serviço de configuração da rede, serviço de configuração do dispositivo,
serviço de gerenciamento de interesses e serviço de localização) para compor o perfil.
O desenvolvimento do trabalho foi realizado na plataforma Android a fim de verificar a
aplicabilidade da solução proposta [Buszko et al. (2001)].
3.3.1. Visão Geral
A computação dependente do contexto tem crescido proporcionalmente ao crescimento
do uso de dispositivos móveis. Isso porque o usuário deseja obter informações em qual-
quer lugar, a qualquer momento e em qualquer dispositivo, mesmo que esse esteja em
movimento [Devlic & Jezic (2005)]. O perfil de usuário é uma técnica utilizada para ca-
racterizar um usuário num dado contexto. Para isso, ele integra as informações do usuário
móvel, o seu dispositivo utilizado e o ambiente em que ele se encontra. Para definir o
perfil do usuário deve-se tratar de assuntos como questões espaciais, temporais, lógicas
e relacionamentos com outros usuários. Esse perfil pode ser representado através de on-
tologias, isto é, modelos de dados que representam um conjunto de conceitos e relações
entre eles dentro de um domínio de conhecimento. O perfil de usuário pode ser facilmente
alterado devido às mudanças de localização ou alteração de interesse.
3.3.2. Motivação
Utilizando o serviço, será possível desenvolver aplicações que são cientes do contexto.
Existe também a possibilidade de criar publicidade ou cupons de descontos para clientes
que visitam uma determinada loja ou departamento. Um exemplo do uso do serviço se-
ria o seguinte caso. Um médico, aficionado por futebol, deseja receber uma notificação
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 não deve ser interrom-
pido caso o seu time faça um gol. No entanto, se ele estivesse andando de carro naquele
instante, ele poderia receber essa notificação. Ou seja, dependendo do contexto em que
o usuário se encontra, a aplicação deveria ser projetada para ter um comportamento dife-
rente. Esse é um ponto fundamental que distingue o paradigma de computaçãomóvel do
paradigma tradicional de sistemas distribuídos.
3.3.3. Solução proposta
A solução proposta nesse trabalho consiste em retirar da aplicação a responsabilidade de
criar o perfil do usuário. Comumente, a aplicação dependente do contexto deve sempre
120 27º Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos
solicitar informações ao usuário para definir o que deve ser feito. Essa forma é mais tra-
balhosa e exige interação entre a aplicação e usuário a todo instante, o que pode tornar
a aplicação mais lenta. A solução proposta consiste em estabelecer uma comunicação
apenas entre a aplicação e o perfil. A aplicação não precisa se comunicar com os demais
serviços que compõem o perfil. Esse perfil já foi construído previamente por serviços
auxiliares (serviço de localização, serviço de configuração de dispositivo, serviço de ge-
renciamento de interesses (contexto) serviço de configuração da rede e serviço de confi-
guração do dispositivo). Uma representação da solução proposta pode ser vista na Figura
3.14.
Figura 3.14. Modelagem da solução proposta. O perfil é composto por informa-
ções fornecidas pelos serviços auxiliares. A aplicação se comunica apenas com
o perfil.
O serviço de gerenciamento proposto consiste em armazenar os perfis de usuários
já construídos de forma que a aplicação acesse facilmente o perfil do usuário que já foi
definido previamente.
3.3.4. Perfil
O perfil é uma forma de representar as características e interesses de um usuário em um
determinado contexto. Esse perfil é de grande importância para aplicações dependentes
do contexto porque elas determinam seu fluxo de acordo com o perfil do usuário. Para
cada aplicação pode ser necessário identificar certas características. Após estudar as ca-
racterísticas essenciais utilizadas pelas aplicações para identificar um usuário móvel, foi
definido que o perfil será composto de:
• Informações de localização - Descreve onde o usuário está localizado no momento.
Identifica a latitude, longitude, nome e descrição do local onde o usuário está.
• Configuração da rede - Descreve as características da rede, incluindo dados sobre
banda e latência.
• Configuração do dispositivo - Descreve as características do dispositivo. As infor-
mações essenciais do dispositivo são bateria, memória, modelo e processamento.
Essas são as informações mais importantes que a aplicação móvel precisa saber so-
bre os dispositivos móveis. A bateria, memória e processamento pois são recursos
Livro Texto dos Minicursos 121
escassos nesses aparelhos. O modelo é uma informação importante para identificar
as funcionalidades do dispositivo.
• Interesses do usuário - Descreve os temas em que o usuário tem interesse em receber
informações. No caso mais genérico, basta o nome e a descrição do interesse.
Entretanto, caso seja necessário identificar melhor os interesses, deve-se definir
novos conceitos de interesse que estendam a classe de interesse mais genérica.
O perfil do usuário móvel é muito dinâmico. Devido a sua mobilidade, o usuário
pode alterar rapidamente sua localização e, por esse motivo, mudar os seus interesses.
Essa dinamicidade do perfil dificulta a representação do perfil. A forma de representação
do perfil escolhida para o trabalho será através de um arquivo XML devido a sua facili-
dade de alterar as informações. Pode ser considerado também mais fácil para a aplicação
recuperar as informações contidas no perfil.
122 27º Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos
3.4. Serviço Móvel de Notificação de Eventos Baseado em Contexto
A utilização de serviços diversificados baseados em contexto é muito limitada ou inexis-
tente para um conjunto pré-determinado de serviços de grande utilidade como informa-
ções de tráfego, clima, comércio, turismo, medicina, emergências e veicular. Os disposi-
tivos atuais possuem pouca ou nenhuma interatividade com eventos externos localizados
no ambiente em que este se encontra. A razão disto se deve ao fato do contexto ser pouco
usado para atividades desempenhadas por dispositivos e usuários. Alguns poucos casos
de utilização atualmente envolvem informações de localização, energia e identificação
(endereço IP, dados de coordenadas GPS), coletadas a partir do ambiente e do usuário.
Essa seção apresenta um trabalho que propõe uma especificação de modelo de sistema
e a construção de um protótipo com o objetivo de prover a notificação de eventos para
dispositivos móveis (aplicações e usuários) baseado no perfil e contextos do usuário e do
dispositivo/aplicação. O objetivo é prover a notificação de eventos como uma funcionali-
dade agregável no desenvolvimento de aplicações móveis.
3.4.1. Visão Geral
Em um futuro bem próximo, diversos ambientes serão capazes de fornecer informações e
serviços para usuários e aplicações móveis através da comunicação entre estes, a sensibi-
lidade e responsividade. Para isto, elementos computacionais terão este objetivo, fazendo
parte destes ambientes inteligentes. A computação ubíqua e a interação voltada para o
usuário 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 são integrados ao ambiente; 2) sensibilidade ao con-
texto, adaptabilidade e antecipação de tarefas, onde dispositivos possuem a capacidade de
reconhecer o usuário e seu contexto atual, mudar em resposta deste e prever o seu com-
portamento respectivamente e 3) a personalização de serviços, onde dispositivos podem
ser adaptados de acordo com as necessidades do usuário.
3.4.2. Objetivos
Aqui é apresentada a especificação de um servidor de eventos com o objetivo de geren-
ciar a notificação de eventos em aplicações móveis. O servidor de eventos é também
responsável por fornecer os SeRBIs (Serviços Remotos Baseados em Informações) para
aplicações móveis. As mudanças de perfil e contexto em aplicações móveis utilização o
serviço de eventos para a criação de eventos que podem ser processador e, em forma de
notificação, informando aplicações e serviços a sua ocorrência. A notificação, neste caso,
em forma de mensagem, reportará a ocorrência destes eventos para que a aplicação ou o
usuário possa tomar alguma iniciativa de adaptação.
3.4.3. Estado da Arte
Os serviços ubíquos, em geral, buscam prover características importantes para dispositi-
vos móveis. Algumas destas incluem: disponibilidade, transparência na utilização e na
transição (localização e tecnologia), sensitividade e confiança. A disponibilidade define
para aplicações acessibilidade independente do contexto e mudanças de estado, neces-
sidades e preferências do usuário, levando em consideração o contexto, a conectividade
com os serviços e a energia do dispositivo. O cientista Mark Weiser, considerado o pai da
Livro Texto dos Minicursos 123
computação ubíqua Weiser (1993a), apresenta em uma única frase o conceito de trans-
parência: uma boa ferramenta é exatamente aquela que está invisível para o usuário, não
invadindo sua consciência. O foco do usuário deve ser maior na atividade ao invés da
ferramenta, e a execução de tarefas deve ser feita sem a necessidade de atenção e ciência
da tecnologia por trás.
O modelo de comunicação baseado em eventos descreve um paradigma aplicável
na interconexão de elementos que compõem aplicações em ambientes ubíquos Weiser
(1993b), Dearle (1998) de uma maneira assíncrona. Estes ambientes em geral contem
aplicações e elementos de rede que são em geral heterogêneos e distribuídos. Eles são
heterogêneos devido ao fato destes poderem executar tipos de tarefas diferentes para o
usuário, requerendo conjuntos variados de componentes de hardware e software. Eles
também são distribuídos de tal forma que um único elemento de rede pode possuir uma
dependência sobre outros elementos, tais como obter informações do ambiente e executar
tarefas pelo usuário.
3.4.4. Serviço Móvel de Notificação de Eventos
O processo de gerenciamentode eventos e os resultados de um protótipo são apresentados
neste trabalho com o objetivo de demonstrar a viabilidade deste serviço em aplicações
móveis e também sua importância na computação ciente de contexto.
3.4.4.1. Arquitetura
O servidor de eventos utiliza uma arquitetura cliente-servidor composta de um compo-
nente localizado no dispositivo móvel e um servidor de dados remoto. A razão de o
sistema possuir dois componentes distribuídos 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 serviços ou aplicações em execução e os envia para o servidor
de eventos localizado no servidor de dados (SDE). Este servidor de eventos é responsável
por receber os eventos gerados no dispositivo, receber os eventos gerados no próprio ser-
vidor e enviar notificações de eventos ocorridos no lado do servidor de interesse a partir
de SeRBIs para as aplicações em execução ou diretamente para o usuário.
3.4.5. DroidGuide
Para fins de demonstração da viabilidade no gerenciamento de eventos em aplicações
ubíquas, o sistema proposto neste trabalho foi incorporado em uma aplicação turística de-
nominada DroidGuide. O DroidGuide utiliza uma arquitetura cliente-servidor composta
de clientes móveis na plataforma de software e sistema operacional Android e um servi-
dor de dados remoto na plataforma de desenvolvimento de aplicações Web App Engine
(GAE ) também da Google, executando sobre o ambiente de execução Python. Clientes
móveis comunicam com o servidor através de mensagens de requisição/resposta sobre o
protocolo HTTP. Dados são enviados do cliente para o servidor através de requisições do
tipo GET . Ao receber estas requisições, o servidor as processa e responde para o cli-
ente através do envio de documentos XML sobre HTTP. Neste protótipo, assume-se que
o dispositivo móvel possui capacidade de se conectar ao servidor utilizando um ponto de
124 27º Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos
Figura 3.15. A arquitetura do servidor de eventos para aplicações ubíquas.
acesso em uma das redes sem fio disponíveis (wireless LAN ou GPRS/EDGE/HSDPA).
Como o objetivo de simplificar e facilitar a integração das diversas funcionalidades
do sistema, o DroidGuide foi logicamente dividido em módulos com responsabilidades e
relacionamentos bem definidos. Cada módulo em geral é composto de um componente
localizado tanto no dispositivo móvel (em forma de cliente) quanto no servidor de dados
(em forma de serviço). Os principais módulos da aplicação são: 1) aplicação, responsá-
vel por gerenciar as principais telas, comandos da aplicação e define o relacionamento
funcional entre todos os outros módulos do sistema; 2) perfil, responsável por gerenciar
as informações e interesses do usuário; 3) contexto, que gerencia as informações sobre o
estado do usuário, informações climáticas e de localização; 4) comunicação, que provê
a comunicação de todos os módulos entre o cliente e o servidor; 5) escalonador, respon-
sável por apresentar atrações turísticas baseadas nas informações de perfil e contexto do
usuário; 6) servidor de eventos, responsável por obter informações de mudança de da-
dos de perfil e contexto e notificar o usuário de serviços relacionados a estas mudanças;
7) adaptação, responsável pela apresentação do conteúdo 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 captação e processamento de eventos in-
ternos (no dispositivo) e externos (no servidor de dados) e na entrega de mensagens de
notificação a partir de SeRBIs para aplicações e serviços interessados. O servidor de even-
tos localizado no dispositivo recebe as requisições de mudança de perfil e contexto dos
principais módulos do DroidGuide, as processa, criando assim um conjunto de eventos.
O módulo de comunicação é utilizado no envio e recepção de eventos para o servidor de
Livro Texto dos Minicursos 125
dados, onde os eventos serão também processados pelo serviço de eventos.
Todos os eventos criados por serviços e aplicações em execução no dispositivo
móvel são capturados pelo gerenciador de eventos e enviados ao SDE em períodos cícli-
cos configuráveis e adaptáveis de acordo com as necessidades das aplicações. Quando o
servidor de dados recebe os eventos vindos do dispositivo, o serviço de eventos os avalia e
efetua uma busca por SeRBIs relacionados que foram inicialmente subscritos pelo usuário
durante a aplicação. Por exemplo, quando o usuário subscreve em um serviço de clima,
ele estará apto a receber notificações deste a partir de eventos que forem gerados durante
a execução da aplicação. Suponha que a próxima atividade turística a ser executada pelo
usuário exija uma condição climática na qual o clima não pode estar chuvoso. Quando o
usuário se deslocar para a tal atividade turística, o servidor de eventos no dispositivo irá
receber uma requisição de mudança de contexto, neste caso relacionado à sua localização
e execução da atividade. Um evento será criado para representar a mudança de contexto
e será enviado para o servidor de dados, onde será processado. No processamento, o
SeRBI específico de clima será consultado, verificando o interesse por tal evento. Como
o serviço de clima subscrito pelo usuário possui um interesse pelo evento (tipo clima), o
SeRBI verificará as condições climáticas do local da atividade turística a ser visitada pelo
turista. Em caso de tempo chuvoso, o SeRBI criará uma notificação que será repassada
do servidor de dados para o dispositivo. Desta forma, o turista receberá uma notificação
informando-o da condição climática do destino, oferecendo-o, neste caso, alternativas
para a substituição da atividade em questão. As notificações em geral podem ser apre-
sentadas de diversas formas, desde uma simples notificação em texto para o usuário até
uma operação a ser executada por componentes ou serviços internos de aplicações. Este
processo pode ser visualizado na Figura 3.16.
3.4.6. Resultados
No protótipo desenvolvido, o servidor de eventos foi capaz de capturar mudanças de perfil
e contexto da aplicação. Os eventos foram capturados no dispositivo e enviados para o
serviço de eventos remoto. A partir dos interesses definidos pelo usuário no perfil, o esca-
lonador de atividades no servidor foi acionado para definir atividades turísticas de acordo
com os interesses do turista. A subscrição de SeRBIs também mostrou a viabilidade na
utilização destes em aplicações ubíquas. Os SeRBIs foram capazes de enviar mensagens
de notificação para o dispositivo em situações onde eventos remotos foram criados no
lado do servidor de dados.
3.4.7. Conclusões e Trabalhos Futuros
Conforme apresentado neste trabalho, o servidor de eventos possibilitou ao turista a subs-
crição de SeRBIs e a notificação de eventos relacionados às suas atividades que, no caso
do protótipo apresentado, as atividades turísticas executadas sobre uma determinada re-
gião. O servidor de eventos também foi capaz de receber eventos gerados a partir de ati-
vidades que foram selecionadas ou executadas pelo usuário, informando assim o servidor
de dados de eventos (SDE) mudanças de perfil e contexto do usuário como localização,
interesses, condições do usuário e informações de adaptação e de atividades. Os SeRBIs
subscritos pelo usuário foram capazes de receber eventos vindos do dispositivo móvel e
enviar notificações de volta para o dispositivo contendo informações úteis para o usuário
126 27º Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos
Figura 3.16. Demonstração do processamento de eventos ocorrendo no dispo-
sitivo e no servidor de dados do DroidGuide. Em (A), mudanças no ambiente
ou nos dados de perfil e contexto do usuário causam a ativação do servidor de
eventos (B). O serviço cria eventos e os envia para o servidor de dados (C), onde
o servidor de eventos os processa (D). O servidor busca por SeRBIs interessa-
das noseventos (E). Caso os SeRBIs subscritos pelo usuário dependam destes
eventos, eles serão ativados. Os SeRBIs também podem gerar eventos em situ-
ações onde ocorram mudanças de contexto remoto (F), criando assim eventos
no lado do servidor de dados(G). Estes eventos criados no servidor de dados
e ativações de SeRBIs causam a criação de mensagens de notificação (H) que
serão entregues ao cliente (I). O dispositivo então recebe a mensagem de notifi-
cação, onde esta é repassada para o componente ouvinte ou diretamente para o
usuário (J).
e para a aplicação em execução.
Dentre várias melhorias no modelo proposto inclui a configuração do perfil de pro-
cessamento de eventos no dispositivo e no servidor remoto com o objetivo de aperfeiçoar
a utilização dos recursos presentes nos dispositivos móveis como bateria e processador e
custo de transmissão de dados na rede. Este perfil de processamento incluiria a opção de
definir os nós responsáveis pelo processamento de eventos mediante as condições em que
o dispositivo se encontra, tais como o acesso á rede (qualidade do canal, tipo), custo de
transmissão (valor, consumo de energia), densidade de eventos sendo gerados.
Livro Texto dos Minicursos 127
Figura 3.17. a) interface commapas apresentando as atrações turísticas, b) mapa
mostrando uma possível rota entre as atividades turísticas.
Figura 3.18. c) notificações de mensagens e d) apresentação de conteúdo ao
usuário a partir de atrações.
128 27º Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos
3.5. Tratamento de Contextos Coletivos em Aplicações Cientes de Contexto
Existem diversas aplicações em que ações para um grupo de usuários deverão ser reali-
zadas. Dentre elas podemos imaginar os cenários de uma casa inteligente compartilhada
por uma família, apresentações públicas (concertos, teatros, palestras), escritórios com-
partilhados, guias turísticos utilizados em excursões, dentre outras. Todas as aplicações
citadas possuem a seguinte característica em comum: embora cada entidade de um grupo
possua contextos individuais, as ações realizadas pelas suas aplicações cientes de con-
texto devem levar em consideração não só tais entradas, mas também os contextos de
outros elementos do grupo e do ambiente ao qual o indivíduo pertence [Roy et al. (2006),
Shin &Woo (2005)]. Nas aplicações coletivas problemas podem ser encontrados em situ-
ações onde os contextos dos diferentes usuários são discordantes ou incompatíveis entre
si e/ou com o ambiente a ser adaptado. Esses são precisamente os problemas que deverão
ser resolvidos em um trabalho sobre o tratamento de contextos coletivos em aplicações
cientes de contexto. O objetivo geral do trabalho é o de conseguir soluções inteligentes,
que consigam identificar a ocorrência dos problemas relacionados e resolvê-los de forma
a maximizar a satisfação individual e coletiva dos usuários.
3.5.1. Introdução
Existem diversas aplicações cientes de contexto nas quais adaptações de serviços para um
grupo de usuários simultâneos deverão ser realizadas. Essas são as chamadas aplicações
cientes de contexto coletivas, e a ocorrência das mesmas em cenários ubíquos geram situ-
ações particularmente interessantes. Os problemas típicos da colaboração entre usuários
de uma mesma aplicação são agregados a todos os desafios específicos da computação
ubíqua, tais como escassez de recursos e dinamicidade das configurações.
3.5.2. Conceitos Relacionados
As aplicações coletivas ocorrem em sistemas cientes de contexto que consideram para
a adaptação de suas tarefas os interesses e dados contextuais de cada membro de um
grupo de usuários simultaneamente associados. É interessante notar que não importa qual
o tipo de aplicação considerada ou mesmo como os usuários se associaram à mesma.
Importa apenas que a aplicação reconheça que em um dado momento, existem dois ou
mais usuários 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 informações sobre os ambientes
compartilhados bem como os dados que refletem as condições próprias de cada elemento
de um grupo. Tais contextos são utilizados pelas aplicações coletivas para realizarem suas
adaptações. Existem dois tipo de dados contextuais coletivos: (i) Contextos ambientais:
são dados que representam os ambientes (físico e/ou computacional) e seus elementos,
compartilhados pelos usuários envolvidos. Representam também a relação entre o grupo
de usuários e o ambiente, caracterizando situações tais como propriedades, compartilha-
mentos, associações temporárias ou permanentes, dentre outras. Apresentam o mesmo
valor para todos os usuários associados. Condições climáticas, estação do ano e a uti-
lização de elementos do ambiente são exemplos de contextos desse tipo; (ii) Contextos
próprios: são dados referentes ao usuário, os quais refletem suas características, preferên-
Livro Texto dos Minicursos 129
cias e situações pessoais. Devem explicitar ainda a relação entre o usuário e os demais
elementos de seu grupo. Cada usuário pode apresentar um valor próprio. Fome, sono e
grau de parentesco são alguns tipos possíveis de contextos próprios.
A combinação de dados contextuais coletivos deve ser utilizada para realizar a
adaptação das tarefas da aplicação. No entanto, a divergência entre os mesmos pode le-
var à ocorrência de conflitos de interesse. Ao analisar os valores de entrada de contextos
coletivos apresentados por cada um dos usuários, bem como os recursos e características
correntes dos ambientes físicos e computacionais compartilhados, a aplicação poderá en-
trar em um estado de inconsistência, incapaz de decidir o que deverá ser feito quanto às
adaptações a serem realizadas de maneira a atender as demandas individuais e coletivas
ao mesmo tempo. Nesse caso, diz-se que ocorreu na aplicação um conflito coletivo.
Identificada a ocorrência de um conflito coletivo, a aplicação deverá encontrar
formas, simples ou sofisticadas, para resolver a inconsistência ou impasse. A execução
de uma técnica ou algoritmo que permita atender de maneira inteligente e conveniente as
diferenças geradas pelos dados contextuais coletivos utilizados é denominada tratamento
de contextos coletivos.
Para tratar conflitos coletivos é necessário que a solução de conciliação proposta
modifique de alguma maneira o conjunto de tarefas da aplicação. Nesse caso, deve-se
escolher em quais aspectos das tarefas serão realizadas tais alterações, permitindo assim a
escolha do algoritmo de conciliação mais adequado. Tais aspectos são chamados os níveis
de atuação e alguns exemplos para os mesmos são os parâmetros, a ordem, o agrupamento
e a composição das tarefas. Vale ressaltar que alterações nas tarefas podem levar em
última instância a modificações nos ambientes físicos 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 estão focados em uma única apli-
cação, um conjunto fechado de contextos e arquiteturas de implementação específicas, a
proposta deste trabalho possui uma visão mais ampla e dinâmica, não sendo portanto par-
ticular para aplicações ou contextos e pretendendo oferecer uma gama de possibilidades
de implementação.
Roy et al. em [Roy et al. (2006)] apresentam uma solução para construção de uma
casa inteligente que considera as atividades e localizações de múltiplosmoradores. A con-
tribuição desse trabalho está em oferecer suporte aos diferentes participantes capturando
as correlações e interações entre seus movimentos e atividades, e proporcionando um am-
biente adaptado a todos, sem conceder preferências. Ao contrário da proposta apresentada
por Roy et al., este trabalho apresenta uma solução para tratamentos de conflitos coletivos
genérica, possível de ser implementada para qualquer aplicação

Continue navegando