Um framework para aquisição adaptativa e fracamente acoplada de informação contextual para dispositivos móveis por André Sales Fonteles - Versão HTML

ATENÇÃO: Esta é apenas uma visualização em HTML e alguns elementos como links e números de página podem estar incorretos.
Faça o download do livro em PDF, ePub, Kindle para obter uma versão completa.

1.

Sensibilidade ao Contexto 2.

Adaptação de Software

3. Dispositivos Móveis I. Profa. Rossana Maria de Castro An-

drade, PhD(Orient.) II. Universidade Federal do Ceará– Ciência

da Computação(Mestrado) III. Mestre

CDD:000.0

ANDRÉ SALES FONTELES

UM FRAMEWORK PARA AQUISIÇÃO ADAPTATIVA E

FRACAMENTE ACOPLADA DE INFORMAÇÃO CONTEXTUAL

PARA DISPOSITIVOS MÓVEIS

Dissertação submetida à Coordenação do Curso de Pós-Graduação em Ciência da Computação,

da Universidade Federal do Ceará, como requisito parcial para a obtenção do grau de Mestre em Ciência da Computação. Área de concentração: Ciência da Computação

Aprovada em: __/__/____

BANCA EXAMINADORA

Profa. Rossana Maria de Castro Andrade, PhD

Universidade Federal do Ceará - UFC

Orientador

Prof. Windson Viana de Carvalho, DSc.

Universidade Federal do Ceará - UFC

Co-orientador

Prof. Fernando Antônio Mota Trinta, DSc.

Universidade Federal do Ceará - UFC

Prof. Jérôme Gensel, DSc.

Université Pierre Mendès France – UPMF

Ao meu Deus, a meus pais, Edenildo

e Suzani, e a minha esposa linda, Lya

AGRADECIMENTOS

Agradeço a Jesus Cristo, por ter me acompanhado como amigo fiel até aqui e pela

certeza de que continuará me acompanhando. Por ter me aberto as portas e por ter me apre-

sentado as pessoas que me acompanharam durante essa fase da minha vida. Por ter me dado

capacidade e perseverança para escrever esse trabalho. Por ter me dado paz e vida. A ele devo TUDO o que tenho e que sou.

Aos meus orientadores, Professor Windson e Professora Rossana, por terem me

guiado e me acompanhado nessa árdua tarefa de concluir um mestrado. Quero sempre me

recordar do exemplo e dedicação de Windson ao entrar madrugadas juntamente com seus alunos no laboratório para concluir artigos. Da mesma forma da professora Rossana, que mesmo tão

atarefada disponibilizou de seu precioso tempo para me auxiliar, corrigir e orientar.

Aos professores Fernando Trinta e Jérôme Gensel, que compõem a banca examina-

dora e certamente contribuirão com o bom resultado desse trabalho.

Também sou grato a meus pais, Edenildo e Suzani, pelo apoio, carinho e pelo exem-

plo que eles sempre me deram.

Sou grato de igual forma a minha esposa Lya, que me apoiou e auxiliou desde o

início. Pela sua cumplicidade, seu amor e pela sua paciência e carinho quando estive cansado.

Não poderia também deixar de agradecer ao meu amigo Benedito Neto, por ter me

ajudado em todas as minhas empreitadas durante todo o mestrado e por também ter sido um

exemplo de caráter.

Ao Professor Carlos André, que me auxiliou na complexidade dos algoritmos.

Ao amigo e gerente Bruno Sabóia, que sempre flexibilizou meus horários para que

eu resolvesse as coisas do mestrado.

Também agradeço a todos os amigos e colegas do GREat que me acompanharam

e compartilharam experiências durante o mestrado. Em especial ao Ricardo(Zezim), Nayane,

Rafael Lima, Ismayle, Rainara, Charles, Adyson.

Enfim, a todos que me ajudaram de alguma forma na conclusão desse trabalho.

“Se, com a tua boca, confessares Jesus como

Senhor e, em teu coração, creres que Deus o

ressuscitou dentre os mortos, serás salvo.”

(Romanos 10:9)

RESUMO

Dispositivos móveis, tais como smartphones e tablets, dotados de uma série de sen-

sores se tornaram comuns no nosso dia a dia. Esse cenário propiciou que aplicações dessas

plataformas acessassem cada vez mais informações contextuais do ambiente, do sistema e do

usuário para se adaptar de acordo ou oferecer serviços relevantes. Aplicações dotadas desse comportamento são conhecidas como sensíveis ao contexto. Várias infraestruturas já foram

criadas para auxiliar no desenvolvimento de aplicações desse tipo. Essas infraestruturas facilitam a aquisição e o gerenciamento de informações contextuais. Todavia, muitas delas não

são apropriadas para o ambiente de execução heterogêneo e peculiar dos dispositivos móveis.

Esse trabalho de dissertação de mestrado apresenta uma infraestrutura para aquisição de contexto chamada CAM (Context Acquisition Manager). CAM é um framework projetado para

utilização em dispositivos móveis dotados de sensores embarcados. Entre suas principais características estão o fraco acoplamento entre ele e as aplicações que o utilizam e a possibilidade de adaptação no momento de implantação ou de execução. A adaptação na implantação permite

ao desenvolvedor personalizar quais características serão incluídas na instalação do framework.

Já a adaptação em tempo de execução permite desabilitar ou habilitar partes do framework conforme a demanda. Para avaliação desse trabalho foi desenvolvida uma aplicação sensível ao

contexto como prova de conceito que utiliza o framework CAM. Através do desenvolvimento

dela, foi possível perceber a clara separação entre o código de aquisição de contexto, encapsu-lado no framework, do código de uma aplicação que o utiliza. Também foi desenvolvido um

protótipo de uma outra aplicação, no qual foram realizados testes do mecanismo de adaptação dinâmica do framework. No experimento foi analisado o impacto da adaptação na utilização do processador e da memória primária do dispositivo, que mostrou um aumento na economia de

ambos.

Palavras-chave: Sensibilidade ao Contexto. Adaptação de Software. Dispositivos Móveis.

ABSTRACT

Mobile devices, such as smartphones and tablets, with a number of sensors have be-

come commonplace in our daily lives. This scenario promotes applications from these platforms to increasingly access contextual information of the environment, the user and the system, which adapt accordingly or offer relevant services. This behavior is known as context-awareness. Several infrastructures have been created to help in the development of context-aware applications. These infrastructures facilitate the acquisition and management of contextual information.

However, many of them are not appropriated to the heterogeneous and particular environment of mobile devices. This work presents an infrastructure for context acquisition called CAM

(Context Acquisition Manager). CAM is a framework designed for use in sensor rich mobile

devices. Among its main features are the loosely coupling with the applications that use it and the possibility of adapting in deployment time or execution time. The deployment adaptation allows a developer to customize what features will be included in the installation of the framework. The adaptation in execution time allow the framework to enable or disable its features according to applications requirements. To evaluate this work we developed a context-sensitive application as a proof of concept that uses the framework CAM. Through the development of

this application, it was possible to notice a clear separation between the context acquisition code, wrapped by the framework, and the application code. A prototype of another application in which tests were performed on the dynamic adaptation mechanism of the framework was

also developed. In this experiment, the impact of the adaptation on the resources of the device was investigated, which showed an increased economy in memory and CPU.

Keywords: Context Awareness. Software Adaptation. Mobile Devices.

LISTA DE FIGURAS

Figura 1.1 O framework CAM implantado em um dispositivo Android.

. . . . . . . . . . . . . . 19

Figura 2.1 Contexto como interseção entre Zona de Interesse e Zona de Observação. Adap-

tado de Viana (2010).

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

Figura 2.2 Camadas recorrentes em infraestruturas de suporte a aquisição de contexto.

Adaptado de (BALDAUF et al., 2007).

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Figura 2.3 Arquitetura de referência para aplicações sensíveis ao contexto (MARINHO et

al., 2012).

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Figura 2.4 Processo de adaptação na computação ubíqua. Adaptado de (KAKOUSIS et

al., 2010).

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Figura 2.5 Comparação entre adaptações estáticas e dinâmicas. Adaptado de (MCKIN-

LEY et al., 2004).

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

Figura 2.6 Ciclo de vida de um bundle.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

Figura 3.1 Exemplo de configuração válida dos componentes do Context Toolkit (DEY et

al., 2001).

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

Figura 3.2 Arquitetura do middleware CASS. Adaptado de (FAHY; CLARKE, 2004).

. 43

Figura 3.3 Arquitetura do SOCAM (GU et al., 2005).

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

Figura 3.4 Multilayer Framework (BETTINI et al., 2010).

. . . . . . . . . . . . . . . . . . . . . . . . . . 46

Figura 3.5 Exemplo de implementação de filtro.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

Figura 3.6 Arquitetura do SysSU. Adaptado de (LIMA et al., 2011).

. . . . . . . . . . . . . . . . . 48

Figura 4.1 O framework CAM.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

Figura 4.2 Interface implementada pelo CAC Manager.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

Figura 4.3 Trecho já definido da hierarquia para compor uma CK.

. . . . . . . . . . . . . . . . . . . 58

Figura 4.4 Exemplos de representação de informações contextuais de acordo com o mo-

delo hierárquico proposto.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

Figura 4.5 Interfaces de um CAC.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

Figura 4.6 Ciclo de vida de um CAC.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

Figura 4.7 Estrutura interna de um CAC.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

Figura 4.8 Interface ISensor.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

Figura 4.9 Exemplo de arquivo manifesto de um CAC.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

Figura 4.10 Geração do arquivo classes.dex.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

Figura 4.11 Ilustração da adaptação da aquisição de contexto.

. . . . . . . . . . . . . . . . . . . . . . . . 66

Figura 4.12 Ilustração do grafo do algoritmo.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

Figura 4.13 Processo de adaptação na (a) adição e (b) remoção de interesse.

. . . . . . . . . . . 68

Figura 4.14 Grafo de exemplo de pior dos casos para uma retirada de interesse.

. . . . . . . . 68

Figura 4.15 Arquitetura do LoCCAM.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

Figura 4.16 Exemplo de filtro contextual.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

Figura 4.17 Implementação do método filter de DistanceFilter e exemplo visual de um raio

que pode ser definido.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

Figura 4.18 Implementação do método filter de PolygonFilter e exemplo visual de um polí-

gono que pode ser definido.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

Figura 5.1 Representação visual de uma trajetória sensoreada durante um teste com a apli-

cação Context-Track.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

Figura 5.2 Trecho de código da publicação de interesses da aplicação Context-Track.

. . 79

Figura 5.3 Trecho resumido de código da LocationReaction da aplicação Context-Track.

79

Figura 5.4 Trecho resumido de código da PolygonReaction da aplicação Context-Track.

80

Figura 5.5 Trecho de código da subscrição feita por Context-Track.

. . . . . . . . . . . . . . . . . . 81

Figura 5.6 Captura de tela do protótipo não funcional do CareOnTheGo.

. . . . . . . . . . . . . 82

Figura 5.7 Relação entre perfis e interesses contextuais.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

Figura 5.8 Resultado comparando execuções do LoCCAM.

. . . . . . . . . . . . . . . . . . . . . . . . . 85

LISTA DE TABELAS

Tabela 3.1 Comparação entre os trabalhos relacionados

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

Tabela 6.1 Lista de artigos publicados.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

SUMÁRIO

1

INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16