Você está na página 1de 38

Sistemas Distribu dos: Princ pios e Algoritmos Estilos Arquitetnicos e Arquitetura Cliente/Servidor o

Francisco Jos da Silva e Silva e


Laboratrio de Sistemas Distribu o dos (LSD) Departamento de Informtica / UFMA a http://www.lsd.ufma.br

2 de maro de 2009 c

Francisco Silva (UFMA/LSD)

SD: Princ pios e Algoritmos

2 de maro de 2009 c

1 / 38

Agenda

Estilos Arquitetnicos o

Introduo ao Modelo Cliente/Servidor ca

Distribuio Horizontal e Vertical do Modelo Cliente/Servidor ca

Questes de Projeto de Aplicaes Servidoras o co

Francisco Silva (UFMA/LSD)

SD: Princ pios e Algoritmos

2 de maro de 2009 c

2 / 38

Estilos Arquitetnicos o

Estilos Arquitetnicos o

Francisco Silva (UFMA/LSD)

SD: Princ pios e Algoritmos

2 de maro de 2009 c

3 / 38

Estilos Arquitetnicos o

Estilos Arquitetnicos o
A arquitetura do software dene como os vrios componentes que o a compe devem ser organizados e como devem interagir. o
Layer N Object Object

Layer N-1 Request flow Layer 2 Object Layer 1 (a) (b) Object Response flow Object Method call

Figura: (a) Em camadas (b) Baseada em objetos

Francisco Silva (UFMA/LSD)

SD: Princ pios e Algoritmos

2 de maro de 2009 c

4 / 38

Estilos Arquitetnicos o

Comunicao Cliente Servidor ca

Arquitetura em Camadas
Um componente da camada Li tem permisso para chamar a componentes da camada Li 1 mas no o contrrio; a a O controle ui de camada para camada: requisioes descem pela c hierarquia, resultados uem para cima.

Arquitetura Baseada em Objetos


Cada objeto corresponde a um componente e esses componentes so a conectados por meio de chamadas a mtodos remotos; e Se ajusta a arquitetura de sistemas cliente-servidor.

Francisco Silva (UFMA/LSD)

SD: Princ pios e Algoritmos

2 de maro de 2009 c

5 / 38

Estilos Arquitetnicos o

Estilos Arquitetnicos o

Component Event delivery

Component

Component Data delivery

Component Publish

Event bus Publish Component (a) (b) Shared (persistent) data space

Figura: (c) Baseado em eventos (c) Baseado nos dados

Francisco Silva (UFMA/LSD)

SD: Princ pios e Algoritmos

2 de maro de 2009 c

6 / 38

Estilos Arquitetnicos o

Comunicao Cliente Servidor ca

Arquitetura Baseada em Eventos


Processos se comunicam por meio de propagao de eventos, que ca eventualmente transportam dados; Associado, em geral, a sistemas publicar/subscrever; Processos so fracamente acoplados. a

Arquitetura Centrada nos Dados


Processos se comunicam por meio de um repositrio comum; o Sistemas baseados na Web so em grande parte centrados nos dados. a

Francisco Silva (UFMA/LSD)

SD: Princ pios e Algoritmos

2 de maro de 2009 c

7 / 38

Introduo ao Modelo Cliente/Servidor ca

Introduo ao Modelo Cliente/Servidor ca

Francisco Silva (UFMA/LSD)

SD: Princ pios e Algoritmos

2 de maro de 2009 c

8 / 38

Introduo ao Modelo Cliente/Servidor ca

Introduo ao Modelo Cliente/Servidor ca


Uma questo fundamental em sistemas distribu a dos a denio de e ca como devemos organizar os processos; Um modelo bastante popular organiza os processos em clientes que requisitam servios de servidores. c

Francisco Silva (UFMA/LSD)

SD: Princ pios e Algoritmos

2 de maro de 2009 c

9 / 38

Introduo ao Modelo Cliente/Servidor ca

Comunicao Cliente Servidor ca


Atravs de um protocolo simples sem conexo e a
Utilizado quando a rede razoavelmente convel, como a maioria das e a LANs; Vantagem: ecincia; e Desvantagem: diculdades de tornar a aplicao resistente a falhas de ca transmisso; a Se o cliente no recebe resposta, ele no tem como detectar se a a a mensagem original foi perdida ou se isto ocorreu com a resposta; O cliente pode reenviar a requisio; ca Para requisioes como retorne o saldo da minha conta isto no gera c a problemas mas para mensagens do tipo transra 10.000,00 da minha conta o reenvio da requisio seria desastroso. ca

Atravs de protocolo convel orientado a conexo e a a


Desvantagem: desempenho relativamente baixo; Funciona muito bem em WANs; Exemplo: praticamente todas as aplicaoes na Internet c utilizam conexes TCP/IP. o
Francisco Silva (UFMA/LSD) SD: Princ pios e Algoritmos 2 de maro de 2009 c 10 / 38

Introduo ao Modelo Cliente/Servidor ca

Exemplo CS: Arquivo de Cabealho c

Francisco Silva (UFMA/LSD)

SD: Princ pios e Algoritmos

2 de maro de 2009 c

11 / 38

Introduo ao Modelo Cliente/Servidor ca

Exemplo CS: um Servidor Simples

Francisco Silva (UFMA/LSD)

SD: Princ pios e Algoritmos

2 de maro de 2009 c

12 / 38

Introduo ao Modelo Cliente/Servidor ca

Exemplo CS: um Cliente Simples

Francisco Silva (UFMA/LSD)

SD: Princ pios e Algoritmos

2 de maro de 2009 c

13 / 38

Distribuio Horizontal e Vertical do Modelo Cliente/Servidor ca

Distribuio Horizontal e Vertical do ca Modelo Cliente/Servidor

Francisco Silva (UFMA/LSD)

SD: Princ pios e Algoritmos

2 de maro de 2009 c

14 / 38

Distribuio Horizontal e Vertical do Modelo Cliente/Servidor ca

Camadas de uma Aplicao ca

Uma aplicao CS pode ser estruturada em trs n ca e veis:


1

Interface com o usurio a Processamento Dados

Francisco Silva (UFMA/LSD)

SD: Princ pios e Algoritmos

2 de maro de 2009 c

15 / 38

Distribuio Horizontal e Vertical do Modelo Cliente/Servidor ca

Camada de Interface com o Usurio a

Consiste dos programas que permitem a interao dos usurios com a ca a aplicao; ca Pode ser muito simples, utilizando uma interface a caractere simples ou mais sosticado utilizando interfaces grcas; a Exemplo simples: interface de terminal onde o mainframe controla toda a interao incluse o monitor e teclado; ca Exemplo sosticado: Interface de sistema que permite ao usurio a arrastar o cone que representa o arquivo para uma lixeira provocando sua excluso. a

Francisco Silva (UFMA/LSD)

SD: Princ pios e Algoritmos

2 de maro de 2009 c

16 / 38

Distribuio Horizontal e Vertical do Modelo Cliente/Servidor ca

Camada de Processamento

Contm a funcionalidade principal da aplicao; e ca Exemplo: uma ferramenta de busca na Internet; Ela deve transformar a string que o usurio digitou em uma ou mais a consultas a um grande banco de dados e formatar os resultados obtidos em pginas HTML a serem apresentadas para o usurio. a a

Francisco Silva (UFMA/LSD)

SD: Princ pios e Algoritmos

2 de maro de 2009 c

17 / 38

Distribuio Horizontal e Vertical do Modelo Cliente/Servidor ca

Exemplo: Ferramenta de Busca

Francisco Silva (UFMA/LSD)

SD: Princ pios e Algoritmos

2 de maro de 2009 c

18 / 38

Distribuio Horizontal e Vertical do Modelo Cliente/Servidor ca

Camada de Dados

Na sua forma mais simples consiste de um sistema de arquivos mas e comum que sejam utilizados banco de dados; Alm de apenas armazenar dados pode tambm tambm tratar sua e e e consistncia e realizar funes como gerar uma noticao quando e co ca uma dada condio ocorrer; ca Estas aes so muitas vezes implementadas atravs de stored co a e procedures.

Francisco Silva (UFMA/LSD)

SD: Princ pios e Algoritmos

2 de maro de 2009 c

19 / 38

Distribuio Horizontal e Vertical do Modelo Cliente/Servidor ca

Um Segundo Exemplo

Considere um sistema de suporte ` deciso para uma corretora de valores: a a Uma camada frontal implementa a interface com o usurio; a Uma camada de dados armazena os dados nanceiros; Uma camada de processamento realiza a anlise dos dados, o que a eventualmente exige mtodos e tcnicas sosticados de estat e e stica e inteligncia articial. e

Francisco Silva (UFMA/LSD)

SD: Princ pios e Algoritmos

2 de maro de 2009 c

20 / 38

Distribuio Horizontal e Vertical do Modelo Cliente/Servidor ca

Arquiteturas Multidivididas
A distino entre os trs n ca e veis lgicos sugere vrias possibilidades o a para a distribuio f ca sica de uma aplicao C/S; ca A organizao mais simples requer apenas dois tipos de mquinas: ca a
1

Cliente: que executa os programas que compreendem a interface com o usurio; a Servidor: que implementa as camadas de processamento e de dados.

Esta organizao conhecida como Cliente/Servidor em duas ca e camadas; No entanto, diversas outras arquiteturas podem ser utilizadas.

Francisco Silva (UFMA/LSD)

SD: Princ pios e Algoritmos

2 de maro de 2009 c

21 / 38

Distribuio Horizontal e Vertical do Modelo Cliente/Servidor ca

Poss veis Organizaes Cliente/Servidor co

Francisco Silva (UFMA/LSD)

SD: Princ pios e Algoritmos

2 de maro de 2009 c

22 / 38

Distribuio Horizontal e Vertical do Modelo Cliente/Servidor ca

Alternativas de Organizao Cliente/Servidor (a) ca


Na alternativa (a), executa-se no cliente s a parte da interface o dependente do terminal; Na alternativa (b), todo o software de interface com usurio executa a no cliente; Exemplo da alternativa (c): vericao de consistncia do ca e preenchimento de um formulrio feito no cliente; a Na alternativa (d), a aplicao executa na mquina cliente, indo para ca a o servidor somente as operaes sobre as base de dados. Exemplo: co muitas aplicaes bancrias; co a Na alternativa (e), o disco local no cliente mantm parte dos dados. e Exemplo: browser web mantendo uma cache; Recentemente tem-se evitado as alternativas (d) e (e) devido a problemas de gerenciamento e por tornar o sofware cliente dependente da plataforma subjacente do cliente; Clientes gordos (abordagens (d) e (e)); Clientes magros (abordagens (a) a (c)): mais fceis de gerenciar. a
Francisco Silva (UFMA/LSD) SD: Princ pios e Algoritmos 2 de maro de 2009 c 23 / 38

Distribuio Horizontal e Vertical do Modelo Cliente/Servidor ca

Arquitetura em Trs Camadas e


A diviso vista anteriormente apresenta diversas possibilidades de a distino entre mquinas clientes e servidoras; ca a No entanto, um servidor pode tambm agir como cliente, resultando e em uma arquitetura em trs n e veis:

Francisco Silva (UFMA/LSD)

SD: Princ pios e Algoritmos

2 de maro de 2009 c

24 / 38

Distribuio Horizontal e Vertical do Modelo Cliente/Servidor ca

Arquitetura em Trs Camadas e

Nesta arquitetura, programas que formam o n de processamento vel residem em um servidor separado; Um exemplo t pico o processamento de transaes, onde o monitor e co de transaes coordena as transaes em servidores de dados co co possivelmente diferentes; Outro exemplo a organizao usual de sites na Web, onde o servidor e ca Web age como ponto de entrada para um site, passando requisies co para um servidor de aplicao no qual ocorre o processamento ca propriamente dito.

Francisco Silva (UFMA/LSD)

SD: Princ pios e Algoritmos

2 de maro de 2009 c

25 / 38

Distribuio Horizontal e Vertical do Modelo Cliente/Servidor ca

Servidores de Aplicao ca
So softwares que fornecem uma infraestrutura de servios para a a c execuo de aplicaes distribu ca co das; So executados em servidores e so acessados pelos clientes atravs a a e de uma conexo de rede; a Vantagem: simplicam o desenvolvimento de aplicaes atravs dos co e servios implementados, fazendo com que os desenvolvedores possam c concentrar a maior parte do tempo na implementao da lgica de ca o negcio; o Servios t c picos: integrao com bancos de dados, segurana, garantia ca c de disponibilidade, balanceamento de carga e tratamento de excees; co Exemplos: WebLogic Server (BEA), JBoss (Red Hat), WebSphere Application Server (IBM), JRun (Adobe), Apache Geronimo (Apache Software Foundation), Oracle OC4J (Oracle Corporation), Sun Java System Application Server (Sun Microsystems), Glasssh, Appaserver, Base4 e Zope.
Francisco Silva (UFMA/LSD) SD: Princ pios e Algoritmos 2 de maro de 2009 c 26 / 38

Distribuio Horizontal e Vertical do Modelo Cliente/Servidor ca

Distribuio Horizontal ca

A distribuio do modelo CS em mltiplas camadas vista ca u anteriormente conhecida por distribuio vertical; e ca O modelo CS pode tambm ser distribu horizontalmente, e do dividindo-se o cliente ou servidor em partes logicamente equivalentes; Um exemplo popular um servidor Web replicado em vrias mquinas e a a de forma a prover um balanceamento da carga de trabalho.

Francisco Silva (UFMA/LSD)

SD: Princ pios e Algoritmos

2 de maro de 2009 c

27 / 38

Distribuio Horizontal e Vertical do Modelo Cliente/Servidor ca

Distribuio Horizontal de Servidor Web ca

Francisco Silva (UFMA/LSD)

SD: Princ pios e Algoritmos

2 de maro de 2009 c

28 / 38

Distribuio Horizontal e Vertical do Modelo Cliente/Servidor ca

Cluster de Servidores

Conjunto de mquinas conectadas por uma rede de alta largura e a baixa latncia onde cada mquina executa um ou mais servidores; e a Normalmente organizado logicamente em trs camadas: e
1 2 3

Comutador: responsvel pelo roteamento das requisioes de clientes; a c Servidores de aplicao / computao; ca ca Sistema distribu de arquivos / banco de dados. do

Francisco Silva (UFMA/LSD)

SD: Princ pios e Algoritmos

2 de maro de 2009 c

29 / 38

Distribuio Horizontal e Vertical do Modelo Cliente/Servidor ca

Cluster de Servidores

Logical switch (possibly multiple)

Application/compute servers

Distributed file/database system

Client requests

Dispatched request

First tier

Second tier

Third tier

Francisco Silva (UFMA/LSD)

SD: Princ pios e Algoritmos

2 de maro de 2009 c

30 / 38

Distribuio Horizontal e Vertical do Modelo Cliente/Servidor ca

Comutadores de Camada de Transporte

O comutador aceita requisies de conexo TCP; co a Ele identica o melhor servidor para tratar a requisio e repassa o ca pacote a ele; O servidor enviar a resposta ao cliente requisitante, mas insere o a endereo IP do comutador como endereo fonte no cabealho do c c c pacote IP, realizando uma falsicao (spoong ). ca

Francisco Silva (UFMA/LSD)

SD: Princ pios e Algoritmos

2 de maro de 2009 c

31 / 38

Distribuio Horizontal e Vertical do Modelo Cliente/Servidor ca

Comutadores de Camada de Transporte

Logically a single TCP connection

Response

Server

Client

Request

Switch

Request (handed off)

Server

Francisco Silva (UFMA/LSD)

SD: Princ pios e Algoritmos

2 de maro de 2009 c

32 / 38

Questes de Projeto de Aplicaes Servidoras o co

Questes de Projeto de Aplicaoes o c Servidoras

Francisco Silva (UFMA/LSD)

SD: Princ pios e Algoritmos

2 de maro de 2009 c

33 / 38

Questes de Projeto de Aplicaes Servidoras o co

Organizao de Servidores ca

Servidor interativo: o prprio servidor manipula a requisio e, se o ca necessrio, retorna uma resposta ao cliente; a Servidor concorrente: repassa para uma thread ou processo em separado a requisio e imediatamente espera pela prxima requisio. ca o ca

Francisco Silva (UFMA/LSD)

SD: Princ pios e Algoritmos

2 de maro de 2009 c

34 / 38

Questes de Projeto de Aplicaes Servidoras o co

Vinculao Cliente-Servidor ca

Atravs de portas conhecidas designadas pela Autoridade para e Atribuio de Nmeros na Internet (Iana). Ex: FTP-21, HTTP-80 ca u Atravs de um daemon que registra os servidores em execuo; e ca Atravs de um superservidor, que escuta em vrias portas e repassa a e a requisio a um servidor espec ca co.

Francisco Silva (UFMA/LSD)

SD: Princ pios e Algoritmos

2 de maro de 2009 c

35 / 38

Questes de Projeto de Aplicaes Servidoras o co

Vinculao Cliente-Servidor ca

Francisco Silva (UFMA/LSD)

SD: Princ pios e Algoritmos

2 de maro de 2009 c

36 / 38

Questes de Projeto de Aplicaes Servidoras o co

Interrupo do Servidor ca
Exemplo: usurio deseja interromper a transferncia de um enorme a e arquivo para o servidor FTP; Uma abordagem o usurio sair abruptamente da aplicao cliente, o e a ca que automaticamente interromper a conexo com o servidor; a a O servidor encerrar a conexo antiga, entendendo que o cliente a a falhou; Esta prtica muito adotada na Internet atual... a e Outra alternativa permitir o envio de dados fora da banda; e Neste caso o servidor pode escutar em uma porta de controle separada da qual passam os dados normais.

Francisco Silva (UFMA/LSD)

SD: Princ pios e Algoritmos

2 de maro de 2009 c

37 / 38

Questes de Projeto de Aplicaes Servidoras o co

Servidores Com e Sem Estado


1

Sem Manter Estado:


No mantida nenhuma informao a respeito dos clientes e suas a e ca requisioes; c Exemplo: um servidor Web tipicamente no armazena estado. Aps a a o requisio ser processada, o servidor Web esquece completamente do ca cliente; Cada requisio deve ser auto-contida; ca Fcil recuperao em caso de falha. a ca

Mantendo Estado:
O servidor mantm informaoes persistentes sobre seus clientes; e c Exemplo: um servidor de arquivo que sabe quais clientes possuem quais arquivos abertos; Normalmente leva a um melhor desempenho na execuo das ca operaoes disponibilizadas; c Em caso de falha, deve-se recurar o estado do servidor.

Francisco Silva (UFMA/LSD)

SD: Princ pios e Algoritmos

2 de maro de 2009 c

38 / 38