View
217
Download
0
Category
Preview:
Citation preview
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.
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
Recommended