Computação Ubı́qua - Conceitos e aplicações
Sérgio Ildefonso
[email protected]
31 de Outubro de 2006
Resumo
outros ambientes requer um conjunto de operações
locais de reconhecimento de informações, baseado
em contextos. Tal operação manual e local, actualmente, é inaceitável, uma vez que não se propaga
pelo aumento de serviços de software, dispositivos
móveis e dinâmicos e requer que os utilizadores demorem tempo demasiado para configurar as actividades e as traduções de contextos, caso queiram que
se consiga propagar (ou seja, em vez de estarem realmente a trabalhar nas suas tarefas, gastam muito
tempo a configurar os sistemas para poderem realizá-las em locais diferentes).
Na actualidade, a presença de sistemas que fazem computação é muito frequente. Normalmente,
utilizam-se sistemas com máquinas que, isoladamente
ou em grupo processam de maneira automática várias
informações. Contudo, todas essas máquinas ocupam um determinado espaço e a sua utilização requer,
muitas vezes, conhecimentos técnicos. A Computação
Ubı́qua é um modo de computação através do qual se
embebem em ambientes, sistemas computacionais que
interagem entre si, sendo estáticos ou dinâmicos. Esta
integração contrapõe-se com a utilização de vários
computadores distintos e fixos no ambiente, uma vez
que o factor mobilidade é necessário para a interacção
com o ambiente. Nos dias de hoje, a tendência é
maior para a computação no mundo se tornar mais
ubı́qua, onde cada pessoa pode aceder e manipular
informações em qualquer sı́tio e a qualquer momento.
Os dispositivos computacionais e as redes tornam-se
cada vez mais ubı́quos. Ou seja, daqui em diante, a
computação tende a deixar de ser somente processada
em desktops. Este documento irá falar acerca das caracterı́sticas da Computação Ubı́qua e caracterizar alguns dos projectos em desenvolvimento onde ela se utiliza.
2
Notas históricas
Em 1988 Mark Weiser escreveu os primeiros papéis
sobre a Computação Ubı́qua ao serviço do Xerox Palo
Alto Research Center (PARC). Mark Weiser inspirou-se
numa obra literária de ficção cientı́fica de Philip K. Dick
chamada de UBIK, na qual, num futuro próximo, tudo
desde fechaduras a suportes seria inteligente e estaria
ligado entre si, permitindo uma interacção inteligente
com as pessoas. Das previsões de Mark Weiser para
a computação ubı́qua destaca-se a seguinte frase: Ubiquitous computing enhances computer use by making
many computers available throughout the physical en1 Introdução
vironment, while making them effectively invisible to the
Como os utilizadores tendem a tornar-se mais user. (ou seja, a inserção de vários computadores num
móveis, à medida que se movem por um espaço terão ambiente, todos eles disponı́veis e invisı́veis para os utiacesso a um vasto conjunto de dispositivos computa- lizadores. Desde então, vários projectos de investigação
cionais e serviços de software, de modo a poderem foram iniciados (por exemplo, o projecto OXYGEN do
executar tarefas computacionais. Actualmente, se MIT). Mais recentemente, Adam Greenfield criou o lium utilizador quer utilizar recursos computacionais vro Everyware: The dawning age of Ubiquitous Comnum ambiente, então terá que, manualmente, des- puting (ISBN 0-321-38401-6) no qual descreve o paracobrir um modo de executar uma tarefa computa- digma da computação ubı́qua como dissolução do procional utilizando recursos locais. A mudança para cessamento de informação nos comportamentos.
1
diferentes, etc.). Esta estratégia é muito proveitosa na
comunicação, pois serve de ponte entre sistemas de empresas diferentes cuja arquitectura e implementação são
incompactı́veis, entre sistemas modulares e legados, enActualmente, a computação ubı́qua abrange um tre plataformas diferentes, etc.
vasto universo de tópicos de investigação tais como a
computação distribuı́da, a computação móvel, as redes de sensores, a interacção pessoa-máquina e a in- 3.1.3 Modo de comunicação RMI
teligência artificial.
O modo de comunicação RPC é vocacionado para
linguagens
de programação procedimentais (como por
3.1 Sistemas Distribuı́dos
exemplo, a linguagem C), mas não o é para linguagens
Um sistema distribuı́do corresponde a um conjunto de de programação orientadas a objectos (como por exemcomputadores que comunicam entre si através de uma plo, a linguagem de programação JAVA). Assim, a RMI
rede, executando aplicações e processos coordenados. (Remote Method Invocation) integra o conceito de obPara essa comunicação são utilizados várias infraestru- jecto distribuı́do, de um modo normal, através da linturas, aplicações e arquitecturas baseadas em modos de guagem de programação JAVA, uma vez que, cada objecto remoto é tratado como um objecto normal (porcomunicação.
tanto, pode ser passado como argumento em métodos
e os seus métodos podem ser chamados remotamente).
3.1.1 Modo de comunicação RPC
No entanto, como através da RMI se transmite código
O modo de comunicação baseado em RPC (Remote referente aos objectos, e pode existir a possibilidade de
Procedure Call) é um modo clássico (mas muito utili- esse código ser malicioso, é utilizado, também, um geszado), através do qual um componente pede serviços a tor de segurança (o security manager).
outro (assumindo o papel de cliente), e o outro responde
ao pedido (assumindo o papel de servidor), estando
os dois ligados remotamente em rede. Este modo de 3.2 Computação Móvel
comunicação mantém a simplicidade da comunicação
local, mas transportanto-a também para a comunicação A computação móvel é uma área da informática deremota. Assim, um pedido de um cliente a um servidor dicada ao estudo de sistemas, que suportam a mobiliremoto e a resposta do servidor ao cliente remoto, são dade dos utilizadores, aproveitando as tecnologias acfeitos com a mesma simplicidade, caso o cliente e o ser- tuais existentes (como por exemplo Bluetooth, IEEE
vidor fossem locais. Para que tal aconteça deverá existir 802.11, UMTS, GPRS, CDMA/TDMA/GSM). No enuma framework que suporte a comunicação baseada em tanto, quando se utilizam sistemas informáticos baRPC. Essa framework necessita de um procedimento seados em computação móvel, é necessário o cui(chamado de stub) em cada extremo da comunicação, dado na resolução de vários problemas. Ao nı́vel da
para fazer a tradução das instruções do cliente, em pro- comunicação, deve ser possı́vel o tratamento de descedimentos no servidor (remotamente) e vice-versa.
conexões, assim como o tratamento da variação da
largura de banda, da existência de redes móveis in3.1.2 Modo de comunicação RPC baseado em compactı́veis, dos riscos de segurança de uma rede
móvel, etc. Ao nı́vel da mobilidade, deve ser possı́vel a
XML
migração da identificação dos dispositivos utilizados na
Cada sistema que se baseie em RPC possui a sua computação. Ao nı́vel da portabilidade, deve ser conprópria codificação e arquitectura, o que impõe sinta- siderada a minimização do consumo de energia pelos
xes diferentes para semânticas idênticas. A utilização dispositivos, a integridade das informações, o espaço
da linguagem XML para se definirem as sintaxes dos disponı́vel de armazenamento e, normalmente, a interpedidos e respostas de sistemas baseados em RPS é face compacta nos dispositivos utilizados. Portanto, a
frequente em aplicações de sintaxe incompactı́vel, ou computação móvel é uma área em expansão que utiliza
arquitecturas e codificações diferentes (ex. linguagens tecnologias recentes e pode ser aplicada em várias áreas
de programação diferentes, tipos de estruturas de dados da computação.
3
Àreas relacionadas
computação ubı́qua
com
a
2
3.3
Redes de sensores
ser capaz de se adaptar às alterações das preferências
dos utilizadores). Por outras palavras, estas aplicações
As redes de sensores são redes de nano-agentes devem comportar-se como agentes inteligentes (ou conautónomos capazes de fazerem comunicações com ou juntos de agentes).
sem fios, utilizando tecnologias de ponta. As redes de
sensores com fios estão ligadas a um computador ou a
uma caixa de controlos e os seus agentes realizam ta- 4 Caracterı́sticas gerais
refas de recolha de dados do ambiente onde se situam.
Devido à necessidade de existir uma comunicação por
fios, a mobilidade e alteração destas redes é muito liExistem várias maneiras, nas quais vários componenmitada. Por outro lado, as redes de sensores sem fios tes de software de aplicações existentes em máquinas
são mais adaptáveis a alterações, uma vez que a sua diferentes podem comunicar uns com os outros, através
comunicação é feita através de redes sem fios. Em am- de uma rede. A cada dia que passa, o leque de tecnobos os tipos de redes de sensores, estes são inteligentes. logias disponı́veis aumenta permitindo uma maior variAo nı́vel da tecnologia de ponta utilizada, esta abrange edade de aplicações e de integrações dos sistemas nos
a existência de microchips de radio, cada vez mais efi- ambientes do dia-a-dia. A ideia da computação ubı́qua
cientes, novos tipos de encaminhadores de rede, progra- é o aproveitamento dessas tecnologias para uma maior
mas informáticos avançados, larguras de banda de rede, interacção entre as pessoas e o ambiente que as rodeia,
velocidades de transmissão de dados em redes, tecnolo- mas de uma forma a que as tecnologias relacionadas
gias de comunicação (como por exemplo, IEEE 802.11, com essa interacção estejam presentes, e num plano
BT ou RF-id), etc.
de fundo que as torne quase indetectáveis. Esse factor
3.4
torna a interacção entre as pessoas e o ambiente num
conjunto de actos pessoais mais naturais, substituindo
os actos rotineiros utilizados actualmente (teclar, clicar,
utilizar PC, etc.).
Interacção Pessoa-Máquina
A interacção entre humanos e máquinas defende a
construção de sistemas centrados no utilizador (ou seja,
em vez de o utilizador ser obrigado a perceber como o
sistema funciona, este deverá ser feito de modo a ser
intuitivos para o utilizador). Por outro lado, estes sistemas tendem a ser o mais transparentes possı́vel para
o utilizador (ou seja, o utilizador não necessita de ter a
percepção da existência de máquinas no procesasmento
da informação). Para que esta interacção corra o mais
perfeito possı́vel, deve existir uma cooperação entre o
utilizador e o sistema.
4.1
A representação de informação
Avaliando a evolução das representações de
informação, pode-se considerar a escrita (quer
textual, quer gráfica) como a primeira tecnologia
de informação. Nela, a capacidade de representar
simbolicamente a linguagem falada, assim como a
representação de informações presentes na memória
humana, estão presentes. Em todo o mundo se utiliza
a escrita, portanto, pode-se concluir que a escrita é
ubı́qua. Em contrapartida, os computadores que fazem
3.5 Inteligência Artificial
parte da vida quotidiana de muitas pessoas, não são
A inteligência artificial é uma das áreas utilizada na ubı́quos, uma vez que se encontram situados num
construção de aplicações inteligentes capazes de tomar mundo próprio onde para se aceder é necessário o
decisões, baseadas em conhecimentos adquiridos. Ou conhecimento de algumas técnicas e tarefas próprias
seja, estas aplicações deverão ser autónomas (dado um pouco indutivas ao primeiro contacto (exemplo: clicar
conjunto de imprecisões, as aplicações deverão saber e digitar). Ao nı́vel da portabilidade, os computadores
qual a melhor decisão a tomar, sem estarem sempre tendem a ser mais leves (ex: laptops) e mais adaptáveis
a consultar o utilizador), proactivas (não deve ser ne- (ex: PDAs). No entanto, continua a ser necessário
cessário estar á espera de ordens do utilizador para exe- o conhecimento de técnicas e tarefas para a sua
cutar as suas tarefas, aliás, o ideal é fornecer sugestões utilização. Conforme os humanos conseguem entender
ao utilizador em alturas oportunas), reaccionária (deve os significados das informações escritas, também
ser capaz de se aperceber quais as alterações necessárias as máquinas deverão ter a capacidade de entender
ao utilizador na execução de tarefas) e adaptável (deve informações recebidas e partilhadas entre si. Assim,
3
é necessária uma capacidade de representação de 5.1 O registo e a descoberta de
informação baseada no contexto da mesma informação.
informações
Percebendo a informação no contexto certo possibilita
O registo e a descoberta de informações englouma melhor interacção com os utilizadores do sistema
bam as operações de pesquisa de recursos, serviços
ubı́quo.
e as suas caracterı́sticas (tipos, fornecedores, custos,
localizações, contextos, etc). Para que estas funci4.2 Inserção em ambientes
onalidades sejam possı́veis é necessário um conjunto
A Computação Ubı́qua defende a utilização de um am- de aspectos de suporte fornecidos pelo Middleware,
biente natural onde interagem vários computadores, o tais como interfaces extensı́veis, escalabilidade, transmais indetectáveis possı́vel e estimulados pelas acções parência em relação à rede, e eficiência/rapidez de
do ser humano. Os sistemas ubı́quos podem ser inse- transmissão de informação. Além disso, os computadoridos em qualquer ambiente que suporte computação e res ubı́quos devem ser capazes de saber continuamente
troca de informações entre dispositivos computacionais a sua localização e adaptar os seus comportamentos de
recolha de informações consoante o local onde se en(sensores, processadores, redes, etc.).
contram (Contextual Awareness - o conhecimento do
contexto).
4.3
Computação Ubı́qua vs Realidade
Virtual
5.2
O termo Computação Ubı́qua não equivale ao termo
Realidade Virtual. São dois conceitos diferentes, uma
vez que a segunda baseia-se na inserção do ser humano numa realidade simulada, ao passo que a primeira procura inserir e adaptar novos elementos à realidade humana. Enquanto a Realidade Virtual defende a
criação de um ambiente presente num (ou vários) computadores que estimula os sentidos do ser humano, portanto engana-o Em resumo, enquanto a realidade virtual
molda os comportamentos do ser humano (ou seja interfere nas suas acções), um sistema ubı́quo é moldado
pelos comportamentos do ser humano (ou seja, não interfere nas suas acções).
5
O serviço de assinaturas de serviços
O serviço de assinaturas dos serviços corresponde ao
encapsulamento de informações acerca dos provedores
de serviços e os serviços que prestam, entre os elementos participantes na computação. Estes elementos
assinam os serviços disponibilizados, propiciando uma
troca de serviços distribuı́dos, assim como de provedores.
5.3
O armazenamento e envio de dados
em série
O armazenamento e envio de dados em série correspondem a uma coordenação de transferências e armazenamentos distribuı́dos de grandes estruturas de dados. O
facto de a informação se encontrar distribuı́da e replicada resolve alguns problemas de disponibilidade, conectividade e latência no acesso às informações.
Caracterı́sticas técnicas
A nı́vel estrutural, a computação ubı́qua respeita uma
arquitectura na qual as aplicações correm sobre um
Middleware que engloba várias componentes: Uma
área de armazenamento e envio de informação, ligada
a uma área de serviço e subscrição por um gestor de
contexto e uma área de partilha de computações. Todas estas áreas têm um papel de descoberta e registo
de informações, sendo estas transmitidas em camadas de rede, permitindo assim a heterogeneidade entre os vários componentes e a homogeneidade entre as
informações partilhadas. Quando se implementa um
sistema ubı́quo tem-se em conta um conjunto de caracterı́sticas.
5.4
A partilha de recursos
A partilha de recursos tem como objectivo diminuir a
subutilização de recursos computacionais presentes na
computação. é necessária a estipulação da procura, da
alocação e desalocação dos recursos adequados. é necessária a contabilização do uso dos recursos. é útil
também a implementação de polı́ticas de utilização dos
mesmos (tendo em conta a racionalização do gasto de
energia nos recursos).
4
5.5
A gestão de contextos
reconhecimento de dispositivos computacionais móveis
e actuadores (como por exemplo fechaduras e interrupA gestão dos contextos é muito importante no que tores). A nı́vel da arquitectura, o Gaia é composto por
diz respeito à abstracção dos mesmos e das lingua- várias áreas que interagem entre si.
gens. Normalmente necessita de sensores (para captar
as informações) e de mecanismos de alto nı́vel (para as
6.1.1 O core do Gaia
incluir nos contextos).
O core do Gaia (CMC - Component Management Core)
providencia
ao Gaia as funcionalidades de manipulação
5.6 Dificuldades a ter em conta
de componentes. Esta manipulação inclui a criação,
Existe um conjunto de problemas que podem por em destruição e lançamento dos componentes. O gestor de
risco o funcionamento de um sistema ubı́quo. Além componentes não necessita de protocolos middleware
dos preços dos componentes computacionais, dos pro- para providenciar suporte para RMIs (Remote Method
blemas da segurança e privacidade e das falhas de Invocations). O CMC abrange três abstracções: - Os
comunicação e partilha de informações, acrescem os repositórios de componentes do Gaia (Gaia component
desafios da diminuição dos consumos de energia, da containers). - Os nós do Gaia (Gaia nodes) que correscriação de sensores mais enquadrados nos contextos, pondem a cada nó que consegue albergar as execuções
as implementações de inter operação dos componentes dos componentes do Gaia. Os nós do Gaia organizam
dos sistemas, etc. No entanto, muitos estudos estão a os componentes em repositórios (Gaia containers) que
ser feitos e várias tecnologias estão a ser estudadas e agrupam os componentes e exportam interfaces para a
desenvolvidas de modo a minimizar algumas dificulda- sua manipulação de acordo com cada grupo. Os nós do
des.
Gaia exportam também uma interface de manipulação
dos repositórios que permite a sua criação, navegação
e eliminação. - Os componentes do Gaia (Gaia compo6 Aplicações e projectos
nents) que constituem uma minúscula parte de software.
Muitos trabalhos têm sido efectuados utilizando 6.1.2 A área dos serviços de contexto
várias tecnologias, linguagens de programação, para- A área dos serviços de contexto (Context Service)
digmas, arquitecturas, frameworks, etc.
permite ajudar o Gaia na interacção com os humanos,
uma vez que aproveita vários contextos (por exemplo
localização,
temporização, climatização, preços, tem6.1 O Gaia
peramentos, actividades em grupos, etc.) para obO Gaia é um sistema que aproveita um conjunto de tec- ter uma percepção mais rica (context awareness) das
nologias que podem ser introduzidas em dispositivos e interacções. Esta área contém um modelo de cláusulas
espaços fı́sicos permitindo a interacção entre eles, per- que corresponde a um conjunto de propriedades de conmitindo a transformação dos espaços fı́sicos em espaços texto e operações que nele podem ser invocadas permiinteractivos (ou seja espaços activos – Active Spaces), tindo desenvolvimentos e inserções de sensores de cono que contraria a ideia da utilização dos sistemas com- texto em aplicações de percepção de contextos.
putacionais tradicionais. Um computador é visto como
um objecto composto por dispositivos de entra e saı́da 6.1.3 A área do sistema de ficheiros de contexto
e recursos. No entanto, devido à heterogeneidade, mobilidade e número de dispositivos, o sistema é vasta- A área do sistema de ficheiros de contexto (Context
mente mais complexo. O Gaia fornece as funcionalida- File System) corresponde a um sistema de ficheiros bades de um sistema operativo aplicado a espaços fı́sicos. seado em percepção de contextos. O CFS aumenta as
O Gaia suporta as mais comuns dos operações dos sis- funcionalidades tradicionais de um sistema de ficheiros
temas operativos, tais como o controlo de eventos, de para um ambiente de um espaço activo ao proporciosinais, de sistemas de ficheiros, de segurança, de pro- nar suportes para organização e transformação de dacessos, etc. O Gaia ainda estende os conceitos de sis- dos (data). Como os espaços activos podem ser potemas operativos na área da percepção de localização e voados com várias pessoas e por isso o contexto do
5
6.1.5
espaço pode estar constantemente a ser alterado o CFC
utiliza as informações do contexto para organizar as
informações do ambiente, para que seja mais rápida a
pesquisa de material relevante por parte das aplicações
em execução. O armazenamento pessoal é permitido,
estando ligado ao utilizador e podendo ser disponibilizado no sistema no espaço corrente ou através de um
ponto de acesso móvel (por exemplo, através de dispositivos de mão). O sistema de ficheiros funciona de
dois modos: -O modo de ficheiros (file mode) que providencia uma navegação entre pastas (directory navigation) hierárquica de forma usual. Quando um utilizador é detectado no espaço, uma pasta é disponibilizada
e os seus documentos pessoais ficam disponı́veis na
pasta /users/{nome-do-utilizador}. No entanto, como
cada utilizador pode entrar e sair do espaço, o nome
da pasta é alterado automaticamente. -O modo de contexto (context mode) que providencia uma organização
dos dados dependendo dos utilizadores e das propriedades definidas para o contexto ambiental. As propriedades (atributos) podem ser associadas ou etiquetadas em dados e guardam-se num conjunto hierárquico
de pastas virtuais que formam uma linguagem simples. Os atributos podem ser anexados a documentos ou pastas simplesmente pela transacção entre o file
mode e o context mode. O sistema utiliza as propriedades especificadas nos seus caminhos (paths) como
uma informação de contexto do ambiente para mostrar
o material relevante. Para cada documento podem haver caminhos diferentes, tendo em conta o contexto. Por
exemplo, uma aplicação pode abrir um documento com
o mesmo nome, e, no entanto, receber um conjunto de
informações diferentes.
A área do gestor de eventos
A área do gestor de eventos do Gaia (Event Manager) é uma área que proporciona um modelo para
comunicação entre diferentes entidades separadas num
espaço activo, uma vez que os componentes estão espalhados pelo espaço e geram e respondem a eventos
assı́ncronos no mesmo ambiente. Esta área permite a
criação de categorias de canais, a exploração dessas categorias e dos seus canais associados e a criação ou
eliminação de canais associados a categorias particulares. Todos os componentes do Gaia utilizam o gestor de eventos para aprenderem acerca das alterações
do estado do espaço e reagem de acordo com as mesmas. O gestor de eventos distribui a carga (de mensagens) através de várias máquinas. Ele cria remotamente
fábricas canais de eventos em máquinas previamente
configuradas quando ele decide que as fábricas de canais de eventos actuais estão em sobrecarga. Quando
o gestor de eventos é iniciado (bootstrap), tem de ser
configurado com um conjunto de máquinas disponı́veis,
nas quais podem ser instanciadas fábricas de canais de
eventos. O gestor de eventos é, também, responsável
pela recreação dos canais no caso de algum lançador de
eventos se queixar que um certo canal não existe. Portanto, em suma, o gestor de eventos mantém os estados
dos canais de eventos, criando ou recreando-os no caso
de falha.
6.1.6
A área do serviço de presença
A área do serviço de presença corresponde a uma área
onde os componentes do espaço activo são monitorizados, uma vez que os espaços activos são populados
por várias entidades, incluindo pessoas, componentes
de software e dispositivos de hardware, sendo algumas destas entidades permanentes e disponı́veis para
6.1.4 A área do repositório de componentes
utilização desde que o sistema esteja a ser executado (ao
passo que os outros podem ser transitórios ou móveis).
A área do repositório de componentes (Component Re- A monitorização de todas as entidades é necessária
pository) é uma área onde estão alojados todos os com- para reconhecer, os seus estados actuais (quando esponentes de software conhecidos no espaço activo, uma tas estão activas) e o espaço fı́sico onde estão presenvez que os nodos do Gaia podem albergar os seus com- tes. A monitorização de software é feita através de
ponentes de software, mas não é possı́vel garantir-se um mecanismo heartbeat e processada pelo serviço de
que um nodo do Gaia possua uma cópia de todos os presença. Quando os heartbeats de um mecanismo são
componentes de software que podem ser executados no recebidos, a sua chegada é anunciada através de canais
espaço activo. Este repositório guarda também um con- de eventos. Existem três canais de eventos para softjunto de informações relacionadas com os componentes ware e hardware. - Application Presence (presença de
(como por exemplo, o nome, a plataforma de hardware, aplicação) - Device Presence (presença de dispositivo)
o sistema operativo necessário para execução, etc.).
- Application Presence Channels (presence de canais)
6
Quando um heartbeat de uma entidade não é recebido
durante um certo tempo, assume-se que a entidade parou e a sua falha é anunciada. Estes anúncios de chegadas e partidas são colocados em canais apropriados,
através dos quais outros componentes podem receber
e detectar a presença de várias entidades no sistema.
As pessoas são monitorizadas através do uso de sensors. Vários sensores são capazes de receber vários
tipos de informações acerca das pessoas. Todos eles
colocam os dados num formato standard e enviam-nos
como eventos num canal próprio (o Person Presence
channel). O localizador de pessoas (Person tracker) escuta este canal e recebe os eventos. Então, processa os
eventos, fazendo a manutenção da localização dos diferentes indivı́duos, tentando apurar as informações de
localizações e tentando inferir a identidade das pessoas,
através da combinação de várias informações recebidas.
Tudo o que foi descoberto ou inferido é enviado por um
canal próprio (o Person Discovery Channel). A posição
das pessoas num espaço activo pode ser monitorizada
em situações diferentes: - Ao nı́vel de uma sala - Ao
nı́vel da posição numa sala. Vários sensores são capazes de monitorizar pessoas e podem reportar as suas
observações ao sistema. Diferentes dispositivos diferem nas suas capacidades de reconhecer as pessoas, na
precisão da sua localização, e na forma em como podem transmitir as suas observações. Os espaços activos
devem ser espaços flexı́veis nos quais vários dispositivos podem ser inseridos, portanto, é necessária uma
framework para uma integração fácil de novos tipos de
dispositivos sensı́veis. Este facto requer um modelo de
localização que pode ser usado pela maioria dos sensores e um formato próprio capaz de abranger vários tipos de sensores. As informações de vários sensores podem ser combinadas para se fornecer mais informação
acerca de localização que somente um sensor. Esta
combinação de informação pode apurar a posição de
uma pessoa ao agregar informações e pode permitir a
identificação da mesma (sendo esta conhecida).
6.1.7
des (tais como tipo, nome e localização). As entidades
podem ser pesquisadas na base de dados tendo como
base estas propriedades.
6.1.8
A área do serviço de segurança
A área do serviço de segurança contém uma arquitectura baseada num conjunto de módulos de autenticação
distribuı́dos, ligáveis (pluggable) e CORBAlizados, uma
vez que o dinamismo e a abrangência dos espaços activos defende a necessidade da utilização de mecanismos de segurança extrema para as infra-estruturas inferiores. Este serviço baseado em módulos permite a
separação das aplicações, dos mecanismos actuais de
autenticação (os módulos dinamicamente ligáveis permitem ao subsistema de autenticação incorporar mecanismos e dispositivos de autenticação adicionais sem
qualquer preparação prévia, assim que eles possam estar disponı́veis). O sistema de controlo de acessos está
desenhado para a automatização da criação e reforço
de polı́ticas de controlo de acessos, para diferentes
configurações de um espaço activo. O sistema explicitamente reconhece os diferentes modos de cooperação entre os grupos de utilizadores e as dependências entre os
aspectos virtuais e fı́sicos da segurança dos espaços activos. As permissões são definidas dinamicamente para
os papéis dos utilizadores com base nas informações
do contexto. Os domı́nios de protecção dinâmicos
permitem aos administradores e programadores das
aplicações a capacidade de personalizarem as polı́ticas
de controlo de acessos. Utilizando um protocolo de
preservação de privacidade nas comunicações (o Mist)
é possı́vel a autenticação de utilizadores, escondendo as
suas verdadeiras identidades das aplicações.
6.1.9
A área da framework de aplicações
A área da framework de aplicações (Application Framework) adapta o tradicional modelo MVC (ModelView-Controller) ao modelo computacional definido
para aplicações em espaços activos. As aplicações são
construı́das de um modo genérico, utilizando descrições
abstractas dos componentes necessários para a sua
construção. A descrição abstracta das aplicações
pode, então, ser utilizada para construir a aplicação
tendo como base a disponibilidade de recursos de
hardware num espaço em particular (contrariamente
às aplicações tı́picas que pressupõem a utilização de
ecrãs, ratos e teclados). A framework de aplicações
tem como base o modelo MPCC (Model-Presention-
A área do repositório de espaço
A área de repositório de espaço (Space Repository) é
uma base de dados que contém informações acerca dos
dispositivos e serviços no espaço activo. Esta base de
dados é mantida actualizada, uma vez que estão sempre
a ser consultados os canais de presença (onde são enviados os eventos acerca de novas entidades ou entidades
que não estão activas). Todas as entidades no sistema
têm uma descrição XML que inclui as suas proprieda7
Controller-Coordinator) e é conceptualmente parecida
com o MVC. No entanto, o componente de visualização
(View) é exteriorizado para as apresentações (normalmente para ecrãs) e é introduzido um componente novo
- o Coordinator. Neste modelo o controlador (Controller) insere as alterações que automaticamente são reportadas nas apresentações. O coordenador (coordinator)
é o responsável pela gestão dos intervenientes (Model,
Controller, Presentations). Qualquer entidade contida
no espaço pode interagir com o coordenador para alterar a estrutura da aplicação.
6.1.10
para correr em diferentes dispositivos), Speech Recognition Engine (aplicação de reconhecimento de comandos falados mediante um contexto), Camera Controller
(serviço genérico para controlo, gestão e sincronização
de cameras), Clicky (utilidade para controlo de vários
dispositivos através de dispositivos de mão, tais como
PDAs ou ratos), Location-Based Access Control (sistema de controlo de acesso baseado em localizações),
Poll Manager(aplicação para condução de votações e
recolha de resultados em tempo real) e Mine Sweeper
Game (jogo que pode ser executado em vários ecrãs).
A área da qualidade de serviço
6.2
A área da qualidade de serviço (QoS) corresponde a
uma framework apontada para sistemas ubı́quos baseados em componentes, com ambientes de computações
dinâmicas e comunicações. No âmbito da qualidade
de serviço distribuı́da foi desenhada e implementada
a primeira versão de técnicas de compilação de qualidade de serviço (tais como qualidade de serviço
em tradução, em sondagem e em análise estática) de
acordo com várias configurações da aplicação. No
âmbito da instanciação dinâmica está a ser desenvolvida a instanciação em tempo de execução de diferentes aplicações baseadas em selecção dinâmica de uma
configuração tendo em conta a disponibilidade de recursos, a descoberta dinâmica de localização de serviços e
os protocolos de reserva de recursos. Está também a
ser refinado o processo de tradução de modo a ser mais
genérico para domı́nios diferentes da aplicação.
O Aura
O projecto Aura é um projecto posto em prática pelos
docentes e estudantes da Carnegie Mellon University
com vista a fornecer sistemas que, na sua execução, reduzam a desatenção dos seus utilizadores. A grande
ideia-chave dos implementadores do Aura é a de que o
recurso mais precioso em computação é a atenção humana. O projecto Aura começou no ano de 2000 e tinha como objectivo a criação de uma arquitectura de
computação ubı́qua que se adapte ao contexto e às necessidades dos utilizadores e de forma invisı́vel. Para
isso foi utilizado o conceito Distraction-Free Ubiquitous Computing que vai ao encontro da ideia principal
que reduzindo a distracção dos humanos consegue-se
obter mais informações e uma melhor computação. A
arquitectura do AURA é baseada em camadas. Existem
cinco camadas diferentes que fornecem serviços entre
si. As tarefas do utilizador são representadas como um
conjunto
de serviços distribuı́dos (normalmente respei6.1.11 A área de aplicações em espaços activos
tantes das normas da famı́lia IEEE 802.11), sendo o
A área de aplicações em espaços activos (Active acesso a elas feito a partir de interfaces estruturadas.
Space Applications ) contém as aplicações directamente ligadas aos utilizadores, tais como, iCalendar (calendário interactivo), Attendance (software que 6.2.1 A camada dos dispositivos fı́sicos
aponta participantes para uma tarefa), MP3Player (reprodutor de música para vários dispositivos sono- A camada dos dispositivos fı́sicos é composta por comros), PDFViewer (visualizador de documentos Adobe putadores inteligentes que suportam as trocas de mensaPDF em vários ecrãs), PPTViewer (visualizador de gens entre dispositivos e processam instruções em baixo
apresentações PowerPoint em vários ecrãs e dispositi- nı́vel.
vos de mão), mPPT (visualizador de apresentações de
PowerPoint sincronizadas), TickerTape (apresentador
de informações em torno dos ecrãs da sala), FingerPrint 6.2.2 A camada do sistema operativo/rede
(autenticador de utilizadores utilizando a técnica de finger print matching), Scribble (sincronizador de dese- A camada do sistema operativo/rede é composta pelo
nhos e rabiscos para sessões de brainstorming), Spe- Kernel e por um conjunto de interfaces de rede inteliech Engine (aplicação tect-to-speech com componentes gentes. O kernel do AURA é baseado em LINUX.
8
6.2.3
7
A camada dos serviços
A camada dos serviços é composta por duas áreas:
O Odissey e o Coda O Odissey é uma área que permite o controlo dos recursos e do suporte das aplicações
aos contextos. O Coda proporciona acesso a ficheiros,
adaptado às diferentes condições de rede (largura de
banda, tipo de ligação) e à movimentação dos dispositivos. Também permite operações desconectadas.
6.2.4
Através da análise de muitos projectos já desenvolvidos na área, e de modo a ser cada vez mais possı́vel a
implementação de sistemas ubı́quos nas áreas do diaa-dia dos humanos, é necessária a garantia da continuidade dos trabalhos efectuados e o aperfeiçoamento
das tecnologias já existentes (ou até adopção de novas
tecnologias). Algumas mudanças a nı́vel de computadores, software, redes, agentes, localizações, etc. deverão ser implementadas. Assim, ao nı́vel dos computadores, num futuro próximo, eles deverão ser mais
baratos, mais pequenos, mais potentes, mais fáceis de
utilizar, de baixo consumo e com interfaces adequadas (próprias para cada utilizador). Por exemplo, os
ecrãs LCD de alta resolução e dimensões reduzidas já
são vulgares, mas ainda são dispendiosos. Se for necessária a utilização de um número elevado destes materiais, torna-se uma operação dispendiosa. Além disso,
tanto as capacidades de armazenamento, como as velocidades de processamento dos computadores aumentam significativamente a cada ano o que vem a propiciar um aumento das capacidades de processamento
de informações. Ao nı́vel do software, este deverá
ser vocacionado para aplicações ubı́quas, permitindo a
sua adaptação a qualquer dispositivo. Como o desenho dos actuais sistemas operativos pressupõe que as
configurações das máquinas não mudarão durante as
suas execuções, é impensável que o mesmo acontaça
em sistemas ubı́quos. O factor adaptação deve ser implementado no software dos sistemas. Por outro lado,
as tecnologias Touching Typing (escrita somente com o
toque) e Hierarchic Marking Menus (que permitem menus de vários nı́veis) poderão ser tecnologias apoiadas
por novos softwares. Ao nı́vel das redes (com ou sem
fios), estas deverão ter uma largura de banda necessária
para que seja possı́vel a interligação de todos os computadores. Utilizando as tecnologogias de comunicações
(WAP, Bluetooth, GPRS, UMTS, HDSPA, etc.), os dispositivos de comunicação móveis (telemóveis, computadores, PDAs, etc.) e as redes móveis (Campus, AdHoc, sistemas de informação espacial, etc.) e aplicando
a várias áreas da computação consegue-se reter muita
informação que será necessária para processamento. Ao
nı́vel dos agentes, estes deverão ser inteligentes e deverão trabalhar em benefı́cio dos humanos. Com a
construção de agentes electrónicos que possuam um conhecimento alargado sobre processos, áreas e conceitos
e os consigam relacionar com os gostos, ideias e perfis dos humanos (como por exemplo, criação de perfis
A camada das tarefas
A camada das tarefas é composta por uma área especı́fica: O Spectra. Além desta área podem estar presentes outras áreas de suporte do AURA para vários tipos de aplicações. O Spectra proporciona um mecanismo de execução remoto que utiliza o contexto do
utilizador para decidir qual a melhor forma de executar uma operação remota.
6.2.5
O AURA e os utilizadores
A no topo das camadas encontram-se os utilizadores.
Existe uma aplicação, o Prism, que permite capturar
e gerir as intenções dos utilizadores e é uma camada
acima das aplicações. Aproveitando as inovações ligadas à mobilidade (que permite que os utilizadores
se movam e efectuem tarefas computacionais em movimento de um lugar para o outro) em conjunto com
técnicas de minimização de distracção do próprio e mecanismos de maximização dos recursos disponı́veis o
AURA consegue agrupar um conjunto de informações
no que se chama de informação pessoal.
6.3
Ideias para o futuro
Tecnologias a serem exploradas para
utilização no AURA
Entre outras, estão a ser exploradas várias tecnologias
para serem utilizadas no AURA, tais como, computação
baseada em tarefas (Task-Driven Computing que corresponde ao método formal de, quando uma tarefa é
sugerida, então, a estratégia de descoberta de serviços
é analisada, após a discussão da adaptação entre o
serviço e as tarefas), adaptação a percepção de energia
(Energy-Aware Adaptation), computação multi-fiável
(Multi-Fidelity Computation), redes inteligentes (Intelligent Networking), oportunismo de recursos (Resource
Opportunism), etc.
9
em motores de busca na WEB). Ao nı́vel da localização
dos sistemas, esta deverá ser reconhecida por todos no
sistema. Utilizando tecnologias de localização (GPS,
Radio Beacons, Infravermelhos, etc.) pode-se localizar uma pessoa, um recurso do sistema, um dispositivo
novo, etc. e fazer um sistema ubı́quo que se adapte
às novas informações recebidas. Por fim, ao nı́vel da
segurança, esta deve ser mantida e, com a tendência
para sistemas de autenticação mais fiáveis e robustos
(Rfid, Digital fingerprinting, biometria, etc.)
8
Conclusão
Uma das conclusões que se pode tirar é que a
computação ubı́qua tende a fazer com que os computadores, conforme os conhecemos, se tornem invisı́veis,
mas presentes, dando mais visão às pessoas e às suas
tarefas. Assim, em vez das pessoas dependerem de
uma sala e de uma máquina para a qual têm que aprender a trabalhar (o vı́cio do computador), podem realizar as tarefas fora de uma sala ou mesmo dentro dela,
de um modo mais natural (mais humano). Portanto,
utilizando sistemas ubı́quos, num mundo em constante
evolução, torna-se mais simples a interacção com eles,
assim como a adaptação deles às evoluções. No final
todos ganham.
8.1
Grupos de investigação
Austrália: e-World Lab, Universidade South Australia;
Human Media Lab, Queen’s University; Mobile Ubiquitous Services & Technologies Group, Universidade
de Technologia, Sydney
Japão: Nakajima Lab, Universidade Waseda, Tokuda Lab, Universidade Keio
Austria: Pervasive Computing, Universidade Kepler
Linz, Austria
Belgica: Programming Technology Laboratory in
Ambient-Oriented Programming, Vrije Universiteit
Brussel, Bélgica
Brasil: Embedded Systems and Pervasive Computing Lab, Universidade Federal de Campina Grande,
Brasil
Dinamarca: Centre for Pervasive Computing, Universidade de Aarhus, Dinamarca
Finlandia: Intelligent Systems Group, Universidade
de Oulu, Finlandia
França: LIRIS (CNRS), Universidade de Lyon,
France
Alemanha: AMBIENTE Lab in Human-Computer
Interaction, Fraunhofer IPSI Institute, divisão AMBIENTE , Alemanha; Embedded Interaction Research
Group, Federal de Munique, Alemanha; Telecooperation Group, Department of Computer Science, TU
Darmstadt, Alemanha; Telecooperation Office (TecO),
Universidade de Karlsruhe, Alemanha; Media Computing Group, RWTH Universidade Aachen, Alemanha;
OOT The Office of Tomorrow Project of Digital Media,
Hagenberg
Irlanda: Systems Research Group, UCD Dublin, Irlanda; Interaction Design Centre, University of Limerick, Irlanda
Coreia: ACAMUS Group, Ubiquitous Computing
Lab, Kyung Hee University, Coreia
Portugal: ubicomp@uminho Mobile and Ubiquitous
Computing Group at University of Minho, Portugal
Singapura: Mixed Reality Lab, Nanyang Technological University
Espanha: CHICO Laboratory in Computer Human
Interaction, Universidade de Castilla - la Mancha, Espanha; MoreLab (Mobility Research Lab), University
of Deusto, Bilbao, Paı́ses Baixos, Espanha
Suécia: Future Applications Lab, Viktoria Institute;
MDA, Department of Computer Science, Linkãpings
Universitet, Suécia
Suiça: Global Information Systems Group, ETH Zurique; Institute for Pervasive Computing, ETH Zurique, Suı́ça; Pervasive and Artificial Intelligence research group, Universidade de Fribourg, Suı́ça
Tailândia: Ubicomp Lab, National Taiwan University, Tailândia; PADS Lab, National Tsing-Hua University, Tailândia
Reino Unido: Equator Project The Equator Project, RU; Cogent Computing Group Cogent Computing
Group at Coventry; Computing Department, Lancaster
University; Grid and Pervasive Computing Group, University of Southampton; Intelligent Inhabited Environments Group, University of Essex; Pervasive Computing Group, University of Birmingham, RU; Laboratory
for Communication Engineering, University of Cambridge
Estados Unidos da América: DUB Group, University of Washington; Group for User Interface Research, University of California, Berkeley; Intel Research Seattle; MIT Media Lab; Mobile & Pervasive
Co; PARC; Stanford University Interactive Workspaces; SURG, Indiana University; Ubiquitous Computing Research Group, Georgia Institute of Technology;
UCSD, explorations in community-oriented ubiquitous
10
computing; GAIA Homepage A project about Ubiquitous computing
[2] The Computer for the Twenty-First Century ,
Mark Weiser, Scientific American, pp. 94-10,
September 1991
9
[3] Pervasive Computing: Vision and Challenges, M.
Satyanarayanan, IEEE Personal Communications,
pp. 10-17, August 2001
Colectânea de termos
Desktop: O termo desktop corresponde a cada computador de mesa cujos componentes (como o teclado, o
rato, o monitor, a impressora, etc.) estão parcialmente
separados e é de baixo custo.
Framework: Uma Framework corresponde a um
conjunto de pacotes de software que possibilitam a
resolução de um conjunto de problemas que se encontram dentro de uma mesma área. Funciona como um
suporte de execução genérico para um dado conjunto
de aplicações.
Middleware: Um Middleware é uma camada de
software que funciona como intermediária entre as camadas de aplicação e de execução de uma aplicação.
Realidade Virtual: A Realidade Virtual é um conjunto de tecnologias que permitem um utilizador interagir com um ambiente virtual criado por computador.
Active Space: Um Active Space corresponde a um
espaço fı́sico que consegue interagir com quem dele
usufrui através de dispositivos de input, output e input/output.
Mecanismo Heartbeat: Um mecanismo heartbeat
é um mecanismo através do qual um recurso indica se
está activo. Se o bater do coração do recurso for reconhecido, então este está activo, caso contrário, assumese que está inactivo.
XML: A sigla XML corresponde ao termo Extensible Markup Language. é uma linguagem markup utilizada para descrever vários tipos de dados. A sua ideia
principal é a facilidade na troca de informações.
CORBA: A sigla CORBA corresponde ao termo
Common Object Request Broker Architecture. é uma
arquitectura padrão para estabelecer e simplificar a
troca de dados entre sistemas heterogéneos distribuı́dos.
Referências
[1] Gaia: A Middleware Infrastructure to Enable Active Spaces. Manuel Román, Christopher K. Hess,
Renato Cerqueira, Anand Ranganathan, Roy H.
Campbell, and Klara Nahrstedt, In IEEE Pervasive Computing, pp. 74-83, Oct-Dec 2002.
11
[4] From Distributed Systems to Ubiquitous Computing - The State of the Art, Trends, and Prospects of Future Networked Systems, Friedemann
Mattern, Peter Sturm, Proc. Symposium Trends
in der Informationstechnologie am Beginn des 21.
Jahrhunderts, pp. 109-134, May 2002
[5] Toward Internet Distributed Computing, Milan
Milenkovic, Scott H. Robinson et al., IEEE Computer, pp. 38-47, May 2003
[6] Device Ensembles, Schilit, B.N. and Sengupta,
U., IEEE Computer, pp. 56-64, December 2004
[7] From Distributet Systems to Ubiquitous Computing - The State of the Art, and Prospects of Future
Networked Systems, Friedemann Mattern and Peter Sturm
Download

- Sérgio Ildefonso