1 / 47

Sistemas Distribuídos Introdução

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 distribuído? Exemplos de sistemas distribuídos Requisitos de sistemas distribuídos Transparência em sistemas distribuídos.

Download Presentation

Sistemas Distribuídos Introdução

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 Prof. Fábio M. Costa

  3. O que é um Sistema Distribuído? Prof. Fábio M. Costa

  4. Hostn-1 Component1 Componentn Host2 Component1 Componentn Middleware Middleware Network Operating System Network Operating System Hardware Hardware Host1 Component1 Componentn Hostn Component1 Componentn Middleware Middleware Network Operating System Network Operating System Hardware Network Hardware O que é um Sistema Distribuído? Prof. Fábio M. Costa

  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. Prof. Fábio M. Costa

  6. 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 Exemplos de Middleware Prof. Fábio M. Costa

  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 Prof. Fábio M. Costa

  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 (!!!) Prof. Fábio M. Costa

  9. Exemplos de Sistemas Distribuídos Prof. Fábio M. Costa

  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 Prof. Fábio M. Costa

  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 … Prof. Fábio M. Costa

  12. 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

  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 Prof. Fábio M. Costa

  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 Prof. Fábio M. Costa

  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 Prof. Fábio M. Costa

  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 Prof. Fábio M. Costa

  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 Prof. Fábio M. Costa

  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 Prof. Fábio M. Costa

  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 Prof. Fábio M. Costa

  20. Ex.3: Gerência de Configuração Boeing 777 Prof. Fábio M. Costa

  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 Prof. Fábio M. Costa

  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 Prof. Fábio M. Costa

  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 Prof. Fábio M. Costa

  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 Prof. Fábio M. Costa

  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 Prof. Fábio M. Costa

  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 Prof. Fábio M. Costa

  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 Prof. Fábio M. Costa

  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 Prof. Fábio M. Costa

  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 Prof. Fábio M. Costa

  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 Prof. Fábio M. Costa

  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) Prof. Fábio M. Costa

  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 Prof. Fábio M. Costa

  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 Prof. Fábio M. Costa

  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 Prof. Fábio M. Costa

  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 Prof. Fábio M. Costa

  38. Failure Transparency Scalability Transparency Performance Transparency Migration Transparency Replication Transparency Transparências de Distribuição Concurrency Transparency Access Transparency Location Transparency Prof. Fábio M. Costa

  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 Prof. Fábio M. Costa

  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 Prof. Fábio M. Costa

  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) Prof. Fábio M. Costa

  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 Prof. Fábio M. Costa

  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 Prof. Fábio M. Costa

  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 Prof. Fábio M. Costa

  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 Prof. Fábio M. Costa

  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 Prof. Fábio M. Costa

  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 Prof. Fábio M. Costa

More Related