percepção de contexto - endler/courses/mobile/transp/contexto-rca... · definições de contexto...

31
1 Percepção de Contexto Ricardo Couto Antunes da Rocha 2 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 3 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 preta para sensível a contexto – Tirar o usuário do “loop” (sempre que possível) – Reduzir a interação explícita (sempre que possível) 4 Motivação • Modelo sensível a contexto Sistema Sensível Ao Contexto Entrada explícita Saída explícita Contexto: • estado do usuário • estado do ambiente físico • estado do sistema computacional • histórico de interações do usuário …

Upload: vantuyen

Post on 12-Dec-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

1

Percepção de Contexto

Ricardo Couto Antunes da Rocha

22

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

33

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)44

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 …

2

55

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

66

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

77

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.

88

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

3

99

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.

1010

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

1111

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

1212

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

4

1313

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

1414

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

1515

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

1616

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

5

1717

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)

1818

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)

1919

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.

2020

GUIDE

6

2121

GUIDE

2222

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

2323

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

2424

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

7

2525

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

2626

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

2727

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

2828

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áveis

Asp

ectos O

rtogonais

Asp

ectos O

rtogonais

Exploração

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

8

2929

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

3030

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áveis

Asp

ectos O

rtogonais

Asp

ectos O

rtogonais

Exploração

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

3131

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

3232

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áveis

Asp

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

9

3333

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

3434

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

3535

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

3636

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

10

3737

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

3838

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

3939

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

4040

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

11

4141

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

4242

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 interrelacionada

4343

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

4444

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

12

4545

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 projetos mais antigos (Schilit94, MoCA), devido à simplicidade

• Bastante limitado

4646

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)

4747

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

4848

Modelos baseados em lógica

• Definem condições nas quais um fato ou expressão pode ser derivado a partir de um conjunto de outras expressões ou fatos.

• Possui um alto grau de formalidade– Difíceis de implementar– Difíceis de modelar contexto complexo

• Exemplo:– Teoria da situação de Akman e Surav

13

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

Modelos baseados em ontologias

• Ontologias permitem a especificação formal de conceitos e seu interrelaciomento.

• Contexto é modelado na forma de conceitos e fatos

• Exemplos:– CoBrA– CoOL– Ambient Networks

5151

ExemploHenrinksen & Indulska

• 3 entidades: pessoas, dispositivos de comunicação e canais de comunicação

5252

• Associações estáticas• Associações dinâmicas

– Sensed: transformados de dados brutos, mudam frequentemente, contém erros de sensores, ….

– Derived: uma função derivada de outrasassociações (inferência)

– Profiled: fornecida por usuários

Classificando Associações

14

5353

Exemplo mais completo

5454

Modelagem de dependências

5555

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

5656

Exemplo de modelagem de qualidade de contexto

15

5757

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

5858

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

• Complementação de sensores– Diminuição de erro– Inclusão de informação adicional– Nem sempre sensores recuperam situações

(contextos) ex:

5959

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

6060

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

16

6161

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 (através de seu dispositivo de comunicação ou identificação)

6262

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

6363

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 (TDOA, AOA,..)– Dispositivos têm componentes especializados em

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

6464

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• Angle of Arrival (AoA): Angulação• Time of Arrival (ToA): Lateração• Time Difference of Arrival (TDoA): Lateraçã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

17

6565

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

• Sensoriamento de Pressão– Smart Floor (Georgia Inst. Of Technology)

6666

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

6767

Active Bat

AT&T Labs Cambridge desenvolveram o Bat Ultrasonic Location System• 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)

6868

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

18

6969

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

7070

Active Bat

ERB

RF

RFUltra-soundsignal

Central computer

LocationDatabase

transmitter

receptors

Distances

7171

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

7272

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– Balancear decisões programadas com

interação com o usuário– Facilitar a manutenção e evolução do software

19

7373

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– Cliente registra nível de recurso desejado– Interação com o usuário

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

7474

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

7575

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

7676

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

20

7777

Triggers (2/5)

• Exemplo: Context Toolkit

7878

Triggers (3/5)

• Exemplo de trigger (subscription) no 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);

7979

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

8080

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

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

21

8181

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

8282

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, …

8383

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

8484

CARISMA

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

• Middleware se encarrega de selecionar o perfil apropriado

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

22

8585

Henricksen & Indulska (1/2)

• Abstração de situação– Perfis de alto nível, usados para que aplicações indiquem

preferências para adaptação

8686

Henricksen & Indulska (2/2)

• Usuários podem indicar que peso será dado para cada um dos perfis (situações)

• Uma API permite acesso aos perfis que se aplicam, o peso de cada um, e selecionar aquele mais adequado ao contexto corrente (Branchingmodel)

8787

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 dispositivos 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)8888

Modelos Específicos

• Modelos anteriores não são suficientespara cobrir adequadamente os requisitosde adaptação de software sensível aocontexto

• Vários modelos complementares têm sidodesenvolvidos

• Exemplo:– Modelo de branchs (Henrinksen&Indulska)– Context oriented programming– Programação com espaços do ActiveBadges

23

8989

Modelo de Branchs

• Aplicações podem selecionar qual perfil de adaptação deve ser escolhido (quando mais de um se aplica) de acordo com as especificidades da aplicação

• Alguns métodos da API de branching

9090

Context Oriented Programming (1/4)

• Rakotonirainy, University of Queensland(Australia)

• Similar ao Stick-E note

9191

Context Oriented Programming (2/4)

9292

Context Oriented Programming (3/4)

24

9393

Context Oriented Programming (4/4)

• Programa é implementado em python• Contexto é descrito em XML• Funciona melhor com documentos do que

um programas• Adaptação pode ser estática ou dinâmica

– Na adaptação dinâmica, código podeexplicitamente indicar o trecho que deve ser selecionado para um dado contexto

9494

Arquitetura

9595

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

9696

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

25

9797

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,

...9898

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

9999

Context Widgets

• Widgets implementam abstrações sobresensores

GPSActiveBadge

App App

LocationWidget

Cell PhoneLocation

ActiveBadge

100100

Context Interpreters

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

App

LocationWidget

Location to Room

Interpreter

Location to Street

Interpreter

26

101101

App

PersonAggregator

ActivityWidget

AffectWidget

App

LocationWidget

Location to Room

Interpreter

Context Aggregators

• Agregam contextos em entidadesparticulares, facilitando o uso e desenvolvimento

102102

Context Services

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

board

103103

Context Discoverer

• Registra os componentes de contexto

In/outboard

104104

MobiPADS

• Mobile Platform for Actively Deployable Service• Plataforma baseada em serviços, tendo como

foco aplicações para Internet em redes sem fio e celulares

• Dois agentes:– MobiPADS server, na rede infra-estruturada– MobiPADS client, em dispositivos móveis

• Dois componentes:– Sistema de componentes– Espaço de serviços MobiPADS

27

105105

MobiPADSArquitetura

106106

MobiPADS e Mobilets

• No espaço de serviços, uma série de mobilets formam uma cadeia de processamento (service chain)

• Aplicações fazem uso das funcionalidades agregadas da coleção de mobilets

• Mobilets– Entidade que implementa um serviço– Pode ser baixada, inserida e migrada para uma

plataforma MobiPADS em execução– Existem em pares: cliente e servidor

107107

MobiPADSComponentes de Sistema

• Configuration Manager: negocia conexão cliente e servidos e gerencia objetos de serviços

• Service Migration Manager: controla migração de objetos serviço

• Service Directory• Event Register: notifica mudanças

contextuais• Channel Service: provê um canal virtual

de comunicação entre serviços

108108

MobiPADSConsciência de Contexto

28

109109

Notificações de Mudanças Contextuais

• Perfil do sistema: arquivo XML com configuração metalevel dos componentes e entidades do sistema.

110110

Notificações de Mudanças Contextuais

• Exemplo de Evento Composto– HighCPUAvailability

(CPU_type = “XScale PAX 250”) AND [(CPU_clock_rate= 400 AND CPU_loading < 50%) OR

(CPU_clock_rate = 200 AND CPU_loading < 10%)] AND

(Power_warning = false)

111111

Reconfiguração Dinâmica de Serviços

• Pode ocorrer de duas formas:– Incluindo ou removendo mobilets da cadeia de serviços– Comunicando mudanças no ambiente aos mobilets, que

então decidem se adaptar

• Deployment Ativo– Deployment de serviços é feito pelo cliente MobiPADS

deve saber com antecipação quais os tipos de mobiletsque pode precisar

• Quando cliente MobiPADS inicia, controlador de serviços requisita a carga do perfil do sistema que provoca a criação de Metachains.

112112

Reconfiguração Dinâmica de Serviços

29

113113

Reconfiguração Dinâmica de Serviços

• Exemplo de reconfiguração

114114

Projeto CARISMA

• CARISMA – Context-Aware Reflective mIddleware Systemfor Mobile Applications - University of College London

• Middleware faz uso de reflexão estrutural e comportamental para habilitar o desenvolvimento de aplicações consciente de contexto

• Aplicação pode ser personalizada por meio de perfis de aplicação

• Princípios:– Aplicações devem estar conscientes do seu contexto de

execução– Aplicações conscientes de contexto fazem uso de meta-dados

e reflexão

115115

Projeto CARISMA

• Exemplo de perfil de aplicação

116116

Projeto CARISMA

• Protocolo para resolução de conflitos– Participantes: auctionners (middleware),

bidders (aplicações), goods (políticas)– Cada bidder submete um único valor de bid e o

vencedor é aquele com o maior bid– Bids são computados baseados em conceitos

não funcionais como segurança, disponibilidade e desempenho

• Reflexão permite as aplicações a modificarem os requisitos não funcionais nos quais estão interessados

30

117117

Projeto CARISMA

• Exemplo de conflito (local): intra-profiletalkReminder

soundAlertLocation = outdoor

vibraAlertLocation = indoor

silentAlertLocation = indoorBattery < 15%

• Exemplo de utility function(battery, 2), (privacy, 10), (focusing, 10)

118118

Projeto CARISMA

• Exemplo de conflito distribuído: inter-profiles

119119

Henricksen & IndulskaArquitetura

120120

Conclusões (1/2)

• Desenvolvimento de aplicações sensíveis a contexto, requerem– Modelo de contexto suficiente 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, sensores

31

121121

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

122122

Referências