• Nenhum resultado encontrado

A COMPUTAÇÃO UBÍQUA E AS TECNOLOGIAS NECESSÁRIAS

Na constituição de um ambiente ubíquo é necessário o trabalho conjunto de algumas tecnologias que ao se interagirem poderão capturar e disponibilizar a informação dinamicamente ao usuário com o uso de dispositivos. Abaixo serão descritas algumas dessas tecnologias como dispositivos, redes de computadores, sensores, linguagem de programação e sistemas operacionais.

Dispositivos

Novas tecnologias têm surgido com o passar dos anos no campo da mobilidade possuindo diferentes tamanhos, capacidade de processamento. Conforme Madeira (2007, p.23) “Em conjunto com novos dispositivos de entrada/saída, estas tecnologias podem ser consideradas como sendo aquelas que possibilitam o avanço na realização de aplicações e sistemas de Ubicomp”. Celulares, smartphones, tablets, netbooks, notebooks, utilizam recursos da rede executando aplicativos e acessando diferentes serviços e através dela os utilizadores podem se locomover, comunicando-se entre si e mantendo a interoperabilidade das informações.

Na medida em que a residência, o meio de transporte e o trabalho do usuário tornam-se os cenários de aplicação da computação ubíqua, oferecendo serviços como segurança, comodidade, informação, entretenimento, e muito mais, um universo incrível de dispositivos diferentes deverá existir para suportar estes serviços (ARAÚJO, 2006, p.10).

Organizações como bancos, empresas de cartões de crédito criam aplicações que facilitam o cotidiano dos clientes, permitindo pagamentos e acesso à conta através de dispositivos móveis.

Redes de Computadores

Para que ocorra a comunicação entre dispositivos é necessário eles estarem conectados em uma rede com ou sem fio. As redes têm como finalidade dispor das informações, recursos a qualquer entidade, seja a onde for sua localização e com o crescente número de diferentes dispositivos as redes terão o desafio de manter a comunicação. Além disso, diferentes meios de acesso e a heterogeneidade das redes sem fio será um obstáculo para os futuros ambientes ubíquos.

A natureza dos dispositivos ubíqüos tem elevado o crescimento do uso de tecnologias de redes sem fio, pois fazem dessas uma solução de interconexão mais fácil com ambientes até então inadequados ou então impossíveis de se manter uma comunicação devido à, por exemplo, altos custos e restrições tecnológicas (CORRÊA et al, 2006, p.2).

Os tipos de redes de acesso sem fio mais conhecidas são: wi-fi, wimax, bluetooth e infravermelho, conforme a Tabela 2.

Tabela 2: Exemplos de tecnologias sem fio.

Tecnologia Padrão IEEE Utilização

Infravermelho 802.11 (IrDA) Aplicações específicas.

Normalmente utilizado para troca de informações ponto-a-ponto (P2P).

Bluetooth 802.15 Utilizado para redes pessoais, ou

seja, em equipamentos pessoais para troca de informações em curta distância.

Wi-Fi 802.11 Possui alcance maior que as outras

duas tecnologias anteriores. Porém é utilizada

somente para redes locais.

WiMax 802.16 Comunicação sem fio em longo

alcance.

A transmissão por infravermelho IrDA ocorre por meio de pulsos de luz. Ela se caracteriza por não utilizar fios para se conectar e também que possui um comprimento de onda mais longo que o da luz invisível. Outra característica é que a comunicação só pode por apenas entre dois pontos, chamada de ponto-a-ponto. Como pode ser visto na Figura 9, o

Bluetooth tanto pode ser ponto-a-ponto como multiponto. A tecnologia Bluetooth é um padrão

considerado global sem fio e que permite uma comunicação rápida, simples e barata entre dispositivos.

Figura 9: Conexões ponto-a-ponto e multiponto com Bluetooth. Fonte: http://www.lisha.ufsc.br/pub/Billo_BSC_2002.pdf

Wi-Fi é marca registrada da empresa Wi-Fi Alliance, que cria produtos pertencentes à norma 802.11. Essa tecnologia sem fio trabalha em altas velocidades através de ondas de rádio, distâncias que variam de 100 metros até 300 metros. A WiMax acrônimo de World

wide Interoperability for Microwave Access (Interoperabilidade Mundial para Acesso por

Microondas), reconhecida também como uma tecnologia de banda larga sem fio e com alcance superior a Wi-Fi. Na teoria os equipamentos de WiMax atingem distâncias de até 50 km com uma banda passante de até 70 Mbp/s.

Sensores

O sensoriamento do ambiente é um ponto fundamental da computação ubíqua, pois a partir dele são capturadas as informações as quais são filtradas pelos sistemas computacionais que colocarão ou não relevância ao contexto. Loureiro (2007, p.1) “a noção que dispositivos

de computação e sensoriamento pequenos, inteligentes, e baratos irão eventualmente permear o ambiente, levando efetivamente a ambientes de computação ubíqua”.

As redes de sensores são diferentes das redes Wi-Fi e WiMax, pois a comunicação nas redes de sensores não é fim-a-fim. A finalidade destes dispositivos é detectar as mudanças no ambiente e transmitir ao usuário.

Figura 10: Exemplo de uma rede de sensores sem fio. Fonte: http://gta.ufrj.br/ftp/gta/TechReports/Ingrid05/tese.pdf

Os sensores trabalham de forma transparente com o utilizador, ou seja, sem que ele saiba da existência dos sensores tanto individualmente como coletivamente. Na ilustração da Figura 10, o usuário pode estar localizado distantemente do local onde estão os sensores.

Linguagem de Programação

O desenvolvimento de aplicações para ambientes ubíquas requer eficiência da linguagem de programação usada, pois os dispositivos que executam essas aplicações têm, geralmente, menor capacidade de memória e processamento. Assim, é importante evitar a perda de dados quando a bateria acabar. Outro fator é a heterogeneidade de dispositivos, portanto, a portabilidade da aplicação também é fator importante (ARAÚJO, 2003, p. 62).

Assim, a criação de programas para dispositivos móveis requer atenção em alguns pontos. Conforme Araújo (2003, p. 62), para programar sistemas ubíquos deve-se levar em consideração os seguintes critérios:

 Tamanho limitado da tela, capacidade de entrada de dados, poder limitado de processamento, memória, armazenamento persistente;

 Alta latência, largura de banda limitada e conectividade intermitente (o que os dispositivos esperam encontrar em termos de conectividade);

 Utilizar a rede somente quando for necessário;

 Se utilizar a rede, retirar dela apenas o que for importante;  Estar disponível quando a rede estiver off-line.

Outras estratégias são importantes para o desenvolvimento de projetos de software para aplicativos móveis, como: manter simples a programação, criar códigos fontes de tamanhos menores; deixar o servidor fazer parte do trabalho mais oneroso, escolher cuidadosamente uma linguagem de programação; usar variáveis locais, evitar concatenação de

string, usar threads e evitar sincronização, se a linguagem for Java minimizar o uso de

memória (ARAÚJO, 2003, p. 63).

Java conceitua-se com muita propriedade com relação aos requisitos para o desenvolvimento de aplicativos ubíquos, pois tem vantagem de ser multiplataforma, ou seja, pode ser executado em qualquer sistema operacional que possua a Máquina Virtual Java (MVJ) instalada. Com Java tem-se a possibilidade de criar aplicações muito eficientes para celulares e qualquer dispositivo em geral e também, além disso, é multi-thread cuja finalidade é suportar processamento paralelo múltiplo. A reutilização do código é outra vantagem e como consequência reduz-se o tempo de programação.

Java exibe muitas características que facilitam o desenvolvimento de aplicações móveis. Entre elas, a portabilidade dos bytecodes permite a execução em diferentes hosts com diferentes arquiteturas de software e hardware; multithreading torna os agentes colaborativos e autônomos; serialização de objetos suporta a migração e persistência; carga de classe dinâmica permite o projeto de estratégias eficientes para a recuperação de código dos entes (AUGUSTIN, 2004, p. 76).

A Figura 11 mostra como funciona a execução de programas escritos em Java em diferentes sistemas operacionais. No editor, o desenvolvedor escreve o código fonte que após é transformado em bytecodes através do compilador Java. Bytecodes é um código intermediário do código fonte e a aplicação final. Eles não são imediatamente executáveis, devem ser interpretados por uma MVJ pré-instalada no sistema operacional.

Figura 11: Processo de execução programas Java.

Fonte: http://www.dca.fee.unicamp.br/cursos/PooJava/javaenv/bytecode.html

Com isso, existe a portabilidade, pois no momento que os computadores possuam a MVJ instalada, a aplicação será executada da mesma forma que em outras arquiteturas. Portabilidade é essencial em ambientes ubíquos e Java oferece este requisito.

A independência de plataforma que a Java oferece, a grande quantidade de bibliotecas disponíveis (de suporte a construção de interfaces gráficas a suporte de rede), e a existência de máquinas virtuais embutidas em vários dispositivos tornou a linguagem Java uma tecnologia chave para o desenvolvimento de software na computação ubíqua (CIRILO, 2007, p. 6).

. Portanto, as aplicações que possam ser executadas nas diferentes plataformas existentes conduzem para atingir um dos princípios da computação ubíqua: disponibilizar o acesso a informação em qualquer lugar, em qualquer momento, seja qual for o dispositivo sendo usado.

Sistemas Operacionais

No topo das funcionalidades da computação ubíqua estão os software. Essas tecnologias fornecem ferramentas para programar e gerenciar os dispositivos em cenários ubíquos. Os software podem ser sistemas operacionais, ambientes ou aplicativos. Os sistemas operacionais gerenciam o hardware dos dispositivos fornecendo acesso a eles para o usuário. Os ambientes são as camadas que fornecem estruturas para a programação e os aplicativos oferecem os serviços aos utilizadores (CAMPIOLO, 2005, p.17).

Muitos sistemas operacionais foram desenvolvidos para satisfazer às necessidades específicas da computação ubíqua: Google Android, Windows CE, Windows for Smart Cards, Palm OS, EPOC, QNX, GEOS, e muitos outros. Todos eles rodam em dispositivos com pouca memória e a maioria

são projetados para executarem em muitas diferentes plataformas de processadores (HANSMANN, 2003 apud CIRILO, 2007, p. 5).

.

Os sistemas operacionais para dispositivos móveis podem facilitar a programação, dirigindo os recursos de hardware. Enquanto os de desktops possuem uma variedade de funcionalidades, os sistemas operacionais de dispositivos ubíquos se concentram em aperfeiçoar tarefas, diminuindo a escassez de recursos de hardware.

Documentos relacionados