Sistemas Distribuídos Baseados em Componentes Fabio Kon Departamento de Ciência da Computação IME - USP 4 / abril / 2001 1 Conteúdo da Palestra Descrição do contexto e dos problemas Resolução dos problemas Aplicações Práticas Trabalho Futuro 4 / abril / 2001 Copyleft by Fabio Kon 2 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 Enterprise Java Beans ActiveX Controls, COM CORBA Component Model 4 / abril / 2001 Copyleft by Fabio Kon 3 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 4 / abril / 2001 Copyleft by Fabio Kon 4 Problemas de Configuração Instalação e remoção de programas Atualizações de sistema operacionais Atualizações de aplicações e ferramentas Ambientes distribuídos ligados à Internet 4 / abril / 2001 Copyleft by Fabio Kon 5 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 Causa: não há um gerenciamento apropriado das dependências dentro do sistema. 4 / abril / 2001 Copyleft by Fabio Kon 6 Conteúdo da Palestra Descrição do contexto e dos problemas Resolução dos problemas Aplicações Práticas Trabalho Futuro 4 / abril / 2001 Copyleft by Fabio Kon 7 Método para Gerenciamento de Dependências Lidamos com dois tipos de dependências: 1. Pré-requisitos 2. Dependências Dinâmicas 4 / abril / 2001 Copyleft by Fabio Kon 8 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 4 / abril / 2001 Copyleft by Fabio Kon 9 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 4 / abril / 2001 Copyleft by Fabio Kon 10 Serviço de Configuração Automática executa aplicação retorna referência Resolvedor de Pré-requisitos busca pré-requisitos busca componentes Repositório de Componentes Analisador de Pré-requisitos Gerenciador de Recursos 4 / abril / 2001 Cache Copyleft by Fabio Kon 11 Desempenho do Serviço de Configuração Automática 4 / abril / 2001 Copyleft by Fabio Kon 12 ComponentConfigurator Guarda as dependências dinâmicas Permite inspeção e reconfiguração Pode ser modificado sob medida (customized) através de herança Separação clara de aspectos 4 / abril / 2001 Copyleft by Fabio Kon 13 Representação Explícita de Dependências Ajuda a dar suporte para: tolerância a falhas reconfiguração adaptação dinâmica balanceamento computação 4 / abril / 2001 dinâmica de carga móvel Copyleft by Fabio Kon 14 Exemplo: Adaptações Dinâmicas em um Navegador Web 4 / abril / 2001 Copyleft by Fabio Kon 15 Gerenciamento de Sistemas de Componentes em grande escala: Sistema de Agentes Móveis Apropriado para sistemas de grande escala Útil para distribuição de componentes reconfiguração dinâmica inspeção 4 / abril / 2001 Copyleft by Fabio Kon 16 Conteúdo da Palestra Descrição do contexto e dos problemas Resolução dos problemas Aplicações Práticas Trabalho Futuro 4 / abril / 2001 Copyleft by Fabio Kon 17 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 Computação Musical 4 / abril / 2001 Copyleft by Fabio Kon 18 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 4 / abril / 2001 Copyleft by Fabio Kon 19 Rede de Refletores 4 / abril / 2001 Copyleft by Fabio Kon 20 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 4 / abril / 2001 Copyleft by Fabio Kon 21 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 4 / abril / 2001 Copyleft by Fabio Kon 22 Reconfiguração Dinâmica para Tolerância a Falhas 4 / abril / 2001 Copyleft by Fabio Kon 23 Impacto da Reconfiguração na Qualidade do Serviço 4 / abril / 2001 Copyleft by Fabio Kon 24 Aplicação destas técnicas no Projeto SIDAM PSIT: Protótipo de Sistema de Informações de Trânsito Componentes do sistema são objetos Java distribuídos em uma rede metropolitana Comunicação feita através de Java RMI atualização de dados: sensores e funcionários da CET consulta: população, CET, ambulâncias, ... 4 / abril / 2001 Copyleft by Fabio Kon 25 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 4 / abril / 2001 Copyleft by Fabio Kon 26 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. 4 / abril / 2001 Copyleft by Fabio Kon 27 Conteúdo da Palestra Descrição do contexto e dos problemas Resolução dos problemas Aplicações Práticas Trabalho Futuro 4 / abril / 2001 Copyleft by Fabio Kon 28 Trabalho Futuro: Pré-Requisitos Investigar linguagens ou formatos mais elaborados para especificação de prerequisitos (possivelmente com XML). Gerenciamento de versões em sistemas distribuídos baseados em componentes. 4 / abril / 2001 Copyleft by Fabio Kon 29 Trabalho Futuro: ComponentConfigurator Criar bibliotecas reutilizáveis de configuradores de componentes para reconfiguração dinâmica e tolerância a falhas. 4 / abril / 2001 Copyleft by Fabio Kon 30 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) 4 / abril / 2001 Copyleft by Fabio Kon 31 Trabalho Futuro: Middleware Reflexivo Cliente Servidor Interface para Middleware reconfiguração dinâmica Protótipos: U. Illinois: dynamicTAO, LegORB, UIC Lancaster: OpenORB USP e PUC-RJ: ??? 4 / abril / 2001 Copyleft by Fabio Kon 32 FIM Perguntas? 4 / abril / 2001 Copyleft by Fabio Kon 33