4.2 Servidor de Contexto do VadeMecum
4.2.2 Arquitetura
O servidor de contexto do VadeMecum ´e respons´avel pelo monitoramento do contexto e das
4 .2 S er vi d o r d e Co n te xt o d o V a d eM ec u m 3 9
4.2 Servidor de Contexto do VadeMecum 40
Figura 4.3: Ontologia superior do modelo de contexto.
Figura 4.4: Ontologia do VadeMecum para regras.
no dispositivo m´ovel e os servic¸os cientes de contexto dispon´ıveis.
Os respons´aveis por atualizar as informac¸˜oes contextuais no servidor s˜ao os provedores
de contexto. Estes enviam as mudanc¸as ocorridas no contexto para o servidor, j´a indicando no modelo qual contexto eles est˜ao informando. Dessa forma, os provedores possuem a
tarefa de analisar informac¸˜oes provindas de sensores (GPS, press˜ao, temperatura corporal, etc) ou outras informac¸˜oes externas (previs˜ao do tempo, calend´ario, agenda, etc) e converter
em informac¸˜oes contextuais v´alidas no modelo.
Outro ponto importante do servidor de contexto ´e a m´aquina de inferˆencia baseada em
regras utilizada para ativac¸˜ao de ac¸˜oes no sistema, sendo esta descrita na pr´oxima subsec¸˜ao.
Na Figura4.5, apresenta-se a arquitetura do servidor de contexto do VadeMecum, que ´e
composta pelo monitor de regras, pelo tratador de ac¸˜oes, pelo Jena e pelo Joseki – os dois ´ultimos ser˜ao descritos na sec¸˜ao 4.2.3. O monitor de regras ´e respons´avel pelo monitora- mento e gerenciamento das regras ativas no sistema, as quais devem ativar o tratador de ac¸˜oes quando alguma regra for satisfeita. O tratador de ac¸˜oes ´e o encarregado de adicionar
as ac¸˜oes na base de dados e criar o relacionamento entre o usu´ario e a ac¸˜ao a ser mostrada. O Jena ´e utilizado para a manipulac¸˜ao do modelo e realizar a inferˆencia para a descoberta de
4.2 Servidor de Contexto do VadeMecum 41
informac¸˜oes impl´ıcitas. J´a o Joseki ´e respons´avel pela comunicac¸˜ao com os provedores de contexto, servic¸os e aplicac¸˜oes. Na pr´oxima subsec¸˜ao, ser´a discorrido sobre os provedores
de contexto e o papel deles na arquitetura do VadeMecum.
A base de conhecimento do VadeMecum ´e formada pela base de fatos e a base de regras,
onde a primeira possui as informac¸˜oes contextuais e a segunda possui regras para a inferˆencia de novas informac¸˜oes ou a ativac¸˜ao de ac¸˜oes que devem ocorrer quando um determinado
estado contextual ´e alcanc¸ado.
Figura 4.5: Arquitetura do servidor de contexto do VadeMecum.
Provedores de Contexto
Os provedores de contexto s˜ao componentes distribu´ıdos respons´aveis pelo tratamento de dados brutos, transformando estes em informac¸˜oes contextuais para posterior adic¸˜ao no ser-
vidor de contexto. No provedor de contexto n˜ao ´e levado em considerac¸˜ao a forma como o contexto foi capturado, sendo adicionadas as informac¸˜oes contextuais na ontologia no servi-
dor de contexto atrav´es de uma comunicac¸˜ao utilizando o SPARQL Update via o protocolo HTTP Post.
O provedor de contexto assume a func¸˜ao de capturar os dados provindos dos sensores e process´a-los obtendo uma informac¸˜ao de contexto tratada. Uma informac¸˜ao de contexto
4.2 Servidor de Contexto do VadeMecum 42
usu´ario ou ent˜ao recuperada do perfil descrito do objeto, que pode ser uma pessoa, um lugar ou qualquer outra entidade que possua contexto. Dessa forma, o provedor de contexto pode
agrupar os dados sentidos de v´arios sensores para retornar uma informac¸˜ao contextual. O funcionamento dos provedores de contexto ´e baseado no padr˜ao de projeto Observer
[52], sendo monitoradas alterac¸˜oes nos dados brutos dos sensores cadastrados, para quando
existir alguma alterac¸˜ao nestes, os dados sejam processados de acordo com a implementac¸˜ao
do provedor e retorne o contexto apropriado. Quando a informac¸˜ao contextual ´e passada pelo usu´ario, o provedor escuta da mesma forma o evento de alterac¸˜ao de informac¸˜ao e
envia o contexto processado para o servidor. J´a as informac¸˜oes inferidas, n˜ao s˜ao capturadas por provedores de contexto, sendo da responsabilidade da m´aquina de inferˆencia a obtenc¸˜ao
destas informac¸˜oes.
Como pode ser observado exitem v´arias maneiras de se obter informac¸˜oes contextuais no
servidor de contexto VadeMecum, sendo elas:
• Atrav´es do processamento de dados brutos provindos de sensores por um provedor de
contexto;
• Pelo agrupamento de dados de sensores realizado por um provedor de contexto; • Atrav´es de inferˆencia de um novo contexto realizado pela m´aquina de inferˆencia a
partir de regras cadastradas e o modelo de contexto;
• Captura de informac¸˜oes do perfil do usu´ario; e • Informac¸˜ao manual realizada pelo usu´ario.
Uma API foi criada com o intuito de facilitar a criac¸˜ao de provedores de contexto, sendo
esta tarefa de responsabilidade de um desenvolvedor. Nesta API, o provedor de contexto ´e representado pela interface ContextProviderIF, o qual possui trˆes m´etodos que devem ser
sobrescritos, o primeiro ´e respons´avel por realizar o processamento adequado nos dados brutos e retorna o contexto adequado, o segundo envia o contexto para o servidor de contexto
e o terceiro ´e o listener que recebe as mudanc¸as dos sensores que resultam no processamento dos dados brutos para a gerac¸˜ao do contexto. A API j´a fornece m´etodos para auxiliar a
4.2 Servidor de Contexto do VadeMecum 43
Outras interfaces importantes disponibilizadas pela API para desenvolver provedores de
contexto s˜ao: ContextIF, RawData, RawDataListener, RawDataProviderIF. Na Figura4.6,
mostra-se o diagrama de classes da API.
Figura 4.6: Diagrama de classes da API para criac¸˜ao de provedores de contexto.
A API para criac¸˜ao de provedores de contexto foi desenvolvida para a linguagem Java
nas suas plataformas Standard Edition e Micro Edition.
Modelo de inferˆencia baseado em regras
O servidor de contexto do VadeMecum utiliza um modelo de inferˆencia baseado em re-
gras para o monitoramento dos estados contextuais dos usu´arios no sistema, dessa forma, ´e poss´ıvel adicionar regras que lanc¸ar˜ao ac¸˜oes caso essas sejam satisfeitas.
Uma regra no VadeMecum ´e do tipo E-C-A (Event-Condition-Action), na qual o evento ´e a atualizac¸˜ao de alguma informac¸˜ao contextual monitorada, a condic¸˜ao ´e a descric¸˜ao de
um estado contextual e a ac¸˜ao ´e a operac¸˜ao a ser executada quando a condic¸˜ao for satisfeita. Por exemplo, uma poss´ıvel regra ´e: quando o usu´ario possuir algum contato pr´oximo geo-
graficamente, ent˜ao a localizac¸˜ao deste deve ser mostrada no mapa no dispositivo m´ovel do usu´ario. O C´odigo Fonte4.1mostra a descric¸˜ao formal da regra entendida pelo sistema.
4.2 Servidor de Contexto do VadeMecum 44
quer momento. Uma vez ativada a regra, esta ser´a avaliada todas as vezes que o subconjunto do estado contextual contido na condic¸˜ao for alterado e quando a condic¸˜ao for satisfeita a
ac¸˜ao ser´a executada e a regra ficar´a desativada at´e que o estado contextual n˜ao seja mais v´alido na condic¸˜ao.
C´odigo Fonte 4.1: Regra contextual no VadeMecum.
1 [ c o n t a c t N e a r : ( ? x h a s c o n t a c t J o h n ) ( n e a r ( ? x , J o h n ) ) −> showOnMap ( John , ? x ) ]
No servidor de contexto, est˜ao dispon´ıveis trˆes ac¸˜oes poss´ıveis: showMultimedia, que recebe como parˆametro o usu´ario que receber´a a ac¸˜ao e um arquivo multim´ıdia; showOnMap,
que recebe como parˆametro o usu´ario que receber´a a ac¸˜ao e um objeto que ser´a mostrado no mapa sua localizac¸˜ao; e sendMail, que recebe um enderec¸o de e-mail e uma mensagem
para enviar ao destinat´ario. Entretanto, ´e poss´ıvel que as ac¸˜oes no VadeMecum acionem servic¸os externos para que estes enviem alguma ac¸˜ao pr´opria, podendo esta ser executada no
dispositivo m´ovel de algum usu´ario ou n˜ao.