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