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
Download

Pré-requisitos - IME-USP