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

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

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

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

Características de Sistemas Distribuídos

Características de Sistemas Distribuídos

Sistemas Distribuídos

Sistemas Distribuídos

SIST706 Sistemas Distribuídos

Desenvolvimento de Aplicações Distribuídas

SISTEMAS DISTRIBUÍDOS

Computação em Grid e em Nuvem

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

Sistemas Distribuídos

Computação Distribuída

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

Sistema de Software Distribuído

Sistemas Distribuídos

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

Sistemas Distribuídos

Conceitos de Sistemas Distribuídos

Sistemas distribuídos. Prof. Emiliano Monteiro

SIDs: ARQUITETURA DE SISTEMAS DISTRIBUÍDOS

STD29006 Sistemas Distribuídos

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

Sistemas Distribuídos

Sistemas Distribuídos

Arquitetura de sistemas distribuídos

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

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

SISTEMAS OPERACIONAIS

SISTEMAS DISTRIBUÍDOS

Infra-Estrutura de Software

Introdução a Sistemas Distribuídos

SIST706 Sistemas Distribuídos

Uma Visão Geral de Redes de Computadores

Introdução aos Sistemas Distribuídos

Introdução a Computação em Nuvem

Sistemas Distribuídos. Edy Hayashida

Sistemas Distribuídos

Introdução a Computação em Nuvem

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 04: PROCESSAMENTO PARALELO: MULTICOMPUTADOR

O que é um sistema distribuído?

Desenvolvimento de Aplicações Distribuídas

Tipos de Sistemas Distribuídos

Arquitetura de Rede. Universidade Católica de Pelotas Curso de Engenharia da Computação Disciplina: Redes de Computadores I

Sistemas Operacionais Distribuídos

Sistemas Distribuídos

Paralelização de Algoritmos de CFD em Clusters Multi-Core MC7. Escola de Verão Arquiteturas Multi-Core

Aula 1 Conceitos Básicos

Scientific data repositories: the USP experience

SSC510 Arquitetura de Computadores. 10ª aula

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

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

COMPUTAÇÃO PARALELA E DISTRIBUÍDA

Engenharia de Software

Sistemas Distribuídos

Sistemas Distribuídos

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

Introdução a SD e suas Metas

Arquiteturas. capítulo

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

SISTEMAS OPERACIONAIS DE REDE

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

Sistemas Distribuidos. Prof. Walter Gima

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

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

Introdução à Informática

Metas de um Sistema Distribuído

Introdução. capítulo

Arquitectura de Sistemas Paralelos e Distribuídos Modelos de Sistemas

Replicação em sistemas web

Carlos Eduardo Batista Centro de Informática - UFPB

Avanços e Perspectivas do Projeto Integrade na UFMA

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

Quando Distribuir é bom

Quando Distribuir é bom

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

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

Capítulo 7. A camada de aplicação

Programação Distribuída. Tipos de Sistemas Distribuídos

Introdução a Web Services

Replicação em sistemas web

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar

ÍNDICE. Redes de Computadores - 1º Período de Cap 12 - Fls. 1

Sistemas Operacionais: O quê? Por quê? Quando?

PROGRAMA DE DISCIPLINA

Alcides Pamplona

Vamos fazer um pequeno experimento

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

Caracterização de Sistemas Distribuídos

trabalho Heitor Oliveira,Rafael Aleixo,Alex Rodrigues September 2013

Aula 5 TECNOLOGIA EM JOGOS DIGITAIS JOGOS MULTI PLAYER. Marcelo Henrique dos Santos

Informática I. Aula 2. Ementa

Desenvolvimento de Aplicações Distribuídas

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

SISTEMAS DISTRIBUÍDOS TIPOS

Introdução aos Sistemas Distribuídos

Transcrição:

- 1 -

- 2 -

- 3 -

Segundo (Garg, 2004), são sistemas compostos por múltiplos processadores conectados por uma rede de comunicação, sendo a rede de comunicação uma LAN (Ethernet) ou WAN (Internet). - 4 -

Segundo (Tanenbaum & Steen, 2002), sistema distribuído é uma coleção de computadores independentes percebidos pelos usuários como se fosse um computador único, ou seja, o usuário vê o sistema como composto por um único computador que resolve um dado problema ou provê um serviço quando, na realidade, a resolução do problema é realizado ou o serviço é executado por vários computadores. Esta definição faz referência a um conceito importante em sistemas distribuídos, o da transparência. - 5 -

Envio de mensagens pela rede de computadores é a expressão-chave. É isto que diferencia sistemas distribuídos de computação paralela em uma máquina com vários processadores. - 6 -

- 7 -

Ressaltar o conceito de transparência de localização (utilizar URLs ao invés de endereços IPs. A Web pode ser considerado um sistema distribuído, pois quando um usuário navega na Internet solicita páginas de vários servidores de forma relativamente transparente em relação à localização dos arquivos (páginas). Apesar de teclar URLs no browser ou clicar sobre links em páginas HTML, o usuário não fornece o endereço IP e porta dos servidores. Ao invés disso, utiliza o serviço do DNS de resolução de nomes. Os servidores proxy também fazem parte deste enorme sistema, provendo acesso às páginas armazenadas em cache. Não se pode esquecer dos roteadores, que fazem os pacotes trafegarem pela rede utilizando bases de dados distribuídas sobre os links. Do ponto de vista do usuário, quais são os serviços oferecidos por este sistema distribuído: -Acesso remoto a páginas (arquivos); -Transferência de arquivos; -Envio/recepção de emails. É um sistema aberto, pode ser estendido pela adição de novos servidores e novos tipos de serviços. Por exemplo, serviços de streams tem-se difundido na Web (vídeo, áudio, enfim, multimídia). A animação mostra que do ponto de vista do usuário, o hardware da rede é transparente, ele enxerga serviços! - 8 -

- 9 -

Neste exemplo ressaltar que objetos compartilhados podem sofrer acessos concorrentes (ex. uma conta corrente) por diferentes transações. Transparência de localização, o usuário do sistema não precisa saber se os dados de sua conta estão armazenados em Curitiba ou em outra cidade. Confiável: não deixa os objetos em estados inconsistentes. Acesso ao sistema é transparente da perspectiva ao usuário. Os bancos de dados são replicados por motivos de desempenho de acesso e por segurança (redundância para evitar perdas de dados). Bases de dados replicadas: aumentam a tolerância a falhas, mas podem tornar o sistema não confiável! - 10 -

- 11 -

- 12 -

- 13 -

Napster é um sistema peer-to-peer (não-puro) onde usuários podem compartilhar arquivos de música sem passar pelo servidor, exceto no momento de buscar os arquivos desejados. A arquitetura do Napster é híbrida, pois tem aspectos de cliente-servidor (anúncio e descoberta de músicas) e peer-to-peer (transferência de arquivo). - 14 -

- 15 -

- 16 -

- 17 -

O cluster da universidade de Purdue serve aos alunos de graduação contrariamente a maioria dos outros que são preferencialmente montados para pesquisas. Programação utilizando MPI (Message Passing Interface) O modelo de Message Passing é um conjunto de processos que possuem acesso à memória local. As informações são enviadas da memória local do processo para a memória local do processo remoto. [http://www.fisiocomp.ufjf.br/seminarios/introducao MPI.pdf] Open MPI http://www.open-mpi.org/ - 18 -

1 billion computing core-hours for researchers to tackle huge scientific challenges 4/07/2011 03:24:00 PM Computing is an invaluable resource for advancement of scientific breakthroughs. Today we re announcing an academic research grant program called Google Exacycle for Visiting Faculty, which provides 1 billion hours of computational core capacity to researchers. That s orders of magnitude larger than the computational resources most scientists normally have access to. This program is focused on large-scale, batch computations in research areas such as biomedicine, energy, weather and climate, earth sciences and astronomy. For example, scientists could use massive amounts of computation to simulate how pharmaceuticals interact with proteins in the human body to develop new medicines. Other uses could include simulations to predict weather patterns and analysis of telescope images to understand how the universe changes over time. Exacycle for Visiting Faculty is part of our University Relations team s larger efforts to stimulate advances in science and engineering research. If you're a fulltime faculty member, we encourage you to apply by May 31, 2011. In the future, we think this service could also be useful for businesses in various industries, like biotech, financial services, manufacturing and energy. If your business can benefit from hundreds of millions of corehours to solve complex technical challenges and you want to discuss potential applications, please contact us. Posted by Alfred Spector, VP of Research and Special Initiatives - 19 -

- 20 -

Um grid oferece a possibilidade de utilizar padrões e protocolos abertos para compartilhar dados, capacidade de processamento, armazenamento e outros recursos computacionais disponíveis na rede. Um grid é um tipo de sistema distribuído que permite compartilhar, selecionar e agregar recursos distribuídos em diversos domínios administrativos com base na disponibilidade dos recursos, capacidade, desempenho, custo e QoS (Quality of Service) necessário ao usuário final. Fonte: IBM Solutions Grid for Business Partners: Helping IBM Business Partners to Grid-enable applications for the next phase of e-business on demand - 21 -

Grid do LNCC ver http://www.lncc.br/~jauvane/papers/wgca03_cribeir o.pdf É bastante utilizada em tarefas complexas que podem ser decompostas em subtarefas cujos resultados parciais podem ser obtidos de forma independente e, posteriormente, coletados para compor o resultado final. - 22 -

Um grid permite utilizar os recursos computacionais (ex. memória, processador) das máquinas conectadas à Internet quando estão ociosas. São exemplos de projetos que utilizam o conceito de grid: World Community Grid Projeto Human Proteome Folding: identificar proteínas produzidas por genes humanos. Com esta informação, é possível entender como os defeitos das proteínas podem causar doenças tornando mais fácil encontrar curas. Em 2003, com este grid, em menos de três meses, cientistas identificaram 44 tratamentos potenciais para a cura da varíola. Sem o grid, o trabalho levaria mais de um ano. BOINC Berkeley Open Infrastructure for Network Computing (BOINC). Infra-estrutura aberta para computação em rede. - 23 -

- 24 -

- 25 -

HTCondor High Throughput Computing (University of Wisconsin-Madison (UW-Madison)): HTCondor can be used to manage a cluster of dedicated compute nodes (such as a "Beowulf" cluster). In addition, unique mechanisms enable HTCondor to effectively harness wasted CPU power from otherwise idle desktop workstations. HTCondor can be used to build Grid-style computing environments that cross administrative boundaries. HTCondor incorporates many of the emerging Grid and Cloud-based computing methodologies and protocols. The HTCondor software, source code, and complete documentation are freely available under an open source license. Linux, MacOS, and Windows platforms are supported. BOINC: Open-source software for volunteer computing and grid computing - 26 -

- 27 -

- 28 -

- 29 -

- 30 -

Os tipos de aplicação possíveis para sistemas distribuídos variam da resolução distribuída aos sistemas heterogêneos à sistemas multi-agentes. Nos primeiros, o desenvolvedor projeta exatamente como será a distribuição dos processos entre as máquinas e que parte do problema cada processo resolverá. No segundo, sistemas multi-agentes, são sistemas abertos e heterogêneos onde vários desenvolvedores desenvolvem agentes, softwares dotados de um certo grau de inteligência e, principalmente, de interação com outros agentes, capazes de interagirem e produzirem algum resultado útil ao usuário embora não tenha sido concebidos inicialmente com aquele objetivo específico. As definições seguintes foram extraídas de http://www.pcs.usp.br/~jaime/papers/marietto_iberamia02_p.pdf: Resolução Distribuída de Problemas A RDP tem como base o problema que é modelado através de uma abordagem descendente (top-down). A solução do problema é previamente estruturada, e os agentes são desenvolvidos para atuarem conforme o esquema proposto para a solução. Isto significa dizer que grande parte do raciocínio sobre a solução é inserido no sistema pelo projetista, levando ao desenvolvimento de controles geralmente hierárquicos e centralizados. - 31 -

O slide ilustra uma decomposição de tarefa de renderização entre três processos. Os resultados parciais são coletados por um processo central que remonta a imagem. Fonte da imagem: http://www.lightwavers.net/albums/mylw3d/04_g.jpg - 32 -

No documento fonte, a universidade de Purdue tem um grid para calcular renderização. Tipicamente uma renderização para um filme de 2 minutos utilizando o software Renderman da Pixar (provavelmente numa máquina desktop) leva 7200 minutos. Num DRE (Distributed Render Environment) isto leva 36 minutos. - 33 -

- 34 -

Este paper (o da fonte) dá uma idéia geral sobre a área de Inteligência Artificial distribuída e suas áreas de aplicação, tal como, simulação para análises de sociedades artificiais - 35 -

Há uma série de serviços disponíveis na Web oferecidos de forma isolada. É possível integrar estes serviços num nível mais abstrato, do ponto de vista do cliente. Abordagens SOA (Service Oriented Architecture) utilizam o mesmo princípio, o da integração de serviços. - 36 -

P2P é inspirado na igualdade entre os participantes SMA tem inspiração (ao menos uma parte deles) em modelos sociológicos e cognitivos. Iniciação em NETLOGO: http://www.ncc.furg.br/wesaac20 10/wesaac2010-slides-rocha.pdf - 37 -

Sovereign computing is peer-to-peer social networking taken to extremes. It is the freedom to share information and hardware resources with your friends any way you please. Sovereign applications are open source, peer-to-peer, social network applications (Fonte: http://sneer.me/project.html). - 38 -

- 39 -

Desempenho: uma coleção de computadores frequentemente é capaz de produzir melhor que um computador centralizado. Distribuição natural: algumas aplicações são naturalmente distribuídas e, portanto, a arquitetura de um sistema distribuído se adapta perfeitamente. Por exemplo, aplicações bancárias, CSCW, videoconferência, etc. Robustez: se uma das máquinas ou um link de um SD cai, o sistema ainda pode sobreviver? Escalabilidade: um sistema distribuído pode ser aumentado de forma incremental através da inclusão de novos servidores e clientes sem perda significativa de desempenho introduzida pelo controle e comunicação extras. Compartilhar recursos: alguns recursos caros podem ser compartilhados (ex. impressora cara), dados também podem ser compartilhados (dados bancários, dados de reserva de bilhetes aéreos). Comunicação entre humanos torna-se mais fácil. - 40 -

Um sistema distribuído deve tratar todos os aspectos mencionados nesta transparência: Heterogeneidade de plataformas (SO, linguagens, meios de transmissão, etc.) Abertos: entrada/saída de novos elementos no sistema; - 41 -

- 42 -

Aspectos importantes num sistema distribuído bancário: Acessos múltiplos (concorrentes) à mesma conta: vários usuários acessam a mesma conta ou um programa do próprio banco (ex. 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 - 43 -

A camada de middleware esconde as diferenças das camadas inferiores de rede, sistema operacional e hardware. A maior parte dos middlewares são implementados sobre a camada dos protocolos Internet que, por sua vez, mascaram as diferenças das redes. Todos os middlewares lidam com as diferenças existentes nos sistemas operacionais e no hardware. Além de resolver os problemas de heterogeneidade, o middleware define um modelo computacional uniforme para a programação de aplicações distribuídas. São exemplos de modelos: invocação remota de objetos (RMI), notificação remota de eventos, acesso SQL remoto e processamento de transações distribuídas. Por exemplo, CORBA permite que um objeto chame um método de outro objeto remoto escondendo os detalhes ao programador: o fato de que a chamada é transformada numa mensagem, enviada ao receptor que devolve uma resposta passando pela rede. - 44 -

OMG: object management group http://www.omg.org/ IETF: Internet Engineering Task Force www.ietf.org - 45 -

Os dois primeiros problemas tem soluções baseadas em criptografia. Existem medidas contra os problemas que persistem, mas não são completamente tratáveis até o momento (Coulouris et al. 2003). - 46 -

- 47 -

Falhas parciais significam que um componente do sistema falha enquanto os outros funcionam normalmente. Entretanto cada componente deve estar ciente que outros componentes podem falhar e como podem falhar para poder detectar e tratar estas falhas. - 48 -

Nem sempre é adequado esconder as falhas, as vezes é mais produtivo mostrá-las - 49 -

Os tipos de transparência mais importantes são de acesso e localização. Um exemplo de falta de transparência de acesso seria um sistema que permitisse acessar arquivos locais através de uma interface gráfica e arquivos remotos somente através de ftp textual. URLs são transparentes quanto a localização utilizam o nome do domínio e não o endereço IP. Porém, não são transparentes quanto a mobilidade, pois não podemos mudar uma página de um domínio a outro porque links de outras páginas ainda apontariam para a localização antiga. Replicação pode ser utilizada para fins de aumento de desempenho ou aumento da disponibilidade do sistema. - 50 -

Exemplo de transparência de falhas: envio de email, o servidor de envio tenta durante vários dias enviar o email sem que o emissor saiba. Quando não consegue enviar, retorna o email. Exemplo de transparência de mobilidade: quando uma pessoa telefona (celular) para outra, esta última fora da sua base, o emissor da chamada desconhece a localização do receptor. Há outros tipos de transparências que dizem respeito à transparência de falhas, desempenho e escala: Falhas: permite aos usuários e programas completarem suas tarefas apesar de falhas no hardware ou software Desempenho: o sistema pode ser reconfigurado para melhorar seu desempenho sem afetar a operação normal do mesmo. Escala: o sistema pode aumentar sem mudar a estrutura do sistema ou os programas das aplicações. - 51 -

Sistemas distribuídos são úteis para... - 52 -