universidadeprofessor.pucgoias.edu.br/sitedocente/admin/arquivos...serviços de sistemas...
TRANSCRIPT
![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](https://reader036.vdocuments.mx/reader036/viewer/2022090600/604d92221dfa8e0a6963abf3/html5/thumbnails/1.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022090600/604d92221dfa8e0a6963abf3/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022090600/604d92221dfa8e0a6963abf3/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022090600/604d92221dfa8e0a6963abf3/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022090600/604d92221dfa8e0a6963abf3/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022090600/604d92221dfa8e0a6963abf3/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022090600/604d92221dfa8e0a6963abf3/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022090600/604d92221dfa8e0a6963abf3/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022090600/604d92221dfa8e0a6963abf3/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022090600/604d92221dfa8e0a6963abf3/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022090600/604d92221dfa8e0a6963abf3/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022090600/604d92221dfa8e0a6963abf3/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022090600/604d92221dfa8e0a6963abf3/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022090600/604d92221dfa8e0a6963abf3/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022090600/604d92221dfa8e0a6963abf3/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022090600/604d92221dfa8e0a6963abf3/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022090600/604d92221dfa8e0a6963abf3/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022090600/604d92221dfa8e0a6963abf3/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022090600/604d92221dfa8e0a6963abf3/html5/thumbnails/19.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022090600/604d92221dfa8e0a6963abf3/html5/thumbnails/20.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022090600/604d92221dfa8e0a6963abf3/html5/thumbnails/21.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022090600/604d92221dfa8e0a6963abf3/html5/thumbnails/22.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022090600/604d92221dfa8e0a6963abf3/html5/thumbnails/23.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022090600/604d92221dfa8e0a6963abf3/html5/thumbnails/24.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022090600/604d92221dfa8e0a6963abf3/html5/thumbnails/25.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022090600/604d92221dfa8e0a6963abf3/html5/thumbnails/26.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022090600/604d92221dfa8e0a6963abf3/html5/thumbnails/27.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022090600/604d92221dfa8e0a6963abf3/html5/thumbnails/28.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022090600/604d92221dfa8e0a6963abf3/html5/thumbnails/29.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022090600/604d92221dfa8e0a6963abf3/html5/thumbnails/30.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022090600/604d92221dfa8e0a6963abf3/html5/thumbnails/31.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022090600/604d92221dfa8e0a6963abf3/html5/thumbnails/32.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022090600/604d92221dfa8e0a6963abf3/html5/thumbnails/33.jpg)
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