Computação Ubíqua: definição, princípios e tecnologias Carlos Eduardo Cirilo Departamento de Computação – Universidade Federal de São Carlos Rodovia Washington Luis, km 235 – CEP 13.565-905 São Carlos, SP, Brasil carlos_cirilo@dc.ufscar.br RESUMO A computação ubíqua abrange um modelo de computação no qual usuários móveis, serviços e recursos são capazes de descobrir outros usuários, serviços e recursos. A idéia básica é que a computação mova-se para fora das estações de trabalho e computadores pessoais e torne-se pervasiva em nossa vida cotidiana. Uma série de princípios e tecnologias que estão por trás desse paradigma computacional devem ser mantidos em mente para o desenvolvimento de aplicações e dispositivos ubíquos. Palavras-chave Computação ubíqua, mobilidade, tecnologia embarcada, redes sem fio, tecnologias de desenvolvimento, IHC, descoberta de serviços. 1. INTRODUÇÃO Nos dias atuais, com a convergência das tecnologias de rádio, dos microprocessadores e dos dispositivos eletrônicos digitais de uso pessoal, tornou-se possível fazer com que os dispositivos com certo poder de processamento computacional, tanto móveis quanto estacionários, cooperem entre si para fornecer ao usuário acesso instantâneo a novos serviços de forma transparente. Essa característica levou ao surgimento do conceito de ubiqüidade na computação [1]. A computação ubíqua abrange um modelo de computação no qual usuários móveis, serviços e recursos são capazes de descobrir outros usuários, serviços e recursos. Nesse paradigma computacional, as responsabilidades pela execução de determinado serviço necessário para o usuário são distribuídas entre uma variedade de dispositivos, cada qual com suas tarefas e funcionalidades específicas. Este artigo apresenta os principais conceitos que giram em torno da computação ubíqua, apresentando sua definição, princípios e tecnologias envolvidos. 2. COMPUTAÇÃO UBÍQUA 2.1. Mobilidade e Tecnologia Embarcada Por ser uma área de pesquisa emergente, algumas pessoas utilizam os termos computação pervasiva 1 , computação ubíqua, computação nomádica, computação móvel e tantos outros como sinônimos. Contudo, existem diferenças conceituais entre eles, conforme elucidado abaixo [2]. A computação móvel consiste em sistemas computacionais distribuídos em diferentes dispositivos que comunicam-se entre si através de uma rede de comunicação sem fio, o que permite a mobilidade desses aparelhos [3]. O usuário, então, é capaz de 1 O termo “pervasivo” não existe no vocabulário da língua portuguesa. Entretanto, como tem sido amplamente adotado com termo emergente na literatura da área em português, “pervasivo” será usado neste texto como a tradução do inglês “pervasive”, cuja definição é apresentada no decorrer deste trabalho. utilizar os serviços que um computador oferece independente de sua localização física. Assim, tem-se um aumento da capacidade de mover fisicamente serviços computacionais juntamente com o usuário em movimento, transformando a computação numa atividade que pode ser carregada para qualquer lugar. No entanto, existem certas limitações nessa abordagem. A principal limitação da computação móvel é que o dispositivo não possui a capacidade de obter de forma flexível informações sobre o contexto em que a computação ocorre e adaptá-la adequadamente. Logo, os usuários têm de alterar manualmente as configurações da aplicação à medida que se movem, o que pode ser uma característica não desejável para boa parte os usuários [1]. Já o conceito de computação pervasiva implica que o computador está embarcado ao ambiente de forma invisível para o usuário, tendo a capacidade de obter informações acerca do ambiente circundante e utilizá-la para controlar, configurar e ajustar a aplicação para melhor se adequar às características do ambiente. O ambiente também pode e deve ser capaz de detectar outros dispositivos que adentrem a ele. Dessa interação surge a capacidade de computadores agirem de forma “inteligente” no ambiente em que o usuário se locomove, sendo esse ambiente saturado por sensores e serviços computacionais [1]. A computação pervasiva postula quatro paradigmas fundamentais [4]: Descentralização: durante a era mainframe, computadores superpoderosos forneciam suas capacidade de processamento para “terminais burros”. Com o advento dos computadores pessoais (PCs), a arquitetura cliente- servidor foi introduzida, deslocando o poder computacional do servidor para as estações de trabalho clientes. A computação pervasiva deu um passo ainda maior, distribuindo responsabilidades entre uma variedade de dispositivos, cada qual com suas tarefas e funcionalidades específicas. Cada uma dessas entidades autônomas contribuem para um ambiente computacional heterogêneo, cooperando-se entre si como uma comunidade mútua e estabelecendo redes dinâmicas de relacionamento. Uma nova tarefa que emerge a partir dessa descentralização é a sincronização das atualizações de informação entre os variados dispositivos. As bases de dados presentes nos dispositivos com diferentes capacidades e recursos limitados devem se manter consistentes. Diversificação: na computação pervasiva existe um clara tendência em adotar dispositivos que melhor se adéquam aos requisitos de um determinado grupo de usuários para desempenhar uma tarefa específica, ao invés de computador de propósito geral. Um dos maiores desafios que surgem daí é como gerenciar as mais díspares capacidades desses mais variados dispositivos. Cada um fornece uma plataforma com suas próprias características, o que faz com que se torne difícil prover aplicações homogêneas entre eles.