A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Sistemas Distribuídos

Apresentações semelhantes


Apresentação em tema: "Sistemas Distribuídos"— Transcrição da apresentação:

1 Sistemas Distribuídos
Introdução Prof. Flávio Euripedes de Oliveira

2 Definição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software distribuído. Processo ● Executados concorrentemente ● Interagem para alcançar um objetivo comum ●Coordenação feita através de troca de mensagens, utilizando a rede de conexão

3 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) 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)

4 Definição “Você sabe que existe um sistema distribuído quando a falha de um computador que você nunca ouviu falar impede que você faça qualquer trabalho”. (Leslie Lamport)

5 Evolução Computacional
Invenção de redes de computadores de alta velocidade (anos 70): Rede local (Local Area Network - LAN) Rede global (Wide Area Network - WAN) Desenvolvimento de microprocessadores potentes (anos 80).

6 Sistemas Distribuídos
É relativamente fácil agrupar um grande número de CPUs, conectando-as por uma rede de alta velocidade. O software para sistemas distribuídos é completamente diferente do software para sistemas centralizados.

7 Por quê SDs? Vantagens: Benefícios:
Cooperação e compartilhamento de recursos Benefícios: Redução de custos, aumento da confiabilidade, disponibilidade e desempenho

8 Qual é a Importância?

9 Exemplo1: WEB

10 Exemplo2: Bancos

11 Exemplo3: Napster

12 Exemplo3: 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)

13 Exemplo4: 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

14 Exemplo4: Cluster(2) JAGUAR
Cluster de máquinas do Oak Ridge National Laboratory (EUA) Primeiro da lista dos TOP 500 SUPERCOMPUTERS INSTALADO EM 2009 CORES Gflops FONTE 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 Cluster atual:

15 Exemplo4: 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

16 Exemplo5: 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 aberto

17 Exemplo5: Grid(2) Aplicações Exemplos de grids de pesquisa
Tarefas complexas decompostas Reunião dos resultados parciais Exemplos de grids de pesquisa Laboratório Nacional de Computação Científica: Campina Grande:

18 Exemplo5: Grid(3) Exemplos – participação de qualquer usuário final
World Community Grid: Identificar quais defeitos em proteínas produzidas pelos genes humanos podem causar doenças Utiliza BOINC (Mensura quanto cada usuário contribuiu) TeraGrid da universidade de Purdue ( BBC Climate Change Experiment: Tentativa de prever o clima para o século 21 Utiliza BOINC

19 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

20 Dificuldades: O desenvolvimento de um sistema distribuído é mais complexo do que um centralizado

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

22 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

23 Como lidar com a Heterogeneidade?
Sistemas distribuídos costumam ser organizados por meio de uma camada de software MIDLLEWARE Situado logicamente entre uma camada de nível mais alto, composta de usuários e aplicações, e uma camada adjacente (SOs e comunicação)

24 Middleware Oculta a distribuição, isto é, o fato que a aplicação está sendo executada em diferentes máquinas distribuídas geograficamente Oculta a heterogeneidade: diferentes sistemas operacionais, diferentes protocolos de comunicação

25 Middleware

26 Metas: Acesso a recursos Transparência Abertura Escalabilidade

27 Meta I – Acesso a Recursos
Facilitar aos usuários e aplicações acesso a recursos remotos e o compartilhamento de maneira controlada e eficiente. ● Razão óbvia: Economia ● Impressoras, computadores, dados, página Web ●Conectividade e compartilhamento de informações Problema: Segurança

28 Meta II – Transparência da Distribuição (1/8)
Consiste em ocultar o fato de que os processos e recursos estão fisicamente distribuídos por vários computadores.

29 Meta II – Transparência da Distribuição (2/8)
Tipos:

30 Meta II – Transparência da Distribuição (3/8)
Acesso: Ocultar diferenças entre arquiteturas de máquinas Mais importante: Acordo sobre como os dados devem ser representados Exemplo: Nomeação de arquivos em SOs diferentes

31 Meta II – Transparência da Distribuição (4/8)
Localização: Usuários não são capazes de dizer a localização física do recurso Nomeação → nome não dá pistas da localização física de um dos servidores google ( Não vale adotar o comando traceroute ! :) )

32 Meta II – Transparência da Distribuição (5/8)
Migração: Recursos podem ser movimentados sem afetar o modo como podem ser acessados Exemplo: Mudança de um servidor WEB Relocação: Recursos podem ser relocados enquanto estão sendo acessados Exemplos: uso móvel de laptops (redes wireless) Celular se movimentando dentro da mesma área de cobertura

33 Meta II – Transparência da Distribuição (6/8)
Replicação: Permite que várias instâncias de recursos sejam usadas para aumentar a confiabilidade e o desempenho ; Deve mascarar o conhecimento das réplicas por parte dos usuários;

34 Meta II – Transparência da Distribuição (7/8)
Concorrência: Ocultar o fato que 2 ou mais usuários estejam acessando um recurso no mesmo instante; Deve garantir consistência. Falha: Ocultar do usuário que um recurso deixou de funcionar bem e que o sistema se recuperou da falha. Mascarar falhas é uma das questões mais difíceis.

35 Meta II – Transparência da Distribuição (8/8)
Sempre Requerida? Bela meta no projeto e na implementação de sistemas distribuídos, mas deve ser considerada em conjunto com outras questões, como desempenho e facilidade de compreensão. Exemplo: Aplicações de Internet tentam contatar um servidor repetidas vezes antes de desistir. Talvez seja melhor desistir mais cedo ou permitir que o usuário cancele as tentativas

36 Meta III – Abertura Característica que determina se um sistema pode ser estendido de diferentes maneiras Hardware - Inclusão de dispositivos de fabricantes distintos Software –Módulos de SO –Protocolos de Comunicação –Recursos compartilhados

37 Meta III – Abertura 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

38 Meta III – Abertura CORBA (abreviado de Common Object Request Broker Architecture) é a arquitetura padrão criada pelo Object Management Group para estabelecer e simplificar a troca de dados entre sistemas distribuídos heterogêneos. Em face da diversidade de hardware e software que encontramos atualmente, a CORBA atua de modo que os objetos (componentes dos softwares) possam se comunicar de forma transparente ao usuário, mesmo que para isso seja necessário interoperar com outro software, em outro sistema operacional e em outra ferramenta de desenvolvimento. CORBA é um dos modelos mais populares de objetos distribuídos, juntamente com o DCOM, formato proprietário da Microsoft.

39 Meta III – Abertura ORB IDL
A arquitetura CORBA define o ORB (Object Request Broker) como um módulo intermediário entre cliente e objeto, sendo responsável em aceitar a requisição do cliente, enviá-la para o objeto competente e, assim que disponível a resposta, entregá-la para o cliente. IDL A CORBA utiliza a IDL (Interface Definition Language), uma linguagem baseada em C++ que não possui algoritmos nem variáveis, ou seja, é puramente declarativa, e, portanto, é independente da linguagem de programação utilizada para acessá-la. Há padrão de IDL definido pelo OMG para C, C++, Java, TTCN, COBOL, Smalltalk, Ada, Lisp, C#, Python e IDLscript. Possibilita a interoperabilidade entre os diversos sistemas, visto a separação que é definida entre interface e execução. A interface de cada objeto é definida de forma bastante específica, enquanto a sua execução (código fonte e dados) permanece oculta para o resto do sistema.

40 Meta III – Abertura Interoperabilidade: Portabilidade:
Caracteriza até que ponto duas implementações de sistemas ou componentes de fornecedores diferentes devem coexistir e trabalhar em conjunto Portabilidade: Caracteriza até que ponto uma aplicação desenvolvida para uma sistema distribuído A pode ser executada, sem modificação, em um sistema distribuído diferente B que implementa as mesmas interfaces que A

41 Meta IV – 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

42 Meta IV – Escalabilidade
Três Dimensões Tamanho Termos Geográficos Termos Administrativos

43 Meta IV – Escalabilidade: Tamanho
Aumento do número de usuários e/ou processos PROBLEMAS

44 Meta IV – Escalabilidade: Tamanho
Serviços Centralizados Serviços que são implementados por meio de apenas um único servidor que executa em uma máquina específica no sistema distribuído Possível Gargalho no sistema

45 Meta IV – Escalabilidade: Tamanho
Dados Centralizados Números telefônicos estivessem em um único banco de dados → saturação de todas as linhas de comunicação que o acessam DNS

46 Meta IV – Escalabilidade: Tamanho
Algoritmos Centralizados Para evitar troca de mensagens → colher informações de todas as máquinas e linhas e executar um algoritmo para computar todas as rotas ótimas → propagar as informações por todo o sistema Péssima idéia!!

47 Meta IV – Escalabilidade: Termos Geográficos
Usuários e/ou recursos podem estar longe um dos outros PROBLEMAS Dificuldade de ampliar sistemas distribuidos existentes que foram originalmente projetados para redes locais: COMUNICAÇÃO SÍNCRONA Comunicação em redes de longa distância é inerentemente não confiável, ponto-a-ponto Localização de serviços

48 Meta IV – Escalabilidade: Administrativa
Sistema pode ser fácil de gerenciar, mesmo que abranja muitas organizações diferentes PROBLEMAS Políticas conflitantes em relação a utilização – e pagamento – de recursos, gerencialmente e segurança

49 Meta IV – Escalabilidade: Administrativa
Os usuários de um único domínio podem confiar em componentes de um sistema distribuído que residam dentro desse mesmo domínio. Confiança não ultrapassa as fronteiras do domínio: a administração do sistema deve testar e certificar aplicações e tomar providências especiais para garantir que os componentes não sofram nenhuma ação indevida.

50 Meta IV – Escalabilidade
Três técnicas Ocultar latências de comunicação Distribuição Replicação

51 Técnicas de Escalabilidade: Ocultar Latências
Escalabilidade Geográfica Evitar esperar por respostas a requisições remotas Comunicação Assíncrona

52 Técnicas de Escalabilidade: Ocultar Latências
Aplicações Interativas devem esperar por uma resposta Solução: Reduzir comunicação global, passando parte da computação do servidor para o cliente que está requerendo o serviço

53 Técnicas de Escalabilidade: Ocultar Latências
Exemplo: Acesso a banco de dados por meio de formulários

54 Técnicas de Escalabilidade: Distribuição
Escalabilidade de Tamanho Dividir um componente em partes menores e espalhar as sub-partes pelo sistema

55 Técnicas de Escalabilidade: Distribuição
Exemplo: DNS: hierarquia em árvore de domínios, dividida em zonas se sobreposição

56 Técnicas de Escalabilidade: Replicação
Aumenta a disponibilidade dos recursos Equilibra a carga entre os componentes Sistemas com ampla dispersão geográfica ->ocultar os problemas de latência Cache Forma especial de replicação Cache é uma decisão do cliente do sistema

57 Ciladas Premissas falsas adotadas ao se desenvolver pela primeira vez uma aplicação distribuída Rede é confiável Rede é segura Rede é homogênea Topologia constante Latência zero Largura de banda é infinita Custo de Transporte é zero Existe somente um administrador

58 Tipos de Sistemas Distribuídos:
Sistemas de Computação Sistemas de Informação Sistemas Pervasivos

59 Tipos: Sistemas de Computação
Computação de Cluster Computação em Grade

60 Sistemas de Computação: Cluster
Hardware consiste em um conjunto de estações de trabalho ou Pcs semelhantes Conexão feita através de uma rede local Em quase todos os casos, a computação de cluster é usada para programação paralela na qual um único programa é executado em paralelo

61 Sistemas de Computação: Cluster

62 Sistemas de Computação: Grade
Heterogeneidade Recursos de diferentes organizações são reunidos para permitir a colaboração de um grupo de pessoas ou instituições

63 Sistemas de Informação
Sistemas empresariais desenvolvidos para integrar diversas aplicações individuais, onde a interoperabilidade se mostrou “dolorosa” Sistemas de processamento de Transações Integração de Aplicações Empresariais

64 Sistemas de Informação: Processamento de Transações
Requer primitivas especiais que devem ser fornecidas pelo sistema distribuído ou pelo sistema de linguagem

65 Sistemas de Informação: Processamento de Transações
Características Atômicas: para o mundo exterior, indivisível Consistentes: não viola invariantes de sistema Isoladas: transações concorrentes não interferem umas com as outras Duráveis: uma vez comprometida uma transação, as alterações são permanentes

66 Sistemas de Informação: Processamento de Transações
Transação Aninhada Transação é construída com base em uma quantidade de subtransações

67 Sistemas de Informação: Processamento de Transações
No começo, o componente que manipulava transações distribuídas, ou aninhadas, formava o núcleo para integração de aplicações no nível do servidor ou do banco de dados Monitor de processamento de transação: permitir que uma aplicação acessasse vários servidores/bancos de dados

68 Sistemas de Informação: Processamento de Transações

69 Sistemas de Informação: Integração de Aplicações Empresariais
Aplicações querem muito mais em termos de comunicação, não somente modelo de requisição/resposta Middleware de Comunicação Chamadas de Procedimento Remoto Invocações de Método Remoto Middleware Orientado a Mensagem

70 Sistemas de Informação: Integração de Aplicações Empresariais

71 Sistemas de Informação: Integração de Aplicações Empresariais
Chamadas de Procedimento Remoto (RPC) Componente de aplicação pode enviar a um outro componente de aplicação Requisição e Resposta são empacotadas em mensagens

72 Sistemas de Informação: Integração de Aplicações Empresariais
Invocações de Método Remoto (RMI) Popularidade da Tecnologia de Objetos RMI semelhante a RPC, exceto que funciona com objetos em vez de com aplicações

73 Sistemas de Informação: Integração de Aplicações Empresariais
Desvantagens do RPC e RMI: Componentes da comunicação devem estar ligados e em funcionamento Precisam saber exatamente como se referir um ao outro Middleware Orientado a Mensagem (MOM) Aplicações enviam mensagens a pontos lógicos de contato O Middleware se encarrega de entregar todas as mensagens destinadas a uma aplicação

74 Sistemas Pervasivos Instabilidade é o comportamento esperado destes sistemas Dispositivos de computação móveis e embutidos Pequenos Alimentação por bateria Mobilidade Conexão sem fio

75 Sistemas Pervasivos Parte do nosso entorno
Ausência geral de controle administrativo humano Requisitos para as aplicações pervasivas: Adotar mudanças contextuais Incentivar composição ad hoc Reconhecer compartilhamento como padrão

76 Sistemas Distribuídos: Resumo
Altamente difundidos atualmente Baseado em um conjunto de diferentes tecnologias Entendimento dos conceitos e principiais problemas extremamente importantes para gerenciamento, implementação e programação


Carregar ppt "Sistemas Distribuídos"

Apresentações semelhantes


Anúncios Google