51
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 RezendedeOliveira,RandeArieviloMoreira,RafaelGuimarãesSiqueira,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, providingservices 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çõesrelevantes sobre as entidades (e.g., pessoas, lugares, objetos)

Computação Ubíqua Ciente de Contexto- Desafios e Tendências - AAF Loureiro

Embed Size (px)

DESCRIPTION

Computação Ubíqua

Citation preview

  • Captulo

    3

    Computao Ubqua Ciente de Contexto: Desafiose Tendncias

    Antonio Alfredo Ferreira Loureiro, Ricardo Augusto Rabelo Oliveira , ThaisRegina de Moura Braga Silva, Waldir Ribeiro Pires Jnior, Lillian BrandoRezende de Oliveira,Rande Arievilo Moreira,RafaelGuimares Siqueira,BrunoPontes 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 computao ubqua um novo paradigma no qual dispositivos com capacidade de

    processamento e comunicao so embutidos nos elementos do dia-a-dia, provendo ser-

    vios 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 apresen-

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

  • 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 infor-

    maes 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 apre-

    sentam 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 vezmais comuns devido aos avanos na fabricao de componentes eletrnicos. Esses dis-positivos possuem uma considervel capacidade de processamento, com recursos paracomunicao sem fio e armazenamento de dados. Essa ltima caracterstica permitiu ocrescimento do uso de equipamentos portteis capazes de lidar com dados multimdia. Es-ses dispositivos se popularizaram como handhelds, PDAs, e, atualmente, tm aparecidocomo smartphones e celulares de grande capacidade computacional. Alm das funciona-lidades originais, como capacidade de comunicao via telefonia celular, tais dispositivostambm possuem diversas funcionalidades e interfaces como GPS, rdio e TV, tocado-res de udio e cmeras fotogrficas digitais. Esses dispositivos vm sendo usados emaplicaes que envolvem indstria, medicina, uso pessoal, etc.

    Uma das principais reas de pesquisa dentro da computao ubqua a computa-o ciente do contexto (context-awareness). A computao ciente ou sensvel ao contexto(Context-Aware Computing) define uma rea de pesquisa relativamente recente, que pos-sui aplicaes em diferentes cenrios computacionais e que apresenta desafios de imple-mentao importantes, os quais tm sido o alvo da ateno de pesquisadores provenientesde diferentes partes do mundo. A proposta desta rea , em linhas gerais, elaborar umamaneira de coletar para dispositivos computacionais, entradas capazes de refletir as condi-es atuais do usurio, do ambiente no qual o mesmo se encontra e do prprio dispositivocomputacional utilizado, considerando tanto suas caractersticas de hardware, como tam-bm de software e de comunicao. Tais entradas so os chamados contextos. Vriospesquisadores publicaram trabalhos no incio da dcada de 90, descrevendo definiespara 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 situa-o de entidades (pessoa, lugar ou objeto) que sejam consideradas relevan-

    tes para interao entre um usurio e uma aplicao (incluindo o usurio e

    a aplicao)".

    Essa uma das definies mais aceitas e utilizadas atualmente por pesquisadoresda rea, embora vrias outras tenham sido propostas e discutidas. Pode-se observar que a

    100 27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

  • definio bastante imparcial quanto aos tipos e variedades de dados que podem ser con-siderados como contextos, sendo ampla o suficiente para aceitar as diversas necessidadesespecficas de cada aplicao. Alm disso, os autores tambm no restringem as fontesde contextos possveis de serem utilizadas, permitindo que tais dados reflitam a situaode qualquer entidade relevante para cada caso em particular. Finalmente interessantenotar como os autores conseguem apresentar uma definio precisa para o termo, sem anecessidade de listar tipos ou classes especficas de contextos.

    Embora os primeiros artigos na rea de computao sensvel ao contexto tenhamsido publicados no incio da dcada de 90, essa rea de pesquisa continua ainda hojebastante ativa. Possui muitas questes em aberto, as quais demandam intenso trabalhode pesquisa para que sejam amplamente entendidas, encontrando-se as melhores e maiseficiente tcnicas e solues relacionadas. A seguir esto listados alguns dos desafios depesquisa ainda existentes divididos em algumas sub-reas:

    Sensoriamento: Escolha e incluso dinmica dos contextos mais apropriados a cadaaplicao; Tcnicas para coleta de contextos fsicos, lgicos e virtuais; Atribuiode semntica uniforme aos contextos utilizados; Identificao e escolha de fontesde contextos;

    Modelagem: Modelo de arquitetura para sistemas cientes de contexto; Modelo pararepresentao uniforme da sintaxe dos dados de contexto coletados; Modelo dearmazenamento de dados contextuais; Modelo de comunicao adotado entre di-versos usurios ou aplicaes;

    Qualidade: Qualidade de contexto (QoC); Qualidade de servio (QoS); Qualidadedas fontes de contexto; Gerenciamento de aplicaes cientes de contexto; Trata-mento de falhas; Automatizao de tarefas; Utilizao de algoritmos de aprendi-zado; Identificao e tratamento de contextos individuais conflitantes; Identificaoe tratamento de contextos coletivos conflitantes;

    Segurana: Segurana para troca de dados entre usurios e aplicaes; Confiabili-dade das fontes de contextos; Segurana da Informao de contexto;

    Existem publicados na literatura vrios trabalhos descrevendo diferentes aplica-es para a computao ciente de contexto. A seguir esto listadas algumas das principaisideias 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 aspec-tos.

    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 descrevemcomo utilizar elementos de contexto para tornar a experincia de turistas mais simples,personalizada e rica de informaes e detalhes. Em particular, o trabalho citado apre-senta uma plataforma chamada GUIDE, construda para atender a demandas especficasde turistas que viajam para conhecer cidades diferentes. Os requisitos para a ferramenta,tais como flexibilidade, uso de informaes sensveis ao contexto, suporte para informa-es dinmicas e servios interativos, foram obtidos com especialistas na rea de turismo.

    Livro Texto dos Minicursos 101

  • O sistema combina tecnologias de computao mvel com uma estrutura de rede semfio para apresentar aos visitantes informaes adaptadas aos seus contextos pessoais eambientais. Testes foram realizados por meio de utilizao do sistema proposto por espe-cialistas e tambm por usurios em potencial. O objetivo principal dos testes era revelaro grau de usabilidade do sistema, bem como pontos em que melhorias diversas deveriamser realizadas.

    Schilit et al [Schilit & Theimer (1994)] descrevem o Active Map Service", umaaplicao que mantm clientes informados sobre mudanas em seus ambientes. Mapasativos descrevem a localizao e as caractersticas de objetos dentro de alguma regio en-quanto os mesmos se modificam com o passar do tempo. Um aspecto importante, tratadocom cuidado pelos autores do trabalho, a questo de escala: mapas ativos devem trataratualizaes e consultas sobre regies suficientemente grandes para satisfazer o interessede clientes, assim como deve tratar picos de carga em regies com intensa movimentaode usurios. Alm disso, a soluo proposta faz uso de endereamentos e roteamentosmulticast, uma vez que detecta grupos de usurios com interesses por atualizaes co-muns. Para garantir que no haver sobrecarga nos canais de localizao, prov limitesgarantidos no uso da largura de banda disponvel.

    Embora possa ser utilizada por qualquer aplicao computacional para a qual sejarelevante, o uso da sensibilidade ao contexto especialmente importante para uma reaem particular: a computao ubqua e pervasiva. Este tipo de computao define umanova maneira de relacionar usurios humanos e dispositivos computacionais. Essa umarea recente de pesquisa que prev a disponibilizao de computao e comunicao semfio o tempo todo e em todo lugar, permitindo que tais capacidades sejam incorporadas aelementos do dia-a-dia e utilizadas de maneira transparente [Greenfield (2006)].

    Especificamente, a mobilidade permitida aos usurios e seus objetos computacio-nais em aplicaes ubquas, faz com que o uso de contexto seja ainda mais importante. Ascaractersticas utilizadas como entradas em tais solues podero se modificar a qualquerinstante, e essa informao crucial para que os melhores servios sejam oferecidos aosusurios. Tais modificaes podem ser observadas em situaes nas quais o prprio usu-rio se movimenta de um local para outro, modificando-se assim as condies do ambientecorrente em variados aspectos (condies fsicas, recursos fsicos disponveis, recursoscomputacionais disponveis, fontes de contexto, conectividade, dentre outros) ou aindaquando outros usurios e/ou recursos se movimentam para dentro e para fora da rea deinteresse da aplicao. Interessante notar portanto o aspecto dinmico do ambiente dasaplicaes, o qual faz da computao ciente de contexto uma aliada importante para omelhor funcionamento dos sistemas ubquos. A restrio de recursos disponveis paraexecuo das aplicaes outro fator importante a ser considerado, sendo bastante afe-tado pela caracterstica dinmica das aplicaes ubquas e pervasivas. Uma vez que osrecursos e servios disponibilizados para os usurios se modificam ao longo do tempo,e os dispositivos utilizados so em geral pequenos, com poucas capacidades computaci-onais, de energia e memria, os sistemas desse tipo devem realizar um gerenciamentode recursos consistente de maneira a prolongar o tempo de vida da aplicao, mantendoos nveis de qualidade de servio desejados pelos usurios. O uso de contextos maisuma vez importante de ser utilizado como forma de manter as aplicaes conscientes dosrecursos disponveis e demandados. Eles sero usados como entradas por algoritmos de

    102 27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

  • gerenciamento, capazes de comparar e escolher o que precisa e o que pode ser feito paraos usurios.

    O objetivo deste minicurso apresentar o estado da arte na pesquisa em algunscampos da pesquisa usando o computao ciente do contexto. A seo 3.2 apresentadois trabalhos sobre a identificao de fontes de contextos e duas tcnicas de aquisiode dados contextuais atravs da anlise do sinal de rdio usado na comunicao semfio. A seo 3.3 mostra a caracterizao do usurio de dispositivos mveis atravs deperfis. A seo 3.4 prope um sistema de a notificao de eventos para dispositivosmveisbaseado no perfil e contextos do usurio. A seo 3.5 lida com o conceito de contextoscoletivos, em situaes nas quais os contextos dos diferentes usurios so discordantesou incompatveis entre si e/ou com o ambiente a ser adaptado e necessrio lidar comos problemas relacionados de maneira a maximizar a satisfao individual e coletiva dosusurios. A seo 3.6 aborda a segurana em dois tpicos, sobre confiabilidade dos dadoscompartilhados e a seleo adaptativa de protocolos de segurana. Por fim, a seo 3.7possui 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 con-textuais por parte dos dispositivos ubquos so tarefas importantes em sistemas ubquoscientes de contexto. Cada tipo de dado contextual a ser utilizado apresenta seus prpriosdesafios de aquisio, processamento, co-relao com outros dados, verificao de quali-dade, definio de sintaxe, associao semntica, dentre outros aspectos. Em particular,essa seo descrever trabalhos que prope solues para aquisio de dois tipos de con-textos importantes e frequentemente utilizados pelas aplicaes: a qualidade do canal decomunicao sem fio e a localizao.

    Sistema de Posicionamento Hbrido e Ubquo para Dispositivos Mveis: Um sis-tema de posicionamento uma ferramenta usada para determinar e registrar a loca-lizao de um objeto na superfcie da Terra. Existem sistemas de posicionamentopara ambientes internos e externos, alguns operam apenas em reas delimitadasenquanto outros operam sobre toda a superfcie do globo. Seu funcionamento, nor-malmente, 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 ousistema de coordenadas. O objetivo dessa seo desenvolver um sistema de posi-cionamento hbrido e ubquo para dispositivos mveis. Um sistema caracterizadocomo 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 in-ferir a posio do dispositivo. A ubiquidade do sistema est no fato de que o mesmodever proporcionar informao contnua de posio, alternando entre os sinais uti-lizados, para obter localizao em ambientes internos e externos, mesmo que cadatecnologia utilizada proporcione uma preciso diferente no posicionamento do dis-positivo.

    Identificao de Eventos no Canal de Comunicao em Redes IEEE 802.11: A qua-lidade da comunicao em sistemas de comunicao sem fio depende de diversosfatores e ajustar e/ou alertar o usurio sobre as condies da rede um importante

    Livro Texto dos Minicursos 103

  • servio para este tipo de dispositivos. A qualidade percebida pelo usurio dependedo contexto de rede, o qual pode ser definido como os eventos que possuem um im-pacto significativo na comunicao sem fio. A identificao do comportamento docanal de comunicao necessria para obter a descrio deste contexto. Devido scaractersticas intrnsecas da propagao do sinal transmitido, difcil medir e infe-rir o contexto bsico das redes sem fio, como por exemplo, predizer quando a baixaqualidade do sinal de rdio causada por interferncia ou efeitos de atenuao de-vido ao ambiente da comunicao. Essa sub-seo apresenta um novo mtodo parao gerenciamento centrado no usurio em redes sem fio que usam o padro IEEE802.11b/g, determinando a presena de mobilidade e interferncia na comunicao.O mtodo usa dois grficos de controle estatstico, MCEWMA (Moving CenterlineExponential Weighted Moving Average) e o MCEWMV (Moving Centerline Expo-nential Weighted Moving Variance), associados com a anlise de resoluo mltiplacom 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 lo-calizao de um objeto na superfcie da Terra. Existem sistemas de posicionamento paraambientes 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 superfcie do globo [Dittmer (2005)]. Seufuncionamento, normalmente, se baseia na captura de sinais, de rdio, infra-vermelho oude satlites, para determinar a posio de um dispositivo, de acordo com algum referencialou sistema de coordenadas.

    Muitos dispositivos mveis mais recentes j possuem capacidade de posiciona-mento atravs do Global Positioning System (GPS) [Dittmer (2005)], porm, o funcio-namento correto do mesmo est praticamente restrito a ambientes externos pois no possvel receber o sinal dos satlites quando dentro de alguma construo ou com visi-bilidade reduzida do cu [Dittmer (2005)]. Devido essa limitao do GPS e ao fato degrande parte dos dispositivos ainda no serem compatveis com o sistema GPS, torna-sejustificvel a implementao de um Wireless Positioning System (WPS). Esse sistemautilizar a densa malha de redes sem fio dos padres IEEE 802.11b e 802.11g j insta-ladas nas cidades para prover informaes de posio. Tambm dever funcionar dentrode construes e exigir pouco ajuste, ao contrrio de alguns sistemas de localizao paraambientes 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 pro-jeto [Bahl & Padmanabhan (2000)], que registrava impresses digitais de sinais de redesWi-Fi para determinar a posio de um dispositivo dentro de uma construo. A partirdesse trabalho, surgiram outras tentativas de se determinar a posio de dispositivos uti-lizando sinais de Wi-Fi, e mais recentemente, essas iniciativas passaram a tentar mapear

    104 27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

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

    O nmero de algoritmos de posicionamento aplicveis bem menor quando sedesconhece a real posio dos pontos de acesso da rede, uma vez que muitos se baseiamem mtodos probabilsticos [Haeberlen et al. (2005)], e requerem um grande volume deinformaes que no podem ser obtidos nesse caso.

    Com a posio dos pontos de acesso desconhecida existe um projeto da Intel cha-mado Placelab que comparou trs algoritmos de posicionamento ao mapear trs bair-ros com caractersticas diferentes em cidades distintas dos Estados Unidos [Cheng et al.(2005)].

    Dentre os sistemas de posicionamento implementados para dispositivos mveisespecificamente, podemos citar o [Ericsson (n.d.)], que utiliza informaes de sinais decelular GSM [GSMWORLD (n.d.)], para prover informao de posio, porm com umapreciso menor do que no caso de um WPS. Mas principalmente, podemos citar o [Na-vizon (n.d.)], que utiliza informaes de GPS, WPS e de redes de celular para proverinformaes de posio. Seu funcionamento est praticamente restrito aos Estados Uni-dos, porm a idia de utilizar as trs abordagens em um mesmo sistema relevante econstituiu um dos objetivos deste trabalho.

    Outro desafio deste projeto foi o mapeamento da regio 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 paraarmazenamento e sincronizao dos mapas. Para tal, foi implementado um cliente cujofuncionamento transparente e no influencia no uso normal do aparelho. Parte do tra-balho [Akella et al. (2007)] consistiu em comprovar que a criao de um nmero imensode redes sem fio, no-planejadas e no-gerenciadas, gerou um ambiente catico, no qualpraticamente toda rede sem fio sofre interferncia de outra. Alm disso, o artigo tambmexplicita 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 fato-res climticos e outros praticamente desconhecidos. Por essas razes, tambm de sumaimportncia 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, foinecessrio um estudo prvio de detalhes de implementao da plataforma Android, de-vido a algumas peculiaridades acerca da programao para esta plataforma. Em seguida,a primeira etapa da implementao, que corresponde ao cliente de mapeamento, pde serdesenvolvida. Essa aplicao basicamente coleta as seguintes informaes em cada pontomapeado atravs de coordenadas de GPS, redes Wi-fi detectadas naquele ponto, principal-mente endereo Mac, Received Signal Strength Indicator (RSSI) e informaes de clulade celular, principalmenteMobile Country Code (MCC), Mobile Network Code (MNC) eCell Tower ID (CID);

    Alm dessas informaes, uma parte importante da aplicao a insero de mar-

    Livro Texto dos Minicursos 105

  • cadores que em conjunto representam a localizao simblica de um conjunto de pontos,como por exemplo: pas - estado - cidade - bairro - estabelecimento. O cliente devepossibilitar a insero e remoo desses marcadores, que junto com as informaes deambiente, citadas anteriormente, representam a "impresso digital"de determinado ponto,e que ser usada para o posicionamento, posteriormente. A Figura 3.1 mostra o emuladordo 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 respon-svel por esta operao de submisso e armazenamento dos mapas, foi a segunda etapade implementao. Ao receber os mapas de um cliente, o servidor deve armazen-los deforma que possam ser encontrados facilmente, quando for necessrio consult-los. Paralimitar o espao de busca do algoritmo de posicionamento, foi utilizada uma combinaoentre o MNC, MCC e o CID, que nica para qualquer clula GSM no mundo, paraindexar os arquivos de mapas. Nesse momento, o servidor tambm deve atualizar umarepresentao grfica de todos os mapas j coletados, que utiliza sobreposio de mapase uma API do Google Maps [Google (n.d.)], para a representao dos mapas. A Figura3.2 demonstra a representao em tempo real dos pontos mapeados ao redor do Institutode Cincias Exatas (ICEX) da Universidade Federal de Minas Gerais (UFMG):

    A prxima etapa no desenvolvimento do sistema a implementao do clientede posicionamento. Ele basicamente interage com o servidor, enviando as informaesdo ambiente onde se encontra, para depois receber as informaes de posio, calcula-das pelo servidor. Depois de receber suas informaes de localizao, o cliente desenhasua posio em um mapa, utilizando funcionalidades integradas na prpria plataformaAndroid para realizar sobreposio de mapas. A Figura 3.3 e 3.4 mostram o cliente deposicionamento em execuo no emulador.

    Finalmente, a ltima etapa do desenvolvimento a implementao da interfacedo servidor que trata as requisies de posio do cliente de posicionamento. Ao rece-ber uma requisio, o servidor executa um algoritmo que atribui pontos e pesos, paraos pontos mapeados, de acordo com a similaridade com os dados de ambiente, enviadospelo cliente na requisio de posio. Baseado na soma dessas pontuaes, ele determina

    106 27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

  • Figura 3.2. Mapas em tempo realFigura 3.3. Cliente de

    Posicionamento

    qual o ponto de maior probabilidade de representar a posio atual do dispositivo e re-torna 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 dasobreposio de mapas, como pode ser visto na Figura 3.5.

    Aps essas etapas de desenvolvimento, o sistema de posicionamento j capaz demanter o mapeamento colaborativo funcional e sempre atualizado e inferir posies paraos 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 mesmodeve operar. Como rea para testes preliminares, optou-se por mapear as redes sem fio aoredor do prdio do ICEX, no campus da UFMG. Comprovou-se que esta era uma regioboa para a realizao dos testes, devido densidade de pontos de acesso nessa rea, o quecontribui para a preciso do sistema.

    O processo de testes do sistema foi prejudicado pela falta de um dispositivo reale porttil que executasse o sistema operacional Android, porque as informaes de redessem 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 naTabela 3.1:

    Em 88% dos casos o sistema retornou como posio para o dispositivo o ponto querepresentava aquele mais prximo de sua posio real. Em 8% dos casos ele retornou umponto imediatamente vizinho, o que representa um erro de aproximadamente 10 metrospara a densidade de pontos do mapeamento usada. Outros dois testes encontraram umapreciso menor do que a de 10 metros, porm em nenhum dos casos o erro superou os40 metros. As variaes na preciso do sistema so observadas porque existem pontos no

    Livro Texto dos Minicursos 107

  • Figura 3.4. Sobreposi-

    o de mapas no cliente

    Figura 3.5. Posio

    de um dispositivo em

    tempo real

    Nmero de testes Erro (em nmero de pontos de distncia)44 04 11 21 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 obtidasdurante os testes de posicionamento, o que provocado por interferncias diversas, e atfatores 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 eaplicaes em qualquer lugar e a qualquer momento. Sua utilizao deve prover o usu-rio com acesso permanente uma rede fixa ou mvel independentemente de sua posiofsica. Dispositivos mveis com vrias interfaces de rede para acesso a diferentes tecno-logias de rede sem fio esto cada vez mais populares e isso introduz a flexibilidade daseleo e acesso aos diferentes tipos de redes. Das tecnologias de redes sem fio pode-seidentificar 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 fiolocais, definidas no IEEE 802.11. Um usurio portando um smartphone com diferentesinterfaces 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

    108 27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

  • atendido depende de diversos fatores, que no so encontrados na comunicao comfio. Por exemplo, a variao do nvel do sinal recebido que causam perdas de dados emudanas continuas na velocidade das interfaces de rede sem fio. Somado a isso, osdispositivos possuem restries com relao ao consumo de energia. O resultado final sonovos requisitos para o funcionamento adequado das aplicaes. Dadas essas diferenasna comunicao da rede com fio, o desenvolvimento de aplicaes deve ser feito com focoem atender esses requisitos. Para isso, as informaes do ambiente da comunicao soessenciais.

    3.2.2.1. Motivao

    Para classificar a qualidade da comunicao, primeiro necessrio identificar as mtricaspara medir e qual o tipo de impacto que o ambiente de comunicao sem fio causa sobreela. Essas mtricas descrevem a relao entre o nvel de energia do sinal recebido e aintegridade dos dados transmitidos. As variaes na qualidade da comunicao possuemdiferentes impactos sobre o desempenho da aplicao, pois as interfaces de rede sem fiopossuem variadas estratgias para lidar com os quadros perdidos. As seguintes mtricasidentificam 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 in-terface de rede sem fio possui um conjunto de modems, que so selecionados deacordo com as caractersticas do ambiente da comunicao;

    Vazo Efetiva: a vazo dos dados efetiva percebida pela aplicao durante a comunica-o, medida em MBps. Este leva em conta a sobrecarga causada pelas retransmis-ses dos quadros e das mensagens de controle dos protocolos de rede, assim comoa mudana do modem utilizado;

    Atraso: medida do impacto causado pelas sucessivas retransmisses e as mudanas nasinterfaces de rede sem fio, como por exemplo a escolha dos modems, falhas derecebimentos de quadros e etc.;

    Variao no atraso: variao do atraso, que associada a diferentes atrasos, geradospela variabilidade presente na comunicao sem fio. A variao de atraso aumentaquando existe uma grande variabilidade na qualidade da comunicao.

    Aqui define-se o conceito de contexto da comunicao. Este contexto compostopelo ambiente no qual receptor e transmissor se encontram e por suas interfaces de redesem fio do padro IEEE 802.11 usadas para a comunicao. Esse ambiente pode ser des-crito pelos impactos que so causados no sinal recebido na interface de rede sem fio du-rante a comunicao. As interfaces de rede sem fio possuem parmetros e programaesinternas que reconfiguram seu funcionamento automaticamente, em resposta ao ambiente.Por exemplo, a especificao do IEEE 802.11 deixa a cargo do fabricante da interface derede a escolha do algoritmo de seleo de velocidade. A escolha da velocidade pode serfeita com o objetivo de manter a comunicao ativa, pois velocidades menores permitem

    Livro Texto dos Minicursos 109

  • o funcionamento da interface em modo mais robustos, que suportam melhor as variaesno sinal. Em outras situaes, a velocidade maior pode ser preferida em detrimento dapermanncia da conexo.

    A otimizao da qualidade da comunicao numa rede sem fio essencial paraa melhoria do desempenho das aplicaes que usam a comunicao ubqua. Dentre asestratgias usadas para tal, a adaptao o elemento central. A implementao das es-tratgias adaptativas pode ocorrer em diversos nveis, sobre os dados transmitidos, sobrealguma funcionalidade da aplicao ou na reconfigurao da interface de rede sem fio. Asestratgias envolvidas, podem ser, por exemplo, a escolha de algoritmos adequados paraa compresso dos dados, o uso de diferentes algoritmos nas aplicaes dependendo dascondies 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 fionas proximidades so fontes de interferncia. Os prprios objetos presentes no ambienteonde a comunicao acontece afetam as caractersticas da comunicao. A mobilidadedos dispositivos expe as interfaces diferentes efeitos de propagao e atenuao dosinal. Contudo, muito difcil inferir a partir do sinal recebido, quando a queda na qua-lidade se deve interferncia ou mobilidade. A informao sobre o contexto da co-municao essencial para uma adaptao da mesma, no intuito de se atingir o melhordesempenho das aplicaes.

    A descrio do contexto da comunicao um fator importante para se atingiruma 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 de11MBps. Os crculos verdes mostram a potncia do sinal, a cor mais escura indica maisenergia e a mais clara, menos energia. O deslocamento do usurio para longe do pontode 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 umaestratgia de melhoria que pode ser feita: aumentar da potncia da antena do ponto deacesso, 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 es-tratgia 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 comu-nicao com um deles. O sinal que chega sobre este usurio a soma do sinal oriundodos dois pontos de acesso. Neste caso, como no est conectado ao segundo ponto deacesso, o usurio no pode evitar a interferncia causada, como mostrado na Figura3.7(a). A Figura 3.7(b) mostra o impacto da presena de interferncia na velocidade decomunicao, a qual diminui devido s sucessivas perdas. Caso no seja identificado queesta diminuio de velocidade causada pela interferncia, a Figura 3.7(c) mostra que amesma estratgia adotada na soluo anterior pode gerar mais interferncia, acarretandoem problemas de comunicao em outros elementos na rede.

    A importncia de conhecer os efeitos destes eventos acentuada pela necessidadede identificar quando a interface de rede sem fio pode mudar seus modos de funciona-mento, possibilitando assim para melhor lidar com essas situaes limite. Quando a inter-face identifica uma qualidade ruim do sinal recebido, ela aciona o algoritmo que escolhea velocidade, modificando a vazo ideal. Esta mudana causa um impacto tambm na

    110 27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

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

    (c) Aumento da potncia de transmisso, re-cuperao da velocidade.

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

    (a) Usurio em regio sob efeito de interfern-cia.

    (b) Queda na velocidade devido a erros de co-municao causados pela interferncia

    (c) Aumento da potncia de transmisso, inter-ferncia causa perda de conexo em outros ele-mentos .

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

    vazo efetiva e no atraso presente. Em ambientes com muita interferncia, esse algoritmopode ser ativado diversas vezes, ocasionando mais mudanas nos modems e aumentandocom isso a variao do atraso. Em ambientes com mobilidade, e sem interferncia, essaescolha dos modems pode mudar de maneira gradual, com a velocidade diminuindo pro-porcionalmente ao deslocamento. De posse dessa informao, os usurios e as aplicaespodem adaptar a interface, de maneira a melhorar essa vazo, como por exemplo, aumen-tar da potncia de transmisso em situaes de deslocamento. A deciso adequada develevar em conta as restries dos dispositivos e os requisitos da aplicao.

    Livro Texto dos Minicursos 111

  • Para auxiliar na identificao da estratgia correta de adaptao, neste ponto sodefinidos os eventos do contexto da comunicao. Esses eventos so a presena de mo-bilidade e de interferncia, de maneira no exclusiva, no contexto da comunicao. Adistino destes eventos se faz necessria por causa das possveis estratgias a serem ado-tadas na melhoria da comunicao.

    A justificativa em se utilizar somente a variao do sinal para a deteco da movi-mentao devido ao fato que existe uma relao direta entre essa variao e a qualidadeda comunicao percebida pelas aplicaes. Alm disso, nem todo sistema computacional dotado de ferramentas de localizao. Por exemplo, considerando somente a variaodo sinal, existem situaes onde tal movimentao no efetua nenhum impacto. O impor-tante para este trabalho identificar que a variao do sinal pode ser associada a algumtipo 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 dosinal sejam identificadas.

    Para uma identificao mais precisa destes eventos, considerado o ambiente decomunicao interno, no qual a velocidade de deslocamento entre o receptor e o trans-missor limitada e as fontes de interferncia so as mais comuns de se encontrar em umambiente 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 forneceum mecanismo que permite distinguir em tempo real e com alta preciso eventos de mo-bilidade e interferncia a partir do monitoramento constante dos valores de sinal medidona 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. Essaseparao pode ser associada distncia, velocidade de deslocamento, s caractersticasdo ambiente da comunicao e s fontes de interferncia. O sinal transmitido chega aoreceptor como uma ou mais ondas que foram afetadas pelos efeitos de propagao no am-biente, sendo este fenmeno conhecido como multipath. Dessa maneira, essas ondas socomponentes que formam o sinal recebido. Se no existirem obstculos entre o receptore o transmissor, algumas dessas ondas sero consideradas como principais na transmis-so, somadas com as outras geradas pelos efeitos da reflexo, disperso e refrao. Essesefeitos podem causar mudanas de fase e atenuaes em cada componente. A Figura3.8 ilustra este cenrio. Considerando um transmissor e um receptor separados por umadistncia d em um instante de tempo t , as ondas de sinal emitidas percorrem diferentescaminhos e o resultado final que chegam no receptor um somatrio destas ondas.

    112 27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

  • 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 interfe-rncias 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 co-muns 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 uti-lizam canais adjacentes e possuem uma potncia de transmisso elevada, causandointerferncia. A recomendao do prprio padro para esse caso o uso de canaisque no se sobrepem, como os canais 3, 6 ou 11;

    Direta: ocorre quando outros elementos no conhecidos utilizam o mesmo canalde comunicao. Por exemplo, vizinhos que utilizam o mesmo canal em sua redesem 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 segundogrupo, possvel identificar as seguintes fontes de interferncia:

    Telefones sem fio: Trabalham na faixa de freqncia de 2.4GHz e 5.4GHz. Suaprincipal caracterstica o uso constante do canal de transmisso, para manter aqualidade da comunicao de voz, e da alta potncia, j que o alcance de uso umadas principais caractersticas deste tipo de aparelho;

    Bluetooth: Este padro tem se tornado cada vez mais popular, presente em mui-tos dispositivos portteis. Ele no possui grande potncia de transmisso, uma vezque tem o foco em economizar energia e utiliza uma tcnica de envio com saltode freqncia, trocando os canais de uso a uma taxa de aproximadamente 3200ms,para minimizar o uso de canais que sofrem interferncia. Em contrapartida, a inter-ferncia 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 oforno de microondas, que possui uma margem de fuga de energia, a qual interferenas 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 rela-o da quantidade de bits alterados ao comparar o quadro transmitido e o mesmo quadrorecebido. O quadro transmitido uma seqncia de bits que compe os dados, o cabea-lho e o prembulo enviados pelo transmissor e o quadro recebido a seqncia recebidano 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 casoonde os efeitos do canal no afetem o quadro recebido, ficando este o mais prximo doquadro que foi enviado.

    Neste trabalho, para se inferir essa qualidade usada a medida do RSSI ReceiverSignal 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 presentena interface. Esse valor pode ser recuperado acessando funes especficas do driver dodispositivo.

    3.2.2.5. Identificao de eventos

    Omtodo de identificao de eventos efetua a anlise sobre os dados amostrados na placade rede sem fio. Essas amostras das medidas do RSSI so uma janela de dez medidasconsecutivas, espaadas com um intervalo de tempo de 10ms. A srie temporal quedescreve 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 adescrio da assimetria forte entre as amostras e as variaes da mdia e da disperso. Acomplexidade da srie temporal prev o uso de modelos simples de previso, justificando

    114 27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

  • o uso das estratgias de mdias mveis exponenciais nos grficos de controle (os grficosde controle clssicos utilizam modelos mais simples e menos expressivos). Tambm, cabenotar que a variabilidade e assimetria so melhor caracterizados pela anlise de multi-resoluo. Dessa forma, o uso conjunto dos dois mtodos justificado pelos seguintespontos:

    Anlise Temporal: O grfico de controle MCEWMA identifica eventos fora de con-trole que aparecem na mdia das amostras das medidas de RSSI e o grfico decontrole MCEWMV identifica as situaes fora de controle sobre a varincia. Uti-lizando esses grficos de controle, o controle estatstico de processos permite ainvestigao da amplitude do sinal identificando tendncias de situaes fora decontrole. Mas a informao sobre a variabilidade entre as diferentes amostras dasmedidas de RSSI no so totalmente identificadas, sendo necessrio uma anliseespectral entre essas medidas;

    Anlise Espectral: A transformada de wavelets permite identificar a variabilidadede um conjunto de amostras sucessivas das medidas de RSSI. Aplicada sobre os da-dos suavizados na sada do MCEWMA, o resultado da transformada usado paradescrever a variabilidade entre as diferentes amostras. A transformada aplicadasobre as medidas suavizadas e no sobre as medidas para evitar o rudo presentenas medidas. O rudo e a amplitude do sinal so verificados pelos grficos de con-trole. Relaciona a variabilidade das medidas. Descreve as frequncias presentes emcada janela t. Numa janela t, nveis maiores indicam um transiente relativo amobilidade. Nveis menores indicam presena de interferncia

    A partir dos vetores gerados pelos grficos de controle, x , su e sl , associadoscom o escalograma e a identificao do mdulo feitos na anlise de wavelets, armazena-dos nos vetores E e M, possvel identificar o comportamento da srie temporal e comisso 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 intervalode confiana de 95%, a informao dos eventos foi usada para criar a Tabela 3.2. Estatabela enumera os eventos, associados com interferncia e mobilidade e apresenta a des-crio. 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 ocenrio de baixa densidade de usurios e uma distribuio no planejada de pontos deacesso na vizinhana. Associado a isso, foram utilizados telefones sem fio e dispositivosBluetooth como fonte de interferncia.

    Toda a mobilidade foi feita em aproximadamente 0.5m/s, uma velocidade parauma pessoa andando e usando um dispositivo mvel (a noo de mobilidade humanaainda um tpico para pesquisas; como pode ser visto em, Gonzlez et al. 2008).

    Livro Texto dos Minicursos 115

  • Tabela 3.2. Classificao de Eventos

    Evento Detectado Descrio

    1 Perda de Conexo2 Perda de Conexo devido Interferncia3 Aproximando do AP4 Interferncia Fraca5 Afastando do AP6 Interferncia Mdia7 Movendo8 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 10ms. Para cadaevento detectado, o mecanismo pode ser usado para alertar o usurio, usando as descriesmostradas na Tabela 3.2.

    A Figura 3.10 mostra o primeiro caso, onde no existe mobilidade ou interfe-rncia. Todas as flutuaes dos sinais so devido ao rudo causado pelo decaimento emmulti-caminho, o qual ignorado pelo sistema de deteco e nenhum evento registrado.

    0 500 1000 1500 2000 2500 3000

    70

    50

    30

    Measures

    time

    RSSI(dbm)

    time

    Detected Event

    Figura 3.10. Investigao da comunicao em um dispositivo parado, sem a pre-

    sena de interferncia. Nenhum evento identificado.

    A Figura 3.11 mostra a deteco de uma comunicao Bluetooth, que causa inter-ferncia sobre a comunicao WiFi. Para este tipo de interferncia, uma interface Blue-tooth 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 otempo onde os eventos foram detectados e o nmero que indica o evento, como mostradona Tabela 3.2.

    O cenrio de mobilidade mostrado na Figura 3.12. Neste teste, o usurio moveafastando do ponto de acesso, a partir do instante 10000ms at 15000ms, e o evento 5 detectado, como mostrado no grfico. Quando a movimentao feita em direoao ponto de acesso, at o tempo 24400ms, outros eventos associados com mobilidade

    116 27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

  • 0 500 1000 1500 2000 2500 3000

    70

    50

    30

    Measures

    time

    RSSI(dbm)

    time

    Detected Event

    1760

    1920

    2080

    2240

    2400

    2560

    2720

    2880

    48

    04

    8

    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 interfern-cia 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 movi-menta para um lugar onde existe a presena de interferncia oriunda de diferentes pontosde acesso. Neste caso, esta informao mostra ao usurio a condio na qual se encontraa regio que ele esta se deslocando. A importncia deste resultado oferecer ao usurioa informao sobre as condies do ambiente de comunicao, oferecendo ao usurio aopo de movimentar para fora da regio de interferncia.

    0 500 1000 1500 2000 2500 3000

    70

    50

    30

    Measures

    time

    RSSI(dbm)

    time

    Detected Event

    04

    83

    7

    1120

    1280

    1440

    1600

    1760

    1920

    2080

    2240

    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 feitacom o foco em permitir que as aplicaes sejam notificadas sobre a identificao da mo-

    Livro Texto dos Minicursos 117

  • 0 500 1000 1500 2000 2500 3000

    70

    50

    30

    Measures

    time

    RSSI(dbm)

    time

    Detected Event

    800

    960

    1120

    1280

    1600

    1760

    1920

    2080

    2240

    2400

    2560

    2720

    2880

    04

    8

    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 adeterminadas funcionalidades do sistema, essa identificao um sistema reativo, assn-crono. Dada essa caracterstica, necessrio que essa implementao verifique constan-temente a interface e, em seguida, disponibilize essa informao para as aplicaes.

    A disponibilizao das informaes sobre a ocorrncia de eventos pode ser feitade maneira ativa, onde feita a notificao para as aplicaes sobre alguma atualizao nocontexto, ou pode ser feita de maneira passiva, onde as aplicaes buscam a informaosobre o contexto. Devido necessidade de uma rpida reao ao contexto da comunica-o sem fio, a disponibilizao ativa desta informao permite uma adaptao adequadaao ambiente. A partir deste requisito, foi criado um middleware, integrado a diferentessistemas operacionais, com o objetivo de permitir uma base de testes slida, alm de umaintegrao deste middleware de maneira mais transparente com as aplicaes.

    O objetivo deste middleware permitir a identificao dos eventos de mobilidadee interferncia em diferentes tipos de sistemas operacionais. Os seus componentes sodescritos 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 implementaoespecfica para cada sistema operacional, atendendo s restries de memria eprocessamento.

    Controle Estatstico: efetua o clculo do MCEWMA e MCEWMV e a identifica-o dos eventos fora de controle;

    Filtro de Wavelet: efetua a transformada de wavelets e o clculo do escalogramasobre os dados da janela amostral;

    Agente: efetua o clculo do scoreboard e gera a identificao do evento. Tam-bm especfico para cada sistema operacional, uma vez que utiliza os sistemas degerao de eventos e de sinalizao disponveis.

    118 27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

  • A implementao ocorreu para os sistemas operacionais Linux e Windows XP.At o momento da finalizao deste trabalho, uma nova verso, 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 descriodos requisitos de cada sistema e o que foi adotado para essa implementao.

    Tabela 3.3. Tcnicas de Implementao

    Requisito Windows XP Linux Android

    RSSI Acesso ao WMI, Microsoft (2008) Acesso ao PROC Acesso aodiretrio proc WifiManager

    Implementao Servio Daemon Servio doApplication framework

    Integrao Conexo via socket com agente Escrita no diretrio proc Gerao de evento e RPC

    Livro Texto dos Minicursos 119

  • 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 dis-positivos mveis atravs de perfis. A computao mvel uma rea em crescimento. Ousurio deseja obter informaes em qualquer lugar e em qualquer instante. Por esse mo-tivo, aplicaes dependentes do contexto so desenvolvidas para atender aos desejos dousurio. Uma forma de representar esses desejos atravs de um perfil, que no caso dousurio mvel muito dinmico. Pode ser alterado devido a mudanas de ambiente, dis-positivo, infra-estrutura e interesses. Logo, ele deve ser representado de maneira simplespara facilitar a comunicao entre a aplicao dependente de contexto e o perfil. O traba-lho apresentado nessa seo prope a criao de um servio de identificao de usuriosmveis, construindo um perfil para cada um deles. Para isso, necessrio utilizar servi-os 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 aaplicabilidade da soluo proposta [Buszko et al. (2001)].

    3.3.1. Viso Geral

    A computao dependente do contexto tem crescido proporcionalmente ao crescimentodo uso de dispositivos mveis. Isso porque o usurio deseja obter informaes em qual-quer lugar, a qualquer momento e em qualquer dispositivo, mesmo que esse esteja emmovimento [Devlic & Jezic (2005)]. O perfil de usurio uma tcnica utilizada para ca-racterizar um usurio num dado contexto. Para isso, ele integra as informaes do usuriomvel, o seu dispositivo utilizado e o ambiente em que ele se encontra. Para definir operfil do usurio deve-se tratar de assuntos como questes espaciais, temporais, lgicase relacionamentos com outros usurios. Esse perfil pode ser representado atravs de on-tologias, isto , modelos de dados que representam um conjunto de conceitos e relaesentre eles dentro de um domnio de conhecimento. O perfil de usurio pode ser facilmentealterado 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 clientesque visitam uma determinada loja ou departamento. Um exemplo do uso do servio se-ria o seguinte caso. Um mdico, aficionado por futebol, deseja receber uma notificaono seu celular quando o seu time marcar um gol. Suponha que ele comece a fazer umacirurgia e o seu time est jogando. Nesse contexto, o seu trabalho no deve ser interrom-pido caso o seu time faa um gol. No entanto, se ele estivesse andando de carro naqueleinstante, ele poderia receber essa notificao. Ou seja, dependendo do contexto em queo usurio se encontra, a aplicao deveria ser projetada para ter um comportamento dife-rente. Esse um ponto fundamental que distingue o paradigma de computao mvel doparadigma tradicional de sistemas distribudos.

    3.3.3. Soluo proposta

    A soluo proposta nesse trabalho consiste em retirar da aplicao a responsabilidade decriar o perfil do usurio. Comumente, a aplicao dependente do contexto deve sempre

    120 27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

  • solicitar informaes ao usurio para definir o que deve ser feito. Essa forma mais tra-balhosa e exige interao entre a aplicao e usurio a todo instante, o que pode tornara aplicao mais lenta. A soluo proposta consiste em estabelecer uma comunicaoapenas entre a aplicao e o perfil. A aplicao no precisa se comunicar com os demaisservios que compem o perfil. Esse perfil j foi construdo previamente por serviosauxiliares (servio de localizao, servio de configurao de dispositivo, servio de ge-renciamento de interesses (contexto) servio de configurao da rede e servio de confi-gurao do dispositivo). Uma representao da soluo proposta pode ser vista na Figura3.14.

    Figura 3.14. Modelagem da soluo proposta. O perfil composto por informa-

    es fornecidas pelos servios auxiliares. A aplicao se comunica apenas com

    o perfil.

    O servio de gerenciamento proposto consiste em armazenar os perfis de usuriosj construdos de forma que a aplicao acesse facilmente o perfil do usurio que j foidefinido previamente.

    3.3.4. Perfil

    O perfil uma forma de representar as caractersticas e interesses de um usurio em umdeterminado contexto. Esse perfil de grande importncia para aplicaes dependentesdo contexto porque elas determinam seu fluxo de acordo com o perfil do usurio. Paracada aplicao pode ser necessrio identificar certas caractersticas. Aps estudar as ca-ractersticas essenciais utilizadas pelas aplicaes para identificar um usurio mvel, foidefinido 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 sobrebanda e latncia.

    Configurao do dispositivo - Descreve as caractersticas do dispositivo. As infor-maes essenciais do dispositivo so bateria, memria, modelo e processamento.Essas so as informaes mais importantes que a aplicao mvel precisa saber so-bre os dispositivos mveis. A bateria, memria e processamento pois so recursos

    Livro Texto dos Minicursos 121

  • escassos nesses aparelhos. O modelo uma informao importante para identificaras funcionalidades do dispositivo.

    Interesses do usurio - Descreve os temas em que o usurio tem interesse em receberinformaes. No caso mais genrico, basta o nome e a descrio do interesse.Entretanto, caso seja necessrio identificar melhor os interesses, deve-se definirnovos conceitos de interesse que estendam a classe de interesse mais genrica.

    O perfil do usurio mvel muito dinmico. Devido a sua mobilidade, o usuriopode alterar rapidamente sua localizao e, por esse motivo, mudar os seus interesses.Essa dinamicidade do perfil dificulta a representao do perfil. A forma de representaodo perfil escolhida para o trabalho ser atravs de um arquivo XML devido a sua facili-dade de alterar as informaes. Pode ser considerado tambm mais fcil para a aplicaorecuperar as informaes contidas no perfil.

    122 27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

  • 3.4. Servio Mvel de Notificao de Eventos Baseado em Contexto

    A utilizao de servios diversificados baseados em contexto muito limitada ou inexis-tente para um conjunto pr-determinado de servios de grande utilidade como informa-es de trfego, clima, comrcio, turismo, medicina, emergncias e veicular. Os disposi-tivos atuais possuem pouca ou nenhuma interatividade com eventos externos localizadosno ambiente em que este se encontra. A razo disto se deve ao fato do contexto ser poucousado para atividades desempenhadas por dispositivos e usurios. Alguns poucos casosde 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 sistemae a construo de um prottipo com o objetivo de prover a notificao de eventos paradispositivos mveis (aplicaes e usurios) baseado no perfil e contextos do usurio e dodispositivo/aplicao. O objetivo prover a notificao de eventos como uma funcionali-dade agregvel no desenvolvimento de aplicaes mveis.

    3.4.1. Viso Geral

    Em um futuro bem prximo, diversos ambientes sero capazes de fornecer informaes eservios para usurios e aplicaes mveis atravs da comunicao entre estes, a sensibi-lidade e responsividade. Para isto, elementos computacionais tero este objetivo, fazendoparte destes ambientes inteligentes. A computao ubqua e a interao voltada para ousurio definem o alicerce nesta rea de ambientes inteligentes. Algumas das tecnologiase sistemas relacionadas incluem: 1) elementos computacionais embutidos, onde diversosdispositivos conectados em rede so integrados ao ambiente; 2) sensibilidade ao con-texto, adaptabilidade e antecipao de tarefas, onde dispositivos possuem a capacidade dereconhecer o usurio e seu contexto atual, mudar em resposta deste e prever o seu com-portamento respectivamente e 3) a personalizao de servios, onde dispositivos podemser 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 geren-ciar a notificao de eventos em aplicaes mveis. O servidor de eventos tambmresponsvel por fornecer os SeRBIs (Servios Remotos Baseados em Informaes) paraaplicaes mveis. As mudanas de perfil e contexto em aplicaes mveis utilizao oservio de eventos para a criao de eventos que podem ser processador e, em forma denotificao, 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 ousurio possa tomar alguma iniciativa de adaptao.

    3.4.3. Estado da Arte

    Os servios ubquos, em geral, buscam prover caractersticas importantes para dispositi-vos mveis. Algumas destas incluem: disponibilidade, transparncia na utilizao e natransio (localizao e tecnologia), sensitividade e confiana. A disponibilidade definepara aplicaes acessibilidade independente do contexto e mudanas de estado, neces-sidades e preferncias do usurio, levando em considerao o contexto, a conectividadecom os servios e a energia do dispositivo. O cientista Mark Weiser, considerado o pai da

    Livro Texto dos Minicursos 123

  • computao ubqua Weiser (1993a), apresenta em uma nica frase o conceito de trans-parncia: uma boa ferramenta exatamente aquela que est invisvel para o usurio, noinvadindo sua conscincia. O foco do usurio deve ser maior na atividade ao invs daferramenta, e a execuo de tarefas deve ser feita sem a necessidade de ateno e cinciada tecnologia por trs.

    O modelo de comunicao baseado em eventos descreve um paradigma aplicvelna interconexo de elementos que compem aplicaes em ambientes ubquos Weiser(1993b), Dearle (1998) de uma maneira assncrona. Estes ambientes em geral contemaplicaes e elementos de rede que so em geral heterogneos e distribudos. Eles soheterogneos devido ao fato destes poderem executar tipos de tarefas diferentes para ousurio, requerendo conjuntos variados de componentes de hardware e software. Elestambm so distribudos de tal forma que um nico elemento de rede pode possuir umadependncia sobre outros elementos, tais como obter informaes do ambiente e executartarefas pelo usurio.

    3.4.4. Servio Mvel de Notificao de Eventos

    O processo de gerenciamento de eventos e os resultados de um prottipo so apresentadosneste trabalho com o objetivo de demonstrar a viabilidade deste servio em aplicaesmveis 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 compo-nente localizado no dispositivo mvel e um servidor de dados remoto. A razo de osistema possuir dois componentes distribudos est no fato da necessidade em se captareventos em ambos os lados. O servidor de eventos localizado no dispositivo recebe oseventos gerados por outros servios ou aplicaes em execuo e os envia para o servidorde eventos localizado no servidor de dados (SDE). Este servidor de eventos responsvelpor receber os eventos gerados no dispositivo, receber os eventos gerados no prprio ser-vidor e enviar notificaes de eventos ocorridos no lado do servidor de interesse a partirde 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 aplicaesubquas, o sistema proposto neste trabalho foi incorporado em uma aplicao turstica de-nominada DroidGuide. O DroidGuide utiliza uma arquitetura cliente-servidor compostade clientes mveis na plataforma de software e sistema operacional Android e um servi-dor de dados remoto na plataforma de desenvolvimento de aplicaes Web App Engine(GAE ) tambm da Google, executando sobre o ambiente de execuo Python. Clientesmveis comunicam com o servidor atravs de mensagens de requisio/resposta sobre oprotocolo HTTP. Dados so enviados do cliente para o servidor atravs de requisies dotipo GET . Ao receber estas requisies, o servidor as processa e responde para o cli-ente atravs do envio de documentos XML sobre HTTP. Neste prottipo, assume-se queo dispositivo mvel possui capacidade de se conectar ao servidor utilizando um ponto de

    124 27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

  • 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 funcionalidadesdo sistema, o DroidGuide foi logicamente dividido em mdulos com responsabilidades erelacionamentos bem definidos. Cada mdulo em geral composto de um componentelocalizado 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, respons-vel por gerenciar as principais telas, comandos da aplicao e define o relacionamentofuncional entre todos os outros mdulos do sistema; 2) perfil, responsvel por gerenciaras informaes e interesses do usurio; 3) contexto, que gerencia as informaes sobre oestado do usurio, informaes climticas e de localizao; 4) comunicao, que prova comunicao de todos os mdulos entre o cliente e o servidor; 5) escalonador, respon-svel por apresentar atraes tursticas baseadas nas informaes de perfil e contexto dousurio; 6) servidor de eventos, responsvel por obter informaes de mudana de da-dos 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 econtexto.

    3.4.5.1. O Processo de Gerenciamento de Eventos

    O DroidGuide utiliza o servidor de eventos na captao e processamento de eventos in-ternos (no dispositivo) e externos (no servidor de dados) e na entrega de mensagens denotificao a partir de SeRBIs para aplicaes e servios interessados. O servidor de even-tos localizado no dispositivo recebe as requisies de mudana de perfil e contexto dosprincipais 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

    Livro Texto dos Minicursos 125

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

    Todos os eventos criados por servios e aplicaes em execuo no dispositivomvel so capturados pelo gerenciador de eventos e enviados ao SDE em perodos ccli-cos configurveis e adaptveis de acordo com as necessidades das aplicaes. Quando oservidor de dados recebe os eventos vindos do dispositivo, o servio de eventos os avalia eefetua uma busca por SeRBIs relacionados que foram inicialmente subscritos pelo usuriodurante 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 durantea execuo da aplicao. Suponha que a prxima atividade turstica a ser executada pelousurio exija uma condio climtica na qual o clima no pode estar chuvoso. Quando ousurio se deslocar para a tal atividade turstica, o servidor de eventos no dispositivo irreceber uma requisio de mudana de contexto, neste caso relacionado sua localizaoe execuo da atividade. Um evento ser criado para representar a mudana de contextoe ser enviado para o servidor de dados, onde ser processado. No processamento, oSeRBI especfico de clima ser consultado, verificando o interesse por tal evento. Comoo servio de clima subscrito pelo usurio possui um interesse pelo evento (tipo clima), oSeRBI verificar as condies climticas do local da atividade turstica a ser visitada peloturista. Em caso de tempo chuvoso, o SeRBI criar uma notificao que ser repassadado servidor de dados para o dispositivo. Desta forma, o turista receber uma notificaoinformando-o da condio climtica do destino, oferecendo-o, neste caso, alternativaspara a substituio da atividade em questo. As notificaes em geral podem ser apre-sentadas de diversas formas, desde uma simples notificao em texto para o usurio atuma operao a ser executada por componentes ou servios internos de aplicaes. Esteprocesso pode ser visualizado na Figura 3.16.

    3.4.6. Resultados

    No prottipo desenvolvido, o servidor de eventos foi capaz de capturar mudanas de perfile contexto da aplicao. Os eventos foram capturados no dispositivo e enviados para oservio de eventos remoto. A partir dos interesses definidos pelo usurio no perfil, o esca-lonador de atividades no servidor foi acionado para definir atividades tursticas de acordocom os interesses do turista. A subscrio de SeRBIs tambm mostrou a viabilidade nautilizao destes em aplicaes ubquas. Os SeRBIs foram capazes de enviar mensagensde notificao para o dispositivo em situaes onde eventos remotos foram criados nolado do servidor de dados.

    3.4.7. Concluses e Trabalhos Futuros

    Conforme apresentado neste trabalho, o servidor de eventos possibilitou ao turista a subs-crio de SeRBIs e a notificao de eventos relacionados s suas atividades que, no casodo prottipo apresentado, as atividades tursticas executadas sobre uma determinada re-gio. O servidor de eventos tambm foi capaz de receber eventos gerados a partir de ati-vidades que foram selecionadas ou executadas pelo usurio, informando assim o servidorde 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 SeRBIssubscritos pelo usurio foram capazes de receber eventos vindos do dispositivo mvel eenviar notificaes de volta para o dispositivo contendo informaes teis para o usurio

    126 27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

  • Figura 3.16. Demonstrao do processamento de eventos ocorrendo no dispo-

    sitivo 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 interessa-

    das nos eventos (E). Caso os SeRBIs subscritos pelo usurio dependam destes

    eventos, eles sero ativados. Os SeRBIs tambm podem gerar eventos em situ-

    aes 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 notifi-

    cao, 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 pro-cessamento de eventos no dispositivo e no servidor remoto com o objetivo de aperfeioara utilizao dos recursos presentes nos dispositivos mveis como bateria e processador ecusto de transmisso de dados na rede. Este perfil de processamento incluiria a opo dedefinir os ns responsveis pelo processamento de eventos mediante as condies em queo dispositivo se encontra, tais como o acesso rede (qualidade do canal, tipo), custo detransmisso (valor, consumo de energia), densidade de eventos sendo gerados.

    Livro Texto dos Minicursos 127

  • Figura 3.17. a) interface commapas 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.

    128 27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

  • 3.5. Tratamento de Contextos Coletivos em Aplicaes Cientes de Contexto

    Existem diversas aplicaes em que aes para um grupo de usurios devero ser reali-zadas. Dentre elas podemos imaginar os cenrios de uma casa inteligente compartilhadapor uma famlia, apresentaes pblicas (concertos, teatros, palestras), escritrios com-partilhados, guias tursticos utilizados em excurses, dentre outras. Todas as aplicaescitadas possuem a seguinte caracterstica em comum: embora cada entidade de um grupopossua contextos individuais, as aes realizadas pelas suas aplicaes cientes de con-texto devem levar em considerao no s tais entradas, mas tambm os contextos deoutros 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 situ-aes onde os contextos dos diferentes usurios so discordantes ou incompatveis entresi e/ou com o ambiente a ser adaptado. Esses so precisamente os problemas que deveroser resolvidos em um trabalho sobre o tratamento de contextos coletivos em aplicaescientes de contexto. O objetivo geral do trabalho o de conseguir solues inteligentes,que consigam identificar a ocorrncia dos problemas relacionados e resolv-los de formaa maximizar a satisfao individual e coletiva dos usurios.

    3.5.1. Introduo

    Existem diversas aplicaes cientes de contexto nas quais adaptaes de servios para umgrupo de usurios simultneos devero ser realizadas. Essas so as chamadas aplicaescientes de contexto coletivas, e a ocorrncia das mesmas em cenrios ubquos geram situ-aes particularmente interessantes. Os problemas tpicos da colaborao entre usuriosde uma mesma aplicao so agregados a todos os desafios especficos da computaoubqua, 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 paraa adaptao de suas tarefas os interesses e dados contextuais de cada membro de umgrupo de usurios simultaneamente associados. interessante notar que no importa qualo 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 oumais usurios interessados em suas tarefas, e que as mesmas devem ser adaptadas deacordo com os contextos coletivos adquiridos.

    Contextos coletivos podem ser definidos como as informaes sobre os ambientescompartilhados bem como os dados que refletem as condies prprias de cada elementode um grupo. Tais contextos so utilizados pelas aplicaes coletivas para realizarem suasadaptaes. 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 grupode usurios e o ambiente, caracterizando situaes tais como propriedades, compartilha-mentos, associaes temporrias ou permanentes, dentre outras. Apresentam o mesmovalor para todos os usurios associados. Condies climticas, estao do ano e a uti-lizao de elementos do ambiente so exemplos de contextos desse tipo; (ii) Contextosprprios: so dados referentes ao usurio, os quais refletem suas caractersticas, prefern-

    Livro Texto dos Minicursos 129

  • cias e situaes pessoais. Devem explicitar ainda a relao entre o usurio e os demaiselementos de seu grupo. Cada usurio pode apresentar um valor prprio. Fome, sono egrau de parentesco so alguns tipos possveis de contextos prprios.

    A combinao de dados contextuais coletivos deve ser utilizada para realizar aadaptao das tarefas da aplicao. No entanto, a divergncia entre os mesmos pode le-var ocorrncia de conflitos de interesse. Ao analisar os valores de entrada de contextoscoletivos apresentados por cada um dos usurios, bem como os recursos e caractersticascorrentes dos ambientes fsicos e computacionais compartilhados, a aplicao poder en-trar em um estado de inconsistncia, incapaz de decidir o que dever ser feito quanto sadaptaes a serem realizadas de maneira a atender as demandas individuais e coletivasao mesmo tempo. Nesse caso, diz-se que ocorreu na aplicao um conflito coletivo.

    Identificada a ocorrncia de um conflito coletivo, a aplicao dever encontrarformas, simples ou sofisticadas, para resolver a inconsistncia ou impasse. A execuode uma tcnica ou algoritmo que permita atender de maneira inteligente e conveniente asdiferenas geradas pelos dados contextuais coletivos utilizados denominada tratamentode contextos coletivos.

    Para tratar conflitos coletivos necessrio que a soluo de conciliao propostamodifique de alguma maneira o conjunto de tarefas da aplicao. Nesse caso, deve-seescolher em quais aspectos das tarefas sero realizadas tais alteraes, permitindo assim aescolha do algoritmo de conciliao mais adequado. Tais aspectos so chamados os nveisde atuao e alguns exemplos para os mesmos so os parmetros, a ordem, o agrupamentoe a composio das tarefas. Vale ressaltar que alteraes nas tarefas podem levar emltima instncia a modificaes nos ambientes fsicos e/ou computacionais.

    3.5.3. Trabalhos Relacionados

    Os trabalhos encontrados em [Masthoff (2004)] e [McCarthy & Anagnost (2000)] podemser considerados relacionados ao objetivo geral deste trabalho: realizar tratamento deconflitos coletivos. No entanto, enquanto tais trabalhos esto focados em uma nica apli-cao, um conjunto fechado de contextos e arquiteturas de implementao especficas, aproposta deste trabalho possui uma viso mais ampla e dinmica, no sendo portanto par-ticular para aplicaes ou contextos e pretendendo oferecer uma gama de possibilidadesde implementao.

    Roy et al. em [Roy et al. (2006)] apresentam uma soluo para construo de umacasa inteligente que considera as atividades e localizaes de mltiplosmoradores. A con-tribuio desse trabalho est em oferecer suporte aos diferentes participantes capturandoas correlaes e interaes entre seus movimentos e atividades, e proporcionando um am-biente adaptado a todos, sem conceder preferncias. Ao contrrio da proposta apresentadapor Roy et al., este trabalho apresenta uma soluo para tratamentos de conflitos coletivosgenrica, possvel de ser implementada para qualquer aplicao e adaptvel s condiescorrentes das mesmas. Shin et al. [Shin & Woo (2005)] discutem tambm o problemada adaptao de ambientes ubquos em situaes de compartilhamento de aplicaes, ser-vios e recursos por mltiplos usurios. A soluo para tais conflitos apresentada pelosautores foi a atribuio de prioridades para cada usurio. O trabalho utiliza um tipo desoluo que emprega sempre a mesma maneira simples e rgida para resolver o problema

    130 27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

  • em questo. Ardissono et al. [Ardissono et al. (2002)] apresentam um sistema Web paraelaborao de lista de tarefas para grupos heterogneos de turistas. Cabe a um dos usu-rios interagir com o sistema para informar o nmero de pessoas no grupo e dividi-las emsub-grupos relevantes, considerando critrios tais como idades, interesses, capacidadesvisuais e deficincias fsicas. Com base nas informaes fornecidas, o sistema escolhe asmelhores tarefas para cada sub-grupo, podendo apresent-las em listas separadas ou emuma verso nica. O sistema descrito por esse trabalho diferente de aplicaes cien-tes de contexto uma vez que seu objetivo ajudar usurios a escalonar o passeio, e nogui-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 contextode forma a entender quais seriam as principais aes necessrias de serem projetadas paraa implementao e execuo das mesmas. A viso geral desse ciclo permite uma maiorcompreenso da dinmica de funcionamento dessas aplicaes, identificao dos princi-pais desafios associados e em especial a percepo dos pontos nos quais aes especficaspara aplicaes coletivas devem ser executadas.

    Uma vez que no foram encontrados pelos autores na literatura trabalhos que abor-dem tal assunto, em particular considerando aplicaes com carter coletivo, um diagramade atividades para o ciclo de vida de aplicaes ubquas, cientes de contexto e coletivasfoi projetado. Tal diagrama composto por fases e suas respectivas atividades. Cadafase configura um momento do ciclo de vida de uma aplicao ciente de contexto, e cadaatividade representa para a fase associada uma operao importante a ser executada parao correto e completo funcionamento da aplicao.

    Embora proposto para modelar aplicaes coletivas, o diagrama pode ser utilizadotambm no projeto de aplicaes individuais, uma vez que todos os mdulos a seremdesenvolvidos apenas para as primeiras foram encapsulados em um nico bloco, chamadoConflict 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 deatividades a serem executadas em trs fases distintas do ciclo de vida de uma aplicaoubqua e ciente de contexto: (i) Pr-aplicao, (ii) Aplicao e (iii) Ps-aplicao. AFigura 3.19 ilustra o diagrama.

    A fase Pr-aplicao envolve a preparao de todos os aspectos necessrios aocorreto e completo funcionamento de uma aplicao ubqua e ciente de contexto comtratamento de conflitos em contextos coletivos. Desse modo, devero ser executadas asseguintes atividades:

    Configurar ambientes inteligentes: os ambientes a serem utilizados devem ser ins-trumentados com toda e qualquer forma de oferecer para a aplicao dados con-textuais diversos, recursos fsicos e computacionais demandados pelas aplicaes eainda os meios necessrios para comunicao entre os dispositivos instalados;

    Livro Texto dos Minicursos 131

  • Pr-aplicao Aplicao Ps-aplicao

    Configurar AmbientesInteligentes

    Configurar Hardwaredo Usurio

    Desenvolver Software(Aplic., Arq., Engine)

    Executar Tarefas deStartup

    Obter Entradas

    Pr-processamento Sinttico eSemntico das Entradas

    Classificao de Tarefas

    Executar TarefasIndividuais

    Processamentode TarefasColetivas

    Executar TarefasColetivas

    Avaliar Qualidade

    Executar Tarefas de

    Finalizao

    Executar Aes de

    Aprendizado

    Construir / AtualizarBases 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 hard-ware para interagir com a aplicao, sejam eles sensores introduzidos, computado-res vestveis ou mesmo os tradicionais computadores de mo ou celulares. Umavez que existem diversos modelos e configuraes para dispositivos utilizados nes-ses casos, necessrio no s detalhar requisitos mnimos de funcionamento, mastambm escolher uma estratgia para lidar com a potencial heterogeneidade obser-vada;

    Desenvolver software: inclui as implementaes da aplicao, de todos os mdulosde suporte da arquitetura de software escolhida e do bloco responsvel pelo trata-mento de conflitos coletivos.

    Executar tarefas de Startup: atividade na qual sero executadas todas as aes ne-cessrias para iniciar a aplicao, os mdulos componentes da arquitetura de soft-ware e o bloco para tratamento de conflitos coletivos utilizado.

    A fase da Aplicao aquela em que os usurios, portando seus dispositivos cor-retamente escolhidos e configurados, se inserem em uma diversidade de ambientes inte-ligentes previamente instrumentados e executam, de acordo com suas necessidades, umasrie de tarefas disponibilizadas pela aplicao. Nessa fase, os usurios desejam ser ser-vidos de tarefas da melhor maneira possvel de acordo com seus dados contextuais, dosdemais elementos do grupo e os do ambiente a sua volta. Nesse caso, as seguintes ativi-dades so executadas:

    Obter entradas: nessa atividade, a aplicao obtm junto arquitetura de softwareutilizada as trs entradas bsicas necessrias para sua execuo: dados contextuaisindividuais, dados contextuais do ambiente e a lista de tarefas disponibilizadas paraseus usurios;

    Pr-processamento semntico e sinttico: dados contextuais e tarefas da aplicaodevem ser pr-processados, de forma a adquirirem associaes semnticas e sinta-xes padronizadas. Essas aes viabilizaro melhor armazenamento, intercmbio eutilizao final dos mesmos. Alm disso, ser necessrio associar contextos s ta-refas, de maneira que apenas aqueles dados que sejam realmente importantes para

    132 27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

  • as adaptaes executadas sejam coletados e considerados. Outras tarefas de pr-processamento especficas para cada aplicao podem ainda ser executadas;

    Classificao de tarefas: as tarefas da aplicao so separadas em individuais oucoletivas. As tarefas individuais podem ser prontamente ofertadas aos usurios,uma vez que sua execuo no possui relao direta com contextos e tarefas deoutros usurios. As tarefas coletivas, entretanto, s devem ser ofertadas aos usuriosaps passarem por um bloco de avaliao. Diferentes tcnicas podem ser utilizadaspara realizar a classificao, como a anlise dos dados semnticos associados, doscontextos utilizados, troca de mensagens entre usurios participantes, dentre outras;

    Processamento de tarefas coletivas: o sistema procurar por conflitos entre os con-textos coletivos apresentados pelos diversos usurios participantes, considerando oestado corrente dos ambientes fsicos e computacionais compartilhados, bem comoo conjunto de tarefas a serem processadas. Caso tal conflito no seja detectado, oconjunto de tarefas est liberado e poder ser executado. Se um conflito for de-tectado, o mesmo dever ser ajustado em algum nvel, antes de ser ofertado. Valeressaltar que o conjunto de tarefas processados poder conter apenas uma ou atmesmo todas as tarefas disponibilizadas pela aplicao. Essa atividade executadaapenas para tarefas classificadas previamente como coletivas.

    Em algum momento, a aplicao ciente de contexto ser finalizada pelo usurioou espontaneamente uma vez que todas as tarefas j foram executadas. Nesse ponto seinicia a fase chamada Ps-aplicao, a qual possui algumas atividades associadas, utili-zadas para encerrar a aplicao, verificar a qualidade das aes realizadas e armazenardados e informaes obtidas ao longo do perodo de utilizao. Essa fase em particular bastante dependente da aplicao, uma vez que cada uma poder apresentar necessidadesespecficas 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 servisto como um arcabouo de software e chamado Conflict Engine. Seus componentesso apresentados a seguir, juntamente com uma discusso sobre as possibilidades de im-plementao para o mesmo. A organizao dos mdulos do arcabouo conforme mostra aFigura 3.20 uma contribuio deste trabalho e foi proposta para funcionar com diferen-tes arquiteturas de software para sistemas cientes de contexto e de maneira independentedas aplicaes utilizadas.

    O mdulo de verificao de conflitos realiza uma anlise tri-dimensional conside-rando como eixos os perfis dos usurios envolvidos, o perfil do ambiente e as tarefas daaplicao. Pode ser programado para utilizar todos os dados disponveis nessas dimen-ses para anlise, bem como apenas um subconjunto desses. A escolha de como ser feitaa anlise depende basicamente dos nveis de atuao escolhidos, os quais indicam comoas tarefas podem ser processadas na busca pela ocorrncia de conflitos e como as mesmaspodem ser alteradas em casos de conciliao.

    Livro Texto dos Minicursos 133

  • Deteco de Conflitos - Anlise Tri-dimensional

    Executar Tarefas Coletivas

    Conflict Engine

    Arquitetura

    de Software

    Perfis

    Tarefas

    Conciliao - Metodologia para Resoluo de Conflitos Coletivos

    Outros

    BDs

    ClassificarAlgoritmos

    IniciarAcordos

    ExecuoSupervisionada

    Re-S

    tartup

    NveisAtuao

    Figura 3.20. Mdulos componentes da Conflict Engine.

    O mdulo de conciliao recebe como entradas as tarefas conflitantes, os per-fis dos usurios envolvidos, o perfil do ambiente, os nveis de atuao da conciliao,algoritmos ou tcnicas disponveis para o tratamento e demais informaes necessriasarmazenadas em bases de dados da arquitetura de software utilizada. Esse mdulo deveexecutar algoritmos que resolvam o conflito detectado para determinado nvel de atuao.Uma vez que as aplicaes em foco so ubquas, tal mdulo dever executar tcnicasde conciliao vinculadas a limites para consumo de recursos e/ou qualidade de servio.Como resultado tarefas adaptadas so produzidas atendendo aos interesses da coletivi-dade, mas procurando considerar ao mximo as demandas individuais e as possibilidadescontextuais correntes.

    O mdulo de Re-Startup invocado em alguns casos, como parte do processo deanlise para verificao de conflitos ou dos ajustes necessrios para a adaptao de tarefasque envolvem contextos coletivos. Permite re-executar as aes que foram previamen