Baixe o app para aproveitar ainda mais
Prévia do material em texto
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 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) 3 55 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 … 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 relevante para uma interação entre um usuário e uma aplicaçã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 consulta Î CCC 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 Fleet Dispatching 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-Aware Tourist 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 tiposde 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: Castle Café 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ção de Contexto Situação e Identificação de Contexto Percepção: Simbólicos observáveis Percepção: Simbólicos observáveis Sensoriamento: valores observáveis Sensoriamento: valores observáveis A sp ecto s O rto g o n ais A sp ecto s O rto g o n ais 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ção de Contexto Situação e Identificação de Contexto Percepção: Simbólicos observáveis Percepção: Simbólicos observáveis Sensoriamento: valores observáveis Sensoriamento: valores observáveis A sp ecto s O rto g o n ais A sp ecto s O rto g o n ais 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ção de Contexto Situação e Identificação de Contexto Percepção: Simbólicos observáveis Percepção: Simbólicos observáveis Sensoriamento: valores observáveis Sensoriamento: valores observáveis A sp ecto s O rto g o n ais A sp ecto s O rto g o n ais 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ção de Contexto Situação e Identificação de Contexto Percepção: Simbólicos observáveis Percepção: Simbólicos observáveis Sensoriamento: valores observáveis Sensoriamento: valores observáveis A sp ecto s O rto g o n ais A sp ecto s O rto g o n ais 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ção de Contexto Situação e Identificação de Contexto Percepção: Simbólicos observáveis Percepção: Simbólicos observáveis Sensoriamento: valores observáveis Sensoriamento: valores observáveis A sp ecto s O rto g o n ais A sp ecto s O rto g o n ais 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ção de Contexto Situação e Identificação de Contexto Percepção: Simbólicos observáveis Percepção: Simbólicos observáveis Sensoriamento: valores observáveis Sensoriamento: valores observáveis A sp ecto s O rto g o n ais A sp ecto s O rto g o n ais 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ção de Contexto Situação e Identificação de Contexto Percepção: Simbólicos observáveis Percepção: Simbólicos observáveis Sensoriamento: valores observáveis Sensoriamento: valores observáveis A sp ecto s O rto g o n ais A sp ecto s O rto g o n ais 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ísica Sensoriamento Camada física Sensoriamento S erviço s S erviço s AplicaçõesAplicações Modelos de Programação 3636 Exemplo de Organização Confab (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 In fr as tr u ct u re 19 3737 Exemplo de Organização Confab (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ção Confab (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ção Confab (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ção Confab (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ísticasda 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 (Comprehensive Structured 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 referentes aos parâmetros de qualidade – Cada parâmetro é descrito como uma ou mais métricas de qualidade, a qual representa formas 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 sinal 2. 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ção Baseadas 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 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) 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 Location Database 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 nas linguagensde 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 qual adaptações dependentes do contexto são expressas por conjuntos de cláusulas IF-THEN • Código indica explicitamente quais tarefas devem ser executada para cada informação de contexto avaliada • Adaptação fica fortemente atrelada ao código  qualquer 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ível ao contexto • Código registra as situações contextuais nos quais está interessado e é avisado quando 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 true do Notify of recent missed calls always 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-objetos que 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 às aplicaçõ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 sobre sensores GPSActiveBadge App App Location Widget Cell Phone Location Active Badge 8686 Context Interpreters • Convertem ou interpretam contexto em uma informação de mais alto nível App Location Widget Location to Room Interpreter Location to Street Interpreter 44 8787 App Person Aggregator Activity Widget Affect Widget App Location Widget Location to Room Interpreter Context Aggregators • Agregam contextos em entidades particulares, facilitando o uso e desenvolvimento 8888 Context Services • Componentes que executam ações baseadas em contexto e que atuam no ambiente In/out board 45 8989 Context Discoverer • Registra os componentes de contexto In/out board 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 comprovadamenteadequados 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
Compartilhar