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