Onde Foi Parar a Avenida Paulista??? Seminário SIDAM Fabio Kon 23 de março de 2001 1 Gerenciamento de Dependências em um Sistema de Informação Distribuído Seminário SIDAM Fabio Kon 23 de março de 2001 2 Conteúdo da Palestra  Descrição do contexto e dos problemas  Resolução dos problemas  Aplicações Práticas: SIDAM, PSIT  Trabalho Futuro 23 / Março / 2001 Copyleft by Fabio Kon 3 Contexto   A sociedade moderna exige dos desenvolvedores de software  a produção de muitos programas em pouco tempo  a produção de programas grandes e complexos  funcionamento em diferentes sistemas operacionais  funcionamento em diferentes arquiteturas de hardware Solução parcial: Tecnologia de Componentes    Java Beans, Enterprise Java Beans ActiveX Controls, COM CORBA Component Model 23 / Março / 2001 Copyleft by Fabio Kon 4 Programação Baseada em Componentes É uma extensão da idéia de programação orientada a objetos  Torna a reutilização de código mais fácil  Possibilita a criação de aplicações complexas  usando interfaces gráficas  usando interfaces de programação  23 / Março / 2001 Copyleft by Fabio Kon 5 Problemas de Configuração  Instalação e remoção de programas  Atualizações de sistemas operacionais  Atualizações de aplicações e ferramentas  Ambientes distribuídos ligados à Internet 23 / Março / 2001 Copyleft by Fabio Kon 6 Problemas de Adaptação Componentes têm requisitos específicos  Falha em uma componente pode se alastrar por todo o sistema  Reconfiguração dinâmica é muito difícil  Adaptação dinâmica é mais ainda   Causa: não há um gerenciamento apropriado das dependências dentro do sistema. 23 / Março / 2001 Copyleft by Fabio Kon 7 Conteúdo da Palestra  Descrição do contexto e dos problemas  Resolução dos problemas  Aplicações Práticas  Trabalho Futuro 23 / Março / 2001 Copyleft by Fabio Kon 8 Método para Gerenciamento de Dependências  Lidamos com dois tipos de dependências: 1. Pré-requisitos 2. Dependências Dinâmicas 23 / Março / 2001 Copyleft by Fabio Kon 9 Pré-requisitos  Especifica o que cada componente necessita:  natureza dos recursos de hardware  capacidade dos recursos de hardware  serviços de software (outras componentes)  Exemplo de um Cliente de Vídeo:  SPARC com alto-falante  50% de uma UCP de 400MHz  componente de software decodificadora de MPEG  Serviço de vídeo no padrão CORBA 23 / Março / 2001 Copyleft by Fabio Kon 10 Simple Prerequisite Description Format (SPDF) # Cliente de vídeo :hardware requirements machine_type SPARC os_name Solaris os_version 2.7 min_ram 5MB optimal_ram 40MB cpu_speed >400MHz cpu_share 50% :software requirements Decoder CR:/video/decoders/MPEG VideoServer NS:/local/MPEGVideoServer 23 / Março / 2001 Copyleft by Fabio Kon 11 Serviço de Configuração Automática Resolvedor de Pré-requisitos executa aplicação retorna referência busca pré-requisitos busca componentes Repositório de Componentes Analisador de Pré-requisitos Gerenciador de Recursos 23 / Março / 2001 Cache Copyleft by Fabio Kon 12 Desempenho do Serviço de Configuração Automática 23 / Março / 2001 Copyleft by Fabio Kon 13 ComponentConfigurator  Guarda as dependências dinâmicas  Permite inspeção e reconfiguração  Pode ser moldado (customized) através de herança  Separação clara de aspectos 23 / Março / 2001 Copyleft by Fabio Kon 14 Representação Explícita de Dependências Dinâmicas  Ajuda a dar suporte para:  computação  tolerância móvel a falhas  reconfiguração  adaptação dinâmica  balanceamento 23 / Março / 2001 dinâmica de carga Copyleft by Fabio Kon 15 Exemplo: Adaptações Dinâmicas em um Navegador Web 23 / Março / 2001 Copyleft by Fabio Kon 16 Sistema de Agentes Móveis  Apropriado para sistemas de grande escala  Útil para    distribuição de componentes reconfiguração dinâmica inspeção 23 / Março / 2001 Copyleft by Fabio Kon 17 Conteúdo da Palestra  Descrição do contexto e dos problemas  Resolução dos problemas  Aplicações Práticas  Trabalho Futuro 23 / Março / 2001 Copyleft by Fabio Kon 18 Aplicações  Sistema de Distribuição de Multimídia  dynamicTAO, ORB CORBA Reflexivo  Gaia, sistema para computação ubíqua  SIDAM, sistema para controle de tráfego 23 / Março / 2001 Copyleft by Fabio Kon 19 Sistema de Distribuição de Multimídia em Grande Escala  Objetivo: enviar fluxos multimídia para milhões de usuários simultâneos através da Internet.  Pode ser utilizado para  Envio ao-vivo de áudio, vídeo, texto, HTML   Envio de vídeos pré-gravados  Áudio/Videoconferência Método: rede de grande-área de Refletores 23 / Março / 2001 Copyleft by Fabio Kon 20 Rede de Refletores 23 / Março / 2001 Copyleft by Fabio Kon 21 Experiência com o Sistema Missão Mars Pathfinder NASA JPL (1998)  30 refletores em 4 continentes  Applet decodifica vídeo e áudio p/ cliente  1.2M de sessões de vídeo / áudio  24h/dia durante 3 meses   Encontramos erros enquanto o sistema rodava 23 / Março / 2001 Copyleft by Fabio Kon 22 Aplicando a Arquitetura  Pré-requisitos e Sistema de Configuração Automática :  Usados para carregar e configurar as componentes de cada Refletor  Reserva de memória, UCP, e rede (não implementados)  ComponentConfigurators :  representam dependências intra- e inter-Refletores  dão suporte a tolerância a falhas 23 / Março / 2001 Copyleft by Fabio Kon 23 Reconfiguração Dinâmica para Tolerância a Falhas 23 / Março / 2001 Copyleft by Fabio Kon 24 Impacto da Reconfiguração na Qualidade do Serviço 23 / Março / 2001 Copyleft by Fabio Kon 25 Aplicação destas técnicas no PSIT do SIDAM  PSIT: Protótipo de Sistema de Informações de Trânsito  Desenvolvido por XX e Prof. Dilma M. Silva.  Componentes do sistema são objetos Java  Comunicação feita através de Java RMI 23 / Março / 2001 Copyleft by Fabio Kon 26 Gerenciamento de Dependências no PSIT Servidores de Informação (sobre trânsito)  Servidores de Localização (dizem qual SI deve ser utilizado)  ComponentConfigurators guardam relações de dependências entre SLs e Sis  Guardam também alternativas  Sistema desencadeia reconfiguração automaticamente quando detecta queda de SIs  23 / Março / 2001 Copyleft by Fabio Kon 27 PSIT: Trabalho em Andamento Reconfiguração automática quando da falha de qualquer componente do sistema.  Criação e destruição de réplicas de SIs e SLs automaticamente de acordo com a carga.  Migração de Componentes de acordo com carga e localização física.   Objetivo: oferecer Serviço de Informações sobre trânsito sempre disponível e com resposta rápida. 23 / Março / 2001 Copyleft by Fabio Kon 28 Conteúdo da Palestra  Descrição do contexto e dos problemas  Resolução dos problemas  Aplicações Práticas  Trabalho Futuro 23 / Março / 2001 Copyleft by Fabio Kon 29 Trabalho Futuro: Pré-Requisitos  Investigar linguagens ou formatos mais elaborados para especificação de prerequisitos  possivelmente usando XML  aprender com experiência do Debian Linux  Gerenciamento de versões em sistemas distribuídos baseados em componentes.  Como gerar pré-requisitos automaticamente? 23 / Março / 2001 Copyleft by Fabio Kon 30 Trabalho Futuro: ComponentConfigurator  Criar bibliotecas reutilizáveis de configuradores de componentes para  reconfiguração dinâmica e  tolerância a falhas. 23 / Março / 2001 Copyleft by Fabio Kon 31 Trabalho Futuro: Middleware Reflexivo Cliente Servidor Middleware Interface para reconfiguração dinâmica 23 / Março / 2001 Copyleft by Fabio Kon 32 FIM  Perguntas? 23 / Março / 2001 Copyleft by Fabio Kon 33 Resumo das Contribuições Originais 1. Arquitetura para gerenciamento de dependências [USENIX COOTS’99, IEEE Concurrency´00] 2. Serviço de Configuração Automática [IEEE HPDC’00] 3. Agentes Móveis de Reconfiguração 4. dynamicTAO [IEEE ASAMA’00] [IFIP/ACM Middleware’00] 5. Sistema de Distribuição de Multimídia [CC’01] 23 / Março / 2001 Copyleft by Fabio Kon 34 Trabalho Futuro: Computação Musical  Aplicação centralizada:   Seqüênciador baseado em componentes (ferramenta para composição musical) Aplicações distribuídas: Analisador e Gerenciador de Acústica de Salas  Sistema de Agentes Móveis Musicais (ambiente para composição e execução musical)  23 / Março / 2001 Copyleft by Fabio Kon 35