O Servidor de Contexto foi organizado em seis m ´odulos aut ˆonomos, que interoperam no provimento das funcionalidades necess ´arias ao Servic¸o de consci ˆencia de contexto do EXEHDA.
Uma vis ˜ao geral do mesmo ´e ilustrada na Figura 9, na qual ´e caracterizada a relac¸ ˜ao com os Servidores de Borda, outros servic¸os do middleware, outros Servidores de Contexto Remotos e aplicac¸ ˜oes de usu ´arios.
Cada um destes m ´odulos ´e respons ´avel por uma etapa da consci ˆencia de contexto, desde sua aquisic¸ ˜ao at ´e o momento em que ´e armazenado e/ou repassado a quem o solicitou. A seguir ser ˜ao descritos os m ´odulos que o
comp ˜oem.
Figura 9: Arquitetura do Servidor de Contexto
3.2.1 M ´odulo de Aquisic¸ ˜ao
O M ´odulo de Aquisic¸ ˜ao ´e respons ´avel por prover suporte `a captura das informac¸ ˜oes contextuais, coletadas pelos servidores de borda considerando sensores l ´ogicos (interfaces de software) e/ou hardware.
A publicac¸ ˜ao de dados de contexto no M ´odulo de Aquisic¸ ˜ao considera os seguintes par ˆametros:
• o intervalo de tempo entre medic¸ ˜oes;
• a flutuac¸ ˜ao m´ınima do valor coletado para que acontec¸a a publicac¸ ˜ao; • a inserc¸ ˜ao na faixa de valores que dever ˜ao ser publicados.
Este m ´odulo apresenta um comportamento de servidor cujas funcionalidades s ˜ao implementadas atrav ´es de um barramento tipo ESB, permitindo que Servidores de Borda, sempre que ocorrerem variac¸ ˜oes significativas nos dados contextuais, possam public ´a-los.
3.2.2 M ´odulo de Atuac¸ ˜ao
O M ´odulo de Atuac¸ ˜ao ´e respons ´avel pelo controle (ativac¸ ˜ao, desativac¸ ˜ao e configurac¸ ˜ao) dos atuadores, ap ´os ser notificado pelos outros m ´odulos do Servidor de Contexto.
O mesmo recebe o IDa do atuador envolvido e os par ˆametros operacionais a serem utilizados e interopera com os Servidores de Borda para disparo dos dispositivos eletromec ˆanicos pertinentes.
O M ´odulo de Atuac¸ ˜ao interage atrav ´es do barramento ESB do Servidor de Borda. Mais especificamente, possui as seguintes atribuic¸ ˜oes:
• repassar ao Servidor de Borda os itens de configurac¸ ˜ao para ativac¸ ˜ao, desativac¸ ˜ao e configurac¸ ˜ao dos atuadores;
• notificar ao Servidor de Borda quais atuadores ser ˜ao necess ´arios para atender as demandas das aplicac¸ ˜oes em uso;
• submeter ao Servidor de Borda os comandos para leitura instant ˆanea dos sensores;
• submeter ao Servidor de Borda os comandos de atuac¸ ˜ao regular e atuac¸ ˜ao instant ˆanea.
De modo geral, o M ´odulo de Atuac¸ ˜ao ´e respons ´avel por disparar no ambiente ub´ıquo ac¸ ˜oes que mudem o estado do meio, viabilizando o uso de servic¸os de consci ˆencia de contexto em aplicac¸ ˜oes de controle e automac¸ ˜ao.
3.2.3 M ´odulo de Interpretac¸ ˜ao
O M ´odulo de Interpretac¸ ˜ao de contexto tem como principal func¸ ˜ao realizar tarefas de manipulac¸ ˜ao e deduc¸ ˜ao das informac¸ ˜oes contextuais, utilizando para isto informac¸ ˜oes especificadas nos Contextos de Interesse das aplicac¸ ˜oes.
Este m ´odulo foi objeto de estudo dos trabalhos (VENECIAN, 2010) e (WARKEN, 2010) os quais exploraram o uso de ontologias para suporte sem ˆantico quando do processamento das informac¸ ˜oes contextuais.
A arquitetura do EXEHDA-UC oferece suporte para que as funcionalidades do M ´odulo de Interpretac¸ ˜ao fossem mantidas operacionais.
O M ´odulo de Interpretac¸ ˜ao de contexto mant ´em um reposit ´orio de contextos coletados, onde s ˜ao armazenados as informac¸ ˜oes contextuais obtidas pelo M ´odulo de Aquisic¸ ˜ao de contexto, provendo a possibilidade de processamento hist ´orico dos contextos.
Os objetivos do M ´odulo de Interpretac¸ ˜ao incluem:
• Manter consistente o Reposit ´orio de Informac¸ ˜ao Contextuais (RIC) (vide Sec¸ ˜ao 3.2.4), gerenciar o racioc´ınio sobre as informac¸ ˜oes contextuais mantidas neste reposit ´orio, inferindo novos contextos a partir de regras l ´ogicas de infer ˆencia e de fatos contextuais definidos no Contexto de Interesse das Aplicac¸ ˜oes;
• Atualizar o reposit ´orio contextual, de modo a manter um hist ´orico. Esse hist ´orico poder ´a servir como uma base de aprendizado que possibilite melhorar a infer ˆencia em interac¸ ˜oes futuras;
3.2.4 Reposit ´orio de Informac¸ ˜oes Contextuais
O Reposit ´orio de Informac¸ ˜oes Contextuais (RIC) foi concebido para atender as demandas de armazenamento de dados de contexto. A sua estrutura vem sendo revisada a medida que acontecem trabalhos relacionados ao middleware EXEHDA (VENECIAN, 2010) (WARKEN, 2010). Nesta dissertac¸ ˜ao de mestrado foram inclu´ıdas tabelas no RIC para atender as demandas de gerenciamento de usu ´arios e agendamento de uso dos equipamentos compartilhados.
A estrutura prototipada traduz a organizac¸ ˜ao da arquitetura do middleware EXEHDA, contemplando as relac¸ ˜oes entre as aplicac¸ ˜oes, componentes, sensores, ambientes e os contextos de interesse. O RIC armazena ainda os dados de configurac¸ ˜ao da arquitetura e as publicac¸ ˜oes provenientes dos sensores existentes no ambiente ub´ıquo monitorado.
Dentre as informac¸ ˜oes de configurac¸ ˜ao, s ˜ao destacados os aspectos relacionados aos sensores e aos contextos em que esses est ˜ao envolvidos. Por exemplo, os limites m ´aximos e m´ınimos dos valores publicados para cada sensor pertencente aquele contexto de interesse. Esses dados s ˜ao utilizados pelas regras do Tratador de Regras, o qual dispara as ac¸ ˜oes pertinentes em func¸ ˜ao do estado contextual.
As informac¸ ˜oes de contexto capturadas pelo Servidor de Borda s ˜ao registradas no RIC com o seu valor correspondente, timestamp da coleta, gerente de borda de origem e o timestamp de registro. Para agilizar as consultas, os registros s ˜ao indexados por sensor, coletor e timestamp da coleta.
As informac¸ ˜oes do RIC est ˜ao dispon´ıveis para as aplicac¸ ˜oes em execuc¸ ˜ao nos diferentes nodos que integram a estrutura computacional ub´ıqua provida pelo middleware EXEHDA.
3.2.5 M ´odulo de Notificac¸ ˜ao
O M ´odulo de Notificac¸ ˜ao ´e respons ´avel por notificar o resultado do processamento contextual realizado pelo M ´odulo de Interpretac¸ ˜ao. O mesmo mant ´em um hist ´orico das notificac¸ ˜oes em um banco de dados denominado Reposit ´orio de Contextos Notificados (RCN), o qual ´e necess ´ario para procedimentos de auditoria.
O M ´odulo de Notificac¸ ˜ao opera recebendo subscric¸ ˜oes de todos os servic¸os e/ou aplicac¸ ˜oes que desejem notificac¸ ˜oes a respeito dos estados contextuais, interoperando atrav ´es do M ´odulo de Comunicac¸ ˜ao.
De modo mais espec´ıfico, possui as seguintes funcionalidades:
• Realizar a notificac¸ ˜ao a respeito da variac¸ ˜ao do estado das informac¸ ˜oes contextuais aos outros servic¸os do middleware que empregam regular- mente as mesmas, por exemplo o Servic¸o da Adaptac¸ ˜ao (WARKEN, 2010); • Receber subscric¸ ˜oes de aplicac¸ ˜oes e/ou servic¸os remotos, que oportuna- mente necessitem do estado das informac¸ ˜oes contextuais e notific ´a-los com as informac¸ ˜oes desejadas;
• Manter o RCN atualizado;
• Repassar ao M ´odulo de Atuac¸ ˜ao as decis ˜oes referentes as alterac¸ ˜oes a serem realizadas no meio.
Deste modo, pode-se dizer que passam pelo M ´odulo de Notificac¸ ˜ao todas as decis ˜oes de atuac¸ ˜ao provenientes do tratamento auton ˆomico de regras de processamento contextual.
3.2.6 M ´odulo de Comunicac¸ ˜ao
O M ´odulo de Comunicac¸ ˜ao ´e empregado por Servidores de Contexto remotos e/ou aplicac¸ ˜oes quando da solicitac¸ ˜ao de dados contextuais e/ou o disparo de atuadores. O mesmo prov ˆe a disseminac¸ ˜ao de informac¸ ˜oes para outros servic¸os do middleware, bem como o envio de mensagens aos usu ´arios.
O mesmo recebe as requisic¸ ˜oes atrav ´es de um barramento ESB, e interopera com outros componentes do EXEHDA-UC empregando mensagens pr ´oprias, bem como com os usu ´arios utilizando protocolos p ´ublicos direcionados ao envio de mensagens atrav ´es da rede celular (SMS - Short Message Service), do Google Talk, e e-mails.
O M ´odulo de Comunicac¸ ˜ao contempla um reposit ´orio respons ´avel por armazenar informac¸ ˜oes necess ´arias para o envio de alertas. Dentre as informac¸ ˜oes tratadas existem nome, n ´umero do telefone celular, email, conta do Gtalk. Neste reposit ´orio tamb ´em ficam armazenadas todas as mensagens disparadas pelo M ´odulo.
3.2.7 M ´odulo de Gerenciamento
O M ´odulo de Gerenciamento tem por objetivo permitir ao usu ´ario um gerenciamento confort ´avel das configurac¸ ˜oes do Servidor de Contexto. O mesmo prov ˆe facilidades para que sejam especificados os diferentes aspectos dos sensores e atuadores, bem como informac¸ ˜oes dos equipamentos cujo contexto est ´a sendo aquisitado.