Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Treinamento no GRADEp Serviço ContextManager CtxManagerDemo.

Slides:



Advertisements
Apresentações semelhantes
Programação II Licenciatura de Ciências da Computação Padoca Calado
Advertisements

Programação em Java Prof. Maurício Braga
Soluções Iterativas com Laços
Construção de Algoritmos 2
Programação em Java Prof. Maurício Braga
Estruturas de Repetição
Programação em Java Prof. Maurício Braga
Sistemas distribuídos
Marco A. S. Reis EJB Acesso Remoto Marco A. S. Reis
Tratamento de Exceções
Padrão de Projeto Interpreter
PRDS - Programa de Residência em Desenvolvimento de Software Laboratório de Engenharia de Software (LES) da PUC-Rio Carlos Lucena
Uma linguagem de programação para o ambiente Virtuosi
De 17 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes Aula.
Recursividade Inhaúma Neves Ferraz
DNS Introdução.
Arrays Profa. Isabel Harb Manssour (Material adaptado das aulas dos Profs.: Luciana Nedel, Júlio Machado e Bernardo Copstein) Arrays Exercícios.
Polimorfismo e Classes Abstratas Profa
Sistemas Operacionais
Linguagem de Programação II
Membros estáticos.
Slide 1 Rede Nacional de Ensino e Pesquisa Instalação do Middleware Treinamento em GRADEp – junho de 2005 GT GRADEp Middleware GRADEp Instalação.
Treinamento no GRADEp HelloWorld Args. Slide 2 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - julho 2005 HelloWorld e Args Autoria Autora.
Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço Collector Treinamento no GRADEp Serviço Collector CollectorDemo e.
GERENCIAMENTO DE REDES
JAVA ENUMS © 2009 by Jorge L. de Souza Leão março de 2009 PEE - COPPE/UFRJ.
Capítulo 9 Herança 1.
Revisão da Linguagem C.
Classes e objetos Arrays e Sobrecarga
Classes e objetos P. O. O. Prof. Grace.
Introdução a Programação JAVA
Estrutura de Dados em Java
JAVA: Conceitos Iniciais
Concorrência em Java Threads em Java.
Threads: Introdução e Implementação
Programação Orientada a Objetos com Java
Capítulo 2 Java Servlets.
Nazareno Andrade (baseado no material de Hyggo Almeida)
Padrão de Projeto Visitor
JAVA Linguagem Ambiente de Desenvolvimento
Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.
METODOLOGIA PARA DESENVOLVIMENTO DE SISTEMAS Prof. Dr. rer. nat. Daniel D. Abdala 1.
Interfaces.
Atributos, Encapsulamento e Interface em Java
Programação I Aula 2 (Métodos)
Chamada Remota de Procedimentos
Sistemas Operacionais
OPERADORESOPERADORES SCJP – Otimize-TI. Operadores Java Resultado: Maioria das operações é um booleano ou numérico. Não podem ser sobrecarregados (Existem.
Linguagem de Programação JAVA
José Pacheco A. Prado. Você pode definir diferentes cursores em seus projetos. Para isto basta utilizar a função setCursor.
1 Mobilidade de Código com μcode Projeto Giga Alexandre Lages
Capítulo 5 Garbage Collector.
By Ducheno Kelly Centro de Formação São Domingos.
Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;
Concorrência e thread Petrônio Júnior(pglj) Márcio Neves(mmn2)
Professora: Lucélia Alves de Oliveira
Paradigmas da Programação – Semestre 1 – Aula 9 Professor: Eduardo Mantovani )
Wagner Santos C. de Jesus
Nome alunos 1 Título UC. Título – slide 2 Conteúdo Conteúdo 2.
Profa. Patrícia A. Jaques
Tratamento de Exceções
Introdução às Java Threads
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Java Kickstart, day 2 Semelhanças com linguagem C.
Polimorfismo.
Funções Matemáticas e de String
M ÉTODOS DA C LASSE S TRING. FUNÇÕES COM STRING Uma string é um tipo texto que corresponde à união de um conjunto de caracteres. Em Java, as strings são.
JAVA Sintaxe.
Laboratório de Programação II Método main Dados e Métodos de Classes.
CURSO JAVA BÁSICO Módulo 9 – slide 1 Módulo 10 Threads.
Transcrição da apresentação:

Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Treinamento no GRADEp Serviço ContextManager CtxManagerDemo

Slide 2 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Autoria Autor Fábio Reis Cecin Versão V1, junho de 205

Slide 3 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Sumário da apresentação 1 Visão geral – serviço ContextManager 2 Exemplo: CtxManagerDemo

Slide 4 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Visão geral O serviço ContextManager é responsável pelo refinamento da informação bruta produzida pela monitoração de sensores; Produz informações abstratas (mnemônicas) referentes aos elementos de contexto; A linguagem empregada para a definição dos elementos de contexto utiliza o formato XML.

Slide 5 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Exemplo: contexto load EXEMPLO: contexto load (ocupação) Procura-se: Mapear a ociosidade da CPU do nodo em um valor simbólico para a aplicação que executa neste nodo De modo que: Quando o contexto muda (valor sensorado de ociosidade da CPU), a aplicação deve ser notificada, recebendo o novo valor (estado) do contexto. Elemento de contexto (Mnemônico) Ociosidade da CPU (%) free for chatvalor > 60 occupied60 > valor > 30 do not disturb!30 > valor

Slide 6 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Exemplo: contexto load (XML) Elementos de Contexto (estados) Sensores Sintaxe do mapeamento (neste caso, de intervalos numéricos para mnemônicos) Mapeamento ub = limite superior lbo = limite inferior

Slide 7 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Visão geral No GRADEp a informação de um contexto registrado é produzida por uma cadeia de detecção de contexto de três partes: Agregador (aggregator): responsável pela composição dos dados de um ou mais sensores para a produção de um valor agregado; Tradutor (translator): converte um valor agregado em um valor abstrato (mnemônico – equivalente a pouca bateria, máquina ociosa, etc.) Notificador (notifier): detecta alterações no dado abstrato fornecido pelo tradutor, disparando então eventos de modificação de contexto. Atualmente são suportados elementos de contexto mono-sensor (entrada do dado de monitoração proveniente de um único sensor). Em desenvolvimento: Suporte a elementos de contexto compostos ou multi-sensor; Inclusão de um componente preditor (Predictor) em paralelo com o componente agregador na cadeia de detecção de contexto, para prever mudanças de contexto.

Slide 8 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Sumário da apresentação 1 Visão geral – serviço ContextManager 2 Exemplo: CtxManagerDemo

Slide 9 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager CtxManagerDemo Exemplo: Aplicação ContextManagerDemo Exemplo de uma aplicação consciente de contexto no GRADEp Local: /isam/isam-apps/ctxmanagerdemo/ Arquivos: CtxManagerDemo.java Fonte da aplicação. ctxmanagerdemo.isam Descritor de disparo da aplicação em formato XML do ISAM.

Slide 10 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager CtxManagerDemo – imports CtxManagerDemo.java: (trechos selecionados) // importa ContextManager, Context, ContextState // e ContextListener import org.isam.exehda.Exehda; import org.isam.exehda.services.ContextManager; import org.isam.exehda.services.ContextManager.Context; import org.isam.exehda.services.ContextManager.ContextState; import org.isam.exehda.services.ContextManager.ContextListener;

Slide 11 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager CtxManagerDemo – Contexto load (XML) public class CtxManagerDemo { static final String CTXDEF = ( "" // declara o XML do contexto load em uma string + " \n" + " \n").replace('\'','"');

Slide 12 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager CtxManagerDemo – Contexto gui (XML) // declara o XML do contexto gui: tipo de interface de saída disponível para a aplicação static final String CTXDEF2 = ( "" + " \n" + " \n").replace('\'','"'); Tags XML: próximo slide...

Slide 13 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Contexto gui (XML) Mapeamento de string: para quando o sensor produz uma string. Sensor monitora uma propriedade (string) do runtime Java. Op = operação: equals = igualdade prefix = prefixo v = valor (ao qual aplica a operação) ignoreCase = sensível a maiúsculas? Se modo AWT começa com swing, é desktop; Se é awt-low-res é PDA; Se é none, então é console texto.

Slide 14 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager CtxManagerDemo – main() (1/3) // Ponto de entrada da aplicação public static void main( String[] args ) throws Exception { // Obtém referência para o serviço ContextManager ContextManager ctxman = (ContextManager) Exehda.getService( ContextManager.SERVICE_NAME ); // Cria contextos (Context) baseados nos descritores XML. O serviço // ContextManager fica responsável por solicitar ao serviço Coletor // o registro dos sensores apropriados. Context ctx = ctxman.createContext( CTXDEF ); // contexto load Context ctx2 = ctxman.createContext( CTXDEF2 ); // contexto gui API

Slide 15 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager CtxManagerDemo – main() (2/3) // declara uma subclasse (anônima) de ContextListener, // sobrescrevendo o seu método: // void contextChanged(ContextState p, ContextState c); ContextListener l = new ContextListener() { public void contextChanged(ContextState prev, ContextState curr) { System.out.println("Context changed from "+prev+" to "+curr); } }; // registra as instâncias dos contextos load e gui no ContextManager, // associando, a estas instâncias, o objeto ContextListener criado acima. ctxman.addContextListener( l, ctx ); ctxman.addContextListener( l, ctx2 ); } Próximo slide API

Slide 16 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager ContextManager.addContextListener() O método addContextListener() da interface ContextManager associa um objeto escutador (listener) a um elemento de contexto: Argumentos: ContextListener: objeto que será notificado sobre mudanças no contexto; Context: o contexto em questão. public interface ContextManager { public void addContextListener(ContextListener l, Context c); API

Slide 17 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager CtxManagerDemo – main() (3/3) // aguarda 60 segundos para que seja possível mudar o // contexto através da modificação dos valores dos sensores // ( por exemplo, mudança na ocupação de CPU,...) System.out.println("Waiting for context events..."); Thread.currentThread().sleep(60000); System.out.println("Cleaning up..."); // remove uma associação entre um Context e um ContextListener // ( parâmetros: idem ao addContextListener() ) ctxman.removeContextListener( l, ctx ); ctxman.removeContextListener( l, ctx2 ); // libera o Context do load ctxman.releaseContext( ctx ); } // fim do main() e do demo Próximo slide... API

Slide 18 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager ContextManager. releaseContext() O método releaseContext() da interface ContextManager notifica o ContextManager de que o contexto não é mais necessário: Recebe como argumento o Context que pode ser liberado; A liberação de um Context serve para possível liberação de recursos alocados por sensores. public interface ContextManager { public void releaseContext(Context h); API

Slide 19 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Treinamento no GRADEp Serviço ContextManager CtxManagerDemo