Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouGabrielly Botelho Alterado mais de 10 anos atrás
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
2
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível Maio /2008- Slide 2 Equipe ISAM Iara Augustin: autora do ISAMAdapt Adenauer Yamin: Exehda Luciano Cavalheiro: Primos Rodrigo Real: Tips Alberto Egon: Perdis Maurício Moraes: Dimi Gustavo Frainer: EPA Lucas Santos Felipe Fehlberg: Multis alunos da UCPel e UFSM Gerson Cavalheiro (Unisinos) Na época: 2000 a 2007
3
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível Maio /2008- Slide 3 Equipe ISAM – atual na UFRGS Luciano Cavalheiro: tese sobre adaptação Carlos Oberdan: pesquisador associado Valderi Leidhardt: pesquisador associado Gisele Souza: mestranda
4
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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
5
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível Maio /2008- Slide 5 Autoria Autor da tese Iara Augustin Local II-UFRGS, PGCC 1999 – 2003 Versão slides 2010 v10
6
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível Maio /2008- Slide 6 Índice 1.Motivação 2.Projeto ISAM 3.O problema 4.Objetivos Científicos 5.Abstrações ISAMadapt Contexto Adaptadores Comandos e políticas de adaptação 6.Trabalhos Relacionados 7.Conclusões e Contribuições
7
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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
8
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível Maio /2008- Slide 8 References References IBM 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)
9
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível Maio /2008- Slide 9 Computação Pervasiva Novo 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
10
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível Maio /2008- Slide 10 Computação Pervasiva Novo ambiente para o usuário Nosso interesse: Infra-estrutura para computação pervasiva (inexistente) suporte à programação suporte à execução Objetivo geral: Uma infra-estrutura de suporte às aplicações pervasivas Computação móvel (Mobile computing) Computação consciente do contexto (Context-aware computing) Computação em grade (Grid computing)
11
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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
12
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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ções Ambos 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) altera a semântica
13
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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ção Mobilidade do usuário (follow-me applications) Imprevisibilidade do ambiente de execução Adaptação ao contexto (consciência do contexto)
14
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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
15
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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?
16
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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 computacional Desenvolver aplicações reais
17
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível junho/2010 - Slide 17 Objetivos Científicos Identificando 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.
18
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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
19
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível junho/2010 - Slide 19 Adaptação na computação pervasiva Requisitos identificados: Contextualização e Personalização Adaptação multinível Adaptação negociada Desacoplamento temporal e espacial Funcionalidade selecionada pelo contexto
20
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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 Contexto Adaptadores Comandos e Políticas de adaptação
21
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível Maio /2008- Slide 21 Princípios Princípio básico de adaptação Colaboração entre o nível de programação e o ambiente de execução Estático x dinâmico Ou entre linguagem e middleware
22
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível junho/2010 - Slide 22 Modelo de Adaptação
23
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível junho/2010 - Slide 23 Abstrações fase programação / fase execução 2 fases: programação execução
24
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível Maio /2008- Slide 24 Controle da Adaptação Mecanismos de controle da adaptação
25
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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.
26
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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
27
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível junho/2010 - Slide 27 Projeto contextS ISAMcontextService Multis Perdis Exehda
28
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível junho/2010 - Slide 28 Abstração: contexto fase programação Context Menu Permite personalizar as informações de contexto Gera arquivo xml Durante execução é passado pelo AdaptEngine Service
29
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível Maio /2008- Slide 29 Abstração: contexto fase programação Contexto fase programação 1. Variáveis ambiente (fornecidas pelo EXEHDA) Exemplos de vars.: userLocation, ISAMbda, myHome, myHost, contextServer,... If userLocation == myHome then install ISAMbda(applic1) at myHost 2. 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);
30
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível Maio /2008- Slide 30 Abstração: contexto fase programação Contexto fase programação 3. 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
31
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível Maio /2008- Slide 31 Abstração: contexto fase programação Contexto fase programação 4. 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
32
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível Maio /2008- Slide 32 Abstração: contexto fase programação Contexto fase programação 5. 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
33
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível junho/2010 - Slide 33 Abstração: Contexto fase de execução Contexto fase execução Aplicação define o contexto (IDE ISAMadapt – menu Context) Elementos de contexto Nativos (processor) Definidos pela aplicação grau de comunicação de um ente com outro válidos para essa (uma) aplicação
34
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível junho/2010 - Slide 34 Abstração: Contexto fase de execução Contexto fase execução Na execução ISAMadaptEngine Subscrição no ISAMcontextServer Consulta de estados dos elementos de contexto Executa comandos de configuração do ISAMcontextServer
35
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível Maio /2008- Slide 35 Abstração: Contexto fase de execução Contexto fase execução ISAMcontextServer Monitora o contexto Notifica a aplicação (ISAMadaptEngine) (tupla de natureza reativa)
36
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível Maio /2008- Slide 36 Abstração: adaptadores fase programação Adaptação: fase programação Recursos Adaptive being Adaptive method Adapters Comandos de adaptação
37
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível Maio /2008- Slide 37 Abstração: adaptadores fase programação Adaptação: fase programação Pontos no programa tem um comportamento declarado como adaptativo a um elemento do contexto Adaptive being Similar a uma classe Adaptive method Pontos no programa implementam alternativas para os estados possíveis do elemento do contexto Adapters: para beings e métodos Pontos no programa são estratégias de adaptação Comandos de adaptação
38
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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
39
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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 device adapter 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 ISAMcontextServer Exemplo de Ente Adaptativo Declarado (slide anterior Adaptador Escolha durante a carga de código
40
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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
41
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível junho/2010 - Slide 41 Abstração: adaptadores fase execução 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
42
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível junho/2010 - Slide 42 Abstração: adaptadores fase execuçã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 } 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
43
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível junho/2010 - Slide 43 Abstração: adaptadores fase execução 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
44
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível junho/2010 - Slide 44 Comandos de adaptação fase 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 }
45
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível junho/2010 - Slide 45 Comandos de adaptação fase programação Interface para definição de políticas sobre comandos: Políticas default Estratégia de escalonamento Procedimentos em desconexão Opções de locais para instanciação ...
46
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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
47
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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)
48
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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)
49
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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 Exemplo de arquivo XML de política de adaptação
50
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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
51
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível junho/2010 - Slide 51 O tradutor
52
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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 spaces Foco em gerenciamento de recursos Framework para suporte a adaptação Corba e LuaOrb para configurar e criar espaços de objetos Aplicação: gerenciamento de apresentação (slides)
53
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível Maio /2008- Slide 53 Trabalhos Relacionados Linguagens para adaptação Sumatra (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óvel Middlewares (comunicação: Corba, Lime (ET), PeerWare (P2P)) Frameworks (MoLèNE, Timely) APIs (Context Toolkit, Odyssey, Cadmium)
54
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível Maio /2008- Slide 54 Trabalhos Relacionados Brasil Projeto SIDAM – USP (desativado) Projeto SIAM – UFMG (redes ad-hoc) Projeto ISAM – UFRGS (context-aware grid mobile applications)
55
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível Maio /2008- Slide 55 Conclusões preliminares Interesse em mobilidade tem crescido exponencialmente Computação pervasiva: impulso em 2002 Tese 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)
56
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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 ISAMcontextServer Abordagem integrada dos serviços (inovadora)
57
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível Maio /2008- Slide 57 Contribuições Projeto ISAM Edital 03/2001 FAPERGS www.inf.ufrgs.br/~isam 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
58
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível Maio /2008- Slide 58 Contribuições Ferramentas para construir aplicações pervasivas Suporte à programação Suporte à execução Publicações
59
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível Maio /2008- Slide 59 Publicações PUBLICAÇÕES 2003 jHPCA 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).
60
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível Maio /2008- Slide 60 Publicações PUBLICAÇÕES 2002 PDCN 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.
61
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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.
62
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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.
63
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível Maio /2008- Slide 63 Agenda Previsão: dezembro / 2003 Interface do ambiente de desenvolvimento: Ok ISAMadaptEngine: Ok ISAMcontextServer: existe um protótipo simplificado (aprofundamento das questões – projeto contextS) Tradutor ISAMadapt – Java: em implementação
64
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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
65
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível Maio /2008- Slide 65 Aplicação WalkEd Aplicação WalkEd (editor pervasivo) semântica siga-me Contexto: 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
66
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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 à rede Polí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)
67
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível junho/2010 - Slide 67
68
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível Maio /2008- Slide 68 Contribuições: taxonomia
69
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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 }
70
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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 definition enableSpellChecking() {... // 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 definition enableSpellChecking() {... // 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 }
71
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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); }
72
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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
73
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível Maio /2008- Slide 73 Ambiente de desenvolvimento Menus definem os atributos de configuração
74
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível Maio /2008- Slide 74 Menu Context
75
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível Maio /2008- Slide 75 Menu Adapters
76
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível Maio /2008- Slide 76 Menu Policies
77
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível Maio /2008- Slide 77 ISAMcontextServer
78
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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?
79
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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
80
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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
81
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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?
82
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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
83
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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,...
84
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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)
85
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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
86
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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
87
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível Maio /2008- Slide 87 Revisão Elementos e tipos da adaptação? Abstrações principais da ISAMAdapt?
88
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto 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
89
Clique para editar os estilos do texto mestre Segundo nível Terceiro nível Quarto nível Quinto nível Maio /2008- Slide 89 Revisão Relaçionamento entre aplicação e servidor de contexto R: aplicação informa qual o contexto de interesse servidor de contexto informa a aplicação de mudanças no contexto indicado
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.