• Nenhum resultado encontrado

3.3 Pesquisas em computação ubíqua

3.3.1 Principais requisitos de computação ubíqua

Analisando-se o perfil das propostas acima, obtém-se um conjunto de requisitos que uma aplicação invisível deve apresentar. Em ambientes dominados pela computação ubíqua é explícita a necessidade de que as aplicações percebam simultaneamente as mudanças que ocorrem no espaço operacional. Isto permite que elas se adaptem às necessidades do usuário, alterando sua capacidade de computação, comunicação e de interação com o usuário. Compilando-se as propostas das várias linhas de pesquisa, chega-se ao seguinte conjunto de requisitos fundamentais (não exclusivo):

• Mobilidade de código estático e dinâmico; • Controle de recursos com qualidade de serviço; • Segurança;

• Robustez;

• Suporte a diferentes formas e estilos de interação com o usuário; • Localização e;

• Aspectos sociais.

A seguir são apresentados os argumentos para cada um dos requisitos acima relacionados.

3.3.1.1 Mobilidade de código estático e dinâmico

O código móvel deve ser independente de plataforma para poder ser executado em diferentes equipamentos. Atualmente, a maior parte dos sistemas de código móvel utiliza um interpretador, que roda como um processo do sistema operacional nativo. Quando um

agente necessita acessar primitivas deste sistema nativo, deve atravessar uma camada significativa de proteção, o que implica em perda de performance. No momento em que esse tipo de código migra para outra máquina, um novo ambiente de execução deve ser criado. Em sistemas tradicionais, isso significa criar um novo processo para o interpretador. Essa característica de migração de código em execução é referida freqüentemente como strong migration (GHEZZI e VIGNA, 1997). Para que isso ocorra, é

necessária a transferência do estado de execução da aplicação, incluindo a porção do estado do sistema operacional no exato momento em que a aplicação está sendo migrada.

Deve-se considerar, também, que tanto as questões de mobilidade quanto aquelas relativas à heterogeneidade dos equipamentos envolvidos, possuem requisitos diferentes nos contextos de utilização. É possível, por exemplo, que, num ambiente restrito, haja largura de banda suficiente para rápida transferência de um grande volume de dados, enquanto que, num ambiente aberto (wide area), as restrições de largura de banda e consumo de energia são determinantes no aspecto de performance. Contudo, um espaço inteligente deve explorar os recursos disponíveis em determinado contexto e se adequar

da melhor forma às necessidades do usuário (STEVEN,1999; WELSH, CULLER e

BREWER,2001).

3.3.1.2 Controle de recursos com qualidade de serviço

Uma das principais funções de um sistema operacional é a gerência de recursos. São amplamente discutidos na literatura (DEITEL, 1990; TANENBAUM, 1987) os aspectos desse ponto, principalmente quando se trata dos sistemas operacionais tradicionais. Além deles, no entanto, é preciso adicionar o fato de que o sistema deve gerenciar também o consumo de recursos de código baixado (downloaded) dinamicamente.

Segundo Golm e Kleinöder (2001), os sistemas tradicionais enfrentam problemas

para controlar o consumo de recursos porque empregam estratégias de melhor esforço (best-effort), o que apresenta uma granularidade muito alta, pouco adequada quando os recursos são compartilhados por muitos processos. É necessário, portanto, que as informações sobre o perfil de consumo de recursos da aplicação que está sendo baixada (downloaded), sejam recebidas pelo sistema operacional hospedeiro (host) antecipadamente. Isso faz com que esse sistema tenha condições de se adequar à nova

demanda. Dessa forma, é possível evitar sobressaltos e permitir que o sistema operacional se ajuste mais suavemente às flutuações nas demandas advindas da rede.

Para atender à demanda de qualidade de serviço, ainda é necessário que o modelo suporte o controle de serviços e recursos fim-a-fim, utilizando camadas capazes de sustentar funções de reserva de recursos e controle adaptativo, de tal modo que se possa disponibilizar um alto grau de qualidade e adaptabilidade de serviços. Também é imprescindível um nível de controle para prover facilidades de reserva de recursos, que sustente um conjunto mínimo de requisitos de qualidade. Um outro nível deve ser responsável pelo controle de disponibilidade de recursos frente a picos de demanda. Este tipo de flutuação ocorre quando as requisições superam as reservas de recursos solicitadas. Facilidades de controle adaptativo fornecem estabilidade, agilidade e reagem a pequenas mudanças na alocação de recursos, acima do nível reservado. E, finalmente, é preciso garantir um nível de controle que aceite comandos e parâmetros difusos, com o objetivo de disponibilizar facilidades de adaptação funcional e reconfiguração dinâmica para atender aos requisitos de qualidade de serviço.

O objetivo de um sistema de configuração automática é facilitar a configuração do sistema e das aplicações através do gerenciamento de dois tipos de dependências entre componentes: pré-requisitos, que especificam os requisitos para carga de um componente no sistema, e dependências dinâmicas, que se referem aos relacionamentos entre componentes de software durante a execução dos mesmos. Na medida em que um sistema tem acesso a essas informações, o procedimento de instalação e configuração pode ser automatizado. Como subproduto desse conhecimento, a performance dos componentes pode ser melhorada, analisando-se o estado dinâmico dos recursos do sistema, as características de cada componente e configurando-os adequadamente.

3.3.1.3 Segurança

Um espaço inteligente é composto por muitos dispositivos embutidos e móveis e um determinado número de usuários móveis. É necessário, portanto, o desenvolvimento de novos enfoques para garantir a segurança. O controle de acesso ao ambiente deve compreender, entre outras coisas, o suporte a senhas, crachás e smart cards e o reconhecimento de funções biométricas. Toda uma API deve ser desenvolvida como suporte para essas funções.

Outro aspecto importante a destacar é o fato de que, num ambiente tão heterogêneo, onde há dispositivos com limitações na capacidade de processamento, no consumo de energia e na disponibilidade de memória, os mecanismos de segurança devem utilizar diferentes padrões de qualidade de proteção (Quality of Protection)

(CHANDAK, 1999).

3.3.1.4 Robustez

Falhas são comuns em sistemas computacionais. A proposta de espaços inteligentes consiste em tornar um sistema computacional invisível aos usuários. Para atingir esse nível de abstração, as falhas em tempo de execução devem ser reduzidas ao mínimo e a forma de tratamento daquelas que ocorrerem deve ser menos complexa. A confiabilidade deve ser garantida para todos os níveis do sistema, dos device drivers ao código móvel das aplicações. Segundo Szyperske e Gough(1995),somente as linguagens estaticamente seguras, como Java, podem ser capazes de atingir esse nível de confiabilidade. Nos sistemas atuais, a proteção é obtida usando isolamento de falhas de software (WAHBE et al., 1993) ou executando-se um interpretador para linguagens ditas seguras, tais como Tcl, Java, DIS(DORWARD et al.,1997),Omniware(COLUSA,1995).

Nos últimos anos, as discussões sobre formas adequadas de tratamento de erros têm recebido maior atenção, principalmente com a popularização de estruturas do tipo try-catch (Java, C++, Object Pascal) nas linguagens de programação usadas comercialmente. Estas estruturas permitem uma forma mais organizada de controle de exceções ao nível de programação. Contudo, afirmam Robillard e Murphy (1999): “da mesma forma que a estrutura das operações normais de um sistema tendem a degradar a medida em que o sistema evolui, a estrutura de tratamento de exceções também degrada.” Em função disto, a forma de comunicação das falhas permanece um tanto quanto rude e inadequada ao usuário final, o que implica diretamente na necessidade de mais investimentos na fase de desenvolvimento das aplicações. Geralmente os sistemas tradicionais têm dificuldades em localizar precisamente o erro e reportá-lo ao usuário de forma amigável e de modo compreensível. Assim sendo, a comunicação do erro é direcionada para o lugar errado.

O usuário final não quer e não deveria saber que uma aplicação provocou uma “falha de proteção geral”. Quem deveria ser informado sobre o problema é o quem

desenvolveu o sistema. No entanto, as mensagens geradas são incompreensíveis para os usuários finais e insuficientes para quem deve realmente se interessar por elas.

Cabe salientar que, hoje, soluções para esse problema envolvem basicamente a automatização do processo de comunicação, através da coleta e do envio dos registros (logs) de erro, normalmente via Internet, para as equipes de desenvolvimento e suporte. Durante o prazo de análise e solução do problema, o usuário fica impossibilitado de usar o sistema, o que não pode ocorrer num espaço inteligente. Nessa situação, os ambientes inteligentes deverão tratar o problema de uma forma que permita o isolamento dos módulos com falhas, sem que a operação na parte do sistema não atingida pela falha seja interrompida. Tanenbaum (1987) define esta característica como capacidade de

degradação suave do sistema.

3.3.1.5 Interação com o usuário

Segundo Tandler (2001),a infra-estrutura de software necessária para o suporte do desenvolvimento de aplicações de um espaço inteligente deve, além de incluir os requisitos acima mencionados, considerar aspectos relativos às diferentes formas de interação, decorrentes da heterogeneidade dos equipamentos (ABOWD,1999), e à característica de colaboração intrínseca dos espaços inteligentes (MYERS,HUDSON e PAUSCH, 2000).

Em primeiro lugar deve-se levar em conta que a variedade de dispositivos e as diferentes formas de interação entre eles é muito grande, se comparadas aos tradicionais ambientes desktops equipados com monitor, mouse e teclado. Segundo Dertouzos(1999),

“(...)não será necessário teclar ou clicar ou aprender qualquer jargão de informática para mover-se nos espaços inteligentes Ao invés disso, nós iremos nos comunicar naturalmente, usando a voz, a visão e frases que descrevam nossas intenções, deixando que o ambiente aloque os recursos apropriados e execute nossas intenções".

Essa diversidade apresenta características e limitações específicas que devem ser consideradas por quem desenvolve as aplicações para ambientes dinâmicos. Já o aspecto de colaboração entre usuários e dispositivos conduz a vários cenários de uso. Um usuário pode utilizar vários dispositivos simultaneamente. Vários usuários podem compartilhar informações a partir de periféricos com diferentes características de interação. Nessa situação, a característica da informação apresentada a um usuário, possivelmente, não é a mesma apresentada a outro. Também é possível prever um cenário em que vários

usuários compartilham o mesmo dispositivo ou mesmo um dispositivo virtual, construído a partir da junção temporária ou permanente de vários dispositivos.

3.3.1.6 Localização

A questão da localização é um aspecto tão importante para a viabilização da computação ubíqua que eventos dedicados à discussão de aspectos específicos desta tecnologia começam a surgir, como é o caso da edição da Personal and Ubiquitous Computing (Springer-Verlag), que publica os artigos selecionados do primeiro workshop em Modelagem de Localização ocorrido no evento UbiComp Conference, em Atlanta, em 2001.

Segundo Antifakos e Schiele (2002), no contexto de computação ubíqua a

localização é geralmente usada como um sinônimo para informação posicional. Este tipo de informação é uma rica fonte de recursos para aplicações que são dependentes de contexto. Provendo os computadores com estas informações será possível executar ações como abertura automática de portas para certas pessoas, carga correta de informações na tela para quem está sentado em frente a um terminal, ou encaminhamento de mensagens eletrônicas ou de voz diretamente para o aparelho telefônico mais próximo do usuário.

“Os aspectos técnicos de informação de localização incluem tanto sistemas de posicionamento internos (indoor) como externos (outdoor). As implementações atuais utilizam o sistema de posicionamento global (GPS) para posicionamento externo e os active badges desenvolvidos pela Olivetti Research - Cambridge.” Elliott (2003).

O uso de medidas de proximidade é de grande importância em computação ubíqua. Antifakos e Schiele (2002), propõem uma hierarquia de proximidade semântica baseada em uma rede de sensores wireless tendo em vista complementar as informações de um sistema puramente posicional.

Segundo Kirsh(1995)apud Beigl, Zimmer e Decker(2002),

“... por termos corpo, nós somos criaturas espacialmente localizadas: nós estamos sempre voltados para alguma direção, tendo somente certos objetos no campo de visão e podendo alcançar certos outros objetos. Como nós controlamos a organização espacial de itens a nossa volta não é um afterthought – é uma parte integral da forma como nós pensamos, planejamos e nos comportamos.”

Em computação ubíqua, os modelos e aplicações que são projetadas para apresentar informações ou reagir de uma forma compreensível por pessoas, devem levar em conta a localização das coisas envolvidas no contexto da interação.

Beigl, Zimmer e Decker(2002),complementam que:

“Embora seja possível projetar aplicações de um ponto de vista a partir do qual a experiência humana não seja importante, nós acreditamos que na prática projetistas e programadores tendem a ignorar ou deixar para depois (shift) tais pontos de vista”.

3.3.1.7 Aspectos sociais

Além dos aspectos técnicos discutidos anteriormente, deve-se destacar alguns outros relacionados a mudanças culturais e sociais decorrentes do uso desta tecnologia.

A meta principal da computação ubíqua é criar um ambiente onde o poder computacional envolve (surrounds) o usuário, sem que este seja solicitado a operar o computador para executar alguma tarefa. Segundo Elliott (2003), um dos maiores

argumentos contra o emprego de computadores em todos os lugares é o risco de perda de privacidade pessoal e segurança. Os defensores desta preocupação utilizam a metáfora apresentada no livro de George Orwell, 1984, relativamente ao “Big Brother”, ou seja, uma superentidade que controla e vigia todos os passos do indivíduo em suas relações sociais.

Para caracterizar melhor esta questão, estudantes de Stanford, apresentam a seguinte consideração em um estudo sobre Privacidade de Computadores e Redes conduzido pela Prof. Bárbara Simons(AGRAWAL et al., 2002):

"Os eventos ocorridos em meses recentes podem ter um impacto direto sobre a privacidade dos registros de estudantes atuais e futuros. O jornal “The San Jose Mercury News” recentemente publicou: “Colégios em todo país... estão fornecendo ao FBI e outras agências federais registros de estudantes alinhando-se a investigação sobre os ataques terroristas de 11 de setembro”30

Uma outra questão importante refere-se à dependência criada em torno da tecnologia. Se a computação ubíqua tornar-se aceita pela sociedade como um todo, ela deverá ser tão robusta como outras tecnologias ubíquas que já estão presentes nas residências. Contudo, os computadores atuais requerem um grande investimento em suporte técnico e manutenção. Portanto, para que as pessoas sintam-se confortáveis com as facilidades disponibilizadas pela computação ubíqua, estes aspectos da tecnologia atual devem ser “remediados”(ELLIOTT, 2003).

30 The events of recent months may have a direct impact on the current and future privacy of student

records. The San Jose Mercury News recently reported: “Colleges across the country … are providing the FBI and other federal agencies with student records in connection with the investigation of the Sept. 11 terrorist attacks.”

Espaços inteligentes devem suportar transferência de grandes volumes de dados entre dispositivos e serviços. O caráter heterogêneo do ambiente faz com que alguns dispositivos não sejam capazes de interpretar os dados em seu formato original. Por isso é necessária uma camada de software que permita a adaptação do conteúdo às características de um determinado dispositivo, principalmente em função dos requisitos de qualidade da aplicação.

3.3.1.8 Considerações finais

Apesar de uma série de avanços nas pesquisas em sistemas operacionais não estarem diretamente ligadas às pesquisas em computação ubíqua, eles podem contribuir apresentando soluções que eventualmente serão utilizadas no desenvolvimento de espaços inteligentes.

A seguir são apresentados os requisitos funcionais que esta nova geração de sistemas operacionais deverá contemplar para fazer frente às demandas identificadas nesta seção.