330 likes | 435 Views
Sistemas Distribuídos Baseados em Componentes. Fabio Kon Departamento de Ciência da Computação IME - USP 4 / abril / 2001. Conteúdo da Palestra. Descrição do contexto e dos problemas Resolução dos problemas Aplicações Práticas Trabalho Futuro. Contexto.
E N D
Sistemas Distribuídos Baseados em Componentes Fabio Kon Departamento de Ciência da Computação IME - USP 4 / abril / 2001
Conteúdo da Palestra • Descrição do contexto e dos problemas • Resolução dos problemas • Aplicações Práticas • Trabalho Futuro Copyleft by Fabio Kon
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 Copyleft by Fabio Kon
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 Copyleft by Fabio Kon
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 Copyleft by Fabio Kon
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. Copyleft by Fabio Kon
Conteúdo da Palestra • Descrição do contexto e dos problemas • Resolução dos problemas • Aplicações Práticas • Trabalho Futuro Copyleft by Fabio Kon
Método para Gerenciamento de Dependências • Lidamos com dois tipos de dependências: 1. Pré-requisitos 2. Dependências Dinâmicas Copyleft by Fabio Kon
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 Copyleft by Fabio Kon
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 Copyleft by Fabio Kon
Serviço de Configuração Automática Resolvedor de Pré-requisitos busca pré-requisitos Repositório de Componentes executa aplicação busca componentes retorna referência Analisador de Pré-requisitos Gerenciador de Recursos Cache Copyleft by Fabio Kon
Desempenho do Serviço de Configuração Automática Copyleft by Fabio Kon
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 Copyleft by Fabio Kon
Representação Explícita de Dependências • Ajuda a dar suporte para: • tolerância a falhas • reconfiguração dinâmica • adaptação dinâmica • balanceamento de carga • computação móvel Copyleft by Fabio Kon
Exemplo: Adaptações Dinâmicas em um Navegador Web Copyleft by Fabio Kon
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 Copyleft by Fabio Kon
Conteúdo da Palestra • Descrição do contexto e dos problemas • Resolução dos problemas • Aplicações Práticas • Trabalho Futuro Copyleft by Fabio Kon
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 Copyleft by Fabio Kon
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 Copyleft by Fabio Kon
Rede de Refletores Copyleft by Fabio Kon
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 Copyleft by Fabio Kon
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 Copyleft by Fabio Kon
Reconfiguração Dinâmica para Tolerância a Falhas Copyleft by Fabio Kon
Impacto da Reconfiguração na Qualidade do Serviço Copyleft by Fabio Kon
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, ... Copyleft by Fabio Kon
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 Copyleft by Fabio Kon
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. Copyleft by Fabio Kon
Conteúdo da Palestra • Descrição do contexto e dos problemas • Resolução dos problemas • Aplicações Práticas • Trabalho Futuro Copyleft by Fabio Kon
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. Copyleft by Fabio Kon
Trabalho Futuro:ComponentConfigurator • Criar bibliotecas reutilizáveis de configuradores de componentes para • reconfiguração dinâmica e • tolerância a falhas. Copyleft by Fabio Kon
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) Copyleft by Fabio Kon
Trabalho Futuro:Middleware Reflexivo Cliente Servidor Middleware Interface para reconfiguração dinâmica Protótipos: U. Illinois: dynamicTAO, LegORB, UIC Lancaster: OpenORB USP e PUC-RJ: ??? Copyleft by Fabio Kon
FIM • Perguntas? Copyleft by Fabio Kon