• Nenhum resultado encontrado

Exemplo de arquivo com as func¸˜oes permitidas pelo CARE nas regras

1 <? xml v e r s i o n ="1.0" e n c o d i n g ="iso-8859-1"?>

2 <f u n c o e s>

3 <f u n c a o name = "greaterThan" a l i a s = "Maior Que">

4 <p a r a m s>

5 <param t y p e = "http://www.w3.org/2001/XMLSchema#

int" name = "Primeiro valor"/>

6 <param t y p e = "http://www.w3.org/2001/XMLSchema#

int" name = "Segundo valor"/>

7 </ p a r a m s>

8 </ f u n c a o>

9 <f u n c a o name="near" a l i a s ="Pr´oximo" >

10 <p a r a m s>

11 <param name="Primeiro objeto georreferenciado"

t y p e ="http://www.w3.org/2003/01/geo/wgs84_pos#

SpatialThing"/>

12 <param name="Segundo objeto georreferenciado"

t y p e ="http://www.w3.org/2003/01/geo/wgs84_pos#

SpatialThing"/>

13 </ p a r a m s>

14 </ f u n c a o>

15 <f u n c a o name="contains" a l i a s ="Est´a Contido" >

16 <p a r a m s>

17 <param name="Objeto Georreferenciado" t y p e ="http:

//www.w3.org/2003/01/geo/wgs84_pos# SpatialThing"/>

18 <param name="´Area Geogr´afica" t y p e ="http://www.w3

.org/2003/01/geo/wgs84_pos#SpatialThing"/>

19 </ p a r a m s>

20 </ f u n c a o>

4.3 Aux´ılio na criac¸˜ao de regras pelos usu´arios finais 56

Na Figura 4.9, ´e mostrado o widget para selec¸˜ao de elementos geogr´aficos, sendo este

componente desenvolvido utilizando a API Flash do Google Maps.

Figura 4.9: Widget para selec¸˜ao de elementos geogr´aficos.

Para adicionar um widget no CARE, ´e necess´ario criar os componentes da interface gr´afica utilizando a linguagem ActionScript e configurar o tipo de entidade que pode ser

selecionada. Como pode ser observado, esta n˜ao ´e uma tarefa b´asica de ser executada. As- sim, ´e necess´ario que o usu´ario possua experiˆencia com programac¸˜ao para execut´a-la.

Funcionamento da Ferramenta

Na Figura4.10, ´e mostrada a interface do CARE, que ´e formada por duas partes principais:

a das pr´e-condic¸˜oes e a das ac¸˜oes. Para montar uma regra, o usu´ario deve criar pelo menos

uma pr´e-condic¸˜ao e ac¸˜ao, dessa forma, quando as pr´e-condic¸˜oes forem satisfeitas, as ac¸˜oes ser˜ao executadas.

Ao solicitar para criar uma pr´e-condic¸˜ao, a tela mostrada na Figura 4.11 ´e apresentada

para o usu´ario, com as opc¸˜oes de criar uma condic¸˜ao ou selecionar uma func¸˜ao. Caso seja

4.3 Aux´ılio na criac¸˜ao de regras pelos usu´arios finais 57 F ig u ra 4 .1 0 : In te rf ac e d o CA RE .

4.3 Aux´ılio na criac¸˜ao de regras pelos usu´arios finais 58

textEntity existentes no modelo (ver Figura4.12). Em seguida, o usu´ario poder´a selecionar uma instˆancia da classe escolhida ou ir diretamente para escolha de um dos relacionamentos

listados, que tamb´em s˜ao recuperados do modelo, como apresentado na Figura4.13. Ap´os

ter definido uma instˆancia e um relacionamento, ´e necess´ario que seja selecionado o valor

para o relacionamento.

Figura 4.11: Tela do CARE para selec¸˜ao da opc¸˜ao para especificar o estado contextual.

Figura 4.12: Tela do CARE para selec¸˜ao da classe do tipo ContextEntity.

Os valores poss´ıveis para o relacionamento dependem do tipo especificado no modelo

de contexto. Por exemplo, caso o usu´ario tenha selecionado o relacionamento hasContext, ent˜ao ser´a mostrado para ele uma lista com os tipos de contextos poss´ıveis para o dom´ınio

4.3 Aux´ılio na criac¸˜ao de regras pelos usu´arios finais 59

Figura 4.13: Tela do CARE para selec¸˜ao do relacionamento da entidade.

selecionado, no caso de User seria mostrado as classes do tipo UserContext. Logo ap´os a

selec¸˜ao do tipo de contexto, o usu´ario necessitar´a escolher uma instˆancia do tipo selecionado ou ent˜ao uma faixa de valores, dependendo do tipo selecionado anteriormente.

Suponha-se que o usu´ario deseja especificar na regra que Jos´e possui status idle. Ent˜ao, os passos necess´arios para realizar esta tarefa s˜ao:

1. Selec¸˜ao da classe User;

2. Selec¸˜ao da instˆancia Jos´e;

3. Selec¸˜ao do relacionamento hasContext;

4. Selec¸˜ao da classe Status; e

5. Selec¸˜ao do valor idle.

Para alguns valores, ´e poss´ıvel efetuar a selec¸˜ao de uma faixa. Por exemplo, para o contexto temperatura ´e poss´ıvel informar que o valor deste deve ser maior que 38◦C.

Nem sempre os valores de um relacionamento s˜ao de um tipo primitivo (string, int, float, etc), podendo ser uma classe definida no modelo. Neste caso, a interface ir´a mostrar as

instˆancias ou relacionamentos que podem ser selecionados. Dessa forma, a interac¸˜ao conti- nuar´a at´e que o usu´ario selecione um valor.

4.3 Aux´ılio na criac¸˜ao de regras pelos usu´arios finais 60 Outras funcionalidades para o CARE

O CARE foi criado inicialmente para a especificac¸˜ao de regras contextuais pelos usu´ario

finais, informando que ac¸˜oes deveriam ser executadas quando um determinado estado con- textual for satisfeito. Por´em, durante os estudos de casos foi percebido que esta ferramenta

pode ser utilizada tamb´em para servir como um descritor de sensores l´ogicos e controle de acesso.

Conforme dito no Cap´ıtulo 2, os sensores l´ogicos fornecem informac¸˜oes contextuais da

uni˜ao de dois ou mais sensores ou da junc¸˜ao de sensores com outras informac¸˜oes do perfil

do usu´ario. Os sensores desse tipo podem ser descritos atrav´es de regras, por exemplo, uma regra pode indicar que se o usu´ario durante o hor´ario comercial estiver no local de trabalho,

ent˜ao ele estar´a com o status ocupado. Por outro lado, a ferramenta CARE permite que o usu´ario descreva nas condic¸˜oes de uma regra a uni˜ao de contextos, sendo necess´ario somente

que no lado das ac¸˜oes seja poss´ıvel determinar o valor de um determinado contexto.

J´a para utilizar o CARE para controle de acesso, algumas func¸˜oes necessitam ser imple-

mentadas no VadeMecum para permitir que um usu´ario conceda permiss˜oes de acesso ao seu contexto para outro usu´ario.

4.3.4

CARE Emulator

Para a validac¸˜ao das regras criadas pelo usu´ario final foi criado um emulador do Sistema VadeMecum, chamado de CARE Emulator. Este permite que todos os estados contextuais

contidos no modelo de contexto sejam simulados. Outro aspecto importante ´e que novos contextos adicionados no modelo s˜ao identificados em tempo de execuc¸˜ao, da mesma forma

que o CARE.

As regras criadas pelo CARE s˜ao adicionadas no emulador e o usu´ario insere um valor

para os contextos desejados, a partir do momento que as pr´e-condic¸˜oes das regras sejam satisfeitas, as ac¸˜oes s˜ao simuladas.

Na Figura 4.14, mostra-se a arquitetura do CARE Emulator, que possui a mesma base

do VadeMecum, para realizar o monitoramento do contexto, entretanto a base de fatos ´e

armazenada na sess˜ao (ver Figura4.5).

4.3 Aux´ılio na criac¸˜ao de regras pelos usu´arios finais 61

sendo os provedores de contexto – respons´aveis pela atualizac¸˜ao das informac¸˜oes contextu- ais no servidor – simulados pelos valores de contexto informados na interface pelo usu´ario.

O carregamento de regras contextuais no emulador acontece da mesma forma que no ser- vidor de contexto, atrav´es do protocolo HTTP e utilizando a linguagem SPARQL Update,

adicionando instˆancias da classe vade:Rule na base de fatos. Para facilitar a utilizac¸˜ao do emulador, sem a participac¸˜ao do CARE, ´e poss´ıvel entrar com regras na pr´opria interface.

Para emular as ac¸˜oes executadas no dispositivo m´ovel, estas s˜ao capturadas por um “tratador de ac¸˜oes” (Action Handler) e mostradas para o usu´ario.

Figura 4.14: Arquitetura do CARE Emulator.

Funcionamento do Emulador

Na Figura 4.15, mostra-se a interface do CARE Simulator, onde na parte central ´e seleci-

onado o contexto de localizac¸˜ao das instˆancias selecionadas na parte inferior esquerda. J´a

na parte direita s˜ao selecionados os valores dos outros tipos de contexto, sendo tratados de maneira especial somente a localizac¸˜ao e o tempo, que pode ser selecionado em uma janela

4.3 Aux´ılio na criac¸˜ao de regras pelos usu´arios finais 62

que ´e aberta, quando este for selecionado.

As ac¸˜oes no CARE Emulator s˜ao executadas na parte esquerda da interface, quando est˜ao

executam algum comando no dispositivo m´ovel dos usu´arios do Sistema VadeMecum. Para o usu´ario acompanhar o estado contextual de todos os usu´arios no sistema que est˜ao

sendo simulados, existe uma ´arvore de estados contextuais no lado direito na parte de baixo da interface.

Para a selec¸˜ao do estado contextual, o usu´ario segue os mesmos passos do CARE, se- leciona a classe do tipo ContextEntity, em seguida ser´a mostrado os subtipos de Context

permitidos pelo dom´ınio de hasContext selecionado e em seguida ´e selecionado o valor do contexto. O usu´ario pode simular quantos contextos desejar, sendo o estado contextual atu-

alizado na ´arvore simultaneamente, al´em de ser monitorado, para verificar se alguma regra foi satisfeita.

Para executar uma regra no CARE Emulator, existem duas formas: a primeira ´e quando o usu´ario terminar de criar uma regra no CARE e clica num bot˜ao para validar a regras no

emulador; a segunda opc¸˜ao ´e adicionar a regra manualmente na parte central inferior da interface, no campo destinado para esse fim.

4.3.5

Quest˜oes de Implementac¸˜ao

A interface com o usu´ario no CARE foi feita utilizando Adobe Flex, que ´e uma tecnologia que suporta o desenvolvimento de aplicac¸˜oes do tipo RIA (Rich Internet Application) para

a plataforma Adobe Flash. J´a para o servidor, foi utilizado a plataforma Java, Enterprise

Edition (JEE), sendo utilizado o BlazeDS 1 para realizar o mapeamento de objetos de uma

plataforma para a outra.

Para a leitura do modelo de contexto do VadeMecum, foi utilizado o framework Jena.

Houve a tentativa de realizar a interpretac¸˜ao do modelo de contexto utilizando a lingua- gem SPARQL via o protocolo de comunicac¸˜ao HTTP diretamente no servidor de contexto

do VadeMecum, entretanto, houve alguns problemas com relac¸˜ao `as restric¸˜oes utilizadas no modelo para restringir o conjunto imagem dos relacionamentos, al´em da dificuldade na

interpretac¸˜ao de objetos compostos por uma uni˜ao de duas ou mais classe. Consequente- mente, a adoc¸˜ao da leitura utilizando a mesma tecnologia do servidor de contexto – o fra-

4.3 Aux´ılio na criac¸˜ao de regras pelos usu´arios finais 63 F ig u ra 4 .1 5 : In te rf ac e d o CA RE E m u la to r.

4.4 Considerac¸˜oes finais 64

mework Jena –, foi uma decis˜ao tomada para facilitar o desenvolvimento do prot´otipo para validac¸˜ao de conceito proposto nesta dissertac¸˜ao.

No CARE Emulator, est´a dispon´ıvel a apresentac¸˜ao de trˆes ac¸˜oes: 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.

4.4

Considerac¸˜oes finais

O servidor de contexto do VadeMecum foi criado com o objetivo de realizar o tratamento das

informac¸˜oes contextuais e disponibilizar estas atrav´es de uma comunicac¸˜ao padr˜ao. Outros trabalhos na literatura tiveram a mesma proposta [6][7] [8][48], por´em esta soluc¸˜ao destaca- se pelo modelo de contexto baseado em ontologias, a comunicac¸˜ao via HTTP para consultas com SPARQL e atualizac¸˜oes com SPARQL Update e a facilidade de se adicionar novos tipos

de contexto, devido a um modelo de contexto extens´ıvel e um servidor de contexto que se adapta `as mudanc¸as no modelo.

Neste cap´ıtulo, foi apresentado tamb´em a ferramenta CARE, que ´e um editor de regras contextuais para usu´arios finais, possuindo como principal objetivo o aux´ılio na criac¸˜ao de

regras contextuais para o VadeMecum pelos usu´arios finais. Al´em disso, foi descrito o CARE Emulator, que auxilia na validac¸˜ao das regras pelos usu´arios atrav´es da simulac¸˜ao de estados

contextuais e a visualizac¸˜ao das ac¸˜oes que ocorrem nos dispositivos m´oveis.

Algumas ferramentas foram propostas na literatura com o intuito de auxiliar o usu´ario

final na criac¸˜ao de aplicac¸˜oes cientes de contexto. Essas ferramentas podem ser divididas em dois grupos principais, o que explora aplicac¸˜oes cientes de contexto para casas inteligentes

(smart homes), como o iCAP [11], a CAPpella [64] e o RuleCaster [65], e o que enderec¸a

tais aplicac¸˜oes para dispositivos m´oveis, como o CAIPS [66], o MScape [42] e o StreamSpin [13].

Nenhuma das ferramentas analisadas, por´em, possui um modelo de contexto baseado

em ontologias, al´em de n˜ao permitirem a extensibilidade do modelo. Entretanto, estas ca- racter´ısticas s˜ao importantes devido `a grande quantidade de informac¸˜oes contextuais dis-

4.4 Considerac¸˜oes finais 65

pon´ıveis que podem ser utilizadas nas aplicac¸˜oes e n˜ao foram previstas, al´em de possibilitar a inferˆencia de informac¸˜oes contextuais n˜ao expl´ıcitas na base de conhecimento.

Cap´ıtulo 5

Estudo de Caso

Neste cap´ıtulo, ser˜ao apresentadas algumas situac¸˜oes de uso da infraestrutura apresentada

nesta dissertac¸˜ao que foram realizadas para verificac¸˜ao do sistema proposto. As situac¸˜oes descritas ser˜ao:

1. Outdoor Virtual: Uma aplicac¸˜ao ciente de contexto que mostra propagandas mul-

tim´ıdia no dispositivo do usu´ario de acordo com seu contexto; e

2. Multimedia Service: Uma aplicac¸˜ao m´ovel para a captura de aquivos multim´ıdia com o contexto associado para posterior armazenamento e recuperac¸˜ao destes a partir de

regras contextuais.

Para a criac¸˜ao de aplicac¸˜oes cientes de contexto utilizando a infraestrutura apresentada

neste trabalho, foi desenvolvida uma aplicac¸˜ao cliente gen´erica para dispositivos m´oveis. A aplicac¸˜ao foi desenvolvida para a Plataforma Java Micro Edition (Java ME), sendo utilizada

a configurac¸˜ao de dispositivo CLDC-1.1 (Connected Limited Device Configuration) e perfil MIDP 2.0 (Mobile Information Device Profile). Para a criac¸˜ao dos provedores de contexto

no dispositivo m´ovel foi utilizada a API descrita na sec¸˜ao4.2.2.

Na Figura 5.1, apresenta-se o diagrama de classes da implementac¸˜ao do provedor de

contexto da localizac¸˜ao do usu´ario no dispositivo m´ovel, que captura os dados brutos pro- vindos do GPS do dispositivo e os transforma em contexto para, em seguida, enviar para

o servidor de contexto do VadeMecum atrav´es do m´etodo updateContext da classe Locati-

onContextProvider. Neste provedor, foi utilizada a especificac¸˜ao JSR 179, que trata sobre

o acesso `as informac¸˜oes sobre a localizac¸˜ao geogr´afica em dispositivos m´oveis, sendo esta

5.1 Outdoor Virtual 67

especificac¸˜ao ´e implementada na maioria dos smartphones dispon´ıveis no mercado que pos- suem GPS acoplado ou que utilizam outra forma para prover essa informac¸˜ao, como por

exemplo, a triangulac¸˜ao das antenas de celulares.

Figura 5.1: Diagrama de classes do provedor do contexto de localizac¸˜ao.

Os nomes dos provedores que devem ser inicializados juntamente com a aplicac¸˜ao s˜ao

adicionados no arquivo descritor de aplicac¸˜oes no dispositivo m´ovel, chamada de JAD (Java Application Descriptor). Quando o MIDlet do cliente VadeMecum ´e inicializado, s˜ao instan-

ciadas todos os provedores de contexto contidos no descritor JAD do aplicativo atrav´es do processo de reflex˜ao [67], ou seja, uma instˆancia da classe ´e criada a partir do nome desta.

No restante desta sec¸˜ao, ser˜ao descritas as aplicac¸˜oes criadas para os estudos de caso citados no in´ıcio desta sec¸˜ao.

5.1

Outdoor Virtual

Nesta aplicac¸˜ao, o usu´ario deseja que sejam exibidas propagandas multim´ıdia para poss´ıveis clientes de acordo com o contexto deles. Por exemplo, um poss´ıvel cliente est´a de f´erias e

desocupado em Campina Grande durante o mˆes de junho e gosta de forr´o, ent˜ao os orga- nizadores da festa de S˜ao Jo˜ao no munic´ıpio criam uma regra para que quando este estado

5.1 Outdoor Virtual 68

contextual acontec¸a, seja exibido um v´ıdeo sobre o evento.

Para o funcionamento deste estudo de caso s˜ao utilizados os seguintes provedores de

contexto:

• Provedor do contexto de localizac¸˜ao geogr´afica, que ´e obtida a partir de um sensor

f´ısico (GPS) no dispositivo m´ovel do usu´ario;

• Provedor do status do usu´ario, que infere a partir da agenda de compromissos do

usu´ario este contexto, caracterizando um sensor l´ogico; e

• Provedor das preferˆencias do usu´ario, que ´e obtido a partir de um sensor virtual que

capta informac¸˜oes do usu´ario no perfil descrito por ele.

Para o funcionamento deste estudo de caso, o usu´ario criar´a regras utilizando a ferra- menta CARE, as quais indicar˜ao que arquivos devem ser mostrados quando determinados

estados contextuais foram alcanc¸ados. A Figura5.2apresenta a interface do CARE com as

pr´e-condic¸˜oes necess´arias para que a ac¸˜ao de mostrar um arquivo multim´ıdia seja executada.

J´a a Figura5.3 apresenta o widget do CARE para especificar ´areas geogr´aficas nas regras

contextuais.

A regra contextual criada pelo usu´ario no CARE neste estudo de caso ´e descrita no