Você está na página 1de 23

Engenharia de

Software

Ana Carolina Nicolosi da Rocha Gracioso


www.karolina.com.br
karolina@karolina.com.br
Arquitetura de sistemas distribuídos

 O que é um sistema distribuído?

“Um sistema distribuído é aquele em que


as informações em fase de processamento
são distribuídas para vários computadores
em vez de ficarem contidas em uma única
máquina.”
Arquitetura de sistemas distribuídos
 Vantagens dos sistemas distribuídos?
 Compartilhamento de recursos:
 Impressora, discos, arquivos, compiladores, ...

 Abertura:
 Projetados com protocolos padrão.

 Concorrência:
 Processos executados em máquinas diferentes.

 Escalabilidade:
 A capacidade do sistema pode ser ampliada com a

adição de novos recursos.


 Tolerância a defeitos:
 Informações duplicadas tornam o sistema tolerante a

falhas de hardware e de software.


Arquitetura de sistemas distribuídos
 Desvantagens dos sistemas distribuídos?
 Complexidade:
 São mais complexos que sistemas centralizados.
 Proteção:
 Pode ser acessado de vários computadores
diferentes.
 Gerenciamento:
 Os computadores podem possuir tipos diferentes.
 Imprevisibilidade:
 A resposta depende da carga total do sistema,
sua organização e a carga total da rede.
Arquitetura de sistemas distribuídos
 Arquiteturas:
 Multiprocessador;
 Cliente-Servidor;
 Objetos Distribuídos.
Arquitetura de sistemas distribuídos
 Arquiteturas de multiprocessadores:
 O sistema de software consiste de uma série de processos
que podem ser executados em processadores separados.
 Comum em sistemas de tempo real envolvendo os
seguintes processos:
 Coleta de informações;

 Tomada de decisões;

 Controle de atuadores;

 Exemplo: semáforo.
 Processador de Sensores;
 Processador de Fluxo de Tráfego;

 Processador de Controle do Semáforo.

 Seria possível executar todos os processos em um único


processador sob o controle de um escalador, porém, o uso
de vários processadores aprimora o desempenho e a
capacidade de recuperação do sistema.
Arquitetura de sistemas distribuídos
 Arquitetura cliente-servidor:
 Uma aplicação é modelada como um
conjunto de serviços fornecidos pelos
servidores e um conjunto de clientes que
usam esses serviços.
Arquitetura de sistemas distribuídos
 Modelo cliente-servidor:

Cliente Servidor
Arquitetura de sistemas distribuídos

 Aplicações c/s em 2 camadas:


Arquitetura de sistemas distribuídos
 Aplicações c/s em 3 camadas ou multicamadas:
Arquitetura de sistemas distribuídos
 Aplicações c/s em 3 camadas ou multicamadas:
Arquitetura de sistemas distribuídos
 Arquitetura cliente-servidor:
 Duas camadas com clientes-magros:
 Processamento e gerenciamento de dados no
servidor.
 Apresentação de dados no cliente.

 Duas camadas com clientes-gordos:


 Gerenciamento de dados no servidor (mainframe).

 Processamento e apresentação dos dados no cliente.

 Três camadas ou multicamadas.


 Gerenciamento dos dados (mainframe).

 Gerenciamento das aplicações (servidor web).

 Apresentação dos dados no cliente (navegador).


Arquitetura de sistemas distribuídos
 Aplicações MVC (Model-View-Controller):
Arquitetura de sistemas distribuídos

 Padrão MVC (Model-View-Controller):


 Foi criado no contexto da linguagem Smalltalk
com o objetivo de desacoplar a interface
gráfica de uma aplicação do código que
realmente realiza o trabalho.
 Causou um forte impacto na maneira com que
o software era construído, dividindo a
aplicação em três partes distintas: modelo,
visão e controle.
Arquitetura de sistemas distribuídos
 Padrão MVC (Model-View-Controller):
 Camada Modelo:
 Contém todos os dados e a lógica de negócio
para processá-los (beans).
 Camadas Visão:
 É a camada responsável por exibir os dados ao
usuário (JSP, HTML, XHTML, XML, CSS).
 Camada Controle:
 Interage com a camada visão para converter
as ações do cliente em ações que são
compreendidas e executadas pela camadas
modelo (servlets).
Arquitetura de sistemas distribuídos
 Arquitetura de objetos distribuídos:
 A Arquitetura de Objetos Distribuídos é uma
abordagem distinta da cliente/servidor que
elimina o conceito de distinguir quem é
servidor ou mesmo cliente.
 Entretanto é criado um novo conceito
chamado de middleware.
 O middleware, também chamado de requisitor
de objetos, fornece uma interface contínua de
comunicação entre esses objetos.
Arquitetura de sistemas distribuídos
 Arquitetura de objetos distribuídos:

o1 o2 o3 o4
________ ________ ________ ________
________ ________ ________ ________

S(o1) S(o2) S(o3) S(o4)

Via
Viade
deSoftware
Software

o5 o6
________ ________
________ ________

S(o5) S(o6)
Arquitetura de sistemas distribuídos
 Arquitetura de objetos distribuídos:
 Vantagens:
 Mais flexível e escalonável;
 Mais fácil de adicionar novos recursos;
 A distinção sobre cliente magro e cliente gordo
torna-se irrelevante;
 É possível reconfigurar o sistema dinamicamente
migrando os objetos através da rede.
Arquitetura de sistemas distribuídos
 Arquitetura de objetos distribuídos:
 Pode ser usada como um modelo lógico:
 Em termos de serviços oferecidos;
 Exemplo: objetos de negócio de uma aplicação
destinados a controle de estoque.
 Pode ser usada para implementar sistemas c/s:
 Neste caso o modelo lógico é o modelo cliente
servidor, mas tanto clientes quanto servidores são
considerados objetos que se comunicam por uma via
de software.
 Exemplo: um sistema de data mining que procura
relacionamentos entre dados armazenados em uma
série de banco de dados.
Arquitetura de sistemas distribuídos
 Arquitetura de objetos distribuídos:
 A implementação de objetos distribuídos requer
um middleware (requisitor de objetos) já que:
 A implementação dos objetos pode ser feita em
diferentes linguagens;
 Os objetos podem ser executados em diferentes
plataformas;
 O middleware precisa assegurar a comunicação
contínua entre esses objetos em dois níveis:
 Nível de comunicação lógica;
 Nível de componente.
Arquitetura de sistemas distribuídos
 Arquitetura de objetos distribuídos:
 Nível de comunicação lógica:
 O middleware fornece funcionalidade que permite
aos objetos de diferentes computadores trocarem
informações de dados e de controle.
 Padrões: CORBA e COM.
 Nível de componente:
 O middeware fornece uma base para o
desenvolvimento de componentes compatíveis.
 Padrões: EJB, CORBA, Active X.
Exercícios
1) Cite um exemplo de aplicação que utiliza o modelo cliente
servidor
a) 2 camadas cliente magro
b) 2 camadas cliente gordo
c) 3 camadas ou multicamadas
2) Faça uma pesquisa na Internet sobre o CORBA.
Bibliografia
 SOMMERVILLE, Ian. Engenharia de
software. São Paulo: Pearson Addison
Wesley, 2007.

 PRESSMAN, Roger S.. Engenharia de
software. São Paulo: Makron Books, 2006.

Você também pode gostar