# Computação Ubíqua

A Computação Ubíqua promove a idéia de que os computadores estarão em todos os lugares e em todos os momentos auxiliando o ser humano sem que ele tenha consciência disso.
* Os computadores serão imperceptíveis, não devido ao seu tamanho, mas devido a sua imperceptível forma de computador.
Essa é a visão mais distribuída que a área de Sistemas de Informação Distribuídos (SID) poderia imaginar. A informação distribuída sem limites físicos nem temporais. A informação disponível imperceptivelmente e até mesmo disponível quando desnecessária no momento, mas participando ativamente de forma construtiva e se auto alimentando para disponibilizar com maior qualidade quando necessária.

## Princípios

Pelo menos três princípios são identificados na Computação Ubíqua:
* Diversidade
* Descentralização
* Conectividade
Para esses três princípios nota-se a necessidade de padronização dos dados e protocolos de comunicação para atingir a conectividade e interoperabilidade desejada.

### Diversidade

Ao contrário do PC, que é um dispositivo de propósito geral que atende várias necessidades distintas do usuário, os dispositivos ubíquos acenam com uma nova visão da funcionalidade do computador, que é a de propósito específico, que atende necessidades específicas de usuários particulares e de outros dispositivos.

### Descentralização

As responsabilidades são distribuídas entre vários dispositivos pequenos e grandes que assumem e executam certas tarefas e funções. Estes dispositivos cooperam entre si para construir a inteligência no ambiente, que é refletida nas aplicações. Para isso uma rede dinâmica de relações é formada caracterizando um sistema distribuído.

### Conectividade

Conectividade sem fronteiras. Os dispositivos e as aplicações que executam neles movem-se juntamente com o usuário, de forma transparente, entre diversas redes heterogêneas, tais como as redes sem fio de longa distância e de redes de média e curta distância.

## Diversidade
### Diversidade dos Dispositivos

Existem diversos tipos de dispositivos que constituem a Computação Ubíqua. Desde sensores até Mainframe.
Cada dispositivo possui um tamanho e capacidade tecnológica específica devido a sua funcionalidade final e vice-versa.
Cada dispositivo possui um meio de comunicação, uma forma de receber, interpretar, armazenar e enviar os dados.
A existência de múltiplos dispositivos constitui-se em um dos desafios da Computação Ubíqua.
No quadro a seguir são exibidos dispositivos de pequeno e médio porte que constituem a Ubicomp. Além deles ainda existem os dispositivos de grande porte, como os PCs e Mainframe.
| Controles Inteligentes | Utensílios Inteligentes |
| Controles de processo de manufatura | Quiosques |
| Controles residendicais | Terminais de Ponto de Venda |
| Termostatos | Centrais de telecomunicações |
| Etiquetas inteligentes | Eletrodomésticos da linha branca (geladeiras, máquinas de lavar roupa, etc.) |
| Controles de bomba de ar e água, gás, etc. | Terminais eletrônicos |
| Cartões inteligentes | Máquinas de venda automática |
| Controles em sistemas automotivos | Instrumento de monitoramento médico |
| Dispositivos de Acesso a Informação | Sistemas de Entretenimento |
| Telefones Celulares | TV |
| Telefones de Tela | Caixas digitais - set-top-boxes |
| Agentes Pessoais Digitais - PDA | Consoles de Jogos |
| Notebook | Câmeras Digitais |
| Pagers | Brinquedos inteligentes |
| Personal Computers (PCs) | Reprodutores de música MP3 |

### Diversidade dos Softwares

As aplicações têm quer ser projetadas de acordo com as limitações de memória, capacidade de processamento e bateria dos dispositivos.
É necessário desenvolver utilizando-se linguagens (normalmente combinadas com APIs nativas) de acordo com o dispositivo destino. Isso resulta em uma grande diversidade nas linguagens, nas plataformas de desenvolvimento e nos softwares resultantes:
* Java, C e C++ para dispositivos com baixos recursos ou para aplicações que necessitam alto desempenho;
* Java (J2ME) e C#, VB (.NET Compact Framework), Python para dispositivos com recursos medianos;
* Java (J2EE) e C#, VB (.NET Framework) para dispositivos sem limitações;

#### Sistemas Operacionais

Softwares precisam ser desenvolvidos de acordo com o SO destino. Existe uma forte e determinante diferença entre os tipos de SO e entre as versões de mesmo tipo de SO:
* PalmOS (PDA)
* Windows CE, Windows Mobile (PDA)
* Linux (PDA)
* Symbian EPOC (celulares)
* Java Card (SmartCards)
* W/Smart Card (SmartCards)
* QNX
* ExWorks
* Windows 32, 64 bits (PCs e mainframes)
* Linux 32, 64 bits (PCs e mainframes)
* etc

# Bibliografia

* 1 2 Araujo, Regina Borges. 2003. "Computação Ubíqua, Princípios, Tecnologias e Desafios". "XXI Simpósio Brasileiro de Redes de Computadores".