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

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

Sistemas Distribuídos 5º Semestre Aula 3 e 4 Prof

Apresentações semelhantes


Apresentação em tema: "Sistemas Distribuídos 5º Semestre Aula 3 e 4 Prof"— Transcrição da apresentação:

1 Sistemas Distribuídos 5º Semestre Aula 3 e 4 Prof
Sistemas Distribuídos 5º Semestre Aula 3 e 4 Prof. Carlos Vinícius SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL FACULDADE DE TECNOLOGIA SENAC PELOTAS

2 Introdução Considerando que os Sistemas Distribuídos são constituídos de vários processadores, existem diversas formas de organizar o hardware de tais sistemas. Para tanto, algumas questões devem ser respondidas: Como implementar a conexão de seus componentes; Como os componentes se comunicam.

3 Conceitos de Software e Hardware em SD
Em Sistemas Distribuídos, hardware é importante mas é o software que determina se é ou não um Sistema Distribuído... Conceitos de hardware focam em como organizar os processadores... Conceitos de software focam em organizar os processos

4 Conceitos de Software em SD

5 Conceitos de Software em SD

6 Classificação de Flynn
Em 1972, Michael Flynn deu origem a uma taxonomia de hardware baseado em dois princípios: número de fluxo de instruções número de fluxos de dados

7 Classificação de Flynn
Um fluxo de instruções equivale a uma sequência de instruções executadas (em um processador) sobre um fluxo de dados aos quais estas instruções estão relacionadas. Baseando-se na possível unicidade e multiplicidade de fluxos de dados e instruções, dividem-se as arquiteturas de computadores em quatro classes. Para cada classe, é apresentada uma esquematização genérica.

8 SISD (Single Instruction Stream/Single Data Stream – Fluxo único de instruções/Fluxo único de dados)
Corresponde ao tradicional modelo Von Neumann. Um processador executa sequencialmente um conjunto de instruções sobre um conjunto de dados. Exemplo: Computadores com um processador (PC’s e Mainframes).

9 SIMD (Single Instruction Stream/Multiple Data Stream – Fluxo único de instruções/Fluxo múltiplo de dados) Envolve múltiplos processadores (escravos) sob o controle de uma única unidade de controle (mestre) executando simultaneamente a mesma instrução em diversos conjuntos de dados. Arquiteturas SIMD são utilizadas para manipulação de matrizes e processamento de imagens. Uma única unidade de controle busca a instrução que comanda varias unidades aritméticas que executam em paralelo, cada uma delas com seus próprios dados; Exemplo: Array de processadores (vetoriais e matriciais) e alguns supercomputadores;

10 MISD (Multiple Instruction Stream/Single Data Stream – Fluxo múltiplo de instruções/Fluxo único de dados) Envolve múltiplos processadores executando diferentes instruções em um único conjunto de dados. Geralmente, nenhuma arquitetura é classificada como MISD, isto é, não existem representantes desta categoria. Alguns autores consideram arquiteturas pipeline como exemplo deste tipo de organização.

11 MIMD (Multiple Instruction Stream/Multiple Data Stream – Fluxo múltiplo de instruções/Fluxo múltiplo de dados) Envolve múltiplos processadores executando diferentes instruções em diferentes conjuntos de dados, de maneira independente. Esta classe engloba a maioria dos computadores paralelos. Os sistemas distribuídos estão nesta categoria, ou um conjunto de computadores independentes, cada um com seu contador de programa, conjunto de instruções e dados.

12 MIMD (Multiple Instruction Stream/Multiple Data Stream – Fluxo múltiplo de instruções/Fluxo múltiplo de dados) Esta categoria divide-se em duas categorias por tipo de memória: Memória Compartilhada: Espaço de endereçamento compartilhado; Memória Local ou Individual: espaço de endereçamento próprio. Esta divisão resume-se basicamente quanto à taxonomia de máquinas fracamente e fortemente acoplados como visto na imagem a seguir.

13 MIMD X SIMD Ambos os tipos de organizações computacionais apresentam vantagens e desvantagens. Arquiteturas SIMD, por apresentarem fluxo único de instruções, oferecem facilidades para a programação e depuração de programas paralelos. Além disso, seus elementos de processamento são simples, pois são destinados à computação de pequena granulação. Por outro lado, arquiteturas MIMD apresentam grande flexibilidade para a execução de algoritmos paralelos (arquiteturas SIMD geralmente se destinam a processamento de propósito específico), e apresentam bom desempenho em virtude de seus elementos de processamento serem assíncronos.

14 MIMD X SIMD A classificação de Flynn apresenta alguns problemas. Ela não é abrangente o suficiente para incluir alguns computadores modernos (por exemplo, processadores vetoriais e máquinas de fluxo de dados), falhando também, no que concerne a extensibilidade da classificação. Outro inconveniente desta classificação é a falta de hierarquia. A classificação MIMD, por exemplo, engloba quase todas as arquiteturas paralelas sem apresentar subníveis. No entanto, apesar de antiga (proposta em 1972), a classificação de Flynn é bastante concisa e a mais utilizada.

15 MIMD X SIMD A fim de acrescentar novas arquiteturas paralelas surgidas, sem descartar a classificação de Flynn (visto que esta é muito difundida), Duncan propôs uma classificação mais completa, e que permite apresentar uma visão geral dos estilos de organização para computadores paralelos da atualidade.

16 Tipos de Sistemas Distribuídos
Os sistemas distribuídos podem ser divididos basicamente em três tipos: Sistemas de Computação Distribuídos Sistemas de Informação Distribuídos Sistemas Distribuídos Pervasivos

17 Sistemas de Computação Distribuídos
Muitos sistemas distribuídos são utilizados para computação de alto desempenho: Computação em Cluster (Aglomerados): São essencialmente um grupo de sistemas conectados através de uma LAN; São homogêneos: mesmo SO, hardware idêntico ou muito similar; Possui um único nó de gerenciamento. Computação em grade: muitos nós de diversas origens: Heterogêneos; Dispersos através de várias organizações; Podem compreender uma rede wide-area; Organizações virtuais.

18 Sistemas de Informação Distribuídos
Existe uma grande variedade de sistemas de informação que utilizam uma arquitetura distribuída. Parte dos sistemas distribuídos em uso atualmente integra sistemas legados. Uma classe importante de sistemas de informação distribuídos são os sistemas de processamento de transações:

19 Sistemas de Informação Distribuídos
Atomicidade: todas as operações serão bem sucedidas ou falham; Consistência: a transação não viola invariantes do sistema (exemplo: lei da conservação do dinheiro em transferências no sistema bancário); Isolamento: transações concorrentes não interferem umas com as outras: o resultado final para cada uma delas se apresentará como se todas as transações fossem executadas em sequência em certa ordem; Durabilidade: uma vez confirmada à transação, as alterações são permanentes.

20 Monitor de Processamento de Transação
Em muitos casos, a transação envolve vários servidores. O monitor de processamento de transação coordena a execução:

21 Integração de Aplicações Corporativas
Em Sistemas de Informação Distribuídos muitas vezes é necessário realizar a integração entre aplicações, seja ela para o aproveitamento de funcionalidades ou para compartilhamento de recursos. Assim, muitas vezes é necessária a comunicação direta entre aplicações: Remote Procedure Call (RPC) Message-Oriented Middleware (MOM)

22 Sistemas Distribuídos Pervasivos
Uma nova geração de sistemas distribuídos tem emergindo atualmente, dentre eles sistemas de computação móvel e pervasivos. A Computação pervasiva considera o ambiente das máquinas e dos humanos como sendo apenas um. Nestes sistemas os equipamentos costumam a ser caracterizados por seu pequeno tamanho, pela alimentação por bateria, por sua mobilidade e por terem somente uma conexão sem fio.

23 Sistemas Distribuídos Pervasivos
Sistemas pervasivos possuem alguns requisitos diferenciados: Ciência de contexto: flutuações do ambiente de execução e descoberta dinâmica de recursos e serviços; Heterogeneidade de rede e de dispositivos; Uso de baterias; Interface com o usuário; Problemas de segurança.

24 Sistemas Distribuídos Pervasivos
Exemplos: Sistemas de casa: Não devem requerer administrador: devem se auto organizar; Devem prover um espaço personalizado a cada usuário (agenda, fotos, música, vídeos). Sistemas para tratamento de saúde: Onde e como os dados monitorados devem ser armazenados? Como podemos prevenir a perda de dados essenciais? O que é necessário para gerar e propagar alertas? Como podemos garantir a segurança? Como médicos podem prover feedback online?

25 Estilos Arquitetônicos
Como ficou claro, os Sistemas Distribuídos são complexas peças de software, na qual os componentes estão espalhados por diversas máquinas. Estes sistemas devem ser organizados adequadamente definindo dois aspectos: Organização lógica do conjunto de componentes Organização dos componentes fisicamente

26 Estilos Arquitetônicos
Um componente é uma unidade modular com interfaces requeridas e fornecidas bem definidas que é substituível dentro do seu ambiente. Assim sendo, é necessário definir o modo como os componentes estão conectados, dados trocados entre componentes e a maneira como os componentes são configurados em conjunto para formar um sistema, podendo, arquitetonicamente, classificar-se da seguinte forma: Arquiteturas em Camadas Arquiteturas baseadas em objetos Arquiteturas centradas em dados Arquiteturas baseadas em eventos

27 Arquitetura em Camadas
Nesta arquitetura a ideia básica é que um componente na camada Li tenha permissão de chamar componentes na camada subjacente Li-1, como acontece nos modelos de referência das redes de computadores.

28 Arquiteturas baseadas em objetos
A ideia nesta arquitetura é que cada objeto corresponda ao que definimos como componente, e esses componentes sejam conectados por meio de chamada de procedimento (remota). O exemplo mais claro desta arquitetura é o Java RMI. Exemplo: Aplicação distribuída de uma rede de locadoras, onde clientes podem alugar DVDs em diversas filiais.

29 Arquiteturas centradas em dados
Nesta arquitetura os processos se comunicam por meio de um repositório comum. Exemplo: Grande conjunto de aplicações em rede que dependem de um sistema distribuído de arquivos compartilhados, o qual praticamente toda a comunicação ocorre por meio de arquivos: Web.

30 Arquiteturas baseadas em eventos
Nesta arquitetura processos demonstram o interesse por um evento ou conjunto de eventos e esperam pela notificação de qualquer um desses eventos, gerados por um processo notificador. Em outras palavras, o produtor publica uma informação em um gerenciador de eventos (middleware), e os consumidores se inscrevem para receber as informações deste gerenciador (Eventos e notificações). Exemplo: Consultas em vários bancos de dados.

31 Arquitetura organizacional de sistemas distribuídos
Todas as arquiteturas apresentadas anteriormente são viáveis, contudo na prática são vistos de forma mais simplória. É importante compreender são colocados os componentes de software e como é estabelecida a interação entre as peças de software. Em geral são organizadas em três arquiteturas: Arquiteturas Centralizadas: Cliente-Servidor(vídeo sob demanda, terminais bancários, etc) Arquiteturas Descentralizadas: Peer-to-peer - P2P (Chord) Arquiteturas Híbridas: Peer-to-peer - P2P(BitTorrent, PPLive, etc)

32 Arquiteturas Centralizadas
O Modelo Cliente-Servidor é o melhor exemplo, na qual os processos são divididos em dois grupos: (Requisição → Resposta) Servidor: processo que implementa um serviço específico. Cliente: processo que requisita um serviço ao servidor.

33 Arquiteturas Centralizadas
Na arquitetura centralizada há que se considerar as Camadas de Aplicação (estilo arquitetônico). Considerando aplicações cliente-servidor que visam dar suporte ao acesso de usuários a banco de dados, este oferecem três níveis: Nível de interface Nível de processamento Nível de dados Exemplo: Aplicativo de suporte a decisão

34 Arquiteturas Centralizadas
Com a distinção entre três níveis lógicos, é preciso distribuir fisicamente uma aplicação cliente-servidor por várias máquinas: Arquitetura de duas divisões físicas Arquitetura de três divisões físicas

35 Arquiteturas de Duas Divisões Físicas
Parte da interface é dependente de terminal. As aplicações controlam remotamente a apresentação dos dados. Nesse modelo, o software cliente não faz nenhum processamento exceto o necessário para apresentar a interface da aplicação. Para um formulário que precise ser completamente preenchido antes do processamento, o cliente pode verificar a correção e consistência.

36 Arquiteturas de Duas Divisões Físicas
Exemplo: Editor de texto com funções básicas no cliente e ferramentas avançadas no servidor; PC’s conectados por meio de uma rede a um sistema de arquivos distribuídos ou a um banco de dados. Consulta a Web, com browser um cliente pode construir gradativamente uma enorme cache em disco local com as páginas Web mais recentemente consultadas.

37 Arquiteturas de Três Divisões Físicas

38 Arquiteturas Descentralizadas
Clientes e servidores são fisicamente subdivididos em partes logicamente equivalentes, mas cada parte está operando em sua própria porção do conjunto completo de dados, o que equilibra a carga. A Interação entre os processos é simétrica: cada processo agirá como um cliente e um servidor ao mesmo tempo. Exemplo: Sistemas P2P

39 Arquiteturas Descentralizadas
Considerando o overlay e modo de construção destas arquiteturas elas podem constituir Redes Estruturadas com procedimento determinístico para definição do overlay, por exemplo, tabela de hash distribuída (DHT), ou Redes Não-estruturadas onde existem algoritmos aleatórios para construção da rede de sobreposição, gerando um grafo aleatório. Chord: Protocolo para localização de dados em redes P2P

40 Arquiteturas Descentralizadas
Na arquitetura não estruturada as Threads solicitam aos vizinhos a visão parcial (pull) ou que empurram (push) a visão a seus vizinhos. Os algoritmos atualizam a vizinhança a cada determinada quantidade de informação enviada. Um dos problemas esta arquitetura é como encontrar os dados de maneira eficiente. Para isso, muitos sistemas utilizam nós especiais, que possuem um índice de itens de dados – Superpeers.

41 Arquiteturas Descentralizadas
Para melhorar a organização da estrutura os nós são organizados de forma hierárquica em uma rede de superpares.

42 Arquiteturas Híbridas
Esta arquitetura mescla características da arquitetura centralizada e descentralizada. É exemplo desta arquitetura a rede BitTorrent.

43 Arquiteturas Híbridas
Organização da estrutura do BitTorrent

44 Arquiteturas Híbridas
Em suma, os sistemas distribuídos podem ser organizados de diferentes maneiras: Software: Estilos arquitetônicos Físico: Arquitetura de Sistemas

45 Modelos Arquiteturais
Se subdividem em: Cliente-Servidor Objetos Distribuídos

46 Modelos Arquiteturais
Estrutura em termos de componentes especificados separadamente Alocação de componentes em uma rede de computadores Inter-relações de componentes Divisão de responsabilidades entre componentes

47 Lembrando... Terminologia
Servidor: processo que aceita pedidos de outros processos Serviço: provido por um ou mais servidores Plataforma: hardware e sistema operacional Middleware: camada de software que esconde heterogeneidade e fornece um modelo de programação

48 Camadas de software e hardware em Sistemas Distribuídos

49 Arquiteturas Modelo Cliente-Servidor: clientes invocando servidores individuais

50 Arquiteturas Um serviço provido por múltiplos servidores

51 Arquiteturas Servidor Proxy

52 Arquiteturas Peer Processes

53 Arquiteturas Variações do modelo C/S: código/agente móvel
Pedido de cliente resulta no downloading do código applet Cliente interage com o applet

54 Arquiteturas Clientes Magros e Gordos

55 Arquiteturas Arquitetura C/S 3-tier

56 Objetos Distribuídos Uma aplicação distribuída pode ser vista como um conjunto de objetos Objetos: Consistem de dados + código Podem ser clientes, servidores ou ambos Modelar com objetos não implica no uso de programação orientada a objetos Middleware: Object brokers: permitem que objetos se encontrem em um sistema distribuído, e interajam uns com outros Object services: permitem criar, nomear, mover, copiar, armazenar, deletar, restaurar e gerenciar objetos

57 Arquitetura de Objetos Distribuídos

58 Lembretes... O uso de objetos distribuídos melhora a capacidade de manutenção e adaptabilidade de um sistema Arquiteturas cliente-servidor fornecem uma infraestrutura versátil que suporta a inserção de novas tecnologias mais rapidamente Arquiteturas de software cliente-servidor têm sido usadas desde os anos 80, apresentam maturidade...

59 Lembretes... Um número de tradeoffs deve ser considerado para selecionar a arquitetura cliente-servidor apropriada, incluindo: O crescimento potencial do número de usuários Custo Homogeneidade do ambiente computacional futuro e do momento


Carregar ppt "Sistemas Distribuídos 5º Semestre Aula 3 e 4 Prof"

Apresentações semelhantes


Anúncios Google