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.