Um Arcabouço para Suporte a Reconfiguração Dinâmica em Ambiente Java Ricardo Koji Ushizaki Orientador: Prof. Dr Fabio Kon Abril/2005.

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

Sistemas Distribuídos
Sistemas Distribuídos Baseados em Objetos
Stefan Neusatz Guilhen Prof. Dr. Francisco Carlos da Rocha Reverbel
Capitulo 6: Entrada e Saída
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
(Unified Modeling Language)
Um Processo Baseado em MDA para a Especialização de Mecanismos de Persistência Fabio Seixas Marques Seminário LES – 7 de abril de.
Viviane Torres da Silva
Sistema para Gerenciamento de Redes Baseado em Agentes Móveis
Repositório de Interfaces em CORBA
Prof. João Bosco M. Sobral
Conceitos do Servidor Funcionamento Básico do Servidor Tarefas necessárias para estabelecer um servidor para receber requests do Cliente.
Chapter 4: Threads.
Sistemas Distribuídos
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
Introdução a diagrama de classes e UML
1 Arquitetura CORBA Repositório de Implementação Repositório de Interface cliente programa cliente proxy ORB Core ou invocação dinâmica servidor ORB Core.
Objetos Distribuídos Padrão CORBA
Engenharia Reversa É o processo de derivar as especificações lógicas dos componentes do sistema a partir de sua descrição física com auxílio de ferramentas.
Filipe Ferraz Salgado Orientador: Francisco Reverbel Tipo de Trabalho: Estágio Supervisionado Após a criação do pacote com a versão 3.1 do jBPM, surgiu.
Análise e Projeto de Sistemas
Gerência de Redes Áreas Funcionais de Gerenciamento
Mobilidade Cláudia Ribeiro.
Diagrama de Componentes
Copyright Marcos L. Chaim 2005 Princípios de Projeto de Software Orientado a Objetos Segundo Semestre 2005 Marcos L. Chaim ACH Turma 02 EACH – USP.
Introdução aos conceitos de Teste de Software
Middleware e Sistemas Distribuídos
Tecnologias de Linguagens para Banco de Dados
Concorrência em Java Threads em Java.
Gerenciamento de Configuração
Arquitetura de software
Projeto: Capacitação em GP
Arquitetura CORBA e Objetos Distribuídos
Sistemas Distribuídos
Processo Entidade dinâmica e efêmera
Concorrência e Java RMI
Gerência de Configuração - GC
Sistemas Distribuídos
Marshal Dictionary Alessandro de Luna AlmeidaAlessandro de Luna Almeida Igor Azevedo SampaioIgor Azevedo Sampaio Mozart de Siqueira Campos Araújo FilhoMozart.
Controle de concorrência
Sistemas Distribuídos Introdução. Conceito Coleção de múltiplos processos que executam sobre uma coleção de processadores autônomos interligados em uma.
BD Distribuído Conceitos Iniciais.
SISTEMAS OPERACIONAIS I
Analises de sistemas ESTRUTURADA Analise de sistema estruturada.
Sistemas Operacionais
SISTEMAS OPERACIONAIS I
Analise Semântica aula-10-analise-semântica.pdf.
Tecgraf PUC-Rio Setembro de 2013 Introdução ao Openbus.
Processos.
Elementos de um Sistema de Agentes Móveis Agentes e Places Comportamento de Agentes Comunicação Padronização OMG/MASIF.
Introdução a Teste de Software
SISTEMAS OPERACIONAIS I
Conceitos de thread Faculdade PITÁGORAS – Outubro de 2012
Ricardo Koji Ushizaki Transparent Dynamic Reconfiguration for CORBA João Paulo A. Almeida(+), Maarten Wegdam(+)(++), Marten van Sinderen(+),
Integração de Ferramentas CASE
Exehda API Implementação Tuple-Space Rodrigo Gheller Luque.
JR: Flexible Distributed Programming in an Extended Java Elmário Gomes Dutra Jr. Gustavo Romano.
1 Onde Foi Parar a Avenida Paulista??? Seminário SIDAM Fabio Kon 23 de março de 2001.
FORMI Integrating Adaptive Fragments Objects into Java RMI Kapitza, Rüdiger; Domaschka, Jörg; Hauck, Franz J.; Reiser, Hans P. ;Schmidt, Holger. IEEE Distributed.
Implementação Distribuída Escalonamento de Tempo-Real Prof. Dr. Norian Marranghello Grupo 8 Daniela Gonçalves Strozi – Sayuri Watanabe
Arquitetura de computadores
Introdução ao SCS Tecgraf PUC-Rio Setembro de 2013.
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Introdução ao OpenBus.
ISO9001:2000 para Software Professor: Alexandre Vasconcelos Equipe: Amanda Pimentel Börje Karlsson Danielly Karine Erika Pessoa Jorge Cavalcanti Jose Edson.
Leandro Clementino Almeida.  Anos 50 - Sistemas Operacionais tipo Lote:  Aumentar a capacidade de processamento de programas  Usuário ia ao computador.
Gerenciamento de riscos
CURSO JAVA BÁSICO Módulo 9 – slide 1 Módulo 10 Threads.
Princípios de design SOLID Padrões de Projeto Orientados a Objetos Profa. Danielle Martin Universidade de Mogi das Cruzes.
Transcrição da apresentação:

Um Arcabouço para Suporte a Reconfiguração Dinâmica em Ambiente Java Ricardo Koji Ushizaki Orientador: Prof. Dr Fabio Kon Abril/2005

Ricardo Koji Ushizaki2 Agenda Três partes : Reconfiguração Dinâmica Trabalhos Relacionados Arcabouço Java

Ricardo Koji Ushizaki3 Primeira Parte Reconfiguração Dinâmica Trabalhos Relacionados Arcabouço Java

Ricardo Koji Ushizaki4 Reconfiguração Dinâmica Sistemas computacionais em constante evolução Programação orientada a objetos Baseada em componentes Evolução requer atualizações do sistema

Ricardo Koji Ushizaki5 Cenário Típico Necessidade de Atualização Parada Total do Sistema Implantação da Atualização Reinício do Sistema

Ricardo Koji Ushizaki6 Problemas Paradas do Sistema significam: Prejuízos financeiros para empresas; Vidas em perigo em sistemas críticos (hospitais). É necessário atualizar dinamicamente os sistemas

Ricardo Koji Ushizaki7 Cenário com Reconfiguração Dinâmica Sistema Atualizado Necessidade de Atualização Sistema é Reconfigurado Dinamicamente

Ricardo Koji Ushizaki8 Histórico Primeiros trabalhos de reconfiguração dinâmica surgiram na década de 80 Formalizaram técnicas e identificaram obstáculos para reconfiguração dinâmica

Ricardo Koji Ushizaki9 Objetivos da Reconfiguração Dinâmica Permitir a evolução do sistema em tempo de execução Pouco ou nenhum impacto negativo no seu desempenho

Ricardo Koji Ushizaki10 Operações da Reconfiguração Dinâmica Adição e Remoção Adicionar novo componente Remover componente Substituição Substituir implementação Migração Mover componente

Ricardo Koji Ushizaki11 Requisitos Sistema Atualizado Necessidade de Atualização Sistema é Reconfigurado Dinamicamente Correção Preservação da Consistência Máxima Transparência Mínimo Impacto na Execução

Ricardo Koji Ushizaki12 Aspectos Importantes Aplicações possuem estado Deve ser mantido correto e consistente Garantir a Transferência de Estado Estado deve ser migrado da implementação atual para a nova a ser instalada Transferência de Estado não deve corromper o sistema

Ricardo Koji Ushizaki13 Exemplo ClienteComponente atual Cliente Componente atual Novo componente 1) 2) Novo componente Sistema Reconfigurado Componente atual 3) 4) Cliente Novo componente Transfere Estado

Ricardo Koji Ushizaki14 Estado Seguro É necessário preservar a consistência do sistema após a reconfiguração Para ocorrer a transferência de estado: Componentes devem estar em um estado seguro Garantir que permaneçam nesse estado durante a reconfiguração

Ricardo Koji Ushizaki15 Atingindo Estado Seguro Cliente Novo componente Componente atual Componente atual Componente atinge um Estado Seguro Componente atual Novo componente Transfere Estado 2) 2.1) 3)

Ricardo Koji Ushizaki16 Preservar Consistência Sistema deve estar em um estado correto após a reconfiguração Estado correto: Integridade estrutural preservada; Partes afetadas continuam interagindo com sucesso; Invariantes do estado preservadas.

Ricardo Koji Ushizaki17 Mecanismos Foram propostos diversos mecanismos para a reconfiguração dinâmica: Mecanismo de Bloqueio de Chamadas Mecanismo de Indireção de Chamadas Mecanismo de Pontos de Reconfiguração

Ricardo Koji Ushizaki18 Bloqueio de Chamadas Para o componente chegar a um estado seguro: bloquear chamadas a métodos que alterem seu estado Ou abortar chamadas a esses métodos (por exemplo, via Java Exceptions)

Ricardo Koji Ushizaki19 Exemplos de bloqueios ClienteComponente atual 1- Bloquear no lado cliente Mais simples de implementar Muito intrusiva 2- Bloquear no lado do componente ClienteComponente atual Transparente ao cliente Manipular variáveis locais Nem sempre podemos alterar cliente

Ricardo Koji Ushizaki20 Exemplos de bloqueios 3- Bloquear entre o cliente e o componente Cliente Componente atual Indireção De Chamadas Transparente ao cliente Toda chamada tem um “passo” a mais

Ricardo Koji Ushizaki21 Indireção de Chamadas Utiliza mecanismos do middleware CORBA, EJB,.NET Redireciona chamadas do cliente para componente Existe um serviço intermediário que intercepta toda chamada

Ricardo Koji Ushizaki22 Exemplo de indireção Serviço intermediário intercepta chamada Cliente Componente Destino Análise da chamada do cliente Repassa chamada para componente destino 1 2

Ricardo Koji Ushizaki23 Pontos de Reconfiguração Pontos no código seguros para a reconfiguração Não precisa esperar que a chamada termine para iniciar a reconfiguração Execução do método é interrompida no ponto de reconfiguração Cliente inicia chamada em um componente e finaliza no novo componente

Ricardo Koji Ushizaki24 Exemplo de Ponto de Reconfiguração Bloquear no lado do componente Cliente Componente atual Ponto de Reconfiguração Novo componente

Ricardo Koji Ushizaki25 Pontos de Reconfiguração Vantagens: Atinge estado seguro durante invocação do método Métodos de longa execução não atrasam a reconfiguração

Ricardo Koji Ushizaki26 Pontos de Reconfiguração Desvantagens: Preservar estado do componente e do método invocado Difícil de implementar: nova implementação deve compartilhar o mesmo comportamento após o ponto de reconfiguração Caso contrário, não é possível mapear contexto

Ricardo Koji Ushizaki27 Segunda Parte Reconfiguração Dinâmica Trabalhos Relacionados Arcabouço Java

Ricardo Koji Ushizaki28 Trabalhos Relacionados - Argus Substituição Dinâmica no Argus MIT Toby Bloom Formalizou um modelo de substituição dinâmica utilizando Argus Argus é um sistema distribuído composto por módulos chamados de guardiões Definiu mecanismo para substituir manualmente os guardiões

Ricardo Koji Ushizaki29 Trabalhos Relacionados - Conic Configuração Dinâmica com Conic Imperial College – 1985 – Jeff e Magee Conic: ambiente de programação ferramentas para compilar, configurar, depurar e executar programas Como configurar dinamicamente sistema em Conic Definem comandos: link, unlink, create e um ConfigurationManager para reconfiguração Termo quiescence: componente em modo passivo

Ricardo Koji Ushizaki30 Trabalhos Relacionados - POLYLITH POLYLITH É um sistema distribuído para ambientes heterogêneos Universidade de Maryland – 1990 Purtillo e Hofmeister incluem suporte para reconfiguração dinâmica no POLYLITH Estenderam o trabalho de Jeff e Magee Utiliza pontos de reconfiguração para capturar e restaurar estado

Ricardo Koji Ushizaki31 Trabalhos Relacionados - Bidan Serviço de Reconfiguração Dinâmica para CORBA Bidan em 1998 estendeu a semântica do serviço CORBA de ciclo de vida Criou Dynamic Reconfiguration Manager: Interage com componentes Operação passivateLink Interface RO_Object

Ricardo Koji Ushizaki32 Trabalhos Relacionados Reconfiguração Dinâmica de Aplicação Java Baseada em Componentes MIT – 2000 – Ziqiang Tang Define modelo utilizando pontos de reconfiguração Define novas palavras-chaves em Java: component, decode, encode, fulfills, reconfigurables, reconfigurable

Ricardo Koji Ushizaki33 Trabalhos Relacionados Reconfiguração Dinâmica Transparente para CORBA Almeida et al – 2001 Estendem o trabalho de Bidan adicionando suporte para: Chamadas re-entrantes Substituições atômicas de múltiplos objetos Maior transparência no ORB do CORBA Define arquitetura de componentes: Reconfiguration Manager, Location Agent e Reconfiguration Agents

Ricardo Koji Ushizaki34 Trabalhos Relacionados Sistema Operacional 2K Universidade de Illinois – 2000 – Kon et al Criaram sistema operacional distribuído baseado em componentes Define um Serviço de Configuração Automática para: Gerenciar pré-requisitos Gerenciar dependências dinâmicas entre componentes

Ricardo Koji Ushizaki35 Trabalhos Relacionados Adaptação Dinâmica de Sistemas Distribuídos IME USP – 2003 – Francisco Silva e Silva Criou arquitetura para adaptação dinâmica Módulos de monitoração do sistema Detecção e análise de eventos Verificação de pré-condições e aplicar reconfiguração dinâmica

Ricardo Koji Ushizaki36 Trabalhos Relacionados – JBoss e JMX Marc Fleury e Reverbel apresentaram em 2003 a arquitetura JMX do JBoss JMX – Java Management Extensions Principal arquitetura do JBoss Gerenciamento dinâmico e monitoração Componentes Mbeans (Managed Beans) Nível de indireção entre clientes e Mbeans favorece a reconfiguração do sistema

Ricardo Koji Ushizaki37 Terceira Parte Reconfiguração Dinâmica Trabalhos Relacionados Arcabouço Java

Ricardo Koji Ushizaki38 Configuradores de Componentes Modelo seguido pelo nosso arcabouço Objetivo: representar as dependências dinâmicas entre componentes Cada componente possui um Configurador de Componente (CC) associado

Ricardo Koji Ushizaki39 Modelo

Ricardo Koji Ushizaki40 Dependências São representadas através de ganchos e clientes Quando Componente A depende de B: Anexar CC.B a um dos ganchos do CC.A Adicionar CC.A à lista de clientes do CC.B

Ricardo Koji Ushizaki41 Dependências

Ricardo Koji Ushizaki42 Diagrama de Classes

Ricardo Koji Ushizaki43 Extensão do Modelo Arcabouço de Objetos Reconfiguráveis Extensão dos Configuradores de Componentes Interface própria para reconfiguração: ReconfigurableObject Métodos para exportar e importar o estado Executar a substituição do componente

Ricardo Koji Ushizaki44 ReconfigurableObject Todo objeto reconfigurável deve implementar essa interface Três métodos principais: prepareReconfiguration() Exporta o estado replaceImplementation() Substituição dinâmica do objeto initFromROState() Importa o estado

Ricardo Koji Ushizaki45 Transferência de Estado Exportar e importar o estado através de um ROState Baseado no padrão Memento: Armazena estado interno do componente Estado é recuperado na importação

Ricardo Koji Ushizaki46 Substituição de Implementação Substitui dinamicamente o componente Método replaceImplementation() Exporta estado atual Cria nova instância da nova implementação Importa estado na nova instância Atualiza referências

Ricardo Koji Ushizaki47 Diagrama de Classes

Ricardo Koji Ushizaki48 Políticas de Consistência Determinam o comportamento dos componentes durante a reconfiguração Indica ao componente quando bloquear e sincronizar chamadas Três tipos de políticas: Fraca – não precisa de bloqueios Média – bloqueia parcialmente Forte – sempre bloqueia

Ricardo Koji Ushizaki49 Diferenças entre Políticas Política de Consistência Fraca: Componentes stateless (sem estado) Política de Consistência Média Define partes do componente consistentes Política de Consistência Forte Consistência total do estado

Ricardo Koji Ushizaki50 Aplicação Gráfica Ilustrar uso de reconfiguração dinâmica Cada Figura Geométrica é um Componente Estado: cor, nome, ID, tamanho Três implementações: Quadrado, Círculo, Retângulo Arredondado

Ricardo Koji Ushizaki51

Ricardo Koji Ushizaki52 Diagrama de Classes

Ricardo Koji Ushizaki53 Substituição

Ricardo Koji Ushizaki54 Resultado

Ricardo Koji Ushizaki55 Dependências

Ricardo Koji Ushizaki56 Adicionar mais ganchos

Ricardo Koji Ushizaki57 Menu alterar cor

Ricardo Koji Ushizaki58 Resultado

Ricardo Koji Ushizaki59 Aplicação Gráfica Foi desenvolvida em Java Swing A documentação e o código fonte está disponível em:

Ricardo Koji Ushizaki60 Conclusões e Trabalhos Futuros Conclusões: Estudo de mecanismos existentes de reconfiguração Criação de arcabouço para reconfiguração Trabalhos Futuros: Aspectos transacionais Tolerância a Falhas Suporte a Sistemas Distribuídos

Ricardo Koji Ushizaki61 Obrigado! Agradeço a todos os presentes e a todos que tornaram esse projeto possível: OBRIGADO!