Buscar

introducao

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Click to edit Master title style
Click to edit Master subtitle style
*
*
*
Sistemas Distribuídos
Introdução
Especialização em Redes de Computadores
Prof. Fábio M. Costa
Instituto de Informática - UFG
Prof. Fábio M. Costa
*
*
*
Conteúdo
O que é um sistema distribuído?
Exemplos de sistemas distribuídos
Requisitos de sistemas distribuídos
Transparência em sistemas distribuídos
Prof. Fábio M. Costa
*
*
*
O que é um Sistema Distribuído?
Prof. Fábio M. Costa
*
*
*
O que é um Sistema Distribuído?
Prof. Fábio M. Costa
*
*
*
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.
Prof. Fábio M. Costa
*
*
*
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
Prof. Fábio M. Costa
*
*
*
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
Prof. Fábio M. Costa
*
*
*
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 (!!!)
Prof. Fábio M. Costa
*
*
*
Exemplos de Sistemas Distribuídos
Prof. Fábio M. Costa
*
*
*
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
Prof. Fábio M. Costa
*
*
*
Ex.1: Sistema de
Ví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
…
Prof. Fábio M. Costa
*
*
*
Requisitos: Heterogeneidade
Hardware:
Clientes: Web-TV
Servidores: processador RISC
Sistemas operacionais:
Clientes: JavaOS
Servidores: UNIX
Linguagens de programação:
Clientes: Java
Servidores: C++ 
Prof. Fábio M. Costa
*
*
*
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
Prof. Fábio M. Costa
*
*
*
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
Prof. Fábio M. Costa
*
*
*
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 
Prof. Fábio M. Costa
*
*
*
Ex.2: Infra-estrutura de Informática Empresarial (Setor Bancário)
Estação de
Negócios
Serviços de
Autorização
Serviços em Mainframes
Serviço de
Informações
de Clientes
Serviço de Banco
de Dados de Produtos
Serviços de
Marketing
Prof. Fábio M. Costa
*
*
*
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
Prof. Fábio M. Costa
*
*
*
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
Prof. Fábio M. Costa
*
*
*
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
Prof. Fábio M. Costa
*
*
*
Ex.3: Gerência de Configuração Boeing 777
Prof. Fábio M. Costa
*
*
*
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
Prof. Fábio M. Costa
*
*
*
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
Prof. Fábio M. Costa
*
*
*
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
Prof. Fábio M. Costa
*
*
*
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
Prof. Fábio M. Costa
*
*
*
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
Prof. Fábio M. Costa
*
*
*
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
Prof. Fábio M. Costa
Click to edit Master title style
Click to edit Master subtitle style
*
*
*
Requisitos de Sistemas Distribuídos
Prof. Fábio M. Costa
*
*
*
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
Prof. Fábio M. Costa
*
*
*
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
Prof. Fábio M. Costa
*
*
*
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
Prof. Fábio M. Costa
*
*
*
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
Prof. Fábio M. Costa
*
*
*
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)
Prof. Fábio M. Costa
*
*
*
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
Prof. Fábio M. Costa
*
*
*
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
Prof. Fábio M. Costa
*
*
*
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
Prof. Fábio M. Costa
Click to edit Master title style
Click to edit Master subtitle style
*
*
*
Transparência em
Sistemas Distribuídos
Prof. Fábio M. Costa
*
*
*
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
Prof. Fábio M. Costa
*
*
*
Transparências de Distribuição
Access 
Transparency
Location
Transparency
Concurrency
Transparency
Prof. Fábio M. Costa
*
*
*
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
Prof. Fábio M. Costa
*
*
*
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
Prof. Fábio M. Costa
*
*
*
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)
Prof. Fábio M. Costa
*
*
*
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
Prof. Fábio M. Costa
*
*
*
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
Prof. Fábio M. Costa
*
*
*
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
Prof. Fábio M. Costa
*
*
*
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
Prof. Fábio M. Costa
*
*
*
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
Prof. Fábio M. Costa
*
*
*
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
Prof. Fábio M. Costa

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais