Arquitetura de Sistemas Distribuídos

Propaganda
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
Parece um SC
Não
SO
distribuído
Sim
Mesmo SO
Não
Sim
Sim
Cópias de SO
N
N
1
Comunicação
Arquivos
compartilhados
Sim
Mensagens
Sim
Memória
compartilhada
Não
Não
Não
Sim
Protocolos
comuns
Fila única de
execução
SO para
multiproc.
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
desempenho conforme 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.
REQUISITA
Cliente
RESPONDE
Servidor 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
ARQUITETURA CLIENTE/SERVIDOR
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 de Sistemas Distribuídos
ARQUITETURA CLIENTE/SERVIDOR
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 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
Aplicações
Servidor de Banco de
Dados
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 Aplicações
Servidor Web
Servidor de Banco de
Dados
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;
• Recursos;
• Protocolos;
• Localização;
• Descentralização;
• Escalabilidade;
• Integridade.
Complexidade;
Comunicação.
•
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ção
7. Explique o que
multiprocessadores
vem
a
ser
sistemas
timesharing
para
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
Download