A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: " Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1."— Transcrição da apresentação:

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


Carregar ppt " Clique para editar os estilos do texto mestre  Segundo nível  Terceiro nível  Quarto nível  Quinto nível junho/2010 - Slide 1."

Apresentações semelhantes


Anúncios Google