• Nenhum resultado encontrado

Computação Ciente do Contexto - Parte II

N/A
N/A
Protected

Academic year: 2021

Share "Computação Ciente do Contexto - Parte II"

Copied!
39
0
0

Texto

(1)

Introdu¸c˜ao `a Computa¸c˜ao M´ovel

Computa¸c˜ao Ciente do Contexto - Parte II

Francisco Jos´e da Silva e Silva Rafael Fernandes Lopes Laborat´orio de Sistemas Distribu´ıdos (LSD)

Departamento de Inform´atica / UFMA http://www.lsd.deinf.ufma.br

(2)

Agenda

1 Adapta¸c˜ao da Aplica¸c˜ao a Mudan¸cas de Contexto

2 Middleware para Computa¸c˜ao Ciente de Contexto

Context Toolkit MobileHealthNet

(3)

Adapta¸c˜ao da Aplica¸c˜ao a Mudan¸cas de Contexto

Adapta¸c˜

ao da Aplica¸c˜

ao a Mudan¸cas de

(4)

Adapta¸c˜ao da Aplica¸c˜ao a Mudan¸cas de Contexto

Abordagens para Adapta¸c˜ao da Aplica¸c˜ao a Mudan¸cas de

Contexto

Execu¸c˜ao de a¸c˜oes disparadas por mudan¸cas de contexto Reconfigura¸c˜ao dinˆamica param´etrica a partir de mudan¸cas de contexto.

Ex: bateria fraca ⇒ n˜ao incluir anexos

Reconfigura¸c˜ao dinˆamica estrutural a partir de mudan¸cas de contexto. Ex: bateria fraca ⇒ substitui¸c˜ao do algoritmo de compress˜ao de dados

(5)

Adapta¸c˜ao da Aplica¸c˜ao a Mudan¸cas de Contexto

A¸c˜oes Disparadas por Contexto: Active Badge (crach´a)

O active badge periodicamente dissemina um identificador ´unico para determinar a localiza¸c˜ao do usu´ario;

Eventos como “chegando”, “saindo”, “estabelecido”, “ausente” s˜ao gerados pelo Active Badge Location System;

Um bot˜ao no crach´a permite tamb´em disparar um evento “aten¸c˜ao” Monitores da atividade dos active badge executam comandos Unix conforme requerido;

Usu´arios especificam a¸c˜oes disparadas por contexto em um arquivo de configura¸c˜ao contendo eventos e a¸c˜oes na forma: badge location event-type action

(6)

Adapta¸c˜ao da Aplica¸c˜ao a Mudan¸cas de Contexto

A¸c˜oes Disparadas por Contexto: Contextual Remiders

(ParcTabs)

Disponibiliza uma forma mais expressiva;

Predicados podem conter data, tempo, localiza¸c˜ao e proximidade, conforme o exemplo abaixo.

after April 15

between 10 and 12 noon in room 35-2200 with {User Adams}

(7)

Adapta¸c˜ao da Aplica¸c˜ao a Mudan¸cas de Contexto

Stick-E Note

Considera que o usu´ario porta um PDA com conectividade sem fio e

equipado com v´arios sensores, como um transceiver GPS;

Uma Stick-E Note ´e um documento SGML (Standard Generalized

Markup Language) com uma se¸c˜ao contexto e um corpo:

<note>

<at> "Noble Engineering Library" <body>

(8)

Adapta¸c˜ao da Aplica¸c˜ao a Mudan¸cas de Contexto

Abordagens para Reconfigura¸c˜ao Dinˆamica: Reflex˜ao

Computacional

Reflex˜ao computacional: habilidade de um software observar ou at´e mesmo modificar a sua estrutura ou comportamento

Introspec¸c˜ao: capacidade que um software tem de examinar sua

pr´opria estrutura, estado e representa¸c˜ao Tipos:

Estrutural: possibilita modificar a estrutura das classes ou objetos, atrav´es do acr´escimo de atributos, m´etodos e modifica¸c˜ao da hierarquia de heran¸ca

Comportamental: possibilita modificar o comportamento dos programas em execu¸c˜ao atrav´es da intercepta¸c˜ao de ativa¸c˜oes dos objetos, m´etodos, e atributos de interesse.

(9)

Adapta¸c˜ao da Aplica¸c˜ao a Mudan¸cas de Contexto

Abordagens para Reconfigura¸c˜ao Dinˆamica: Reflex˜ao

Computacional

Reflection: padr˜ao arquitetural que divide um software em um meta-n´ıvel e em um n´ıvel base

Meta-n´ıvel: representa a estrutura e o comportamento do software em elementos chamados meta-objetos

N´ıvel base: define a l´ogica da aplica¸c˜ao e a implementa¸c˜ao das regras de neg´ocio

S˜ao causalmente conectados atrav´es de um protocolo de

meta-objetos, de forma que modifica¸c˜oes em um ser˜ao refletidas no outro

(10)

Adapta¸c˜ao da Aplica¸c˜ao a Mudan¸cas de Contexto

Abordagens para Reconfigura¸c˜ao Dinˆamica: Programa¸c˜ao

Orientada a Aspectos

Interesse: parte do dom´ınio do sistema que se deseja tratar com uma unidade conceitual ´unica

V´arios requisitos entrela¸cados ao longo do c´odigo: logging, seguran¸ca, distribui¸c˜ao, persistˆencia

Esse c´odigo n˜ao est´a diretamente relacionado com a funcionalidade definida para essas classes e isso dificulta o desenvolvimento e manuten¸c˜ao do software

POA expressa interesses entrela¸cados em elementos chamados

aspectos, desenvolvidos separadamente de outras partes do sistema e armazenados em uma unidade de c´odigo vis´ıvel a

(11)

Adapta¸c˜ao da Aplica¸c˜ao a Mudan¸cas de Contexto

Abordagens para Reconfigura¸c˜ao Dinˆamica: POA

Organiza¸c˜ao do Software:

Classes ou componentes, que constituem o c´odigo base do sistema e representam as regras de neg´ocio da aplica¸c˜ao

Aspectos que relacionam os requisitos funcionais e n˜ao-funcionais que afetam o comportamento do sistema e que estariam entrela¸cados no c´odigo das classes ou componentes

(12)

Adapta¸c˜ao da Aplica¸c˜ao a Mudan¸cas de Contexto

(13)

Middleware para Computa¸c˜ao Ciente de Contexto

Middleware para Computa¸c˜

ao

(14)

Middleware para Computa¸c˜ao Ciente de Contexto

Middleware

Local OS 1 Local OS 2 Local OS 3 Local OS 4

Appl. A Application B Appl. C

Computer 1 Computer 2 Computer 3 Computer 4

Network Distributed system layer (middleware)

(15)

Middleware para Computa¸c˜ao Ciente de Contexto

Servi¸cos T´ıpicos Relacionados ao Contexto

Servi¸co de assinatura e entrega de informa¸c˜ao contextual Servi¸co de consulta do contexto

Servi¸co de transforma¸c˜ao de contexto

Servi¸co de s´ıntese de contexto: une diversos tipos de informa¸c˜ao de contexto

Servi¸co de descoberta e gerenciamento

Servi¸co de Atuador: ajuda a aplica¸c˜ao a realizar fun¸c˜oes dependentes do contexto

(16)

Middleware para Computa¸c˜ao Ciente de Contexto

Arquitetura L´ogica de Middleware para Ciˆencia de

Contexto

(17)

Middleware para Computa¸c˜ao Ciente de Contexto Context Toolkit

(18)

Middleware para Computa¸c˜ao Ciente de Contexto Context Toolkit

Context Toolkit

Desenvolvido na Georgia Tech;

Framework orientado a objetos que permite a recupera¸c˜ao de

(19)

Middleware para Computa¸c˜ao Ciente de Contexto Context Toolkit

Recursos do Context Toolkit: Context Widgets

Componente que implementa o servi¸co de aquisi¸c˜ao e entrega de informa¸c˜ao de contexto;

Interface entre sensores e as aplica¸c˜oes;

Possuem estado e comportamento. Estado ´e representado por atributos e compartamento por fun¸c˜oes de callback disparadas quando houver mudan¸ca de contexto;

Entidades persistentes que podem ser compartilhadas por diversas aplica¸c˜oes;

Podem armazenar e disponibilizar o hist´orico das informa¸c˜oes de contexto, usualmente utilizado para prever futuras a¸c˜oes ou a inten¸c˜ao do usu´ario.

(20)

Middleware para Computa¸c˜ao Ciente de Contexto Context Toolkit

Recursos do Context Toolkit: Context Interpreters

Servi¸co de transforma¸c˜ao de contexto;

Exemplo: converter dados GPS em nomes de ruas;

Pode ser utilizado para determinar uma informa¸c˜ao de contexto de alto n´ıvel, como um contexto social ou motivacional;

Ex: a partir de widgets em uma sala de conferˆencia, determinar que um encontro est´a ocorrendo.

(21)

Middleware para Computa¸c˜ao Ciente de Contexto Context Toolkit

Recursos do Context Toolkit: Context Agregators

Juntam informa¸c˜oes de contexto oriundas de fontes diversas (widgets e interpreters) de forma a representar o contexto associado a uma entidade;

Uma entidade pode ser uma pessoa, sala, outro sistema de software, um dispositivo, etc. . .

(22)

Middleware para Computa¸c˜ao Ciente de Contexto Context Toolkit

Recursos do Context Toolkit: Discover

Disponibiliza servi¸co de descoberta e gerenciamento de fontes de informa¸c˜ao de contexto;

Mantˆem um registro das capacidades dos widgets existentes;

Aplica¸c˜oes podem consultar componentes por um nome espec´ıfico ou que possuam um conjunto fornecido de capacidades/atributos.

(23)

Middleware para Computa¸c˜ao Ciente de Contexto MobileHealthNet

(24)

Middleware para Computa¸c˜ao Ciente de Contexto MobileHealthNet

(25)

Middleware para Computa¸c˜ao Ciente de Contexto MobileHealthNet

(26)

Middleware para Computa¸c˜ao Ciente de Contexto MobileHealthNet

MOBHA – MobileHealthNet on Android

API respons´avel pela comunica¸c˜ao entre clientes m´oveis Android e gateway

User Service; Content Service; Chat Service; Context Service

(27)

Middleware para Computa¸c˜ao Ciente de Contexto MobileHealthNet

Context Service

Servi¸co ciente de contexto para prover e distribuir informa¸c˜oes que

ser˜ao utilizadas para o acompanhamento dos pacientes do MBH

Aquisi¸c˜ao de informa¸c˜oes de contexto com qualidade; Servi¸co de notifica¸c˜oes baseado em eventos;

(28)

Middleware para Computa¸c˜ao Ciente de Contexto MobileHealthNet

(29)

Middleware para Computa¸c˜ao Ciente de Contexto MobileHealthNet

Inicializa¸c˜ao da Aplica¸c˜ao

public static void startUp()

public boolean addContextProviderRepository(String apkUrl, String descriptionUrl)

(30)

Middleware para Computa¸c˜ao Ciente de Contexto MobileHealthNet

Requisi¸c˜ao de Informa¸c˜oes de Contexto

void subscribeContextInformation(String

requestedUserName, String requestorUserName, boolean secure, String contextInformationML)

void publishSubscribeContextInformationResponse(String requestedUserName, String requestorUserName, String[] contextInformationUnitId, boolean secure, boolean[] accepteds)

(31)

Middleware para Computa¸c˜ao Ciente de Contexto MobileHealthNet

Requisi¸c˜ao de Informa¸c˜oes de Contexto

void publishUnsubscribeContextInformation(String requestedUserName, String requestorUserName, String[] contextInformationUnitId, boolean secure)

void unsubscribeContextInformation(String

requestedUserName, String requestorUserName, String[] contextInformationUnitId, boolean secure)

(32)

Middleware para Computa¸c˜ao Ciente de Contexto MobileHealthNet

Exemplo ContextML

<requirement> <contextInformation> <data name="systolicPressure"> <qualityOfContext>

<property name="REFRESH\_RATE" time="5000" kind="GET\_LAST" amount="5"/>

</qualityOfContext> </data>

</contextInformation> </requirement>

(33)

Middleware para Computa¸c˜ao Ciente de Contexto MobileHealthNet

Recebendo Dados de Contexto

Deve-se implementar os seguintes m´etodos:

void contextInformationRequest(String

requestedUserName, String requestorUserName, String contextInformationML)

void contextInformationResponse(String

requestedUserName, String[] contextInformationId, boolean[] accept)

void contextInformation(String requestedUserName, ContextInformationData cid)

(34)

Middleware para Computa¸c˜ao Ciente de Contexto MobileHealthNet

Definindo Eventos de Contexto

void subscribeEvent(String requestedUserName, String requestorUserName, boolean secure, String

eventDescriptionML)

void publishSubscribeEventResponse(String

requestedUserName, String requestorUserName, String[] ruleName, boolean[] accepted)

void publishUnsubscribeEvent(String requestedUserName, String requestorUserName, String[] ruleName, boolean secure)

(35)

Middleware para Computa¸c˜ao Ciente de Contexto MobileHealthNet

Exemplo eventDescriptionML

<requirement> <event>

<rule name="High blood pressure">

<condition context="systolicPressure" operator="gt" value="160" dataTypeValue="java.lang.Double" connector="and"/>

<condition context="diastolicPressure" operator="gt" value="80" dataTypeValue="java.lang.Double"/>

</rule> </event> </requirement>

(36)

Middleware para Computa¸c˜ao Ciente de Contexto MobileHealthNet

Recebendo Notifica¸c˜oes

Deve-se implementar os seguintes m´etodos:

void eventRequest(String requestedUserName, String requestorUserName, String eventDescriptionXML); void eventResponse(String requestedUserName, String requestorUserName, String[] ruleName, boolean[] accept);

void eventAnalised(String requestedUserName, String ruleName, ContextInformationAnalised contextData);

(37)

Middleware para Computa¸c˜ao Ciente de Contexto MobileHealthNet

Solicitando Dado de Contexto

Requisi¸c˜ao Local subscribeContextInformation("Dejailson","Dejailson", false, xml); Requisi¸c˜ao Remota subscribeContextInformation("Sandra","Dejailson", false, xml);

(38)

Leituras Recomendadas

(39)

Leituras Recomendadas

Leituras Recomendadas

Fundamentals of Mobile and Pervasive Computing Cap 4: Context-Aware Computing

Frank Adelstein, Gupta, Richard III, Schwiebert McGraw-Hill, 2005

A Survey of Context Data Distribution for Mobile Ubiquitous Systems Paolo Bellavista, Antonio Corradi, Mario Fanelli, Luca Foschini ACM Computing Surveys, Vol. 44, No. 4, Article 24, August 2012

Gerenciamento Autonˆomico de Privacidade Baseado em Situa¸c˜ao

para Redes Sociais M´oveis Cap 3: Computa¸c˜ao Autonˆomica Ariel Soares Teles

Referências

Documentos relacionados

Estudos sobre o assunto preconizam que a orientação dos profissionais de saúde e população geral; o desenvolvimento de políticas públicas para adequação de

E, como objetivos específicos identificar os processos de socialização primária e secundária que demarcaram as aprendizagens ocorridas na carreira de

A operação possui como garantia a alienação fiduciária de terreno localizado no bairro de Pinheiros, na cidade de São Paulo, com relação atual de garantia de 192%. Cupom IPCA

Na escolha pelo “caminho transformador do sistema social”, é tarefa estratégica da Educação do Campo e um desafio formativo enorme, para o conjunto da

Se cruzarmos o resultado obtido no item 8 do formulário eletrônico (que trata sobre se há LGBTfobia na universidade) com o resultado do item 11, será possível constatar que 17,8%

No programa das disciplinas Prática de Ensino em Ciências Biológicas II e III há a exigência de estágio pelos alunos o qual deve ser cumprido em escolas públicas.. Na Prática

Destaca-se também como objetivo desse estudo conhecer a visão dos vendedores ambulantes sobre suas condições de trabalho, além de compreender como os riscos de acidentes e

11.2 O Resultado Final deste Processo Seletivo será homologado e publicado no Diário Oficial dos Municípios de Pernambuco separado em duas listagens, sendo uma de