Buscar

Arquitetura de sistemas distribuídos

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Arquitetura de sistemas distribuídos 
 
Um sistema distribuído é aquele que as informações em fase de processamento são 
distribuídas para vários computadores, em vez de ficarem confinadas a uma única máquina 
[Sommervillle, 2003]. 
Nos sistemas distribuídos o software de sistema é executado em um grupo de processadores 
fracamente integrados, que cooperam entre si conectados por uma rede. 
Características dos sistemas distribuídos [Coulouris et al, 1994] 
 Compartilhamento de recursos. Inclu recursos de hardware e software. 
 Abertura. Sistemas podem ser ampliados utilizando recursos não proprietários a eles. 
 Concorrência. Vários processos podem operar ao mesmo tempo em diferentes 
computadores na rede. 
 Escalabilidade. São escalonáveis que significa que a capacidade do sistema pode ser 
aumentada por acréscimo de novos recursos. 
 Tolerância a defeitos. Podem ser tolerants a algumas falhas de hardware e software. 
 Transparência. Usuário não precisa saber da natureza distrbuída do sistema. 
Desvantagens dos sistemas distrbuídos [Coulouris et al, 1994] 
 Complexidade. São mais complexos do que os sistemas centralizados. 
 Proteção. É mais dificil gerenciar a porteção de um sistema distribuído. 
 Dificuldade de gerenciamento. Maior esforço para gerenciamento. 
 Imprevisibilidade. Podem ser imprevísveis em suas respostas. 
O desafio para os projetistas de sistemas distribuídos esta em projetar software e hardware 
para que eles forneçam as caracteristicas desejáveis dos sistemas distribuídos e ao mesmo 
tempo minimizem os problemas inerentes a esses sistemas. Questões relevantes de projetos 
de sistemas distribuídos são a identificação de recursos, comunicação, qualidade do serviço 
e a arquitetura do software. 
Um sistema distribuído exige normalmente um software que gerencie as diversas partes e 
garanta que elas se comuniquem e troquem dados. Os sistemas distribuídos podem ser 
implementados com diferentes linguagens de programação, executados em processadores 
diferentes e podem utilizar diferentes protocolos de comunicação. O software de 
gerenciamento , conhecido por middleware, é uma espécie de intermediário dos diferentes 
componentes distribuídos do sisema. 
 Existem dois tipos genéricos de arquitetura de sistemas distribuídos: 
Arquitetura cliente-servidor. 
Uma aplicação é modelada como um conjunto de serviços que são fornecidos por servidores 
e um conjunto de clientes que utilizam esses serviços. Clientes e servidores são processos 
lógicos diferentes conforme ilustra a figura abaixo. 
 
Não existe um mapeamento 1:1 entre os processos e os processadores do sistema. A figura 
abaixo ilustra a arquitetura físca de um sistema com seis computadores clientes e dois 
computadores servidores. Eles podem executar os procesos cliente e servidor mostrados 
anteriormente. 
 
O projeto do sistema cliente-servidor deve refletir a estrutura lógica da aplicação que está 
sendo desenvolvida. Uma aplicação pode ser estruturada em duas ou três camadas, em geral. 
Arquitetura de três camadas. 
A camada de apresentação que se ocupa de apresentar informações aos usuários e todas as 
interações com eles. A camada de processamento de aplicações que se ocupa de implementar 
a lógica da aplicação e a camada de gerenciamento de banco de dados que se encarrega das 
operações de banco de dados. Em sistemas centralizados essas operações não precisam ser 
nitidamente separadas. 
 
Arquitetrua de duas camadas 
A arquitetura cliente-servidor mais simples é chamada de arquitetura de duas camadas em 
que um aplicaçao é organizada como um servidor e um conjunto de clientes. Podem utilizar 
um modelo cliente-magro onde o cliente só responde pela camada de apresentação (pode 
apresentar problemas de esclabilidade e desempenho) ou um modelo cliente-gordo (pode 
apresentar problermas de gerenciamento) onde o cliente implementa a lógica de aplicação e 
as interações com os usuários do sistema. 
 
Na solução de duas camadas, três camadas lógicas devem ser mapeadas em dois sistemas de 
computadores. A linguagem java e a possibilidade de recorrer a applets por download permite 
desenvolver um modelo cliente-servidor intermediário entre os modelos magro e gordo. 
Uma abordagem alternativa é utilizar uma arquitetura cliente-servidor de três camadas Nessa 
arquitetura , apresentação, processamento de aplicações e o gerenciamento de dados são 
processos logicamente separados. Essa arquitetura é inerentemente mais escalável. 
 
Arquitetura de objetos distribuídos. 
Uma abordagem mais geral para sistemas distri9búidos é eliminar a distinção entre cliente e 
servidor e projetar a arquitetura de sistema como um arquitetura de objetos distribuídos. Os 
componentes do sistema são objetos que oferecem uma interface para um conjunto de 
serviços que eles fornecem. Outros objetos solicitam esses serviços sem fazer distinção lógica 
entre um cliente (quem recebe o serviço) e um servidor (quem provê o serviço). 
Nesse caso pode-se pensar na camada de middleware como um barramento de software. Ela 
permite que objetos se comuniquem e sejam acrescentados aos sistemas Essa arquitetura 
permite adiar decisões sobre onde ou como os serviços devem ser fornecidos e também 
permite que novos recursos sejam acrescentados conforme necessário. . 
 Referência : 
Coulouris et all, 1994 
Sommervile, Ian. Engenharia de Software, sexta edição, Tradução, Pearson, 2003.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais