Buscar

[Cirino, 2008] Computacao_Ubiqua_definicao_principios_e

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

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 pervasiva1 , 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. 
• Conectividade: múltiplos dispositivos estão de certa 
forma ligados uns aos outros. Não há limites: eles trocam 
informações entre si através de infravermelho, podem ser 
conectados com plugs, comunicam-se via rede sem fio, 
etc. Emails podem ser trocados entre dispositivos 
heterogêneos. Documentos podem viajar através de redes 
e ser acessíveis de qualquer lugar. Celulares GSM se 
beneficiam dos acordos de roaming2 internacionais, o que 
permite que se conectem em redes de comunicação 
diferentes de suas redes nativas. Um handheld pode se 
comunicar com um telefone celular através de 
infravermelho para sincronizar dados. Alternativamente, o 
mesmo handheld pode se conectar através da porta serial 
a uma Local Area Network (LAN). Num primeiro 
momento, isso pode parecer contrário à diversificação 
descrita anteriormente. Questões de especificidade de 
plataforma são os maiores obstáculos para aplicações e 
intercâmbio de informações: a capacidade de 
armazenamento entre os dispositivos são diferentes; 
processadores distintos impõem diferentes restrições de 
desempenho e uso de memória; sistemas operacionais são 
numerosos e freqüentemente são executados em um 
dispositivo em particular; o tamanho e a forma dos 
dispositivos requerem diferentes plugs, e assim por 
diante. Uma abordagem para alcançar a conectividade e 
interoperabilidade é a adoção de padrões. Isso resulta em 
uma importante tarefa para a indústria de Tecnologia da 
Informação (TI): padrões abertos devem ser estabelecidos 
e preparados para enfrentar as demandas dos mais 
diversos dispositivos. Padrões de comunicação, 
linguagens de marcação e software independente de 
plataforma devem ser integrados para formar a base da 
interoperabilidade. Novos padrões como WAP, UMTS, 
Bluetooth ou IrDA foram criados por amplas iniciativas 
da indústria, os quais definem os protocolos de 
comunicação necessários, bem como as conexões físicas 
subjacentes. 
• Simplicidade: como mencionado anteriormente, os 
dispositivos pervasivos são ferramentas bastante 
especializada que não são elaborados para uso específico. 
De um ponto de vista de usabilidade, eles devem 
desempenhar bem as tarefas para as quais foram 
designados. Issodelineia o quarto paradigma da 
computação ubíqua: atingir a simplicidade no uso. As 
palavras-chave aqui são: disponibilidade, conveniência e 
facilidade de uso. Acesso à informação e gerenciamento 
devem ser desempenhados sem gastar tempo significativo 
para aprender como usar a tecnologia. Qualquer 
computador de qualquer forma deve ser uma ferramenta 
simples e facilmente acessível na vida diária, assim como 
um telefone é hoje. 
A computação ubíqua, por sua vez, integra mobilidade em 
larga escala com a funcionalidade da computação pervasiva, 
isto é, qualquer dispositivo computacional, sob posse de um 
usuário em movimento, pode construir, dinamicamente, 
modelos computacionais do ambiente em que está inserido e 
configurar seus serviços dependendo da necessidade (Figura 1). 
A idéia básica é que a computação move-se para fora das 
estações de trabalho e PCs e torna-se pervasiva no cotidiano dos 
indivíduos. Marc Weiser, idealizador da computação ubíqua, 
 
2
 Termo originado no padrão GSM que designa a habilidade de um 
usuário de uma rede em obter conectividade em áreas fora da 
localidade geográfica onde está registrado, ou seja, obtendo 
conectividade através de uma outra rede onde é visitante. A rede que 
está sendo visitada pode ou não pertencer à mesma operadora de 
telefonia celular. 
visionou há um pouco mais de uma década que, no futuro, 
computadores estariam presentes nos mais comuns objetos do 
dia-a-dia: etiquetas de roupas, xícaras de café, interruptores de 
luz, canetas, etc, de forma invisível para o usuário. Neste 
mundo de Weiser, é necessário aprender a conviver com 
computadores, e não somente interagir com eles [5]. 
 
Figura 1 - Relação entre computação pervasiva, ubíqua e móvel 
[1] 
 
A Tabela 1 apresenta as dimensões das computações 
pervasiva, móvel e ubíqua. O grau de embarcamento refere-se, 
de forma geral, o grau de inteligência dos computadores, 
embutidos em um ambiente pervasivo, para detectar, explorar e 
construir dinamicamente modelos computacionais de seus 
ambientes: 
 
Tabela 1- Dimensões da Computação Ubíqua [2] 
 
 
Computação 
Pervasiva 
Computação 
Móvel 
Computação 
Ubíqua 
Mobilidade Baixa Alta Alta 
Grau de 
“embarcamento” 
Alto Baixo Alta 
 
Mas, quem seria responsável pela adaptação do modelo 
computacional de acordo com o ambiente: a aplicação, o 
dispositivo, ou ambos? Existem duas abordagens opostas para 
projetar sistemas adaptativos: application-transparent (o 
dispositivo é inteiramente responsável pela adaptação) e laissez-
faire (o dispositivo não provê nenhum suporte para adapatação) 
[6]. Obviamente, a segunda abordagem não é desejável. No 
entanto, a primeira abordagem também não é o suficiente para 
prover adaptação adequada. Para tornar claro, considere o 
seguinte caso de duas aplicações multimídia distintas: em uma o 
usuário está assistindo a uma conferência usando um dispositivo 
móvel, e na outra o usuário está assistindo a um vídeo ao vivo 
recebido de um servidor remoto também em seu dispositivo 
móvel. Agora considere os seguintes cenários: no primeiro, o 
usuário se move de uma área com largura de banda suficiente 
para sua aplicação para outra área onde a largura de banda 
disponível é insuficiente para a aplicação. No segundo cenário, 
a bateria do dispositivo do usuário esgota-se rapidamente. 
Ambos cenários lidam com mudanças na disponibilidade de 
recursos. 
Na abordagem application-tranparent, o dispositivo poderia 
se comportar da mesma maneira, seja qual for a aplicação que 
estiver sendo executada. Entretanto, diferentes reações podem 
ser desejáveis de acordo com o tipo de aplicação executada. Por 
exemplo, no primeiro cenário, um dispositivo não adaptativo 
poderia não fazer nada e deixar a qualidade de áudio e vídeo 
prejudicada. No segundo cenário, o dispositivo apenas daria um 
alerta de bateria fraca para o usuário sem qualquer assistência 
de como contornar a situação. Por outro lado, com um 
dispositivo adaptativo, vários comportamentos podem ser 
esperados, cada qual sendo desempenhado da melhor forma de 
acordo com a situação. Por exemplo, no primeiro cenário, o 
dispositivo poderia tentar se adaptar requisitando que o servidor 
diminua a qualidade de vídeo em decorrência da menor largura 
de banda. No segundo cenário, o dispositivo pode tentar 
conservar a bateria reduzindo o brilho da tela (além de alertar o 
Computação
Pervasiva
Computação
Ubíqua
Computação
Móvel
usuário quanto ao baixo nível de energia). Diante disso, em uma 
abordagem ainda mais adaptativa, é possível que o dispositivo 
interaja com a aplicação para que esta decida como se adaptar. 
Logo, numa abordagem application-aware, a aplicação 
colabora com o sistema de software subjacente, o qual lhe 
fornece informações de status sobre os recursos disponíveis. A 
aplicação utiliza essas informações para tomar decisões de 
como se adaptar às mudanças na disponibilidade dos recursos. 
Cada aplicação pode se adaptar de sua própria maneira. A 
Figura 2 ilustra o espectro das estratégias de adaptação 
disponíveis. 
Figura 2 – Espectro das estratégias de adaptação [6] 
 
2.2. Tecnologias de Rede Sem Fio 
A conectividade é um dos aspectos chave dentro da 
computação ubíqua. Uma rede de comunicação sem fio é 
necessária para permitir mobilidade aos dispositivos 
comunicantes em um ambiente de computação ubíqua [3]. 
 O conceito da comunicação de qualquer lugar e a qualquer 
momento é o conceito das redes que oferecem serviços de 
comunicação pessoal, como voz e dados. Os serviços de 
Comunicação Pessoal (PCS) referem-se a sistemas celulares 
que operam em bandas de alta freqüência. Entretanto, os 
serviços a serem oferecidos na computação ubíqua vão além 
dos serviços de comunicação pessoal. Outras tecnologias sem 
fio de média e curta distância surgiram para prover a interação 
entre dispositivos, de forma transparente para o usuário. Esta 
interação vai desde a conexão sem fio de um PC a seus 
periféricos, eliminando assim o cabeamento excessivo, até a 
conexão e comunicação entre dispositivos nos mais diversos 
ambientes (residência, escritório, chão de fábrica, sala de aula, 
lojas e shoppings, hotéis, aeroportos, automóvel, etc) para a 
realização das mais diversas tarefas. Tecnologias de 
comunicação sem fio de curta e média distância, tais como o 
Bluetooth, Wi-Fi e HomeRF, juntamente com as redes de longa 
distância, compõem uma estrutura básica de suporte aos 
sistemas de computação ubíqua [1]. Essas tecnologias são 
descritas sucintamente a seguir. 
 
2.2.1. Redes Sem Fio de Longa Distância 
 
WiMAX 
WiMAX (Worldwide Interoperability for Microwave 
Access) é uma tecnologia de acesso de banda larga sem fio de 
longa distância, baseado no padrão IEEE 802.16, tipicamente 
oferecendo 10 Mbps em até 10 Km, embora velocidades de até 
70 Mbps são alcançáveis sobre 10 Km [7]. WiMAX suporta 
Qualidade de Serviços (QoS) total, largura de banda sob 
demanda e é orientado a conexão. Além disso, suporta controle 
centralizado e oferece suporte multimídia [8]. 
 
Sistemas Celulares 
A tecnologia de rádio celular digital é a mais interessante 
tecnologia para conectividade de longa distância para 
dispositivos ubíquos [4]. 
Um único sistema celular interconecta várias pequenas 
áreas de cobertura de rádio, denominadas “células”. A idéia 
básica do sistema celular é o reuso da freqüência, que permite 
que um mesmo conjunto de canais possa ser reutilizado em 
áreas geográficas diferentes, distantes o suficiente umas das 
outras de forma que interferências estejam dentro de limites 
toleráveis [9]. 
Com a evolução da tecnologia de rádio, novas gerações de 
sistemas celulares têm surgido e oferecido serviços multimídia 
mais sofisticados de comunicação pessoal. Hoje, por exemplo, 
os celulares de terceira geração representam a convergência das 
seguintes tecnologias: Internet (navegação web, e-mail, 
informações, m-commerce), telefonia (voz, vídeo, fax etc)e 
mídia de difusão (TV, rádio, entretenimento e informação, 
serviços de localização) para o suporte a seis grande classes de 
serviços: voz, mensagens, comutação de dados, multimídia, 
multimídia de alto padrão e multimídia interativa de alto nível 
[1]. 
Existem quatro grandes tipos de sistemas celulares [10]: 
• PDC/JDC – Personal Digital Cellular ou Japanese Digital 
Cellular. (Amplamente implantado no Japão); 
• TDMA (D-AMPS/IS-54/IS-136) - Implantado nos EUA e 
América do Sul; 
• CDMA (IS-95) – amplamente implantado nos EUA; 
• GSM – Global System for Mobile Communication. 
Padrão desenvolvido na Europa e implantado amplamente 
no mundo todo. 
Uma comparação entre as gerações de sistemas celulares 
está resumida Tabela 2: 
 
Tabela 2 – Comparação entre as gerações de celulares [11] 
 
 
2.2.2. Redes Sem Fio de Curta e Média 
Distância 
O objetivo maior das redes de longa distância vistas acima é 
o provimento de serviços de comunicação pessoal que permitam 
ao usuário acessar, de forma única, serviços sofisticados de 
qualquer lugar do mundo e a qualquer momento. Estes serviços 
atendem parte dos requisitos de comunicação da computação 
ubíqua. Um outro requisito é a provisão da comunicação dentro 
de ambientes fechados, como uma sala, de tal forma que 
dispositivos de um lado da sala possam se comunicar com 
dispositivos do outro lado [1]. 
 
DECT 
O DECT (Digital Enhanced Cordless Telecommunications) 
foi projetado pela ETSI para ser usado como um padrão de 
conexão sem fio para telefones e outros equipamentos de 
escritório. Nos Estados Unidos, o DECT algumas vezes é 
conhecido como Personal Wireless Telecommunications (PWT) 
[4]. 
O padrão DECT é bem completo, abrangendo a interface 
com o usuário com funções como transferência de chamada e 
teleconferência, assim como a interface de ar. Ele permite 
interoperabilidade entre handsets DECT e estações base [4]. 
Um sistema DECT é composto por uma estação base e pelo 
menos um handset. O padrão DECT define capacidade 
suficiente para a interface de ar para permitir conversas 
simultâneas entre handsets internos e entre partes internas e 
 
Laissez-faire
(nenhum suporte 
do dispositivo)
Application-transparent 
(dispositivo inteiramente
responsável)
Application-aware
(colaboração entre 
dispositivo e a aplicação)
externas. O conceito DECT também suporta outros dispositivos 
de escritório, tais como aparelhos de fax e telefones sem fio [4]. 
 
Bluetooth 
O Bluetooth é uma tecnologia para conexão sem fio de 
curta distância entre dispositivos. A conexão sem fio para 
comunicações locais surgiu de uma necessidade de eliminar os 
fios que ligam dispositivos a acessórios. A Ericsson foi uma das 
primeiras empresas a reconhecer essa necessidade e, a partir 
daí, a identificar outras aplicações com enorme potencial, tais 
como: um telefone móvel se comunicando com uma 
impressora, ou um PDA se comunicando com o PC para 
realizar alguma tarefa, sem qualquer configuração ou 
intervenção manual do usuário [1]. 
Em 1994 a Ericsson envidou esforços com o objetivo de 
criar uma tecnologia de comunicação sem fio de baixo custo 
para telefones móveis e seus dispositivos periféricos. No ano de 
1998, IBM, Toshiba, Nokia e Intel juntaram-se à Ericsson para 
desenvolver a especificação de um padrão global aberto para a 
conectividade sem fio entre os dispositivos de telecomunicações 
e os de computação. Esta especificação foi denominada 
Bluetooth [1][4]. 
Os mais importantes pontos de projeto do Bluetooth são o 
baixo consumo de energia, baixo custo e a habilidade de 
suportar redes ad hoc de alta velocidade. Com uma taxa de 
dados básica de 1 Mbps, o Bluetooth é adequado para 
interconexão de computadores pessoais com impressoras, 
scanners, teclados e outros dispositivos. O canal de 
comunicação também é adequado para conexões de voz em 
tempo real entre um headset e um telefone móvel [4]. 
 
IrDA 
A Associação de Dados Infravermelho – IrDA (Infrared 
Data Association) estabeleceu vários padrões de comunicação 
através de luz infravermelha, onde o IrDA-Data e o IrMC são os 
mais importantes. A tecnologia infravermelha suporta apenas 
conexão ponto-a-ponto. Tem alcance de curta distância, de até 
um metro, com ângulo estreito entre o transmissor e o receptor 
– o cone de visão é de 30°. Qualquer sinal fora deste angulo não 
será recebido – os patrocinadores do IrDA sustentam que o 
IrDA deverá suportar um angulo de visão de 60°, o que 
possibilitaria suporte a um numero maior de serviços, tais 
como: a conexão de mouse, joystick, etc., no PC. O início da 
troca de dados requer que os dispositivos estejam em linha 
direta de visão, uma vez que os raios infravermelho não 
atravessam objetos sólidos. Essas duas últimas características da 
tecnologia infravermelha mencionadas representam as suas 
maiores desvantagens [1]. 
O IrDA é uma tecnologia similar o Bluetooth no que diz 
respeito a comunicação de curta distância. No entanto, existem 
diferenças significativas devido às características da tecnologia 
de transporte. Os emissores de luz infravermelha no IrDA são 
equipamentos direcionais, o que significa que dois dispositivos 
que desejam se comunicar devem estar apontados um para o 
outro para que a comunicação seja realizada com êxito. Já os 
transmissores de rádio no Bluetooth são dispositivos 
onidirecionais (que se propaga em todas as direções), o que 
significa que um número de pessoas em dado ambiente que 
possuem dispositivos Bluetooth podem interagir com os 
dispositivos umas das outras independente se o dispositivo 
estiver visível em suas mãos ou guardado no bolso de alguém 
[4]. 
Além da característica direcional, o IrDA oferece altas taxas 
de dados de 4 Mbps, além de ser um tecnologia barata (menos 
de $5). Tipicamente, os dispositivos que utilizam a conexão 
IrDA são os periféricos de computadores (modems, 
impressoras, scanners, etc.), além de PDAs, relógios, 
equipamentos industriais, etc [1][4]. 
 
HomeRF 
A tecnologia HomeRF foi projetada tendo em mente redes 
pequenas de baixo tráfego, em residências e pequenos 
ambientes comerciais. Visa à comunicação entre o PC e seus 
periféricos, bem como entre dispositivos inteligentes de uma 
residência. Ela não é projetada para a comunicação entre 
dispositivos portáteis (outras tecnologias, como o Bluetooth, 
são melhores para isso), tampouco para a formação de redes ad 
hoc (imediatas) – é do tipo de rede “configure-a e deixe-a” [12]. 
Algumas versões da HomeRF suportam velocidades de até 
10Mbps. As conexões são do tipo ponto-a-ponto com alcance 
de 25 a 60 metros. Permite diversas redes no mesmo ambiente 
físico, com suporte de até 127 dispositivos por rede. Como tem 
alto consumo de energia, não é adequada para utilização em 
dispositivos portáteis. Não se integra facilmente a outras redes 
sem fio existentes. Entretanto, seu custo é relativamente baixo 
(menos de $200 dólares por dispositivo), é fácil de instalar, 
além de não exigir ponto de acesso [1]. 
A HomeRF pode coexistir com o Bluetooth da seguinte 
maneira: Bluetooth para substituir o cabeamento doméstico, por 
exemplo, entre o PC e seus periféricos e a HomeRF como rede 
local de interconexão, por exemplo, entre mais de um PC [1]. 
 
WiFi 
O Instituto dos Engenheiros Elétricos e Eletrônicos - IEEE 
desenvolveu uma especificação de rede local sem fio, 
denominada 802.11, ou ainda Wi-Fi. 
As redes 802.11 são rápidas, confiáveis e têm alcance de até 
100 metros, que pode ser ainda maior em áreas abertas. Do lado 
negativo, exigem hardware de ponto de acesso para a 
interconexão entre os dispositivos da rede, que tem um custo 
relativamente alto (equipamentos mais sofisticados podem 
custar acima de $1200). Esses pontos de acesso podem ter 
suporte para conexões Ethernet comum, tornando a 802.11 
facilmente integrável com outras redes Ethernet com fio em 
uma corporação). Além disso, não suporta serviços de telefonia, 
sendo um padrão de uso estrito para a comunicação de dados – 
serviços de vozpodem ser suportados pela 802.11 quando a voz 
é transmitida como dado, como é o caso na tecnologia de voz 
sobre IP [1]. 
 
ZigBee 
ZigBee utiliza pequenos sinais de rádio digital de baixo 
consumo de energia baseado no padrão IEEE 802.15.4 para 
WPAN (Wireless Personal Area Networks) como uma técnica 
de sinalização na qual um nó continuamente transmite pequenos 
pacotes para anunciar sua presença a outras unidades móveis 
[8]. 
Os protocolos do ZigBee foram projetados para uso em 
aplicações embarcadas que requerem baixas taxas de dados e 
baixo consumo de energia e pouca latência. O foco real do 
ZibBee é definir uma rede mesh de propósito geral, barata, auto-
organizada que possa ser usada para controle industrial, 
sensoriamento embarcado, coleta de dados médicos, alerta de 
fumaça e intrusos, automação de construções e automação 
doméstica. A rede resultante irá utilizar muito pouca energia, 
assim dispositivos individuais deverão permanecer ligados por 
um ano ou dois utilizando a bateria original [8]. 
 
UWB 
UWB (Ultra-Wideband) é uma tecnologia para transmitir 
informação a taxas de dados que excedam 100 Mbps, 
distribuída sobre uma ampla largura de banda sobre curtas 
distâncias. Essa tecnologia é projetada para fornecer um uso 
eficiente da escassa largura de banda de rádio enquanto permite 
conectividade sem fio com alta taxa de dados [8]. 
É uma tecnologia de rede sem fio para redes de área 
pessoal, conhecidas por PAN (Personal Area Network), ou seja, 
usando aparelhos sem fio próximo ao usuário, como por 
exemplo, impressoras, mouse, teclado ou MP3 Player com no 
máximo 10 metros de distância [13]. 
 
2.3. Dispositivos 
Os dispositivos ubíquos combinam os quatro paradigmas da 
computação pervasiva apresentados anteriormente: eles são 
fortemente descentralizados, diversificados, conectados e 
simples de usar [4]. 
Muitos dispositivos são produzidos em massa com o intuito 
de abranger um grande escopo de usuários. Eles fornecem 
soluções amplamente aplicáveis no domínio de uso pessoal e 
profissional, como email, acesso à Internet, jogos, etc. Outros 
dispositivos estão focados em um segmento muito específico de 
utilização, como dispositivos de controle industrial aplicados 
em processos manufatureiros, dentre outros. Sua forma é 
altamente customizada e executam aplicações específicas [4]. 
A existência de múltiplos dispositivos, seja para o acesso a 
informação, ao entretenimento, embutidos em utensílios 
domésticos, embarcados em ambientes inteligentes, etc, 
constitui-se um dos desafios da computação ubíqua. Essa 
incrível variedade de dispositivos pode ser estruturada em 
categorias, conforme segue [1][4]: 
• Dispositivos de acesso à Informação: os dispositivos de 
acesso à informação provêm comunicação entre usuários, 
anotação, acesso à informação, etc, com o objetivo de 
estender as capacidades humanas, especialmente no 
trabalho. Dominantes nessa categoria estão os 
organizadores de bolso portáteis chamados de Assistentes 
Digitais Pessoais – PDAs. Eles são utilizados para 
carregar informações relevantes e são aptos a se 
conectarem em redes inteligentes. Suas aplicações 
compreendem o Gerenciamento de Informações Pessoais 
(PIM), o que inclui calendário, agenda de endereços e 
funcionalidades de email. Além disso, outros dispositivos 
que compreender a categoria de acesso à informação 
podem ser citados, tais como: PCs de bolso, telefones 
celulares, telefones de tela (convergência do telefone com 
terminal de acesso à Internet), smartphones, etc. 
• Utensílios inteligentes: essa categoria abrange um amplo 
escopo de utensílios familiares, os quais são melhorados 
por embutirem mais inteligência e conectividade usando 
tecnologias ubíquas. No ambiente ubíquo, os utensílios 
inteligentes interagem entre si para aumentar o conforto 
dos usuários, seja em casa, no carro, no escritório, no 
banco, no hospital, nas ruas, nos shoppings centers, etc. 
Exemplos de aplicação de utensílios inteligentes incluem: 
otimização do consumo de energia (aquecimento seletivo 
– por cômodo da casa; aquecimento diferenciado por 
ocupação da casa; aquecimento de água em função do 
perfil dos moradores); manutenção de utensílios 
(diagnóstico e atualização remota de micro-código em 
utensílios da linha branca), comunicação entre etiquetas 
de roupa e a máquina de lavar. Esses dispositivos podem 
ser acessados e operados remotamente via Web, por 
exemplo. 
• Controles inteligentes: os controles inteligentes 
caracterizam-se por serem muito pequenos podendo ser 
integrados a lâmpadas, interruptores, termostatos, 
sensores, atuadores, etc, em aplicações que variam desde 
controle de segurança residencial (sensores em portas e 
janelas para detectar a entrada de intrusos, atuadores para 
acender/apagar lâmpadas específicas em horários 
específicos etc), a controle de comodidades para o usuário 
(sensores de temperatura, atuadores para 
ligar/desligar/programar sistemas de 
aquecimento/resfriamento de ambiente residencial etc.). 
Os controles são conectados a redes domésticas e 
gerenciados local ou remotamente, através da Web ou 
applets Java, em aplicações locais. 
• Sistemas de entretenimento: Os sistemas de 
entretenimento envolvem dispositivos cujo uso é voltado 
principalmente ao lazer. Exemplos incluem: TV (via cabo, 
satélite, microondas), Set-top-boxes (caixa sobre a TV 
que promove a interface entre os provedores do serviço de 
difusão e a TV do consumidor), Console de jogos 
(exemplos: Dreamcast da Sega, Playstation2 da Sony, 
Dolphin da Nintendo e X-box da Microsoft), câmeras 
digitais, brinquedos inteligentes, reprodutores de música 
MP3, etc. 
Claro que muitos dispositivos podem oferecer uma 
combinação de aplicações e, dessa maneira, se encaixarem em 
mais que uma dessas quatro categorias [4]. 
 
2.4. Tecnologias de Desenvolvimento 
Como mencionado anteriormente, as aplicações ubíquas 
devem lidar com uma série de diferentes características de 
hardware dos dispositivos e mudanças de ambientes [4]. Devido 
a restrições físicas de memória, capacidade de processamento e 
bateria dos dispositivos, além da diversidade de tipos, alta 
latência das redes de comunicação sem fio, dentre outros, as 
aplicações para dispositivos ubíquos devem ser projetadas sem 
perder de vista tais limitações. Os Sistemas Operacionais, por 
sua vez, devem ser projetados tendo em vista as características 
do dispositivo e o objetivo do uso. A computação ubíqua traz 
novos requisitos para as infra-estruturas de serviço, ou 
middlewares, tais como: descoberta de serviços, adaptação de 
conteúdo, além de frameworks que atendam às necessidades 
específicas [1]. 
Muitos sistemas operacionais foram desenvolvidos para 
satisfazer às necessidades específicas da computação ubíqua: 
Google Android, Windows CE, Windows for Smart Cards, 
Palm OS, EPOC, QNX, GEOS, e muitos outros. Todos eles 
rodam em dispositivos com pouca memória e a maioria são 
projetados para executarem em muitas diferentes plataformas de 
processadores [4]. 
No topo desses sistemas operacionais, os componentes 
middlewares fornecem uma abstração das dependências 
específicas do sistema operacional, conforme ilustrado na 
Figura 3 seguir. 
 
Figura 3 – Camadas de software em um dispositivo [4] 
 
Interfaces comuns entre as aplicações e componentes de 
software dedicados alavancam a portabilidade. Além de 
bibliotecas e componentes proprietários, as iniciativas da 
indústria estão desenvolvendo um crescente número de 
frameworks padronizados e Aplication Programming Interfaces 
(APIs) direcionados a sistemas ubíquos [4]. 
Ao desenvolver aplicações para dispositivos ubíquos, os 
programadores devem ter em mente as seguintes restrições: 
• tamanho limitado da tela, capacidade limitada de entrada 
de dados, poder limitado de processamento, memória, 
armazenamento persistente e vida da bateria; e 
• alta latência, largura de banda limitada e conectividade 
intermitente (o que os dispositivos esperam encontrar emtermos de conectividade). 
 
2.4.1. Java para Ambientes Ubíquos 
A independência de plataforma que a Java oferece, a grande 
quantidade de bibliotecas disponíveis (de suporte a construção 
de interfaces gráficas a suporte de rede), e a existência de 
maquinas virtuais embutidas em vários dispositivos tornou a 
linguagem Java uma tecnologia chave para o desenvolvimento 
de software na computação ubíqua [4]. 
A Figura 4 mostra como funciona a execução de programas 
Java em diferentes dispositivos. O código em Java é compilado 
num código neutro e padronizado denominado bytecode. O 
sistema operacional de cada dispositivo alvo utiliza um 
ambiente de execução Java (Java runtime environment – JRE) 
para interpretar e executar o bytecode gerado na compilação, em 
tempo de execução. Um interpretador de bytecode, também 
chamado de máquina virtual – VM, traduz as instruções 
genéricas em comandos nativos, específicos da máquina que 
está executando a aplicação. Desta forma, qualquer dispositivo 
que contenha uma máquina virtual Java pode executar um 
programa em Java sem que este tenha que ser recompilado. 
 
Figura 4 – A execução do código Java em diferentes dispositivos 
[1] 
 
Como os requisitos das diferentes classes de computadores 
são diferentes, uma linguagem Java de propósito geral que 
acomodasse todos esses requisitos diferentes estava tornando-se 
insustentável. Então, a Sun Microsystems, quem inicialmente 
criou a tecnologia Java, decidiu dividir a linguagem em 
diferentes especificações. Cada uma das versões de Java possui 
um Kit de Desenvolvimento de Software – SDK (Software 
Development Kit) que implementa a versão correspondente. 
 
JME – Micro Edition 
Tem como objetivo atender os requisitos de dispositivos 
ubíquos com as seguintes limitações: pouca memória, energia 
limitada, conexão intermitente à rede; capacidades gráficas 
restritas, dentre outras. O JME introduz o conceito de Perfis, 
que são subconjuntos da linguagem Java para diferentes grupos 
de dispositivos, com o intuito de minimizar a quantidade de 
memória requerida pelas bibliotecas de classes Java. É 
composto de funcionalidade básica mínima obrigatória. Classes 
adicionais, necessárias para suportar características típicas de 
um grupo especifico de dispositivos, são incluídas em um perfil 
correspondente. Caso uma aplicação precise de funcionalidade 
adicional, não especificada no perfil do dispositivo, as 
bibliotecas correspondentes podem ser trazidas da rede de 
forma dinâmica. Inclui MVs, bibliotecas de APIs, ferramentas 
para colocar aplicação no dispositivo, e configurá-lo [1][4]. 
A edição JME é um conjunto de produtos, tecnologias, 
ferramentas e padrões necessários para criar aplicações para 
dispositivos ubíquos. Inclui suporte para desenvolvimento de 
aplicações no dispositivo e fora do dispositivo. O JME é 
disponível em duas versões [1][4]: 
• CLDC - Configuração de dispositivo limitado, 
conectado (Connected, Limited Device Configuration) 
para telefones celulares, PDAs e set-top boxes de média 
capacidade. Contém a máquina virtual KVM, um 
interpretador de linguagem Java para microprocessadores 
de 16-bit ou 32-bit RISC/CISC em dispositivos com 128 a 
512KB RAM, e conexão de rede intermitente. Oferece 
suporte total a linguagem Java (exceto ponto flutuante, 
finalização e tratamento de erro). Contém versão 
minimizada dos pacotes java.lang, java.io, and java.útil do 
J2SE. Implementa API javax.microedition.io, para 
conexões de rede (fones móveis e aparelhos de TV). 
• CDC - Configuração de Dispositivo Conectado 
(Connected Device Configuration) permite desenvolver 
aplicações para telefones de tela, set-top boxes, PDAs de 
alta capacidade, pontos-de-venda, navegação automotiva 
e utensílios domésticos. Contém uma máquina virtual 
completa - CVM para microprocessadores de 32-bit 
RISC/CISC/DSP em dispositivos com memória ROM 
maior que 512KB e memória RAM maior que 256KB, e 
conexão de rede sempre ativa. É uma versão “enxuta” do 
Java Standar Edition (JSE) mais classes do CLDC. Possui 
bibliotecas de UI restritas (telefones de tela, Set-top-
boxes). 
O Perfil é uma forma adicional de especificar o subconjunto 
de APIs Java, bibliotecas de classe e recursos de máquina 
virtual para uma família específica de dispositivos. Os perfis 
objetivam atender necessidades de segmentos específicos da 
indústria. O MIDP – Perfil do Dispositivo de Informação móvel 
(Mobile Information Device Profile) é a especificação para um 
perfil JME. O MIDP foi projetado para operar acima do CLDC 
com o intuito de capacitar as aplicações Java para executarem 
em dispositivos móveis de informação (MIDs). Contém APIs 
para o ciclo de vida da aplicação, IU, rede e memória 
persistente. Provê um ambiente de tempo de execução padrão 
que permite a colocação dinâmica de novos serviços e 
aplicações nos dispositivos do usuário. O MIDP é um perfil 
padrão comum para dispositivos moveis, independente de 
fabricante. É uma estrutura completa e de suporte para o 
desenvolvimento de aplicações móveis. 
Três outras tecnologias são definidas para potencializar o 
uso do Java: Java Card, Java Embarcado e Java para Tempo-
Real [1]: 
 
Java Card 
Menor e mais limitada versão da família Java. Não suporta 
strings, interface gráfica, e possui formato de bytecode 
comprimido. O Fórum Java Card 
(http://www.javacardforum.org/) especifica o subconjunto da 
linguagem para smart cards. As MVs são construídas por 
desenvolvedores de sistemas operacionais e ficam residentes na 
ROM do cartão. 
 
Java Embarcado 
Objetiva os controladores industriais, switches, e outros 
dispositivos com restrições severas de memória, em dispositivos 
com visor orientado a caractere ou sem visor. Não existe um 
core mínimo obrigatório – classes desnecessárias podem ser 
omitidas, o que, naturalmente, limita a interoperabilidade. 
 
RTJS - Java para Tempo-Real 
O Java RTJS oferece suporte na criação de aplicações para 
dispositivos automotivos, industriais etc, que exigem um 
comportamento de execução previsível. Resolve problemas de 
coleta de lixo, realiza escalonamento personalizado de 
processos e threads por compartilhamento de tempo, oferece 
gerenciamento avançado de memória, além de prover acesso 
direto à memória de sensores e atuadores, suporta a 
sincronização de threads e objetos, trata eventos assíncronos e 
etc. 
É bom manter em mente que Java não é a única opção para 
desenvolver aplicações para dispositivos ubíquos. Linguagens 
como C e C++ também podem ser consideradas [1]. A escolha 
da linguagem adequada vai depender das características do 
projeto. 
 
2.5. Interação Humano-Computador (IHC) 
Weiser e Seely Brown [14] usaram o termo “tecnologia 
calma” para descrever um importante aspecto de sua visão de 
computação ubíqua: o fato de que a computação não deve 
continuar a monopolizar a atenção do usuário. Em muitos casos, 
a atividade de computação deve silenciosamente ser executada 
em segundo plano (sem que o usuário perceba) e tornar seu 
resultado acessível à percepção periférica do usuário de forma 
ubíqua. 
Dessa maneira, os computadores tendem a se tornar mais e 
mais “invisíveis” em nossas vidas. Assim como o minúsculo 
motor presente dentro de um CD player, o qual ninguém está 
interessado em saber com funciona, um sistema computacional 
construído dentro de um MP3 player que faz download de 
músicas da Internet se tornará a coisa mais natural do mundo. 
Não importará se foi feito em Java ou qual o modo que a pilha 
TCP/IP foi implementada. Não é a tecnologia viabilizadora que 
interessa, mas sim as aplicações e os serviços oferecidos terão a 
maior influência visível em nossa cultura high-tech [4]. 
Logo, é precisos que as aplicações sejam simples e fáceis de 
utilizar a partir da perspectiva e do contexto do usuário. Esse é 
um dos quatro paradigmas pregados dentro da computação 
pervasiva/ubíqua: a simplicidade. A flexibilidade de um 
computador pessoal de propósito geral é certamente uma 
façanha técnica. Porém,isso tem seu preço: esses computadores 
estão se tornando incrivelmente complicados. Por exemplo, 
muito das funcionalidades dos processadores de texto atuais 
confundem a maioria dos usuários e reduz a facilidade de uso. 
Apesar da capacidade de plug-and-play, instalar um novo 
software geralmente é um desafio para usuários não 
especialistas [4]. 
 Como já mencionado anteriormente, dispositivos ubíquos 
são ferramentas extremamente especializadas que são utilizadas 
para um propósito específico e não geral. De um ponto de vista 
de usabilidade, eles desempenham bem as tarefas para os quais 
foram projetados. Nesses dispositivos, disponibilidade, 
conveniência e facilidade de uso são pré-requisitos 
fundamentais. O acesso e o gerenciamento da informação 
devem ser realizados sem se gastar tempo significativo em 
aprender como usar a tecnologia. A aceitação do usuário da 
interface fornecida pelo dispositivo terá grande impacto na 
aceitação dos produtos e serviços oferecidos dentro da próxima 
geração da TI. Um computador, independente da forma em que 
foi fabricado, deve ser uma ferramenta facilmente acessível na 
vida diária, assim como um telefone é hoje. Enquanto seleção e 
educação apropriados dos grupos de usuários era requerida para 
gerenciar a complexidade dos sistemas computacionais 
tradicionais, computadores ubíquos são intuitivos de usar e não 
deveriam sequer requerer a leitura de um manual. Processos que 
hoje requerem procedimentos de instalação e levam vários 
comandos em um PC irão apenas necessitar de um simples 
aperto de uma tecla ou mesmo aceitar requisições de voz ou 
possuir reconhecimento de escrita [4]. 
Em seu influente e fascinante livro “O design do dia a dia” 
[16], Donald Norman, psicólogo cognitivo e pioneiro em 
usabilidade, descreveu o conceito de affordance, que se refere 
às propriedades percebidas e reais de um objeto, principalmente 
as propriedades fundamentais que determinam de que maneira o 
objeto poderia ser usado. As affordances fornecem fortes 
indicações para a operação dos objetos. Cadeiras são para 
sentar. Maçanetas são para girar. Interruptores são para 
pressionar. Bolas são para atirar ou quicar, etc. Quando se tira 
proveito das affordances, o usuário sabe o que fazer apenas ao 
olhar: não são necessárias imagens ilustrativas, rótulos ou 
instruções. Objetos complexos podem exigir explicações, mas 
objetos simples não devem precisar deles. Quando objetos 
simples precisam de imagens, rótulos ou instruções, o design 
fracassou. 
Segundo Norman, o usuário precisa de ajuda, sendo que 
apenas as coisas certas têm de ser visíveis a ele para indicar que 
peças devem ser operados e de que maneira, de forma a indicar 
como o usuário deve interagir com o aparelho. A visibilidade 
indica o mapeamento entre as ações pretendidas e as operações 
concretas. A visibilidade indica distinções cruciais, de modo 
que se possa, por exemplo, diferenciar um recipiente de sal e 
um de pimenta. A visibilidade dos efeitos das ações também é 
importante. É ela que indica se as luzes foram devidamente 
acendidas, se a tela de projeção foi baixada até a altura correta, 
se a temperatura da geladeira está ajustada corretamente, e 
assim por diante. É a falta de visibilidade que torna tantos 
aparelhos controlados por computador tão difíceis de operar. E 
é um excesso de visibilidade que torna o equipamento de som 
ou o aparelho de DVD entupido de dispositivos e 
sobrecarregado de aplicativos tão intimidantes para o usuário. 
Todas essas características descritas por Norman são podem 
ser aplicadas para atender à simplicidade esperada dos 
dispositivos ubíquos. No entanto, simples não deve ser 
confundido com primitivo. A computação ubíqua provê uma 
visão holística: hardware e software devem estar integrados sem 
emendas e direcionados para necessidades bem específicas do 
usuário final. A complexidade da tecnologia deve estar 
escondida por trás de uma interface com o usuário amigável. 
Alcançar a facilidade de uso intencionada requer esforços 
substanciais no projeto e desenvolvimento das aplicações. Para 
obter acesso rápido a funções e aplicativos, hierarquias 
complicadas de menus e caixas de diálogo não são aceitáveis. 
Reconhecimento de fala, uso intuitivo, operações que requerem 
o uso de apenas uma das mãos, inicialização rápida ou telas 
sensíveis ao toque são apenas algumas das características de 
interfaces com o usuários maduras. Fornecer todas elas em um 
pequeno e barato dispositivo é definitivamente uma tarefa 
desafiadora pra os desenvolvedores [4]. 
 
2.6. Descoberta de Serviços 
No contexto de computação ubíqua, quando um cliente 
móvel se move de um ambiente para outro, ele deseja conhecer 
quais são os serviços que estão disponíveis no novo contexto 
em que se inseriu [3]. 
Existe, então, uma grande necessidade por um mecanismo 
que permita que os dispositivos em um determinado ambiente 
interajam dinamicamente uns com os outros e ofereça serviços 
para outros dispositivos, bem como torne viável que outros 
dispositivos busquem por um tipo de serviço específico que 
possa ser requisitado em determinado momento. Esta 
característica é chamada de descoberta de serviços [4]. 
Diversas arquiteturas de software surgiram para tentar 
solucionar este problema. Essas arquiteturas são essencialmente 
������� �
��
�
�	
��
�����
1. Registro dos 
Serviços
2. Pesquisa por 
Serviços
3. Descoberta
�������
�
��
��
�
�
��
�����
2. Pesquisa Por 
Requisições
1. Registro da 
Requisição
34
frameworks de coordenação que sugerem certos modos e meios 
de interação entre dispositivos. Três das mais importantes 
arquiteturas são: Jini, Universal Plug and Play (UPnP) e 
Satutation – todas iniciativas de indústrias. A descoberta de 
serviços, em termos gerais, significa que um subconjunto das 
capacidade seguintes são suportadas por um dispositivo [1][4]: 
• Habilidade de anunciar sua presença à rede; 
• Descoberta automática de dispositivos na vizinhança e 
também daqueles localizados remotamente; 
• Habilidade de descrever seus serviços e reconhecer os 
serviços (capacidades) dos outros dispositivos; 
• Capacidade de se auto-configurar sem a intervenção de 
um administrador; 
• Interação com outros dispositivos na rede parar 
desempenhar uma função. 
Um framework de coordenação pode fazer com que 
dispositivos tornem-se cientes uns dos outros. Para que isto 
ocorra, algum padrão deve ser seguido pelos dispositivos. Um 
dos desafios na descoberta de serviços é manter o equilíbrio 
entre as necessidades de padronização e a autonomia de 
dispositivos [17]. 
O fornecimento de serviços de aplicações para dispositivos 
inteligentes implica no gerenciamento de serviços distribuídos 
ao longo de um ciclo de vida completo, conforme ilustrado na 
Figura 5 abaixo, e não apenas etapas específicas, como a 
descoberta de serviços. O projeto de fornecimento de serviços 
deve lidar com acessos a serviços intermitentes e trocas entre 
diferentes instâncias de serviços, por exemplo, a saída de uma 
rede sem fio para entrar em outra rede sem fio. Existem dois 
aspectos distintos para isso: primeiro, definir um modelo de 
ciclo de vida genérico para o fornecimento do serviços; e, 
segundo, gerenciar esse ciclo de vida [8]. 
 
Figura 5 – Ciclo de vida do serviço [8] 
Na fase de criação, os processos de serviço registram-se em 
diretórios de serviços. Solicitantes dos serviços buscam por 
serviços. Os serviços são selecionados, configurados e serviços 
múltiplos necessitam ser compostos. Na fase de execução, os 
serviços são invocados e múltiplos serviços interligados 
necessitam de coordenação. Na fase de manutenção, os 
processos de serviço, configurações de acesso e composições de 
serviços devem ser atualizados. Na fase de dissolução, os 
serviços são desativados ou encerrados temporariamente pelos 
próprios processos ou por solicitantes. Os serviços também 
podem ser terminados permanentemente e removidos [8]. 
 
2.6.1. Anúncio, Descoberta3, Seleçãoe 
Configuração de Serviços 
 
3
 A descoberta de serviços também pode ser subclassificada em 
pesquisa em página branca (nome, endereço, etc), pesquisa em página 
amarela (busca por tipos e atributos) e pesquisa em página verde 
(informações sobre como invocar o serviço). 
Se os fornecedores e solicitantes dos serviços são estáticos, 
então existe pouca necessidade para descoberta dinâmica de 
serviços. A descoberta dinâmica de serviços4 é necessária para 
permitir que solicitantes dos serviços mudem de fornecedores 
quando tanto um como outro são móveis, quando o acesso à 
rede é intermitente e quando os fornecedores ou requisitantes 
falham. A descoberta dinâmica de serviços envolve a 
dissociação do fornecimento de serviços a partir de uma 
requisição e suporte a anúncios e descoberta dinâmicos de 
fornecedores e solicitantes de serviços [8]. 
Existem duas abordagens para anúncios e descoberta 
dinâmicos de serviços: push e pull. Push utiliza broadcast ou 
multicast para anunciar as requisições de serviços disponíveis 
ou capacidades de serviços para uma certa quantidade de partes 
desconhecidas. Requisições de serviços e descrições de serviços 
são subtipos de mensagens enviadas para receptores de 
mensagens desconhecidos pelo remetente. O solicitante ou o 
fornecedor fazem o matching5. Pull utiliza pesquisas para 
localizar ou procurar listas de requisições ou capacidades 
previamente anunciadas para um diretório mantido por alguma 
terceira parte conhecida, por exemplo, Jini, UPnP, UDDI, etc. A 
terceira parte faz o matching. A vantagem dos diretórios sobre 
broadcasts é que eles minimizam o tráfego de rede relacionado 
ao serviço de descoberta. A desvantagem dos diretórios é que 
eles requerem a administração de uma terceira parte, o diretório 
deve estar sempre disponível e ter uma localização bem 
conhecida para solicitantes e fornecedores de serviços o 
localizarem [8]. 
Existem várias dimensões de projeto para especificar a 
seleção de serviços: baseado em requisição versus baseado em 
capacidades versus baseado em objetivos; exata versus inexata e 
sintática versus semântica. É mais comum fazer o matching das 
requisições de um único usuário comparando-se as descrições 
de serviços de múltiplos fornecedores em diretórios. O oposto 
disso é usar um blackboard, um serviço em uma terceira parte, 
no qual requisições de serviços ao invés de descrições de 
serviços fornecidos são anunciados e fornecedores de serviços 
procuram por solicitantes de serviços com os quais eles estão 
dispostos a fornecer o serviço (ver Figura 6). 
 
Figura 6 – Descoberta de Serviços guiada por fornecedores 
publicando descrições de serviços. Adaptado de [8] 
 
Seleção de serviços baseada em requisição geralmente 
implica que os serviços que satisfaçam à requisição devem 
existir no ambiente circundante, ao invés de estarem 
internamente no dispositivo. Isso levanta a questão de como o 
solicitante de um serviço sabe se o serviço pode ou não pode 
 
4
 O escopo do termo descoberta de serviços varia dependendo da 
especificidade do projeto. Pode envolver a solicitação de uma lista de 
fornecedores de serviços disponíveis que se encaixam com a 
requisição. Pode ou não pode incluir seleção de serviço, configuração 
de serviço, resolução de nome de serviço e até mesmo invocação de 
serviço. 
5
 Matching neste texto refere-se à ação de comparar se determinado 
serviço atende aos requisitos estabelecidos pela requisição. 
����
�
����
�
����
�
����
�
 �����
�
�����
�
�����
�
�����
�
�������
�
�������
�
�������
�
�������
�
����
��
�
����
��
�
����
��
�
����
��
�
Anúncio, Descoberta,
Seleção, Configuração,
Composição
Invocação,
Composição
Término, Remoção de
Registros
Reinvocação, Atualização das
Descrições, Reconfiguração,
Atualização da Composição
desempenhá-lo (devido ao fato de o serviço ter ou não ter os 
recursos necessários, habilidade, etc) [8]. 
 
3. TRABALHOS RELACIONADOS 
Muitas companhias e institutos de pesquisa tem 
empreendido iniciativas na área da computação ubíqua. Alguns 
dos primeiros projetos de pesquisa em computação ubíqua são 
apresentados a seguir. 
 
Classroom 2000 
 Uma funcionalidade bastante útil dos ambientes 
computacionais futuros será a habilidade de capturar as 
experiências reais vividas por seus habitantes e fornecer 
registros aos usuários para posterior acesso e visualização. Em 
1995, um grupo do Georgia Institute of Technology 
empreendeu um projeto de três anos denominado Classroom 
2000 na tentativa de dar suporte ao ensino e aprendizagem em 
uma universidade através da introdução de um suporte 
automatizado para a captura da aula [18]. Enquanto muitos 
trabalhos de desenvolvimento nessa área focavam no 
desenvolvimento de materiais multimídia melhorados, o projeto 
Classroom 2000 tentou melhorar a geração de conteúdo através 
da instrumentação6 de um cômodo com as capacidades de 
registrar uma aula ao invés dos próprios estudantes terem que 
fazer anotações manualmente e talvez transcrevê-las mais tarde. 
O projeto tinha dois objetivos: (1) entender as questões de 
projeto de uma aplicação de computação ubíqua para fornecer 
captura eficiente e capacidades de acesso para experiências 
reais ricas; e (2) entender o que é necessário para produzir uma 
aplicação de computação ubíqua robusta cujo impacto em seu 
domínio-alvo pode ser avaliado sobre um longo período de 
tempo [8]. 
O protótipo inicial foi um grande sistema de quadro branco 
eletrônico que permitia ao professor mostrar e anotar slides. Os 
estudantes poderiam usar um tablet PC para fazer anotações em 
suas próprias cópias dos slides. Inicialmente não havia 
comunicação via rede. Em janeiro de 1997, uma segunda sala 
de aula foi especialmente instrumentada para o uso de um 
protótipo do Classroom 2000. Microfones e câmeras de vídeo 
foram embutidos no teto e os sinais capturados por eles eram 
armazenados. O quadro branco eletrônico foi usado novamente, 
mas desta vez conectado na rede. Dois projetores anexados ao 
texto foram ligados a computadores conectados na rede também 
para visualização [8]. 
 
Smart Space e Meeting Room 
Os projetos NIST Smart Space e Meeting Room (1998-
2003) focavam no uso de dispositivos pervasivos, sensores e 
redes de comunicação para fornecer uma infra-estrutura para 
salas de encontro inteligentes sensíveis ao contexto que 
detectam as atividades humanas em curso e geram uma resposta 
a essas atividades [19]. Os projetos foram divididos em duas 
fases. Na primeira, espaços inteligentes experimentais foram 
prototipados focando em: formas avançadas em interação 
humano-computador, integração de redes sem fio pico-celulares 
com descoberta de serviços dinâmica, configuração automática 
de dispositivos e infra-estruturas de software necessárias para 
programar aplicações de computação pervasiva. Na fase 2, o 
foco eram as métrica de desenvolvimento, métodos de teste e 
referências padrões para fornecer implementações de referência 
para servir como modelos para possíveis produtos comerciais 
[8]. 
 
6
 Instrumentação neste contexto refere-se ao processo de adicionar 
sensores que atuam como fonte de informação no mundo físico. Essas 
fontes podem então ser configuradas e registradas para análise online 
e offline. 
O Meeting Room digitalizava os sinais a partir de 200 
microfones, cinco câmeras de vídeo e possuía um quadro 
branco inteligente. Dois conjuntos de ferramentas eram usados 
para gerenciar os dados dos sensoriados. Os fluxos dos sensores 
eram gerenciados usando o sistema NIST SmartFlow, uma 
camada middleware de fluxo de dados que fornecia abstração 
do transporte de dados e oferecia formatos consistentes para os 
fluxos de dados. Metadados ou anotações dos fluxos de dados 
eram atribuídos com descrições semânticas usando Architecture 
and Tools for Linguistic AnalysisSystems (ATLAS). Quando as 
pessoas numa sala de encontros estavam conversando entre si, o 
sistema era capaz de capturar a conversa, armazenar e 
transcrever o encontro gravando conversas individualmente por 
falante, e disparar serviços associados a partir da Internet de 
acordo com o assunto da conversa [8]. 
 
Cooltown 
O projeto Cooltown da HP (2000-2003), desenvolveu uma 
visão da computação ubíqua para dar suporte a usuários móveis, 
fornecendo-lhes acesso a informações por meio de dispositivos 
handhelds baseados na tecnologia Web e ligações entre o 
mundo virtual com o mundo físico real [20]. Um ponto chave 
da abordagem do Cooltown é que recursos do mundo físico 
podem ter uma presença na Web. Recursos físicos estão 
associados com um identificador de recursos simples padrão 
(Universal Resource Locator – URL). URLs de recursos físicos 
e virtuais podem ser descobertas e trocadas de forma bem 
simples. Assim, quando se entra em um novo cômodo, um PDA 
pode receber uma mensagem contendo a URL daquela sala via 
transmissão infravermelha a partir de um transmissor presente 
no cômodo, ou ler um código de barras contido no côpmodo, 
etc. O PDA estará então apto para acessar o website para o 
cômodo para ver as facilidades e funcionalidades disponíveis.
 
4. CONSIDERAÇÕES FINAIS 
A computação ubíqua envolve uma diversidade de 
conceitos e tecnologias. Por ser um paradigma computacional 
relativamente novo, ter um entendimento claro dos aspectos 
chave que o compõem é crucial para desenvolvedores que 
almejam construir aplicações ou mesmo projetar dispositivos 
ubíquos. Este artigo apresentou os principais conceitos por trás 
da computação ubíqua, mostrando suas definições, princípios e 
tecnologias envolvidas. 
 
5. REFERÊNCIAS 
[1] Araújo, Regina Borges. (2003) “Computação Ubíqua: 
Princípios, Tecnologias e Desafios”, In: Simpósio Brasileiro de 
Redes de Computadores, XXI, Natal. Minicurso: Livro Texto. 
Natal, RN: UFRN/DIMAp: UnP, 2003. 363 p. p. 45-115. 
[2] Lyytinen, K. e Yoo, Y. (2002) “Issues and Challenges in 
Ubiquitous Computing”, Communications of the ACM, vol.45, 
no. 12, Dezembro. Apud {1}. 
[3] Adelstein , F. et al. (2005), “Fundamentals of Mobile 
and Pervasive Computing”, McGraw-Hill. 
[4] Hansmann, U. et al. (2003), “Pervasive Computing 
Handbook”, Springer-Verlag. 
[5] Weiser, M. (1991), “The Computer for the 21st 
Century”, Scientific American, vol.265,no.3,Setembro., pp.94-
104. Apud {1}. 
[6] Satyanarayanan, M. (1996), “Fundamentals Challenges 
in Mobile Computing”, Proceedings of the Fifteenth Annual 
ACM Symposium on Principles of Distributed Computing 
(PODC), Philadelphia, PA. Apud {3}. 
[7] Nuaymi, L. (2007), “WiMAX: Technology for 
Broadband Wireless Access”. John Wiley & Sons, Ltd. Apud 
{8}. 
[8] Poslad, Stefan (2009). “Ubiquitous Computing Smart 
Devices, Smart Environments and Smart Interaction”. Wiley. 
[9] Waldman, H. e Yacoub, M. D. (1997) 
“Telecomunicações - Princípios e Tendências”, Série 
Universidade, Editora Érica, 287 págs. Apud {1}. 
[10] Harte, L., Levine, R. e Kikta, R. (2002) “3G Wireless 
Demystified”. McGraw-Hill, 496 pags. Apud {1}. 
[11] Foroohar, R. (2001) “The Other Bubble”. Newsweek. 
pp.13-16. May. Apud {1}. 
[12] Miller, M. (2001) “Descobrindo o Bluetooth”, Editora 
Campus, 289 pags. Apud {1}. 
[13] Wikipédia – A Enciclopédia Livre. Disponível em 
http://pt.wikipedia.org/wiki/UWB. Acesso em 13/09/2009. 
[14] Weiser, M. e Seely Brown, J (1997), “The Coming 
Age of Calm Technology”, In Peter J. Denning e Robert M. 
Metcalfe (eds.), “Beyond Calculation: The Next Fifty Years of 
Computing”, pp. 75-85. Springer-Verlag. Apud {15}. 
[15] Stajano, F. (2002), “Security for Ubiquitous 
Computing”. John Wiley and Sons. 
[16] Norman, Donald A (2006), “O Design do Dia-a-dia”. 
Rocco. 
[17] Rekesh, J. (1999), “UPnP, Jini and Salutation - A look 
at some popular coordination frameworks for future networked 
devices”. Publication from California Software Labs. Apud {1}. 
[18] Abowd, G.D. (1999), “Classroom 2000: an experiment 
with the instrumentation of a living educational environment”. 
IBM Systems Journal, 38(4): 508–530. Apud {8}. 
[19] Stanford, V., Garofolo, J. Galibert, O., Michel,Mand 
Laprun, C. (2003), “The NIST Smart Space and Meeting Room 
Projects: signals, acquisition, annotation, and metrics”. Apud 
{8}. 
[20] Kindberg, T. and Fox, A. (2002), “System software for 
ubiquitous computing”. IEEE Pervasive Computing, 1(1): 70–
81. Apud {8}.

Continue navegando