Escolar Documentos
Profissional Documentos
Cultura Documentos
Orientador:
Julho 2006
Agradecimentos
Aos colegas do projecto CASCOM pelo apoio, motivação, material disponibilizado e pelo
excelente contributo dado nas discussões diversas sobre deste trabalho: António Lopes, Fábio
Calhau, Lino Pereira, Luís Mota, Pedro Pais e Tiago Santos.
À ADETTI no geral pela disponibilização dos meios materiais usados na tese e pelo apoio
dado em diversas ocasiões, e em particular à Ana Rita, Fátima Estevens e Sónia Ferro, por
estarem sempre dispostas a dar apoio aos colegas.
À minha família e aos meus amigos pela compreensão e por estarem sempre ao meu lado
nos momentos cruciais.
ii
Resumo
Esta tese de mestrado foca-se sobre a problemática do contexto nas aplicações,
apresentando uma solução para os problemas relacionados com a captura e processamento de
informação de contexto.
iii
Abstract
This master’s thesis focuses on the problematic of context on applications and presents a
solution for the context information capture and processing problems.
A new vision of context aware computation is introduced by the developed system. This
system applies solutions provided by several platforms to solve different aspects of the
context problematic. All of these solutions are gathered in one single application making the
system response wider than all the rest.
The developed system behaves as a layer of interaction between context producers and
context consumers. This layer is domain independent since context information is dealt with a
high level ontology defined structure.
All the information capture process is solved inside the system. Application development
is simplified since the only concern applications have is what to do with the received context
information.
Through the use of several interfaces for the same functionality, the developed system uses
communication protocols defined by other applications such as agent platforms, Web services
or component based applications. By using these interfaces, the production of translation
mechanisms to adapt application requests and system replies is not necessary.
iv
Glossário
B
Blackboard – Modelo de arquitectura baseado num repositório central proposto por
Winograd [Winograd 2001]
C
CAP – Context-Aware Packet – Pacote trocado numa rede de sensores cientes do contexto
F
FIPA – Foundations of Intelligent Physical Agents – Fundação que emite standards de
interoperabilidade em plataformas de agentes
G
CGMAS – Generic Context Management and Acquisition System – Sistema ciente do
contexto desenvolvido nesta tese
J
JENA – Framework em Java para desenvolvimento de aplicações semânticas
M
Middleware – Camada intermédia de uma aplicação
v
O
OWL – Web Ontology Language – Linguagem de descrição de ontologias
P
Peripheralware – Camada que se situa entre a camada superior e a camada intermédia, e
entre a camada intermédia e a camada inferior de um sistema.
S
sCAP – Smart Context-Aware Packet – Pacote trocado numa rede de sensores cientes do
contexto
SEM – Sistema de Emergência Médica – Serviço responsável por tratar das emergências
médicas de um país
SOAP – Simple Object Access Protocol – Protocolo para intercâmbio de mensagens entre
programas. Geralmente usado para serviços Web (“Web Service”).
U
USDP – Unified Software Development Process – Processo de desenvolvimento de uma
aplicação desenvolvido por Jacobson e seus colegas [Jacobson et al 1999].
vi
W
W3C – World Wide Web Consortium – consórcio de empresas de tecnologia para levar a
Web para o seu potencial máximo, através do desenvolvimento de protocolos comuns e
fóruns abertos que promovem sua evolução e asseguram a sua interoperabilidade
Y
Yellow Pages – Serviço de registo e localização de componentes por propriedades
X
XML Schema – Linguagem que descreve a estrutura e conteúdo de documentos XML.
Usada nesta tese para definir objectos
vii
Índice
Capítulo 1. Introdução································································································ 1
viii
4.2 Descrição da ontologia de contexto ··················································································35
4.2.1 Ontologia base de contexto ·······································································································37
4.2.2 Ontologia de distribuição ··········································································································40
4.2.3 Ontologia de dados ····················································································································40
ix
Vol II – Anexos
x
7.01 Nomes····························································································································LXXII
7.02 Pacotes···························································································································LXXII
xi
Índice de figuras
Vol I – Corpo da Tese
Figura 1 – Arquitectura do sistema de contexto integrado numa plataforma orientada para serviços ................. 6
Figura 2 – Estrutura hierárquica das arquitecturas..............................................................................................16
Figura 3 – Arquitectura Merino ............................................................................................................................18
Figura 4 – Arquitectura WASP ..............................................................................................................................19
Figura 5 – Arquitectura COBrA ............................................................................................................................21
Figura 6 – Arquitectura Contex Tailor ..................................................................................................................23
Figura 7 – Diagrama de casos de utilização da aplicação de emergência médica...............................................29
Figura 8 – Diagrama de use cases do GCMAS .....................................................................................................30
Figura 9 – Classificação do contexto ....................................................................................................................37
Figura 10 – Ontologia base de contexto ................................................................................................................38
Figura 11 – Visão geral da arquitectura do GCMAS ............................................................................................45
Figura 12 – Componentes da arquitectura do sistema ..........................................................................................49
Figura 13 – Comunicação interna entre componentes ..........................................................................................64
Vol II – Anexos
Figura 14 – Noções de Contexto.............................................................................................................................. I
Figura 15 – Classificação do Contexto...................................................................................................................II
Figura 16 – Representação tridimensional do contexto ...................................................................................... VII
Figura 17 – Contextor......................................................................................................................................... VIII
Figura 18 – Modelo de contexto com associações e dependências ........................................................................ X
Figura 19 – Representação do modelo conceptual num diagrama de use cases ...................................................XI
Figura 20 – Exemplo de contexto centrado na actividade.................................................................................. XIV
Figura 21 – Exemplo de contexto geral e contexto específico de uma actividade ................................................XV
Figura 22 – Localização do "Peripheralware" numa arquitectura baseada em serviços ................................XVIII
Figura 23 – Blocos de pré e pós processamento................................................................................................. XIX
Figura 24 – Modelo de contexto do cenário ....................................................................................................XLVII
Figura 25 – Exemplo de um ficheiro de configuração........................................................................................ LIV
Figura 26 – Interfaces do adaptador de sensor para pesquisas de contexto ........................................................LV
Figura 27 – Ficheiro de configuração do arranque do sistema ......................................................................... LVI
Figura 28 – Interface de ontologias..................................................................................................................LVIII
Figura 29 – Objectos genéricos de pesquisa de informação ................................................................................LX
Figura 30 – Interfaces de pesquisa .......................................................................................................................LX
Figura 31 – Interfaces do repositório ...............................................................................................................LXIII
Figura 32 – Interfaces do componente de eventos............................................................................................ LXIV
Figura 33 – Protocolos de interacção de pesquisa e armazenamento de contexto .......................................... LXVI
Figura 34 – Protocolo de subscrição de eventos .............................................................................................LXVII
Figura 35 – Protocolo de pesquisa de contexto, visão de alto nível.................................................................. LXX
xii
Figura 36 – Protocolo de pesquisa de contexto, comunicação real entre componentes .................................. LXXI
Figura 37 – Árvore de pacotes....................................................................................................................... LXXIII
Figura 38 – Registo da aplicação de armazenamento de contexto no sistema...........................................LXXXVII
Figura 39 – Registo da aplicação de pesquisa de informação ..................................................................LXXXVIII
Figura 40 – Registo mostrado pelo adaptador de sensor aquando uma pesquisa ....................................LXXXVIII
Figura 41 – Código da aplicação de pesquisa usada no teste............................................................................ XCI
Figura 42 – Registo da aplicação de pesquisa de informação ........................................................................... XCI
Figura 43 – Registo mostrado pelos adaptadores de sensor aquando a pesquisa ............................................XCII
Figura 44 – Registo da aplicação XSP de armazenamento de contexto no sistema ..........................................XCII
Figura 45 – Registo da aplicação XSP de pesquisa de informação ................................................................ XCIII
Figura 46 – Registo da aplicação de pesquisa de informação usando a interface JINI.................................. XCIII
Figura 47 – Código da aplicação de armazenamento em XSP.......................................................................... XCV
Figura 48 – Código da aplicação de pesquisa em XSP .................................................................................. XCVII
Figura 49 – Pesquisa inicial à informação dos sensores............................................................................... XCVIII
Figura 50 – Registo da aplicação que faz pesquisa sobre histórico de contexto..............................................XCIX
Figura 51-Extracto do código da aplicação de pesquisa de histórico.................................................................. CI
Figura 52 – Registo da aplicação que faz a pesquisa a dois sensores ...............................................................CIII
Figura 53 – Registo mostrado pelos adaptadores de sensor aquando a pesquisa .............................................CIII
Figura 54 – Registo obtido pela aplicação de pesquisa ...................................................................................... CV
Figura 55 – Registo dos adaptadores de sensor aquando a sua inserção no sistema e durante a pesquisa ...... CVI
Figura 56 – Definição da classe de sensor de localização por agenda.............................................................CVII
Figura 57 – Representação do objecto devolvido pelo sensor de localização por agenda ...............................CVII
Figura 58 – Registo das aplicações usadas para o teste de disponibilidade de informação no sistema ............ CIX
Figura 59 – Exemplo do lançamento de um sensor para teste de tempo de acesso............................................ CXI
Figura 60 – Resultados do teste ao tempo de acesso para um sensor sem histórico .......................................... CXI
Figura 61 – Resultados do teste ao tempo de acesso para dez sensores sem histórico ...................................... CXI
Figura 62 – Resultados do teste ao tempo de acesso para vinte sensores sem histórico...................................CXII
Figura 63 – Resultados do teste ao tempo de acesso para um sensor com histórico ........................................CXII
Figura 64 – Resultados do teste ao tempo de acesso para dez sensores com histórico.....................................CXII
Figura 65 – Resultados do teste ao tempo de acesso para vinte sensores com histórico ..................................CXII
Figura 66 – Ontologia de distribuição do contexto usada nos exemplos .........................................................CXVI
Figura 67 – Ontologia de dados do contexto usada no GCMAS .................................................................... CXVII
xiii
Índice de tabelas
Vol I – Corpo da Tese
Vol II – Anexos
Tabela 9 – Descrição dos Use Cases da aplicação do cenário e do sistema desenvolvido ........................... XXVIII
Tabela 10 – Descrição das entidades identificadas .....................................................................................XXXVIII
Tabela 11 – Relação entre pacotes e componentes........................................................................................ LXXIII
xiv
Capítulo 1. Introdução
Quando duas pessoas comunicam entre si existe uma quantidade de informação implícita
que nunca é transmitida directamente entre os intervenientes. Essa informação é denominada
de contexto.
A temática do contexto é abordada desde o tempo dos filósofos gregos que tentaram criar
uma definição no campo da linguística. Contexto é o conjunto de condições que influenciam a
compreensão e geração do comportamento linguístico. A conversação entre pessoas tem como
base um determinado contexto que será alterado ao longo desta.
1
No entanto, a passagem desta definição para o domínio da informática não pode ser feita
de maneira simples, visto que as formas de comunicação entre os vários componentes da
aplicação e entre a aplicação e o exterior são muito limitadas. Para aumentar a capacidade de
uma aplicação aceder a informação contextual são usados sensores que fornecem vários
parâmetros do meio onde a aplicação e os seus utilizadores se encontram.
Para facilitar a comunicação entre sensores e aplicações são usados sistemas que adaptam e
modelam as informações retiradas destes. Por modelação entende-se a forma como os
sistemas representam a informação extraída dos sensores ou de outras fontes. Essa
representação pode ser feita por intermédio de uma ontologia que demonstra a estrutura dessa
informação.
Este processo permite que as aplicações que necessitam de informações de contexto não
precisem de se preocupar com a forma como este é obtido. Os sistemas de captura e
eventualmente de gestão de informação de contexto tratam de todo o processo de aquisição de
informação de contexto e de registo de sensores.
2
informação sensorial por parte das aplicações como também o acesso a informações
fornecidas ao sistema por essa ou por outras aplicações. O sistema será denominado como
GCMAS (“Generic Context Management and Acquisition System”)
Outro dos problemas é o facto de haver várias soluções diferentes para a problemática do
contexto, tal como é demonstrado no Capítulo 2. Cada autor apresenta uma solução para
resolver os problemas encontrados no desenvolvimento dos sistemas de contexto que
funcionam de acordo com a sua visão do problema. Ao se fazer isto está-se a ignorar partes da
problemática geral do contexto. Não foi ainda possível, no entanto, integrá-las todas, para que
se crie um sistema de contexto que aborde todos os aspectos da problemática da computação
ciente do contexto.
O GCMAS usa propostas de vários autores, integrando-as num sistema genérico, adaptável
a vários cenários onde o uso de contexto seja essencial para o aumento da eficiência e eficácia
das aplicações. Aspectos inovadores são também introduzidos pelo sistema.
A mais importante inovação é o uso de uma nova definição de contexto que melhor se
adapta àquilo que se entende como contexto numa aplicação. Esta tem em conta que as
informações de contexto são obtidas por um mecanismo que fornece uma quantidade limitada
de informação contextual referente a uma entidade. Esta limitação é imposta pelo número de
sensores ou informações fornecidas pela aplicação ou por terceiros para essa entidade.
3
O uso de ontologias permite que se possa aceder a informação de contexto de forma
independente dos sensores e de outras fontes de informação, e facilita a introdução de vários
tipos de sensores sem que seja necessário redefinir o sistema ou as aplicações que o
consultam.
Esta definição de contexto é no entanto muito genérica fazendo com que seja impossível
logo ao início separar o contexto da restante informação de estado que deve ser transmitida na
interacção. A definição também não permite distinguir a informação de contexto de outra
informação, em termos do tipo de processamento adequado para cada uma delas.
A definição proposta nesta tese tem como base o contexto relativo a uma determinada
interacção entre duas ou mais entidades. Cada entidade está associada a um sistema de
contexto onde a informação contextual pode ser obtida.
4
O tema desta tese de mestrado deu origem a um artigo publicado na YR-SOC (“First
European Young Researchers Workshop on Service Oriented Computing”), o qual está
apresentado no Anexo X.
O sistema desenvolvido nesta tese será integrado numa aplicação de agentes baseadas em
serviços electrónicos disponíveis através da Internet (“on-line”). Esta integração permite a
introdução do contexto na área dos serviços electrónicos.
Relativamente à ontologia a ser usada, esta pode ser actualizada quando novos sensores são
adicionados ao sistema ou pelas aplicações que guardam informações de contexto no
repositório. Isto permite a actualização da ontologia enquanto o sistema está em execução.
5
Como este é acedido por várias aplicações, torna-se necessário definir várias interfaces,
adequadas aos vários tipos de aplicações. O leque de aplicações varia desde agentes até
aplicações baseadas em componentes. Cada uma das interfaces definidas traduz os pedidos de
pesquisa, registo e fornecimento de contexto enviados pelas aplicações para uma linguagem
interna do sistema de contexto. Para além do leque de aplicações abrangido pelas interfaces
desenvolvidas nesta tese, outras interfaces podem ser facilmente adicionadas.
Aplicações que solicitem informações que requeiram, por exemplo, uma agregação
complexa de informações de vários sensores não o poderão fazer directamente no sistema.
Para tal recorre-se às extensões definidas para o sistema.
6
O interpretador de contexto possui ferramentas de adaptação da informação de contexto,
raciocínio e agregação de contexto, implementadas do lado da aplicação que usa o sistema.
Sendo um módulo adicional, o interpretador de contexto comunica directamente com os
elementos internos do sistema.
Isto permite que a organização interna e os mecanismos de registo de sensores possam ser
alterados sem afectar as aplicações que acedem ao sistema.
Para avaliar o sistema desenvolvido nesta tese e verificar a sua aplicação ao cenário
proposto são considerados vários critérios de avaliação. Estes são definidos para demonstrar
vários aspectos do sistema aplicados ao cenário proposto. Os critérios serão avaliados usando
exemplos retirados do cenário de demonstração que provem a satisfação do critério. Os
critérios definidos para avaliar o sistema desenvolvido são os seguintes:
7
• O GCMAS deve trazer melhorias à computação ciente do contexto relativamente a
outros sistemas similares.
8
No capítulo 3 (Análise do Sistema) procede-se à descrição do cenário proposto nesta tese e
posterior identificação das interacções existentes no cenário. A análise do sistema continua
com a descrição dos diagramas de casos de utilização (“use cases”) criados a partir do
cenário. Apresenta-se o diagrama com a visão geral do cenário da aplicação, seguido do
diagrama de casos de utilização do GCMAS. O capítulo termina com a apresentação dos
requisitos recolhidos dos diagramas de casos de utilização.
9
Capítulo 2. Estado Actual dos Conhecimentos
10
Yau e Karim 2001] que investigam a forma como o contexto pode ser útil no melhoramento
de serviços e na criação de novos serviços nas redes móveis das próximas gerações.
Um desses projectos é o WWI Ambient Networks [Ambi 2004]. Este projecto irá criar
soluções para além da terceira geração, promovendo uma rede escalável e de baixo custo que
permite um acesso fácil aos serviços disponibilizados. Estas soluções incluem o uso da
dependência no contexto para a selecção da melhor ligação, serviços de localização e
orientação geográfica entre outros.
Neste capítulo são apresentadas em primeiro lugar algumas das definições de contexto
dadas por vários autores. Segue-se uma descrição das soluções encontradas para a detecção de
contexto, a sua modelação e processamento. Seguidamente, descrevem-se algumas das
arquitecturas desenvolvidas para lidar com contexto. Finalmente, apresentam-se comentários
finais sobre a matéria.
11
Linguistas e filósofos fizeram um grande esforço para identificar os vários elementos do
contexto que dão significado às palavras. Ao se tentar passar o contexto para o domínio da
informática está-se a trabalhar com a complexidade do conhecimento humano [Winograd
2001]. Por essa razão, vários autores criaram as suas próprias definições do que é o contexto
nas suas aplicações, o que levou a diferentes abordagens para adquirir informação do meio
ambiente.
Winograd [Winograd 2001] define o contexto como sendo não só as estruturas de dados no
sistema operativo (tais como janelas ou aplicações), como também algo mais para além da
aplicação que está a ser usada. Contexto é um termo operacional; algo é considerado contexto
se for usado em alguma iteração.
Para Schilit e Theimer [Schilit e Theimer 1994] o contexto consiste das identidades das
pessoas, dos objectos próximos da aplicação assim como as suas mudanças para além da
simples localização.
A definição de contexto mais aceite pela comunidade científica é a de Dey e Abowd [Dey
e Abowd 1999] onde se refere que o contexto é definido como qualquer informação que
caracterize uma situação ou entidade.
Segundo Schmidt e seus colaboradores [Schmidt et al 1998]., o contexto pode ser dividido
em duas categorias, factores humanos e ambiente físico. Cada uma destas categorias pode ser
por sua vez dividida em três subcategorias: Utilizador, ambiente social e tarefa, para os
factores humanos; e localização, infra-estrutura e condições, para o ambiente físico.
12
uma melhor compreensão e limitação daquilo que é realmente a informação de contexto. As
restantes definições introduzem factores importantes que podem ser considerados como
contexto para além da simples localização. No entanto, sozinhas não conseguem abranger
toda a dimensão do contexto excepto a definição proposta por Dey e Abowd. Esta abrange a
dimensão do contexto mas no entanto peca por ser demasiado generalista, considerando quase
toda a informação como sendo de contexto. Nem sempre toda a informação do ambiente que
envolve a aplicação é contexto. Muitas das vezes a decisão de considerar ou não uma
determinada informação como contexto é uma tarefa de desenho.
Tal como existem várias definições para o contexto também existem várias
implementações e modelos para lidar com este.
A fase de recolha normalmente está associada aos sensores. Grande parte da informação de
contexto é adquirida de sensores implementados em hardware e software. Várias abordagens
lidam com a informação adquirida por estes sensores, trazendo o entendimento da natureza da
informação de contexto em primeiro lugar. Uma visão mais aprofundada destas abordagens
encontra-se descrita na secção 1.02 do Anexo I.
O contexto capturado pode ou não variar ao longo do tempo. Segundo Henricksen e seus
colaboradores [Henricksen et al 2002], a informação de contexto é considerada estática
quando não varia muito ao longo do tempo. A relevância da variação do contexto diz respeito
aos métodos utilizados no seu armazenamento.
13
Durante a captura, há que ter em conta os erros e os atrasos introduzidos pelo
processamento desta informação. Uma forma de evitar esses erros é recorrendo à fusão de
dados [Gellersen et al 2002].
A organização do contexto pode ser realizada segundo vários aspectos. O contexto pode
ser visualizado em várias dimensões tais como o ponto de vista dos dispositivos, das
aplicações, da localização, entre outros. A forma como o contexto é extraído (de sensores de
hardware ou de software) também representa um aspecto do contexto [Goslar et al 2003].
Das soluções propostas nas abordagens descritas na secção 1.02 do Anexo I, conclui-se
que propostas como as de Anagnostopoulos e seus colegas [Anagnostopoulos et al 2004] e de
Christopoulou e os seus colaboradores [Christopoulou et al 2004] podem servir como ponto
de partida para o desenvolvimento de um sistema ciente do contexto. Estas identificam os
principais aspectos a focar num sistema deste género.
14
A proposta de Anagnostopoulos e seus colegas define que o contexto deve ser representado
num esquema de classes com associações. Estas ligam os elementos de contexto e lidam tanto
com contexto dinâmico como com contexto estático. A proposta define que para além destas
associações o modelo de contexto deve permitir dependências.
15
Um sistema pode ser também apresentado como uma camada intermédia numa rede de
serviços [Ritchie 2002]. Isto permite aplicar a dependência do contexto em serviços que não
estejam preparados para lidar com o contexto tal como demonstrado na Figura 22 presente no
Anexo I. Toda a parte do processamento de informação de contexto será feita por essa camada
intermédia de forma transparente para os serviços. Os processos relativos ao contexto são
efectuados pela camada intermédia.
16
Este pode ser representado num modelo de dados simples, num modelo semelhante ao
orientado por objectos ou numa ontologia [Anagnostopoulos et al 2004]. A Figura 2
representa de forma genérica estes dois níveis das arquitecturas de sistemas de contexto.
Não existe um ponto de controlo central, sendo os sensores que tomam conhecimento dos
seus vizinhos. Um sensor só acrescenta informação de contexto num pacote que recebe se esta
tiver alguma similaridade com o contexto que este contém.
Cada pacote está organizado em três partes: o plano de recolha, o contexto provável e o
caminho de recolha. O plano de recolha é um plano baseado num modelo inicial que depois é
adaptado cada vez que um pacote passa por um sensor. O contexto provável é a lista de
informações recolhidas do sensor. O caminho de recolha representa a lista de sensores já
visitados.
Depois de passar por todos os sensores definidos no plano de recolha os pacotes são
enviados directamente ao utilizador que os requisitou. Este depois dará o tratamento que
quiser à informação. Uma descrição mais aprofundada desta arquitectura encontra-se na
secção 1.04 do Anexo I.
17
2.3.2 Arquitectura Merino
Esta arquitectura, apresentada por Kummerfeld [Kummerfeld et al 2003], classifica
sensores por capacidades. Estes podem ser normais, sensores inteligentes e agentes de
ambiente. É definido também o modelo do utilizador e o repositório. Esta arquitectura está
representada na Figura 3.
Sensores que estejam em camadas mais altas produzem informação de mais alto nível,
promovendo uma visão mais complexa do contexto. Os sensores nas camadas mais baixas
limitam-se a recolher informações do ambiente.
Uma descrição mais aprofundada desta arquitectura encontra-se na secção 1.04 do Anexo I.
18
2.3.4 Arquitectura WASP
A arquitectura WASP (“Web Architectures for Service Platforms”) [Costa et al 2003] define
um ambiente de desenvolvimento genérico que suporta a execução de serviços móveis com
dependência do contexto (Figura 4). A ideia base desta arquitectura é ocultar a complexidade
introduzida pela manipulação do contexto. Isto consegue-se usando módulos de interpretação
que oferecem serviços de dependência no contexto às aplicações. Esses módulos reúnem a
informação de contexto e disponibilizam-na ao resto da plataforma. Esta arquitectura tem
presente apenas o nível operacional visto que lida apenas com desafios de desenho da
aplicação.
Para obter contexto mais complexo, diferentes entidades fornecedoras de contexto devem
partilhar a mesma representação contextual.
19
A arquitectura apresentada permite a uma aplicação obter informação de contexto de uma
forma transparente. Os problemas de manipulação de contexto são resolvidos dentro desta
arquitectura. No entanto, a parte relacionada com a captura da informação de contexto terá de
ser tratada pelos serviços que fornecem essa informação. A ideia de ocultar a complexidade
do processamento da informação de contexto introduzida por esta arquitectura pode ser usada
para os objectivos desta tese.
Para que esta arquitectura funcione é definida uma colecção de ontologias para modelar o
contexto, um modelo partilhado do contexto é uma linguagem declarativa de políticas que os
utilizadores e dispositivos poderão usar para impor limitações no acesso a informação
protegida. Esta linguagem de políticas permite também aos utilizadores controlar as suas
informações de contexto. A arquitectura CoBrA usa o OWL [W3C 2004] como linguagem de
ontologia.
20
Figura 5 – Arquitectura COBrA
As soluções propostas por esta arquitectura são ideais para redes de agentes. O uso de um
agente como mediador de contexto permite que a comunicação desta arquitectura com outras
arquitecturas de agentes possa ser feita usando directamente uma linguagem de comunicação
de agentes.
A distribuição do mediador de contexto por vários domínios permite uma maior robustez
do sistema, visto que a falha de um dos mediadores não põe em causa o funcionamento do
resto do sistema. A ideia de mediador de contexto proposta nesta solução é a mais adaptada
para os objectivos desta tese, no entanto tem como desvantagem o facto de as aplicações
precisarem de conhecer a linguagem de comunicação de agentes e respeitar os protocolos de
comunicação. A aquisição do contexto é da responsabilidade do mediador de contexto, no
21
entanto se se usarem redes de sensores, grande parte dessas funcionalidades seria distribuída.
Essa distribuição iria trazer uma maior robustez à arquitectura.
Cada padrão é constituído por uma condição, uma pré-condição, um nível de semelhança
entre padrões e um suporte. As pré-condições e as condições definem conjuntos de eventos,
onde cada evento representa uma instância dos atributos do contexto.
22
Figura 6 – Arquitectura Contex Tailor
23
flexível o suficiente para permitir a introdução de vários tipos de informação de contexto e
sensores. A solução da arquitectura WASP permite apenas ocultar o processo de manipulação
de informação. Estas arquitecturas mostram soluções diferentes para lidar com o contexto. No
entanto em nenhuma delas se refere directamente o uso de redes de sensores. Em todas elas os
sensores são referidos de uma maneira geral, não havendo diferenciação entre sensores
simples, sensores inteligentes e redes de sensores. Também não é feita nenhuma referência
aos pacotes gerados pelas redes de sensores, assumindo-se assim que estes não são tratados
nestas arquitecturas.
A solução desenvolvida nesta tese terá como base tanto as soluções apresentadas nestas
arquitecturas tendo também em atenção a camada dos sensores. A arquitectura proposta nesta
tese terá de estar ciente da existência de vários tipos de sensores. Estará adaptada a receber
tanto informações simples enviadas por sensores normais, como informações mais complexas
e até mesmo pacotes gerados por redes de sensores e sensores inteligentes.
Esta tese irá contribuir para a criação de sistema de dependência do contexto que tenta
englobar os aspectos focados nesta revisão. Este sistema será baseado numa arquitectura
distribuída e organizada em camadas. Consegue-se assim separar os métodos de captura de
contexto dos métodos de processamento e distribuição do mesmo. A captura seria feita
usando redes de sensores que auxiliariam na captura de contexto. Será usada uma infra-
estrutura com repositório que permita guardar de forma eficiente informações de histórico dos
sensores por um determinado período de tempo. Os sensores serão tratados como
24
componentes para permitir uma mais fácil integração destes na arquitectura. O acesso à
informação de contexto por parte das aplicações poderá seguir um modelo de agentes
proposto na arquitectura CoBra, ou um modelo de infra-estrutura acedido por uma API.
Alguns dos pontos em comum apresentados nas várias propostas tais como o uso de
ontologias para representação da informação de contexto e a utilização de componentes
distribuídos estarão também presentes no sistema proposto.
25
Capítulo 3. Análise do Sistema
Para considerar uma informação como sendo contexto é necessário definir em primeiro
lugar o que é contexto. Esta definição tem de ser abrangente não só para todo o cenário como
também para outros possíveis cenários.
A definição usada nesta tese permite determinar de forma concisa o que é considerado
contexto e o que é informação necessária para realizar uma determinada acção. Contexto é
26
toda a informação que não seja necessária para efectuar uma acção mas que no caso de existir
melhora os resultados dessa acção.
27
decide pedir auxílio ao sistema de emergência médica finlandês (3). Este obtém informação
dos sintomas de Bob e procura um sistema de diagnóstico médico. Este sistema é contactado
para determinar as causas possíveis dos sintomas de Bob (4). O Sistema de emergência
médica procura então qual o centro médico mais próximo de Bob que seja capaz de lidar com
os seus sintomas. Este aconselha-o a dirigir-se ao hospital mais próximo. O sistema pode
aconselhar também uma outra clínica especializada no tratamento de doenças com esses
sintomas que esteja próxima do utilizador, baseando a procura não só na localização de Bob
como também nos sintomas (5). Com essa informação, Bob usa a aplicação no seu PDA para
calcular o percurso entre a sua localização e o centro de saúde indicado. Esta informação
pode-lhe ser disponibilizada num mapa, número de telefone de uma central de táxis ou uma
ligação via transportes públicos (6). Se o centro de saúde possuir a tecnologia necessária
será informado da chegada do utilizador para que se possam fazer alguns preparativos (7).
Depois de chegar ao centro de saúde, Bob liga o seu PDA à rede local do centro, transfere
os seus dados gerais para o sistema de informação do centro de saúde (8). Ao ser atendido
pelo médico, este verifica que necessita de recolher mais informações sobre o paciente. Essas
informações poderão ser resultados de análises ou outros diagnósticos. Bob usa novamente o
seu PDA para recolher essas informações do seu relatório médico. Este relatório pode ser
constituído por informação proveniente de várias fontes (9). Após aprovação do utilizador, os
dados são transmitidos para o seu PDA. Caso o formato dos dados do sistema do centro
médico seja diferente, será necessário efectuar uma conversão (10). Depois de convertida, a
informação é transmitida para o computador do médico. Com esta nova informação o médico
será capaz de tratar Bob de forma conveniente.
28
- O serviço de descoberta de serviços tem como função descobrir os serviços requisitados
pelo utilizador. O serviço de comparação de serviços compara as descrições dos vários
serviços, sendo um componente essencial para o funcionamento da descoberta de serviços.
Para ambos os serviços podem ser considerados como elementos de informação de contexto
as restrições impostas por alguns serviços, a limitação do número de serviços devolvidos e a
indicação da topologia da rede.
29
O diagrama da Figura 7 representa os actores que participam na aplicação e as suas
principais características. O GCMAS encontra-se representado no caso de utilização 6.
30
A subscrição de eventos consiste na criação de alertas que avisam a aplicação quando o
contexto é alterado.
Uma descrição mais detalhada de cada um dos casos de utilização e actores representados
nos diagramas da Figura 7 e Figura 8 podem ser consultados na secção 2.02 do Anexo II.
Os requisitos não funcionais são requisitos acessórios que no caso de não serem cumpridos
não comprometem o funcionamento da aplicação. Estes requisitos estão normalmente
associados à interface gráfica e às funcionalidades opcionais do sistema. A Tabela 1 apresenta
os requisitos do sistema desenvolvido. Uma descrição mais pormenorizada destes requisitos
pode ser encontrada na secção 2.03 do Anexo II.
31
Capítulo 4. Ontologia do Contexto
A ontologia base parte do princípio que a declaração do contexto num cenário é feita por
entidades de contexto e por elementos de informação de contexto. A ontologia base de
contexto é única, servido como estrutura para a representação do contexto de um cenário.
32
A distribuição do contexto de um cenário é feita através da ontologia de distribuição de
contexto. Esta é construída segundo as regras da ontologia base e determina como o contexto
se encontra distribuído pelas entidades de contexto e pelos elementos de informação de
contexto.
Uma terceira ontologia é usada para especificar o tipo de dados que caracteriza a
informação de contexto. Esta terceira ontologia é definida numa linguagem mais próxima das
linguagens orientadas por objectos e serve de ponte entre a estrutura ontológica do contexto e
a representação orientada por objectos das aplicações.
33
Segundo a metodologia proposta por Dey e seus colaboradores [Dey et al 2001], o passo a
tomar após obtenção de uma definição abrangente de contexto é a identificação dos elementos
presentes no cenário de aplicação do sistema. Isto permite determinar as entidades e os
elementos de informação de contexto.
O modelo de contexto é construído com base nestas informações. Este é uma representação
da estrutura da informação de contexto usada no sistema. Aplicações que queiram consultar o
sistema usam este modelo como referência para identificar a informação que queiram
pesquisar.
O uso de uma estrutura onde aplicações e sensores reconhecem qual a informação que
procuram ou qual a informação que fornecem, torna um sistema de contexto extensível a
qualquer situação, desde que esta possa ser descrita nessa estrutura. Das soluções
apresentadas por vários autores (ver Capítulo 2), o uso de ontologias revelou-se aquela que
permite uma maior integração com aplicações externas. O uso de ontologias permite uma base
única reconhecida tanto por aplicações como sensores [Christopoulou et al 2004].
Para o sistema desenvolvido nesta tese, o GCMAS (“Generic Context Managment and
Aquisition System”), esta é a solução ideal, pois o seu funcionamento baseia-se na troca de
informação entre aplicações e sensores. A linguagem usada para definir a ontologia do
sistema é o OWL (“Web Ontology Language”) [W3C 2004], a qual foi aprovada pelo W3C1.
A última versão do OWL divide-o em três sub linguagens. A versão mais simples (“OWL
Lite”) permite o acesso às funcionalidades primárias da linguagem. Com esta versão é
possível criar hierarquias de classes e restrições simples. A versão de descrição lógica (“OWL
DL”) permite o uso total da expressividade do RDF [W3C 2004a], uma outra linguagem de
representação de ontologias, garantindo que a inferência na ontologia termina num tempo
razoável. Para que tal aconteça são impostas algumas restrições no uso de certas capacidades
da linguagem
1
www.w3.org
34
A versão mais completa (“OWL full”) permite o uso de todas as capacidades da linguagem.
A expressividade desta linguagem pode tornar o processo de inferência na ontologia muito
complexo não sendo garantida a sua terminação em tempo razoável.
Uma ontologia OWL válida criada com a versão mais simples é também válida do ponto
de vista das outras versões mais complexas. Uma ontologia OWL válida criada com a versão
de descrição lógica é também válida para a versão mais completa do OWL.
De maneira a garantir a compatibilidade das ontologias criadas para o sistema, este assume
que todas estão descritas na versão mais completa do OWL. Ao se assumir o uso de uma
versão mais simples do OWL as descrições da ontologia do sistema ficariam limitadas às
descrições compatíveis com estas versões. Descrições que requeressem parâmetros mais
avançados do OWL não poderiam ser usadas no sistema.
Visto que a ferramenta usada para a integração das ontologias também usa a versão mais
completa do OWL a utilização desta versão torna-se óbvia. Apesar de tornar o processo de
inferência mais complexo as relações discriminadas na ontologia do contexto são simples não
implicando grandes esforços de inferência.
Para tal, esta não pode estar descrita directamente no código da aplicação (“Hard Coded”).
A ontologia tem de ser carregada de um repositório exterior (e.g., um ficheiro) que permitia a
sua fácil alteração. A sua estrutura tem de ser extensível de maneira a permitir a adição de
nova informação sem necessidade de grandes alterações. A nova ontologia deve também ser
compatível com aplicações que usem a antiga ontologia.
Consequentemente, a ontologia de contexto tem de possuir uma base comum para toda a
informação de contexto. Esta base é expressa como uma ontologia e serve para classificar as
informações de contexto.
35
Esta classificação é feita com base no método proposto por Dey e seus colaboradores [Dey
et al 2001]. Segundo estes autores, para facilitar a sua identificação, o contexto deve ser
dividido em classes. Esta divisão deve realizar-se ao nível dos fornecedores de contexto (e.g.,
sensores ou aplicações) sendo a classificação orientada pelo tipo de informação que estes
fornecem e pela entidade a que estes se referem.
Esta metodologia classifica o contexto por entidades e categorias. Entende-se por entidade
a pessoa, local, máquina, aplicação ou serviço à qual as informações de contexto dizem
respeito. Uma categoria é o tipo de informação de contexto que é adquirida de uma dada
entidade (e.g., a entidade pessoa tem como categorias de contexto a sua informação pessoal e
a sua localização).
Dey e seus colaboradores definem três tipos de entidades: locais, pessoas e objectos. Cada
entidade é dividida em quatro categorias: identidade, localização, estado e tempo. A
identidade identifica o elemento de uma forma única possibilitando a sua distinção de outros
elementos.
Esta ontologia, por estar ligada aos fornecedores de contexto, é considerada uma ontologia
de baixo nível. Aplicações que queiram obter informações de mais alto nível terão de possuir
ontologias baseadas na ontologia de contexto que representem essa informação.
Como exemplo da diferenciação entre a ontologia de contexto e uma ontologia de mais alto
nível, específica de uma aplicação, tem-se a localização. Esta, na ontologia do GCMAS, pode
ser constituída por simples coordenadas, indicação de presença ou outra qualquer informação
retirada de um fornecedor de contexto.
Para a aplicação que requer esta informação, a localização pode indicar algo mais
complexo como uma morada. Esta morada será uma conversão do valor retirado do GCMAS
feita com auxílio de uma ontologia de alto nível.
36
A ontologia de contexto representa assim a informação disponibilizada pelos fornecedores
de contexto. Esta informação está estruturada de acordo com uma base que segue o modelo
proposto por Dey e seus colaboradores. Esta base é também representada por uma ontologia,
denominada ontologia base de contexto.
Para além da ontologia base de contexto, outras duas ontologias compõem a ontologia de
contexto, a ontologia de distribuição do contexto e a ontologia de dados do contexto.
A ontologia base define a forma como o contexto e entidades são classificados. É nesta
ontologia que se define o que são entidades e a que classes pertencem as informações de
contexto. Para identificar a informação de contexto e separá-la das entidades, a ontologia
define também o elemento de contexto.
37
Um elemento de contexto representa a informação de contexto que caracteriza uma
entidade. Este pode ser uma informação obtida por sensores, informação sensorial, ou
armazenada no sistema, informação de repositório.
Como se pode verificar na Figura 10, a ontologia base de contexto está dividida três grupos
de representação da informação. A entidade e o elemento de contexto definem a organização
do contexto, indicando como estão distribuídas as entidades e quais são os elementos de
informação de contexto que caracterizam cada uma delas. A classe valor está associada à
ontologia de dados de contexto, sendo a ligação entre a ontologia de dados e a ontologia de
distribuição.
38
elemento deve estender a classe “informação sensorial”. Tratando-se de uma informação
fornecida por uma aplicação e armazenada no repositório do sistema, a propriedade deve
estender a classe “informação de repositório”.
A informação de classe permite às aplicações saber qual a classe do objecto que representa
o valor devolvido pelo GCMAS para um determinado elemento de contexto. Esta informação
trata-se apenas de uma informação textual sobre o caminho da classe (e.g., o elemento de
contexto localização tem como classe “gcf.ontology.Location”).
Para distinguir as várias instâncias, cada entidade está associada a um identificador. Esta
propriedade é obrigatória e tem de possuir valores diferentes para cada instância.
Cada entidade pode estar associada a outras entidades. Para tal basta estender a
propriedade “ligadoA” (“linkedTo”), que liga duas entidades entre si.
39
4.2.2 Ontologia de distribuição
A ontologia de distribuição define a distribuição das entidades e dos elementos de contexto
num determinado cenário. Esta ontologia deve estender a ontologia base de contexto para ser
compatível com o sistema.
Um exemplo prático desta ontologia pode ser aplicado a um cenário simples onde apenas
existe um utilizador e a sua localização. A ontologia base de contexto define o que é uma
entidade, o utilizador, e o que é um elemento de contexto, a localização. Esta definição
permite ao sistema distinguir entidades de elementos de contexto.
Com estas duas ontologias é possível determinar de forma perceptível ao GCMAS como
estão distribuídas as entidades e elementos de contexto determinados. Neste caso apenas
existe uma relação entre a entidade utilizador e o elemento localização.
40
Nas linguagens de ontologia, as classes possuem propriedades que as distinguem. Cada
uma dessas propriedades aponta para uma outra classe que define o domínio dessa
propriedade. A linguagem de ontologias OWL possui um mecanismo que permite agrupar
diversas propriedades de uma classe de forma semelhante aos atributos de classe nas
linguagens orientadas para objectos. No entanto, mesmo usando esta particularidade do OWL
não é possível um mapeamento directo desta estrutura de propriedades para uma classe com
atributos.
Para simplificar o mapeamento das classes de ontologia para classes orientadas por
objectos foi criada a ontologia de dados. Esta exprime a informação devolvida pelo sistema
que corresponde a um determinado elemento de contexto descrito na ontologia de distribuição.
As descrições são feitas em XML Schema, uma linguagem que permite uma transposição
directa para classes de linguagens de programação orientadas por objectos.
41
A ontologia de dados em conjunto com a ontologia de distribuição possibilita a descrição
do contexto de um dado cenário. A ontologia base permite que múltiplos cenários possam ser
usados sem que seja necessário incorrer a alterações no sistema.
42
Capítulo 5. Descrição do Sistema
43
sistema. Serviços Web, aplicações orientadas por objectos e agentes são exemplos de tipos de
interfaces especializadas que se podem desenvolver. Destas foram implementadas para a
demonstração da tese as interfaces orientadas por objectos (interface JINI e XSP) descritas na
secção 5.1.1.
Vários tipos de arquitectura podem adaptar-se ao GCMAS. Entre elas as mais relevantes
são as arquitecturas de agentes e as arquitecturas baseadas em componentes. Estas são usadas
em várias propostas de sistemas de contexto, tal como se pode verificar no Capítulo 2.
Exemplos destas propostas são a arquitectura CoBrA de Chen e seus colaboradores [Chen et
al 2003], baseada em agentes, e a arquitectura WASP de Costa e seus colaboradores [Costa et
al 2003], baseada em componentes.
44
flexibilidade da estrutura pois novas funcionalidades podem ser adicionadas com novos
componentes.
Tal como se pode verificar na Figura 11, as aplicações acedem ao GCMAS através das
suas interfaces. Um processo semelhante verifica-se do lado dos sensores.
Da arquitectura apresentada retira-se que o GCMAS é composto por duas partes. A parte
genérica integra a maioria das funcionalidades tais como as ferramentas para adaptadores de
sensor, interfaces, serviço de páginas amarelas e os componentes do núcleo do sistema. A
parte específica de aplicação, também denominada de módulo de interpretação, consiste do
interpretador de contexto.
45
Na camada genérica do GCMAS, as ferramentas de adaptadores de contexto fornecem
métodos base para criação de componentes de adaptação de sensor. Estes métodos permitem a
adaptação da informação retirada dos sensores para um nível determinado pela ontologia do
sistema (ver Capítulo 4) e a inclusão de capacidades de pesquisa no sistema.
Os adaptadores de sensor são implementados de acordo com o tipo de sensor. Estes têm de
respeitar a interface de adaptação de sensores fornecida pelo GCMAS para que a sua
integração no sistema seja possível.
Esta camada funciona de acordo com a ontologia base de contexto. Tal como indicado no
Capítulo 4, esta define a estrutura da ontologia de distribuição do contexto. O conhecimento
da ontologia por parte das aplicações que lhe acedem é necessário para que estas possam
compreender as informações que estão a trocar com o sistema.
O GCMAS permite que várias instâncias dos seus componentes possam ser lançadas
simultaneamente. Isto introduz maior eficiência pois os pedidos das aplicações são escoados
para as várias instâncias dos componentes responsáveis por tratarem deles. A multiplicidade
de instâncias do mesmo componente permite que as funcionalidades que estes implementam
possam correr em locais diferentes. Isto diminui a probabilidade de falha do sistema.
46
objectos dois tipos de acesso são disponibilizados. Nestes acessos são usados protocolos de
modelos de componentes, JINI [JINI 2005] e XSP 1 (“eXtended Service Platform”). Estes
modelos permitem que o sistema seja entendido como um componente por parte das
aplicações. A aplicação ao aceder às funcionalidades desse componente estará
automaticamente a aceder ao sistema.
O acesso JINI permite que aplicações que usem o modelo de componentes do JINI acedam
ao sistema como se este se tratasse de um componente JINI. O acesso XSP permite que
aplicações XSP acedam ao GCMAS como se este se tratasse de um componente XSP.
Outras interfaces podem vir a ser definidas no futuro permitindo assim a expansão do
sistema para outros tipos de aplicações. A introdução de interfaces no sistema é realizada da
mesma forma que na adição de novos componentes.
1
Desenvolvido por We, the body and the mind research group (http://www.we-b-mind.org/) e Accedo
Consulting (http://www.accedo.pt)
47
as aplicações estão livres de enviar o tipo de informação que quiserem desde que esteja
especificada na ontologia como uma informação de repositório.
O sistema possui ainda interfaces do lado dos sensores. Estas são realizadas pelos
componentes de adaptação de sensor. Os componentes de adaptação possuem ferramentas que
possibilitam a ligação dos sensores ao sistema, funcionando de certa maneira como interfaces.
Interfaces mais específicas podem ser definidas no módulo de aplicação. Estas são
construídas especificamente para uma aplicação e servem para a comunicação desta com o
componente responsável pela interpretação de contexto.
Para garantir que vários tipos de aplicação podem usufruir do GCMAS, cada uma das
interfaces foi definida para vários tipos de aplicação. A subscrição de eventos, a pesquisa de
contexto e o repositório possuem várias interfaces que permitem a comunicação com vários
tipos de aplicação.
Três tipos de aplicação são abrangidos pelo GCMAS. Aplicações orientadas por objectos,
agentes e serviços Web podem comunicar directamente com o sistema usando as respectivas
interfaces.
Para as aplicações orientadas por objectos, a interface definida permite a comunicação com
modelos de componentes. Os modelos suportados são o JINI [JINI 2005] e o XSP. Aplicações,
usando esta interface, acedem ao sistema tal como se este se tratasse de um único componente.
A interface de serviços Web transforma o sistema num serviço. Aplicações que usem
serviços Web requerem serviços de contexto através desta interface. Os pedidos são depois
traduzidos e enviados aos componentes responsáveis pela funcionalidade requerida.
Das interfaces descritas apenas as interfaces de aplicações orientadas por objectos foram
implementadas durante a escrita da tese.
O sistema permite estender o conjunto de aplicações que lhe acedem através da criação de
outras interfaces. Esta funcionalidade torna o sistema mais extensível. Deve salientar-se que
na adição de novas interfaces e na alteração de interfaces já existentes apenas as extensões aos
48
mecanismos básicos dos componentes necessitam de ser recompiladas. Estes mecanismos
básicos implementam as funcionalidades dos componentes.
O sistema está implementado entre a camada de aplicação e a dos sensores, sendo que
parte desta camada se encontra dentro da camada de aplicação. A parte do sistema que se
encontra dentro da camada de aplicação representa a extensão deste sistema para as aplicações.
Esta extensão está representada na Figura 12 pelo interpretador de contexto.
49
Na camada de aplicação encontram-se os sensores de software e as aplicações. São estes
que fornecem e pesquisam informações de contexto no sistema. As aplicações podem também
efectuar a subscrição de eventos.
50
entidade associada ao sensor corresponde à entidade de contexto representada pelo elemento
de contexto (e.g., a classe pessoa).
O registo da entidade no sistema permite que sejam feitas associações a outras entidades já
existentes. Essas associações têm no entanto de ser especificadas pelo sensor que está a
registar a entidade. O registo de entidade é efectuado pelo controlador de ontologia, descrito
na secção 5.1.2.6.
51
componente de adaptação corre no local onde se encontra o sensor, armazenar localmente a
informação de histórico do sensor é a solução mais adequada. A gestão do número de
amostras que podem ser guardadas e a forma como são armazenadas é feita pelo próprio
componente de adaptação.
Os adaptadores de sensor podem estar ligados a um hardware específico que faz a captura
da informação ou serem apenas software. Aplicações que queiram guardar informação
directamente no sistema sem recorrer ao uso de sensores terão de comunicar com o
componente de repositório (ver secção 5.1.2.2).
52
5.1.2.2 Componente de repositório
O componente de repositório é responsável pelo armazenamento das informações de
contexto enviadas pelas aplicações e pela gestão do histórico de contexto desta informação. O
repositório representa uma forma alternativa de guardar informação de contexto. Esta serve
para que aplicações possam fornecer informações de contexto, sem recurso a sensores, que
são guardadas no repositório do sistema. O armazenamento é efectuado numa base de dados
gerida pelo próprio componente.
Este componente possui dois tipos de interface, externa e interna. Interfaces externas
permitem que aplicações armazenem contexto no sistema. Interfaces internas permitem que o
componente de pesquisa possa recolher contexto do repositório.
53
As entidades são registadas no sistema no momento em que se armazena a informação. Os
pedidos de registo de entidades são tratados pelo controlador de ontologias (ver secção
5.1.2.6).
54
O componente de repositório permite que informações importantes sejam guardadas de
forma indefinida no GCMAS. Estas informações são acedidas por outras aplicações usando as
interfaces de pesquisa de contexto do sistema. Para as aplicações não há diferenciação entre
informação vinda do repositório e informação vinda de sensores.
A mesma interface é usada tanto para a pesquisa de contexto de sensores como para a
pesquisa de contexto de repositório. A diferenciação entre estas duas ocorre no componente
de pesquisa e é dada pela ontologia. A informação proveniente de sensores estende uma
classe ontológica diferente da informação proveniente do repositório.
As interfaces implementadas por este componente permitem que aplicações externas façam
pesquisas sobre a informação actual de contexto e sobre histórico de contexto. O histórico de
contexto consiste no conjunto de amostras de um sensor ou repositório obtidas ao longo do
tempo.
O sistema retorna um objecto comum para todas as pesquisas, tanto para as de informação
actual como de histórico. Neste objecto encontra-se encapsulada a informação pretendida. Os
vários tipos de resposta são encapsulados neste objecto.
55
Para os diferenciar, o objecto devolvido possui um parâmetro que indica o tipo de resposta.
Quatro tipos de resposta são possíveis na pesquisa de contexto: informação actual, informação
de histórico, informação actual redundante e informação de histórico redundante. Estes estão
representados na Tabela 2.
Quando uma aplicação realiza uma pesquisa da informação actual de contexto (e.g.,
obtenção da localização actual de uma pessoa), a resposta devolvida vem sob a forma de uma
informação actual. Este tipo de resposta ocorre quando o sensor que fornece a informação
pretendida não é redundante ou quando a informação é fornecida pelo repositório. A
informação encapsulada no objecto devolvido vem na forma original do tipo de informação
(e.g., se a localização for dada por um objecto da classe Location então a informação
encapsulada estará sob a forma de um objecto Location).
Quando uma aplicação realiza uma pesquisa de informação de histórico de contexto (e.g.,
obtenção da lista de locais por onde uma pessoa andou) a resposta devolvida vem sob a forma
de uma informação de histórico. Este tipo de resposta ocorre quando o sensor que fornece o
histórico não é redundante ou quando se trata do histórico de informações de repositório. A
informação encapsulada na resposta vem sob a forma de um conjunto de amostras de contexto.
(e.g., se a localização for dada por um objecto da classe Location então a informação
encapsulada estará sob a forma de um vector de objectos Location)
56
informação pelo sistema, com a excepção da conversão do formato original específico do
sensor para o formato da ontologia.
O resultado destas pesquisas pode dar origem a uma resposta do tipo informação actual
redundante ou do tipo informação de histórico redundante. O tipo de resposta depende de se
estar a pesquisar por informações actuais ou por informações de histórico.
A subscrição suporta apenas contexto fornecido por sensores, tendo de ser feita
individualmente para cada sensor. O componente de subscrição de eventos trata de
encaminhar as subscrições para o componente de adaptação de sensor (11). Este fica
responsável por notificar o componente de eventos sempre que detectar uma alteração na
informação recebida pelo sensor (e.g., após receber o pedido do componente de eventos, um
adaptador de sensor para um sensor de localização passa a notificar o componente de eventos
sempre que um utilizador muda de lugar).
57
de sensores saiba que tem de enviar notificações e a qual a instância do componente de
eventos deve enviar.
Tal como acontece com as interfaces do GCMAS, existem vários tipos de interfaces
disponíveis para serem implementados pelas aplicações. Estas interfaces estão associadas aos
mesmos tipos de aplicação que as interfaces externas do sistema.
O GCMAS funciona sobre uma plataforma de gestão de componentes que possui o seu
próprio serviço de páginas amarelas. Este é usado maioritariamente para registo e pesquisa de
sensores.
Cada novo sensor que se queira ligar ao sistema tem de registar o seu componente de
adaptação neste serviço (13). Isto permite que o componente do sensor esteja incorporado na
lista de componentes afectos ao serviço. Facilita-se assim a localização do componente. A
58
comunicação com os componentes é sempre feita através dos métodos especificados nas suas
interfaces.
Para registar um componente num serviço de páginas amarelas basta indicar a interface
que o componente implementa. Para distinguir várias instâncias do mesmo componente pode
enviar-se também um identificador que as distinga.
Os métodos de arranque são configuráveis, sendo possível indicar que interfaces deverão
ser iniciadas e quantas instâncias dos componentes internos são lançadas. A ontologia do
sistema é carregada pelos componentes do núcleo. Os métodos incluídos no núcleo do sistema
incluem também a gestão de ontologias.
59
A gestão de ontologias é efectuada por um pequeno módulo associado aos componentes de
pesquisa, repositório e adaptação de sensores. Este módulo possui interfaces que permitem a
inclusão de novas classes de informação de contexto na ontologia e a pesquisa sobre a
ontologia do sistema.
Cada componente tem a capacidade de associar-se por si só ao sistema sem que seja
necessário recorrer aos métodos de arranque do núcleo. O componente de adaptação de
60
sensores como depende directamente do sensor, possui métodos específicos para o seu registo
no sistema, independentes dos métodos de arranque do núcleo.
Isto é útil quando a comunicação entre a aplicação e o sistema tem de ser feita a um nível
de abstracção mais alto. A subida do nível de abstracção da informação de contexto pode
requerer também o uso dos componentes de agregação (Figura 12 (6)) e de raciocínio (Figura
12 (7)).
61
As ontologias definidas no módulo de aplicação têm como base a ontologia do sistema
para manter a compatibilidade da informação. Estas ontologias são no entanto mais
complexas e especificas das aplicações para qual o módulo foi desenvolvido.
62
5.2 Considerações de desenho
As considerações de desenho definem aspectos como as linguagens de desenvolvimento, o
mecanismo de gestão de componentes a usar e aspectos da integração da ontologia. Estes
aspectos são importantes para encaminhar a implementação do sistema.
O XMLSchema é usado para descrever a ontologia de dados do contexto (ver secção 4.2.3
do Capítulo 4). Esta linguagem permite a transformação automática das classes descritas em
objectos. Para tal, é usada uma ferramenta de conversão, o SCB (“Schema Class Builder”),
desenvolvido pelo laboratório de investigação ”We, the Body, and the Mind” da ADETTI1,
em parceria com a Accedo2.
Esta transformação permite que baste definir apenas as classes de ontologia. A sua
representação em objectos concretos é garantida pela ferramenta de conversão.
1
We, the body and the mind research group. http://www.we-b-mind.org/
2
Accedo Consulting. http://www.accedo.pt
63
A interface de agentes usa os protocolos definidos pela FIPA [FIPA 2002-00026] [FIPA
2002-00037] para a troca de mensagens entre agentes e o sistema. Estes protocolos usam o
FIPA-ACL (“Agent Communication Language”) [FIPA 2002-00061] como linguagem para
troca de mensagens entre agentes. A linguagem de conteúdo usada nessa comunicação é o
FIPA-SL (“Semantic Language”) [FIPA 2002 00008].
A interface de serviços Web usa a linguagem OWL-S [W3C 2005], como linguagem de
descrição de serviços. Esta é uma das linguagens padrão aconselhadas pelo W3C. São usados
os mecanismos padrão para comunicação com serviços Web.
64
OWL e a interpretação directa de classes e instâncias da ontologia. No entanto, relações
directas entre classes da ontologia e objectos Java não são possíveis, justificando o uso da
ontologia de dados do contexto.
A separação é possível pois as funcionalidades são independentes umas das outras. Isto no
entanto não torna desnecessária a sua futura integração. Para facilitar este processo, cada
funcionalidade desenvolvida será integrada nas já existentes. Isto permite o desenvolvimento
do sistema em fases. Cada uma das fases de desenvolvimento acrescenta uma nova
funcionalidade ao sistema.
Uma visão mais detalhada das considerações de desenho pode ser observada no Anexo IV.
As convenções usadas no desenvolvimento do sistema podem ser observadas no Anexo VII.
Aos adaptadores de sensor foram sendo agregadas outras funcionalidades acessórias, que
também possuem a sua relevância no funcionamento do sistema. Destas, a mais importante é
65
a manipulação de ontologias, que permite associar a informação de contexto a uma ontologia.
Esta integração dá origem à segunda fase de desenvolvimento.
Depois de definidas interfaces de comunicação mais complexas parte-se para a quinta fase
de desenvolvimento, onde se implementa o módulo de interpretação de contexto. Esta fase
não é no entanto abrangida neste documento devido à sua complexidade ser tão grande quanto
o desenvolvimento de toda a parte genérica do GCMAS.
66
Os componentes e interfaces a desenvolver na terceira e quarta fases são descritos numa
secção à parte. Esta descrição apresenta os conceitos e possíveis formas de implementar as
funcionalidades presentes nestas fases. Descrições mais completas da implementação de cada
um dos componentes são apresentadas no Anexo V.
67
que a informação de contexto é representada por um elemento de contexto que está ligado a
uma entidade, a qual é definida por esse elemento. Entidades de contexto são definidas por
vários elementos de contexto. A cada elemento de contexto está associada a uma classe da
ontologia de dados do contexto.
De modo a criar uma representação dos conceitos definidos na ontologia base, foram
criados um conjunto de objectos Java que os representam. Na Tabela 3 encontra-se a
descrição de cada um destes objectos.
Um exemplo de uma instância deste objecto para um sensor que devolve a localização de
uma pessoa seria a seguinte:
Uma entidade é registada no sistema usando uma instância do objecto ContextEntity para a
representar. Este objecto contém informação acerca do identificador único da entidade e uma
descrição da mesma.
68
repositório também usa este objecto para fazer o armazenamento da informação. Um exemplo
da estrutura do objecto SensorProperty para um sensor que mede a temperatura de uma
divisão da casa seria a seguinte:
Objecto Descrição
Representa uma entidade de contexto. As informações que
ContextEntity poderão ser extraídas deste objecto são o identificador único da
entidade e uma descrição.
Representa uma propriedade que liga duas entidades ou uma
Link
entidade a um elemento de contexto.
Representa o elemento de contexto. É responsável por guardar a
informação de contexto fornecida pelo sensor ou repositório e que
ContextObject está representado sob a forma determinada por uma classe da
ontologia de dados. Este objecto possui também informação
acerca da entidade à qual o contexto diz respeito
Representa as propriedades de um sensor. Este objecto não tem
representação directa na ontologia, pois trata-se de um
agrupamento de várias características da ontologia (classe do
SensorProperty sensor, classe da entidade, etc.), mas serve de formulário de
registo de componentes de adaptação de sensor. Todos os
componentes de adaptação terão de se registar com estes objectos
para indicar as suas propriedades.
69
Para a integração da linguagem de ontologias a ser usada no GCMAS, o OWL, tirou-se
partido de uma ferramenta de modelação de ontologias denominada JENA. Esta trabalha com
a versão completa do OWL, permitindo a interpretação de ficheiros descritos nesta linguagem.
Para além da introdução das ontologias nesta fase também são criadas as interfaces
externas de pesquisa de contexto. Estas interfaces são implementadas pelo componente de
pesquisa de contexto, também introduzido nesta fase.
70
funcionalidade. Esta descrição é feita de forma simplificada na secção 5.3.4 e de uma forma
mais detalhada na secção 5.05 do Anexo V.
Quando se inscreve uma entidade ou sensor a sua representação na ontologia é feita por um
individual (uma instância da classe respectiva da ontologia) (e.g., a entidade “pessoa A” é
representada na ontologia como o individual “pessoa A” da classe “pessoa”). O mesmo se
passa quando se submete uma informação de repositório. Essa informação é representada por
uma instância da classe respectiva na ontologia (e.g., A informação de memória do
dispositivo “dispositivo A” com valor “128 MB” é armazenada na ontologia como o
individual “128 MB” da classe “memória de dispositivo” e ligado ao individual “dispositivo
A” que representa o dispositivo).
As interfaces desenvolvidas nesta fase permitem que aplicações orientadas por objectos,
usando os mecanismos XSP e JINI, possam guardar informação de contexto no sistema. Estas
são as interfaces externas de armazenamento do sistema, podendo ser observadas na Figura 31
presente no Anexo V
Uma descrição mais completa dos componentes desenvolvidos nesta fase encontra-se na
secção 5.04 do Anexo V.
71
5.3.4 Componentes e interfaces não implementados no GCMAS
Esta secção descreve os componentes que não foram implementados durante a fase de
desenvolvimento desta tese de mestrado. São apresentadas de forma breve as noções tomadas
para o desenvolvimento do componente de subscrição de eventos e das interfaces de agentes.
Este componente tem de definir uma interface de envio de eventos para aplicações de
modo a que estas recebam eventos de contexto. Esta interface é definida pelo sistema e tem de
ser implementada pelas aplicações externas que queiram receber eventos de contexto. São
definidos vários tipos de interfaces de envio de eventos adaptadas ao tipo de aplicação com o
qual se está a comunicar.
Uma descrição mais detalhada das noções de desenvolvimento desta funcionalidade pode
ser observada na secção 5.05 do Anexo V.
72
A interface web funciona de forma semelhante à interface de agentes. As funcionalidades
do sistema são representadas por vários serviços. Estes encontram-se descritos em OWL-S e
são inscritos numa directoria de serviços.
No entanto a sua utilidade para o GCMAS era limitada. A ferramenta XSP não permite a
introdução de características de componentes no seu serviço de páginas amarelas. Esta
característica é necessária para que se possa diferenciar várias instâncias de sensores do
mesmo tipo.
Não sendo possível ultrapassar esta limitação usou-se a ferramenta JINI para gestão de
componentes. Sendo todos os componentes desenvolvidos em Java e sendo esta a ferramenta
mais utilizada para gestão de componentes no Java, esta foi a escolha mais acertada. O JINI
permite a introdução de diversas características do componente no serviço de páginas
amarelas, sendo estas relevantes na pesquisa dos componentes.
73
Outra das limitações impostas pelo JINI encontra-se nas variáveis existentes nos
componentes. Estas terão de ser serializáveis para que o componente funcione. Isto implica
que estes objectos assim como os elementos que os compõem terão de estender a interface
serializable.
A tradução da ontologia descrita em OWL para objectos é feita pelo JENA através de
objectos que representam classes, propriedades e individuais da ontologia. Estes objectos têm
de ser obrigatoriamente variáveis do controlador de ontologias. Se estes objectos fossem
serializáveis, os mecanismos de ontologias seriam facilmente integrados num componente.
Bastaria aos restantes componentes do sistema aceder aos métodos disponibilizados por este
para realizar operações sobre a ontologia.
Isto implica que, por cada operação sobre a ontologia, a base de dados tem de ser carregada
no método para que depois se possa manipular a informação da ontologia. Depois de
manipulada a informação, a ligação do método à base de dados tem de ser fechada para que
outros métodos lhe possam aceder.
74
ferramentas tornou-se moroso devido ao acesso à base de dados feito pelo JENA. Este acesso
implica que ligações à base de dados sejam criadas e eliminadas por cada operação sobre a
ontologia.
Este foi o processo mais eficaz encontrado para contornar o facto de o objecto responsável
pela ligação não ser serializável, não permitindo o lançamento de um componente JINI que se
responsabilizasse pela manutenção da ligação. Apesar da complexidade das operações,
usando esta metodologia consegue-se poupar recursos do sistema relativos à manutenção de
uma ligação constante à base de dados.
Tentar descrever uma estrutura de dados como um objecto com argumentos e funções
usando uma linguagem de ontologia como o OWL é complexo. O uso de propriedades para
ligar a classe que representa o objecto às classes que representam os atributos implica o uso
de todas as funcionalidades do OWL. Isto implica que a leitura de dados armazenados nessas
classes seja mais complexa.
Esta definição é no entanto muito importante para as aplicações. Sem a definição do tipo
de dados da informação, as aplicações não saberão qual o formato da informação que estão a
receber do sistema. Para tal, a ontologia foi dividida em três níveis em que, no terceiro nível,
é especificado o tipo da informação descrita no sistema.
75
Esta descrição do tipo de informação é feita numa linguagem de descrição mais tipificada
que as linguagens de ontologia. A linguagem usada, o XMLSchema, permite definir tipos de
dados complexos tal como se definem classes em linguagens orientadas para objectos.
Serão instâncias destes objectos que são retornadas pelo sistema, quando aplicações fazem
pedidos de pesquisa de contexto ou de subscrição de eventos. São também estes os objectos
enviados pelas aplicações ao sistema quando se realiza o armazenamento de informação de
contexto.
76
Capítulo 6. Avaliação do Sistema
Definido e Implementado
Neste capítulo são descritos os critérios de avaliação definidos para avaliar o GCMAS.
Estes critérios estabelecem quais os parâmetros testados e medidos no sistema desenvolvido
para que se possa determinar se este atingiu ou não os resultados esperados.
Os critérios definidos tanto podem determinar acções específicas que o sistema tem de
efectuar como conceitos que devem estar demonstrados no sistema. A avaliação das acções do
sistema será feita usando um conjunto de teste onde essas acções são desencadeadas. O
sistema tem de reagir de acordo com os pedidos feitos em cada teste. A avaliação do resultado
obtido serve de parâmetro de avaliação do critério.
O conjunto de testes usado para avaliação dos critérios está relacionado com o cenário
apresentado no Capítulo 3. Os pedidos desencadeados abrangem um grande leque dos pedidos
que as aplicações fariam ao sistema. Estes pedidos testam o funcionamento do sistema
aplicado no cenário proposto.
Nestes testes são usados sensores desenvolvidos com o propósito de testar a comunicação
entre sensores e o sistema. Estes sensores representam alguns dos sensores descritos no
cenário de aplicação do sistema.
77
A avaliação do sistema resulta da análise dos resultados obtidos nos testes. Estes resultados
tanto podem servir para demonstrar a aplicação de conceitos como para demonstrar acções
que o sistema deve efectuar
Tratando-se o GCMAS de uma aplicação inovadora, não podem ser efectuados testes de
comparação directa com outras aplicações semelhantes. Alguns dos seus conceitos serão
comparados com aplicações que usem conceitos semelhantes. Os critérios de avaliação irão
avaliar também a inovação dos conceitos introduzidos no sistema.
Este capítulo inicia-se com a descrição dos critérios de avaliação seleccionados para
demonstrar as funcionalidades do sistema. Termina com a apresentação dos resultados da
avaliação de cada um dos critérios seleccionados.
78
6.1.4 Robustez
Este critério permite determinar se o sistema é robusto relativamente à falha de sensores e
componentes internos. Esta robustez garante o funcionamento do sistema mesmo nas piores
condições. A robustez é um critério que pode ser avaliado com descrições da arquitectura do
sistema.
Os resultados são analisados independentemente para cada um dos critérios. Alguns destes
podem ser suportados por demonstrações do funcionamento do sistema.
Os sistemas e modelos escolhidos para serem comparados são o CoBrA [Chen et al 2003],
o Context Taylor [Davis et al 2003, Davis et al 2003a], o modelo de arquitectura de Cortese
e seus colaboradores [Cortese et al 2004], o sistema de localização dentro de casa [Harter et
79
al 2002], o SOCAM [Gu et al 2004], o CORTEX [Biegel and Cahill 2004] e o modelo de
Widgets de Dey e seus colaboradores [Dey et al 2001].
80
Usa um misto de modelo de camada intermédia com
o modelo de componentes. Os componentes de
adaptação de sensor encontram-se encapsulados em
componentes que são executados na mesma máquina
que o sensor e comunicam com a camada do sistema
de contexto. Do lado das aplicações, o sistema
GCMAS comporta-se como uma camada intermédia entre os
sensores e a aplicação.
Com o uso das interfaces do sistema é possível
ligá-lo a sistemas de agentes, e fazer com que este se
comporte como um serviço Web.
81
Limitado á comunicação com aplicações desenhadas
SOCAM
especificamente para a aplicação
Limitado á comunicação com aplicações desenhadas
CORTEX
especificamente para a aplicação
Limitado á comunicação com aplicações desenhadas
Widgets
especificamente para a aplicação
Possui um conjunto de interfaces extensível que
permite a comunicação com vários tipos de
aplicações usando protocolos de plataformas de
GCMAS
gestão de componentes, assim como permite
também a comunicação com agentes e por meio de
serviços web.
Permite que as aplicações possam focar-se no
CoBrA tratamento das informações recebidas. O sistema
pode ser considerado como um módulo.
Permite que as aplicações possam focar-se no
Context
tratamento das informações recebidas. O sistema
Taylor
pode ser considerado como um módulo.
Permite que as aplicações possam focar-se no
Modelo de
tratamento das informações recebidas. O sistema
Cortese
pode ser considerado como um módulo.
Sistema de
localização Trata-se de uma aplicação fechada
DC
Modularidade Permite que as aplicações possam focar-se no
SOCAM tratamento das informações recebidas. O sistema
pode ser considerado como um módulo.
Permite que as aplicações possam focar-se no
CORTEX tratamento das informações recebidas. O sistema
pode ser considerado como um módulo.
Permite que as aplicações possam focar-se no
tratamento das informações recebidas. As aplicações
Widgets
têm de ser desenvolvidas sobre o sistema.
Modularidade não é muito visível.
Permite que as aplicações possam focar-se no
tratamento das informações recebidas. O sistema
GCMAS pode ser considerado como um módulo. Permite a
adição de outros módulos para aumentar o nível de
abstracção da informação de contexto.
Reutilização CoBrA Limitado a plataformas de agentes
Context Limitado ao tipo de sensores desenhado
Taylor especificamente para a aplicação
Modelo de Limitado ao tipo de sensores desenhado
Cortese especificamente para a aplicação
Sistema de
localização Trata-se de uma aplicação fechada
DC
Limitado ao tipo de sensores desenhado
SOCAM
especificamente para a aplicação
82
Limitado ao tipo de sensores desenhado
CORTEX
especificamente para a aplicação
Limitado ao tipo de sensores desenhado
Widgets especificamente para a aplicação. Permite no entanto
uma grande flexibilidade na concepção dos sensores.
Limitado ao tipo de sensores desenhado
especificamente para a aplicação. Permite no entanto
uma grande flexibilidade na concepção dos sensores.
GCMAS
Possui também mecanismos que facilitam o
desenvolvimento de sensores especificamente para o
sistema.
83
Tabela 5 – Funcionalidades do sistema desenvolvido
84
6.2.3 Avaliação do funcionamento e dos tempos de resposta do sistema
Relativamente a este critério são apresentados os resultados dos testes efectuados ao
sistema. Estes testes foram efectuados através de uma aplicação desenvolvida especificamente
para testar as funcionalidades do GCMAS. A aplicação foi desenvolvida com base no cenário
escolhido para o desenvolvimento da tese. Detalhes dos testes ao sistema podem ser
consultados no Anexo IX. Detalhes da arquitectura podem ser consultados no Capítulo 5.
Teste Resultado
O sistema foi capaz de pesquisar contexto dada a informação da
Pesquisa de
classe da informação de contexto e do identificador do objecto.
informação de
Foram testadas pesquisas sobre dados do utilizador e a sua
contexto
localização.
Diversificação da O sistema foi capaz de realizar pesquisas sobre vários tipos de
informação de informação com diferentes formatos. Foram testadas pesquisas
contexto sobre localização, informação de bateria e lista de espera
Foram feitos pedidos ao sistema, usando várias interfaces, sendo
Diversidade de obtida a mesma informação. Foram testadas pesquisas sobre dados
ligações pessoais e localização de um utilizador usando as interfaces JINI e
XSP
O sistema foi capaz de armazenar um número pré determinado de
amostras de contexto de vários tipos de sensores. Posteriores
Armazenamento
pesquisas sobre essas amostras demonstraram a disponibilidade
de histórico
dessa informação. Foram realizados testes sobre sensores de
localização, informação de bateria e de lista de espera.
O sistema foi capaz de distinguir dois sensores da mesma classe
Pesquisa por
relacionados com utilizadores diferentes. Foram testadas pesquisas
propriedades de
sobre a localização de dois utilizadores que usam a mesma classe
sensor
de sensores de localização.
O sistema foi capaz de efectuar uma pesquisa sobre uma classe de
Actualização da sensores que não estava descrita na ontologia carregada durante o
ontologia arranque do sistema. A nova classe da ontologia foi carregada
posteriormente quando se inscreveu um novo sensor no sistema.
De acordo com os dados da Tabela 6 prova-se que o sistema cumpre os requisitos
estipulados no Capítulo 3. Explicações mais detalhadas dos testes efectuados encontram-se
nas secções 9.01 a 9.06 do Anexo IX.
85
Os testes seguintes determinam o tempo que o sistema leva a disponibilizar a informação
de contexto após a inscrição de um novo sensor ou de informação no repositório. Na Tabela 7
estão apresentados os resultados obtidos no teste de determinação do tempo de resposta.
Como se pode verificar pelos resultados obtidos, a diferença entre os tempos de registo do
sensor ou o armazenamento de informação no repositório e o instante em que a nova
informação (proveniente do sensor ou do repositório) é obtida por parte da aplicação que a
consulta é da ordem dos 1,2 segundos para sensores, chegando aos 40 milissegundos no caso
da informação registada no repositório.
Uma variação da mesma aplicação foi usada para determinar os valores mostrados na
Tabela 8. Esta tabela apresenta os tempos de resposta do sistema em diferentes situações de
carga dependendo do número de sensores.
86
Dos resultados obtidos verifica-se que quanto maior for o número de sensores ligados mais
tempo se demora a fazer uma pesquisa. No entanto a ocupação de processador não aumenta
muito com o aumento do número de sensores ligados. Nem sequer a ocupação de memória do
processo do GCMAS aumenta significativamente com o registo de novos sensores.
Este motivo leva a que os resultados destes testes não sejam fidedignos pois, para
relatarem o funcionamento do sistema, cada um dos sensores teria de correr numa máquina à
parte. O sistema tem de correr numa máquina distinta da máquina em que os sensores estão
instalados.
Mais informações relativas ao teste dos tempos de resposta podem ser encontradas na
secção 9.08 do Anexo IX. De acordo com os resultados apresentados, considera-se que este
critério foi satisfeito.
6.2.4 Robustez
A robustez do GCMAS é garantida pela existência de múltiplas instâncias dos
componentes internos do sistema e pela separação das suas várias funcionalidades. A robustez
relativa à falha de sensores é garantida pelos mecanismos de protecção do serviço de páginas
amarelas do JINI e do componente responsável pelas pesquisas.
Tendo sido definido como um sistema orientado por componentes, o GCMAS permite que
várias instâncias do mesmo componente sejam lançadas simultaneamente, podendo estas até
correr em máquinas diferentes. Isto permite introduzir redundância no sistema. Ao existirem
87
componentes redundantes a probabilidade de falha de uma funcionalidade é muito baixa visto
que estes se podem substituir.
Esta substituição pode ou não ser linear. Caso as várias instâncias do mesmo componente
sejam lançadas com as mesmas propriedades apenas a primeira instância a ser lançada seria
usada. Isto porque os mecanismos normais de pesquisa do serviço de páginas amarelas JINI
devolvem sempre a primeira instância dos componentes registados com o mesmo nome.
Esta propriedade não só introduz redundância como também permite o acesso múltiplo. As
únicas partes centralizadas desta arquitectura são o serviço de páginas amarelas e a base de
dados que representa o repositório do sistema.
88
funcionalidades específicas para cada tipo de interface dentro do componente que podem
falhar sem comprometer as restantes interfaces.
89
Capítulo 7. Conclusões
Conclusões e Trabalho
Futuro
Da análise dos requisitos concluiu-se que o sistema desenvolvido teria de reunir algumas
das soluções mais proeminentes na tentativa de encontrar uma solução única que abrangesse
uma grande parte da problemática do contexto. Esta solução teria de ser também independente
do domínio e adaptável à situação em que fosse aplicada.
Definido um cenário de aplicação do sistema, foi possível desenhá-lo de maneira a que este
não só respondesse ao cenário determinado, como também fosse extensível a outros cenários.
Do desenho foram determinados os componentes a serem desenvolvidos e as possibilidades
de futuras extensões. Foi também definido um mecanismo de módulos que permite
acrescentar funcionalidades de alto nível ao sistema.
90
independência do domínio, e possibilidade de se estender / adaptar, o sistema desenvolvido
supera os restantes sistemas analisados.
Embora o sistema tenha sido desenhado na sua totalidade, apenas parte deste chegou a ser
implementado até ao momento da conclusão da tese. Isto significa que algumas das
funcionalidades descritas na análise de requisitos não foram implementadas, devido à grande
complexidade de cada uma delas.
O seu desenho e implementação irão requerer um esforço idêntico àquele que foi requerido
para desenvolver a camada de adaptação do sistema. Com a finalização destes objectivos, o
sistema desenvolvido tornar-se-á uma ferramenta essencial para a computação ciente do
contexto.
91
Capítulo 8. Referências Bibliográficas
[Bardram 2004] J. E. Bardram. “The Java Context Awareness Framework (JCAF) A Service
Infrastructure and Programming Framework for Context-Aware Applications”. Centre
for pervasive computing, Department of Computer Science. University of Aarhus, 2004
[Biegel and Cahill 2004] Gregory Biegel, Vinny Cahill. “A Framework for Developing
Mobile, Context-aware Applications”. In Proceedings of 2nd IEEE conference on
Pervasive computing and Communications. Percom 2004
92
[Capra et al 2003] L. Capra, W. Emmerich and C. Mascolo. “CARISMA: Context-Aware
Reflective middleware System for Mobile Applications”. In IEEE Transactions on
Software Engineering, 29(10):929-945, 2003
[Chalmers e Sloman 1999] D. Chalmers, M. Sloman. “QoS and Context Awareness for
Mobile Computing”. In HUC99, 1999
[Chen e Kotz 2000] G. Chen and D. Kotz. „A Survey of Context-Aware Mobile Computing
Research”. In Dartmouth Computer Science Technical Report TR2000-381, 2000.
[Chen e Kotz 2001] G. Chen and D. Kotz. “Solar: Towards a Flexible and Scalable Data-
Fusion Infrastructure for Ubiquitous Computing”. In UbiTools Workshop at
UbiComp2001, Atlanta, Georgia, October, 2001.
[Chen e Kotz 2002] G. Chen and D. Kotz. “Solar: An Open Platform for Context-Aware
Mobile Applications”. In the First International Conference on Pervasive Computing
(Pervasive 2002), Switzerland, June, 2002.
[Chen et al 2003] H. Chen, T. Finin, and A. Joshi. “An Intelligent Broker for Context-Aware
Systems”. In Adjunct Proceedings of Ubicomp 2003, Seattle, Washington, USA,
October 12-15, 2003.
[Davis et al 2003] J. S.Davis II, D. M. Sow, M. Blount, and M. R. Ebling. “Context tailor:
Towards a programming model for context-aware computing”. In Proceedings of the
first International Workshop on Middleware for Pervasive and Ad Hoc Computing
(MPAC)., pages 68-75, Rio De Janeiro, Brazil, 16-20 June 2003.
93
Computing Workshop at the Fifth Annual Conference on Ubiquitous Computing,
October 2003.
[Dey 1998] A. K. Dey. “Context-Aware Computing: The CyberDesk Project”. In AAAI 1998
Spring Symposium on Intelligent Environments, Technical Report SS-98-02, pp 51–54,
1998.
[Filho e Sinderen 2003] J.G. P. Filho, M. van Sinderen. “Web service architectures, semantics
and context-awareness issues in web services platforms”. WASP/D3.3, 16-26, 2003
[FIPA 2002-00061] Foundation for Intelligent Physical Agents. 2002. “FIPA Agent
Communication Language”. Especificação número 00061.
http://www.fipa.org/specs/fipa00026/index.html
[FIPA 2002-00008] Foundation for Intelligent Physical Agents. 2002. “FIPA Semantic
Language”. Especificação número 00008.
http://www.fipa.org/specs/fipa00037/index.html
[FIPA 2002-00026] Foundation for Intelligent Physical Agents. 2002. “FIPA Request
Interaction Protocol Specification”. Especificação número 00026.
http://www.fipa.org/specs/fipa00026/index.html
[FIPA 2002-00037] Foundation for Intelligent Physical Agents. 2002. “FIPA Communicative
Act Library Specification”. Especificação número 00037.
http://www.fipa.org/specs/fipa00037/index.html
94
[Goslar et al 2003] Kevin Goslar, Sven Burchholz, Alexander Schill, Hartmut Vogler. “A
Multidimensional approach to Context-Awareness”. In Proceedings of the 7th World
Multiconference on Systemics, Cybernetics and Informatics (SCI2003), 2003
[Gu et al 2004] Tao Gu, Xiao Hang Wang, Hung Keng Pung, Da Qing Zhang. “A Middleware
for Context-Aware Mobile Services”. IEEE Vehicular Technology Conference. Milan,
Italy, 2004
[Harter el al 2002] Andy Harter, Andy Hopper, Pete Steggles, AndyWard, Paul Webster.
“The Anatomy of a Context-Aware Application”. Wireless Networks, 8(2/3) 2002
[Hong e Landay 2001] Jason I. Hong and James A. Landay. “An Infrastructure Approach to
Context-Aware Computing”. In Human-Computer Interaction, 16:287–303, 2001.
[Jacobson et al 1999] Ivar Jacobson, James Rumbaugh, Grady Booch. “The Unified Software
Development Process”. Addisson-Wesley Object Technology Series. Addison-Wesley,
1999
[Korpipää e Mäntyjärvi 2003] Panu Korpipää, Jani Mäntyjärvi. “An Ontology for
Mobile Device Sensor-Based Context Awareness”. In Fourth International and
Interdisciplinary Conference on Modeling and Using Context (CONTEXT 2003): 451-
458. Stanford, California (USA), June 23-25, 2003
[Korpipää et al 2003] Panu Korpipää, Jani Mäntyjärvi. “An Ontology for Mobile Device
Sensor-Based Context Awareness”. Proc. Context ’03, LNAI no. 2680, 2003
[Kummerfeld et al 2003] Bob Kummerfeld, Aaron Quigley, Chris Johnson, Rene Hexel.
“Merino:Towards an intelligent environment architecture for multigranularity context
description”. In User Modeling for Ubiquitous Computing, 2003
95
[Möller et al 2004] Thorsten Möller, Patricia Schirmer, Heiko Schuldt, Ari Kinnunen,
Christian Stark, Raimund Vogel. “Emergency Healthcare Scenario Description”.
CASCOM project, TeliaSonera 2004
[Prekop e Burnett 2002] Paul Preko, Mark Burnett. “Activities, context and ubiquitous
computing”. In Elsevier Science PII: S0140-3664(02)00251-7, 2002
[Ritchie 2002]Martin Ritchie. “Pre & Post Processing for Service Based Context-Awareness”.
In Technical Report Equator-02-023, University of Glasgow / Department of Computing
Science, 2002.
[Schmidt et al 1998] A. Schmidt, M. Beigl, and H.W. Gellersen. "There is more to Context
than Location". In Proceedings of the International Workshop on Interactive
Applications of Mobile Computing (IMC98), Rostock, Germany, November 1998.
[W3C 2004b] World Wide Web Consortium. 2004. “XML Schema 1.1 Release”.
http://www.w3.org/XML/Schema
[W3C 2005] World Wide Web Consortium. 2005. “OWL-S 1.0 Release”.
http://www.daml.org/services/owl-s/1.0/
96