• Nenhum resultado encontrado

Atualizando o contexto utilizando SPARQL Update no VadeMecum

1 PREFIX v a d e : <h t t p : / / www. l s i . d s c . u f c g . edu . b r / vademecum . owl#>

2 PREFIX r d f : <h t t p : / / www. w3 . o r g / 1 9 9 9 / 0 2 / 2 2− r d f −s y n t a x −n s#>

3 MODIFY

4 DELETE { v a d e : Hugo v a d e : h a s C o n t e x t ? c }

5 INSERT { v a d e : Hugo v a d e : h a s C o n t e x t v a d e : happy } 6 WHERE { v a d e : Hugo v a d e : h a s C o n t e x t ? c .

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

4.3

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

As aplicac¸˜oes cientes de contexto baseadas em regras, s˜ao soluc¸˜oes que possuem por definic¸˜ao um alto grau de extensibilidade, entretanto, quando a tarefa de especificar as re-

gras ficam a crit´erio do desenvolvedor, estas perdem boa parte dessa caracter´ıstica, pois essa atividade n˜ao ser´a executada frequentemente. Portanto, essa tarefa deve ser realizada pe-

los maiores interessados no comportamento das aplicac¸˜oes, que s˜ao os usu´arios finais do sistema, por´em, existem diversas dificuldades na especificac¸˜ao de regras contextuais, o que

gera a necessidade de uma ferramenta que auxilie o usu´ario final nesse processo. Com este objetivo, foi criada a ferramenta CARE - Context-Aware Rule Editor.

A ferramenta CARE auxilia o usu´ario final a criar regras contextuais, tomando como foco as aplicac¸˜oes para o servidor de contexto VadeMecum. Para cumprir o objetivo para o qual

foi proposto, o CARE usa o mesmo modelo de contexto do VadeMecum, sendo descobertas as mudanc¸as neste modelo em tempo de execuc¸˜ao e adaptando-se `as alterac¸˜oes, tornando essa

ferramenta ideal para sistemas cientes de contexto, aos quais ocorrem mudanc¸as constantes no seu modelo devido ao surgimento de novos tipos de contexto.

Somando-se `a ferramenta CARE, foi criado o CARE Emulator, que serve como um emu- lador do funcionamento do servidor de contexto do VadeMecum e permite que o usu´ario

valide as regras criadas antes de envi´a-las para o servidor. Este emulador permite que os usu´arios descrevam um determinado estado contextual e verifiquem se o resultado no dispo-

sitivo m´ovel foi o esperado.

No restante desta sec¸˜ao, ser˜ao apresentadas as ferramentas CARE e CARE Emulator e

discutidas as quest˜oes e os desafios relacionados `a criac¸˜ao e validac¸˜ao de regras contextuais pelos usu´arios finais. Inicialmente, na pr´oxima subsec¸˜ao, ser˜ao apresentados os requisitos

funcionais para as ferramentas expostas nesta sec¸˜ao. Em seguida, na subsec¸˜ao seguinte, ser˜ao descritos os requisitos n˜ao funcionais. Nas subsec¸˜oes seguintes, ser˜ao apresentadas as

ferramentas CARE e CARE Emulator. Na subsec¸˜ao4.3.5, ser˜ao descritas algumas quest˜oes

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

4.3.1

Requisitos Funcionais

Especificac¸˜ao de eventos contextuais e suas consequˆencias

Sistemas cientes de contexto baseados em regras, possuem como elementos chaves a especificac¸˜ao de um estado contextual e uma consequˆencia associada. Um sistema que auxi-

lie o usu´ario na criac¸˜ao de aplicac¸˜oes cientes de contexto desse tipo deve permitir a descric¸˜ao

desses elementos.

Interface de criac¸˜ao que permita n˜ao-programadores especificar regras contextuais

Como o usu´ario que ir´a especificar as regras para as aplicac¸˜oes cientes de contexto n˜ao possuem habilidades de programador, ent˜ao a ferramenta dever´a possuir uma interface de

criac¸˜ao visual que permita que o interessado consiga descrever as regras sem escrever ne- nhuma linha de c´odigo.

Emulador para testar os estados contextuais e as consequˆencias

Ap´os descrever as regras contextuais que deseja que sejam executadas no VadeMecum, o usu´ario necessitar´a valid´a-las antes de enviar para o servidor de contexto. Para executar

esta tarefa, o usu´ario precisar´a simular o estado contextual que foi utilizado na regra a ser validada e verificar se a ac¸˜ao especificada ser´a executada. Assim uma ferramenta que emule

o funcionamento do servidor de contexto do VadeMecum ´e almejada.

Descoberta de tipos de contexto e entidades que possuem estes em tempo de execuc¸˜ao

As alterac¸˜oes no modelo de contexto s˜ao frequentes nos sistemas que d˜ao suporte ao desen- volvimento de aplicac¸˜oes cientes de contexto. Devido a este fato, a ferramenta para auxiliar

o usu´ario na especificac¸˜ao de regras contextuais deve descobrir as entidades, os tipos de con- texto e os relacionamentos existentes no sistema em tempo de execuc¸˜ao, para n˜ao precisar

que esta ferramenta seja modificada quando o modelo for alterado.

Descoberta de ac¸˜oes permitidas nas regras em tempo de execuc¸˜ao

As ac¸˜oes que podem ser executadas pelo sistema ´e outro ponto que deve ser descoberto em

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

de ser realizado.

Tratamento diferenciado para especificar alguns contextos

A maioria das informac¸˜oes contextuais podem ser representadas por tipos simples ou pri-

mitivos. Como exemplos, podem ser citados: a temperatura corporal ou do ambiente, os batimentos card´ıacos, o status de uma pessoa, etc. Por´em algumas destas possuem uma

complexidade maior na sua especificac¸˜ao, sendo este o caso do contexto de localizac¸˜ao ge- ogr´afica, o qual pode ser representado por uma ´area, ponto ou at´e um lugar. Para estas

situac¸˜oes, a ferramenta deve permitir que sejam adicionados componentes especiais para o tratamento destas, como bot˜oes, janelas ou outros tipos destes na interface gr´afica com o

usu´ario.

Gerenciamento das regras

O gerenciamento das regras ´e outro ponto que a ferramenta deve suportar, permitindo a adic¸˜ao, remoc¸˜ao, edic¸˜ao, habilitac¸˜ao, desabilitac¸˜ao e validac¸˜ao de regras.

4.3.2

Requisitos N˜ao Funcionais

Utilizar o mesmo modelo de contexto do VadeMecum

A ferramenta proposta nesta pesquisa tem como objetivo servir como um auxiliador na

criac¸˜ao de regras contextuais que seguem o modelo de cotexto do VadeMecum, portanto este deve ser seguido pela ferramenta criada.

Aplicac¸˜ao Web

A ferramenta deve executar na Web e abranger uma ampla gama de browsers, para que seja facilitado o acesso a essa, n˜ao havendo a necessidade de instalac¸˜oes e atualizac¸˜oes dessa

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

4.3.3

CARE

Com o intuito de auxiliar o usu´ario final na criac¸˜ao de regras contextuais, a ferramenta

Context-Aware Rule Editor (CARE) foi criada. Este descobre elementos-chaves do modelo de contexto do VadeMecum para criar uma interface visual na forma de wizard para alcanc¸ar

seu objetivo.

Nesta sec¸˜ao, a ferramenta CARE ser´a descrita, sendo mostrada sua arquitetura, os princi-

pais elementos do modelo de contexto, a interface baseada em widgets, o seu funcionamento, outras funcionalidades para o CARE e algumas quest˜oes de implementac¸˜ao.

Arquitetura

Na Figura4.8, mostra-se um esboc¸o da arquitetura do CARE, a qual ´e formada por quatro

m´odulos principais: o tratador do wizard, o de gerenciamento de regras, o de gerenciamento de func¸˜oes e o interpretac¸˜ao do modelo de contexto.

Figura 4.8: Arquitetura do CARE.

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

opc¸˜oes e mostrando-as na interface a cada passo seguido. Este tamb´em informa o conte´udo que estar´a contido em cada janela de criac¸˜ao de regras, al´em de gerenciar as vari´aveis de

cada sess˜ao aberta pelos usu´arios e manter o controle de widgets.

J´a o gerenciador de regras tem a func¸˜ao de controle sobre as regras existentes na base de

dados, permitindo que as regras sejam enviadas para o CARE Emulator, removidas, editadas, desabilitadas ou habilitadas no VadeMecum e adicionadas ap´os o wizard de criac¸˜ao.

O gerenciador de func¸˜oes ´e respons´avel pela descoberta de func¸˜oes que podem ser utili- zadas nas regras, informando-as para o tratador do wizard. O modelo de contexto n˜ao possui

informac¸˜oes sobre as func¸˜oes permitidas pelas regras no VadeMecum, sendo estas descober-

tas a partir da leitura de um arquivo XML que possui a descric¸˜ao destas. O C´odigo Fonte4.6

apresenta um exemplo de arquivo XML contendo as func¸˜oes que podem ser utilizadas pelas regras no CARE.

Por ´ultimo, o interpretador do modelo de contexto faz a tarefa de realizar consultas no modelo de contexto do VadeMecum, para descobrir os elementos chaves para a criac¸˜ao de

regras contextuais. Por exemplo, quando o tratador do wizard necessitar dos relacionamentos de uma entidade, o interpretador ir´a buscar esta informac¸˜ao no modelo.

Um modelo de contexto pode ser bastante complexo e possuir diversas informac¸˜oes n˜ao ´uteis para a criac¸˜ao de regras contextuais, apenas uma parte do modelo de contexto do Va-

deMecum ´e levado em considerac¸˜ao. A parte que ´e lida pelo CARE s˜ao as classes que estendem duas classes chaves no modelo: Context e ContextEntity. Estas representam os

elementos importantes do modelo de contexto do VadeMecum, representando o contexto e as entidades que possuem contexto, respectivamente.

Com o modelo de contexto base simplificado ´e poss´ıvel dar uma maior liberdade para as extens˜oes, al´em de permitir que os sistemas fiquem fortemente acoplado a esse modelo e se

adaptem as suas modificac¸˜oes.

Interface Baseada em Widget

Alguns valores poss´ıveis pelos relacionamentos nas regras contextuais no CARE s˜ao trata-

dos de maneira especial. Este ´e o caso dos do tipo SpatialThing, quando um valor deste deve ser selecionado, uma janela ´e aberta com um mapa, onde o usu´ario pode selecionar

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

seja necess´ario, ent˜ao ´e poss´ıvel adicionar um widget que ser´a acionado quando um valor do tipo escolhido for ser selecionado. O widget ´e um componente da interface gr´afica com o

usu´ario, como uma janela que ´e aberta ao clicar em um bot˜ao e retorna o valor selecionado nesta.