Bibliografia Sistemas Distribuídos
Hermes Senger Aula 01
Tanenbaum, A.S. and Steen, M.V.: Distributed Systems: principles and paradigms. Prentice Hall, 2002 Emmerich, W.: Engineering Distributed Objects. John Wiley & Sons, 2000.
2
Conteúdo programático
Evolução histórica (1)
Introdução a sistemas distribuídos Elementos de um sistema distribuído Modelo cliente-servidor Arquiteturas de sistemas distribuídos
Sistemas centralizados (mainframes)
3
tipicamente formado por uma unidade de processamento (CPU), memória, periféricos e terminais de acesso. tecnologia dominante até a metade dos anos 80
4
Evolução histórica (2)
Evolução histórica (3)
A partir de meados da década de 80 um número de acontecimentos contribuíram para a popularização das redes de computadores e o desenvolvimento de sistemas distribuídos, entre eles:
barateamento dos custos de comunicação necessidade de compartilhar recursos processos de padronização eficientes popularização da Internet (WWW)
surgimento de computadores pessoais aumento na capacidade de processamento
Rede B
Rede A 5
6
Exemplo SD (1)
Exemplo SD (2)
Governo eletrônico
Sistema de vídeo sob demanda
Vídeo locadora
Servidor de vídeo
¡
¡ Internet
b ¡ Cliente1 7
b ¡ Cliente2
b ¡ Clienten 8
Exemplo SD (3)
Infraestrutura de TI de um banco Central de processamento
Agência bancária
b ¡ Funcionário Casa/Trabalho
Internet
b ¡ Cliente
Outros exemplos???
Terminal 24h
b ¡ Cliente
9
10
Definição SD (1)
O que é um sistema distribuído?
Sistema distribuído (Tanenbaum)
Sistema distribuído (Emmerich)
11
coleção de computadores independentes que aparentam ser um único sistema coerente para seus usuários um sistema distribuído é formado por componentes em máquinas de uma rede que interagem através de um middleware de forma a aparentar como uma facilidade integrada 12
Definição SD (2)
Sistema
Elementos de um SD Computador hospedeiro (host)
um sistema é um conjunto integrado de entidades funcionais interagentes e interdependentes
Sistema distribuído (SD)
um sistema distribuído é um sistema cujas entidades funcionais são executadas em diferentes computadores de uma rede de forma transparente para seus usuários
EF1
EFn
Sistema Operacional Hardware Hospedeiro
13
Interação entre entidades funcionais (1)
computador de uma rede que hospeda uma ou mais entidades funcionais de um SD inclui todos os elementos operacionais, tais como hardware, sistema operacional, etc.
14
Interação entre entidades funcionais (2)
As diferentes entidades funcionais de um SD precisam interagir umas com as outras, i.e., precisam acessar os serviços umas das outras a fim de prover um serviço integrado a seus usuários.
Entidades funcionais podem interagir usando os recursos de rede do sistema operacional problema: baixo nível de abstração provido por esses recursos, o que torna este processo muito complexo para a maioria das aplicações ⇒ solução: adoção de um middleware ⇒
EF2 EF1
EF3
15
16
Definição Middleware (1)
Middleware (Tanenbaum)
O que é um middleware?
camada de software situado entre aplicações e o sistema operacional de rede que oferece um grau maior de abstração
17
Definição Middleware (2)
Definição Middleware (3)
Middleware (Emmerich)
camada entre o sistema operacional de rede e a aplicação que procura solucionar problemas de heterogeneidade e distribuição EF1
EFn
EF1
EFn
Middleware
Middleware
Sistema Operacional
Sistema Operacional
Hardware Hospedeiro1
Rede
18
Middleware é uma camada de software situada entre as camadas de rede (SO) e aplicação que provê um conjunto de facilidades (serviços) para o desenvolvimento de sistemas distribuídos
Hardware Hospedeiro2
19
20
Sistemas operacionais distribuídos (1)
Sistemas operacionais distribuídos (2)
Máquinas contém kernel para a gerência local dos recursos
Não há mecanismos de memória compartilhada
21
Sistemas operacionais de rede (1)
comunicação através de passagem de mensagens
SO como máquina virtual que suporta e execução paralela e concorrente de várias tarefas
22
Sistemas operacionais de rede (2)
Máquinas e sistemas operacionais heterogêneos
e.g.: memória, CPU, disco, etc em geral, hardware é homogêneo
conexão através de rede (serviços de rede)
SO que permite a execução local de serviços por parte de clientes remotos
exemplos de serviços incluem remote login, remote copy, etc 23
24
Modelo cliente-servidor (1)
Modelo cliente-servidor (2)
Um SD é estruturado em termos de um conjunto de entidades funcionais interagentes e interdependentes
Ambiente Sistema
Cada entidade funcional de um SD provê uma dada funcionalidade (serviço) que pode ser acessada por outra entidade funcional do SD ou usuários do SD como um todo Dois papéis:
cliente e servidor
25
Modelo cliente-servidor (3)
Modelo cliente-servidor (4)
Entidade cliente
26
entidade que solicita a execução de um dado serviço a outra entidade e.g., processo cliente, objeto cliente, etc.
Papéis não são exclusivos, i.e., uma mesma entidade pode atuar tanto como cliente quanto servidor
Entidade servidora
entidade que recebe solicitações de execução de serviço por parte de entidades cliente e.g., processo servidor, objeto servidor
27
cliente
servidor
servidor
cliente
28
Níveis de funcionalidade (1)
Níveis de funcionalidade (2)
Diferentes níveis de funcionalidade (também chamados de tiers) podem ser identificados em um SD:
Nível de interface
nível de interface nível de processamento nível de dados
provê a interface (gráfica) com os usuários do sistema normalmente implementado em máquinas cliente (máquinas do usuário)
29
Níveis de funcionalidade (3)
Níveis de funcionalidade (4)
Nível de processamento
30
provê a funcionalidade básica do sistema pode tanto ser implementado em máquinas clientes (máquinas do usuário) ou em máquinas servidoras
31
Nível de dados
provê a manipulação das informações que são mantidas de forma persistente normalmente implementado em máquinas servidoras
32
Níveis de funcionalidade (5)
Níveis de funcionalidade (6)
Exemplo: mecanismo de busca
33
34