Sei sulla pagina 1di 14

09/01/13

Paradigma Cliente/Servidor
Mrio Meireles Teixeira
UFMA Departamento de Informtica
Dezembro, 2012

Comunicao em Sistemas Distribudos


! Os processos em um SD esto lgica e fisicamente

separados. Precisam se comunicar para que possam


interagir

! O desempenho de um SD depende criticamente do


desempenho do seu subsistema de comunicao

! O paradigma de comunicao mais comumente usado


para a interao entre processos o Paradigma
Cliente-Servidor

09/01/13

Conceitos: Paradigma C/S


! Cliente
n

Necessita do acesso aos recursos administrados pelos servidores


para realizar suas tarefas. Dele partem as solicitaes de servio
Elemento pr-ativo, consumidor de servios

! Servidor
n

Responsvel por gerenciar um determinado tipo de recurso do


sistema, administrando o acesso concorrente dos clientes ao
mesmo
Elemento reativo, fornecedor de servios
3

Conceitos: Paradigma C/S


! Todo recurso compartilhado em um Sistema Distribudo (HW,
SW ou dados) est sob a guarda de um processo servidor

! A relao cliente/servidor se estabelece entre cada interao


entre processos, sendo um conceito de software, no de
hardware
n
n

Clientes e Servidores podem executar na mesma mquina


Um servidor pode ser cliente de outro processo

! Servidor x Servio
! Cliente x Usurio

Viso de Software
4

09/01/13

Conceitos: Paradigma C/S


! Quem so os clientes ?
n

Pode ser qualquer computador (workstation) conectado ao


sistema atravs da rede

! Quem so os servidores ?
n

Geralmente computadores de grande capacidade, que


oferecem aos clientes recursos como discos, impressoras,
bancos de dados, conexes com outras redes, servios da
Web...
Viso de Hardware

Vantagens e Desvantagens
! Vantagens:
n
n
n
n
n
n
n
n
n
n

Compartilhamento de recursos
Balanceamento de carga
Tolerncia a falhas
Escalabilidade
Transparncia
Autonomia e Flexibilidade
Capacidade de processamento local e remota
Filosofia de Sistemas Abertos
Multiplataforma
Custos menores...

09/01/13

Vantagens e Desvantagens
! Desvantagens:
n

Administrao do sistema mais complexa

Variados pontos de falha no sistema

Dificuldades na interoperabilidade entre componentes de


fornecedores diferentes
Mudana no paradigma de desenvolvimento de software
7

Comunicao no Modelo C/S

Cliente

Servidor
1. Requisio

(bloqueado)

2. Execuo
3. Resposta

09/01/13

Comunicao no Paradigma C/S


! No Paradigma Cliente-Servidor, a comunicao objetiva
principalmente a realizao de servios:
n
n
n

Cliente envia requisio ao servidor


Servidor recebe a mensagem e processa a solicitao
Servidor retorna os resultados ao cliente

! A comunicao entre as partes implementada usando-se


passagem de mensagens

! Em nvel de programao, normalmente utilizam-se

abstraes como sockets, RPCs, objetos distribudos,


servios web
9

Comunicao no Paradigma C/S


! Um processo servidor pode ter vrios clientes e no

precisa ter um conhecimento prvio a respeito deles

! Os clientes, antes de contactar um servidor pela

primeira vez, geralmente consultam algum Servio de


Nomes (binder, port mapper) existente no sistema

! Cliente ou Servidor so papis que os processos


assumem durante uma interao particular

10

09/01/13

Passagem de Mensagens
! Os processos comunicam-se atravs do envio de

mensagens, utilizando primitivas do tipo send/receive

! Soluo de baixo nvel


n

O programador tem que se preocupar com o envio de


mensagens, sincronizao, erros de transmisso,
mensagens perdidas, timeouts, detalhes de protocolos...
Porm, oferece melhor desempenho

! Exemplos de interfaces de passagem de mensagens:


n

Sockets (TCP/IP), IPX/SPX (Netware), TLI, NetBIOS


(IBM e Microsoft)

11

Passagem de Mensagens
! Primitivas de Comunicao:
n Send (msg, dest)
n Receive (msg, orig)
! Interao Sncrona
n

O Receive sncrono faz com que o receptor fique


bloqueado at a chegada de uma mensagem
No Send sncrono, o processo emissor fica bloqueado at
que ocorra o Receive
Neste caso, diz-se que o Send e o Receive so
bloqueantes

12

09/01/13

Passagem de Mensagens
! Interao Assncrona
n

Aps o Send, o processo emissor est liberado to logo


a mensagem tenha sido copiada para um buffer local
O programa receptor apenas informa sua inteno de
receber uma mensagem, alocando um buffer para
recepo
w O receptor fica sabendo da chegada de uma mensagem

atravs de polling ou interrupes

Diz-se que o Send e o Receive so no-bloqueantes


13

Passagem de Mensagens
! Interao Assncrona
n

A comunicao assncrona oferece melhor desempenho,


mas sua programao mais difcil que a forma
sncrona
As primitivas tambm podem ser confiveis e noconfiveis
Mais sobre este assunto:
u Programao com Sockets
14

09/01/13

Camadas de Aplicao em Sistemas


de Informao
Apresentao: disponibiliza a informao s en3dades
externas e permite sua interao com o sistema
Cliente = Camada de Apresentao ??
Cliente Web comum vs. Applet Java

Lgica da Aplicao (regras de negcio): o que o sistema


realmente faz, os servios que ele oferece garante as regras
de negcio, coordena os processos
Gerenciamento de Recursos (camada de dados): as
diferentes fontes de dados que do suporte aplicao
(SGBD, arquivos, outros sistemas)

Camadas de Aplicao

09/01/13

Arquitetura de Sistemas Cliente-


Servidor
Um sistema cliente-servidor pode ser conceitualmente
dividido em camadas, de acordo com suas
funcionalidades
Essas camadas ((ers) podem ser combinadas e
distribudas de diferentes maneiras
Assim, temos sistemas: 1-(er, 2-(er, 3-(er e N-(er
17

Arquitetura 1-tier: a era do


mainframe
Todas as camadas so
combinadas em uma nica
en3dade (sistemas monol-
3cos)
Arquitetura Rpica de sistemas
baseados em mainframes
Usurios tm acesso ao
sistema a par3r de terminais
burros: todo o processamento
(inclusive apresentao)
controlado pelo servidor
central

18

09/01/13

Arquitetura 1-tier
Vantagens

Desvantagens

nico contexto de
execuo
no h necessidade de
manter e publicar uma
interface de servios do
sistema
produz em geral
sistemas mais ecientes
(melhor desempenho)

cdigo monol3co (diXcil


de manter e evoluir)
baixo reuso de cdigo
na contramo da
indstria de soYware (h
muitas dcadas)

19

Arquitetura 2-tier: a era da API


Com o advento do PC, a
camada de apresentao
migra para os clientes
possvel aproveitar o poder
computacional dos clientes
Ml3plas camadas de
apresentao customizadas
Two-3er = Client/Server
thin/fat client
Surgimento da RPC API do
servidor

20

10

09/01/13

Marcos na evoluo de sistemas


distribudos: 2-tier

Conceito de API: torna possvel suportar ml3plos clientes; evoluo do


servidor sem afetar os clientes
Noo de servio: cliente invoca um servio implementado por um
servidor
Web Services so o subproduto mais recente de toda essa evoluo

21

Arquitetura 2-tier
Vantagens

Camadas de negcio e
dados permanecem
juntas (mais ecincia)
Camada de apresentao
independente do
servidor (mais
portabilidade)

Desvantagens

Servidor tem um limite


mximo de clientes que
pode suportar
(escalabilidade)
Cliente tem diculdades
de conversar com
ml3plos servidores... L
Soluo: Middleware

22

11

09/01/13

Arquitetura 3-tier: a era do


middleware
Resolve o problema da integrao entre ml3plos
servidores
Middleware: nova camada entre clientes e servidores
simplica o projeto dos clientes, pois reduz o nmero de
interfaces que este precisa conhecer
encapsula a lgica de integrao entre os sistemas e a lgica de
aplicao de alto nvel
localiza os recursos, faz acesso a eles, coleta/organiza os
resultados (middleware = elemento mediador)
inicialmente, surgiu com SGBDs; posteriormente, mais genrico
(object bus, service bus)

23

Arquitetura 3-tier

24

12

09/01/13

3-tier: subdiviso em camadas


Na arquitetura 3-3er, existe
uma clara separao entre as
trs camadas:
camada de apresentao reside no
cliente
lgica de integrao e da aplicao,
na camada internediria
camada de gerenciamento de
recursos so os prprios servidores
que o 3-3er visa integrar
cada servidor neste nvel pode
estar subdividido em novas
camadas (3ers)

25

Comparao entre arquiteturas


2-@er
lgica da aplicao e
gerenciamento de
recursos na mesma
mquina
comunicao eciente
baixa escalabilidade

3-@er
cada camada em seu
prprio servidor (ou
cluster)
lgica da aplicao mais
independente dos
recursos (mais portabi-
lidade e reusabilidade)
comunicao entre
mdulos computacio-
nalmente mais cara

26

13

09/01/13

Arquitetura N-tier
Surge, de maneira geral, em dois 3pos de cenrio:
Interligao entre sistemas dis3ntos
Interconec3vidade atravs da Internet

Interligao entre sistemas dis3ntos


A camada de recursos pode incluir no apenas bancos de dados,
mas tambm sistemas 2-3er e 3-3er completos
Arquitetura N-3er ou mul3-3er

Interconec3vidade atravs da Internet


A Web surge como (mais) uma camada de soYware
O servidor web incorporado camada de apresentao (uma
camada a mais, na verdade)
Deu origem aos servidores de aplicao, que oferecem servios
usando a Web como plataforma de acesso a eles

Arquitetura N-tier

14