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

Documentos relacionados
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ INTRODUÇÃO AOS SISTEMAS DISTRIBUÍDOS

Sistemas Distribuídos

Características de Sistemas Distribuídos

Características de Sistemas Distribuídos

SISTEMAS DISTRIBUÍDOS

Sistemas Distribuídos

Sistemas Distribuídos

Sistemas Distribuídos

Desenvolvimento de Aplicações Distribuídas

Introdução aos Sistemas Distribuídos

Conceitos de Sistemas Distribuídos

Sistemas Distribuídos. Edy Hayashida

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

SIST706 Sistemas Distribuídos

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

Computação Distribuída

Tecnologias de Distribuição e Integração. Quais as preocupações a ter com um sistema distribuído?

Sistemas Distribuídos

Introdução a Sistemas Distribuídos

Programação Distribuída. Metas de um Sistema Distribuído

Sistema de Software Distribuído

Sistemas Operacionais Abertos. Prof. MSc. André Yoshimi Kusumoto

Sistemas Distribuídos

Sistemas Distribuídos

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

Componente de aplicação. Figura 1 - Elementos funcionais de uma aplicação sendo executados de forma distribuída

SISTEMAS DISTRIBUÍDOS

Arquitetura de sistemas distribuídos

SIDs: ARQUITETURA DE SISTEMAS DISTRIBUÍDOS

Sistemas Distribuidos. Prof. Walter Gima

Introdução a SD e suas Metas

Caracterização de Sistemas Distribuídos

Desenvolvimento de Aplicações Distribuídas

O que é? É uma aplicação que consiste em 2 ou mais processos que executam em diferentes processadores que não partilham memória.

Metas de um Sistema Distribuído

Sistemas distribuídos. Prof. Emiliano Monteiro

Sistemas Distribuídos

Sistemas Distribuídos

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

O que é um sistema distribuído?

SISTEMAS OPERACIONAIS

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

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

SIST706 Sistemas Distribuídos

Sistemas de arquivos distribuídos. ECO036 - Sistemas Paralelos e Distribuídos

Alcides Pamplona

Introdução. capítulo

Sistemas Distribuídos

trabalho Heitor Oliveira,Rafael Aleixo,Alex Rodrigues September 2013

Infra-Estrutura de Software

Sistemas Distribuídos

Sistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos

Desenvolvimento de Aplicações Distribuídas

Sistemas de Arquivos Distribuídos. Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Sistemas Operacionais Distribuídos

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

Arquiteturas para SGBD. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Sistemas Distribuídos

informação enviada (ex. Facebook) ou que a rede social utilize essa informação para sugerir locais de interesse próximos ao usuário (ex. Foursquare).

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

Redes de Computadores

Sis i te t mas a O perac a i c o i nai a s um p ouco c d a a h is i tó t ria i. a... SO His i t s ó t r ó ic i o

Sistemas Distribuídos

Técnico em Radiologia. Prof.: Edson Wanderley

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

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

ARQUITETURA DE SISTEMAS DISTRIBUÍDOS EVOLUÇÃO DA COMPUTAÇÃO

Engenharia de Software

Introdução a Computação em Nuvem

SISTEMAS DISTRIBUÍDOS TIPOS

Sistemas Distribuídos

Engenharia de software distribuído. Artur Sampaio Lívia Castro Degrossi

Tipos de Sistemas Distribuídos

Sistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais

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

08/08/2016. Prof. Richard Brosler

Introdução a Computação em Nuvem

Processos ca 3 pítulo

Aula 2. Prof: Carlos Eduardo de Carvalho Dantas

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Sistema de arquivos Distribuidos

Curso: Redes de Computadores

Redes P2P. Apresentadora: Luciana Pereira Oliveira. Duração: 40 minutos Data: 20/07/

Características de Sistemas de Arquivos Distribuídos Serviços de nomes e diretórios

Aplicações com Banco de Dados e Cliente-Servidor

SISTEMAS DISTRIBUÍDOS

Redes de Computadores

ARQUITETURA DE SISTEMAS DISTRIBUÍDOS

Universidade Federal do Maranhão

UTFPR - Sistemas Distribuídos Prof. Cesar Augusto Tacla. Anotações. Copyright Cesar Augusto Tacla

STD29006 Sistemas Distribuídos

Quando Distribuir é bom

Programação Paralela e Distribuída

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

Arquitetura e Objetos Distribuídos em CORBA. Aula 3. Especificações OMA Object Web

Transcrição:

PR UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ INTRODUÇÃO AOS SISTEMAS DISTRIBUÍDOS Prof. Cesar Augusto Tacla http://www.dainf.ct.utfpr.edu.br/~tacla/espsd/ 1

Sumário 1. INTRODUÇÃO a. Definição de sistemas distribuídos (SDs) b. Exemplos de sistemas distribuídos c. Tipos de aplicações distribuídas d. Vantagens e dificuldades dos SDs 2

Sumário 1 a Definição de sistemas distribuídos 3

Definição O que é um sistema distribuído? Rede de Comunicação 4

Definição Um sistema distribuído é uma coleção de computadores autônomos conectados por uma rede de comunicação que é percebida pelos usuários como um único computador que provê um serviço ou resolve um problema. (Tanenbaum & Steen, 2002) Esta definição faz referência a um conceito importante em sistemas distribuídos, o da transparência 5

Definição Um sistema distribuído é composto por computadores conectados em rede (hardware e software) que se comunicam e coordenam suas ações somente através do envio de mensagens. (Coulouris et al., 2001) 6

Sumário 1 b Exemplos de sistemas distribuídos 7

Exemplo 1: WEB ISP intranet WEB: Acesso remoto a páginas FTP: Transferência de arquivos EMAIL backbone satellite link desktop computer: server: network link: Fonte: figura 1-1 (Coulouris et al., 2003) ISP: Internet Service Provider = provedor de acesso 8

Exemplo 2: Bancos Caixas automáticos BD banco 1 BKP BD banco 1 BD = banco de dados BKP = backup Caixas automáticos BD banco 2 BKP BD banco 2 Fonte: http://www.ida.liu.se/~tddb37/lecture-notes/lect1.frm.pdf 9

Exemplo 3: Napster usuário Servidor NAPSTER usuário Requisição de MP3 Anúncio usuário Transferência de arquivo usuário 10

Outros Exemplos Similares ao NAPSTER EMULE BITORRENT SKYPE (VoIP) MSN MESSENGER, YAHOO Outros APLICAÇÕES DE MULTIMÍDIA WEB conferência Difusão de streams on-line (voz, vídeo) 11

Exemplo 4: Cluster (1) CLUSTERS ou AGRUPAMENTOS Máquinas conectadas por rede de alta velocidade Necessidade de alto desempenho computacional Evitar custo de máquinas de alto desempenho Objetivo: compartilhar recursos computacionais De processamento De armazenamento De memória Outros 12

Exemplo 4: Cluster (2) JAGUAR Cluster de máquinas do Oak Ridge National Laboratory (EUA) Primeiro da lista dos TOP 500 SUPERCOMPUTERS INSTALADO EM 2009 224.162 CORES 1.759.000 Gflops Solução: agrupamento físico de máquinas de menor porte = cluster: mesmo espaço geográfico Normalmente dentro da mesma organização, com software/hardware homogêneos Softwares: OpenMosix, Condor e Oscar FONTE http://www.top500.org/list/2010/06/100 Acesso em 9/9/2010 13

Exemplo 4: cluster (3) Clusters são utilizados para... Aumentar a disponibilidade de serviço se um nodo falha, outro assume Equilibrar carga de trabalho um ou mais computadores do cluster atuam como distribuidores da carga entre os demais Alto desempenho Para resolver tarefas complexas que podem ser decompostas em sub-tarefas, cada uma rodando num nodo do cluster. Implementação mais comum: LINUX e software livre para implementar paralelismo = Beowulf cluster 14

Exemplo 5: Grid (1) GRID ou GRADE = as máquinas encontram-se distantes geograficamente. É uma cooperativa de máquinas não pertencem necessariamente a mesma organização! são ditas organizações virtuais não há administração central dos recursos computacionais Utilização de protocolos/padrões abertos 15

Exemplo 5: Grid (2) Aplicações Tarefas complexas decompostas Reunião dos resultados parciais Exemplos de grids de pesquisa Laboratório Nacional de Computação Científica: http://portalvcg.lncc.br/ Campina Grande: http://ourgrid.org 16

Exemplo 5: Grid (3) Exemplos participação de qualquer usuário final World Community Grid: http://www.worldcommunitygrid.org Identificar quais defeitos em proteínas produzidas pelos genes humanos podem causar doenças Utiliza BOINC TeraGrid da universidade de Purdue (www.teragrid.org) BBC Climate Change Experiment: http://climateprediction.net/ Tentativa de prever o clima para o século 21 Utiliza BOINC Introdução básica: http://www.gridcafe.org/multimedia.html 17

Exemplo 6: BOINC 1. 2 tarefas 1.1 Obter tarefas Servidores: escalonamento e dados PC 2. Download das tarefas (arqs.exe e dados) 3. Executar loop 4. Enviar arquivos de resultados 5. Relatar resultados 18

Exemplo 6: BOINC Créditos Mede quanto cada participante contribuiu Cada unidade de trabalho é enviada ao menos a dois PCs 100+ http://boinc.berkeley.edu/chart_list.php 19

consultar links de Grid http://www.dainf.ct.utfpr.edu.br/~tacla/espsd/ 20

Sumário 1 c Tipos de aplicações distribuídas 21

Tipos de aplicação distribuídas (1) Resolução distribuída de problemas Um usuário deseja resolver um problema complexo (ex. renderização de imagens complexas) Decomposição de um problema em subproblemas Distribuição dos subproblemas para diferentes processos Um dos processos coleta e monta o resultado final T1 T1.1 T1.2 T1.3 22

Decomposição de tarefas 23

Decomposição de tarefas(2) Tempo Renderman da Pixar https://renderman.pixar.com/index.html Filme 2 minutos 30 frames por segundo 7.200 minutos de renderização No Distributed Render Environment: Filme 2 minutos 30 frames por segundo 36 minutos de renderização Fonte http://www.i-light.org/docs/ipgrid_fn_report.doc (TeraGrid Purdue) 24

Tipos de aplicação distribuídas (2) Composição de serviços sistemas multi-agentes/peer-to-peer Usuários com diferentes necessidades utilizam serviços/recursos heterogêneos providos por diferentes desenvolvedores Foco na interação entre agentes (competição ou colaboração); i.e. solução surge através da interação Ex. leilão 25

Tipos de aplicação distribuídas (3): Exemplo integração de serviços 26

Sumário 1 d Vantagens e dificuldades dos SDs 27

Motivações Razões para construir um SD Desempenho > sistema centralizado Distribuição natural das aplicações: bancárias, videoconf., etc. Robustez: frente a falhas Escalabilidade: sist. pode ser aumentado sem perda de desempenho? Compartilhamento de recursos Impressoras e outros hardwares Arquivos (inclusive páginas Web) CPU Memória Espaço em disco dados 28

Dificuldades O desenvolvimento de um sistema distribuído é mais complexo do que um centralizado HETEROGENEIDADE ABERTOS SEGUROS ESCALÁVEIS CONFIÁVEIS CONCORRÊNCIA TRANSPARÊNCIA 29

Exemplo Baseando-se no exemplo da aplicação bancária mostrada no início destes slides e considerando que: Há acessos múltiplos (concorrentes) à mesma conta; Transações bancárias podem envolver contas armazenadas em diferentes bancos de dados (BD); Não interessa ao cliente se os dados de sua conta estão armazenados no BD1 ou BD2 pode-se concluir que as características importantes para este tipo de sistema são... (> próximo) 30

Exemplo Acessos múltiplos (concorrentes) à mesma conta: vários usuários acessam a mesma conta ou um sistema do banco (emissão de relatórios) acessa ao mesmo tempo em que usuários realizam transações. Transações bancárias podem envolver contas armazenadas em diferentes bancos ou localidades. O serviço deve ser transparente ao usuário não interessa se os dados de sua conta estão armazenados no banco 1 ou banco 2, a aplicação não deve em nenhum momento deixar transparecer aspectos internos do sistema O serviço deve ser confiável e seguro Bases de dados replicadas devem ser consistentes Tolerância a falhas 31

HETEROGENEIDADE Lidar com diferentes Redes hardwares (computadores) sistemas operacionais Linguagens de programação Além de resolver os problemas de heterogeneidade, o middleware define um modelo computacional uniforme para a programação de aplicações distribuídas. PROTOCOLOS SIST. OPER. HARDWARE APLICAÇÃO DISTRIBUÍDA MIDDLEWARE PROTOCOLOS SIST. OPER. HARDWARE RMI RPC CORBA PLATAFORMA 32

ABERTOS O grau de abertura de um SD depende de: Facilidade de adicionar novos recursos De hardware De software: novos serviços ou re-implementação de antigos SD abertos baseiam-se em: Mecanismos de comunicação uniformes Especificados por organismos tais como OMG e IETF Ex. CORBA (OMG) Publicação de interfaces de serviços: para esconder a heterogeneidade de implementação dos serviços, as implementações devem aderir a uma forma de publicar as interfaces dos serviços 33

SEGURANÇA Segurança envolve: selar informações importantes enviadas através da rede (ex. criptografia de número de cartão de crédito) Identidade: garantir a autenticidade da fonte. Ex. um médico deseja acessar dados de pacientes de forma remota. É preciso assegurar que o usuário é realmente o médico. Ex. um usuário deseja comprar um livro pela Internet. É preciso assegurar a identidade da loja virtual - que realmente é uma loja e não vai fazer mal uso do cartão. Problemas : Indisponibilidade de serviço devido a ataques Segurança de código móvel (ex..exe anexados a emails, applets) 34

ESCALABILIDADE Um SD é escalável se, ao adicionarmos novos recursos e usuários, seu desempenho permanece satisfatório. Exemplos: Endereços IPv4 de 32 bits => IPv6 128 bits DNS, no início, era uma tabela => foi particionada e é tratada localmente contendo replicações. Técnicas para garantir escalabilidade: Replicação de dados Caching Replicação de serviços 35

Tratamento de falhas Falhas atingem parcialmente um SD Detecção Mensagens corrompidas => checksum Crash de um servidor => nunca é certo se o servidor caiu, se a falha está no link ou se a rede está sobrecarregada Esconder falhas Se uma mensagem não chega no destino => retransmissão Dados podem ser escritos em dois discos, se um está danificado, utiliza-se a cópia. 36

Tratamento de falhas (2) Tolerância a falhas Exemplo: quando um navegador da Internet não consegue acessar um servidor ele não prende o usuário indefinidamente. Como tornar um sistema tolerante a falhas? Redundância pode tornar sistema tolerante a falhas Replicação de dados No serviço DNS cada entrada é replicada em pelo menos dois servidores Explorar rotas alternativas na Internet Maior tolerância a falhas aumenta a disponibilidade do sistema 37

Transparência O sistema deve ser visto pelo usuário e pelo programador como um todo e não como uma coleção de componentes Vários tipos de transparência Acesso: recursos locais e remotos são acessados através de operações idênticas Localização: permite acessar um recurso sem conhecimento de sua localização (ex. URL) Replicação: múltiplas instâncias de um recurso podem ser utilizadas sem que isto seja explícito para usuários e programadores 38

TRANSPARÊNCIA Vários tipos (cont) Concorrência: vários processos podem acessar o mesmo recurso sem interferir na utilização um do outro nem no recurso. Ex: sistema de telefonia celular (emissor) Mobilidade: permite a movimentação de recursos e clientes dentro de um sistema sem afetar a operação 39

RESUMO SISTEMAS DISTRIBUÍDOS SÃO ÚTEIS PARA Melhorar desempenho Melhor adaptados a distribuição natural dos elementos Porém são complexos são inerentemente concorrentes devem ser confiáveis devem ser transparentes funcionar em plataformas heterogêneas Middlewares resolvem parte destes problemas 40