Sistemas Distribu - PowerPoint PPT Presentation

About This Presentation
Title:

Sistemas Distribu

Description:

Sistemas Distribu dos Introdu o Especializa o em Redes de Computadores Prof. F bio M. Costa Instituto de Inform tica - UFG Conte do O que um sistema ... – PowerPoint PPT presentation

Number of Views:105
Avg rating:3.0/5.0
Slides: 48
Provided by: FabioM6
Category:

less

Transcript and Presenter's Notes

Title: Sistemas Distribu


1
Sistemas DistribuídosIntrodução
  • Especialização em Redes de Computadores
  • Prof. Fábio M. Costa
  • Instituto de Informática - UFG

2
Conteúdo
  • O que é um sistema distribuído?
  • Exemplos de sistemas distribuídos
  • Requisitos de sistemas distribuídos
  • Transparência em sistemas distribuídos

3
O que é um Sistema Distribuído?
4
O que é um Sistema Distribuído?
5
O que é um Sistema Distribuído?
  • Um sistema distribuído é uma coleção de hosts
    autônomos, conectados através de uma rede de
    computadores. Cada host executa componentes e
    opera um middleware de distribuição, o qual
    habilita os componentes a coordenarem suas
    atividades de tal forma que usuários percebam o
    sistema como um ambiente computacional único e
    integrado.

6
Exemplos de Middleware
  • Orientados a Transações
  • IBM CICS
  • BEA Tuxedo
  • IBM Encina
  • Microsoft Transaction Server
  • Orientados a Mensagens
  • Microsoft Message Queue
  • NCR TopEnd
  • Sun Tooltalk
  • Procedural
  • Sun ONC
  • Linux RPCs
  • OSF DCE
  • Orientado a Objetos
  • OMG CORBA
  • Sun Java/RMI
  • Microsoft COM
  • Sun Enterprise Java Beans

7
Características de Sistemas Centralizados
  • Um componente, com partes não autônomas
  • Componentes são compartilhados por todos os
    usuários durante todo o tempo
  • Todos os recursos acessíveis (tipicamente)
  • Software roda em um único processo
  • Ponto de controle único
  • Ponto de falha único

8
Características de Sistemas Distribuídos
  • Múltiplos componentes autônomos
  • Componentes não são compartilhados por todos os
    usuários
  • Recursos podem não ser acessíveis
  • Software roda em processos concorrentes e em
    processadores distintos
  • Múltiplos pontos de controle
  • Múltiplos pontos de falha (!!!)

9
Exemplos de Sistemas Distribuídos
10
Motivação
  • Estudos de caso
  • Sistema de video-sob-demanda (Hongkong Telecom)
  • Infra-estrutura de informática (setor bancário)
  • Sistema de gerenciamento de configurações de
    aeronaves (Boeing)
  • Sistema de gerência de federação de futebol
  • Desenvolvidos empregando os princípios e técnicas
    apresentados neste curso
  • Servem como exemplos ilustrativos para o curso

11
Ex.1 Sistema deVídeo-sob-Demanda
  • Objetivo prover aos assinantes facilidades para
    o download de vídeos a partir de servidores
    para serem apresentados em Web-TVs de baixo custo
  • Atualmente cerca de 100.000 usuários
  • Construído utilizando tecnologia de objetos

12
Requisitos Heterogeneidade
  • Hardware
  • Clientes Web-TV
  • Servidores processador RISC
  • Sistemas operacionais
  • Clientes JavaOS
  • Servidores UNIX
  • Linguagens de programação
  • Clientes Java
  • Servidores C

13
Requisitos (cont.)
  • Comunicação através da rede
  • Como transmitir estruturas de dados complexas
    através da Internet?
  • Escala
  • Expansão para um grande número de usuários
  • Segurança
  • Forma segura de pagamento
  • Autenticação e controle de acesso

14
Por que Tecnologias de Objetos Distribuídos?
  • Distribuição
  • Clientes de vídeo necessitam fazer o download /
    exibição de vídeo na Web-TV do usuário final
  • Múltiplos servidores (balanceamento de carga)
  • Tecnologia de objetos
  • Clientes de vídeo escritos em Java
  • Web-TV contém um Máquina Virtual Java
  • Portabilidade - ex Sony Playstation, Sega
    Console
  • Servidores de vídeo escritos em C desempenho

15
Por que Tecnologias de Objetos Distribuídos?
(cont.)
  • Uma maneira natural de particionar a
    funcionalidade de uma aplicação ou sistema
  • Objetos unidades funcionais autônomas que se
    comunicam entre si através da troca de mensagens
  • Abstração ideal para a construção de sistemas
    distribuídos
  • Objetos diferentes podem ser instalados em
    computadores distintos
  • Cooperação através de mensagens transmitidas pela
    rede

16
Ex.2 Infra-estrutura de Informática Empresarial
(Setor Bancário)
Serviço de Informações de Clientes
Serviços de Autorização
Estação de Negócios
Serviço de Banco de Dados de Produtos
Serviços de Marketing
Serviços em Mainframes
17
Requisitos
  • Tempo para se chegar ao mercado
  • Desenvolvimento de novas aplicações com
    tecnologia recente
  • Integração de novas aplicações tem se tornado
    cada vez mais difícil
  • Escalabilidade
  • Administração de milhões de contas e clientes
  • Milhares de usuários concorrentes
  • Confiabilidade

18
Requisitos (cont.)
  • Heterogeneidade de Hardware
  • Mainframes (Unisys, IBM, etc.)
  • Servidores SUN SPARC
  • PCs
  • Heterogeneidade de Sistema Operacional
  • MVS, UNIX, Linux, Windows
  • Heterogeneidade de Linguagem de Programação
  • Cobol, C/C, Visual Basic, Java

19
Por que Tecnologia de Objetos Distribuídos
  • Permite uma visão uniforme de todos os serviços
    da empresa e de como acessá-los
  • Provê um nível apropriado de abstração
  • Preserva o investimento encapsulando aplicações
    legadas
  • Permite explorar as vantagens da tecnologia de
    objetos em novos projetos
  • Uma forma natural de resolver
  • distribuição
  • heterogeneidade

20
Ex.3 Gerência de Configuração Boeing 777
21
Problemas a serem resolvidos
  • Escala
  • 3.000.000 de peças por aeronave
  • A configuração de cada aeronave é diferente
  • Regulamentos demandam que registros sejam
    mantidos para cada peça de uma aeronave
  • Aeronave evolui durante manutenções
  • Produção de 500 aeronaves por ano
  • Banco de dados de configuração cresce 1,5 bilhão
    de partes a cada ano
  • Tempo de vida de uma aeronave 30 anos
  • 45.000 engenheiros necessitam acesso on-line aos
    dados de configurações

22
Problemas a serem resolvidos (cont.)
  • Integração de componentes de prateleira
  • Infra-estrutura de TI se tornou inadequada
  • Mas a empresa não podia se dar ao luxo de
    re-construir toda a sua infra-estrutura de TI
  • Componentes foram comprados de diversos
    fabricantes especializados
  • Banco de dados relacional
  • Planejamento de recursos da empresa (ERP)
  • Planejamento de projetos auxiliado por computador
  • Componentes precisavam ser integrados

23
Problemas a serem resolvidos (cont.)
  • Heterogeneidade
  • 20 máquinas de banco de dados Sequent para
    gerenciar os dados de configuração de aviões
  • 200 servidores de applicações UNIX
  • Estações de trabalho NT e UNIX para os engenheiros

24
Por que Tecnologia de Objetos Distribuídos
  • Componentes de prateleira encapsulam a
    funcionalidade da aplicação
  • Resolvendo o problema de distribuição em um nível
    mais elevado de abstração
  • Resolvendo o problema da heterogeneidade
  • Escalabilidade da solução

25
Ex.4 Administração de uma Federação de Futebol
  • Administração de campeonatos, seleção nacional,
    clubes, transferência de jogadores, etc.
  • Sistema imaginário
  • Exemplo comum, que pode ser ajustado com
    finalidade didática

26
Requisitos
  • Autonomia dos clubes
  • Cada clube opera sua própria administração,
    treinamento, escala de jogos e jogadores, etc.
  • Necessidade de integração para
  • o registro de jogadores na federação de futebol
  • requisitar jogadores para a seleção nacional
  • combinar a escala de jogos do campeonato
  • Heterogeneidade
  • Diferentes máquinas (Windows, Linux, etc.)
  • Diferentes linguagens de programação

27
Requisitos de Sistemas Distribuídos
28
Requisitos Gerais
  • Integração de componentes
  • Componentes novos, implementados com a mais
    moderna tecnologia
  • Componentes de prateleira (COTS), que não podem
    ser modificados
  • Componentes legados, sem a necessidade de uma
    re-engenharia
  • Heterogeneidade
  • Plataformas de hardware, sistemas operacionais,
    linguagens de programação e redes

29
Requisitos Comuns
  • Qual o objetivo da construção de um sistema
    distribuído?
  • Compartilhamento de Recursos
  • Abertura
  • Concorrência
  • Escalabilidade
  • Tolerância a Falhas
  • Transparência

30
Compartilhamento de Recursos
  • Habilidade de usar qualquer hardware, software ou
    dados em qualquer lugar do sistema
  • Gerenciador de recursos
  • Controla o acesso aos recursos
  • Provê um esquema de nomes para os recursos
  • Controla acessos concorrentes aos recursos

31
Compartilhamento de Recursos (2)
  • Modelo de compartilhamento
  • Cliente / Servidor
  • Baseado em objetos
  • Define
  • a forma pela qual recursos são providos
  • formas de uso dos recursos
  • como o provedor do recurso e os usuários
    interagem entre si e com o gerenciador

32
Abertura
  • Relacionada com futuras extensões e melhorias que
    um sistema distribuído pode sofrer
  • Novos componentes precisam ser integrados,
    juntamente com componentes existentes (legados)
  • Provenientes de diversas fontes
  • Usando diferentes tecnologias
  • Necessário publicar interfaces detalhadas dos
    componentes
  • Diferenças de representação de dados precisam ser
    resolvidas (para uma troca de informações efetiva)

33
Concorrência
  • Em um sistema distribuído, componentes são
    executados em paralelo
  • Em processos ou máquinas diferentes
  • Componentes acessam e atualizam recursos
    compartilhados (variáveis, bancos de dados)
  • A integridade do sistema pode ser violada se
    atualizações concorrences não forem coordenadas
  • Atualizações podem ser perdidas (sobrescritas)
  • Análise de dados pode ficar inconsistente

34
Escalabilidade
  • Adaptação de sistemas distribuídos para
  • Acomodar mais usuários
  • Obter um tempo de resposta mais rápido
  • Usualmente através da adição de mais
    processadores
  • Componentes não devem necessitar ser alterados
    quando a escala do sistema cresce
  • Componentes devem ser projetados para serem
    escaláveis

35
Tolerância a Falhas
  • Hardware, software e redes podem falhar!
  • Um sistema distribuído deve manter sua
    disponibilidade mesmo em baixos níveis de
    confiabilidade do hardware/software/rede
  • Tolerância a falhas pode ser obtida com
  • técnicas de recuperação
  • redundância

36
Transparência emSistemas Distribuídos
37
Transparência
  • Um sistema distribuído deve ser percebido por
    seus usuários e pelos programadores de aplicações
    como um sistema único e coeso
  • ao invés de uma coleção de máquinas separadas
  • Várias dimensões de transparência identificadas
    pelo modelo ISO RM-ODP
  • Modelo de Referência para Sistemas Distribuídos
    Abertos
  • Representam as diversas propriedades que um
    sistema distribuído deve possuir

38
Transparências de Distribuição
Concurrency Transparency
Access Transparency
Location Transparency
39
Transparência de Acesso
  • Permite que objetos e informações remotas sejam
    acessados usando operações idênticas
  • Mascara as diferentes formas de acesso empregadas
    por cada tecnologia utilizada
  • Exemplos
  • Operações de acesso a um sistema de arquivos
    distribuído com NFS (Network File System)
  • Navegação na WEB
  • Consultas em SQL

40
Transparência de Localização
  • Permite que objetos e informações sejam acessados
    sem o conhecimento de sua localização
  • Exemplos
  • Arquivos acessados via NFS
  • Páginas na WEB ()
  • Tabelas em um banco de dados distribuído

41
Transparência de Concorrência
  • Permite que vários processos operem
    concorrentemente usando objetos de informação
    compartilhados sem interferirem entre si
  • Exemplos
  • NFS
  • Caixa eletrônico
  • Sistema gerenciador de bancos de dados (SGBD)

42
Transparência de Replicação
  • Permite que múltiplas instâncias de objetos de
    informação sejam usados para melhorar o
    desempenho e a confiabilidade
  • Sem que os usuários ou programadores de
    aplicações tomem conhecimento da existência das
    réplicas
  • Exemplos
  • SGBD distribuído
  • Espelhamento de páginas WEB

43
Transparência de Falhas
  • Mascara a ocorrência de falhas
  • Permite que usuários e aplicações completem suas
    tarefas normalmente a despeito de falhas em
    alguns componentes do sistema
  • Exemplo
  • Transações em um SGBD

44
Transparência de Migração
  • Permite a movimentação de um objeto dentro do
    sistema distribuído sem afetar as operações dos
    usuários ou dos programas de aplicação
  • Duas variantes
  • Migração propriamente dita com relação ao objeto
    migrado
  • Relocação com relação a outros objetos no
    sistema
  • Exemplos
  • NFS
  • Páginas WEB

45
Transparência de Desempenho
  • Permite que o sistema distribuído seja
    reconfigurado para melhorar o desempenho para
    refletir mudanças na carga de processamento
  • Através de replicação e migração
  • Exemplo
  • Utilitário make distribuído
  • Programa é compilado em várias máquinas em
    paralelo, transparentemente para o usuário

46
Transparência de Escala
  • Permite que o sistema e as aplicações possam ser
    expandidos em escala sem a necessidade de
    mudanças em sua estrutura ou nos algoritmos
    utilizados
  • Exemplo
  • WWW
  • Bancos de dados distribuídos

47
Pontos-Chave
  • O que é um Sistema Distribuído
  • Adoção de sistemas distribuídos é regida por
    requisitos não-funcionais
  • Necessidades de distribuição são transparentes
    aos usuários e projetistas de aplicações
  • Várias dimensões de transparência
  • Dimensões de transparência dependem entre si
Write a Comment
User Comments (0)
About PowerShow.com