Você está na página 1de 51

Captulo

3
Computao Ubqua Ciente de Contexto: Desaos e Tendncias
Antonio Alfredo Ferreira Loureiro, Ricardo Augusto Rabelo Oliveira , Thais Regina de Moura Braga Silva, Waldir Ribeiro Pires Jnior, Lillian Brando Rezende de Oliveira,Rande Arievilo Moreira,Rafael Guimares Siqueira,Bruno Pontes Soares Rocha,Linnyer Beatrys Ruiz

Abstract Ubiquitous computing denes a new paradigm in which devices with processing and communication capacity are embedded into everyday elements, providing services in a transparent way to users. It is possible to notice that this kind of computing has a strong connection with physical world features, as well as those presented by its users proles. In this way, if ubiquitous systems are capable of using as input relevant information about entities (e.g., people, places or objects) related to the application, they can provide services that are more appropriate, dynamic and optimized, increasing the user satisfaction and minimizing resource consumption, such as energy, processing, communication, among others. Such information is called context and represents the basic input element for context-aware computing. The goal of this short course is to discuss research trends on the ubiquitous context-aware eld, presenting and analyzing the research performed on specic challenges. Such proposal presents interesting solutions to problems ranging from physical aspects of wireless communication to the design of applications available to the users. Resumo A computao ubqua um novo paradigma no qual dispositivos com capacidade de processamento e comunicao so embutidos nos elementos do dia-a-dia, provendo servios de forma transparente aos usurios. Pode-se observar que esse tipo de computao possui forte ligao com as caractersticas do mundo fsico, bem como aquelas apresentadas pelos pers de seus usurios. Assim, caso um sistema ubquo seja capaz de utilizar como entrada informaes relevantes sobre as entidades (e.g., pessoas, lugares, objetos)

100

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

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

3.1. Introduo
A computao ubqua caracterizada pela presena de dispositivos portteis, cada vez mais comuns devido aos avanos na fabricao de componentes eletrnicos. Esses dispositivos possuem uma considervel capacidade de processamento, com recursos para comunicao sem o e armazenamento de dados. Essa ltima caracterstica permitiu o crescimento do uso de equipamentos portteis capazes de lidar com dados multimdia. Esses dispositivos se popularizaram como handhelds, PDAs, e, atualmente, tm aparecido como smartphones e celulares de grande capacidade computacional. Alm das funcionalidades originais, como capacidade de comunicao via telefonia celular, tais dispositivos tambm possuem diversas funcionalidades e interfaces como GPS, rdio e TV, tocadores de udio e cmeras fotogrcas digitais. Esses dispositivos vm sendo usados em aplicaes que envolvem indstria, medicina, uso pessoal, etc. Uma das principais reas de pesquisa dentro da computao ubqua a computao ciente do contexto (context-awareness). A computao ciente ou sensvel ao contexto (Context-Aware Computing) dene uma rea de pesquisa relativamente recente, que possui aplicaes em diferentes cenrios computacionais e que apresenta desaos de implementao importantes, os quais tm sido o alvo da ateno de pesquisadores provenientes de diferentes partes do mundo. A proposta desta rea , em linhas gerais, elaborar uma maneira de coletar para dispositivos computacionais, entradas capazes de reetir as condies atuais do usurio, do ambiente no qual o mesmo se encontra e do prprio dispositivo computacional utilizado, considerando tanto suas caractersticas de hardware, como tambm de software e de comunicao. Tais entradas so os chamados contextos. Vrios pesquisadores publicaram trabalhos no incio da dcada de 90, descrevendo denies para o signicado do termo contexto. Dey et al [Dey (2001)] formalizaram a denio de contexto como sendo Qualquer informao que possa ser utilizada para caracterizar a situao de entidades (pessoa, lugar ou objeto) que sejam consideradas relevantes para interao entre um usurio e uma aplicao (incluindo o usurio e a aplicao)". Essa uma das denies mais aceitas e utilizadas atualmente por pesquisadores da rea, embora vrias outras tenham sido propostas e discutidas. Pode-se observar que a

Livro Texto dos Minicursos

101

denio bastante imparcial quanto aos tipos e variedades de dados que podem ser considerados como contextos, sendo ampla o suciente para aceitar as diversas necessidades especcas de cada aplicao. Alm disso, os autores tambm no restringem as fontes de contextos possveis de serem utilizadas, permitindo que tais dados reitam a situao de qualquer entidade relevante para cada caso em particular. Finalmente interessante notar como os autores conseguem apresentar uma denio precisa para o termo, sem a necessidade de listar tipos ou classes especcas de contextos. Embora os primeiros artigos na rea de computao sensvel ao contexto tenham sido publicados no incio da dcada de 90, essa rea de pesquisa continua ainda hoje bastante ativa. Possui muitas questes em aberto, as quais demandam intenso trabalho de pesquisa para que sejam amplamente entendidas, encontrando-se as melhores e mais eciente tcnicas e solues relacionadas. A seguir esto listados alguns dos desaos de pesquisa ainda existentes divididos em algumas sub-reas: Sensoriamento: Escolha e incluso dinmica dos contextos mais apropriados a cada aplicao; Tcnicas para coleta de contextos fsicos, lgicos e virtuais; Atribuio de semntica uniforme aos contextos utilizados; Identicao e escolha de fontes de contextos; Modelagem: Modelo de arquitetura para sistemas cientes de contexto; Modelo para representao uniforme da sintaxe dos dados de contexto coletados; Modelo de armazenamento de dados contextuais; Modelo de comunicao adotado entre diversos usurios ou aplicaes; Qualidade: Qualidade de contexto (QoC); Qualidade de servio (QoS); Qualidade das fontes de contexto; Gerenciamento de aplicaes cientes de contexto; Tratamento de falhas; Automatizao de tarefas; Utilizao de algoritmos de aprendizado; Identicao e tratamento de contextos individuais conitantes; Identicao e tratamento de contextos coletivos conitantes; Segurana: Segurana para troca de dados entre usurios e aplicaes; Conabilidade das fontes de contextos; Segurana da Informao de contexto; Existem publicados na literatura vrios trabalhos descrevendo diferentes aplicaes para a computao ciente de contexto. A seguir esto listadas algumas das principais ideias de aplicaes desse tipo. No entanto muitas outras ainda podem ser elaboradas, visto que essa uma rea com potencial para ser aplicada em diversos e diferentes aspectos. Uma das mais citadas aplicaes cientes de contexto est relacionada ao turismo. O trabalho de Cheverst et al [Cheverst et al. (2000)] um dentre vrios que descrevem como utilizar elementos de contexto para tornar a experincia de turistas mais simples, personalizada e rica de informaes e detalhes. Em particular, o trabalho citado apresenta uma plataforma chamada GUIDE, construda para atender a demandas especcas de turistas que viajam para conhecer cidades diferentes. Os requisitos para a ferramenta, tais como exibilidade, uso de informaes sensveis ao contexto, suporte para informaes dinmicas e servios interativos, foram obtidos com especialistas na rea de turismo.

102

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

O sistema combina tecnologias de computao mvel com uma estrutura de rede sem o para apresentar aos visitantes informaes adaptadas aos seus contextos pessoais e ambientais. Testes foram realizados por meio de utilizao do sistema proposto por especialistas e tambm por usurios em potencial. O objetivo principal dos testes era revelar o grau de usabilidade do sistema, bem como pontos em que melhorias diversas deveriam ser realizadas. Schilit et al [Schilit & Theimer (1994)] descrevem o Active Map Service", uma aplicao que mantm clientes informados sobre mudanas em seus ambientes. Mapas ativos descrevem a localizao e as caractersticas de objetos dentro de alguma regio enquanto os mesmos se modicam com o passar do tempo. Um aspecto importante, tratado com cuidado pelos autores do trabalho, a questo de escala: mapas ativos devem tratar atualizaes e consultas sobre regies sucientemente grandes para satisfazer o interesse de clientes, assim como deve tratar picos de carga em regies com intensa movimentao de usurios. Alm disso, a soluo proposta faz uso de endereamentos e roteamentos multicast, uma vez que detecta grupos de usurios com interesses por atualizaes comuns. Para garantir que no haver sobrecarga nos canais de localizao, prov limites garantidos no uso da largura de banda disponvel. Embora possa ser utilizada por qualquer aplicao computacional para a qual seja relevante, o uso da sensibilidade ao contexto especialmente importante para uma rea em particular: a computao ubqua e pervasiva. Este tipo de computao dene uma nova maneira de relacionar usurios humanos e dispositivos computacionais. Essa uma rea recente de pesquisa que prev a disponibilizao de computao e comunicao sem o o tempo todo e em todo lugar, permitindo que tais capacidades sejam incorporadas a elementos do dia-a-dia e utilizadas de maneira transparente [Greeneld (2006)]. Especicamente, a mobilidade permitida aos usurios e seus objetos computacionais em aplicaes ubquas, faz com que o uso de contexto seja ainda mais importante. As caractersticas utilizadas como entradas em tais solues podero se modicar a qualquer instante, e essa informao crucial para que os melhores servios sejam oferecidos aos usurios. Tais modicaes podem ser observadas em situaes nas quais o prprio usurio se movimenta de um local para outro, modicando-se assim as condies do ambiente corrente em variados aspectos (condies fsicas, recursos fsicos disponveis, recursos computacionais disponveis, fontes de contexto, conectividade, dentre outros) ou ainda quando outros usurios e/ou recursos se movimentam para dentro e para fora da rea de interesse da aplicao. Interessante notar portanto o aspecto dinmico do ambiente das aplicaes, o qual faz da computao ciente de contexto uma aliada importante para o melhor funcionamento dos sistemas ubquos. A restrio de recursos disponveis para execuo das aplicaes outro fator importante a ser considerado, sendo bastante afetado pela caracterstica dinmica das aplicaes ubquas e pervasivas. Uma vez que os recursos e servios disponibilizados para os usurios se modicam ao longo do tempo, e os dispositivos utilizados so em geral pequenos, com poucas capacidades computacionais, de energia e memria, os sistemas desse tipo devem realizar um gerenciamento de recursos consistente de maneira a prolongar o tempo de vida da aplicao, mantendo os nveis de qualidade de servio desejados pelos usurios. O uso de contextos mais uma vez importante de ser utilizado como forma de manter as aplicaes conscientes dos recursos disponveis e demandados. Eles sero usados como entradas por algoritmos de

Livro Texto dos Minicursos

103

gerenciamento, capazes de comparar e escolher o que precisa e o que pode ser feito para os usurios. O objetivo deste minicurso apresentar o estado da arte na pesquisa em alguns campos da pesquisa usando o computao ciente do contexto. A seo 3.2 apresenta dois trabalhos sobre a identicao de fontes de contextos e duas tcnicas de aquisio de dados contextuais atravs da anlise do sinal de rdio usado na comunicao sem o. A seo 3.3 mostra a caracterizao do usurio de dispositivos mveis atravs de pers. A seo 3.4 prope um sistema de a noticao de eventos para dispositivos mveis baseado no perl e contextos do usurio. A seo 3.5 lida com o conceito de contextos coletivos, em situaes nas quais os contextos dos diferentes usurios so discordantes ou incompatveis entre si e/ou com o ambiente a ser adaptado e necessrio lidar com os problemas relacionados de maneira a maximizar a satisfao individual e coletiva dos usurios. A seo 3.6 aborda a segurana em dois tpicos, sobre conabilidade dos dados compartilhados e a seleo adaptativa de protocolos de segurana. Por m, a seo 3.7 possui os comentrios nais sobre o tema de pesquisa abordado.

3.2. Aquisio de Dados Contextuais


A identicao de fontes de contextos no ambiente, bem como a coleta dos dados contextuais por parte dos dispositivos ubquos so tarefas importantes em sistemas ubquos cientes de contexto. Cada tipo de dado contextual a ser utilizado apresenta seus prprios desaos de aquisio, processamento, co-relao com outros dados, vericao de qualidade, denio de sintaxe, associao semntica, dentre outros aspectos. Em particular, essa seo descrever trabalhos que prope solues para aquisio de dois tipos de contextos importantes e frequentemente utilizados pelas aplicaes: a qualidade do canal de comunicao sem o e a localizao. Sistema de Posicionamento Hbrido e Ubquo para Dispositivos Mveis: Um sistema de posicionamento uma ferramenta usada para determinar e registrar a localizao de um objeto na superfcie da Terra. Existem sistemas de posicionamento para ambientes internos e externos, alguns operam apenas em reas delimitadas enquanto outros operam sobre toda a superfcie do globo. Seu funcionamento, normalmente, se baseia na captura de sinais, de rdio, infra-vermelho ou de satlites, para determinar a posio de um dispositivo, de acordo com algum referencial ou sistema de coordenadas. O objetivo dessa seo desenvolver um sistema de posicionamento hbrido e ubquo para dispositivos mveis. Um sistema caracterizado como hbrido quando apresenta uma mistura de tecnologias diferentes, nesse caso, o uso dos sinais de celular, redes sem o e GPS(Global Positioning System), para inferir a posio do dispositivo. A ubiquidade do sistema est no fato de que o mesmo dever proporcionar informao contnua de posio, alternando entre os sinais utilizados, para obter localizao em ambientes internos e externos, mesmo que cada tecnologia utilizada proporcione uma preciso diferente no posicionamento do dispositivo. Identicao de Eventos no Canal de Comunicao em Redes IEEE 802.11: A qualidade da comunicao em sistemas de comunicao sem o depende de diversos fatores e ajustar e/ou alertar o usurio sobre as condies da rede um importante

104

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

servio para este tipo de dispositivos. A qualidade percebida pelo usurio depende do contexto de rede, o qual pode ser denido como os eventos que possuem um impacto signicativo na comunicao sem o. A identicao do comportamento do canal de comunicao necessria para obter a descrio deste contexto. Devido s caractersticas intrnsecas da propagao do sinal transmitido, difcil medir e inferir o contexto bsico das redes sem o, como por exemplo, predizer quando a baixa qualidade do sinal de rdio causada por interferncia ou efeitos de atenuao devido ao ambiente da comunicao. Essa sub-seo apresenta um novo mtodo para o gerenciamento centrado no usurio em redes sem o que usam o padro IEEE 802.11b/g, determinando a presena de mobilidade e interferncia na comunicao. O mtodo usa dois grcos de controle estatstico, MCEWMA (Moving Centerline Exponential Weighted Moving Average) e o MCEWMV (Moving Centerline Exponential Weighted Moving Variance), associados com a anlise de resoluo mltipla com a transformada de wavelets [Hansen & Meno (1977), Judd et al. (2008)]. 3.2.1. Sistema de Posicionamento Hbrido e Ubquo para Dispositivos Mveis Um sistema de posicionamento uma ferramenta usada para determinar e registrar a localizao de um objeto na superfcie da Terra. Existem sistemas de posicionamento para ambientes internos [Priddge (2000), Kaemarungsi & Krishnamurthy (2004), Hightower & Borriello (2001), Bahl & Padmanabhan (2000)] e externos [Hightower & Borriello (2001), Haeberlen et al. (2005), Cheng et al. (2005)], alguns operam apenas em reas delimitadas [Priddge (2000), Kaemarungsi & Krishnamurthy (2004), Bahl & Padmanabhan (2000)] enquanto outros operam sobre toda a superfcie do globo [Dittmer (2005)]. Seu funcionamento, normalmente, se baseia na captura de sinais, de rdio, infra-vermelho ou de satlites, para determinar a posio de um dispositivo, de acordo com algum referencial ou sistema de coordenadas. Muitos dispositivos mveis mais recentes j possuem capacidade de posicionamento atravs do Global Positioning System (GPS) [Dittmer (2005)], porm, o funcionamento correto do mesmo est praticamente restrito a ambientes externos pois no possvel receber o sinal dos satlites quando dentro de alguma construo ou com visibilidade reduzida do cu [Dittmer (2005)]. Devido essa limitao do GPS e ao fato de grande parte dos dispositivos ainda no serem compatveis com o sistema GPS, torna-se justicvel a implementao de um Wireless Positioning System (WPS). Esse sistema utilizar a densa malha de redes sem o dos padres IEEE 802.11b e 802.11g j instaladas nas cidades para prover informaes de posio. Tambm dever funcionar dentro de construes e exigir pouco ajuste, ao contrrio de alguns sistemas de localizao para ambientes internos [Priddge (2000)] e [Kaemarungsi & Krishnamurthy (2004)]. 3.2.1.1. Estado da arte A primeira iniciativa conhecida de uso de sinal Wi-Fi como sinal de localizao o projeto [Bahl & Padmanabhan (2000)], que registrava impresses digitais de sinais de redes Wi-Fi para determinar a posio de um dispositivo dentro de uma construo. A partir desse trabalho, surgiram outras tentativas de se determinar a posio de dispositivos utilizando sinais de Wi-Fi, e mais recentemente, essas iniciativas passaram a tentar mapear

Livro Texto dos Minicursos

105

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

3.2.1.2. Desenvolvimento Depois de uma reviso da bibliograa mencionada sobre sistemas de posicionamento, foi necessrio um estudo prvio de detalhes de implementao da plataforma Android, devido a algumas peculiaridades acerca da programao para esta plataforma. Em seguida, a primeira etapa da implementao, que corresponde ao cliente de mapeamento, pde ser desenvolvida. Essa aplicao basicamente coleta as seguintes informaes em cada ponto mapeado atravs de coordenadas de GPS, redes Wi- detectadas naquele ponto, principalmente endereo Mac, Received Signal Strength Indicator (RSSI) e informaes de clula de celular, principalmente Mobile Country Code (MCC), Mobile Network Code (MNC) e Cell Tower ID (CID); Alm dessas informaes, uma parte importante da aplicao a insero de mar-

106

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

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

Figura 3.1. Cliente de Mapeamento

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

Livro Texto dos Minicursos

107

Figura 3.2. Mapas em tempo real

Figura 3.3. Cliente de Posicionamento

qual o ponto de maior probabilidade de representar a posio atual do dispositivo e retorna as coordenadas e posio simblica para o cliente, que por sua vez as exibe na tela, como visto na Figura 3.4. O servidor tambm registra a posio do dispositivo atravs da sobreposio de mapas, como pode ser visto na Figura 3.5. Aps essas etapas de desenvolvimento, o sistema de posicionamento j capaz de manter o mapeamento colaborativo funcional e sempre atualizado e inferir posies para os dispositivos que as requisitarem. Os testes realizados so descritos na seo seguinte.

3.2.1.3. Resultados O funcionamento do sistema aliado ao mapeamento prvio da rea sobre a qual o mesmo deve operar. Como rea para testes preliminares, optou-se por mapear as redes sem o ao redor do prdio do ICEX, no campus da UFMG. Comprovou-se que esta era uma regio boa para a realizao dos testes, devido densidade de pontos de acesso nessa rea, o que contribui para a preciso do sistema. O processo de testes do sistema foi prejudicado pela falta de um dispositivo real e porttil que executasse o sistema operacional Android, porque as informaes de redes sem o, sinais de celular e GPS no podiam ser obtidas diretamente atravs do emulador. Foram realizados alguns testes preliminares de preciso para o sistema, representados na Tabela 3.1: Em 88% dos casos o sistema retornou como posio para o dispositivo o ponto que representava aquele mais prximo de sua posio real. Em 8% dos casos ele retornou um ponto imediatamente vizinho, o que representa um erro de aproximadamente 10 metros para a densidade de pontos do mapeamento usada. Outros dois testes encontraram uma preciso menor do que a de 10 metros, porm em nenhum dos casos o erro superou os 40 metros. As variaes na preciso do sistema so observadas porque existem pontos no

108

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

Figura 3.4. Sobreposio de mapas no cliente

Figura 3.5. Posio de um dispositivo em tempo real

Nmero de testes 44 4 1 1

Erro (em nmero de pontos de distncia) 0 1 2 3

Tabela 3.1. Testes preliminares de preciso do sistema

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

Livro Texto dos Minicursos

109

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

110

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

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

Livro Texto dos Minicursos

111

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

(c) Aumento da potncia de transmisso, recuperao da velocidade. Figura 3.6. Adaptao da potncia da antena do ponto de acesso

(a) Usurio em regio sob efeito de interferncia.

(b) Queda na velocidade devido a erros de co- (c) Aumento da potncia de transmisso, intermunicao causados pela interferncia ferncia causa perda de conexo em outros elementos . Figura 3.7. Adaptao da potncia da antena do ponto de acesso.

vazo efetiva e no atraso presente. Em ambientes com muita interferncia, esse algoritmo pode ser ativado diversas vezes, ocasionando mais mudanas nos modems e aumentando com isso a variao do atraso. Em ambientes com mobilidade, e sem interferncia, essa escolha dos modems pode mudar de maneira gradual, com a velocidade diminuindo proporcionalmente ao deslocamento. De posse dessa informao, os usurios e as aplicaes podem adaptar a interface, de maneira a melhorar essa vazo, como por exemplo, aumentar da potncia de transmisso em situaes de deslocamento. A deciso adequada deve levar em conta as restries dos dispositivos e os requisitos da aplicao.

112

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

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

3.2.2.2. Propagao de sinais

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

Livro Texto dos Minicursos

113

Figura 3.8. Mltiplos caminhos da propagao da onda transmitida

3.2.2.3. Interferncia Considerando um transmissor e um receptor, que utilizam a interface de rede IEEE 802.11, possvel dividir as fontes de interferncia em dois grupos. O primeiro o das interferncias geradas por outros elementos de rede que tambm usam a interface IEEE 802.11, mas no esto participando diretamente da comunicao. O segundo so aparelhos comuns que tambm trabalham na faixa de freqncia ISM usada pelo IEEE 802.11. Em relao ao primeiro grupo possvel identicar as seguintes interferncias: Co-canal: ocorre no momento em que outros elementos sicamente prximos utilizam canais adjacentes e possuem uma potncia de transmisso elevada, causando interferncia. A recomendao do prprio padro para esse caso o uso de canais que no se sobrepem, como os canais 3, 6 ou 11; Direta: ocorre quando outros elementos no conhecidos utilizam o mesmo canal de comunicao. Por exemplo, vizinhos que utilizam o mesmo canal em sua rede sem o domstica. Dada a grande popularidade do IEEE 802.11 um caso comum. Considerando o contexto de redes internas em casas e escritrios, sobre o segundo grupo, possvel identicar as seguintes fontes de interferncia: Telefones sem o: Trabalham na faixa de freqncia de 2.4GHz e 5.4GHz. Sua principal caracterstica o uso constante do canal de transmisso, para manter a qualidade da comunicao de voz, e da alta potncia, j que o alcance de uso uma das principais caractersticas deste tipo de aparelho; Bluetooth: Este padro tem se tornado cada vez mais popular, presente em muitos dispositivos portteis. Ele no possui grande potncia de transmisso, uma vez que tem o foco em economizar energia e utiliza uma tcnica de envio com salto de freqncia, trocando os canais de uso a uma taxa de aproximadamente 3200 ms, para minimizar o uso de canais que sofrem interferncia. Em contrapartida, a interferncia que causa sobre o IEEE 802.11 j bem conhecida, como visto em [Punnoose et al. (2001)] e [Jung-Hyuck & Jayant (2003)];

114

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

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

Figura 3.9. Metodologia de identicao

Essas caractersticas foram consideradas no modelo de maneira a fazer vivel a descrio da assimetria forte entre as amostras e as variaes da mdia e da disperso. A complexidade da srie temporal prev o uso de modelos simples de previso, justicando

Livro Texto dos Minicursos

115

o uso das estratgias de mdias mveis exponenciais nos grcos de controle (os grcos de controle clssicos utilizam modelos mais simples e menos expressivos). Tambm, cabe notar que a variabilidade e assimetria so melhor caracterizados pela anlise de multiresoluo. Dessa forma, o uso conjunto dos dois mtodos justicado pelos seguintes pontos: Anlise Temporal: O grco de controle MCEWMA identica eventos fora de controle que aparecem na mdia das amostras das medidas de RSSI e o grco de controle MCEWMV identica as situaes fora de controle sobre a varincia. Utilizando esses grcos de controle, o controle estatstico de processos permite a investigao da amplitude do sinal identicando tendncias de situaes fora de controle. Mas a informao sobre a variabilidade entre as diferentes amostras das medidas de RSSI no so totalmente identicadas, sendo necessrio uma anlise espectral entre essas medidas; Anlise Espectral: A transformada de wavelets permite identicar a variabilidade de um conjunto de amostras sucessivas das medidas de RSSI. Aplicada sobre os dados suavizados na sada do MCEWMA, o resultado da transformada usado para descrever a variabilidade entre as diferentes amostras. A transformada aplicada sobre as medidas suavizadas e no sobre as medidas para evitar o rudo presente nas medidas. O rudo e a amplitude do sinal so vericados pelos grcos de controle. Relaciona a variabilidade das medidas. Descreve as frequncias presentes em cada janela t. Numa janela t, nveis maiores indicam um transiente relativo a mobilidade. Nveis menores indicam presena de interferncia A partir dos vetores gerados pelos grcos de controle, x , su e sl , associados com o escalograma e a identicao do mdulo feitos na anlise de wavelets, armazenados nos vetores E e M, possvel identicar o comportamento da srie temporal e com isso associar este comportamento aos eventos presentes no ambiente da rede sem o. Com esta informao, e aps uma srie de testes, feitos para garantir um intervalo de conana de 95%, a informao dos eventos foi usada para criar a Tabela 3.2. Esta tabela enumera os eventos, associados com interferncia e mobilidade e apresenta a descrio. Esta informao utilizada para mostrar ao usurio a descrio no momento que feita a identicao de cada evento. 3.2.2.6. Identicao de Eventos Estes testes foram conduzidos em um ambiente interno de uma casa, considerando o cenrio de baixa densidade de usurios e uma distribuio no planejada de pontos de acesso na vizinhana. Associado a isso, foram utilizados telefones sem o e dispositivos Bluetooth como fonte de interferncia. Toda a mobilidade foi feita em aproximadamente 0.5 m/s, uma velocidade para uma pessoa andando e usando um dispositivo mvel (a noo de mobilidade humana ainda um tpico para pesquisas; como pode ser visto em, Gonzlez et al. 2008).

116

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

Tabela 3.2. Classicao de Eventos

Evento Detectado 1 2 3 4 5 6 7 8

Descrio Perda de Conexo Perda de Conexo devido Interferncia Aproximando do AP Interferncia Fraca Afastando do AP Interferncia Mdia Movendo Interferncia Forte

Em todos os grcos, cada experimento foi feito com a durao de 300 seconds, e a resoluo de tempo no eixo x associada a taxa de amostragem de 10 ms. Para cada evento detectado, o mecanismo pode ser usado para alertar o usurio, usando as descries mostradas na Tabela 3.2. A Figura 3.10 mostra o primeiro caso, onde no existe mobilidade ou interferncia. Todas as utuaes dos sinais so devido ao rudo causado pelo decaimento em multi-caminho, o qual ignorado pelo sistema de deteco e nenhum evento registrado.
Measures
RSSI(dbm) 30 70 0 50

500

1000

1500 time

2000

2500

3000

Detected Event

time

Figura 3.10. Investigao da comunicao em um dispositivo parado, sem a presena de interferncia. Nenhum evento identicado.

A Figura 3.11 mostra a deteco de uma comunicao Bluetooth, que causa interferncia sobre a comunicao WiFi. Para este tipo de interferncia, uma interface Bluetooth foi ativada e usada com o Lan Prole, para acessar um ponto de acesso Bluetooth. Os eventos identicados esto nos pontos ressaltados no grco. No grco mostrado o tempo onde os eventos foram detectados e o nmero que indica o evento, como mostrado na Tabela 3.2. O cenrio de mobilidade mostrado na Figura 3.12. Neste teste, o usurio move afastando do ponto de acesso, a partir do instante 10000 ms at 15000 ms, e o evento 5 detectado, como mostrado no grco. Quando a movimentao feita em direo ao ponto de acesso, at o tempo 24400 ms, outros eventos associados com mobilidade

Livro Texto dos Minicursos

117

Measures
RSSI(dbm) 30 70 0 50

500

1000

1500 time

2000

2500

3000

Detected Event

time

Figura 3.11. Investigao da comunicao em um dispositivo parado em um ambiente com interferncia.

tambm so detectados. Neste caso, duas outras identicaes associadas a interferncia foram feitas, causadas pelos pontos de acesso na regio. Com isso, o cenrio nal mostrado na Figura 3.13, onde a mobilidade e a interferncia aparecem: o usurio movimenta para um lugar onde existe a presena de interferncia oriunda de diferentes pontos de acesso. Neste caso, esta informao mostra ao usurio a condio na qual se encontra a regio que ele esta se deslocando. A importncia deste resultado oferecer ao usurio a informao sobre as condies do ambiente de comunicao, oferecendo ao usurio a opo de movimentar para fora da regio de interferncia.
Measures
RSSI(dbm) 30

70

50

500

1000

1500 time

Detected Event

34

78

Figura 3.12. A identicao do dispositivo movimentando.

3.2.2.7. Arquitetura e Implementao A implementao da metodologia proposta nessa tese, atravs de um software, foi feita com o foco em permitir que as aplicaes sejam noticadas sobre a identicao da mo-

1120 1280 1440 1600 1760 1920 2080 2240

time

1760 1920 2080 2240 2400 2560 2720 2880 2000 2500 3000

118

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

Measures
RSSI(dbm) 30 70 0 50

500

1000

1500 time

2000

2500

3000

Detected Event

800 960 1120 1280

time

Figura 3.13. Identicao de um dispositivo movendo em um ambiente sujeito a interferncias.

bilidade e interferncia. Diferente de uma API, que necessita apenas oferecer o acesso a determinadas funcionalidades do sistema, essa identicao um sistema reativo, assncrono. Dada essa caracterstica, necessrio que essa implementao verique constantemente a interface e, em seguida, disponibilize essa informao para as aplicaes. A disponibilizao das informaes sobre a ocorrncia de eventos pode ser feita de maneira ativa, onde feita a noticao para as aplicaes sobre alguma atualizao no contexto, ou pode ser feita de maneira passiva, onde as aplicaes buscam a informao sobre o contexto. Devido necessidade de uma rpida reao ao contexto da comunicao sem o, a disponibilizao ativa desta informao permite uma adaptao adequada ao ambiente. A partir deste requisito, foi criado um middleware, integrado a diferentes sistemas operacionais, com o objetivo de permitir uma base de testes slida, alm de uma integrao deste middleware de maneira mais transparente com as aplicaes. O objetivo deste middleware permitir a identicao dos eventos de mobilidade e interferncia em diferentes tipos de sistemas operacionais. Os seus componentes so descritos a seguir: Amostragem: implementa uma interface com a API de cada sistema operacional, que permite a leitura das medidas de RSSI. Este mdulo tem sua implementao especca para cada sistema operacional, atendendo s restries de memria e processamento. Controle Estatstico: efetua o clculo do MCEWMA e MCEWMV e a identicao dos eventos fora de controle; Filtro de Wavelet: efetua a transformada de wavelets e o clculo do escalograma sobre os dados da janela amostral; Agente: efetua o clculo do scoreboard e gera a identicao do evento. Tambm especco para cada sistema operacional, uma vez que utiliza os sistemas de gerao de eventos e de sinalizao disponveis.

1600 1760 1920 2080 2240 2400 2560 2720 2880

Livro Texto dos Minicursos

119

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

Requisito RSSI Implementao Integrao

Windows XP Acesso ao WMI, Microsoft (2008) Servio Conexo via socket com agente

Linux Acesso ao PROC diretrio proc Daemon Escrita no diretrio proc

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

120

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

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


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

Livro Texto dos Minicursos

121

solicitar informaes ao usurio para denir o que deve ser feito. Essa forma mais trabalhosa e exige interao entre a aplicao e usurio a todo instante, o que pode tornar a aplicao mais lenta. A soluo proposta consiste em estabelecer uma comunicao apenas entre a aplicao e o perl. A aplicao no precisa se comunicar com os demais servios que compem o perl. Esse perl j foi construdo previamente por servios auxiliares (servio de localizao, servio de congurao de dispositivo, servio de gerenciamento de interesses (contexto) servio de congurao da rede e servio de congurao do dispositivo). Uma representao da soluo proposta pode ser vista na Figura 3.14.

Figura 3.14. Modelagem da soluo proposta. O perl composto por informaes fornecidas pelos servios auxiliares. A aplicao se comunica apenas com o perl.

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

122

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

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

Livro Texto dos Minicursos

123

3.4. Servio Mvel de Noticao de Eventos Baseado em Contexto


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

124

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

computao ubqua Weiser (1993a), apresenta em uma nica frase o conceito de transparncia: uma boa ferramenta exatamente aquela que est invisvel para o usurio, no invadindo sua conscincia. O foco do usurio deve ser maior na atividade ao invs da ferramenta, e a execuo de tarefas deve ser feita sem a necessidade de ateno e cincia da tecnologia por trs. O modelo de comunicao baseado em eventos descreve um paradigma aplicvel na interconexo de elementos que compem aplicaes em ambientes ubquos Weiser (1993b), Dearle (1998) de uma maneira assncrona. Estes ambientes em geral contem aplicaes e elementos de rede que so em geral heterogneos e distribudos. Eles so heterogneos devido ao fato destes poderem executar tipos de tarefas diferentes para o usurio, requerendo conjuntos variados de componentes de hardware e software. Eles tambm so distribudos de tal forma que um nico elemento de rede pode possuir uma dependncia sobre outros elementos, tais como obter informaes do ambiente e executar tarefas pelo usurio. 3.4.4. Servio Mvel de Noticao de Eventos O processo de gerenciamento de eventos e os resultados de um prottipo so apresentados neste trabalho com o objetivo de demonstrar a viabilidade deste servio em aplicaes mveis e tambm sua importncia na computao ciente de contexto.

3.4.4.1. Arquitetura O servidor de eventos utiliza uma arquitetura cliente-servidor composta de um componente localizado no dispositivo mvel e um servidor de dados remoto. A razo de o sistema possuir dois componentes distribudos est no fato da necessidade em se captar eventos em ambos os lados. O servidor de eventos localizado no dispositivo recebe os eventos gerados por outros servios ou aplicaes em execuo e os envia para o servidor de eventos localizado no servidor de dados (SDE). Este servidor de eventos responsvel por receber os eventos gerados no dispositivo, receber os eventos gerados no prprio servidor e enviar noticaes de eventos ocorridos no lado do servidor de interesse a partir de SeRBIs para as aplicaes em execuo ou diretamente para o usurio. 3.4.5. DroidGuide Para ns de demonstrao da viabilidade no gerenciamento de eventos em aplicaes ubquas, o sistema proposto neste trabalho foi incorporado em uma aplicao turstica denominada DroidGuide. O DroidGuide utiliza uma arquitetura cliente-servidor composta de clientes mveis na plataforma de software e sistema operacional Android e um servidor de dados remoto na plataforma de desenvolvimento de aplicaes Web App Engine (GAE ) tambm da Google, executando sobre o ambiente de execuo Python. Clientes mveis comunicam com o servidor atravs de mensagens de requisio/resposta sobre o protocolo HTTP. Dados so enviados do cliente para o servidor atravs de requisies do tipo GET . Ao receber estas requisies, o servidor as processa e responde para o cliente atravs do envio de documentos XML sobre HTTP. Neste prottipo, assume-se que o dispositivo mvel possui capacidade de se conectar ao servidor utilizando um ponto de

Livro Texto dos Minicursos

125

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

acesso em uma das redes sem o disponveis (wireless LAN ou GPRS/EDGE/HSDPA). Como o objetivo de simplicar e facilitar a integrao das diversas funcionalidades do sistema, o DroidGuide foi logicamente dividido em mdulos com responsabilidades e relacionamentos bem denidos. Cada mdulo em geral composto de um componente localizado tanto no dispositivo mvel (em forma de cliente) quanto no servidor de dados (em forma de servio). Os principais mdulos da aplicao so: 1) aplicao, responsvel por gerenciar as principais telas, comandos da aplicao e dene o relacionamento funcional entre todos os outros mdulos do sistema; 2) perl, responsvel por gerenciar as informaes e interesses do usurio; 3) contexto, que gerencia as informaes sobre o estado do usurio, informaes climticas e de localizao; 4) comunicao, que prov a comunicao de todos os mdulos entre o cliente e o servidor; 5) escalonador, responsvel por apresentar atraes tursticas baseadas nas informaes de perl e contexto do usurio; 6) servidor de eventos, responsvel por obter informaes de mudana de dados de perl e contexto e noticar o usurio de servios relacionados a estas mudanas; 7) adaptao, responsvel pela apresentao do contedo baseado em dados de perl e contexto.

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

126

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

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

Livro Texto dos Minicursos

127

Figura 3.16. Demonstrao do processamento de eventos ocorrendo no dispositivo e no servidor de dados do DroidGuide. Em (A), mudanas no ambiente ou nos dados de perl e contexto do usurio causam a ativao do servidor de eventos (B). O servio cria eventos e os envia para o servidor de dados (C), onde o servidor de eventos os processa (D). O servidor busca por SeRBIs interessadas nos eventos (E). Caso os SeRBIs subscritos pelo usurio dependam destes eventos, eles sero ativados. Os SeRBIs tambm podem gerar eventos em situaes onde ocorram mudanas de contexto remoto (F), criando assim eventos no lado do servidor de dados(G). Estes eventos criados no servidor de dados e ativaes de SeRBIs causam a criao de mensagens de noticao (H) que sero entregues ao cliente (I). O dispositivo ento recebe a mensagem de noticao, 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 congurao do perl de processamento de eventos no dispositivo e no servidor remoto com o objetivo de aperfeioar a utilizao dos recursos presentes nos dispositivos mveis como bateria e processador e custo de transmisso de dados na rede. Este perl de processamento incluiria a opo de denir os ns responsveis pelo processamento de eventos mediante as condies em que o dispositivo se encontra, tais como o acesso rede (qualidade do canal, tipo), custo de transmisso (valor, consumo de energia), densidade de eventos sendo gerados.

128

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

Figura 3.17. a) interface com mapas apresentando as atraes tursticas, b) mapa mostrando uma possvel rota entre as atividades tursticas.

Figura 3.18. c) noticaes de mensagens e d) apresentao de contedo ao usurio a partir de atraes.

Livro Texto dos Minicursos

129

3.5. Tratamento de Contextos Coletivos em Aplicaes Cientes de Contexto


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

130

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

cias e situaes pessoais. Devem explicitar ainda a relao entre o usurio e os demais elementos de seu grupo. Cada usurio pode apresentar um valor prprio. Fome, sono e grau de parentesco so alguns tipos possveis de contextos prprios. A combinao de dados contextuais coletivos deve ser utilizada para realizar a adaptao das tarefas da aplicao. No entanto, a divergncia entre os mesmos pode levar ocorrncia de conitos de interesse. Ao analisar os valores de entrada de contextos coletivos apresentados por cada um dos usurios, bem como os recursos e caractersticas correntes dos ambientes fsicos e computacionais compartilhados, a aplicao poder entrar em um estado de inconsistncia, incapaz de decidir o que dever ser feito quanto s adaptaes a serem realizadas de maneira a atender as demandas individuais e coletivas ao mesmo tempo. Nesse caso, diz-se que ocorreu na aplicao um conito coletivo. Identicada a ocorrncia de um conito coletivo, a aplicao dever encontrar formas, simples ou sosticadas, para resolver a inconsistncia ou impasse. A execuo de uma tcnica ou algoritmo que permita atender de maneira inteligente e conveniente as diferenas geradas pelos dados contextuais coletivos utilizados denominada tratamento de contextos coletivos. Para tratar conitos coletivos necessrio que a soluo de conciliao proposta modique de alguma maneira o conjunto de tarefas da aplicao. Nesse caso, deve-se escolher em quais aspectos das tarefas sero realizadas tais alteraes, permitindo assim a escolha do algoritmo de conciliao mais adequado. Tais aspectos so chamados os nveis de atuao e alguns exemplos para os mesmos so os parmetros, a ordem, o agrupamento e a composio das tarefas. Vale ressaltar que alteraes nas tarefas podem levar em ltima instncia a modicaes nos ambientes fsicos e/ou computacionais. 3.5.3. Trabalhos Relacionados Os trabalhos encontrados em [Masthoff (2004)] e [McCarthy & Anagnost (2000)] podem ser considerados relacionados ao objetivo geral deste trabalho: realizar tratamento de conitos coletivos. No entanto, enquanto tais trabalhos esto focados em uma nica aplicao, um conjunto fechado de contextos e arquiteturas de implementao especcas, a proposta deste trabalho possui uma viso mais ampla e dinmica, no sendo portanto particular para aplicaes ou contextos e pretendendo oferecer uma gama de possibilidades de implementao. Roy et al. em [Roy et al. (2006)] apresentam uma soluo para construo de uma casa inteligente que considera as atividades e localizaes de mltiplos moradores. A contribuio desse trabalho est em oferecer suporte aos diferentes participantes capturando as correlaes e interaes entre seus movimentos e atividades, e proporcionando um ambiente adaptado a todos, sem conceder preferncias. Ao contrrio da proposta apresentada por Roy et al., este trabalho apresenta uma soluo para tratamentos de conitos coletivos genrica, possvel de ser implementada para qualquer aplicao e adaptvel s condies correntes das mesmas. Shin et al. [Shin & Woo (2005)] discutem tambm o problema da adaptao de ambientes ubquos em situaes de compartilhamento de aplicaes, servios e recursos por mltiplos usurios. A soluo para tais conitos apresentada pelos autores foi a atribuio de prioridades para cada usurio. O trabalho utiliza um tipo de soluo que emprega sempre a mesma maneira simples e rgida para resolver o problema

Livro Texto dos Minicursos

131

em questo. Ardissono et al. [Ardissono et al. (2002)] apresentam um sistema Web para elaborao de lista de tarefas para grupos heterogneos de turistas. Cabe a um dos usurios interagir com o sistema para informar o nmero de pessoas no grupo e dividi-las em sub-grupos relevantes, considerando critrios tais como idades, interesses, capacidades visuais e decincias fsicas. Com base nas informaes fornecidas, o sistema escolhe as melhores tarefas para cada sub-grupo, podendo apresent-las em listas separadas ou em uma verso nica. O sistema descrito por esse trabalho diferente de aplicaes cientes de contexto uma vez que seu objetivo ajudar usurios a escalonar o passeio, e no gui-los durante as visitas. 3.5.4. Tratamento de Conitos Coletivos: Uma Abordagem Dinmica No processo de desenvolvimento de uma soluo para tratamento de conitos coletivos, vericou-se a necessidade de modelar todo o ciclo de vida de aplicaes ciente de contexto de forma a entender quais seriam as principais aes necessrias de serem projetadas para a implementao e execuo das mesmas. A viso geral desse ciclo permite uma maior compreenso da dinmica de funcionamento dessas aplicaes, identicao dos principais desaos associados e em especial a percepo dos pontos nos quais aes especcas para aplicaes coletivas devem ser executadas. Uma vez que no foram encontrados pelos autores na literatura trabalhos que abordem tal assunto, em particular considerando aplicaes com carter coletivo, um diagrama de atividades para o ciclo de vida de aplicaes ubquas, cientes de contexto e coletivas foi projetado. Tal diagrama composto por fases e suas respectivas atividades. Cada fase congura um momento do ciclo de vida de uma aplicao ciente de contexto, e cada atividade representa para a fase associada uma operao importante a ser executada para o correto e completo funcionamento da aplicao. Embora proposto para modelar aplicaes coletivas, o diagrama pode ser utilizado tambm no projeto de aplicaes individuais, uma vez que todos os mdulos a serem desenvolvidos apenas para as primeiras foram encapsulados em um nico bloco, chamado Conict Engine, o qual executado em uma nica atividade. 3.5.5. O Ciclo de Vida das Aplicaes Coletivas A abordagem escolhida para a construo do diagrama est baseada na distribuio de atividades a serem executadas em trs fases distintas do ciclo de vida de uma aplicao ubqua e ciente de contexto: (i) Pr-aplicao, (ii) Aplicao e (iii) Ps-aplicao. A Figura 3.19 ilustra o diagrama. A fase Pr-aplicao envolve a preparao de todos os aspectos necessrios ao correto e completo funcionamento de uma aplicao ubqua e ciente de contexto com tratamento de conitos em contextos coletivos. Desse modo, devero ser executadas as seguintes atividades: Congurar ambientes inteligentes: os ambientes a serem utilizados devem ser instrumentados com toda e qualquer forma de oferecer para a aplicao dados contextuais diversos, recursos fsicos e computacionais demandados pelas aplicaes e ainda os meios necessrios para comunicao entre os dispositivos instalados;

132

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

Pr-aplicao Configurar Ambientes Inteligentes

Aplicao Obter Entradas Pr-processamento Sinttico e Semntico das Entradas Classificao de Tarefas

Ps-aplicao

Executar Tarefas de Finalizao Avaliar Qualidade Executar Aes de Aprendizado Construir / Atualizar Bases de Dados

Configurar Hardware do Usurio

Desenvolver Software (Aplic., Arq., Engine)

Processamento de Tarefas Coletivas Executar Tarefas Individuais Executar Tarefas Coletivas

Executar Tarefas de Startup

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

Congurar hardware dos usurios: todo usurio necessita de dispositivos de hardware para interagir com a aplicao, sejam eles sensores introduzidos, computadores vestveis ou mesmo os tradicionais computadores de mo ou celulares. Uma vez que existem diversos modelos e conguraes para dispositivos utilizados nesses casos, necessrio no s detalhar requisitos mnimos de funcionamento, mas tambm escolher uma estratgia para lidar com a potencial heterogeneidade observada; Desenvolver software: inclui as implementaes da aplicao, de todos os mdulos de suporte da arquitetura de software escolhida e do bloco responsvel pelo tratamento de conitos coletivos. Executar tarefas de Startup: atividade na qual sero executadas todas as aes necessrias para iniciar a aplicao, os mdulos componentes da arquitetura de software e o bloco para tratamento de conitos coletivos utilizado. A fase da Aplicao aquela em que os usurios, portando seus dispositivos corretamente escolhidos e congurados, se inserem em uma diversidade de ambientes inteligentes previamente instrumentados e executam, de acordo com suas necessidades, uma srie de tarefas disponibilizadas pela aplicao. Nessa fase, os usurios desejam ser servidos de tarefas da melhor maneira possvel de acordo com seus dados contextuais, dos demais elementos do grupo e os do ambiente a sua volta. Nesse caso, as seguintes atividades so executadas: Obter entradas: nessa atividade, a aplicao obtm junto arquitetura de software utilizada as trs entradas bsicas necessrias para sua execuo: dados contextuais individuais, dados contextuais do ambiente e a lista de tarefas disponibilizadas para seus usurios; Pr-processamento semntico e sinttico: dados contextuais e tarefas da aplicao devem ser pr-processados, de forma a adquirirem associaes semnticas e sintaxes padronizadas. Essas aes viabilizaro melhor armazenamento, intercmbio e utilizao nal dos mesmos. Alm disso, ser necessrio associar contextos s tarefas, de maneira que apenas aqueles dados que sejam realmente importantes para

Livro Texto dos Minicursos

133

as adaptaes executadas sejam coletados e considerados. Outras tarefas de prprocessamento especcas para cada aplicao podem ainda ser executadas; Classicao de tarefas: as tarefas da aplicao so separadas em individuais ou coletivas. As tarefas individuais podem ser prontamente ofertadas aos usurios, uma vez que sua execuo no possui relao direta com contextos e tarefas de outros usurios. As tarefas coletivas, entretanto, s devem ser ofertadas aos usurios aps passarem por um bloco de avaliao. Diferentes tcnicas podem ser utilizadas para realizar a classicao, como a anlise dos dados semnticos associados, dos contextos utilizados, troca de mensagens entre usurios participantes, dentre outras; Processamento de tarefas coletivas: o sistema procurar por conitos entre os contextos coletivos apresentados pelos diversos usurios participantes, considerando o estado corrente dos ambientes fsicos e computacionais compartilhados, bem como o conjunto de tarefas a serem processadas. Caso tal conito no seja detectado, o conjunto de tarefas est liberado e poder ser executado. Se um conito for detectado, o mesmo dever ser ajustado em algum nvel, antes de ser ofertado. Vale ressaltar que o conjunto de tarefas processados poder conter apenas uma ou at mesmo todas as tarefas disponibilizadas pela aplicao. Essa atividade executada apenas para tarefas classicadas previamente como coletivas. Em algum momento, a aplicao ciente de contexto ser nalizada pelo usurio ou espontaneamente uma vez que todas as tarefas j foram executadas. Nesse ponto se inicia a fase chamada Ps-aplicao, a qual possui algumas atividades associadas, utilizadas para encerrar a aplicao, vericar a qualidade das aes realizadas e armazenar dados e informaes obtidas ao longo do perodo de utilizao. Essa fase em particular bastante dependente da aplicao, uma vez que cada uma poder apresentar necessidades especcas de nalizao. 3.5.5.1. Conict Engine: Deteco e Tratamento de Conitos Um conjunto de mdulos deve ser implementado junto aplicao de maneira a permitir, sempre que necessrio, o processamento das tarefas coletivas. Esse conjunto pode ser visto como um arcabouo de software e chamado Conict Engine. Seus componentes so apresentados a seguir, juntamente com uma discusso sobre as possibilidades de implementao para o mesmo. A organizao dos mdulos do arcabouo conforme mostra a Figura 3.20 uma contribuio deste trabalho e foi proposta para funcionar com diferentes arquiteturas de software para sistemas cientes de contexto e de maneira independente das aplicaes utilizadas. O mdulo de vericao de conitos realiza uma anlise tri-dimensional considerando como eixos os pers dos usurios envolvidos, o perl do ambiente e as tarefas da aplicao. Pode ser programado para utilizar todos os dados disponveis nessas dimenses para anlise, bem como apenas um subconjunto desses. A escolha de como ser feita a anlise depende basicamente dos nveis de atuao escolhidos, os quais indicam como as tarefas podem ser processadas na busca pela ocorrncia de conitos e como as mesmas podem ser alteradas em casos de conciliao.

134

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

Conflict Engine

Deteco de Conflitos - Anlise Tri-dimensional


Conciliao - Metodologia para Resoluo de Conflitos Coletivos

Nveis Atuao Perfis

Figura 3.20. Mdulos componentes da Conict Engine.

O mdulo de conciliao recebe como entradas as tarefas conitantes, os pers dos usurios envolvidos, o perl do ambiente, os nveis de atuao da conciliao, algoritmos ou tcnicas disponveis para o tratamento e demais informaes necessrias armazenadas em bases de dados da arquitetura de software utilizada. Esse mdulo deve executar algoritmos que resolvam o conito detectado para determinado nvel de atuao. Uma vez que as aplicaes em foco so ubquas, tal mdulo dever executar tcnicas de conciliao vinculadas a limites para consumo de recursos e/ou qualidade de servio. Como resultado tarefas adaptadas so produzidas atendendo aos interesses da coletividade, mas procurando considerar ao mximo as demandas individuais e as possibilidades contextuais correntes. O mdulo de Re-Startup invocado em alguns casos, como parte do processo de anlise para vericao de conitos ou dos ajustes necessrios para a adaptao de tarefas que envolvem contextos coletivos. Permite re-executar as aes que foram previamente realizadas pela atividade de Startup na fase de Pr-aplicao.

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

Re-Sta rtup

Classificar Algoritmos

Iniciar Acordos

Execuo Supervisionada

Tarefas Outros BDs

Executar Tarefas Coletivas

Arquitetura de Software

Livro Texto dos Minicursos

135

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

136

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

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

Livro Texto dos Minicursos

137

3.6. Utilizao de Dados Contextuais para Segurana em Aplicaes Ubquas


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

138

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

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

Livro Texto dos Minicursos

139

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

140

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

Route Selector: A principal funo deste componente (Seletor de Rota) avaliar as rotas baseado nos valores de conana dos ns que constituem a rota e selecionar a melhor baseado nesta avaliao. As rotas so avaliadas e aquela com o maior grau de conana utilizada. Algumas vezes, uma rota que sabidamente boa pode ser avaliada como uma rota ruim e outra com um n malicioso pode ser avaliada como boa. Por isso, a estratgia de seleo da rota uma tarefa bastante difcil e poderia considerar outros fatores, como latncia. Entretanto, por questes de simplicidade, a estratgia utilizada avalia a conana da rota utilizando relaes de transitividade (a conana de um n i em um n j calculada levando em conta o valor da conana entre todos os ns que esto na rota de i at j). Como melhoria sobre o mecanismo de escolha de rotas original do NS, pode-se citar o fato de que, se uma rota avaliada com o valor mximo, as demais rotas no so vericadas, havendo assim um ganho em tempo de execuo. Acknowledgment Monitor: Para realizar a atualizao dos valores de conana dos ns, utilizado um mecanismo de conrmao (do ingls, acknowledgment) de mensagens. Com o intuito de diminuir o overhead da rede, so utilizados acknowledgments apenas para pacotes de dados, e no para pacotes de roteamento. O propsito do mecanismo de conrmao usar os acknowledgments recebidos ou a falta deles para ajustar os valores de conana. Uma requisio de conrmao armazenada quando o pacote enviado e, se uma conrmao recebida dentre de um tempo limite, os ns da rota tem seu valor incrementado. Se uma conrmao no for recebida dentro do tempo limite, ento os ns pertencentes rota tero seus valores de conana reduzidos. 3.6.1.2. Concluses e Trabalhos Futuros Sem a existncia do modelo de conana embutido no protocolo, uma rota que possua um n malicioso pode ser usada constantemente. Como os pacotes sero, na maior parte das vezes, descartados, esperado que o throughput diminua. Por outro lado, se existe o conceito de conana e as rotas so escolhidas levando-o em considerao, sero evitadas aquelas rotas que contenham ns maliciosos. Assim, o throughput utilizando o protocolo modicado maior quando comparado ao protocolo original. Uma possvel melhoria no modelo a elaborao de uma forma justa e eciente de calcular a recomendao. Atualmente, as recomendaes consideram todos os ns conhecidos, e no somente os ns vizinhos. Alm disso, qualquer n capaz de fornecer recomendao, mesmo que seja um n malicioso. Portanto, uma mudana no mecanismo de clculo da recomendao pode melhorar consideravelmente o modelo. 3.6.2. Seleo adaptativa de protocolos de segurana Com toda a heterogeneidade da computao mvel, difcil criar especicaes estticas para qualquer tipo de hardware e software de computao mvel. Projetistas e desenvolvedores devem considerar limitaes no hardware, demandas de segurana e QoS do software e propriedades do protocolo de comunicao. QoS (Quality of Service), traduo de qualidade de servio, signica mtricas que devem ser respeitadas para que

Livro Texto dos Minicursos

141

uma aplicao provenha suas funcionalidades mnimas. Como toda essa informao nem sempre est disponvel, solues integradas e adaptativas para dispositivos mveis so desejveis. Neste contexto, a especicao de protocolos de segurana se torna uma preocupao importante. Do ponto de vista do sistema, cada aplicao pode no apenas ter diferentes necessidades de segurana, como tambm diferentes demandas de QoS. J do ponto de vista da aplicao, ela pode estar sendo executada em hardware com diferentes capacidades, bem como sobre diferentes protocolos de comunicao. As atuais solues nativas dos protocolos de comunicao, como as presentes no IEEE 802.11 e no Bluetooth, propem solues conhecidamente incompletas ou falhas [Karygiannis & Owens (2002)], alm de serem focadas apenas na camada de enlace da pilha de protocolos. Com isso foi proposto um middleware de segurana adaptativo que altera dinamicamente os protocolos de segurana usados entre dois pares comunicantes, de acordo com variaes em um conjunto de parmetros. O servio em questo, nomeado ASecMid, sigla para o termo em ingls Adaptive Security Middleware, monitora parmetros relacionados s condies do meio sem o, uso de recursos do sistema, capacidades de hardware e denies da aplicao quanto a mtricas de QoS e nveis de segurana desejados. mantida uma grande coleo de protocolos de segurana que podem ser usados, e o mais vivel para cada transmisso escolhido de acordo com os parmetros monitorados. Aplicaes acessam o middleware de uma forma transparente, como um soquete de rede tradicional, no ciente dos protocolos de segurana aplicados. Alm disso, a aplicao pode prover uma descrio semntica do uxo de dados a ser transmitido, de forma que a o nvel de segurana de cada parte da transmisso seja denido individualmente para diferentes blocos de dados. A ideia deste trabalho no desenvolver novos algoritmos de segurana, mas sim usar os existentes da maneira mais eciente possvel, com base no Princpio de Proteo Adequada, que arma que se deve aplicar a segurana adequada para cada tipo de dado e contexto. Os resultados obtidos mostram a eccia da soluo. As principais motivaes para este trabalho surgem da heterogeneidade de dispositivos, aplicaes e protocolos de comunicao existentes no meio mvel e sem o, como explicitado no comeo deste captulo. Diante disso, o desenvolvimento do middleware j benco no sentido de prover uma nica camada de segurana para diferentes contextos de hardware, software e comunicao. Alm disso, o trabalho toca num ponto importante ao se prover segurana para aplicaes mveis: a relao custo/benefcio entre prover segurana e manter a qualidade de comunicao e desempenho do sistema. O middleware tem o objetivo de trabalhar sobre essa relao, mantendo o equilbrio entre segurana e desempenho de acordo com o congurado pela aplicao sobrejacente. As caractersticas do meio em que um dispositivo est inserido muitas vezes so poderosas fontes de informao [Li et al. (2006)]. Com isso, a utilizao de parmetros de diversas fontes (aplicao, meio sem o, recursos do sistema) uma abordagem interessante para se criar um mecanismo adaptativo e que seja sensvel s mudanas no contexto. Este trabalho foi publicado em [Rocha & Loureiro (2007)].

142

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

3.6.2.1. Desenvolvimento Como discutido anteriormente, o principal objetivo do middleware proposto neste trabalho o de escolher dinamicamente o protocolo de segurana mais adequado para comunicao entre dois pares. O protocolo escolhido pode ser trocado durante a execuo, caso as condies de contexto variem. Em termos gerais, o middleware busca esse objetivo mantendo uma biblioteca de algoritmos de segurana existentes, avalia-os de acordo com as seis mtricas denidas e monitora parmetros de contexto para serem usados no processo de tomada de decises. Um arquivo de congurao lido pelo middleware toda vez que ele inicializado. Esse arquivo contm a biblioteca de possveis algoritmos de segurana a serem usados. Cada entrada no arquivo representa um algoritmo e informaes sobre ele, incluindo a os valores das seis mtricas. Os valores das mtricas de uso de recursos so automaticamente calculados e gerados durante a instalao do middleware. Cada algoritmo de segurana associado a seis propriedades denidas por mtricas. Dessas, trs so mtricas de fora de segurana (ou fora criptogrca): condencialidade, integridade e autenticao, e outras trs so mtricas relacionadas a uso de recursos: uso de memria, tabelas de tempo de processamento e de overhead de rede (em quanto o pacote de dados original aumenta de tamanho). As mtricas de fora de segurana so representadas por nmeros inteiros, de 0 a 100, cuja utilidade comparar diferentes algoritmos. Esses valores so denidos pelo administrador do sistema, atravs do arquivo de congurao. O middleware monitora parmetros de diferentes fontes: meio sem o, capacidades de hardware, uso de recursos do sistema e diretivas de QoS e nveis de segurana vindas da aplicao. Os parmetros usados no sistema proposto so listados na Tabela 3.4, que mostra tambm quais mtricas dos algoritmos so afetadas por cada parmetro. As unidades usadas tm como nalidade facilitar no processo de deciso de protocolos. Dessa forma, so privilegiadas unidades percentuais, por consistirem de valores com mnimos e mximos conhecidos. O middleware dividido em trs partes fundamentais: conexo segura, mquina de segurana e controle de parmetros. A conexo segura fornece a API para a aplicao acessar o middleware. Sua interface muito similar a uma biblioteca de rede padro (sockets) e mltiplas instncias podem ser executadas ao mesmo tempo. A mquina de segurana responsvel por executar a lgica de tomada de decises, bem como aplicar os protocolos de segurana em pacotes enviados ou recebidos pelas conexes seguras. O controle de parmetros monitora todos os parmetros e os torna disponveis para a mquina de segurana. A Figura 3.21 ilustra a arquitetura do sistema. Alm dos parmetros monitorados pelo middleware, a aplicao tambm pode prover um arquivo que descreve a semntica do uxo de dados a serem transmitidos. A descrio feita atravs de uma linguagem de anotao baseada em XML chamada LACS (Language for Annotation and Conguration of data Security) [Costa & Loureiro (2008)]. A linguagem permite a denio de conguraes de segurana (conjuntos de parmetros relativos restries de QoS e nveis de segurana), declaraes de padres de bytes que constituem mensagens especiais e o modelo de transmisso, escrito na forma

Livro Texto dos Minicursos

143

Parmetro Mobilidade Qualidade do canal Latncia Roteamento Capacidade de memria Informao do rdio Consumo de memria Uso de CPU Bateria Latncia mxima (QoS) Memria mxima (QoS) Mximo overhead de rede (QoS) Mximo overhead em negociaes (QoS) Nvel de condencialidade Nvel de integridade Nvel de autenticao

Mtricas Condencialidade e Autenticao Condencialidade, Integridade e Rede Processamento Condencialidade e Autenticao Memria Condencialidade, Integridade e Autenticao Memria Processamento Processamento, Rede e Memria Processamento Memria Rede Rede Condencialidade Integridade Autenticao

Tabela 3.4. Mapeamento de parmetros e mtricas afetadas

Figura 3.21. Arquitetura do middleware proposto

de uma sequncia de comandos imperativos, contendo comandos condicionais e de controle de uxo, tal qual uma linguagem de programao, que descreve o uxo de dados a ser transmitido, associando diferentes partes a diferentes conguraes de segurana. Quando o arquivo descritor de semntica utilizado, o middleware suprime os parme-

144

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

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

Livro Texto dos Minicursos

145

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

146

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

3.7. Concluso do Minicurso


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

Referncias
Akella, A., Judd, G., Seshan, S. & Steenkiste, P. (2007), Self-management in chaotic wireless deployments, WIRELESS NETWORKS 13(6), 737755. Ardissono, L., Goy, A., Petrone, G., Segnan, M. & Torasso, P. (2002), Tailoring the recommendation of tourist information to heterogeneous user groups, in Revised Papers from the International Workshops OHS-7, SC-3, and AH-3 on Hypermedia: Openness, Structural Awareness, and Adaptivity, Springer-Verlag, London, UK, pp. 280295. Bahl, P. & Padmanabhan, V. (2000), Radar: An in-building rf-based user location and tracking system, IEEE INFOCOM 2, 775784.

Livro Texto dos Minicursos

147

Buszko, D., Lee, W. & Helal, A. (2001), Decentralized ad-hoc groupware api and framework for mobile collaboration. URL: citeseer.ist.psu.edu/article/buszko01decentralized.html Cheng, Y.-C., Chawathe, Y., LaMarca, A. & Krumm, J. (2005), ccuracy characterization for metropolitan-scale wi- localization, MobiSys . Cheverst, K., Davies, N., Mitchell, K., Friday, A. & Efstratiou, C. (2000), Developing a context-aware electronic tourist guide: some issues and experiences, in CHI 00: Proceedings of the SIGCHI conference on Human factors in computing systems, ACM, New York, NY, USA, pp. 1724. Costa, D. N. & Loureiro, A. A. (2008), Adaptao de mecanismos de segurana para comunicao em ambientes mveis, Masters thesis, Universidade Federal de Minas Gerais. Dearle, A. (1998), Toward ubiquitous environments for mobile users, IEEE Internet Computing 2(1), 2232. Devlic, A. & Jezic, G. (2005), Location-aware information services using user prole matching, Telecommunications, 2005. ConTEL 2005. Proceedings of the 8th International Conference on . Dey, A. K. (2001), Understanding and using context, Personal Ubiquitous Comput. 5(1), 47. Dittmer, J. (2005), Solving the gps urban canyon problem., Frost and Sullivan Market Insight . Ericsson (n.d.), Mobile positioning system. URL: http://www.ericsson.com/mobilityworld/sub/open/technologies/mobile_positioning/index.html Gonzlez, M. C., Hidalgo, C. A. & Barabsi, A.-L. (2008), Understanding individual human mobility patterns, Nature 453(7196), 779782. Google (n.d.), Google maps advanced programming interface. URL: http://code.google.com/apis/maps Greeneld, A. (2006), Everyware : The Dawning Age of Ubiquitous Computing, New Riders Press. URL: http://www.amazon.ca/exec/obidos/redirect?tag=citeulike0920&path=ASIN/0321384016 GSMWORLD (n.d.), Gsm. URL: http://www.gsmworld.com/technology/index.shtml Haeberlen, A., Flannery, E., Ladd, A., Rudys, A., Wallach, D. S. & Kavraki, L. E. (2005), Practical robust localization over large-scale 802.11 wireless networks, in Proceedings of the 10th annual international conference on Mobile computing and networking.

148

27 Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos

Hansen, F. & Meno, F. I. (1977), Mobile fading-rayleigh and lognormal superimposed, IEEE Transactions on Vehicular Technology 26, 332335. Hightower, J. & Borriello, G. (2001), Location systems for ubiquitous computing, COMPUTER -LOS ALAMITOS- 34, 5766. Judd, G., Wang, X. & Steenkiste, P. (2008), Efcient channel-aware rate adaptation in dynamic environments., in D. Grunwald, R. Han, E. de Lara & C. S. Ellis, eds, MobiSys, ACM, pp. 118131. Jung-Hyuck, J. & Jayant, N. (2003), Performance Evaluation of Multiple IEEE 802.11b Wlan Stations in the Presence of Bluetooth Radio Interference, in IEEE International Conference on Communications, Vol. 2, pp. 11631168. Kaemarungsi, K. & Krishnamurthy, P. (2004), Modeling of indoor positioning systems based on location ngerprinting, IEEE Infocom . Karygiannis, T. & Owens, L. (2002), Wireless network security: 802.11, Bluetooth, and handheld devices, NIST Special Publication 800-48 . Li, Z., Xu, W., Miller, R. & Trappe, W. (2006), Securing wireless systems via lower layer enforcements, in Proceedings of the 5th ACM workshop on Wireless security (WiSe06), ACM Press, New York, NY, USA, pp. 3342. Masthoff, J. (2004), Group modeling: Selecting a sequence of television items to suit a group of viewers, User Modeling and User-Adapted Interaction 14(1), 3785. McCarthy, J. E. & Anagnost, T. D. (2000), Musicfx: an arbiter of group preferences for computer supported collaborative workouts, in Proceedings of the ACM conference on Computer Supported Cooperative Work, New York, USA, p. 348. Microsoft (2008), Wmi windows management http://msdn.microsoft.com/en-us/library/aa394582.aspx. Navizon (n.d.), Virtual gps. URL: http://www.navizon.com/ Pirzada, A. and McDonald, C. (2004), Establishing trust in pure ad hoc networks, in 27th Australian Computer Science Conference. Priddge, E. (2000), An indoor absolute positioning system with no line of sight restrictions and building-wide coverage, IEEE International Conference on Robotics and Automation 2, 10151022. Punnoose, R., Tseng, R. & Stancil, D. (2001), Experimental Results for Interference Between Bluetooth and IEEE 802.11b DSSS Systems, in IEEE VTS Vehicular Technology Conference, Vol. 1, pp. 6771. Rocha, B. P. & Loureiro, A. A. (2007), Middleware de segurana adaptativo para computao mvel, Masters thesis, Universidade Federal de Minas Gerais. instrumentation,

Livro Texto dos Minicursos

149

Roy, N., Roy, A. & Das, S. K. (2006), Context-aware resource management in multiinhabitant smart homes: A nash h-learning based approach, in Proceedings of the Fourth Annual IEEE International Conference on Pervasive Computing and Communications, Washington, DC, USA, pp. 148158. Schilit, B. N. & Theimer, M. M. (1994), Disseminating active map information to mobile hosts, Network, IEEE 8(5), 2232. URL: http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=313011 Schweitzer, C. M. (2006), Mecanismo de consolidao de conana distribuda para redes ad hoc, PhD thesis, Escola Politcnica da Universidade de So Paulo. Schweitzer, C. M., Carvalho, T. C. M. B. & Ruggiero, W. V. (2006), A Distributed Mechanism for Trust Propagation and Consolidation in Ad Hoc Networks, International Conference on Information Networking . Shin, C. & Woo, W. (2005), Conict resolution method utilizing context history for context-aware applications, in Proceedings of the 1st International Workshop on Exploiting Context Histories in Smart Environments (ECHISE05), Munich, Germany, pp. . Velloso, P. B., Laufer, R. P., Duarte, O. M. & Pujolle, G. (2006), Um Novo Modelo para Conana em Redes ad hoc, XXIV Simpsio Brasileiro de Redes de Computadores . Weiser, M. (1993a), Some computer science issues in ubiquitous computing, Commun. ACM 36(7), 7584. Weiser, M. (1993b), Ubiquitous computing, Computer 26(10), 7172.

Você também pode gostar