clique para editar os estilos do texto mestre segundo nível terceiro nível quarto nível ...

89
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível junho/2010 - Slide 1

Upload: internet

Post on 19-Apr-2015

130 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

junho/2010 - Slide 1

Page 2: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 2

Equipe ISAM

Iara Augustin: autora do ISAMAdaptAdenauer Yamin: ExehdaLuciano Cavalheiro: PrimosRodrigo Real: TipsAlberto Egon: PerdisMaurício Moraes: DimiGustavo Frainer: EPA Lucas SantosFelipe Fehlberg: Multisalunos da UCPel e UFSMGerson Cavalheiro (Unisinos)

Na época: 2000 a 2007

Page 3: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 3

Equipe ISAM – atual na UFRGS

Luciano Cavalheiro: tese sobre adaptaçãoCarlos Oberdan: pesquisador associadoValderi Leidhardt: pesquisador associadoGisele Souza: mestranda

Page 4: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 4

ISAMAdapt

Abstrações para- uma Linguagem de Programação

- visando Aplicações Móveis Conscientes do Contexto

- em um Ambiente de Pervasive Computing

Page 5: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 5

Autoria

Autor da teseIara Augustin

LocalII-UFRGS, PGCC1999 – 2003

Versão slides2010v10

Page 6: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 6

Índice

1. Motivação2. Projeto ISAM3. O problema4. Objetivos Científicos5. Abstrações ISAMadapt

Contexto Adaptadores Comandos e políticas de adaptação

6. Trabalhos Relacionados7. Conclusões e Contribuições

Page 7: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 7

Computação Móvel

Mobilidade do usuário (user centric) Mobilidade física (dispositivos e recursos) Mobilidade lógica (aplicações e serviços)

Mobile Computing Pervasive Computing

(IBM)

Ubiquitous Computing(Mark Weiser, Xerox Parc, 1991)

atual

futuro próximo

futuro distante

Acesso e disponibilidade global da computação

Invisibilidade da computação

Acesso local

Page 8: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 8

References

ReferencesIBM Systems Journal, V38, N4, 1999.

Número dedicado a Pervasive Computing 12 artigos pervasive computing = ubiquitous computing Número frequentemente relacionado com o nascimento

da Pervasive Computing (após Weiser, 1991)

Page 9: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 9

Computação PervasivaNovo ambiente para o usuário

Potencialização de problemas computacionais gerados pela ênfase na mobilidade do usuário e suas atividades

Semântica “siga-me” (follow-me) Independente de lugar Independente de tempo Independente de plataforma

Disponibilidade em todo lugar, a qualquer tempo Ambiente virtual do usuário Ambiente virtual das aplicações Obs.: sem ser necessário levar um dispositivo móvel único como um

notebook

Page 10: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 10

Computação PervasivaNovo ambiente para o usuário

Nosso interesse: Infra-estrutura para computação pervasiva (inexistente)suporte à programaçãosuporte à execução

Objetivo geral: Uma infra-estrutura de suporte às aplicações pervasivasComputação móvel (Mobile computing)Computação consciente do contexto (Context-aware

computing)Computação em grade (Grid computing)

Page 11: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 11

ISAM

Infra-estrutura de Suporte às Aplicações Móveis Distribuídas

ISAM : Instituições Participantes

ISAM : Apoio

maio/2001 – julho/2003

Page 12: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

junho/2010 - Slide 12

Arquitetura ISAM

ISAMadapt fornece:

- Modelo de Adaptação - Modelo de Contexto

- Modelo de Execução

ISAMadapt fornece:- Modelo de Adaptação - Modelo de Contexto

- Modelo de Execução

Ambos fornecem Ambiente de Desenvolvimento de AplicaçõesAmbos fornecem Ambiente de Desenvolvimento de Aplicações

Holo fornece:- Modelo de programação (entes)- Modelo de Interação (blackboard)

Holo fornece:- Modelo de programação (entes)- Modelo de Interação (blackboard)

Aplicação Móvel Distribuída

ISAMadapt (Holoparadigma)

AVU ManagenmentService

LanguageRuntime

ISAMcontextServer

Loc. eNaming

Comu-nicação

Migra-ção

Persis-tência

Segu-rança

Escalo-namento

Monito-ramento

Máquina Virtual Java

Consciênciado

Contexto

SUP

INTERM

INF

Sistema Operacional Nativo

Rede Fixa + Rede Móvel

EXEHDA

altera a semântica

Page 13: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 13

Necessidade de produzir aplicações pervasivas

O problema

A pervasividade do ponto de vista de uma Linguagem de ProgramaçãoMobilidade do usuário (follow-me applications)

Imprevisibilidade do ambiente de execução

Adaptação ao contexto (consciência do contexto)

Page 14: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 14

O Problema

Hoje: (produzir aplicações para o ambiente pervasivo é difícil)Middlewares e linguagens para sistemas distribuídos tem

premissas incompatíveis com o ambiente móvel restrições desconexões variação na disponibilidade de recursos e serviços dinamicidade

Aplicações para computação pervasiva são ad-hoc

Page 15: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 15

O Problema

Ferramentas de apoio à programação focalizam Agentes móveis (mobilidade de código)

– mobilidade do host? Toolkits para monitoramento de contexto (banda,

localização, ...)– genérico?

Middlewares para comunicação via espaço de tuplas– outros aspectos?

Frameworks para alguns domínios que abordam a adaptação

– genérico?

Page 16: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 16

O Problema

Para conhecer o ambiente pervasivo Conhecer novo usuário (altamente móvel)Verificar o impacto no sistema computacionalDesenvolver aplicações reais

Page 17: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

junho/2010 - Slide 17

Objetivos CientíficosIdentificando e suportando

abstrações para tratar com adaptação ao contexto

disponibilizadas em uma linguagem de programação

com a colaboração do sistema de suporte à execução

simplifica o projeto, a construção e a evolução de aplicações móveis que executam em um ambiente pervasivo.

Page 18: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

junho/2010 - Slide 18

Tópicos de pesquisa

Como projetar e implementar uma aplicação móvel que se adapte às variações ambientais – contexto?

Quais as características e necessidades destas aplicações?

Qual o modelo de programação e interação necessários? Como ocorre o processo de adaptação ao contexto? Qual o suporte necessário para este processo? Como modelar aplicações conscientes do contexto?

Escopo do trabalho

Linguagem de Programação

Como expressar adaptação ao contexto

Page 19: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

junho/2010 - Slide 19

Adaptação na computação pervasiva

USUÁRIO

APLICAÇÃO SISTEMA DESUPORTE

social

espacial

temporal

pessoal

Requisitos identificados:

Contextualização e Personalização

Adaptação multinível

Adaptação negociada

Desacoplamento temporal e espacial

Funcionalidade selecionada pelo contexto

Page 20: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

junho/2010 - Slide 20

Abstrações

Capturam a semântica da funcionalidade geral do processo de sensibilidade ao contexto

Requer: Conhecimento do contexto Adaptação dinâmica da aplicação

Baseadas no modelo de adaptação foram identificadas as abstrações ISAMadapt

ContextoAdaptadoresComandos e Políticas de adaptação

Page 21: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 21

Princípios

Princípio básico de adaptaçãoColaboração entre o nível de programação e o ambiente de

execução Estático x dinâmico

Ou entre linguagem e middleware

Page 22: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

junho/2010 - Slide 22

Modelo de Adaptação

ADAPTABILIDADE

SUPORTE MODELO

ALTERNATIVAS

CONTEXTO

COMPORTAMENTO

POLÍTICAS

REGRAS

COMANDOS DEADAPTAÇÃO

Elementos

Interesses

Propriedades

requer

expressa como

informar

gerenciarexpressar

temobedece

Expressa como

relativas aos

usa

exibe

Agilidade daAdaptação

Adaptação Reconfiguração

expressam

pessoas

ambiente físico

aplicações

monitora

define

obedece

tem

redefine

seleciona

Gerenciadorda adaptação

seleciona

notifica

Page 23: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

junho/2010 - Slide 23

Abstraçõesfase programação / fase execução

2 fases: programação execução

COMANDOSDE

ADAPTAÇÃO

POLÍTICAS

EXEHDA

APLICAÇAO

CONTEXTO

``````````adaptive being.. (){ context:…. ….}…………….

C1

C2

Cn

Cõdigo principal adaptadores

Construções adaptativas

register manager

notifier

subscreve

notifica

Dadossensorados

ISA

MadaptE

ngine

ISA

Mbd

a

Codigosob

demanda

ISAMcontextServer

Page 24: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 24

Controle da Adaptação

Mecanismos de controle da adaptação

Page 25: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

junho/2010 - Slide 25

Ênfase no contexto Contexto – Elemento de

contexto

“toda informação relevante para a aplicação e que pode ser obtida por esta”.

“toda elemento cuja alteração em seu estado dispara um processo de adaptação na aplicação ISAMadapt”. Exemplo: atividade do

usuário, localização, número de dispositivos, tipo de dispositivo.

Físico Lógico Social

CONTEXTO

bate

ria

band

a re

de

latên

cia

locali

zaçã

o

carg

a

tare

fas

serv

iços

tem

po a

cess

o

tipo

aces

so

tipo

dado

s

vizinh

ança

trajet

o

volum

e co

mu-

nicaç

ão

Perfil doUsuário

Adaptação

AplicaçãoAdaptação

Runtime

ParteFixa

ParteMóvel

Page 26: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 26

Ênfase no contexto

Visão particular de cada aplicação Interesses diferentes em momentos diferentes Interpretação diferente de uma mesma informação

Requer suporte da execução Independente da aplicação Reconfigurável conforme o interesse da aplicação

ISAMcontextServer fornece o Serviço de Reconhecimento de Contexto

Page 27: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

junho/2010 - Slide 27

Projeto contextSISAMcontextService

EXEHDAbase

aggregator

predictor

notifier

translator

monitor

sensor

EXEHDAnodo

monitor

sensor

EXEHDAnodoMóvel

collector

monitor

sensores

EXEHDAnodo

DA

DO

SC

ON

TE

XT

UA

LIZ

AD

OS

DA

DO

SS

EN

SO

RA

DO

S

Discoverer

Register

sensor

Multis

Perdis

Exehda

Page 28: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

junho/2010 - Slide 28

Abstração: contextofase programação

Context MenuPermite personalizar as

informações de contextoGera arquivo xmlDurante execução é

passado pelo AdaptEngine Service

ISAMadapt Development Environment (ícone) Application Name

CONTEXT

nome do elemento de contexto ...NAME:

OK CANCEL

ELEMENT

SENSOR

COLLECTOR

AGGREGATOR

PREDICTOR

NOTIFIER

TRANSLATOR

SAVE

Campo de mensagens do sistema

Rules Translation

OPERANDS:

Operand2

valueUp

Valuei - valuef

Trigger

valueDown

around

Table-entry

Other c:\

Table-search

Operand1

ACTION:

OPERATOR:

Page 29: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 29

Abstração: contextofase programação

Contexto fase programação1. Variáveis ambiente (fornecidas pelo EXEHDA)

Exemplos de vars.: userLocation, ISAMbda, myHome, myHost, contextServer, ...

If userLocation == myHome then install ISAMbda(applic1)

at myHost2. Comando de declaração context

Declara um contexto específico e os estados de interesse context processor::(idle, normal, busy); context deviceType::(pda, desktop); context network::(connected,disconnected);

Page 30: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 30

Abstração: contextofase programação

Contexto fase programação3. Comando onContext

Ideia geral: espera evento e executa ação

onContext network::disconnected { disableSpellChecking(); } // espera assíncrona – thread atual continua a execução sync onContext processor::idle { clone (worker, worker_id); ... } // espera síncrona - thread atual fica bloqueada

Page 31: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 31

Abstração: contextofase programação

Contexto fase programação4. Controle da notificação

suspendNotify– suspende a notificação mas não o contexto

(monitoração)– contexto ainda pode ser consultado

resumeNotify– retoma a notificação

Page 32: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 32

Abstração: contextofase programação

Contexto fase programação5. Consulta do estado do elemento de contexto

queryLastValue (getContext) retorna valor armazenado no contexto, mesmo se antigo

queryCurrentValue (checkContext) força nova monitoração (pode ser periódica) do contexto

Page 33: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

junho/2010 - Slide 33

Abstração: Contextofase de execução

Contexto fase execução Aplicação define o contexto (IDE ISAMadapt – menu Context)

Elementos de contextoNativos (processor)Definidos pela aplicação

grau de comunicação de um ente com outro válidos para essa (uma) aplicação

Page 34: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

junho/2010 - Slide 34

Abstração: Contextofase de execução

Contexto fase execução

Na execução ISAMadaptEngine

Subscrição no ISAMcontextServerConsulta de estados dos elementos de contexto Executa comandos de configuração do ISAMcontextServer

Page 35: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 35

Abstração: Contextofase de execução

Contexto fase execução ISAMcontextServer

Monitora o contexto Notifica a aplicação (ISAMadaptEngine) (tupla de

natureza reativa)

Page 36: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 36

Abstração: adaptadoresfase programação

Adaptação: fase programaçãoRecursos

Adaptive beingAdaptive methodAdaptersComandos de adaptação

Page 37: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 37

Abstração: adaptadoresfase programação

Adaptação: fase programaçãoPontos no programa tem um comportamento

declarado como adaptativo a um elemento do contextoAdaptive being

Similar a uma classeAdaptive method

Pontos no programa implementam alternativas para os estados possíveis do elemento do contextoAdapters: para beings e métodos

Pontos no programa são estratégias de adaptaçãoComandos de adaptação

Page 38: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

junho/2010 - Slide 38

Elementos de adaptação

Adaptive being Adaptive method Adapter: alternativas expressa a

adaptive being Display context deviceType : : (pda,desktop,laptop){ // adaptive method declarations adaptive go (host) context power; // shared methods definition ...}

adaptive being Display context deviceType : : (pda,desktop,laptop){ // adaptive method declarations adaptive go (host) context power; // shared methods definition ...}

display.holo

//@context: power::(low)//@description: power is lower 10%adapter Display.Go::Low{ go (device) { if device=null device = myHost; move (self, device); }}

display_go_low.adp

Exemplo de método adaptativo Declarado e adaptador

Page 39: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

junho/2010 - Slide 39

Elementos de adaptação

Adaptive being Adaptive method adapter

adaptive being Display context deviceType : : (pda,desktop,laptop){ // adaptive method declarations adaptive go (host) context power; // shared methods definition ...}

adaptive being Display context deviceType : : (pda,desktop,laptop){ // adaptive method declarations adaptive go (host) context power; // shared methods definition ...}

//@context: deviceType::pda //@description: pda must been a CDC deviceadapter being Display : : pda{ adaptive store() context power; display() { native Java { // use java.awt ....} enableSpellChecking(); }// menu methods definition ... enableSpellChecking() { native Java { // update gui state ...} onContext network::disconnected { disableSpellChecking() } } disableSpellChecking() { native Java { // update gui state...} onContext network::connected { enableSpellChecking() } } ....

}

display_pda.adp

display.holo

Exemplo de Ente Adaptativo Declarado (slide

anterior Adaptador Escolha durante

a carga de código

Page 40: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

junho/2010 - Slide 40

Elementos de adaptação

Adaptive being Adaptive method adapter

adaptive being Display context deviceType : : (pda,desktop,laptop){ // adaptive method declarations adaptive go (host) context power; // shared methods definition ...}

adaptive being Display context deviceType : : (pda,desktop,laptop){ // adaptive method declarations adaptive go (host) context power; // shared methods definition ...}

display.holo

//@context: deviceType::(desktop,laptop)//@description: it uses swing/J2SE APIs adapter being Display : : desktop{ // constructor display() { native Java { // use javax.swing... } enableSpellChecking(); }// methods definition insert { ...} transfer() { ... go (Home) ...}}

Display_desktop.adp

Segundo adaptador: para mesmo exemplo anterior

Page 41: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

junho/2010 - Slide 41

Abstração: adaptadoresfase execução

ISAMcontextServer

REGISTERSubscribe

UnSubscribeSuspendResume

ISAMbda

Class Loader

Control Command

Notifier

Start

ISAMadaptEngine

AdaptiveClasses

RECONFIGURATOR

TABconf

EO

package org.isam.adapt;public class IsamAdaptEngine{ Object getBeingImpl(String beingClass); Object getMethImpl(String beingClass, String methodName); void addContextListener(ContextListener l, Context ctx); void removeContextListener(ContextListener l); Context checkContext(Context ctx); Context getContext(Context ctx); void waitForContext(Context ctx); void runOnContext(Context ctx, Runnable action); void enableNotifications (boolean enable); ResorceDesc[] discoverResource(String description); }

package org.isam.adapt;public class IsamAdaptEngine{ Object getBeingImpl(String beingClass); Object getMethImpl(String beingClass, String methodName); void addContextListener(ContextListener l, Context ctx); void removeContextListener(ContextListener l); Context checkContext(Context ctx); Context getContext(Context ctx); void waitForContext(Context ctx); void runOnContext(Context ctx, Runnable action); void enableNotifications (boolean enable); ResorceDesc[] discoverResource(String description); }

Métodos disponíveis na IsamAdaptEngine: usados pela implementação

Page 42: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

junho/2010 - Slide 42

Abstração: adaptadoresfase execução

ISAMcontextServer

REGISTERSubscribe

UnSubscribeSuspendResume

ISAMbda

Class Loader

Control Command

Notifier

Start

ISAMadaptEngine

AdaptiveClasses

RECONFIGURATOR

TABconf

EO

package org.isam.adapt;public class IsamAdaptEngine{ Object getBeingImpl(String beingClass);

Retorna objeto da classe Object getMethImpl(String beingClass, String methodName);

retorna objeto da classe/métodos void addContextListener(ContextListener l, Context ctx);

Se inscreve para receber mudanças de contexto void removeContextListener(ContextListener l);

desfaz inscrição ... Context checkContext(Context ctx);

consulta contexto forçando atualização Context getContext(Context ctx);

Idem sem atualização}

package org.isam.adapt;public class IsamAdaptEngine{ Object getBeingImpl(String beingClass);

Retorna objeto da classe Object getMethImpl(String beingClass, String methodName);

retorna objeto da classe/métodos void addContextListener(ContextListener l, Context ctx);

Se inscreve para receber mudanças de contexto void removeContextListener(ContextListener l);

desfaz inscrição ... Context checkContext(Context ctx);

consulta contexto forçando atualização Context getContext(Context ctx);

Idem sem atualização}

Métodos disponíveis na IsamAdaptEngine

Page 43: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

junho/2010 - Slide 43

Abstração: adaptadoresfase execução

ISAMcontextServer

REGISTERSubscribe

UnSubscribeSuspendResume

ISAMbda

Class Loader

Control Command

Notifier

Start

ISAMadaptEngine

AdaptiveClasses

RECONFIGURATOR

TABconf

EO

package org.isam.adapt;public class IsamAdaptEngine{ void runOnContext(Context ctx, Runnable action);

Cria thread para esperar evento de contexto void enableNotifications (boolean enable);

Habilita / desabilita notificações de eventos de contexto ResorceDesc[] discoverResource(String description); }

package org.isam.adapt;public class IsamAdaptEngine{ void runOnContext(Context ctx, Runnable action);

Cria thread para esperar evento de contexto void enableNotifications (boolean enable);

Habilita / desabilita notificações de eventos de contexto ResorceDesc[] discoverResource(String description); }

Métodos disponíveis na IsamAdaptEngine

Page 44: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

junho/2010 - Slide 44

Comandos de adaptaçãofase programação

Comandos para adaptação: dependem de políticas clone (Being(param), id) [(anchorOn| on| closerTo) host ]

Cria novo being com base em outro (instanciação + herança)

move (sourceBeing, destBeing) mobilidade

Disconnect Desconexão planejada (custo, bateria, sinal, ...)

reconnect reschedule (strategy)

Realoca being

install (ente) to host [start] Instala aplicação completa

discovery var (file.rsc) { comandos }

Page 45: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

junho/2010 - Slide 45

Comandos de adaptaçãofase programação

Policies

Adaptive Command:

Default Policy apply: All

Never

Best-effort

GLOBAL

CreationDisconnectionDiscoveryFilterMigrationReconnectionReplicationScheduling

Policy composition:append

replace

undefinedState:

unavailable

restrict

Action:cachingreschedulingnoschedulingrerouting ….

Policy: Max sensorMin sensorMax indexMin indexanchor being

c:\

Handle Fail:

Element Context System Resource

undefinedState:

unavailable

restrict

Action:TimeoutBlockedreschedulingrerouting…..

Context conditioned

OK CANCEL

New Edit Delete

Trocável conforme comando de adaptação selecionado

Nome do sensor

Interface para definição de políticas sobre comandos:Políticas defaultEstratégia de escalonamentoProcedimentos em desconexãoOpções de locais para instanciação...

Page 46: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

junho/2010 - Slide 46

Abstração Políticas de Adaptação

Funcionam como meta-programação em tempo de execução São opcionais

Usadas por exemplo quando a adaptação padrão não atende requisitos de desempenho

Poderiam ser desenvolvidas por usuários especializados Similares aos XML do EJB 2.x

Page 47: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

junho/2010 - Slide 47

Abstração Políticas de Adaptação

Dois tipos:Geral (todos entes da aplicação)

disconnection migrate nextServer -> migrar tudo antes da desconexão

disconnection cache-> salvar dados antes da desconexão

Específica (para determinado ente) cloning ente1 mobileHost

` -> criar junto ao mobileHost(default é criar entes nos host fixos)

cloning ente2 static -> ente não pode ser realocado

(default todos entes podem ser realocados)

Page 48: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

junho/2010 - Slide 48

Abstração Políticas de Adaptação

Servem a dois propósitos:Dirigir a tomada de decisão da execução (comportamento

colaborativo)Resolver problemas advindos do dinamismo (~tratamento

exceções) Exemplo: problemas de sincronização

» Migration ente1 after ente3 (ente1 somente migra após receber ente3)

» Timeout 10s (default é bloquear o ente à espera do evento)

Page 49: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

junho/2010 - Slide 49

Abstração Políticas de Adaptação

Menu POLICIES do IDE ISAMadapt XML

– Relativas aos comandos de adaptação– Separadas do código, permitem alterações

independentes

<scheduling> <policy> <allbeings /> <max index="CPU_POWER" /> </policy> <policy composition="append"> <!-- Exemplo de politica especifica --> <being name=“SpellCheck" /> <anchor resource=“Dictionary" /> </policy></scheduling>

<scheduling> <policy> <allbeings /> <max index="CPU_POWER" /> </policy> <policy composition="append"> <!-- Exemplo de politica especifica --> <being name=“SpellCheck" /> <anchor resource=“Dictionary" /> </policy></scheduling>

Exemplo de arquivo XML de política de adaptação

Page 50: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

junho/2010 - Slide 50

Abstração Políticas de Adaptação

Menu POLICIES do IDE ISAMadapt XML

– Relativas aos comandos de adaptação– Separadas do código, permitem alterações

independentes

package org.isam.exehda.lang.isamadapt;public class Runtime{ static void disconnect(); static void reconnect(); static Symbol createBeing(ClassBeing being, Being id, Object hints); static void moveBeing(ClassBeing source, ClassBeing dest); static void rescheduleBeing(Object hints); static History getHistory(); static History getChildHistory(Symbol childName); static History getParentHistory();}public interface History{ Tuple in (Tuple pattern, Long waitmilis); Tuple in_r ((Tuple pattern, Long waitmilis); Tuple out (Tuple t); }}

package org.isam.exehda.lang.isamadapt;public class Runtime{ static void disconnect(); static void reconnect(); static Symbol createBeing(ClassBeing being, Being id, Object hints); static void moveBeing(ClassBeing source, ClassBeing dest); static void rescheduleBeing(Object hints); static History getHistory(); static History getChildHistory(Symbol childName); static History getParentHistory();}public interface History{ Tuple in (Tuple pattern, Long waitmilis); Tuple in_r ((Tuple pattern, Long waitmilis); Tuple out (Tuple t); }}

Relativas aos comandos

de adaptação

Page 51: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

junho/2010 - Slide 51

O tradutor

Ações Semânticas

JAVACC

Interface EXEHDA,ISAMadaptEngine eISAMcontextServer

Gramática

Holo ISAMadapt

ISAMadaptTranslator

Javac

Entes.holo

Adaptadores.adp

GlobalPolicies.xml

Javac

EXEHDA

Java

SpecificPolicies.xml

Context.xml

ISAMcontextServer

ISAMadaptDevelopmentEnvironment

Parser XML

Parser XML

gera

armazena

ISAMadapt.java

fontes

gera

aplicação

aplicação.java

ISA

Mbda

adapters.xml

Page 52: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

junho/2010 - Slide 52

Trabalhos Relacionados

Projeto Aura (2002)aura de informação pessoal foco nas atividades do usuário (ênfase na

dimensão pessoal)novo modelo de programação baseado em

atividades (proposta)

Projeto Gaia (2002)active spacesFoco em gerenciamento de recursosFramework para suporte a adaptaçãoCorba e LuaOrb para configurar e criar espaços de

objetosAplicação: gerenciamento de apresentação

(slides)

Page 53: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 53

Trabalhos Relacionados

Linguagens para adaptaçãoSumatra (Java com mobilidade forte: migração de

threads)Klaim (conectividade)Timely (blocos de adaptação a variação de QoS)Police (regras para governar a mobilidade, quem

migra, quando e para onde)

Suporte para adaptação na computação móvelMiddlewares (comunicação: Corba, Lime (ET),

PeerWare (P2P)) Frameworks (MoLèNE, Timely)APIs (Context Toolkit, Odyssey, Cadmium)

Page 54: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 54

Trabalhos Relacionados

BrasilProjeto SIDAM – USP (desativado)Projeto SIAM – UFMG (redes ad-hoc)Projeto ISAM – UFRGS (context-aware grid mobile

applications)

Page 55: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 55

Conclusões preliminares

Interesse em mobilidade tem crescido exponencialmente

Computação pervasiva: impulso em 2002Tese da arquitetura ISAM (inovadora)

Context-aware x grid x mobile computing Organização integrada da solução arquitetura ampla, muitos pontos em aberto (futuras

pesquisas, consolidação do grupo)

Page 56: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 56

Conclusões preliminares

ISAMadapt Linguagem para aplicações conscientes do contexto no

ambiente pervasivo (inovadora)Metodologia de projeto embrionária

ISAMcontextServerAbordagem integrada dos serviços (inovadora)

Page 57: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 57

Contribuições

Projeto ISAM Edital 03/2001 FAPERGS www.inf.ufrgs.br/~isam arquitetura de suporte às aplicações pervasivas Possibilidades de integração com outros grupos Dissertações de mestrado (Luciano*, Rodrigo, Alberto,

Maurício) Trabalhos de Conclusão (graduação UFSM, UCPel)

Projeto contextS Edital CNPq-FINEP-SEPIN PDI&TI/2002 middleware para reconhecimento de contexto

Page 58: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 58

Contribuições

Ferramentas para construir aplicações pervasivas Suporte à programação Suporte à execução

Publicações

Page 59: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 59

Publicações

PUBLICAÇÕES 2003jHPCA 2003. YAMIN, Adenauer; AUGUSTIN, Iara;

BARBOSA, Jorge; SILVA, Luciano C.; REAL, Rodrigo; CAVALHEIRO, Gerson; GEYER, Cláudio. Towards Merging Context-aware, Mobile and Grid Computing. Journal of High Performance Computing Applications. London: Sage Publications. 30p, 2003.

Mobile Computing Handbook. ISAM, joing context-awareness and mobility to building pervasive applications. Iara Augustin, Adenauer Yamin, Luciano C. Silva, Rodrigo Real, Gustavo Frainer, Gerson Cavalheiro, Claudio Geyer. I. Mahgoub and M. Ilyas Ed. Florida. CRC Press. (to be published at December, 2003).

Page 60: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 60

Publicações

PUBLICAÇÕES 2002PDCN 2002. Iara Augustin, Adenauer Yamin, Jorge

Barbosa, Cláudio Geyer, Towards Taxonomy for Mobile Applications with Adaptive Behavior. International Symposium on Parallel and Distributed Computing and Networks (PDCN 2002). Innsbruck, Austria. 18-21/feb, 2002.

CATA 2002. Iara Augustin, Adenauer Yamin, Cláudio Geyer, Distributed Mobile Applications with Dynamic Adaptive Behavior. 17th International Conference on Computer and their Applications(CATA 2002). San Francisco, CA. 4-6/april, 2002, R. Gantenbein and S. Shin Editors, ISCA Publishing, ISBN 1-880843-42-0, p.372-375.

Page 61: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 61

Publicações

ISCC 2002. Iara Augustin, Adenauer Yamin, Jorge Barbosa, Cláudio Geyer, ISAM - a Software Architecture for Adaptive and Distributed Mobile Applications, 7th IEEE Symposium on Computers and Communications, Taormina, Italy, 1-4/july, 2002.

IDPT 2002. Rodrigo Reis, Carla Reis, Iara Augustin, Adenauer Yamin, Daltro Nunes, Cláudio Geyer, Towards a Software Process Model to Support the Design of Mobile Computing Applications, 6th World Conference on Integrated Design and Process Technology, Pasadena California, USA, June.

Page 62: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 62

Publicações

NET-CON02. Adenauer Yamin, Iara Augustin, Jorge Barbosa, Cláudio F.R. Geyer. ISAM: a Pervasive View in Distributed Mobile Computing. Network Control and Engineering for QoS, Security and Mobility with focus on Policy-based Networking (IFIP and IEEE Conference). Paris, France, 21-25 oct. 2002.

SBAC/PAD 2002. Adenauer yamin, Iara Augustin, Jorge Barbosa, Luciano C. da Silva, Rodrigo A. Real, Gerson Cavalheiro, Cláudio F.R. Geyer. Multilevel Colaborative Adaptation in High Heterogeneous Distributed Processing. 14th Symp. Computer Architecture and High Performance Computing. Vitória - Brazil, October 28-30.

Page 63: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 63

Agenda

Previsão: dezembro / 2003 Interface do ambiente de desenvolvimento: Ok ISAMadaptEngine: OkISAMcontextServer: existe um protótipo simplificado (aprofundamento das questões – projeto contextS)Tradutor ISAMadapt – Java: em implementação

Page 64: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 64

Agenda

Validação Implementação de uma aplicação protótipo: walkEd; Identificação de aplicações que poderão se beneficiar

das abstrações ISAMadapt nos domínios– Mobile computing– Grid computing– Context-aware computing

Page 65: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 65

Aplicação WalkEd

Aplicação WalkEd (editor pervasivo)semântica siga-meContexto: tipo de dispositivo, bateria, condições de acesso à

rede (conectado, desconectado)Dispositivos: PDA Zaurus 5600 da Sharp (J2ME/CDC) desktops (J2SE)Estratégia de adaptação

Ajuste aos recursos: alta fidelidade quando os recursos são plenos, baixa fidelidade quando são escassos

Carga dinâmica de código (sob demanda): intrínseca ao modelo ISAM

Decisões de localidade no comandos de criação dos entes a cargo do middleware

Page 66: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 66

Aplicação WalkEd

Funcionalidades adaptativas ao contexto Variação nas opções de interface para os diferentes

dispositivos Migração da edição para outro equipamento quando

bateria está baixa ou por decisão do usuário Habilitação/desabilitação de tarefas de edição Ativação/desativação da verificação automática conforme

condições do acesso à redePolítica de adaptação

Criação de entes próximos aos recursos (Ex: ente verificação ortográfica próximo ao dicionário, ente Printer próximo à impressora)

Page 67: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

junho/2010 - Slide 67

Page 68: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 68

Contribuições: taxonomia

context-basedadaptation

Situation

Context

Ap

plic

atio

n

SystemControl ofAdaptation

Resource

location-basedadaptation

resource-basedadaptation

pa

ram

ete

r-b

ase

da

da

pta

tion

con

ten

t-b

ase

da

da

pta

tion

fun

ctio

na

lity-

ba

sed

ad

ap

tatio

n

Page 69: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 69

O processo de tradução

Fragmento de código

Fragmento traduzido

interface Display { void run();

void go(Symbol target); void print();

}interface DisplayMethod_Go { void invoke(Symbol target); }

Class DisplayAdapter implements Display, DisplayMethod_Go ContextListener, Migrable, Runnable{ private Display beingImpl; private DisplayMethod_Go methImpl; DisplayAdapter() // constructor { beingImpl=IsamAdaptEngine.getBeingImpl (“Display”); methImpl=IsamAdaptEngine.getMethImpl (“Display”, “Go”); IsamAdaptEngine.addContextListener (this,”deviceType”); } void run() { beingImpl.run(); } void go(Symbol target) { methImpl.invoke(this, target);} void contextChanged (Context ctx) { if (ctx.getType().equals(“power”)) methImpl=getMethImpl(“Display”, “Go”); else beingImpl=getBeingImpl(“Display”); }...}

interface Display { void run();

void go(Symbol target); void print();

}interface DisplayMethod_Go { void invoke(Symbol target); }

Class DisplayAdapter implements Display, DisplayMethod_Go ContextListener, Migrable, Runnable{ private Display beingImpl; private DisplayMethod_Go methImpl; DisplayAdapter() // constructor { beingImpl=IsamAdaptEngine.getBeingImpl (“Display”); methImpl=IsamAdaptEngine.getMethImpl (“Display”, “Go”); IsamAdaptEngine.addContextListener (this,”deviceType”); } void run() { beingImpl.run(); } void go(Symbol target) { methImpl.invoke(this, target);} void contextChanged (Context ctx) { if (ctx.getType().equals(“power”)) methImpl=getMethImpl(“Display”, “Go”); else beingImpl=getBeingImpl(“Display”); }...}

adaptive being Display() context deviceType : : (pda,desktop,laptop){ // adaptive method declarations adaptive go (target) context power; // shared methods definition print () { clone (Printer, impr); .... }}

adaptive being Display() context deviceType : : (pda,desktop,laptop){ // adaptive method declarations adaptive go (target) context power; // shared methods definition print () { clone (Printer, impr); .... }}

Class DisplayImplBase implements Display{ void print() { // translated code }

Class DisplayImplBase implements Display{ void print() { // translated code }

Page 70: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 70

O processo de Tradução

Fragmento de código

Fragmento traduzido

//@context: deviceType::(desktop,laptop)//@description: it uses swing/J2SE APIs adapter being Display : : desktop() { // constructor display() { native Java { // use javax.swing... } enableSpellChecking(); }// methods definitionenableSpellChecking() { ... // menu set clone (SpellCheck); } insert (line) { ...}}

//@context: deviceType::(desktop,laptop)//@description: it uses swing/J2SE APIs adapter being Display : : desktop() { // constructor display() { native Java { // use javax.swing... } enableSpellChecking(); }// methods definitionenableSpellChecking() { ... // menu set clone (SpellCheck); } insert (line) { ...}}

/*** @context deviceType::(desktop,laptop)* @description it uses swing/J2SE APIs **/class DisplayImpl_desktop extends DisplayImplBase{ private Display adapter; DisplayImpl_desktop(Display adapter) { this.adapter=adapter; } void run() { // translated code of constructor display this.enableSpellChecking(); } void go( Symbol target) { adapter.go(target);} void enableSpellChecking() { ... // menu set exehda.lang.isamadapt.Runtime.createBeing (“SpellCheck”, null, null); } void insert(Symbol line) { // ...translated code }}

/*** @context deviceType::(desktop,laptop)* @description it uses swing/J2SE APIs **/class DisplayImpl_desktop extends DisplayImplBase{ private Display adapter; DisplayImpl_desktop(Display adapter) { this.adapter=adapter; } void run() { // translated code of constructor display this.enableSpellChecking(); } void go( Symbol target) { adapter.go(target);} void enableSpellChecking() { ... // menu set exehda.lang.isamadapt.Runtime.createBeing (“SpellCheck”, null, null); } void insert(Symbol line) { // ...translated code }}

Page 71: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 71

O processo de tradução

Fragmento de código

Fragmento traduzido

//@context: power ::(low,high) //@description: it moves when power is insuficient

adapter DisplayMethod_Go (target)::Low { if (target=null) target := myHome; move (self, target); }}

//@context: power ::(low,high) //@description: it moves when power is insuficient

adapter DisplayMethod_Go (target)::Low { if (target=null) target := myHome; move (self, target); }}

Class DisplayMethod_Go_Low implements DisplayMethod_Go{ DisplayMethod_Go_Low(Display adapter, Symbol target) { // translated code of constructor if (target==null) target=exehda.lang.isamadapt.Runtime. getEnv(“myHome”); exehda.lang.Isamadapt.Runtime.moveBeing (adapter, target); } }

Class DisplayMethod_Go_Low implements DisplayMethod_Go{ DisplayMethod_Go_Low(Display adapter, Symbol target) { // translated code of constructor if (target==null) target=exehda.lang.isamadapt.Runtime. getEnv(“myHome”); exehda.lang.Isamadapt.Runtime.moveBeing (adapter, target); } }

Page 72: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 72

O processo de tradução

Outros comandos são traduzidos para chamadas da isam.adapt.ISAMadaptEngine ou isam.exehda.lang.isamadapt.Runtime.

Por exemplo,

onContext network::connect { // ... comandos }

onContext network::connect { // ... comandos }

Fragmento de código

Fragmento traduzido

Runnable action = new Runnable { void run() { ... // command code }}IsamAdaptEngine.runOnContext (Context ctx, Runnable action);

Runnable action = new Runnable { void run() { ... // command code }}IsamAdaptEngine.runOnContext (Context ctx, Runnable action);

sync onContext processor_idle { // ... Comandos}

sync onContext processor_idle { // ... Comandos}

IsamAdaptEngine.waitForContext (Context ctx);// ... comandos

IsamAdaptEngine.waitForContext (Context ctx);// ... comandos

Page 73: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 73

Ambiente de desenvolvimento

Menus definem os atributos de configuração

Page 74: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 74

Menu Context

Context

c:\

Context Element

Insert Edit Delete

OK

Name:

Cancel

Type: System Catalog Application

Category: temporal

personal

spatial

social

FrequencyVariation: static

dynamic

Scale: local

global

Importance: 0 .. 9

Aggregator

CollectorSensor Predictor

Notifier Rules Translation

Name:

Description:

Interface Code:

Control Parameters:

Frequency:

Parameters:

rewritetimeout

Data Type: Unidade de medidaAgility: continuous

periodic Tempo do ciclo

Atributos: Parâmetroscadastrados

System Catalog

Application

New Edit Delete

New Edit Delete

Name:

Description:

c:\Code:

Agility: continuousperiodic Tempo do ciclo

System Catalog

Application

New Edit Delete

Name:

Description:

c:\Code:

Type:

New Edit Delete Save

operand1

Operand2

valueUp

Operators:

Valuei - valuef

trigger

valueDown

aroundTable-entry

Possibility List of Context Value:

Type:predictive

sensitive

Registry

Locations:

Information Type:relative

absolute

History: on

off

celular

Otherc:\c:\c:\ c:\

Save

Save

Parameters

historic dynamic

Table-search

Page 75: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 75

Menu Adapters

Adapters

Nome do método genérico (arq. Method.txt)Adaptive Method:

Element Context:Seleciona o elemento do contexto(context_*.xml)

State of Context Element:

Bind Code

Insert Edit Delete

OK

Being:

Cancel

Possibilities number:

mneumônico

Search

Edit Alternative Code

Default Code

Adaptor Code: c:\

Seleciona o ente entre os entes daaplicação (beings.txt) Adaptive Being

Page 76: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 76

Menu Policies

Policies

Adaptive Command:

Default Policy apply: All

Never

Best-effort

GLOBAL

CreationDisconnectionDiscoveryFilterMigrationReconnectionReplicationScheduling

Policy composition:append

replace

undefinedState:

unavailable

restrict

Action:cachingreschedulingnoschedulingrerouting ….

Policy: Max sensorMin sensorMax indexMin indexanchor being

c:\

Handle Fail:

Element Context System Resource

undefinedState:

unavailable

restrict

Action:TimeoutBlockedreschedulingrerouting…..

Context conditioned

OK CANCEL

New Edit Delete

Trocável conforme comando de adaptação selecionado

Nome do sensor

Page 77: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 77

ISAMcontextServer

Register

History

Code

Code

Code

Registries

Descriptions

Context data

ISAMadaptEngine 1

EXEHDA

ISAMcomponents

sensor

sensor

sensorSensoreddata

ExternalSource

TRANSLATOR

subscribe

NOTIFIER

AGGREGATOR

EO

PREDICTOREO

ISAMcontextServer

Con trol

EXEHDAnode

(monitor)

Sensored data

DISCOVEREREXEHDAbase

EXEHDAnode

(monitor)

sensor

ISAMadaptEngineEXEHDA

TIPS

TIPSISAMadaptEngine n

DE

FLE

CT

OR

COLLECTOR

DEFLECTOR

ISAMcontextServer

EXEHDAbase

EO

. . . . .C

OLL

EC

TO

R

EO

Page 78: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 78

Revisão

O que é ISAMAdapt?Qual a relação entre os 3 níveis de computação

móvel e no tempo?Móvel, Pervasiva, Ubíqua

Aspectos importantes da CM com relação à programação?

Page 79: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 79

Revisão

O que é ISAMAdapt?R: Linguagem para CM/CP com adaptação ao contexto

Qual a relação entre os 3 níveis de computação móvel e no tempo?R:

Móvel: hoje; Pervasiva: futuro próximo Ubíqua: futuro distante

Page 80: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 80

Revisão

Aspectos importantes das aplicações CM com relação à programação?R:

semântica Siga-me disponibilidade em qualquer lugar e tempo ambiente virtual

Page 81: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 81

Revisão

Semântica Siga-me?Quais aspectos da computação (TI) são alvo do

ISAM?Arquitetura ISAM: tipo? níveis?Quais as diferenças entre ISAMAdapt e

Hololinguagem?Pervasividade X programação?Alguns aspectos dos mw atuais para CM/CP?3 pontos fundamentais da proposta ISAMAdapt?Tópicos a serem considerados na elaboração de uma

linguagem como ISAMAdapt?

Page 82: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 82

Revisão

Semântica Siga-me?R: Independente de lugar Independente de tempo Independente de plataforma

Quais aspectos da computação (TI) são alvo do ISAM?R: ambientes de programação e de execução

Page 83: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 83

Revisão

Arquitetura ISAM: tipo? níveis?R:

em camadas hw e SO: usuais programação: Hololinguagem e ISAMAdapt (Java) execução

– usuário, runtime de linguagem, servidor de contexto– módulos básicos: migração, replicação,

monitoração, ...

Page 84: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 84

Revisão

Quais as diferenças/contribuições entre ISAMAdapt e Hololinguagem?R:

ISAMAdapt: adaptação, contexto, execução Holo: entes, blackboard, mobilidade

Pervasividade X programação?R:

Mobilidade do usuário (follow-me applications) Imprevisibilidade do ambiente de execução Adaptação ao contexto (consciência do contexto)

Page 85: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 85

Revisão

Alguns aspectos dos mw atuais para CM/CP?R:

não consideram restrições, desconexões, variação na disponibilidade de recursos e serviços, dinamicidade,...

para aplicações específicas alguns aspectos isolados

– agentes móveis– contextos específicos: banda– adaptação específica– blackboard

Page 86: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 86

Revisão

3 premissas fundamentais da proposta ISAMAdapt?R:

adaptação ao contexto via linguagem de programação colaboração entre programação e execução

Tópicos a serem considerados na elaboração de uma linguagem como ISAMAdapt?R:

modelo(s) de aplicação modelo de programação processo de adaptação suporte à adaptação processo de modelagem de aplicações

Page 87: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 87

Revisão

Elementos e tipos da adaptação?Abstrações principais da ISAMAdapt?

Page 88: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 88

Revisão

Elementos e tipos da adaptação?R:

elementos: usuário, aplicação, runtime aspectos: pessoal, temporal, espacial, social

Abstrações principais da ISAMAdapt?R:

contexto comandos e políticas adaptadores

Page 89: Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1

Clique para editar os estilos do texto mestreSegundo nívelTerceiro nívelQuarto nívelQuinto nível

Maio /2008- Slide 89

Revisão

Relaçionamento entre aplicação e servidor de contextoR:

aplicação informa qual o contexto de interesse servidor de contexto informa a aplicação de mudanças

no contexto indicado