Sistemas Distribuídos

Documentos relacionados
Sistemas Distribuídos

Sistemas Distribuídos Aspectos de Projeto de SD. Aspectos de Projeto em SD. Transparência 14/03/12. ! Transparência; ! Abertura; !

1- Confiabilidade ( 2 ) Proteção contra perdas e estragos. 2- Integridade ( 3 ) Proteção contra interferência de cortes de funcionamento

Sistemas Distribuídos. Plano de Curso. Plano de Curso 04/03/12 ! EMENTA:

Caracterização de Sistemas Distribuídos

SISTEMAS DISTRIBUÍDOS

Sistemas distribuídos. Prof. Emiliano Monteiro

Programação Paralela e Distribuída

O que é um sistema distribuído?

Programação Concorrente

Sistemas Operacionais Distribuídos

Conceitos de Sistemas Distribuídos

Bancos de Dados Distribuídos. Bancos de Dados Distribuídos. Conteúdo. Motivação. Motivação. Introdução aos BDs Distribuídos.

Tipos de Clusters. Introdução. Introdução 21/03/12

Introdução à Ciência da Computação

Curso: Redes de Computadores

SISTEMAS DISTRIBUÍDOS

Sistemas Distribuídos

SISTEMAS DISTRIBUÍDOS

Apresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais. Referências Bibliográfica. Referências Bibliográfica

Sistemas Distribuídos

Aula 4 TECNOLOGIA EM JOGOS DIGITAIS JOGOS MASSIVOS DISTRIBUÍDOS. Marcelo Henrique dos Santos

Sistemas Distribuídos

Formação de DBAs SQL Server 2008

Arquitetura de Computadores Paralelos. Introdução Conceitos Básicos Ambientes de Programação Modelos de Programação Paralela

Sistemas Operacionais Aula 3

INTRODUÇÃO AOS SISTEMAS DISTRIBUÍDOS. Prof. Cesar Augusto Tacla

FUNDAMENTOS DE REDES DE COMPUTADORES AULA 2: MODELO OSI. Professor: LUIZ LEÃO

30/5/2011. Sistemas computacionais para processamento paralelo e distribuído

Sistemas Distribuídos Capítulo 3 - Aula 3

o que é p2p? sistemas onde todos os nós são equivalentes em funcionalidade e no papel desempenhado ...

Barramento. Prof. Leonardo Barreto Campos 1

Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião

Tipos de Sistemas Operacionais

Data Warehouse ETL. Rodrigo Leite Durães.

Introdução (hardware) INTRODUÇÃO Hardware. Introdução (hardware) Introdução (hardware) Introdução (hardware) Introdução (hardware)

Sistemas Distribuídos Capítulo 8 - Aula 14

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 02

AULA 01: APRESENTAÇÃO

Aula 1: Introdução aos Sistemas Operacionais. Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela

Modelagem de Dados MODELAGEM DE DADOS. Sistemas de Banco de Dados. Profa. Rosemary Melo

Introdução a Sistemas Operacionais. Adão de Melo Neto

PROCESSADORES Unidade de Controle Unidade Aritmética e Lógica efetua memória de alta velocidade registradores Program Counter Instruction Register

AULA SISTEMAS DE GERENCIAMENTO DE BANCO DE DADOS

características compartilhamento de recursos sem necessidade de um elemento centralizador ciclos de CPU, armazenamento, banda...

Bancos de Dados Distribuídos. Gabriel Resende Gonçalves 4 de fevereiro de 2014

Aula 3 Redes de Interconexão

Computadores e Programação (DCC/UFRJ)

Sistemas Distribuídos

Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) Java Comunicação 1

Universidade Estadual de Mato Grosso do Sul UEMS Curso de Ciência da Computação Disciplina de Algoritmos Paralelos e Distribuídos

Camada de Aplicação da Arquitetura TCP/IP

Fundamentos de Sistemas Operacionais de Arquitetura Aberta. CST em Redes de Computadores

Arquitetura de sistemas distribuídos

Memória Compartilhada e Distribuída. _ Notas de Aula _ Prof. Tiago Garcia de Senna Carneiro DECOM/UFOP

Sistemas Operacionais

Thread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ fevereiro, / 41

Arquitetura de sistemas distribuídos

Tecnólogo em Análise e Desenvolvimento de Sistemas. Sistemas Operacionais (SOP A2)

trabalho Heitor Oliveira,Rafael Aleixo,Alex Rodrigues September 2013

Roteiro... Sistemas Distribuídos Aula 4. Troca de mensagens. Comunicação entre processos. Conceitos de SD, vantagens e desvantagens

Unidade 1 Introdução

Técnicas Avançadas de Programação

Sistemas Distribuídos

speedup aprimorado aprimorado Fração aprimorada speedup aprimorado Fração aprimorada speedup aprimorado Tempo original Fração aprimorada aprimorado

Introdução à Programação de Computadores Fabricação Mecânica

Sistema Operacionais II. Aula: Virtualização

Barramento compartilhado

Algoritmos Computacionais

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2)

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos

Arquitetura e organização de computadores Uma visão geral

Sistemas Distribuídos

Aula 1 Conceitos Básicos

Bruno Antunes da Silva UFSCar - Sorocaba

Aula 2. Prof: Carlos Eduardo de Carvalho Dantas

Carlos Eduardo de Carvalho Dantas

ARQUITETURA DE SISTEMAS DISTRIBUÍDOS

Prof. Samuel Henrique Bucke Brito

Banco de Dados. Introdução. Profa. Flávia Cristina Bernardini

Introdução 12 que inuenciam a execução do sistema. As informações necessárias para o diagnóstico de tais problemas podem ser obtidas através da instru

Visão do Usuário da DSM

REDES DE COMPUTADORES

Módulo 1 - Introdução aos Sistemas de Informação Distribuídos

Exercícios Cap I. 1.1, 1.2, 1.3 (somente letras (a), (b) e (c)) , 1.8 e 1.12 IC - UFF

Tecnologias da Informação TI /2 Material de apoio ler bibliografia recomendada (Stair)

FTC Faculdade de Tecnologia e Ciências Engenharia Civil 1º Semestre. Conceitos Básicos. Rafael Barbosa Neiva

Sistemas de Bancos de Dados Distribuídos

Sistemas de Bancos de Dados Distribuídos

APOSTILA 1 - TUTORIA SISTEMAS OPERACIONAIS

ATIVIDADES PRÁTICAS SUPERVISIONADAS

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Objetos e Componentes Distribuídos: EJB

Transcrição:

Sistemas Distribuídos Conceito Aplicações Exemplos de sistemas distribuídos Relação dos sistemas distribuídos e as redes Tipos de Sistemas Distribuídos 1 Fonte: https://sites.google.com/site/firsistemasdistribuidos/

Sistemas Distribuídos Conceitos Um sistema distribuído consiste de um conjunto de computadores autônomos que trabalham juntos para dar aparência de um único sistema coerente O objetivo principal é oferecer ao usuário uma visão transparente e independente da estrutura de rede e de hardware 2

Conceitos Comumente uma camada de software é responsável por obter essa transparência. O usuário destes sistemas comumente vê apenas uma aplicação executando remotamente O desenvolvedor dessa aplicação vê um recurso de rede que pode ser utilizado Esse recurso pode ser Processamento Armazenamento Largura de Banda Serviços de banco de dados Serviços WEB 3

Histórico 4

Redes x Sistemas Distribuídos Redes de Computadores Sistemas interconectados, que utilizam um protocolo de comunicação Podem ser ad hoc ou cliente/servidor LANs, MANs, WANs, PANs Sistemas Distribuídos Foco nas aplicações (ex: onde vamos utilizar?) Utiliza serviços oferecidos pelas redes de computadores Rede de computadores descentralizada 5

Aplicações É comum o uso de sistemas distribuídos em aplicações que exigem grande poder de processamento Historicamente os grandes centros de processamento eram máquinas enormes construídas para um único fim Hoje a maioria dos super-computadores é um aglomerado de várias máquinas de médio porte Esses aglomerados são conhecidos como clusters 6

Aplicações Os sistemas distribuídos permitem agrupar em um único sistema, várias aplicações que executam em computadores diferentes O crescimento das redes de computadores hoje é exponencial, a cada dia agrega-se mais serviços à rede Com um SD bem planejado é possível expandir a capacidade dessa rede mais facilmente, sem alterações nas aplicações atuais 7

Classes de Aplicações Distribuídas 8

Classes de Aplicações Distribuídas 9

Aplicações distribuídas para aumento de desempenho 10

Aplicações distribuídas para aumento de desempenho 11

Aplicações distribuídas para aumento de desempenho 12

Cluster x Grid Computação em Cluster Computadores fortemente acoplados Imagem de um sistema único Gestão centralizada Usado para computação de alto desempenho e alta disponibilidade Computação em Grid Computadores fracamente acoplados Não há uma imagem única do sistema Gestão distribuída Usado tanto para highthroughput computing (HTC) como para high-performance computing (HPC). 13

Exemplos de SDs Computação Móvel, Pervasiva e Ubíqua A computação móvel (ou nômade) é a execução de tarefas computacionais enquanto o usuário está se deslocando de um lugar a outro, ou visitando lugares diferentes de seu ambiente usual. A computação pervasiva é a utilização de vários dispositivos computacionais pequenos e baratos, que estão presentes nos ambientes físicos dos usuários, incluindo suas casas, escritórios e até na rua. A computação ubíqua é a junção da computação móvel com a computação pervasiva, permitindo a comunicação à distância, sem fio, com dispositivos que o usuário pode vestir (Ex: Google Glass) 14

Exemplos de SDs: Computação Pervasiva e Ubíqua Ubíqua: Aparelhos acoplados ao corpo, como relógios de pulso inteligente, com funcionalidade semelhante à de um PDA (Smartphone) Pervasiva: Dispositivos incorporados em aparelhos, como máquinas de lavar,aparelhos de som de alta fidelidade, carros, geladeiras, etc 15

Exemplos de SDs: Compartilhamento de Recursos e Web 16

Construção de SD Comumente existe uma camada de software que oferece os serviços de um SD Essa camada de software se apresenta como uma biblioteca para os desenvolvedores Ela pode também estar implementada no próprio Sistema Operacional, o que permite maior integração dos sistemas Quando a camada de software é separada é comumente chamada de middleware 17

Middleware O software que está no meio 18

Construção de um SD Criar um novo SD não é uma tarefa simples Como o objetivo é oferecer integração total dos sistemas há muitos detalhes envolvidos: Sistemas Operacionais diferentes Representação de dados diferentes Padrões de codificação e comunicação diferentes Padrões e limitações da rede etc. 19

Exemplos Google Twitter Skydrive Dropbox Yahoo 20

Tipos de SD Há muitas classificações de Sistemas Distribuídos Uma delas é como segue: Orientados a suporte de computação Orientados a processamento de informação Pervasivos 21

Características dos SDs Heterogeneidade Abertura (openness) Segurança Escalabilidade Tratamento de Falhas Concorrência Transparência 22

Características dos SDs: Heterogeneidade Componentes heterogêneos devem ser capazes de interoperar Sistemas Operacionais Arquiteturas de hardwares Arquiteturas de comunicação Linguagens de programação Interfaces de Software Medidas de segurança Representação da Informação 23

Características dos SDs: Abertura (Openness) Um sistema que implementa suficientemente especificações abertas para interfaces, serviços, e outros padrões, de modo a possibilitar portabilidade às aplicações com mínimas alterações possíveis. Interfaces devem estar disponível publicamente para que novos componentes possam ser adicionados facilmente. 24

Características dos SDs: Abertura (Openness) Diz-se que um sistema computacional é aberto quando ele pode ser estendido e reimplementado de várias maneiras. Determinada pelo grau com que novo serviços podem ser adicionados e disponibilizados. Mecanismos de comunicação uniformes e interfaces publicadas para acesso aos recursos compartilhados. 25

Características dos SDs: Segurança Os recursos são acessíveis aos usuários autorizados e devem ser utilizados para a finalidade para a qual foram projetados. Muitos recursos de informação que são mantidos em sistemas distribuídos têm um alto valor intrínseco para seus usuários, o que faz com que sua segurança seja de extrema importância. A segurança de recursos de informação tem três componentes Confidencialidade Integridade Disponibilidade. 26

Confidencialidade Características dos SDs: Segurança Garantir que a informação seja acessível somente para aqueles que tenham a devida autorização Ex: ACLs (access control lists) para prover acesso autorizado às informações Integridade Qualidade de integro; estado do que não sofreu alteração ou degradação Garantir a precisão das informações e dos métodos de processamento aos quais ela é submetida Ex: Mudar o número da conta ou valor em dinheiro em um pedido 27

Disponibilidade Características dos SDs: Segurança Garantir que os usuários autorizados tenham acesso às informações e ativos associados quando necessário. Ex: ataques de negação de serviço Não-repúdio Não-repúdio Conceito de que a autoria de determinada ação/operação não possa ser negada pelo seu executor Ex: Assinatura digital 28

Características dos SDs: Segurança Mecanismos de Segurança Criptografia Ex: Blowfish, RSA Autenticação Ex: senha, autenticação de chave pública Autorização Ex: access control lists (ACL) Integridade Ex: SHA 29

Características dos SDs: Escalabilidade O trabalho envolvido no processamento de qualquer requisição de acesso a um recurso compartilhado independe do tamanho da rede. O sistema deve trabalhar eficientemente em diferentes escalas, desde uma pequena intranet até toda a Internet. Um sistema é descrito como escalável se permanece eficiente quando há um aumento significativo no número de recursos e no número de usuários. 30

Características dos SDs: Escalabilidade O projeto de sistemas distribuídos escaláveis apresenta os seguintes desafios: Controlar os custos dos recursos físicos O custo deve crescer linearmente com o tamanho do sistema Controlar a perda de desempenho Impedir que os recursos de software se esgotem: IP de 32bits para IP de 128 bits Evitar gargalos de desempenho Utilizar algoritmos descentralizados (DNS centralizado para o descentralizado) 31 Técnicas: replicação, caching, servidores múltiplos

Características dos SDs: Tratamento de falhas As falhas em um sistema distribuído são parciais, isto é, alguns componentes falham, enquanto outros continuam funcionando. Portanto, o tratamento de falhas é particularmente difícil, e envolve as seguintes técnicas: Detecção de falhas Checksums, Mascaramento de Falha Retransmissão de mensagem corrompidas, 32

Técnicas: Características dos SDs: Tolerância a falhas Tratamento de falhas Tratamento de exceções, timeouts, Recuperação de falhas Mecanismos de Rollback, Recuperação por software: manter dados permanentes consistentes Redundância Redundância de hardware (Ex: banco de dados replicado em diversos servidores) OBS: O assunto Tratamento de Falhas será melhor abordado em aulas subsequentes... 33

Características dos SDs: Concorrência Tanto os serviços como os aplicativos fornecem recursos que podem ser compartilhados pelos clientes. O processo que gerencia um recurso compartilhado poderia aceitar e tratar um pedido de cliente por vez, mas isso limitaria o desempenho do tratamento de pedidos. Portanto, os serviços e aplicativos geralmente permitem que vários pedidos de cliente sejam processados concorrentemente. 34

Características dos SDs: Concorrência Mais de um processo em execução a cada instante Utilização de Threads Atividades separadas de usuários Independência de recursos Localização de processos servidores em computadores distintos Acesso concorrente a recursos compartilhados requer sincronização Prover e gerenciar acesso concorrente aos recursos compartilhados: Escalonamento justo (Fair scheduling) Evitar deadlocks OBS: O assunto Concorrência será melhor abordado em aulas subsequentes... 35

Características dos SDs: Transparência Esconder do usuário e do programador de aplicações a separação de componentes em um sistema distribuído, tal que este seja visto como um sistema centralizado Formas de transparência Acesso Localização Concorrência Replicação Falha Mobilidade Desempenho Escala 36

Características dos SDs: Transparência de Acesso Transparência Operações de acesso a objetos de informação são idênticas para objetos locais e remotos. Exemplo: Operação de envio de uma mensagem eletrônica especificando o destinatário através de seu endereço Internet. Transparência de Localização Acesso a um objeto ocorre sem que seja necessário o conhecimento de sua localização. Exemplo: Operação de envio de uma mensagem eletrônica especificando o destinatário através de seu endereço Internet. 37

Características dos SDs: Transparência Transparência de Concorrência Processos operam concorrentemente usando objetos de informação comuns sem interferência entre eles. Sistemas Centralizados (paralelismo lógico) e Distribuídos (paralelismo físico). Transparência de Replicação Várias instâncias de um objeto de informação são usadas sem requerer o conhecimento das réplicas pelos usuários e aplicações. Exemplo: Lotus Notes 38

Características dos SDs: Transparência de Falha Transparência Mascaramento de falhas de hardware e software. Exemplo: retransmissão de mensagens, falha em nodo do Web Server não deve derrubar todo Website. Transparência de Mobilidade Permite o movimento de recursos e clientes no sistema sem afetar as operações dos usuários e aplicações Exemplo:Troca de servidor por outro em tempo de execução; migração de processo de nodo para outro 39

Características dos SDs: Transparência Transparência de Desempenho Reconfiguração do sistema para melhorar o desempenho conforme a carga varia. Exemplo: Adição/deleção dinâmica de componentes, comutando de estruturas lineares para estruturas hierárquica quando o número de usuários aumenta. Transparência de Escala O sistema e as aplicações podem expandir em escala sem requerer modificações na estrutura do sistema ou nos algoritmos das aplicações. 40

Vantagens dos SDs Separação funcional Computadores com diferentes capacidades e funcionalidades Ex: Armazenamento de dados e processamento de dados. Distribuição de recursos Informação Informações são criadas e mantidas por diferentes pessoas. Pessoa Computadores suportam trabalho colaborativo (equipes virtuais, engenharia, cirurgia virtual) 41

Vantagens dos SDs Balanceamento de carga Computação distribuída por diferentes computadores. Economia Melhor relação custo x benefício quanto ao desempenho (supercomputador virtual). Tolerância a falhas Um problema em uma máquina não necessariamente pára todo o sistema. Normalização Necessária à integração. 42

Vantagens dos SDs Compartilhamento de recursos Base de dados e periféricos podem ser compartilhados. Disponibilidade e Confiabilidade Se uma máquina falha, o sistema permanece funcional. Backup de dados em diferentes locais (replicação). Escalabilidade Poder computacional adicionado de forma incremental. 43

Desvantagens dos SDs Desenvolvimento de aplicações é mais complexo Interconexão Um grande número de problemas de sistemas acontece quando componentes que antes operavam independentemente são interconectados. Interferência Dois componentes de um sistema, cada um com comportamento razoável quando observados em isolamento, podem exibir comportamento indesejável quando combinados. 44

Desvantagens dos SDs Desenvolvimento de aplicações é mais complexo Propagação de efeito Efeito cascata de falhas pode derrubar um sistema inteiro se não houver cuidados no projeto. Escala Um sistema que funciona bem com 10 nós pode falhar se crescer para centenas de nós. 45

Desvantagens dos SDs Desenvolvimento de aplicações é mais complexo Propagação de efeito Efeito cascata de falhas pode derrubar um sistema inteiro se não houver cuidados no projeto. Escala Um sistema que funciona bem com 10 nós pode falhar se crescer para centenas de nós. 46

Desvantagens dos SDs Pouca disponibilidade de ferramentas de suporte (Ex: compiladores, middleware). Segurança: várias portas de entrada. Utilização de uma rede para comunicação Comunicação Tratamento e recuperação de mensagens. Segurança Compartilhamento de dados implica em esquemas especiais para proteção de dados sigilosos. 47

Sistemas Distribuídos x Sistemas Paralelos 48

Sistemas Paralelos Paralelismo: vários processos executando simultaneamente em vários computadores, compartilhando memória ou não. Pseudo-paralelismo: vários processos compartilhando um processador ou outros recursos de um computador: ilusão de vários programas rodando simultaneamente (multitarefa). 49

Sistemas Paralelos: Sistemas Multiprocessadores Sistemas Multiprocessadores baseados em barramento Consiste em um número de CPUs (que pode ter alguma memória local - cache) ligadas através de um barramento Memória compartilhada 50

Sistemas Paralelos: Sistemas Multiprocessadores Sistemas Multiprocessadores baseados em switch Memória compartilhada Memórias são localizadas de um lado e os processadores do outro Número de switches pode tornar custo do sistema proibitivo 51

Sistemas Distribuídos: Sistemas Multicomputadores Sistemas Multicomputadores baseado em barramento Conjunto de CPUs com memória local trocando mensagens através de um barramento Rede local ou CPUs conectadas com um barramento rápido Sem memória compartilhada 52

Sistemas Distribuídos: Sistemas Multicomputadores Sistemas Multicomputadores baseado em switch CPUs tem um certo número de conexões para outras CPUs e mensagens são trocadas através de CPUs que intermediam a comunicação, quando necessário Sem memória compartilhada Grid (a) e Hipercubo (b) 53