Universidade Federal de Campina Grande
Centro de Engenharia El´etrica e Inform´atica
Coordenac¸˜ao de P´os-Graduac¸˜ao em Inform´atica
Uma Infraestrutura de Suporte a Aplicac¸˜oes Cientes
de Contexto com o Enfoque no Usu´ario Final
Hugo Feitosa de Figueirˆedo
Dissertac¸˜ao submetida `a Coordenac¸˜ao do Curso de P´os-Graduac¸˜ao em
Ciˆencia da Computac¸˜ao da Universidade Federal de Campina Grande -Campus I como parte dos requisitos necess´arios para obtenc¸˜ao do grau
de Mestre em Ciˆencia da Computac¸˜ao.
´
Area de Concentrac¸˜ao: Ciˆencia da Computac¸˜ao
Linha de Pesquisa: Sistemas de Informac¸˜ao e Banco de Dados
Cl´audio de Souza Baptista
(Orientador)
Campina Grande, Para´ıba, Brasil c
FICHA CATALOGRÁFICA ELABORADA PELA BIBLIOTECA CENTRAL DA UFCG
F475i Figueirêdo, Hugo Feitosa de
Uma infraestrutura de suporte a aplicações cientes de contexto com o enfoque no usuário final / Hugo Feitosa de Figueirêdo ─ Campina Grande, 2009.
115 f.
Dissertação (Mestrado em Ciência da Computação)- Universidade Federal de Campina Grande, Centro de Engenharia Elétrica e Informática.
Referências.
Orientador: Prof. Dr. Cláudio de Souza Baptista.
1. Dispositivos Móveis 2. Aplicação Cientes de Contexto 3. Ontologias I. Título.
CDU 004.65 (043)
Resumo
As aplicac¸˜oes cientes de contexto est˜ao se tornando populares, como consequˆencia de
avanc¸os tecnol´ogicos em dispositivos m´oveis, sensores e comunicac¸˜ao de redes sem fio. Entretanto, desenvolver um sistema ciente de contexto envolve v´arios desafios. Por
exem-plo, quais ser˜ao as informac¸˜oes contextuais, como representar, adquirir e processar essas informac¸˜oes e como estas ser˜ao utilizadas pelo sistema. Alguns frameworks e middlewares
foram propostos na literatura para auxiliar programadores a superar esses desafios, por´em ainda faltam mecanismos que auxiliem usu´arios finais na personalizac¸˜ao dessas aplicac¸˜oes.
Al´em disso, a maioria das soluc¸˜oes propostas n˜ao possui um modelo de contexto extens´ıvel baseado em ontologias ou n˜ao utiliza uma comunicac¸˜ao que permita aproveitar as
potenci-alidades dos modelos que seguem esta abordagem. Este trabalho prop˜oe uma infraestrutura de suporte a aplicac¸˜oes cientes de contexto que possui um modelo de contexto extens´ıvel
baseado em ontologias e comunicac¸˜ao entre os elementos utilizando SPARQL e SPARQL Update. Tamb´em s˜ao propostas ferramentas para usu´arios finais criarem e validarem
visual-mente regras contextuais.
Abstract
Context-aware applications have become popular as a consequence of the technological
ad-vances on mobile devices, sensors, and wireless network communication. However, there are many challenges in the development of these applications. For instance, which
contex-tual information will be used, how to represent, capture, proccess and use the context in the system are some of such application development challenges. Frameworks and middlewares
to improve context-aware application development have been proposed, but they still lack helping users in customizing their applications. Furthemore most proposed solutions do not
have an extensible ontology-based context model and an efficient communication which ena-bles to explore the main features of such approach. This work proposes an infrastructure to
support context-aware applications, which uses an extensible ontology-based context mo-del and communication through SPARQL and SPARQL Update. Also there are visual tools
aiming to help end-users in the creation and validation of context rules.
Agradecimentos
Ao meu orientador e amigo, Cl´audio Baptista, pelos muitos gritos e broncas, por ter me
ensinado muito de como ser um pesquisador e pela paciˆencia que teve comigo (ou n˜ao? :-P). `
A minha esposa, Julliana, por ter aguentado a falta de atenc¸˜ao que lhe dei durante a
redac¸˜ao desta dissertac¸˜ao e por ter me incentivado nos momentos em que precisei.
Em especial, a meu filho Igor, que me deu muitas alegrias e muita forc¸a nos momentos
dif´ıceis. `
A minha m˜ae, por ter me indicado o caminho a ser seguido, pelo apoio financeiro e por
ter me ajudado a entender as broncas do meu orientador. `
A minha irm˜a, Marcella, por ter ficado com Igor v´arios finais de semana para que eu
terminasse meu mestrado. A toda minha fam´ılia.
Ao meu grande amigo e parceiro de pesquisas, Yuri Lacerda, com quem realizei bons trabalhos de pesquisa e tomei poucas cervejas durante o per´ıodo de mestrado.
Aos meus grandes amigos, Cl´audio Campelo e Daniel Fireman.
Aos colegas de Laborat´orio, Dami˜ao, F´abio Leite, F´abio Gomes, Michael, Ricardo,
Lu-ciana, Felipe, Carlos Augusto, Welmisson Jammesson, Tiago (pelas risadas) e Halley. Aos alunos de graduac¸˜aodo LSI, Tiago, Eliael e Diego, por terem contribu´ıdo de alguma
forma com o prot´otipo desenvolvido na minha pesquisa. `
A CAPES e ao CNPQ, pelo apoio financeiro.
Conte ´udo
1 Introduc¸˜ao 1 1.1 Objetivos . . . 3 1.1.1 Objetivos Espec´ıficos . . . 3 1.2 Metodologia . . . 4 1.3 Estrutura da Dissertac¸˜ao . . . 4 2 Fundamentac¸˜ao Te´orica 5 2.1 Computac¸˜ao Ub´ıqua . . . 5 2.2 Contexto . . . 82.3 Servic¸os Baseados em Localizac¸˜ao . . . 10
2.4 Representac¸˜ao do Conhecimento, Ontologias e Web Semˆantica . . . 11
2.5 Modelagem de Contexto . . . 13 2.6 Considerac¸˜oes Finais . . . 15 3 Trabalhos Relacionados 17 3.1 FLAME2008 . . . 17 3.2 WASP e Infraware . . . 19 3.3 MScape . . . 22 3.4 StreamSpin . . . 25 3.5 SOCAM . . . 26
3.6 Context Toolkit e iCAP . . . 28
3.7 Omnipresent. . . 30
3.8 Comparac¸˜ao . . . 32
3.9 Considerac¸˜oes Finais . . . 33 iv
CONTE ´UDO v
4 VadeMecum 35
4.1 Vis˜ao Geral do Sistema . . . 35
4.2 Servidor de Contexto do VadeMecum . . . 36
4.2.1 Modelo de Contexto do VadeMecum . . . 37
4.2.2 Arquitetura . . . 38
4.2.3 Quest˜oes de Implementac¸˜ao . . . 44
4.3 Aux´ılio na criac¸˜ao de regras pelos usu´arios finais . . . 50
4.3.1 Requisitos Funcionais . . . 51
4.3.2 Requisitos N˜ao Funcionais . . . 52
4.3.3 CARE . . . 53 4.3.4 CARE Emulator . . . 60 4.3.5 Quest˜oes de Implementac¸˜ao . . . 62 4.4 Considerac¸˜oes finais . . . 64 5 Estudo de Caso 66 5.1 Outdoor Virtual . . . 67 5.2 Multimedia Service . . . 72 5.3 Considerac¸˜oes Finais . . . 77 6 Conclus˜ao 78 6.1 Contribuic¸˜oes . . . 78
6.1.1 Servidor de Contexto do VadeMecum . . . 79
6.1.2 Aux´ılio na Criac¸˜ao de Regras Contextuais . . . 80
6.2 Trabalhos Futuros . . . 81
Referˆencias Bibliogr´aficas 89
A Modelo de Contexto do VadeMecum 90
Lista de Abreviac¸˜oes
API - Application Programming InterfaceCARE - Context-Aware Rule Editor
CC/PP - Composite Capability/Preference Profiles
CEP - C´odigo de Enderec¸amento Postal
CLDC - Connected Limited Device Configuration
DAML - DARPA Agent Markup Language
DARPA - Defense Advanced Research Projects Agency
DIG - DL Implementation Group FOAF - Friend of a Friend
GMLC - GatewayMobile Location Center GPS - Global Positioning System
HP - Hewlett-Packard
HTTP - Hypertext Transfer Protocol
JAD - Java Application Descriptor
JEE - Java Platform, Enterprise Edition JEE
JME - Java Platform, Micro Edition JSR - Java Specification Request
LBS - Location Based Services
MIDP - Mobile Information Device Profile
MPC - Mobile Positioning Center OGC - Open Geospatial Consortium
OIL - Ontology Inference Layer
OpenLS - Open Location Services Interface Standard
ORM - (Object Role Modeling)
vii
OWL - Ontology Web Language PDA - Personal Digital Assistants
RDF - Resource Description Framework
RDFS - Resource Description Framework Schema
RIA - Rich Internet Application
SIG - Sistemas de Informac¸˜oes Geogr´aficas
SOAP - Simple Object Access Protocol
SPARQL - SPARQL Protocol and RDF Query Language
SWRL - Semantic Web Rule Language UML - Unified Modeling Language
W3C - The World Wide Web Consortium XML - eXtensible Markup Language
Lista de Figuras
2.1 Eras computacionais propostas por Weiser.. . . 6
2.2 Tendˆencias futuras em computac¸˜ao(Adaptado de http://www.ubiq.com). . . 7
2.3 Camadas da Web Semˆantica (adaptada de http://www.w3.org/2001/sw). . . 12
3.1 Arquitetura do FLAME2008. . . 18
3.2 Plataforma WASP e seus relacionamentos . . . 20
3.3 Arquitetura da plataforma WASP.. . . 21
3.4 Arquitetura da plataforma Infraware. . . 22
3.5 Componentes de um mediascape. . . 23
3.6 Ferramenta de criac¸˜ao de mediascapes. . . 23
3.7 Arquitetura da plataforma StreamSpin. . . 26
3.8 Modelo baseado em ontologia com dois n´ıveis de hierarquia. . . 27
3.9 Arquitetura do SOCAM. . . 28
3.10 Arquitetura do Context Toolkit.. . . 29
3.11 Arquitetura do Omnipresent. . . 30
4.1 Esquema de criac¸˜ao de regras . . . 36
4.2 Contextos do modelo de contexto do VadeMecum. . . 39
4.3 Ontologia superior do modelo de contexto.. . . 40
4.4 Ontologia do VadeMecum para regras. . . 40
4.5 Arquitetura do servidor de contexto do VadeMecum. . . 41
4.6 Diagrama de classes da API para criac¸˜ao de provedores de contexto. . . 43
4.7 Ferramenta Prot´eg´e com o plugin OWL. . . 45
4.8 Arquitetura do CARE. . . 53
4.9 Widget para selec¸˜ao de elementos geogr´aficos. . . . 56 viii
LISTA DE FIGURAS ix
4.10 Interface do CARE. . . 57
4.11 Tela do CARE para selec¸˜ao da opc¸˜ao para especificar o estado contextual. . 58
4.12 Tela do CARE para selec¸˜ao da classe do tipo ContextEntity.. . . 58
4.13 Tela do CARE para selec¸˜ao do relacionamento da entidade. . . 59
4.14 Arquitetura do CARE Emulator. . . 61
4.15 Interface do CARE Emulator. . . 63
5.1 Diagrama de classes do provedor do contexto de localizac¸˜ao. . . 67
5.2 Ferramenta CARE com uma regra para o Outdoor Virtual. . . 69
5.3 Ferramenta CARE com o widget do google maps . . . 70
5.4 CARE Emulator validando a regra contextual criada para o Outdoor Virtual. 71 5.5 Aplicac¸˜ao m´ovel antes e depois da ac¸˜ao de mostra uma arquivo multim´ıdia. 72 5.6 Tela inicial do cliente m´ovel. . . 74
5.7 Tela de escolha do tipo arquivo o usu´ario deseja criar. . . 75
5.8 Tela de criac¸˜ao do arquivo de imagem. . . 76
Lista de Tabelas
2.1 Comparac¸˜ao entre os tipos de computac¸˜ao.. . . 7
2.2 Comparac¸˜ao entre abordagens para modelagem de contexto. . . 15
3.1 Comparac¸˜ao entre os trabalhos relacionados.. . . 33
Lista de C´odigos-Fonte
4.1 Regra contextual no VadeMecum. . . 44
4.2 Sintaxe das regras no Jena. . . 46
4.3 Exemplo de consulta em SPARQL SELECT.. . . 48
4.4 Resultado de uma consulta SPARQL na forma SELECT. . . 49
4.5 Atualizando o contexto utilizando SPARQL Update no VadeMecum. . . 49
4.6 Exemplo de arquivo com as func¸˜oes permitidas pelo CARE nas regras. . . . 55
5.1 Regra criada no CARE para o Outdoor Virtual. . . 68
5.2 Regra alterado do estudo de caso do Outdoor Virtual. . . 77
A.1 Modelo de contexto do VadeMecum descrito em OWL. . . 90
B.1 Configurac¸˜ao do Joseki no VadeMecum. . . 101
Cap´ıtulo 1
Introduc¸˜ao
O poder de processamento e armazenamento dos computadores est´a aumentando cada vez
mais. Tal evoluc¸˜ao n˜ao est´a s´o ocorrendo com os computadores pessoais, mas tamb´em com os dispositivos m´oveis. Desta forma, estes dispositivos est˜ao agregando cada vez mais
fun-cionalidades, permitindo que as pessoas possam realizar algumas tarefas com estes dispo-sitivos enquanto se movimentam. Por exemplo, um investidor recebe uma not´ıcia em seu
dispositivo sobre uma queda na bolsa de valores de Nova York e, rapidamente, vende algu-mas ac¸˜oes suas na Bovespa, antes que os efeitos dessa queda afetem suas cotac¸˜oes, sendo
toda a negociac¸˜ao feita no seu dispositivo.
Por outro lado, uma grande variedade de sensores est˜ao surgindo no mercado, sendo
poss´ıvel acopl´a-los a dispositivos m´oveis atrav´es de entradas seriais, Bluetooth, IrDa, etc. A fus˜ao dos dispositivos m´oveis com esses sensores, torna poss´ıvel o monitoramento da
situac¸˜ao na qual o usu´ario est´a inserido. Por exemplo, atrav´es de um sensor de temperatura de uma pessoa, ´e poss´ıvel descobrir se ela est´a com febre. Estas informac¸˜oes, que podem
ser monitoradas a partir de sensores, s˜ao conhecidas como informac¸˜oes contextuais, as quais
comp˜oem um conjunto chamado de estado contextual [1].
O monitoramento do estado contextual pelas aplicac¸˜oes, permite que estas estejam cien-tes de informac¸˜oes impl´ıcitas na comunicac¸˜ao entre o homem e a m´aquina e n˜ao somente as
expl´ıcitas. Com estas informac¸˜oes, as aplicac¸˜oes podem tomar decis˜oes com o intuito de per-sonalizar os servic¸os a seus usu´arios. Por exemplo, uma aplicac¸˜ao pode alterar a temperatura
do ar-condicionado de acordo com as preferˆencias das pessoas localizadas no ambiente. Uma das definic¸˜oes mais referenciadas para contexto foi proposta por Dey [2]:
2
“Contexto ´e qualquer informac¸˜ao que pode ser utilizada para caracterizar a situac¸˜ao de uma entidade. Uma entidade ´e uma pessoa, lugar ou objeto que ´e considerado relevante para a interac¸˜ao entre o usu´ario e a aplicac¸˜ao, incluindo o pr´oprio usu´ario e aplicac¸˜ao.”
O contexto ´e um dos temas mais pesquisados na computac¸˜ao ub´ıqua, que foi visionada
por Weiser [3]. Na vis˜ao de computac¸˜ao ub´ıqua, ´e previsto que as pessoas ser˜ao
auxili-adas nas suas atividades cotidianas pelos computadores, de maneira que este aux´ılio n˜ao
seja percebido pelos pr´oprios usu´arios. Para que os computadores consigam ajudar sem ser percebidos, ´e necess´ario o monitoramento do contexto do usu´ario, de forma que suas
neces-sidades sejam atendidas automaticamente, quando algum determinado estado contextual for
atingido.
Com os avanc¸os na capacidade de processamento e armazenamento dos dispositivos
m´oveis, muitos servic¸os poder˜ao ser fornecidos nestes, havendo a possibilidade destes servic¸os serem cientes de contexto. Dessa forma, surge a necessidade de pesquisas
volta-das para esta ´area, para se superar alguns desafios provenientes desta vis˜ao.
Os Servic¸os Baseados em Localizac¸˜ao (Location-Based Services - LBS) [4] podem ser
vistos como uma parte dos servic¸os cientes de contexto que podem ser oferecidos para dispo-sitivos m´oveis. Estes servic¸os j´a deixaram de ser uma vis˜ao do futuro para ser uma realidade
[5]. Por exemplo, existem diversas aplicac¸˜oes no mercado que oferecem a busca por uma
rota entre dois pontos geogr´aficos. Al´em disso, existem outras aplicac¸˜oes que permitem que
sejam criadas condic¸˜oes relacionadas a ´areas geogr´aficas. Assim, quando o usu´ario estiver dentro de alguma destas ´areas, uma ac¸˜ao ser´a executada.
Apesar de muitas aplicac¸˜oes cientes de contexto j´a existirem, poucas possuem uma ar-quitetura extens´ıvel, para facilitar a adic¸˜ao de novos contextos ou servic¸os. Com isso,
al-guns frameworks, middlewares e arquiteturas foram propostas na literatura para o auxilio na criac¸˜ao destas aplicac¸˜oes [6] [7] [8] [9] [10].
A maior parte das soluc¸˜oes para facilitar a extens˜ao de aplicac¸˜oes cientes de contexto, por´em, n˜ao enfoca o usu´ario final, pois s˜ao feitas para facilitar a extens˜ao por programadores
– que conhec¸am bem a soluc¸˜ao. Deste modo, alguns pesquisadores propuseram algumas ferramentas com o foco no usu´ario final, de forma que, ele pr´oprio possa estender e alterar
1.1 Objetivos 3
para sistemas de Casas inteligentes (Smart Home) e n˜ao possuem um modelo de contexto extens´ıvel ao qual as ferramentas se adaptem.
Este trabalho apresenta uma infraestrutura para facilitar o desenvolvimento de aplicac¸˜oes cientes de contexto com o enfoque na personalizac¸˜ao pelo usu´ario final. Fazem parte da
infraestrutura: um servidor de contexto, que realiza algumas tarefas comuns necess´arias `as aplicac¸˜oes cientes de contexto; uma ferramenta que auxilia o usu´ario final na especificac¸˜ao
de regras contextuais; e um emulador para validac¸˜ao das regras.
Na pr´oxima sec¸˜ao, ser˜ao apresentados os objetivos deste trabalho. Em seguida, na sec¸˜ao
1.2, ´e descrita a metodologia que foi utilizada nesta pesquisa. Por fim, na sec¸˜ao1.3, ´e exposta a estrutura do restante desta dissertac¸˜ao.
1.1
Objetivos
O principal objetivo deste trabalho ´e desenvolver uma infraestrutura para dar suporte `a criac¸˜ao de aplicac¸˜oes cientes de contexto, que permitam a personalizac¸˜ao pelo usu´ario
fi-nal.
1.1.1
Objetivos Espec´ıficos
Os objetivos espec´ıficos deste trabalho s˜ao:
• Obter um modelo de contexto baseado em ontologias;
• Obter um servidor de contexto para o tratamento das informac¸˜oes contextuais;
• Obter uma ferramenta visual para gerac¸˜ao de regras, de forma que, esta tarefa possa
ser executada pelos usu´arios finais da aplicac¸˜ao;
• Obter um emulador do sistema para validac¸˜ao pelo usu´ario final das regras criadas; • Fazer com que a infraestrutura permita a extens˜ao do modelo de contexto; e
• Obter aplicac¸˜oes cientes de contexto que validem a infraestrutura proposta neste
1.2 Metodologia 4
1.2
Metodologia
A metodologia utilizada no trabalho descrito nesta dissertac¸˜ao baseou-se em atividades de estudos regulares em aplicac¸˜oes cientes de contexto, al´em da realizac¸˜ao de pesquisas nas
principais publicac¸˜oes na ´area. Foram levantadas algumas ferramentas que possuem carac-ter´ısticas similares a este trabalho e estas foram analisadas para o levantamento das lacunas
existentes. A partir das an´alises realizadas nas ferramentas, foram levantados os requisitos para o sistema. Em seguida, foi desenvolvido um prot´otipo e realizada uma validac¸˜ao com
alguns estudos de casos de utilizac¸˜ao do sistema em simulac¸˜oes de usos reais.
1.3
Estrutura da Dissertac¸˜ao
O restante desta dissertac¸˜ao est´a estruturada da seguinte forma:
• Cap´ıtulo 2: cont´em uma fundamentac¸˜ao te´orica necess´aria para a compreens˜ao desta dissertac¸˜ao, como as definic¸˜oes para contexto, aplicac¸˜oes cientes de contexto, computac¸˜ao ub´ıqua e ontologias;
• Cap´ıtulo3: cont´em uma discuss˜ao sobre os principais trabalhos relacionados na ´area, destacando os pontos relevantes, inspiradores e fracos de cada um;
• Cap´ıtulo4: ´e apresentada a infraestrutura VadeMecum, sendo descrito uma vis˜ao ge-ral do sistema, o servidor de contexto e o processo de criac¸˜ao e validac¸˜ao de regras
contextuais pelo usu´ario final;
• Cap´ıtulo5: s˜ao apresentados alguns estudos de caso de situac¸˜oes reais da utilizac¸˜ao da infraestrutura proposta neste trabalho; e
• Cap´ıtulo 6: ´e conclu´ıda esta dissertac¸˜ao, sendo apresentadas as principais contribuic¸˜oes obtidas e outros trabalhos que podem ser desenvolvidos no futuro.
Cap´ıtulo 2
Fundamentac¸˜ao Te´orica
Neste cap´ıtulo, apresenta-se a terminologia b´asica e os conceitos fundamentais utilizados
du-rante esta dissertac¸˜ao. Quest˜oes como distinc¸˜ao entre computac¸˜ao pervasiva, ub´ıqua e m´ovel s˜ao abordadas. Tamb´em ser´a introduzida uma noc¸˜ao de Web Semˆantica, que representa um
dos elementos-chaves a serem considerados na modelagem do contexto.
O restante deste cap´ıtulo est´a organizado da seguinte forma, na sec¸˜ao 2.1,
introduzem-se os conceitos de computac¸˜ao ub´ıqua. Na introduzem-sec¸˜ao 2.2, apresentam-se algumas definic¸˜oes e
caracter´ısticas de contexto, como tamb´em, alguns exemplos de sistemas cientes de contexto.
Na sec¸˜ao2.3, discorre-se sobre servic¸os baseados em localizac¸˜ao, que s˜ao um caso espec´ıfico de servic¸os cientes de contexto. Posteriormente, na sec¸˜ao2.4, descrevem-se alguns conceitos sobre representac¸˜ao do conhecimento, ontologias e Web semˆantica. Em seguida, na sec¸˜ao
2.5, apresenta-se um estudo sobre modelagem de contexto. Por fim, s˜ao citadas algumas
considerac¸˜oes finais do cap´ıtulo na ´ultima sec¸˜ao.
2.1
Computac¸˜ao Ub´ıqua
Weiser [3], em 1991, idealizou um futuro – para o per´ıodo em que o artigo foi escrito – para a computac¸˜ao, a qual seria onipresente na vida das pessoas durante a realizac¸˜ao de tarefas do cotidiano. Entretanto, esta n˜ao seria percebida pelos mesmos, devido `a naturalidade da
situac¸˜ao. Esta ideia abriu caminho para uma nova linha de pesquisa at´e ent˜ao inexplorada: a computac¸˜ao ub´ıqua.
Weiser [3] descreveu a computac¸˜ao ub´ıqua como a terceira grande era dos
2.1 Computac¸˜ao Ub´ıqua 6
res, sendo as duas primeiras representadas pelos mainframes e os computadores pessoais. Na era do mainframe, existiam poucos computadores de grande porte e imenso poder de
processamento para serem compartilhados por in´umeros usu´arios. J´a a era dos computa-dores pessoais foi caracterizada pela utilizac¸˜ao de micro-computacomputa-dores para uso pessoal e
exclusivo. Por ´ultimo, a era da computac¸˜ao ub´ıqua seria caracterizada pela existˆencia de di-versos dispositivos de pequeno porte que auxiliariam os usu´arios nas suas tarefas cotidianas
sem ser percebidos. A Figura2.1apresenta o relacionamento com as cardinalidades das eras
propostas por Weiser e a Figura2.2mostra um gr´afico com as trˆes eras e suas tendˆencias.
Figura 2.1: Eras computacionais propostas por Weiser.
A computac¸˜ao ub´ıqua muitas vezes ´e equivocadamente confundida com computac¸˜ao per-vasiva; no entanto, estes referem-se a ramos distintos de pesquisa, apesar de possu´ırem uma
grande intersec¸˜ao. A computac¸˜ao m´ovel trata da habilidade de utilizar dispositivos com-putacionais mesmo quando em movimento. Enquanto, computac¸˜ao pervasiva refere-se `a
colaborac¸˜ao transparente entre dispositivos computacionais distribu´ıdos no ambiente f´ısico para a obtenc¸˜ao de informac¸˜oes do meio para a construc¸˜ao dinˆamica de novos modelos
com-putacionais. Por fim, a computac¸˜ao ub´ıqua integra os avanc¸os da computac¸˜ao m´ovel e da computac¸˜ao pervasiva [14]. Na Tabela2.1, confrontam-se os trˆes tipos de computac¸˜ao cita-dos com duas caracter´ısticas, a de imers˜ao computacional – referente `a distribuic¸˜ao de
dis-2.1 Computac¸˜ao Ub´ıqua 7
Figura 2.2: Tendˆencias futuras em computac¸˜ao(Adaptado de http://www.ubiq.com).
Tabela 2.1: Comparac¸˜ao entre os tipos de computac¸˜ao.
Imers˜ao Computacional Mobilidade
Computac¸˜ao Tradicional -
-Computac¸˜ao Pervasiva +
-Computac¸˜ao M´ovel - +
Computac¸˜ao Ub´ıqua + +
positivos computacionais para a captac¸˜ao de informac¸˜oes do ambiente – e a de mobilidade – referente `a mobilidade dos dispositivos computacionais enquanto est´a em funcionamento.
“+” indica que a computac¸˜ao atende `a caracter´ıstica e “-” que n˜ao atende.
Jensen [15] afirma que a realidade na qual uma aplicac¸˜ao ser´a utilizada deve ser pensada quando esta ´e desenvolvida para o futuro. Desta forma, o ideal ´e se basear em algumas referˆencias de pesquisadores sobre as tendˆencias no mundo computacional para o per´ıodo
em que a aplicac¸˜ao ser´a utilizada. Por exemplo, basear-se na lei de Moore para estimar qual ser´a o poder computacional no per´ıodo desejado ou, at´e mesmo, nas vis˜oes de Weiser [3].
A computac¸˜ao ub´ıqua abrange diversos ramos de pesquisas, incluindo o dos sistemas
cientes de contexto, que ´e um passo inicial para o futuro visionado por Weiser [3]. Esses
2.2 Contexto 8
2.2
Contexto
Com a proliferac¸˜ao de dispositivos m´oveis, tais como smartphones e PDA (Personal Di-gital Assistants), os usu´arios destes dispositivos podem se movimentar enquanto realizam
outras tarefas. Com isto, informac¸˜oes podem ser coletadas da situac¸˜ao na qual o usu´ario est´a inserido para fornecer servic¸os e informac¸˜oes personalizadas, realizac¸˜oes autom´aticas de
co-mandos e armazenamento destas informac¸˜oes para uso posterior. Este tipo de informac¸˜ao utilizada para estas tomadas de decis˜oes ´e chamado de contexto, sendo as aplicac¸˜oes que
utilizam este tipo de informac¸˜ao as aplicac¸˜oes cientes de contexto.
Como visto anteriormente, na computac¸˜ao ub´ıqua o usu´ario seria auxiliado por
compu-tadores em suas tarefas cotidianas, de forma que, estes n˜ao fossem percebidos. Para este objetivo ser alcanc¸ado, ´e necess´ario que o contexto seja monitorado constantemente, para a
tomada de decis˜ao pelo computador, a fim de auxiliar o usu´ario em suas tarefas.
Existem diversos desafios relacionados `a utilizac¸˜ao de contexto em sistemas, sendo
al-guns enumerados por Schmidt [16]:
• Entender o conceito de contexto. O conceito de contexto deve ser assimilado antes
de tentar us´a-lo;
• Utilizar o contexto. ´E necess´ario saber como o contexto ser´a utilizado;
• Adquirir informac¸˜oes de contexto. Nesta parte entra os desafios relacionados a
captac¸˜ao de informac¸˜oes de sensores;
• Conectar a aquisic¸˜ao de contexto na utilizac¸˜ao de contexto. A conex˜ao da aquisic¸˜ao
do contexto com a utilizac¸˜ao deve ser feita de maneira uniforme, independente de qual
sensor a informac¸˜ao foi capturada e onde o sensor est´a localizado, sendo esta parte abstra´ıda no momento de utilizac¸˜ao do contexto;
• Entender a influˆencia da interac¸˜ao entre o homem e o computador. Uma das
utilidades do contexto ´e facilitar a interac¸˜ao entre o homem e o computador. Com isso,
´e necess´ario entender como esta interac¸˜ao ocorre para tentar melhor´a-la;
• Auxiliar na construc¸˜ao de sistemas ub´ıquos. A construc¸˜ao de aplicac¸˜oes cientes de
2.2 Contexto 9
de mecanismos que auxilie na construc¸˜ao destes; e
• Validar sistemas cientes de contexto. Para validar um sistema ciente de contexto,
´e necess´ario testar o funcionamento deste em situac¸˜oes reais com alguns usu´arios e analisar os resultados.
Baldauf et al. [17] definem sensor como sendo qualquer fonte de dados que provˆe
informac¸˜oes contextuais. Considerando a maneira como os dados foram capturados, os sensores podem ser classificados como: sensores f´ısicos, quando representam o hardware
utilizado para captar informac¸˜oes do ambiente; sensores virtuais, quando adquirem os dados de aplicac¸˜oes ou servic¸os; e sensores l´ogicos, quando utilizam um conjunto de outras fontes
de dados – incluindo outros sensores – para inferir novas informac¸˜oes. Por exemplo, o GPS ´e um sensor f´ısico, enquanto que uma agenda de compromissos na Web que indica a atividade
que o usu´ario est´a realizando ´e um sensor virtual e um sistema que infere a localizac¸˜ao do usu´ario a partir de sua agenda de compromissos ´e um sensor l´ogico.
Schilit e Theimer [18] foram dois dos precursores na pesquisa envolvendo sistemas
cien-tes de contexto, sendo dada por eles a seguinte definic¸˜ao: ciente de contexto ´e a habilidade de
uma aplicac¸˜ao de descobrir e reagir `as mudanc¸as no ambiente. J´a com relac¸˜ao `a classificac¸˜ao de contexto, eles propuseram a seguinte:
• Contexto computacional. Este contexto est´a associado `as informac¸˜oes do dispositivo
que est´a sendo utilizado. Por exemplo: mem´oria dispon´ıvel e tamanho do visor;
• Contexto do usu´ario. Este contexto est´a associado `as informac¸˜oes do usu´ario. Por
exemplo: press˜ao sangu´ınea e temperatura corporal; e
• Contexto f´ısico. Este contexto est´a associado `as informac¸˜oes do ambiente f´ısico ao
redor do usu´ario. Por exemplo: temperatura ambiente e press˜ao atmosf´erica.
Dentre os sistemas cientes de contexto, um dos tipos que mais est˜ao sendo utilizados,
fora do ˆambito dos laborat´orios de pesquisas, s˜ao as aplicac¸˜oes nas quais o contexto de localizac¸˜ao do usu´ario ´e o foco [19]. Na pr´oxima sec¸˜ao, ser˜ao descritas mais caracter´ısticas dos Servic¸os Baseados em Localizac¸˜ao (LBS).
2.3 Servic¸os Baseados em Localizac¸˜ao 10
2.3
Servic¸os Baseados em Localizac¸˜ao
Servic¸os que s˜ao fornecidos baseados em alguma localizac¸˜ao espacial s˜ao chamados de
Servic¸os Baseados em Localizac¸˜ao (LBS) [5]. Alguns exemplos de LBS s˜ao sistemas de
navegac¸˜ao de carros, sistemas de monitoramento de caminh˜oes, entre outros.
Segundo Schiller e Voisard [4], LBS pode ser definido como um servic¸o que integra
localizac¸˜ao ou posic¸˜ao de um dispositivo m´ovel com outras informac¸˜oes, para adicionar valor para o usu´ario.
LBS tem sido uma ´area bastante pesquisada devido ao barateamento dos equipamentos necess´arios para a utilizac¸˜ao destes, como por exemplo, o GPS e smartphones. Al´em disto, os
avanc¸os tecnol´ogicos tˆem permitido cada vez mais uma maior capacidade de armazenamento e processamento em dispositivos m´oveis.
As aplicac¸˜oes LBS podem ser classificadas como do tipo pull ou push, sendo as aplicac¸˜oes do primeiro tipo as que fornecem servic¸os requisitados pelos usu´arios, ou seja,
os usu´arios possuem o controle de quando os servic¸os ir˜ao ser fornecidos. Por outro lado, no servic¸o do tipo push, os usu´arios n˜ao possuem o controle de quando este ser´a fornecido. Um
exemplo de servic¸o do tipo pull ´e o de procura de amigos, no qual o usu´ario pede para o sis-tema localizar algum amigo. Como exemplo de servic¸o push, podem ser citados os servic¸os
de monitoramento de amigos, os quais lanc¸am um alerta quando algum amigo est´a pr´oximo do usu´ario.
Os servic¸os push resultam em um alto prec¸o pela transparˆencia e comodidade oferecida, sendo muito mais caros do que os servic¸os pull. Este alto custo ´e devido `a maior quantidade
de recurso de rede necess´ario, pois a localizac¸˜ao do usu´ario precisa ser atualizada constan-temente. Al´em disto, os servic¸os push possuem a quest˜ao da privacidade do usu´ario, devido
ao monitoramento constante de sua localizac¸˜ao por terceiros.
No momento de criac¸˜ao de aplicac¸˜oes LBS, algumas caracter´ısticas do sistema a ser
implementado devem ser levadas em considerac¸˜ao [5]. Algumas destas s˜ao:
• A aplicac¸˜ao ser´a baseada em servic¸os push ou pull?
• Os perfis dos usu´arios podem ser adquiridos indiretamente ou s´o diretamente? • Quais informac¸˜oes do perfil do usu´ario ser˜ao dispon´ıveis?
2.4 Representac¸˜ao do Conhecimento, Ontologias e Web Semˆantica 11 • Quais os cen´arios poss´ıveis de interac¸˜ao no sistema?
– Requisitante e provedor s˜ao estacion´arios?
– Um ´e estacion´ario e outro n˜ao. Por exemplo, um carro que emite sua
localizac¸˜ao pode ser visto como um provedor e o servidor LBS que consulta essas informac¸˜oes como estacion´ario; e
– Os dois s˜ao m´oveis. Por exemplo, um usu´ario que procura um amigo. • Qual a fonte da informac¸˜ao de localizac¸˜ao?
• Qual o n´ıvel de precis˜ao da localizac¸˜ao ´e necess´ario para a aplicac¸˜ao?
• Ser´a mantido um hist´orico do contexto e, caso seja, este hist´orico ser´a utilizado para
tomadas de decis˜oes futuras?
• Qual o tipo de fonte de informac¸˜ao? – Est´atica: banco de dados; e – Dinˆamica: tempo, tr´afego.
2.4
Representac¸˜ao do Conhecimento, Ontologias e Web
Semˆantica
Nesta sec¸˜ao, ser˜ao abordados conceitos importantes para aplicac¸˜oes cientes de contexto, como a representac¸˜ao do conhecimento, ontologias e Web Semˆantica.
A representac¸˜ao de conhecimento atrav´es de ontologias tem ganhado forc¸as nos ´ultimos anos devido `a influˆencia da Web Semˆantica, que possui como um de seus pilares, a
representac¸˜ao das informac¸˜oes na Web na forma de uma ontologia. Segundo Gruber [20], em
ciˆencia da computac¸˜ao, ontologia define um conjunto de primitivas de representac¸˜ao, com o
qual se modela um dom´ınio de conhecimento, sendo este conjunto formado tipicamente por classes, atributos e relacionamentos.
J´a a Web Semˆantica ´e considerada uma extens˜ao da Web original, na qual a informac¸˜ao ´e dada com um significado bem definido, permitindo que computadores e pessoas trabalhem
2.4 Representac¸˜ao do Conhecimento, Ontologias e Web Semˆantica 12
em cooperac¸˜ao [21]. A Figura2.3apresenta as camadas da Web Semˆantica, como pode ser
observado uma das camadas superiores ´e formada por ontologias, as quais s˜ao respons´aveis
pela representac¸˜ao do conte´udo na Web de forma interpret´avel por homens e m´aquinas. Na camada acima das ontologias est˜ao as regras, que definem como ser˜ao inferidos novos
co-nhecimentos na Web a partir dos j´a conhecidos.
Figura 2.3: Camadas da Web Semˆantica (adaptada de http://www.w3.org/2001/sw).
Em aplicac¸˜oes simples, a escolha de uma representac¸˜ao n˜ao ´e importante, devido `a fa-cilidade de manter um vocabul´ario consistente. Em aplicac¸˜oes complexas como as cientes
de contexto, por´em, existe a necessidade de uma representac¸˜ao mais geral e flex´ıvel. Con-sequentemente, a forma como o conhecimento ´e representado em aplicac¸˜oes cientes de
con-texto deve ser bem definida, sendo este processo conhecido como m odelagem de concon-texto.
O RDFS (RDF Schema) [22] e o OWL (Web Ontology Language) [23] est˜ao entre as
principais linguagens de definic¸˜ao e instanciac¸˜ao de ontologias. RDFS ´e uma extens˜ao
semˆantica do RDF (Resource Description Framework) [24] que ´e uma recomendac¸˜ao W3C
para descrever recursos na Web. A estrutura de qualquer express˜ao RDF ´e uma colec¸˜ao de triplas, cada uma formada por um sujeito, um predicado (propriedade) e um objeto. O RDFS
possui um grande poder de descric¸˜ao, por´em, falta a capacidade de informar caracter´ısticas das classes e propriedades, o que ´e poss´ıvel com OWL. Por exemplo, informar que uma
2.5 Modelagem de Contexto 13
O OWL ´e dividido em trˆes sublinguagens: OWL Lite, OWL DL e OWL Full. A expres-sividade nestas ´e aumentada na ordem apresentada. A OWL Lite ´e a mais simples, sendo
todos os relacionamentos com cardinalidade zero ou um. J´a o OWL DL, permite o m´aximo de expressividade sem perder a completude computacional – todos os v´ınculos s˜ao
garan-tidos de serem computados – e a decidibilidade – as computac¸˜oes terminar˜ao em tempo finito – das m´aquinas de inferˆencia. Enquanto que o OWL Full, apesar de possuir a maior
expressividade, n˜ao possui garantias de decidibilidade.
2.5
Modelagem de Contexto
Um modelo de contexto define os tipos, nomes, propriedades e atributos das entidades
envol-vidas nas aplicac¸˜oes cientes de contexto, como os usu´arios, dispositivos m´oveis, contextos, etc. O modelo tenta prover a representac¸˜ao, busca, troca e interoperabilidade de informac¸˜ao
contextual entre as aplicac¸˜oes.
Strang e Linnhoff [25] realizaram um estudo de comparac¸˜ao entre as principais
aborda-gens para modelagem de contexto. Para tanto, foram considerados os seguintes requisitos:
1. Composic¸˜ao distribu´ıda: capacidade do modelo de ser descrito de maneira dis-tribu´ıda;
2. Validac¸˜ao parcial: facilidade para detecc¸˜ao de conhecimento contextual inv´alido, de acordo com a descric¸˜ao do modelo;
3. Riqueza e qualidade da informac¸˜ao: o modelo de contexto utilizado deve permitir a descric¸˜ao da qualidade e riqueza da informac¸˜ao fornecida, pois esta ´e bastante vari´avel
em aplicac¸˜oes cientes de contexto;
4. Incompletude e ambiguidade: as informac¸˜oes contextuais descrevendo um ambiente,
geralmente, s˜ao incompletas e amb´ıguas, quando envolvem uma rede de sensores. Estes aspectos da informac¸˜ao devem ser cobertos pelo modelo;
5. N´ıvel de formalidade: ´e importante que haja um compreendimento compartilhado dos significados das informac¸˜oes existentes no modelo, o que gera a necessidade de
2.5 Modelagem de Contexto 14
6. Aplicabilidade em ambientes existentes: do ponto de vista da implementac¸˜ao, o modelo de contexto deve ser aplic´avel ao ambiente tecnol´ogico dispon´ıvel para o
de-senvolvimento de aplicac¸˜oes cientes de contexto.
Adotando como crit´erio a estrutura de dados utilizada, as t´ecnicas para modelagem de contexto podem ser classificadas em:
• Modelos Chave-Valor: este modelo ´e a estrutura de dados mais simples para
mode-lagem de contexto. O contexto ´e representado no formato de uma lista de pares de
chaves, como “temperatura”, e valores, como “370
C”. Esta t´ecnica de modelagem foi
utilizada por Schilit et al. [26];
• Modelos Baseados em Esquemas de Marcac¸˜ao: a principal linguagem para a descric¸˜ao das informac¸˜oes contextuais neste modelos ´e o XML (eXtensible Markup Language) [27], a qual organiza estas informac¸˜oes de maneira hier´arquica atrav´es de
tags com atributos e valores. Um dos representantes dos modelos desta categoria ´e o
CSCP [28] que estende o CC/PP da W3C [29];
• Modelos Gr´aficos: Elementos gr´aficos s˜ao utilizados na modelagem feita utilizando
esta t´ecnica. Como exemplos de modelos que utilizam esta t´ecnica temos: o CMP
(Context UML Profile) [30], que utiliza a linguagem UML (Unified Modeling
Lan-guage) para descrever o modelo; e CML (Context Modelling LanLan-guage) [31], que
utiliza ORM (Object Role Modeling) [32];
• Modelos Orientados a Objetos: Esta t´ecnica para modelagem de contexto permite
que sejam aproveitados os principais benef´ıcios das abordagens orientada a objetos,
que s˜ao, a encapsulamento e a reusabilidade. Em Cheverst et al. [33], foi utilizada
uma abordagem de modelagem de contexto orientada a objetos para gerar o modelo chamado de Active Object Model;
• Modelos Baseados em L´ogica: Nesta abordagem os modelos s˜ao descritos atrav´es de
fatos, express˜oes e regras, podendo novos fatos serem derivados a partir do processo de inferˆencia sobre as regras. Como exemplos de modelos que utilizam esta t´ecnica
2.6 Considerac¸˜oes Finais 15 • Modelos Baseados em Ontologia: Esta abordagem utiliza ontologias para descrever
as entidades do sistemas e seus relacionamentos. Esta t´ecnica ´e uma das mais
pro-missoras, devido ao grande poder de descric¸˜ao das ontologias. O Omnipresent [36],
o SOCAM [7] e o FLAME2008 [10] s˜ao bons exemplos de sistemas que utilizam
modelos de contexto baseados em ontologias.
Ainda no trabalho de Strang e Linnhoff [25], foi exposto que os modelos baseados em
ontologias s˜ao os mais expressivos e preenchem todos os requisitos descritos anteriormente,
como pode ser observado na Tabela2.2, na qual ’++’ indica que a abordagem atende
total-mente ao requisito, ’+’ indica que atende parcialtotal-mente e ’-’ que n˜ao atende.
Consequen-temente, uma abordagem baseada em ontologias ´e a mais indicada para a modelagem de contexto.
Tabela 2.2: Comparac¸˜ao entre abordagens para modelagem de contexto (adaptado de [25]).
Abordagens/ Requisitos 1 2 3 4 5 6 Chave-Valor - - - + Esquemas de Marcac¸˜ao + ++ - - ++ + Gr´aficos - - + - + + Orientado a Objetos ++ + + + + + L´ogica ++ - - - ++ -Ontologia ++ ++ + + ++ +
A utilizac¸˜ao de ontologias para a modelagem de contexto tem sido um dos grandes temas estudados por pesquisadores [7][10][37], devido `a necessidade de uma maior expressividade
na modelagem de contexto [9]. No entanto, ainda falta uma padronizac¸˜ao na forma como o
contexto ´e modelado utilizando esta abordagem.
2.6
Considerac¸˜oes Finais
Neste cap´ıtulo, foram apresentados alguns conceitos gerais necess´arios para o entendimento desta dissertac¸˜ao, como a computac¸˜ao ub´ıqua, contexto, representac¸˜ao do conhecimento,
2.6 Considerac¸˜oes Finais 16
sobre aplicac¸˜oes cientes de contexto, onde ´e poss´ıvel obter mais informac¸˜oes sobre o tema. No pr´oximo cap´ıtulo, ser˜ao apresentados alguns trabalhos relacionados.
Cap´ıtulo 3
Trabalhos Relacionados
Neste cap´ıtulo, ser˜ao abordadas algumas ferramentas propostas na literatura para o
desen-volvimento de aplicac¸˜oes cientes de contexto. Ser˜ao observadas nas aplicac¸˜oes suas arquite-turas, contribuic¸˜oes e lacunas. Uma atenc¸˜ao especial foi dada as ferramentas de criac¸˜ao de
aplicac¸˜oes cientes de contexto que possuem o foco no usu´ario final, por ser um dos principais objetivos deste trabalho.
O restante do cap´ıtulo est´a organizado da seguinte forma: na pr´oxima sec¸˜ao, ser´a apre-sentada a plataforma FLAME2008. Na sec¸˜ao seguinte, ser˜ao apreapre-sentadas as plataformas
WASP e Infraware. Na sec¸˜ao 3.3, descreve-se a ferramenta MScape. Na sec¸˜ao seguinte,
´e apresentado o sistema StramSpin. J´a na sec¸˜ao 3.5, apresenta-se o midleware SOCAM.
Na sec¸˜ao 3.6 apresenta a ferramenta iCAP e o framework Context Toolkit. Para finalizar
a lista de trabalhos relacionados, na sec¸˜ao 3.7, ´e apresentado o Omnipresent. Em seguida,
´e apresentada uma comparac¸˜ao entre os trabalhos descritos. Por fim, s˜ao apresentadas as considerac¸˜oes finais deste cap´ıtulo.
3.1
FLAME2008
O FLAME2008 [10] utiliza uma abstrac¸˜ao em relac¸˜ao ao contexto, chamada de situac¸˜ao,
que acontece quando algumas caracter´ısticas do contexto ficam inalteradas durante algum
intervalo de tempo. Devido a esta abstrac¸˜ao, os servic¸os s˜ao chamados de cientes de situac¸˜ao.
O FLAME2008 [10] ´e uma plataforma de servic¸os cientes de situac¸˜ao, desenvolvida para
ser utilizada durante os jogos ol´ımpicos de 2008 em Pequim. Nesta plataforma, ´e utilizado
3.1 FLAME2008 18
um n´ıvel semˆantico para identificar os servic¸os que mais se aproximam das demandas dos usu´arios, que n˜ao necessitam procur´a-los.
Na Figura 3.1, pode ser visualizada a arquitetura do FLAME2008, que ´e formada por
trˆes camadas, sendo a primeira camada formada pelos clientes, a segunda formada pela
pla-taforma de servic¸os e a terceira formada pelos fornecedores de conte´udo. A plapla-taforma ´e composta de um conjunto de servidores, que s˜ao:
Figura 3.1: Arquitetura do FLAME2008 (adaptada de [10]).
• O servidor Log´ıstica de Informac¸˜ao, que implementa os mecanismos de
comunicac¸˜ao push e pull, para o fornecimento de informac¸˜oes e servic¸os, baseado
no casamento semˆantico dos servic¸os com as situac¸˜oes, atrav´es do m´odulo Casamento Semˆantico;
• O servidor Corretor de Conte ´udo, que possui os registros semˆanticos – atrav´es da
ontologia da aplicac¸˜ao – e provˆe acesso aos conte´udos;
• O servidor Perfis e Contextos, que ´e respons´avel por fornecer informac¸˜oes – perfil e
contexto – do usu´ario para a detecc¸˜ao de situac¸˜oes; e
• O servidor Verificador de Servic¸os [38], que ´e respons´avel por fornecer os servic¸os dispon´ıveis na ´area em que o usu´ario est´a inserido e substituir os servic¸os
3.2 WASP e Infraware 19
No FLAME2008, os servic¸os n˜ao s˜ao acionados por regras e sim atrav´es de uma in-ferˆencia semˆantica realizada sobre a descric¸˜ao dos servic¸os e da situac¸˜ao do usu´ario, sendo
analisada a semelhanc¸a destes, para verificar quais servic¸os devem ser oferecidos.
Para habilitar a selec¸˜ao flex´ıvel de servic¸os para os usu´arios em um n´ıvel semˆantico, ´e
necess´aria a descric¸˜ao semˆantica das situac¸˜oes e dos servic¸os oferecidos. Assim, s˜ao utili-zadas ontologias para estas descric¸˜oes, podendo ser realiutili-zadas inferˆencias para a selec¸˜ao de
servic¸os personalizados, que atendam `as necessidades do usu´ario na sua situac¸˜ao atual. Todas as vezes que acontece alguma alterac¸˜ao significante no contexto do usu´ario, ´e
realizada a procura por servic¸os que possuam semelhanc¸a `a situac¸˜ao atual do usu´ario, sendo todos os servic¸os resultantes enviados para o dispositivo m´ovel do usu´ario.
As principais contribuic¸˜oes do FLAME2008 s˜ao: o oferecimento de servic¸os personali-zados baseados na situac¸˜ao do usu´ario sem a necessidade da interferˆencia dele e a utilizac¸˜ao
de ontologias para descrever semanticamente os perfis, servic¸os e situac¸˜oes, possibilitando a inferˆencia para selec¸˜ao de servic¸os.
Uma caracter´ıstica que falta no FLAME2008 ´e o monitoramento de situac¸˜oes de ter-ceiros, principalmente para o prop´osito que a plataforma foi criada – eventos com grande
concentrac¸˜ao de pessoas. Por exemplo, se o usu´ario desejar saber onde est´a uma atleta para pedir um aut´ografo, necessitar´a monitorar o contexto dele.
No FLAME2008, n˜ao h´a a possibilidade do usu´ario se inscrever em algum servic¸o, dessa forma, o usu´ario n˜ao possui o controle sobre os servic¸os fornecidos a ele, com isso, muitos
servic¸os que n˜ao s˜ao do seu interesse s˜ao oferecidos.
No processo de desenvolvimento da plataforma de servic¸os para os Jogos Ol´ımpicos de
Pequim, o FLAME2008 foi renomeado para COMPASS2008, sendo colocado um prot´otipo em execuc¸˜ao e testado com usu´arios [39].
3.2
WASP e Infraware
WASP (Web Architectures for Services Platforms) [9] ´e uma plataforma para servic¸os cientes
de contexto, que oferece o apoio `a construc¸˜ao e execuc¸˜ao dessas aplicac¸˜oes. Na Figura3.2, s˜ao mostrados os trˆes elementos com os quais a plataforma WASP possui relacionamentos, sendo eles:
3.2 WASP e Infraware 20
Figura 3.2: Plataforma WASP e seus relacionamentos (adaptada de [9]).
• Os Provedores de Contexto, que s˜ao respons´aveis por fornecer as informac¸˜oes de
texto provindas de sensores, estruturas computacionais ou outros provedores de con-texto;
• Os Provedores de Servic¸o, que s˜ao entidades que fornecem servic¸os `a plataforma,
havendo a necessidade dos servic¸os serem publicados e registrados; e
• As Aplicac¸˜oes WASP, que s˜ao as aplicac¸˜oes sens´ıveis ao contexto, que utilizam a
plataforma WASP para ter acesso `a assinatura de servic¸os e as informac¸˜oes contextuais dos Provedores de Contexto.
As informac¸˜oes de contexto e os servic¸os s˜ao definidos na plataforma WASP atrav´es de
ontologias, para auxiliar a criac¸˜ao de novos servic¸os e a descric¸˜ao de regras que ativar˜ao os servic¸os dispon´ıveis pelos provedores de servic¸os. O monitoramento do contexto e das regras ´e realizado pela plataforma, sendo algumas vezes necess´ario que informac¸˜oes de contexto
das aplicac¸˜oes sejam fornecidas atrav´es de provedores de contexto para a plataforma (ver
Figura3.3).
Para a descric¸˜ao de regras, a plataforma WASP possui uma linguagem de comunicac¸˜ao
entre as aplicac¸˜oes e a plataforma, para que as aplicac¸˜oes especifiquem como a plataforma deve reagir a um determinado contexto.
Existe uma camada de Privacidade na plataforma WASP, a qual permite um controle so-bre o fluxo de informac¸˜oes provindas dos provedores de contexto e servic¸o, que s˜ao utilizadas
3.2 WASP e Infraware 21
Figura 3.3: Arquitetura da plataforma WASP (adaptada de [9]).
O Infraware [40] [41] ´e uma plataforma que est´a dando continuidade ao projeto iniciado com a plataforma WASP, sendo desenvolvida na Universidade Federal do Esp´ırito Santo. O Infraware pretende estender as funcionalidades da plataforma WASP com o objetivo de
tornar a arquitetura mais flex´ıvel, permitindo a adic¸˜ao de novos servic¸os e a interpretac¸˜ao
num n´ıvel mais abstrato do contexto. Na Figura 3.4, pode ser observada a arquitetura do
Infraware, a qual possui m´odulos adicionais de manipulac¸˜ao semˆantica em relac¸˜ao `a arquite-tura da plataforma WASP, sendo esta semˆantica utilizada, entre outras funcionalidades, para
a composic¸˜ao de servic¸os.
Um dos problemas destes sistemas ´e a falta de uma ferramenta que auxilie a criac¸˜ao
de novos servic¸os e de criac¸˜ao de regras, pois a utilizac¸˜ao de uma semˆantica, atrav´es de ontologias, n˜ao ´e o suficiente para auxiliar na criac¸˜ao de servic¸os e de regras para a aplicac¸˜ao
3.3 MScape 22
Figura 3.4: Arquitetura da plataforma Infraware (retirada de [40]).
3.3
MScape
MScape [42] ´e um projeto da HP, que tem como objetivo o aux´ılio na criac¸˜ao, no
comparti-lhamento e na distribuic¸˜ao de mediascapes por usu´arios de dispositivos m´oveis. Mediascape
´e uma experiˆencia multim´ıdia ciente de contexto que permite acionar conte´udos multim´ıdia baseados no contexto.
Um mediascape pode ser executado em um dispositivo m´ovel que possua a aplicac¸˜ao instalada, sendo um arquivo de m´ıdia apresentado quando determinado contexto acontecer.
A existˆencia de um portal Web torna poss´ıvel o compartilhamento e distribuic¸˜ao dos mediascapes pelos usu´arios, al´em de poderem trocar experiˆencias obtidas no processo de
criac¸˜ao, atrav´es de um f´orum de discuss˜ao.
Na Figura 3.5, podem ser observados os componentes b´asicos de um mediascape, que
s˜ao: a parte l´ogica, as entradas do usu´ario, os sensores e os arquivos de m´ıdia.
Para facilitar o processo de criac¸˜ao de um mediascape por usu´arios, foi desenvolvida
uma ferramenta para auxili´a-los (ver Figura3.6). A ferramenta de construc¸˜ao de mediascape
possui uma interface de construc¸˜ao baseada em regras de contexto. Desta forma, ´e poss´ıvel
criar regras do tipo: quando o usu´ario estiver inserido em uma determinada ´area geogr´afica, ent˜ao ser´a mostrado um determinado v´ıdeo sobre aquele local.
3.3 MScape 23
Figura 3.5: Componentes de um mediascape (adaptada de [42]).
3.3 MScape 24
Os seguintes requisitos foram utilizados para a criac¸˜ao da ferramenta de construc¸˜ao de mediascape:
• Uma linguagem extens´ıvel para descrever o contexto. Existe uma linguagem de
script na ferramenta, com a qual o usu´ario pode manipular as informac¸˜oes recebidas
dos sensores.
• Especificac¸˜ao de eventos contextuais e as suas consequˆencias. Atrav´es da
lingua-gem de script ´e poss´ıvel determinar consequˆencias de acordo com um estado
contex-tual no qual o usu´ario est´a inserido.
• A representac¸˜ao do estado contextual. Com eventos lanc¸ados quando o usu´ario
“en-tra” ou “sai” de um determinado contexto ´e poss´ıvel representar os estados contextuais poss´ıveis e suas consequˆencias.
• O armazenamento e gerenciamento de arquivos de m´ıdia. Arquivos multim´ıdia
podem ser carregados no sistema, para posteriormente serem utilizados na gerac¸˜ao de regras.
• Uma interface de criac¸˜ao que permite n˜ao programadores explorar novos gˆeneros de mediascape. Atrav´es de uma interface visual de criac¸˜ao de regras ´e poss´ıvel que
usu´arios n˜ao programadores consigam criar mediascapes.
• Um emulador para testar as regras criadas. O emulador que acompanha a
ferra-menta de criac¸˜ao possui ferraferra-mentas para simular informac¸˜oes retornadas por um GPS e ativac¸˜oes de bot˜oes no dispositivo, mas para haver o suporte a outro tipo de sensor ´e
necess´ario a adic¸˜ao de um plugin `a ferramenta.
As grandes contribuic¸˜oes do MScape s˜ao: a liberdade oferecida para os usu´arios
cri-arem suas pr´oprias aplicac¸˜oes com uma ferramenta visual; a opc¸˜ao de testar o funciona-mento do mediascape criado em um emulador; e a existˆencia de um portal no qual pode-se
compartilhar e distribuir os mediascapes criados, al´em de ser poss´ıvel a discuss˜ao sobre as experiˆencias na criac¸˜ao.
Apesar da ferramenta de emulac¸˜ao de mediascapes ser uma das grandes contribuic¸˜oes do MScape, esta possui a limitac¸˜ao de s´o permitir a simulac¸˜ao do GPS, n˜ao permitindo a
3.4 StreamSpin 25
Uma caracter´ıstica marcante que falta ao MScape ´e a possibilidade de adic¸˜ao de arquivos multim´ıdia pelo pr´oprio dispositivo m´ovel, podendo assim criar ou alterar mediascapes a
partir do pr´oprio dispositivo m´ovel. Por exemplo, um usu´ario poderia tirar uma foto e gerar um mediascape com essa foto, de forma que, quando o usu´ario estivesse nesta mesma ´area
novamente a foto fosse mostrada.
Outro problema detectado no MScape ´e que a alterac¸˜ao de um mediascape torna-se quase
invi´avel, pois seria necess´ario utilizar a ferramenta de criac¸˜ao de mediascape e novamente adicionar no portal Web. Deste modo, pessoas que j´a haviam baixado o mediascape
desa-tualizado teriam que substituir o mediscape antigo. Al´em disto, o armazenamento de v´arios mediascapes nos dispositivos m´oveis pode n˜ao ser vi´avel, pois o espac¸o de armazenamento
nos dispositivos m´oveis ´e reduzido. Assim sendo, seria mais interessante o armazenamento em um servidor central. Desta forma, ao inv´es de baixar o mediascape para o dispositivo, os
usu´arios iriam execut´a-lo de uma plataforma.
3.4
StreamSpin
O projeto StreamSpin desenvolvido na Universidade de Alborg [43] [13], tem como objetivo
criar um portal onde se concentrem os servic¸os dispon´ıveis para os dispositivos m´oveis, sendo estes servic¸os na sua grande maioria cientes de contexto. Com isso, ´e mantida uma
API para o desenvolvimento dos servic¸os e um sistema de cadastro de usu´arios, os quais podem gerenciar suas inscric¸˜oes nos servic¸os e adicionarem seus pr´oprios servic¸os para a
comunidade.
Na Figura 3.7, ´e apresentada a arquitetura do portal StreamSpin, a qual ´e formada por
trˆes m´odulos: o m´odulo de Servic¸os Web, respons´avel pelo gerenciamento dos servic¸os dispon´ıveis; o m´odulo do S´ıtio Web, respons´avel pelo gerenciamento dos usu´arios no
sis-tema e pela distribuic¸˜ao dos servic¸os; e o N´ucleo, respons´avel pela execuc¸˜ao de casamento semˆantico e gerenciamento da distribuic¸˜ao dos servic¸os.
O grande lema do projeto StreamSpin ´e ser para servic¸os m´oveis o que o YouTube ´e para os v´ıdeos. A grande contribuic¸˜ao do projeto, segundo os autores, ´e facilitar criac¸˜ao e
compartilhamento de servic¸os m´oveis.
3.5 SOCAM 26
Figura 3.7: Arquitetura da plataforma StreamSpin (adaptada de [13]).
um programador, pois s´o ´e fornecida uma API de desenvolvimento e nenhuma ferramenta
para auxiliar na criac¸˜ao do servic¸o. Devido `as grandes dificuldades de se construir uma aplicac¸˜ao ciente de contexto de maneira ad hoc, torna-se quase que invi´avel a criac¸˜ao de
servic¸os pelos usu´arios finais. Al´em disso, para a adic¸˜ao de novos sensores para a captac¸˜ao de novos contextos, ´e necess´ario estender a API fornecida, o que exige experiˆencia do usu´ario
com programac¸˜ao.
O controle de acesso e privacidade ´e quase inexistente. Desta forma, n˜ao h´a a
possibili-dade de um usu´ario acessar o contexto de outro usu´ario.
O fornecimento de mapas ´e outro problema, pois deixa a responsabilidade para o servic¸o
a ser criado, n˜ao existindo um servic¸o padr˜ao de fornecimento de mapas.
3.5
SOCAM
O SOCAM (Service-Oriented Context-Aware Middleware) [7] ´e um intermediador para a
construc¸˜ao de aplicac¸˜oes cientes de contexto, cujo modelo de contexto ´e baseado em ontolo-gia.
Na Figura 3.8, pode ser visualizado o modelo baseado em ontologia, que ´e formado
por dois n´ıveis de hierarquia. No n´ıvel inferior, est˜ao contidas as ontologias de dom´ınio
espec´ıfico do sistema, como por exemplo, os dom´ınios de uma casa e um ve´ıculo. J´a o n´ıvel superior ´e composto da ontologia geral do sistema, que possui conceitos gerais sobre
3.5 SOCAM 27
as outras ontologias. Desta forma, a ontologia de um dom´ınio espec´ıfico selecionada, pode ser alterada dinamicamente. Por exemplo, quando o usu´ario est´a em casa, ent˜ao a ontologia
de dom´ınio selecionada ´e a de uma casa, mas se ele sair da casa e entrar em seu carro, ent˜ao a ontologia selecionada ser´a a de um ve´ıculo.
Figura 3.8: Modelo baseado em ontologia com dois n´ıveis de hierarquia (retirada de [7]).
Na Figura3.9, ´e apresentada a arquitetura do SOCAM, cujos elementos principais s˜ao:
• Provedores de contexto: respons´aveis pela separac¸˜ao de um n´ıvel mais baixo de
sen-soriamento de um n´ıvel mais alto de manipulac¸˜ao de contexto. Os provedores de contexto necessitam ser registrados no Servic¸o de Localizac¸˜ao de Servic¸o, para que
este possa ser utilizado por outros usu´arios.
• Servic¸o de localizac¸˜ao de servic¸o (SLS): servic¸o respons´avel pelo cadastro e
localizac¸˜ao dos provedores de servic¸o.
• Interpretador de contexto: respons´avel pela interpretac¸˜ao de contexto, para
forne-cer um n´ıvel mais alto de abstrac¸˜ao. O interpretador de contexto tamb´em pode ser cadastrado no Servic¸o de Localizac¸˜ao de Servic¸os, para poder ser utilizado por outros
3.6 Context Toolkit e iCAP 28
Figura 3.9: Arquitetura do SOCAM (adaptada de [7]).
• Servic¸os m´oveis ciente de contexto: s˜ao os servic¸os fornecidos ao usu´ario, com ou
sem o controle deste. Por exemplo, um servic¸o de seguranc¸a de ve´ıculo, n˜ao pos-sui controle do usu´ario, que recebe informac¸˜oes sobre as condic¸˜oes de trˆansito nas
suas proximidades. Por outro lado, um servic¸o de localizac¸˜ao de amigos, necessita da requisic¸˜ao do usu´ario para ser fornecido.
As principais contribuic¸˜oes do SOCAM s˜ao: o modelo de contexto de dois n´ıveis hier´arquicos baseado em ontologia, devido ao alto n´ıvel semˆantico dado ao sistema; a
capa-cidade de alterac¸˜ao dinˆamica da ontologia de dom´ınio espec´ıfico de acordo com o contexto; e uma arquitetura orientada a servic¸os, que possibilita a adic¸˜ao de novos servic¸os facilmente.
Por outro lado, a utilizac¸˜ao somente de ontologias n˜ao ´e o suficiente para o auxilio da criac¸˜ao de servic¸os. Al´em disso, o SOCAM n˜ao possui uma interface para os dispositivos
m´oveis, de maneira que, sejam utilizados os servic¸os fornecidos pelo sistema.
3.6
Context Toolkit e iCAP
O Context Toolkit [6] ´e um framework que auxilia na construc¸˜ao de aplicac¸˜oes cientes de
contexto. Para isso, s˜ao utilizados os seguintes conceitos: a separac¸˜ao de preocupac¸˜oes, da
aquisic¸˜ao e uso de contexto; a agregac¸˜ao de contexto e a interpretac¸˜ao de contexto.
Na Figura 3.10, pode ser visualizada a arquitetura do Context Toolkit, que ´e composto
3.6 Context Toolkit e iCAP 29
das informac¸˜oes de contexto; o agregador, que ´e respons´avel por agregar toda informac¸˜ao de contexto de uma entidade; e o interpretadoro, utilizado para abstrair as informac¸˜oes de
contexto.
Figura 3.10: Arquitetura do Context Toolkit (adaptada de [6]).
O Context Toolkit ´e um framework para auxiliar na criac¸˜ao de aplicac¸˜oes cientes de con-texto num n´ıvel mais baixo de abstrac¸˜ao. Dessa forma, necessitando de outras ferramentas
para auxiliar na criac¸˜ao de um sistema mais completo.
Um dos problemas do Context Toolkit ´e a falta de um controle de privacidade das
informac¸˜oes de contexto. Al´em disso, n˜ao existe uma semˆantica para descrever o contexto e as regras.
O Context-Aware Application Prototyper (iCAP) [11] ´e um sistema que permite usu´arios
finais projetarem visualmente aplicac¸˜oes cientes de contexto. O iCAP permite que o usu´ario
descreva uma situac¸˜ao e uma ac¸˜ao associada a esta. Para isso, possui uma interface de criac¸˜ao
de regras de forma visual, a qual utiliza o esquema de casamento de Pane e Myers [44] – que
representa o operador AND na vertical e o operador OR na horizontal.
O iCAP possui uma boa interface com o usu´ario para a prototipac¸˜ao e simulac¸˜ao de
sistemas cientes de contexto pelos usu´arios finais, utilizando o Context Toolkit. Entretanto, foi desenvolvido focado mais na ´area de Casas Inteligentes.
3.7 Omnipresent 30
3.7
Omnipresent
O Omnipresent [8] ´e um sistema ciente de contexto baseado em uma arquitetura orientada a
servic¸o. Na Figura3.11, apresenta-se a arquitetura do Omnipresent que ´e formada por trˆes
camadas:
Figura 3.11: Arquitetura do Omnipresent (adaptada de [8]).
Na camada cliente, o Omnipresent possui duas formas de ser acessado, atrav´es de um navegador Web ou em um dispositivo m´ovel. Algumas funcionalidades podem ser acessadas
nas duas formas de acesso, que s˜ao o monitoramento da localizac¸˜ao de terceiros, a rota entre dois pontos, a alterac¸˜ao do contexto emocional e o status, o acesso de informac¸˜oes de pontos
de interesse, operac¸˜oes de aproximac¸˜ao e deslocamento em um mapa e o recebimento de alertas.
Por outro lado, algumas funcionalidades s´o podem ser acessadas em uma das formas de acesso. Por exemplo, somente no navegador Web ´e poss´ıvel criar regras sobre os estados
contextuais e somente no dispositivo m´ovel ´e poss´ıvel alterar os contextos fisiol´ogicos e de localizac¸˜ao – atrav´es das informac¸˜oes captadas dos sensores.
´
tercei-3.7 Omnipresent 31
ros. As ac¸˜oes podem ser no formato de alertas ou de e-mails, sendo que os alertas podem ser visualizados tanto no dispositivo m´ovel, quanto no navegador Web.
As regras de estados contextuais s˜ao criadas no formato XML respeitando as definic¸˜oes de um XSD, n˜ao havendo uma forma visual de criar as regras. As ac¸˜oes poss´ıveis de uma
regra s˜ao: o lanc¸amento de alertas para o usu´ario desejado ou o envio de um e-mail. Alguns servic¸os s˜ao oferecidos no Omnipresent, sendo eles:
• O Servic¸o de Apresentac¸˜ao: utiliza o iGIS [45] para o fornecimento de mapa e de informac¸˜oes sobre a localizac¸˜ao. Este servic¸o ´e dividido em duas partes a WMS e a
WFS, que seguem os respectivos padr˜oes da OGC [46][47];
• O Servic¸o de Roteamento: servic¸o que fornece o roteamento a partir de dois pontos; • O Servic¸o LBS: monitora os contextos de todos os usu´arios, lanc¸ando alertas de
acordo com as regras criadas no sistema; e
• O Servic¸o de Propaganda: servic¸o para o lanc¸amento de propagandas para o usu´ario
de acordo com suas preferˆencias e contexto.
As grandes contribuic¸˜oes do Omnipresent s˜ao a proposta de uma arquitetura orientada a servic¸o, o monitoramento de diversos tipos de contextos al´em da localizac¸˜ao, a existˆencia de
um Sistema de Informac¸˜ao Geogr´afico no cliente, uma interface de gerenciamento de regras pelo o usu´ario final e o monitoramento do contexto de terceiros.
O Omnipresent, por´em, n˜ao utiliza uma m´aquina de inferˆencia baseada em regras, ele simplesmente compara informac¸˜oes de contexto atuais com os valores monitorados. Al´em
disso, a extens˜ao do modelo de contexto para suportar outros tipos de contextos ´e bastante complicada, uma vez que ´e necess´ario a modificac¸˜ao do c´odigo fonte e adic¸˜ao de servic¸os
Web, que n˜ao seguem um padr˜ao. Outro problema refere-se aos servic¸os, uma vez que n˜ao ´e poss´ıvel adicionar novos servic¸os em tempo de execuc¸˜ao, sendo necess´ario a criac¸˜ao de
stubs1e adic¸˜ao do suporte destes no dispositivo m´ovel.
O modelo de monitoramento de contexto e regras do Omnipresent [36] ao atualizar um
contexto que est´a sendo monitorado, ser˜ao acionados todos que est˜ao escutando as mudanc¸as neste. Entretanto, para a utilizac¸˜ao eficiente deste modelo foi necess´aria a n˜ao utilizac¸˜ao de
3.8 Comparac¸˜ao 32
uma m´aquina de inferˆencia e a simplificac¸˜ao das regras contextuais poss´ıveis no sistema, restringindo as regras a um formato de arquivo XML que segue um XSD que d´a pouca
liberdade na criac¸˜ao das regras, comparada `a complexidade de regras poss´ıveis com o modelo de contexto existente.
Outro problema detectado no Omnipresent ´e que as ac¸˜oes das regras que comp˜oem os servic¸os push s´o permitem enviar e-mail ou mandar um alerta, desta forma, limitando-se a
uma pequena diversidade de servic¸os.
3.8
Comparac¸˜ao
Nesta sec¸˜ao, apresenta-se uma comparac¸˜ao entre os trabalhos relacionados descritos neste
cap´ıtulo. Para esta comparac¸˜ao foram considerados as seguintes caracter´ısticas consideradas relevantes para o prop´osito do trabalho ao qual trata esta dissertac¸˜ao:
1. Modelo de contexto baseado em ontologias. Como descrito na sec¸˜ao2.5, uma
abor-dagem baseada em ontologias ´e a mais indicada para modelagem de contexto, devido `a sua grande expressividade e preenchimento de v´arios requisitos necess´arios para um
modelo de contexto;
2. Extensibilidade do modelo de contexto. A natureza dinˆamica das aplicac¸˜oes cientes
de contexto geram mudanc¸as r´apidas e constantes nos requisitos destas aplicac¸˜oes [48], consequentemente, o modelo de contexto deve se extens´ıvel para diminuir o tempo e
os custos no preenchimento dos novos requisitos;
3. Aquisic¸˜ao de dados provindos de sensores f´ısicos, virtuais e l´ogicos. As aplicac¸˜oes
cientes de contexto podem adquirir as informac¸˜oes contextuais de v´arios tipos de fon-tes diferenfon-tes, gerando a necessidade das ferramentas que almejam dar suporte a estas
aplicac¸˜oes possuam uma forma de aquisic¸˜ao desses v´arios tipos;
4. Interface gr´afica para criac¸˜ao visual de regras contextuais. Para permitir que
usu´arios finais possam criar regras contextuais, existe a necessidade de uma ferramenta visual para este fim;
3.9 Considerac¸˜oes Finais 33
5. Emulador para validac¸˜ao de regras contextuais. Ap´os criar regras contextuais, o usu´ario necessita valid´a-las em um emulador antes de serem submetidas para o
servi-dor; e
6. Comunicac¸˜ao entre os componentes que permita a adic¸˜ao de novas informac¸˜oes
contextuais. Para permitir que o modelo de contexto seja estendido em tempo de
execuc¸˜ao, ´e necess´ario que a comunicac¸˜ao entre os componentes do sistema permita
esta ac¸˜ao.
Na Tabela 3.1, mostram-se quais trabalhos possuem as caracter´ısticas citadas
anterior-mente. Os campos marcados com ’+’ indicam que a ferramenta possui a determinada
fun-cionalidade, os marcados com ’-’ indicam que n˜ao a possuem. Quando alguma ferramenta possui parcialmente alguma funcionalidade, os campos s˜ao marcados com ’+-’.
Tabela 3.1: Comparac¸˜ao entre os trabalhos relacionados.
3.9
Considerac¸˜oes Finais
Neste cap´ıtulo, foram descritos alguns trabalhos relacionados, sendo citadas suas principais vantagens e desvantagens. Em seguida, foi apresentada uma comparac¸˜ao entre os
traba-lhos, levando em considerac¸˜ao algumas caracter´ısticas desej´aveis para um sistema ciente de contexto que permita a personalizac¸˜ao pelo usu´ario final e seja extens´ıvel.
Algumas lacunas, referentes `as caracter´ısticas citadas neste cap´ıtulo, foram detectadas nos trabalhos relacionados. Nenhum dos trabalhos possui uma comunicac¸˜ao que facilite
3.9 Considerac¸˜oes Finais 34
execuc¸˜ao. Al´em disto, somente dois trabalhos possuem uma forma visual de criac¸˜ao de regras contextuais, por´em, estes n˜ao possuem um modelo de contexto baseado em ontologias.
No pr´oximo cap´ıtulo, ser´a apresentado o servidor de contexto do VadeMecum e, no se-guinte, as ferramentas CARE e CARE Emulator, as quais formam a infraestrutura proposta