Percepção de Contexto - UFG · – Contexto computacional: rede, conectividade, custo da ......

46
Percepção de Contexto Vagner J. do Sacramento Rodrigues 2 Créditos • Material: – Desenvolvido por: Ricardo da Rocha – Adaptado por: Vagner J. do Sacramento

Transcript of Percepção de Contexto - UFG · – Contexto computacional: rede, conectividade, custo da ......

1

Percepção de Contexto

Vagner J. do Sacramento Rodrigues

22

Créditos

• Material:– Desenvolvido por: Ricardo da Rocha– Adaptado por: Vagner J. do Sacramento

2

33

Roteiro

• Motivação• Contexto e Computação Sensível ao

Contexto• Exemplos de Aplicações• Problemas Relacionados• Arquitetura de Software• Modelagem de Contexto• Monitoramento de Contexto• Modelos de Programação• Middlewares

44

Motivação

• Visão tradicional de sistemas:– Caixas pretas que recebem entradas do

usuário

• Características:– Entrada/Saída explícitas: lenta, intrusiva,

requer atenção do usuário– Loop sequencial entrada-saída

• Interesse em mover da visão caixa pretapara sensível a contexto– Tirar o usuário do “loop” (sempre que possível)– Reduzir a interação explícita (sempre que

possível)

3

55

Motivação

• Modelo sensível a contexto

Sistema SensívelAo Contexto

Entradaexplícita

Saídaexplícita

Contexto:• estado do usuário• estado do ambiente físico• estado do sistema computacional• histórico de interações do usuário …

66

Motivação

• Duas abordagens opostas:– garantir mobilidade transparente vs. – fazer com que aplicações estejam cientes da mobilidade

• Aplicações cientes da mobilidade/contexto(mobile/context-awareness):– podem se adaptar dinamica- e automaticamente a

mudanças no ambiente e às necessidades correntes do usuário sem exigir a sua atenção

– Podem explorar características do ambiente tais como a posição do usuário, pessoas próximas, hora do dia, níveis de ruído, etc. para fornecer serviços e informações adequados ao contexto

4

77

Roteiro

• Motivação• Contexto e Computação Sensível ao

Contexto• Exemplos de Aplicações• Problemas Relacionados• Arquitetura de Software• Modelagem de Contexto• Monitoramento de Contexto• Modelos de Programação• Middlewares

88

Contexto

• Dey– Qualquer informação que possa ser utilizada

para caracterizar a situação de uma entidade, onde uma entidade pode ser uma pessoa, lugar ou objeto que é considerada relevantepara uma interação entre um usuário e umaaplicação, incluindo o próprio usuário e a aplicação.

– Exemplos típicos de contexto são localização, identidade, estado de pessoas e grupos, e objetos computacionais e físicos.

5

99

Definições de Contexto (1)

Schilit (e outros) identificaram 4 categorias:– Contexto computacional: rede, conectividade, custo da

comunicação, banda passante, recursos (impressoras, estações, etc.)

– Contexto do usuário: perfil do usuário, posição, velocidade, pessoas próximas, situação social, estado de espírito, etc.

– Contexto físico: luminosidade, nível de ruído, temperatura, humidade,

– Contexto de tempo: hora do dia, dia/mes/ano, semana, época do ano

1010

Definições de Contexto (2)

• Chen/Kotz definem contexto em função de seu efeito sobre uma aplicação:“Contexto é o conjunto de estados do meio ambiente que:

• ou determinam o comportamento de uma aplicação, ou • Causam a ocorrência de um evento específico da aplicação

que é relevante para o usuário”

O Primeiro denominaram contexto ativo, e o segundo contexto passivo.

6

1111

Context-aware Computing

Schilit definiu 4 categorias de Computação Consciente do Contexto (CCC):

• Seleção baseada em proximidade: técnica de IHC onde objetos mais próximos são ressaltados ou favorecidos para acesso

• Reconfiguração automática: incorporação/remoção dinâmica de componentes, e/ou das conexões entre os mesmos dependendo do contexto

• Informação e comandos contextuais: a informação mostrada e os serviços de rede disponíveis dependem do atual contexto

• Ações disparadas por trocas de contexto

1212

Context-aware Computing

Pascoe propôs uma taxonomia de propriedades conscientes do contexto:– Sensoriamento– Adaptação– Descoberta de recursos– Correlação entre dados e elementos contextuais

(contextual augmentation)

Dey combina estas em sua classificação:– Apresentação de infomação e serviços– Execução automática de funções– Rotulamento de informação a (elementos do) contexto

7

1313

Context-aware Computing

De acordo com a sua classificação de contexto, Chen/Kotz definem:

• CCC Ativa: uma aplicação que adapta o seu comportamento automaticamente ao contexto percebido

• CCC Passiva: uma aplicação que mostra ao usuário informação de acordo com o contexto, ou registra o contexto em memória persistente para futura consultaCCC Ativa leva a novas aplicações e requer infra-estrutura específica

1414

Exemplos Existentes de uso de Contexto

Context TypesExisting Examples Human Concern

Room ActivitySmoke Alarm Safety

Room ActivityAuto Lights On / Off Convenience

Object IdentityBarcode Scanners Efficiency

Personal Identity & TimeFile Systems Finding Info

TimeCalendar Reminders Memory

8

1515

Exemplos Potenciais de Uso de Contexto

Existing Examples Context TypesPotential Examples Human Concern

Activity Convenience

Activity Finding Info

Identity Memory

Identity & Time Safety

Time Efficiency

Identity

Time

Location

Proximity

Activity

History

Health Alert

Auto Cell Phone Off In Meetings

Service FleetDispatching

Tag Photos

Proximal Reminders

1616

Roteiro

• Motivação• Contexto e Computação Sensível ao

Contexto• Exemplos de Aplicações• Problemas Relacionados• Arquitetura de Software• Modelagem de Contexto• Monitoramento de Contexto• Modelos de Programação• Middlewares

9

1717

Aplicações

Shopping Assistant (AT&T Bell Labs, 1994)• Usa a localização do cliente na loja para guiar o

comprador pela loja, p.ex. – mostra a localização de certos itens,– indica promoções, – faz uma comparação de preços, etc.

• Para usuários cativos e usuários anônimos, que permitem (ou não) o uso de seus perfis ou preferências de consumo

1818

Aplicações

Cyberguide (Georgia Tech, 1997)• Fornece ajuda a turistas, como:

– informações sobre caminhos/rotas/atrações– informações adicionais sobre as atrações visitadas

(história, vida do artista)– permite deixas comentários sobre os itens visitados

para futuros usuários– automaticamente compila um diário de visitas e a partir

desta informação– faz sugestões sobre lugares que possam interessar

• Localização indoors (usando dispositivos com infra-vermelho) e outdoors (GPS)

10

1919

Aplicações

Conference Assistant (Georgia Tech, 1999)• Usa informação de contexto sobre atividade do

usuário, seus interêsses, sua localização, hora e o programa da conferência para auxiliar o participante de uma conferência:– sugerir sessões/palestras que deve assistir– na sala de apresentação, é mostrado o nome do

palestrante, título da apresentação, etc.– os slides, e todos os comentários, perguntas, anotações

são gravados (em audio e vídeo) para posterior consulta

• Localização Indoors (usando active badges)

2020

Aplicações

GUIDE (Lancaster, 1999)• Guia para turistas da cidade de Lancaster• Usa 802.11 para comunicação e detecção de localização

(conexão com um AP)• As células são distantes e sem interseção (handover

desabilitado) permitindo melhor identificação de localização• Cada celula possui um servidor da célula, que difunde

informações sobre atrações locais para usuários naquela célula

• Dispositivo é um TabletPC TeamPad (21x15cm, 850g), e acesso através da Web

Cheverst, Davies, Mitchel, Friday: Experiences of Developing a Context-AwareTourist Guide: The GUIDE Project.

11

2121

GUIDE

2222

GUIDE

12

2323

GUIDE (cont.)

• Modelo de Informação de Contexto baseado na integração de hipertexto e um modelo de objetos ativos, baseado em 2 tipos de objetos:– Objetos de localização: representam as atrações físicas,

p.ex. Um castelo (possuem atributos como localização, horários de funcionamento)

– Objetos de pontos de navegação: páginas Web com informações sobre as atrações e referências para outras informações

• Disseminação de informação é por multicast IP: dispositivo entra em grupo multicast onde informação sobre a célula corrente está sendo difundida

2424

GUIDE (cont.)

Modelo de Informação de Contexto do GUIDE:

CastleCafé

Gallery Objetos de Localização

Objetos de Pontos de Navegação

Referencias entre objetos

13

2525

Roteiro

• Motivação• Contexto e Computação Sensível ao

Contexto• Exemplos de Aplicações• Problemas Relacionados• Arquitetura de Software• Modelagem de Contexto• Monitoramento de Contexto• Modelos de Programação• Middlewares

2626

Problemas Relacionados

• Modelos– Descrever a complexidade do ambiente– Descrever a imprecisão dos sensores

• Sistemas– Heteronegeidade, interoperabilidade– Manutenção e evolução– Segurança– Distribuição, desempenho– Modelo de programação

• Aspectos Humanos– Inferir desejo do usuário– Privacidade– Contexto deve ser compreensível

14

2727

Roteiro

• Motivação• Contexto e Computação Sensível ao

Contexto• Exemplos de Aplicações• Problemas Relacionados• Arquitetura de Software• Modelagem de Contexto• Monitoramento de Contexto• Modelos de Programação• Middlewares

2828

Aspectos/Abstrações para uma Infra-estrutura CW

Situação e Identificaçãode Contexto

Situação e Identificaçãode Contexto

Percepção:Simbólicos observáveis

Percepção:Simbólicos observáveis

Sensoriamento: valores observáveisSensoriamento:

valores observáveis

Asp

ectos O

rtogonais

Asp

ectos O

rtogonais

Exploração

• Cada aspecto pode ser interpretado como uma camada em que abstrações podem ser interpretadas

• Uma infra-estrutura (MW ou FW) deveria dar suporte a todos esses aspectos

15

2929

Abstrações para Computação CW (1/7)

Situação e Identificaçãode Contexto

Situação e Identificaçãode Contexto

Percepção:Simbólicos observáveis

Percepção:Simbólicos observáveis

Sensoriamento: valores observáveisSensoriamento:

valores observáveisAsp

ectos O

rtogonais

Asp

ectos O

rtogonais

Exploração

• Sensoriamento: produz valores gerados por sensores, resultado de interpretação do ambiente

3030

Abstrações para Computação CW (2/7)

Situação e Identificaçãode Contexto

Situação e Identificaçãode Contexto

Percepção:Simbólicos observáveis

Percepção:Simbólicos observáveis

Sensoriamento: valores observáveisSensoriamento:

valores observáveis

Asp

ectos O

rtogonais

Asp

ectos O

rtogonais

Exploração

• Percepção: valores são interpretados como valores simbólicos, independente do sensor

16

3131

Abstrações para Computação CW (3/7)

Situação e Identificaçãode Contexto

Situação e Identificaçãode Contexto

Percepção:Simbólicos observáveis

Percepção:Simbólicos observáveis

Sensoriamento: valores observáveisSensoriamento:

valores observáveisAsp

ectos O

rtogonais

Asp

ectos O

rtogonais

Exploração

• Valores são interpretados como abstração de contexto e situações do ambiente

3232

Abstrações para Computação CW (4/7)

Situação e Identificaçãode Contexto

Situação e Identificaçãode Contexto

Percepção:Simbólicos observáveis

Percepção:Simbólicos observáveis

Sensoriamento: valores observáveisSensoriamento:

valores observáveis

Asp

ectos O

rtogonais

Asp

ectos O

rtogonais

Exploração

• Abstração de contexto é explorada e utilizada por elementos interessados

17

3333

Abstrações para Computação CW (5/7)

Situação e Identificaçãode Contexto

Situação e Identificaçãode Contexto

Percepção:Simbólicos observáveis

Percepção:Simbólicos observáveis

Sensoriamento: valores observáveisSensoriamento:

valores observáveisAsp

ectos

Orto

gonais

Asp

ectos

Orto

gonais

Exploração

• Alguns aspectos ou abstrações não fazem parte de nenhuma camada em especial.

• Exemplo: privacidade, histórico, confiança

• Infra-estruturas podem implementá-las em diferentes camadas ou como elementos ortogonais

3434

Abstrações para Computação CW (6/7)

Situação e Identificaçãode Contexto

Situação e Identificaçãode Contexto

Percepção:Simbólicos observáveis

Percepção:Simbólicos observáveis

Sensoriamento: valores observáveisSensoriamento:

valores observáveis

Asp

ectos

Orto

gonais

Asp

ectos

Orto

gonais

Exploração

Modelos

18

3535

Abstrações para Computação CW (7/7)

Camada de Contexto Middleware / Infra-estrutura

Camada de Contexto Middleware / Infra-estrutura

Camada lógicaCamada lógica

Camada físicaSensoriamentoCamada físicaSensoriamento

Serviço

sServiço

s

AplicaçõesAplicações

Modelos de Programação

3636

Exemplo de OrganizaçãoConfab (1/5)

• Cada camada provê certo nível de abstração & serviços

• Interação entre camadas usando formatos de dados e protocolos padronizados Tecnologia usada em cada camada pode mudar, contanto que a interface entre camadas permaneça inalterada

Physical

Logical

Context

Application

Infr

astr

uct

ure

19

3737

Exemplo de OrganizaçãoConfab (2/5)

• Sensores captam sinais puros• Exemplos

– GPS (localização)– Active Badges

(identidade+localização)– Sensores de pressão,

temperatura– Cameras ou microfones

Physical

Logical

Context

Application

3838

Exemplo de OrganizaçãoConfab (3/5)

• A camada Lógica é a modelagem da camada física em SW– Codificação de sinais para dados e

eventos primitivos– Interpretação básica de valores

(TempSensor=110 Quente)– Sensor de Presença => Sala 246L

• Precisa-se modelar– Precisão– Granularidade– ConfiabilidadePhysical

Logical

Context

Application

20

3939

Exemplo de OrganizaçãoConfab (4/5)

• Transformação de dados de sensores em dados de contexto

• Fusão/Interpretação de dados de sensores – Combinação de dados sensoriais de

diferentes tipos– Leitura de vários dados de sensores

ao longo do tempo– A partir de precisão, granularidade e

confiabilidade inferir probabilidade

• Definição de contextos complexos– Dirigindo– Na sala de cinema

Physical

Logical

Context

Application

4040

Exemplo de OrganizaçãoConfab (5/5)

• Definição do contexto apropriado/relevante para a aplicação– Combinação de contextos de

diferentes naturezas– Definição das ações a serem

tomadas

Physical

Logical

Context

Application

21

4141

Roteiro

• Motivação• Contexto e Computação Sensível ao

Contexto• Exemplos de Aplicações• Problemas Relacionados• Arquitetura de Software• Modelagem de Contexto• Monitoramento de Contexto• Modelos de Programação• Middlewares

4242

Modelagem de Contexto

• Tarefa de estruturar uma informação contextual, com objetivo de:– Permitir a correta interpretação da informação

de contexto pelos usuários e desenvolvedores– Permitir o processamento de informações de

contexto– Reutilizar contexto

• Faz parte do processo de engenharia de software de aplicações sensíveis a contexto

22

4343

Modelagem de Contexto

• Características da Informação de Contexto– Informação contextual pode possuir

várias características temporais: estático x dinâmico, atraso na recuperação de contexto, histórico de contexto, ...

– Informação contextual é imperfeita: imperfeição dos sensores, desatualização, algoritmos de inferência, ...

– Contexto pode ter várias representações alternativas: abstrações. Ex: localização em coordenadas e em posição simbólica.

– Informação contextual é altamente inter-relacionada

4444

Modelagem de Contexto

• Elementos para modelagem de contexto– Objeto do contexto: entidades, atividades,

tempo– Estado: estático e dinâmico, local e distribuído,

temporalidade– Relacionamento entre contextos: abstração,

composição, distribuição, inferência– Qualidade de contexto: ambiguidade e

confiabilidade, negociação– Representação– Eventos: declaração de meta-eventos,

abstração e composição

23

4545

Modelagem de Contexto

• Tipos de modelos de contexto– Pares chave-valor– Baseados em linguagens de marcadores– Gráficos– Baseados em lógica– Baseados em orientação a objetos– Baseados em ontologias

4646

Pares chave-valor

• Contexto é descrito como um conjunto de pares (chave, valor)

• Exemplo:((Usuário = “rcarocha”),(Localização = “LAC”),(Dispositivo = “Pocket PC”),(SO = “Windows CE”))

• Modelo utilizado em alguns projetos (Schilit94, MoCA), devido à simplicidade

• Bastante limitado

24

4747

Modelos baseados em linguagens de marcadores

• Utiliza um linguagem baseada em marcadores (XML) para representar contexto em uma forma hierárquica

• Muitas abordagens estendem o padrão CC/PP, como CSCP (ComprehensiveStructured Context Profiles)

4848

Modelos gráficos

• Utilizam uma abordagem similar a UML (ou mesmo uma extensão) para modelar contexto

• Útil para modelar a estrutura de contexto• Exemplo: UML, ORM estendido

25

4949

Modelos baseados em orientação a objetos

• Utilizam construções e abstrações de orientação a objetos para modelar contexto– Encapsulamento– Abstração– Reutilização

• Exemplo:– Cues (projeto TEA)– Active Object Model (GUIDE)

5050

Modelagem de Qualidade de Contexto

• Suporte a qualidade de contexto: associações possuem anotações referentesaos parâmetros de qualidade– Cada parâmetro é descrito como uma ou mais

métricas de qualidade, a qual representaformas precisas de medir qualidade de contexto com respeito ao parâmetro

– Dependente da aplicação:• e.g., localização do usuário: accuracy, freshness• e.g., atividade do usuário: certainty, accuracy

26

5151

Exemplo de modelagem de qualidade de contexto

5252

Roteiro

• Motivação• Contexto e Computação Sensível ao

Contexto• Exemplos de Aplicações• Problemas Relacionados• Arquitetura de Software• Modelagem de Contexto• Monitoramento de Contexto• Modelos de Programação• Middlewares

27

5353

Monitoramento de Contexto

• Tipos de sensores• Características

– Erros– Sensoriamento de informações diferentes– Localização física– Técnicas dependem muito da aplicação

5454

Exemplo: Sensoriamento de Localização

Abordagens para a obtenção da localização diferem nos seguintes aspectos:

• Parâmetros necessários para cálculo da posição • Fenômeno físico utilizado• Gasto de Energia• Infra-estrutura necessária• Complexidade de tempo dos algoritmos utilizados

28

5555

Serviços Baseados em Localização

• Fornecem informações e/ou funcionalidades dependentes da posição física do usuário no momento da invocação do serviço

• Exemplos:– Mapas/Informações sobre a região corrente (Sala de

um Museu, Parque Temático)– Restaurantes próximos– Mensagem (ou ligação telefônica) é encaminhada para

um computador ou telefone mais próximo

5656

LBS: Principais Componentes

• Usuário móvel: precisa ter dispositivo com interface sem fio + elemento para inferência de localização (ou sinalização de identificação)

• Provedor: entidade que provê o LBS (para redes especificas, em determinada região, etc.)

• Protocolo de comunicação• Método e Infra-estrutura para determinar a

localização de um usuário (dispositivo de comunicação + identificação)

29

5757

Técnicas de Localização

• Etapas:1. Estimativa de distância, ângulo ou sinal2. Cálculo de Coordenadas

• Técnicas:– Triangulação– Proximidade – Análise de Cenas

5858

Tipos de Soluções para Redes Celulares

• Centralizada vs. Distribuída– Dispositivos enviam as informações para um único nó

que faz o cálculo das posições, ou – cálculo da posição é feito no dispositivo

• Baseada em rede vs. no terminal:– Uso de equipamentos de localização em rede para a

detecção de posição– Dispositivos têm componentes especializados em

detectar sinais e calcular posição (GPS,...)

30

5959

Algumas Técnicas

Baseadas na Rede:• Cell of Origin: ID da Celula + Tempo decorrido• Received Signal Strength Indicator (RSSI): Atenuação• Multipath Fingerprinting: o padrão de ondas de rádio

refletidas determina o local aproximado• Time Difference of Arrival (TDoA): Lateração• Angle of Arrival (AoA): AngulaçãoBaseadas no terminal (Handset-based):• Enhanced Observed Time Difference (E-OTD): TDoA no

dispositivo• Global Positioning System: Multilateração NAVSTAR• Assisted GPS (A-GPS):• Advanced Forward Link Trilateration (A-FLT): Lateração p/

CDMA

6060

Técnicas de Localização Indoor

• Infra-estrutura de sensores RF– Active Badge– Active BAT (AT&T Labs)

• Combina RF com Ultra-som– Cricket (Projeto Oxygen, MIT)

• Baseado em intensidade de sinal 802.11– RADAR (Microsoft)– Ekahau Positioning Engine (Ekahau)

• Reconhecimento de imagens – Easy Living

31

6161

Técnicas de Localização Indoor

Principais Diferenças:• Necessidade de sensores/transmissores especiais• Identificação de Usuário vs. Dispositivo • Permitem a detecção/ rastreamento de usuários • Precisão: região de cobertura vs. posição

geográfica• Tratamento de interferências

6262

Active Bat

AT&T Labs e Cambridge desenvolveram o Bat Ultrasonic LocationSystem

• Principais requisitos– Granularidade fina– Localização 3D em ambientes fechados (Indoors)– Informação de Orientação

• Objetivos:– Baixo consumo de energia– Wireless– Baixo custo

• Usa Multi-lateração (uma matriz de receptores fixos e transmissores móveis)

32

6363

Active Bat

• Cada transmissor tem:– 1 trans-receptor RF, – vários transmissores ultrasônicos, – 1 micro-processador– um ID único

• Elementos receptores:– Consistem de um receptor RF– Com interface para uma rede – Posicionados no teto– Conectados por uma rede serial formando uma matriz– Esta rede é conectada em um computador para rastrear os

transmissores

6464

Active Bat

Técnica de Localização:• Uma Estação Base RF difunde mensagens para cada

transmissor• A cada mensagem recebida, o transmissor envia um pulso

ultrasônico• Os receptores também recebem o sinal de RF• Estimativa de distância é feita nos receptores a partir do

delay entre o sinal RF e o sinal ultrasônico, que é enviada ao computador para cálculo das coordenadas

• Coordenada é armazenada em uma base de dados de localização

33

6565

Active Bat

ERB

RF

RFUltra-soundsignal

Central computer

LocationDatabase

transmitter

receptors

Distances

6666

Roteiro

• Motivação• Contexto e Computação Sensível ao

Contexto• Exemplos de Aplicações• Problemas Relacionados• Arquitetura de Software• Modelagem de Contexto• Monitoramento de Contexto• Modelos de Programação• Middlewares

34

6767

Modelos de Programação (1/3)

• Contexto não é elemento de 1a classe naslinguagens de programação

• Tarefas Principais:– Acesso a informação de contexto: síncrono– Reatividade / Adaptação: assincronismo

• Desafios– Prover abstrações de programação específicas– Compartilhamento de abstrações– Facilitar a manutenção e evolução do software

6868

Modelos de Programação (2/3)

• Níveis de adaptação– Aplicações– Intra-serviço– Inter-serviços

• Estratégias de Adaptação– Aplicações indicam mudanças no

comportamento (if-then)– Cliente registra nível de recurso desejado

(eventos)– Interação com o usuário (interativo)

• Modelos de Programação devem permitir a especificação de tais situações

35

6969

Modelos de Programação (3/3)

• Não há modelo de programação para computação sensível a contexto– Diversas abordagens propostas

• Modelos Propostos:– Programação direta– Triggers– Reflexão computacional– Adaptação baseada em perfis– Modelos mais específicos: COP

• Modelos não são completamente ortogonais

7070

Programação Direta

• Modelo tradicional de programação, no qualadaptações dependentes do contexto sãoexpressas por conjuntos de cláusulas IF-THEN

• Código indica explicitamente quais tarefas devemser executada para cada informação de contextoavaliada

• Adaptação fica fortemente atrelada ao códigoqualquer evolução é expressa em modificação no código

• Desvantagens:– Difícil manutenção e evolução– Código pouco legível– Alta dependência entre modelos de contexto e código– Geralmente associado ao modelo síncrono de acesso a

contexto

36

7171

Triggers (1/5)

• Mais simples e comum modelo de programação para programação sensívelao contexto

• Código registra as situações contextuaisnos quais está interessado e é avisadoquando elas acontecem

• Modelo é assíncrono• Trigger

– Condição de interesse– Callback código que deve ser executado na

ocorrência da condição

7272

Triggers (2/5)

• Exemplo: Context Toolkit

37

7373

Triggers (3/5)

• Exemplo de trigger (subscription) na MoCA:((EnergyLevel < 65) or (FreeMemory < 18000) or

((OnLine = false) and (DeltaT > 8000)) or(AdvertisementPeriodicity > 2))

– Código 1:Topic topic =

eciClient.subscribe(subject,expression); MyEventListener listener1 = new MyEventListener();

eciClient.addListener(listener1, topic);

7474

Triggers (4/5)

• Henricksen & Indulska– Aplicação registra triggers que indicam:

• Quantas vezes o trigger se aplica• Condição de entrada e saída

– Exemplo:upon EnterFalse(Occupied(“Amy Carr”))when truedo Notify of recent missed callsalways

38

7575

Triggers (5/5)

• Desvantagens– Não oferece suporte para acesso síncrono a contexto– Adaptação é expressa no código qualquer evolução

pressupõe em modificação no código– Não distingue adaptação da lógica da aplicação

• Complexidade em mudar o comportamento do software em tempo real

• Após ser notificada, a aplicação pode/deve implementar algum tipo de adaptação para os clientes correntes e futuros

• Exemplos– Context Toolkit– MoCA– Henricksen & Indulska....

7676

Reflexão Computacional

• Técnica para implementação da adaptação do comportamento do software

• Uma API permite o acesso a uma camada de meta-objetos, que descreve o software per si. Modificando tais meta-objetos, o próprio software é modificado.

• Ao invés de codificar a adaptação propriamente dita, o programador modifica os meta-objetosque descrevem o software

• Limitações– Não pressupõe mecanismos de acesso a contexto– Não é ortogonal e depende de outro modelo

complementar– Complexidade

39

7777

Adaptação baseada em Perfis

• Desenvolvedor descreve perfis ou políticas de adaptação do software

• Cada perfil especifica– Condição contextual em que ele deve ser

aplicado– Comportamento que deve ser adotado

• Perfis podem ser especificados externamente ao código

• Exemplos:– MobiPADS– CARISMA– Henricksen & Indulska, …

7878

MobiPADS

• Perfil é descrito em um arquivo XML, externo àsaplicações

• Descreve uma configuração de serviços do middleware: quais devem ser selecionados e como eles devem ser encadeados

40

7979

CARISMA

• Aplicações definem perfis como conjunto de políticas que devem ser adotadas para cada serviço (do middleware)

• Middleware se encarrega de selecionar o perfil apropriado

• Adaptação não é expressa na aplicação

8080

Adaptação baseada em Perfis

• Problemas resultantes Conflitos de perfis– Quando mais de um perfil se aplica a um

determinado contexto• Podem ocorrer para uma mesma aplicação, entre

perfis de aplicações/serviços em um mesmo dispositivo ou pode ser um conflito distribuído

• Vantagens– Adaptação é desacoplada do código– Permite uso de perfis de alto-nível, utilizados

inclusive pelo próprio usuário– Reutilização (perfis podem ser compartilhados

entre várias aplicações)

41

8181

Roteiro

• Motivação• Contexto e Computação Sensível ao

Contexto• Exemplos de Aplicações• Problemas Relacionados• Arquitetura de Software• Modelagem de Contexto• Monitoramento de Contexto• Modelos de Programação• Middlewares

8282

Middlewares

• Facilitam o desenvolvimento de aplicações e serviços sensíveis a contexto.

• Por que não simplesmente um serviço de contexto? – Porque os próprios serviços do middleware podem ser

sensíveis a contexto. – Sua adaptação deve ser tratada em um nível diferente

mas complementar à adaptação de aplicações

• Papéis– Serviço de assinatura e entrega de contexto– Serviço de querying – Serviço de transformação e síntese de contexto– Descoberta e gerenciamento de serviços– Provê camada e paradigma de adaptação– Resolução de conflitos

42

8383

Middlewares

• Deve prover adaptação em diferentes níveis– Aplicação– Inter-serviços– Intra-serviços

• Componentes básicos– Monitoramento de sistema (suporte a

sensores)– Context Broker– Repositório de Contexto

• Exemplos:– Context Toolkit, MoCA, MobiPADS, CARISMA,

...

8484

Context Toolkit

• Toolkit para desenvolvimento de aplicações distribuídas e sensíveis a contexto– Framework para aquisição e tratamento de

contexto– Componentes padronizados

• Três abstrações-chave– Widgets, Interpreters e Aggregators

43

8585

Context Widgets

• Widgets implementam abstrações sobresensores

GPSActiveBadge

App App

LocationWidget

Cell PhoneLocation

ActiveBadge

8686

Context Interpreters

• Convertem ou interpretam contexto emuma informação de mais alto nível

App

LocationWidget

Location to Room

Interpreter

Location to Street

Interpreter

44

8787

App

PersonAggregator

ActivityWidget

AffectWidget

App

LocationWidget

Location to Room

Interpreter

Context Aggregators

• Agregam contextos em entidadesparticulares, facilitando o uso e desenvolvimento

8888

Context Services

• Componentes que executam açõesbaseadas em contexto e que atuam no ambiente In/out

board

45

8989

Context Discoverer

• Registra os componentes de contexto

In/outboard

9090

Conclusões (1/2)

• Desenvolvimento de aplicações sensíveis a contexto, requerem– Modelo de contexto apropriado para modelar a

complexidade do contexto a ser utilizado. – Modelo de programação de aplicações

sensíveis a contexto, que permita:• Adaptações em vários níveis• Separação da lógica do programa com lógica das

adaptações• Compartilhamento de abstrações

– Infra-estrutura (middleware) que oculte a complexidade do sistema, como por exemplo, sensoriamento do ambiente

46

9191

Conclusões (2/2)

• Não existem modelos padronizados e nem tampouco que seja comprovadamente adequados a quaisquer aplicações sensíveis a contexto

• Os modelos e infra-estruturas estão em geral muito limitados a um domínio de aplicação. Ex: mecanismos do MobiPADS funcionam melhor em adaptação de conteúdo (web)

• Atualmente, uma disciplina de Engenharia de Software Sensível a Contexto só pode ser definida a partir das particularidades da infra-estrutura e/ou modelo adotado como referência para implementação

• Soluções atuais ainda produzem software sensível a contexto bastante complexo