# Sistema de Gerenciamento de Ambientes
## A Aplicação

Em um ambiente totalmente coberto por conexão wireless é possível de termos inúmeras aplicações ubíquas cooperando-se mutuamente.
Dentre essas aplicações podemos citar como exemplo um gerenciador pessoal de ambientes. Essa aplicação, uma vez instalada no computador portátil pessoal, possibilita o usuário gerenciar outros dispositivos encontrados no ambiente onde ele se encontra. Os dispositivos disponíveis para o seu controle serão somente aqueles que o usuário possuir privilégio.
A partir dessa idéia inicial já podemos visualizar a potencialidade dessa aplicação pervasiva na vida de uma pessoa. Ao mesmo tempo já é possível também encontrarmos diversas restrições a serem implantadas em tal software para que não ele não ocasione problemas sociais, ao passo que em um ambiente pode-se encontrar outras pessoas além daquela que gerencia esse.
Para darmos continuidade ao raciocínio anterior da aplicação pervasiva de gerenciamento de ambientes vamos descrever a seguir,como exemplo, um professor usuário dessa aplicação e com privilégios diferenciados em ambientes diferenciados:
Um professor, após acordar, sempre inicia o seu dia tomando café da manhã sentado à mesa assistindo ao noticiário na televisão. Ao entrar na sala de refeições carregando o seu smartphone com uma aplicação de gerenciamento de ambientes instalada este mesmo troca informações com os demais dispositivos no ambiente a fim de descobrir os recursos disponíveis. Então, a aplicação descobre que na sala estão disponíveis uma televisão, uma lâmpada de teto e um ar condicionado. A partir disso, o seu smartphone passa a exibir em sua tela a aplicação de gerenciamento com botões representando as funcionalidades de cada recurso encontrado. Por exemplo, se o professor estiver interessado em ligar a televisão, ele irá escolher o dispositivo Televisão e a aplicação irá exibir um controle remoto de televisão. Além disso, se o professor estiver interessado em aumentar um pouco a luminosidade da sala, ele poderá escolher o controle das luminárias da sala.
Continuando a sua rotina, o professor desloca-se até a universidade. Como a cidade onde o professor mora está totalmente coberta por rede sem fio, a sua aplicação consegue ainda controlar os dispositivos anteriormente gerenciados. Dessa forma, é possível saber e receber um aviso de que a televisão foi deixada ligada. Então, o professor seleciona a opção de desligar a televisão. Ao chegar à universidade o professor entra na sala de aula e sua aplicação de gerenciamento automaticamente troca informações com os recursos disponíveis no ambiente. A aplicação descobre que existe luminárias, um projetor, um computador e um ar condicionado. O professor seleciona em seus arquivos pessoais a apresentação em slides para a aula do dia e envia para o computador. Em seguida, ele liga o projetor a fim de exibir na parede a apresentação. O motivo de enviar a apresentação para o computador é para economizar a energia do smartphone. Durante a apresentação, a aplicação pervasiva exibe um controle que permite o usuário de gerenciar os slides e também, se desejar, todos os outros recursos da sala de aula.

## A Arquitetura

Após apresentarmos como funcionaria superficialmente uma aplicação de gerenciamento de ambientes, agora vamos analisar o que seria necessário em questões de arquitetura para que ela funcionasse.
Primeiramente, para uma aplicação executar em um smartphone ela precisa ser compacta (ocupar pouca memória), exigir pouco processamento (comparando com aplicativos pesados de computadores de mesa), possuir uma boa usabilidade (ser fácil de utilizar devido às restrições no tamanho da tela do dispositivo). Já o dispositivo precisa ser capaz de executar a aplicação de forma eficiente e possuir boa capacidade de comunicação (conseguir comunicar-se em mais de uma forma, por exemplo, Wireless 802.11b e Bluetooth).
Após analisarmos as exigências para o nosso dispositivo e para a nossa aplicação, agora precisamos analisar como eles se comunicarão com os demais dispositivos do ambiente. Para isso, existem duas possibilidades:
* Na primeira, um computador central no ambiente se responsabiliza por controlar os dispositivos. Dessa forma, a comunicação acontece entre o computador portátil pessoal e o computador central através de wireless ou bluetooth. O computador central pode disponibilizar, através de WebServices, todas as funcionalidade de todos os dispositivos que ele controla.
* Na segunda, cada dispositivo possui um meio de comunicação particular. Dessa forma, o computador portátil pessoal precisa se comunicar diretamente com cada dispositivo que deseja gerenciar (comunicação par a par). A comunicação também pode ser via Wireless ou Bluetooh dependendo dos meios de comunicação de cada dispositivo. Da mesma forma que a idéia anterior, cada dispositivo pode disponibilizar um WebService para as funcionalidades que ele dispõe para ser gerenciada.
A descoberta de recusros no ambiente pode ser simples se cada dispositivo estiver preparado com protocolos comuns e ser capaz de entender as informações trocadas. No entanto, nem sempre essa descoberta de recursos é tão simples. Para isso, pode ser necessário utilizar sistemas preparados e capazes de efetuar essa troca de informações. Esses sistemas são conhecidos com middleware. Uma arquitetura de desenvolvimento atual e capaz de facilitar o descobrimento de recursos e a comunicação entre aplicações de forma adaptativa é o Jini da Sun Microsystems (www.sun.com/software/jini/).
Finalmente, no exemplo anterior, para possibilitarmos que a aplicação consiga trocar informações com os dispositivos da sala de sua casa, mesmo o professor não estando mais no ambiente, é necessário que o computador pessoal esteja conectado a uma rede largamente distribuida, como uma WAN. Como já relatado, a cidade estaria totalmente coberta por rede sem fio. Portanto, tendo acesso a rede é possível de ter acesso ao computador central daquele ambiente que controlava os resursos da sala, se considerarmos a primeira possibilidade citada anteriormente. Em contra partida, se considerarmos a segunda possibilidade (comunicação par a par), esse tipo de acesso aos dispositivos não seria mais possível se a comunicação fosse via Bluetooth, pois essa tecnologia somente permite acesso a uma distância curta de aproximandamente 10 metros.