UNIVERSIDADEprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...Serviços de sistemas...

33
UNIVERSIDADE UNIVERSIDADE Computação Computação Aula 03-04: Modelos de Sistemas Distribuídos Aula 03-04: Modelos de Sistemas Distribuídos 2o. Semestre / 2014 Prof. Jesus

Transcript of UNIVERSIDADEprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...Serviços de sistemas...

Page 1: UNIVERSIDADEprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...Serviços de sistemas distribuídos Parte de um sistema de computação que encapsula e gerencia uma coleção de

UNIVERSIDADE UNIVERSIDADE

ComputaçãoComputação

Aula 03-04: Modelos de Sistemas DistribuídosAula 03-04: Modelos de Sistemas Distribuídos

2o. Semestre / 2014

Prof. Jesus

Page 2: UNIVERSIDADEprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...Serviços de sistemas distribuídos Parte de um sistema de computação que encapsula e gerencia uma coleção de

2

Principais questões no projeto de um Principais questões no projeto de um sistema distribuído (SD)sistema distribuído (SD)

● Questão de acesso (como sist. será acessado)

– Grandes variações na carga de trabalho

– Componente desconectado na maior parte do tempo (se conecta algumas vezes)

– Componentes necessitam de recursos tais como largura de banda, processamento, espaço em disco.

● Diferentes tipos de ambiente: o SD deve lidar com diferentes tipos de hardware, sistemas operacionais e redes

● Problemas internos: ausência de relógio interno, dados conflitantes, falhas no sistema

● Segurança: proteção contra ataques externos.

Page 3: UNIVERSIDADEprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...Serviços de sistemas distribuídos Parte de um sistema de computação que encapsula e gerencia uma coleção de

3

Principais questões no projeto de um Principais questões no projeto de um sistema distribuído (SD)sistema distribuído (SD)

Para lidar com estas e outras questões são apresentados os seguintes modelos:

● Modelo Arquitetural

– define como os componentes de um SD interagem entre si e estão distribuídos pela rede.

● Modelo Fundamental

– define os principais problemas a serem resolvidos para que um SD funcione corretamente sendo confiável e seguro

Page 4: UNIVERSIDADEprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...Serviços de sistemas distribuídos Parte de um sistema de computação que encapsula e gerencia uma coleção de

4

Principais questões no projeto de um Principais questões no projeto de um sistema distribuído (SD)sistema distribuído (SD)

Modelo fundamental se dividem em três principais tipos:

● Modelo de interação

– Lida com questões de desempenho e limites de tempo.

● Modelo de falhas

– Busca definir as principais falhas que podem ocorrer em um sistema e fornecer mecanismos de comunicação confiáveis

● Modelo de segurança

– Define as principais ameaças para um sistema e como lidar com elas

Page 5: UNIVERSIDADEprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...Serviços de sistemas distribuídos Parte de um sistema de computação que encapsula e gerencia uma coleção de

5

Modelos Arquiteturais de Sistemas Modelos Arquiteturais de Sistemas DistribuídosDistribuídos

● Tornar um SD confiável, gerenciável, adaptável

● Modelo arquitetural simplifica e abstrai as funções de componentes individuais considerando:

– O posicionamento deste componentes dentro da rede

– O relacionamento entre estes componentes

● Classificar processos como de servidor, de cliente ou de peer

– Identificar responsabilidades de cada processo

– Obter desempenho e confiabilidade

Page 6: UNIVERSIDADEprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...Serviços de sistemas distribuídos Parte de um sistema de computação que encapsula e gerencia uma coleção de

6

Modelos Arquiteturais de Sistemas Modelos Arquiteturais de Sistemas DistribuídosDistribuídos

● Esta classificação (cliente, servidor, peer) é importante pois permite:

– Identificar a função de cada processo e sua importância para o sistema

– Tornar o sistema mais organizado e eficiente

● Sistemas mais dinâmicos que permitem

– Mover um código de um processo para outro

– Disposivitos computacionais sejam adicionados ou retirado de um sistema distribuído de forma transparente

Page 7: UNIVERSIDADEprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...Serviços de sistemas distribuídos Parte de um sistema de computação que encapsula e gerencia uma coleção de

7

Arquitetura de softwareArquitetura de software

● O conjunto de serviços disponíveis para processos distribuídos localmente ou remotamente

● Serviços são responsáveis pelo gerenciamento de recursos

● Alguns destes serviços são fornecidos por uma plataforma

Page 8: UNIVERSIDADEprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...Serviços de sistemas distribuídos Parte de um sistema de computação que encapsula e gerencia uma coleção de

8

PlataformaPlataforma

● Camadas de hardware e software mais inferiores para sistemas distribuídos

● Fornecem serviços para as camadas superiores– Facilitar a coordenação e a comunicação entre processos

● Possuem diferentes tipos de implementação– Intel x86/Windows, Intel x64/Windows,

– PowerPC/Mac OS X

Page 9: UNIVERSIDADEprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...Serviços de sistemas distribuídos Parte de um sistema de computação que encapsula e gerencia uma coleção de

9

Camadas de software e hardware em Camadas de software e hardware em sistemas distribuídossistemas distribuídos

Application, Services

Middleware

Operating System

Computer and network hardware

Plataform(physical

infrastructure)

Page 10: UNIVERSIDADEprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...Serviços de sistemas distribuídos Parte de um sistema de computação que encapsula e gerencia uma coleção de

10

Serviços de sistemas distribuídosServiços de sistemas distribuídos

● Parte de um sistema de computação que encapsula e gerencia uma coleção de recursos relacionados

● Provê uma interface que permite a aplicações e usuários terem acesso às funcionalidades dos recursos

● Um serviço pode ser provido por um ou vários servidores

● Ex.: serviço de arquivos, serviço de multimída, e-mail, etc

Page 11: UNIVERSIDADEprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...Serviços de sistemas distribuídos Parte de um sistema de computação que encapsula e gerencia uma coleção de

11

Aplicação distribuídaAplicação distribuída

● É uma aplicação que consiste em 2 ou mais processos que executam em diferentes processadores que não compartilham memória

● Corolário: os processos de uma aplicação distribuída comunicam entre si através da troca de mensagens

● Ex.: Aplicações de rede tais como FTP, Web(HTTP), sistemas P2P (BitTorrent), computação em grade, computação em nuvem.

..

Page 12: UNIVERSIDADEprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...Serviços de sistemas distribuídos Parte de um sistema de computação que encapsula e gerencia uma coleção de

12

Middleware de sistemas distribuídosMiddleware de sistemas distribuídos

● Camada de software que tem por finalidade– mascarar a heterogeneidade da plataforma

subjacente (hardware, SO, linguagem)

– resolver demais problemas oriundos da distribuição de forma transparente

– prover um modelo de programação conveniente para o programador de aplicações

● ex.: abstrações de alto nível para comunicação remota

– Prover serviços de infra-estrutura padronizados para uso no desenvolvimento de aplicações

● ex.: resolução de nomes, segurança, transações etc.

Page 13: UNIVERSIDADEprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...Serviços de sistemas distribuídos Parte de um sistema de computação que encapsula e gerencia uma coleção de

13

O que constitui uma plataforma de O que constitui uma plataforma de middlewaremiddleware

● Processos, objetos ou componentes localizados nos computadores do sistema distribuído

● Interagem e cooperam entre si para prover o suporte de comunicação e compartilhamento de recursos necessário às aplicações

● Fornece as primitivas básicas para construção de componentes de software que funcionam cooperativamente em um sistema distribuído

● Plataforma de alto nível para o desenvolvimento de aplicações

Page 14: UNIVERSIDADEprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...Serviços de sistemas distribuídos Parte de um sistema de computação que encapsula e gerencia uma coleção de

14

Alguns modelos de programação para Alguns modelos de programação para comunicação remotacomunicação remota

● Plataformas de middleware fornecem suporte para:

– Chamada de métodos remotos

– Comunicação de grupo

– Notificação de eventos

– Espaços de tuplas

– Fluxos de mídia

Page 15: UNIVERSIDADEprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...Serviços de sistemas distribuídos Parte de um sistema de computação que encapsula e gerencia uma coleção de

15

Exemplos de middlewareExemplos de middleware

● CORBA

● Java RMI e Jini

● Web services

● DCOM

● .Net

● RM-ODP

● Outros tipos de middleware?

Page 16: UNIVERSIDADEprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...Serviços de sistemas distribuídos Parte de um sistema de computação que encapsula e gerencia uma coleção de

16

Middleware: LimitaçõesMiddleware: Limitações

● Nem todas as decisões sobre questões de distribuição podem ser embutidas no middleware

● Algumas requerem conhecimento específico no nível das aplicações

– Ex.: tratamento de falhas pode depender da semântica da aplicação

● A implementação destas questões no middleware pode comprometer a corretude e a confiabilidade

Page 17: UNIVERSIDADEprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...Serviços de sistemas distribuídos Parte de um sistema de computação que encapsula e gerencia uma coleção de

17

Arquitetura de sistemas distribuídosArquitetura de sistemas distribuídos

● Arquitetura: estrutura de um sistema em termos de componentes especificados separadamente– alocação dos componentes na rede

– inter-relacionamento dos componentes

● Principais modelos (ou estilos) de arquitetura:– Cliente-servidor (processos ou objetos)

– Peer-to-peer

Page 18: UNIVERSIDADEprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...Serviços de sistemas distribuídos Parte de um sistema de computação que encapsula e gerencia uma coleção de

18

O modelo cliente-servidorO modelo cliente-servidor

Server

Client

Client

invocation

result

Serverinvocation

result

Process:Key:

Computer:

Page 19: UNIVERSIDADEprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...Serviços de sistemas distribuídos Parte de um sistema de computação que encapsula e gerencia uma coleção de

19

O modelo cliente-servidorO modelo cliente-servidor

● O modelo mais comum

● Os processos podem ser divididos em dois tipos, de acordo com o seu modo de operação

– Cliente: envia pedido, recebe resposta

– Servidor: recebe pedido; processa pedido; envia resposta

● Um servidor pode se tornar cliente. Ex.: Mecanismos de busca, servidor web acessando banco de dados.

● Problemas

– Escalabilidade e tolerância a falhas

Page 20: UNIVERSIDADEprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...Serviços de sistemas distribuídos Parte de um sistema de computação que encapsula e gerencia uma coleção de

20

Variações do modelo cliente-servidorVariações do modelo cliente-servidor

● Múltiplos servidores provendo um mesmo serviço

● Proxies de serviço● Código móvel● Clientes leves● Dispositivos móveis e configuração espontânea

Page 21: UNIVERSIDADEprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...Serviços de sistemas distribuídos Parte de um sistema de computação que encapsula e gerencia uma coleção de

21

Um mesmo serviço provido por múltiplos Um mesmo serviço provido por múltiplos servidoresservidores

Server

Server

Server

Service

Client

Client

Page 22: UNIVERSIDADEprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...Serviços de sistemas distribuídos Parte de um sistema de computação que encapsula e gerencia uma coleção de

22

Um mesmo serviço provido por múltiplos Um mesmo serviço provido por múltiplos servidoresservidores

● Serviço pode ser implementado por várias máquinas em diferentes pontos da rede

● Servidores podem interagir entre si para oferecer uma visão global consistente do serviço para os clientes

● Particionamento – distribuição física dos recursos entre os vários servidores

– Maior facilidade de gerência e maior escalabilidade

– Ex.: Clusters de servidores

● Replicação – manutenção de cópias do mesmo recurso lógico em dois ou mais servidores

– Maior desempenho e disponibilidade

– Ex.: Base de dados do Google, Serviço de nomes da Sun (NIS/NFS)

Page 23: UNIVERSIDADEprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...Serviços de sistemas distribuídos Parte de um sistema de computação que encapsula e gerencia uma coleção de

23

Servidores de Servidores de proxyproxy e servidores com e servidores com CacheCache

Client

Proxy

Web

server

Web

server

serverClient

Page 24: UNIVERSIDADEprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...Serviços de sistemas distribuídos Parte de um sistema de computação que encapsula e gerencia uma coleção de

24

Servidores de Servidores de cachecache

● Repositório de cópias de objetos recentemente utilizados que está fisicamente mais próximo do que os objetos originais

● Principais desafios:

– Política de atualização (controla a entrada e saída de objetos no cache)

– Localização física (nos clientes ou em um ou mais servidores proxy)

Page 25: UNIVERSIDADEprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...Serviços de sistemas distribuídos Parte de um sistema de computação que encapsula e gerencia uma coleção de

25

Servidores de ProxyServidores de Proxy

● Processo compartilhado por vários clientes que serve como cache para os recursos disponibilizados por outros servidores remotos

● Principais funções:

– Reduzir o tempo de acesso

– Aumentar a disponibilidade

– Também utilizado para proteção, filtragem, adaptação, etc.

Page 26: UNIVERSIDADEprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...Serviços de sistemas distribuídos Parte de um sistema de computação que encapsula e gerencia uma coleção de

26

Código MóvelCódigo Móvel

a) client request results in the downloading of applet code

Web server

ClientWeb serverApplet

Applet code

Client

b) client interacts with the applet

Page 27: UNIVERSIDADEprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...Serviços de sistemas distribuídos Parte de um sistema de computação que encapsula e gerencia uma coleção de

27

Código MóvelCódigo Móvel

● Serviços oferecidos na forma de um código (programa) específico que deve ser descarregado do servidor

– Aplicações clientes executam e interagem localmente com o código móvel recebido

– Dependendo do serviço, código móvel pode interagir com um ou mais servidores em nome da aplicação cliente

– Ex.: Java applets, Tcl scripts

● Principais benefícios:

– Redução do tempo de resposta para aplicações interativas

– Maior facilidade de customização e atualização da interface de acesso ao serviço

– Possibilidade de estender dinamicamente as funcionalidades das aplicações clientes

Page 28: UNIVERSIDADEprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...Serviços de sistemas distribuídos Parte de um sistema de computação que encapsula e gerencia uma coleção de

28

Agentes móveisAgentes móveis

● Programas (com código e dados) que se descola pela rede cumprindo tarefas

– Coletando informações da rede (instalar softwares em uma rede ou comparar preços em um site)

– Redução do custo de comunicação e tempo

– Substitui chamadas remotas por locais

● Podem representar um problema de segurança para o ambiente em que estão ou para si mesmos

● Podem não ser muito eficientes por não ter acessos a recursos sendo melhor utilizar outros meios

Page 29: UNIVERSIDADEprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...Serviços de sistemas distribuídos Parte de um sistema de computação que encapsula e gerencia uma coleção de

29

Clientes leves e servidores de computaçãoClientes leves e servidores de computação

● Aplicativos e S.O. armazenados localmente exigem conhecimento técnico que muitos usuários não possuem

● Clientes leves: onde os principais aplicativos são mantidos em servidores

● Processamento de programas, gerenciamento de arquivos, armazenamentos de dados são feitos remotamente

Page 30: UNIVERSIDADEprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...Serviços de sistemas distribuídos Parte de um sistema de computação que encapsula e gerencia uma coleção de

30

Clientes leves e servidores de computaçãoClientes leves e servidores de computação

ThinClient

ApplicationProcess

Network computer or PCCompute server

network

Page 31: UNIVERSIDADEprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...Serviços de sistemas distribuídos Parte de um sistema de computação que encapsula e gerencia uma coleção de

31

Clientes leves e servidores de computaçãoClientes leves e servidores de computação

● Camada de software com suporte para interação local com o usuário, e que executa aplicações e solicita serviços exclusivamente a partir de servidores remotos

– Ex.: XWindows (Unix/Linux), WinFrame (WindowsNT), VNC

● A favor:

– Baixo custo de hardware e software para os clientes

– Maior facilidade de gerência e manutenção das aplicações

● Contra:

– Alto custo de hardware e software para os servidores

– Centralização da carga de trabalho e do tráfego de mensagens

– Risco de sobrecarga dos servidores e/ou da rede

– Baixo desempenho para aplicações altamente interativas

Page 32: UNIVERSIDADEprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...Serviços de sistemas distribuídos Parte de um sistema de computação que encapsula e gerencia uma coleção de

32

Dispositivos móveis e redes espontâneasDispositivos móveis e redes espontâneas

Internet

gateway

PDA

service

Music service

serviceDiscovery

Alarm

Camera

Guestsdevices

LaptopTV/PC

Hotel wireless

network

Page 33: UNIVERSIDADEprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...Serviços de sistemas distribuídos Parte de um sistema de computação que encapsula e gerencia uma coleção de

33

Dispositivos móveis e redes espontâneasDispositivos móveis e redes espontâneas

● Formado por aplicações clientes que executam em dispositivos móveis (PDAs, laptops, celulares, etc) e acessam servidores da rede fixa através de uma infraestrutura de comunicação sem fio

● Principais benefícios:

– Fácil conexão dos dispositivos a uma nova rede local. Inclusão de novos clientes sem a necessidade de configuração explícita

– Fácil integração dos clientes aos serviços locais. Descoberta automática de novos serviços (sem intervenção do usuário)

● Desafios de projeto:

– Identificação de recursos independente de sua localização física

– Limitações de processamento, tempo de conexão e largura de banda

– Privacidade e segurança