• Nenhum resultado encontrado

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.