Buscar

ARQUITETURA DE SISTEMAS DISTRIBUÍDOS

Prévia do material em texto

Arquitetura de Sistemas Distribuídos
Introdução a
Sistemas Distribuídos
 
 Arquitetura de Sistemas Distribuídos
Definição:
● "Um sistema distribuído é uma coleção de 
computadores autônomos conectados por 
uma rede e equipados com um sistema de 
software distribuído."
● "Um sistema distribuído é uma coleção de 
computadores independentes que aparenta 
ao usuário ser um computador único."
 
 Arquitetura de Sistemas Distribuídos
Outra definição de Sistema Distribuído
● "Você sabe que tem um sistema distribuído 
quando a falha de um computador do qual 
você nunca ouviu falar faz com que você 
pare completamente de trabalhar." [Leslie 
Lamport]
 
 Arquitetura de Sistemas Distribuídos
Outra definição de Sistema Distribuído
● "Você sabe que tem um sistema distribuído 
quando a falha de um computador do qual 
você nunca ouviu falar faz com que você 
pare completamente de trabalhar." [Leslie 
Lamport]
 
 Arquitetura de Sistemas Distribuídos
Avanços tecnológicos
● Invenção de redes de computadores de alta 
velocidade (anos 70):
– Redes locais (Local Area Network - LAN)
– Redes de longa distância (Wide Area 
Network – WAN)
● Desenvolvimento de microprocessadores 
potentes (anos 80).
 
 Arquitetura de Sistemas Distribuídos
Considerações
● É 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 e está apenas 
começando a se desenvolver.
 
 Arquitetura de Sistemas Distribuídos
Exemplos de SD
● Rede local de computadores de uma 
universidade ou companhia
● Rede local de computadores em uma fábrica
● Um grande banco com muitas agências, 
cada qual com um computadores e caixas 
automáticas
 
 Arquitetura de Sistemas Distribuídos
Exemplos de SD (continuação)
● Sistema de reserva de passagens aéreas
● Sistema de controle de estoque, vendas e 
entregas numa cadeia de lojas
● Serviços da Internet: WWW
● Sistemas de acesso a recursos de 
multimídia e de conferência
 
 Arquitetura de Sistemas Distribuídos
Vantagens de SD sobre SC
● Melhor relação custo/benefício
● Capacidade de processamento além dos 
limites práticos de SC 
● Maior confiabilidade e disponibilidade
● Crescimento gradativo da capacidade de 
processamento
 
 Arquitetura de Sistemas Distribuídos
Vantagens de SD sobre PCs independentes
● Compartilhamento de dados entre usuários
● Compartilhamento de recursos de hardware 
e software
● Comunicação entre pessoas
● Flexibilidade na distribuição de tarefas de 
acordo com as aplicações
 
 Arquitetura de Sistemas Distribuídos
Desvantagens de SD 
● Falta de software adequado
● Falhas e saturação da rede de comunicação 
podem eliminar as vantagens de SD
● Segurança pode ser comprometida: fácil 
acesso a dados e recursos reservados
 
 Arquitetura de Sistemas Distribuídos
Sistemas operacionais de rede
● Estações de trabalho conectadas via LAN
● Cada estação tem seu próprio sistema 
operacional
● Ferramentas para login remoto e cópia de 
arquivos entre estações
● Servidores de arquivos e ferramentas para 
causar aparência de arquivo local
 
 Arquitetura de Sistemas Distribuídos
Sistemas distribuídos autênticos
● A rede toda tem aparência de ser um único 
sistema timesharing: virtual uniprocessor, 
single-system image
● Mecanismo global para comunicação entre 
processos
● Gerenciamento de processos homogêneo
● Sistema de arquivos homogêneo
 
 Arquitetura de Sistemas Distribuídos
Sistemas timesharing para multiprocessadores
● Fila única de processos prontos para 
execução: melhor distribuição de carga
● CPUs especializadas em: executar 
processos, controlar periféricos, executar 
sistema operacional (gerenciar a memória 
global)
● Sistema de arquivos comporta-se de 
maneira semelhante a um SC
 
 Arquitetura de Sistemas Distribuídos
Comparação de SW para SD
SO de rede SO
distribuído
SO para
multiproc.
Parece um SC Não Sim Sim
Mesmo SO Não Sim Sim
Cópias de SO N N 1
Comunicação Arquivos
compartilhados
Mensagens Memória
compartilhada
Protocolos
comuns
Sim Sim Não
Fila única de
execução
Não Não Sim
 
 Arquitetura de Sistemas Distribuídos
Características básicas de SD
● Compartilhamento de recursos
● Extensibilidade (openness)
● Concorrência
● Escalabilidade (crescimento gradativo 
suave)
● Tolerância a falhas
● Transparência
 
 Arquitetura de Sistemas Distribuídos
Compartilhamento de recursos
● Componentes de hardware: discos, 
impressoras, ...
● Componentes de software: arquivos, bancos 
de dados, ...
● Modelos básicos:
– Modelo cliente-servidor
– Modelo baseado em objetos
 
 Arquitetura de Sistemas Distribuídos
Extensibilidade
● Extensões de hardware: periféricos, 
memória, interfaces de comunicação, ...
● Extensões de software: funções de SO, 
protocolos de comunicação, ...
● Interfaces chaves são públicas (system calls)
● Mecanismo uniforme de comunicação entre 
processos
 
 Arquitetura de Sistemas Distribuídos
Concorrência
● Mais de um processo em execução a cada 
instante:
– Atividades separadas de usuários
– Independência de recursos
– Localização de processos servidores em 
computadores distintos
● Acesso concorrente a recursos 
compartilhados requer sincronização
 
 Arquitetura de Sistemas Distribuídos
Escalabilidade
● Quantidade de trabalho envolvido no 
processamento de qualquer requisição de 
acesso a um recurso compartilhado 
independe do tamanho da rede
● Técnicas: replicação, caching, servidores 
múltiplos
 
 Arquitetura de Sistemas Distribuídos
Tolerância a falhas
● Falhas de hardware e software (em CPUs e 
redes): programas param ou produzem 
resultados errados
● Abordagens:
– Redundância de hardware (Ex: banco de 
dados replicado em diversos servidores)
– Recuperação por software: manter dados 
permanentes sempre consistentes
 
 Arquitetura de Sistemas Distribuídos
Transparência
● Esconder do usuário e do programador de 
aplicações a separação de componenentes 
em um sistema distribuído, tal que este seja 
visto como um sistema centralizado
● Formas de transparência: acesso, 
localização, concorrência, replicação, falha, 
migração, desempenho e escala
 
 Arquitetura de Sistemas Distribuídos
Transparência de acesso
Operações de acesso a objetos de
informação são idênticas para objetos
locais e remotos
Exemplo:
Operação de envio de uma mensagem
eletrônica especificando o destinatário
através de seu endereço Internet
 
 Arquitetura de Sistemas Distribuídos
Transparência de localização
Acesso a um objeto ocorre sem que seja
necessário o conhecimento de sua
localização
Exemplo:
Operação de envio de uma mensagem
eletrônica especificando o destinatário
através de seu endereço Internet
 
 Arquitetura de Sistemas Distribuídos
Outras formas de transprência
● Concorrência: processos operam concorrentemente usando 
objetos de informação comuns sem interferência entre eles.
● Replicação: várias instâncias de um objeto de informação são 
usadas sem requerer o conhecimento das réplicas pelos 
usuários e aplicações.
● Falha: mascaramento de falhas de hardware e software.
● Migração: movimento de objetos de informação dentro do 
sistema não afeta a operação de usuários e aplicações.
● Desempenho: reconfiguração do sistema para melhorar 
desempenhoconforme a carga varia.
● Escala: o sistema e as aplicações podem expandir em escala 
sem requerer modificações na estrutura do sistema ou nos 
algoritmos das aplicações.
 
 Arquitetura de Sistemas Distribuídos
Modelo Cliente-Servidor
 Arquitetura de Sistemas Distribuídos
 Conceitos:
“É uma arquitetura onde o processamento da informação é 
dividido em módulos ou processos distintos. Um processo é 
responsável pela manutenção da informação (Servidor), 
enquanto que outro é responsável pela obtenção dos dados 
(Cliente)”. BATTISTI, (2001, pág. 38). 
 Arquitetura de Sistemas Distribuídos
 Estrutura Básica
Em uma rede de computadores existem uma ou mais máquinas 
que atuam como servidores, disponibilizando recursos para as 
demais máquinas, as quais atuam como clientes.
Cliente Servidor
REQUISITA
 RESPONDE
Executa
 Arquitetura de Sistemas Distribuídos
Estrutura Básica
Temos servidores para arquivos, banco de dados, e outras 
funções, tais como: servidores de impressão, servidores web, 
etc.
Servidor de 
Arquivos
Banco 
de Dados
Outros 
Serviços
Clientes
 Arquitetura de Sistemas Distribuídos
ARQUITETURA CLIENTE/SERVIDOR
Onde:
Servidores: são equipamentos com maior poder de 
processamento e armazenamento;
Clientes: geralmente microcomputadores PCs ligados 
em rede.
 Arquitetura de Sistemas Distribuídos
 Principais características:
Cliente:
Inicia e termina as conversações com os Servidores, solicitando 
serviços distribuídos;
 Não se comunica com outros Clientes;
 Normalmente responsável pela entrada e saída de dados e 
comunicação com o usuário;
 Torna a rede ‘transparente’ ao usuário;
 Hardware: pode ser um micro simples;
 Software: tem início e fim definido.
ARQUITETURA CLIENTE/SERVIDOR
 Arquitetura de Sistemas Distribuídos
Principais características:
Servidor:
• Execução contínua;
• Recebe e responde a solicitações dos Clientes;
• Não se comunica com outros Servidores;
• Presta serviços distribuídos;
• Atende a diversos Clientes simultaneamente;
• Hardware; exige máquinas mais robustas, com grande 
capacidade de processamento;
• Software: processo sempre em execução, aguardando ser 
chamado pelo Cliente.
ARQUITETURA CLIENTE/SERVIDOR
 Arquitetura de Sistemas Distribuídos
Maiframes são computadores de grande porte que fazem 
processamento de dados de forma centralizada: modelo que até 
os anos 90 reinava absoluto.
Principais Desvantagens do modelo maiframe:
 Serviços e recursos reduzidos;
 Centralização de dados e recursos de processamento;
 Inflexibilidade;
 Inversatibilidade;
 Custos elevados.
 Arquitetura de Sistemas Distribuídos
Aplicações em Duas Camadas:
Banco de Dados
Clientes
 Arquitetura de Sistemas Distribuídos
Aplicações em Duas Camadas:
Foram utilizadas no início da implantação do modelo Cliente/ 
Servidor. Aqui, a aplicação Cliente responde pelas seguintes 
funções:.
 Apresentação: 
O código que gera a interface visível do programa faz parte da 
aplicação Cliente. Todos os formulários, menus e demais 
elementos visuais nele estão contidos. Então uma alteração na 
interface do programa requer a geração de uma nova versão 
para todos os computadores;
 Arquitetura de Sistemas Distribuídos
 Lógica do Negócio: 
 São as regras que definem como os dados serão acessados e 
processados. Toda a Lógica do Negócio fica no Cliente. Quando 
o programa Cliente é instalado, são instaladas todas as regras de 
acesso ao banco de dados.
 É necessária uma nova versão do programa cada vez que 
alterações ocorrerem e as regras mudarem. Também é 
necessário que todos os computadores que estejam com a 
versão anterior recebam a nova, mesmo que sejam centenas ou 
milhares de hosts.
 Arquitetura de Sistemas Distribuídos
Aplicações em Três Camadas:
Servidor de Banco de 
Dados
Servidor de 
Aplicações
Clientes
 Arquitetura de Sistemas Distribuídos
Evolução:
Retira as Regras do Negócio do cliente e as centraliza em um 
determinado ponto, o qual é chamado de servidor de aplicações:
Servidor de 
Aplicações
Servidor de Banco 
de Dados
O acesso ao Banco de 
Dados é feito através
das regras contidas no
Servidor de Aplicações: 
facilidade de atualização
das mesmas, pois estão 
centralizadas em um 
único ponto.
 Arquitetura de Sistemas Distribuídos
Características:
As Regras do Negócio (lógica) foram deslocadas para o 
Servidor de Aplicações, então ali será determinada a maneira 
como os dados serão utilizados..
 Todo o acesso do cliente ao Banco de Dados é feito de acordo 
com as regras contidas no Servidor de Aplicações. Não é 
possível o acesso ao B. de Dados sem primeiramente passar 
pelo Servidor de Aplicações..
 No Servidor de B. de Dados reside toda informação 
necessária para o funcionamento da aplicação.
 Arquitetura de Sistemas Distribuídos
 Melhoramentos:
 Atualização mais fácil das Regras do Negócio;
 Aumento da flexibilidade, conseqüentemente;
 Maior segurança e controle do acesso aos dados;
 Torna-se mais fácil manter a aplicação atualizada e garantir que 
todos os usuários terão acesso às alterações;
 Falha:
 Continua o problema de atualização da interface de aplicação, 
cada vez que sejam necessárias mudanças na interface. Porém, 
alterações nela são menos freqüentes do que as que ocorrem 
nas Regras do Negócio.
 Arquitetura de Sistemas Distribuídos
……….Aplicações em Quatro Camadas………
.
Idéia básica:
Retirar a apresentação do cliente e centralizá-la em um 
determinado ponto, o qual na maioria dos casos é um 
Servidor web.
Avanço:
O cliente deixa de existir como um programa que precisa ser 
instalado em cada micro. O acesso à aplicação é feito através 
de um navegador: Internet Explorer, Netscape Navigator
 Arquitetura de Sistemas Distribuídos
Aplicações em Quatro Camadas – Estrutura: 
Servidor de Banco de 
Dados
Servidor de Aplicações
Servidor Web
Clientes
 Arquitetura de Sistemas Distribuídos
Esquema básico:
•Cliente quer acessar a aplicação 
•acessa o endereço da mesma através do navegador
•servidor de aplicações verifica se ao cliente é permitido o 
acesso 
•banco de dados liberado.
http://www.empresaxy.com/sistemas/rh.aspx
Servidor de Aplicações determina de que 
maneira os dados serão utilizados
Banco de dados:
 informações
 necessárias
 Arquitetura de Sistemas Distribuídos
 4 Camadas
 Cliente: Navegador;
 Apresentação: Servidor Web, onde serão feitas as alterações 
de interface;
 Lógica (Regras do Negócio): Servidor de Aplicações, onde 
serão feitas as alterações nas regras do negócio, quando 
necessárias;
 Dados: Servidor de Banco de Dados, com todas as informações 
necessárias.
 Arquitetura de Sistemas Distribuídos
Vantagens: Desvantagens:
• Serviços; Complexidade; 
• Recursos; Comunicação.
• Protocolos;
• Localização;
• Descentralização;
• Escalabilidade;
• Integridade.
 Arquitetura de Sistemas Distribuídos
Exercícios de fixação
1. Defina com suas próprias palavras o que vem a ser um sistema 
distribuído.
2. Cite e explique rapidamente, trÊs fatores que contribuíram para a 
disseminação dos sistemas distribuídos
3. Cite três exemplos de sistemas distribuídos
4. Cite e explique três vantagens dos sistemas distrbuídos sobre os 
sistemas centralizados
5. Cite e explique duas desvantagens na adoção de sistemas 
distrbuídos
6. Estabeleça uma comparação entre sistemas operacionais de redes 
e sistemas distribuídos autênticos
 Arquitetura de Sistemas Distribuídos
Exercícios de fixação7. Explique o que vem a ser sistemas timesharing para 
multiprocessadores
8. Cite e explique três características dos sistemas distrbuídos
9. Diferencie o que vem a ser extensibilidade de escalabilidade em relação 
a sistemas distrbuídos
10.Defina o que vem a ser um sistema cliente-servidor
11.Caracterize o cliente e o servidor
12.Defina e exemplifique o que vem a ser uma aplicação em duas 
camadas
13.Defina e exemplifique o que vem a ser uma aplicação em três camadas
14.Diferencie uma aplicação em três camadas de outra em quatro 
camadas
 Arquitetura de Sistemas Distribuídos
Trabalhos complementares para N 1 (peso 8,0)
1. Lista de exercícios de fixação (neste documento)
- Deverá ser resolvida individualmente, escrita a mão
- Poderá ser utilizada como fonte de consulta na N1
- Entrega na data da mesma (em formato .pdf)
- Valor: 0,5pto 
 Arquitetura de Sistemas Distribuídos
Trabalhos complementares para N 1 (peso 8,0)
2. Pesquisa: Aplicações distribuídas e TI Verde
- Atividade desenvolvida em grupos com até 5 integrantes
- Poderá ser utilizada como fonte de consulta na N1
- Entrega na data da mesma (em formato .pdf)
- Valor: 0,5pto 
 Arquitetura de Sistemas Distribuídos
Trabalhos complementares para N 1 (peso 8,0)
3. Pesquisa: Modelos de programação em SD
- Atividade desenvolvida em grupos com até 5 integrantes
- Poderá ser utilizada como fonte de consulta na N1
- Entrega na data da mesma (em formato .pdf)
- Valor: 1,0pto

Continue navegando