You are on page 1of 42

Desenvolvimento de

Sistemas
Cliente/Servidor
UNICEUMA
Departamento de Informtica
Prof. Msc. Eduardo Freire
eduardohffreire@terra.com.br

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Introduo ao modelo Cliente / Servidor


A necessidade da empresa em se tornar mais
competitiva com a globalizao, fez com que se
comeasse a pensar em downsizing ligado a
reduo de custos...
dado o marco inicial a computao
Cliente/Servidor

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Introduo ao modelo Cliente / Servidor

O termo Cliente/Servidor foi inicialmente aplicado


para a arquitetura de software que descrevia o
processamento entre dois programas
Nesse contexto, a aplicao cliente requisitava um
servio que era ento executado pelo programa
servidor
Entretanto, esse termo ainda no distinguia se o
programa cliente e o programa servidor estavam
sendo executados em uma mesma mquina ou em
mquinas diferentes
3

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Introduo ao modelo Cliente / Servidor

Hoje, quando se fala em cliente/servidor, est se


referindo a um processamento cooperativo
distribudo, onde o relacionamento entre clientes e
servidores so relacionamentos entre componentes
tanto de software quanto de hardware
Portanto, estaremos interessados na arquitetura
cliente/servidor envolvendo duas ou mais mquinas
em um processo cooperativo para executar a
aplicao
4

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Mudanas de Paradigma

Paradigma Tradicional

A viso tradicional da computao era centralizada na


figura do computador que concentrava todos os servios
e recursos fornecidos aos usurios
O acesso a esses computadores era feito diretamente
pelo usurio atravs de teclados e monitores

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Mudanas de Paradigma

Paradigma Tradicional

Em alguns casos, essa mquina era um equipamento


poderoso capaz de atender vrios usurios
simultaneamente (Mainframe) Figura 1
Em outros casos eram pequenos computadores isolados
capazes de atender um nico usurio de cada vez
Figura 2

Figura 1

Figura 2
6

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Mudanas de Paradigma

Paradigma Tradicional
Problemas:

Para que essas mquinas pudessem acompanhar a crescente


demanda de novos recursos e servios seria necessrio expandir
seus recursos de memria e processamento
No caso de se utilizar apenas uma mquina servindo vrios usurios
(Mainframe), seria difcil expandir ainda mais seus recursos para
suportar as novas demandas tecnolgicas, principalmente a interface
grfica
Por outro lado, atravs de vrias mquinas isoladas, os servios
teriam que ser replicados e cada mquina incrementada para suportar
tal processamento
Alm disso, essa alternativa no prov uma maneira de comunicao
entre os usurios

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Mudanas de Paradigma

Paradigma Tradicional

Solues:

Surgiu-se a necessidade de interligar essas mquinas, para


que juntas pudessem fornecer um nmero maior de benefcios
Apareceram ambientes de redes que permitiam a distribuio
de recursos e servios em locais diferentes, aumentando a
capacidade do usurio final
Conseqncia: mquinas que tinham que ser equipamentos
caros e poderosos podiam ser aos poucos substitudas por
vrias mquinas menores e de custo mais baixo, mas que
atravs de um processo cooperativo conseguiam prover
funcionalidade maior
8

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Mudanas de Paradigma

Paradigma Cliente / Servidor

Modelo que faz um aplicativo ficar passivamente


esperando dados e um outro de iniciar a comunicao
enviando dados
Os termos cliente-servidor se refere-se basicamente a
dois aplicativos envolvidos numa comunicao

Cliente o aplicativo que iniciar a comunicao


Servidor o aplicativo que espera passivamente o contato

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Definies para Cliente / Servidor

Modelo computacional que separa clientes e servidores,


sendo interligados entre si geralmente utilizando-se uma rede
de computadores (Wikipedia)
Dois computadores com variados graus de capacidade de
processamento, que compartilham elementos de computao
necessrios para execuo do trabalho, utilizando-se de um
aplicativo dividido em trs componentes bsicos, um cliente,
um servidor e uma rede conectando os dois (Revista
Eletrnica da UNIFIEO)

10

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Definies para Cliente / Servidor

Cada instncia de um cliente pode enviar requisies


de dado para algum dos servidores conectados e
esperar pela resposta
Por sua vez, algum dos servidores disponveis pode
aceitar tais requisies, process-las e retornar o
resultado para o cliente

11

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

O que pode fazer uma computao Cliente / Servidor?

Cria aplicativos para negcios personalizados que acessem


dados em Mainframes, mas que sejam to fceis de usar quanto
os aplicativos PC prontos para uso, tais como editores de texto e
planilhas eletrnicas
Desenvolve aplicativos que possibilitam o acesso dados
armazenados em sistemas de computador de outro modo
incompatveis
Cria um sistema de informaes executivo que rene uma
grande quantidade de informaes, geralmente armazenadas
em computadores Mainframes

12

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Alguns dos principais aplicativos para o modelo


Cliente/Servidor

Aplicativos de Banco de Dados


Aplicativos de Processamento de Transao
Correio Eletrnico
Groupware

13

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Alguns dos principais benefcios do modelo


Cliente/Servidor para as empresas

Permite s corporaes alavacarem a tecnologia de


computadores desktops

Hoje, as estaes de trabalho j possuem um poder


computacional considervel, por um custo muito mais
baixo, antes s disponvel em Mainframes

Permite que o processamento seja feito mais


prximo da origem dos dados reduzindo o trfego
na rede Correio Eletrnico
14

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Alguns dos principais benefcios do modelo


Cliente/Servidor para as empresas

Facilita a utilizao de aplicaes grficas e


multimdias

Permitindo a construo de aplicaes que excedem as


expectativas dos usurios proporcionando-lhes um real
aumento de produtividade

Permite e encoraja a utilizao de sistemas abertos, j


que clientes e servidores podem rodar em diferentes
hardwares e softwares, livrando as corporaes de
arquiteturas proprietrias
15

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor
Deficincias do modelo

Algumas caractersticas necessrias para um completo


processo distribudo ainda no foram observadas nesse
modelo que ainda apresenta algumas deficincias
Se uma poro significante da lgica da aplicao for
movida para o servidor, esse se torna um gargalo assim
como na arquitetura de Mainframe
Para resolver esse problema seria necessrio uma melhor
distribuio e gerenciamento do processamento da lgica da
aplicao
Isto d origem a uma nova arquitetura chamada Segunda
Gerao Cliente/Servidor.
16

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor
Deficincias do modelo

Algumas caractersticas necessrias para um completo


processo distribudo ainda no foram observadas nesse
modelo que ainda apresenta algumas deficincias
O processo de construo de aplicaes distribudas bem
mais complexo que o desenvolvimento de aplicaes no
distribudas devido ao maior nmero de parmetros a serem
definidos, ao desconhecimento da tecnologia e a falta de
padres e ferramentas que auxiliem essa ambientao
Portanto, muito tempo pode ser consumido no processo de
definio e construo do ambiente de desenvolvimento
Esse tempo muitas vezes subestimado pelas empresas
devido ao desconhecimento e as falsas propagandas dos
vendedores de ferramentas
17

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Evoluo da Arquitetura Cliente/Servidor

Time-Sharing ou Emulador de Terminais


Resourse-Sharing ou Servidor de Arquivos
(Recursos)
Cliente / Servidor

Servidor de Banco de Dados


Servidor de Informaes

18

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Evoluo da Arquitetura Cliente/Servidor

Time-Sharing ou Emulador de Terminais


Arquitetura baseada em um processamento
centralizado
Uma mquina, chamada de hospedeiro,
responsvel por rodar todos os programas e
gerenciar todos os recursos
O tempo de processamento compartilhado
pelos programas, simulando uma execuo
em paralelo
Os usurios tm acesso a esses servios e
recursos atravs de terminais conectados
localmente ou remotamente

19

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Evoluo da Arquitetura Cliente/Servidor

Time-Sharing ou Emulador de Terminais


Os terminais no possuem nenhuma
capacidade de processamento e consistem
basicamente de uma tela, um teclado e do
hardware necessrio para se comunicar
com o hospedeiro
Novas necessidades: mais de
processamento, economicamente e
fisicamente invivel
Os exemplos mais conhecidos dessa
arquitetura so os sistemas em Mainframes
e alguns sistemas em UNIX

20

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Evoluo da Arquitetura
Cliente/Servidor

Resourse-Sharing ou Servidor de Arquivos


(Recursos)
Consiste de vrios computadores (estaes Servidor de Rede
de trabalho) interligados, sendo cada um
capaz de realizar seu prprio
processamento
Alguns desses computadores so
responsveis em compartilhar e gerenciar
recursos tais como impressora, disco, etc
(servidores de rede)
A rede no utilizada para proporcionar um
processamento cooperativo entre as
Processamento
mquinas

Aplicaes

Processamento

21

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Evoluo da Arquitetura
Cliente/Servidor

Resourse-Sharing ou Servidor de Arquivos


(Recursos)
Todo o processamento da aplicao aindaServidor de Rede
feito por uma nica mquina, havendo
apenas o compartilhamento de recursos
J possvel compartilhar a base de dados
da aplicao, permitindo o acesso por
vrias pessoas simultaneamente
Problema: Como todo o processamento dos
dados realizado em cada mquina, a
necessidade de um volume maior de
informaes torna invivel o trfego de
Processamento
informaes pela rede

Aplicaes

Processamento

22

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Evoluo da Arquitetura
Cliente/Servidor

Resourse-Sharing ou Servidor de Arquivos


(Recursos)
Para resolver esse problema seria
Servidor de Rede
necessrio que a mquina responsvel em
armazenar os dados fizesse um
processamento local capaz de enviar uma
quantidade menor de dados para a
mquina que est processando a aplicao

Aplicaes

Processamento
Processamento

23

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Evoluo da Arquitetura Cliente/Servidor

Cliente / Servidor
Tambm consiste de vrios computadores,
cada um com seu prprio processamento,
interligados em rede
A diferena bsica para a arquitetura
Resource-Sharing que aqui j comea a
haver um processamento distribudo
cooperativo
Parte do processamento, que era feito pela
mquina da aplicao, feito agora pela
prpria mquina responsvel pelo
armazenamento e distribuio da
informao, diminuindo assim o trfego de
informaes na rede

Servidor de Banco
de Dados (DBMS)

Servidor de Rede

Processamento
Processamento

Processamento

Aplicaes
Processamento

24

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Evoluo da Arquitetura
Cliente/Servidor

Cliente / Servidor
preciso selecionar os dados que sero
enviados para o usurio para uma melhor
eficincia do ambiente
Esse modelo j comea a retirar partes
especficas de processamento das
aplicaes que eram executadas pelas
mquinas clientes, centralizando-as nas
mquinas de localizao fsica mais
adequada, garantindo assim uma melhor
distribuio do processamento e utilizao
do ambiente

Servidor de Banco
de Dados (DBMS)

Servidor de Rede

Processamento
Processamento

Processamento

Aplicaes
Processamento

25

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Evoluo da Arquitetura
Cliente/Servidor

Cliente / Servidor
Atravs dessas especializaes garante-se
tambm um melhor gerenciamento e
facilidade de manuteno dos servios
devido a sua concentrao em um ou
poucos locais fsicos

Servidor de Banco
de Dados (DBMS)

Servidor de Rede

Processamento
Processamento

Processamento

Aplicaes
Processamento

26

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Geraes Cliente / Servidor

Primeira Gerao
Definimos cliente/servidor como:

Uma arquitetura computacional que visa distribuir os


recursos e o processamento de forma inteligente com o
objetivo de otimizar o desempenho da rede e dos sistemas,
maximizando a utilizao dos recursos de cada mquina e
fornecendo uma base slida e flexvel para a implantao
de um nmero crescente de servios

Algumas implementaes desse tipo j vm sendo


utilizadas em vrias empresas e so conhecidas
como a primeira gerao cliente/servidor

27

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Geraes Cliente / Servidor

Primeira Gerao
Para compartilhar recursos, como disco e
impressora, so utilizados Servidores de Arquivos
na rede
Estes so sistemas com a funo de processar as
requisies aos arquivos e impressoras e gerenciar
seu acesso e distribuio
Alm disso, parte do processamento das aplicaes
tambm foi distribudo

28

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Geraes Cliente / Servidor

Primeira Gerao
Alguns servios de manipulao e gerenciamento
de dados foram retirados das aplicaes e
colocados em pontos centralizados conhecidos
como Servidores de Banco de Dados, tornando o
processamento dos dados mais prximo do seu
local de armazenamento
Os sistemas que fornecem tais servios foram
chamados de Sistemas Gerenciadores de Banco
de Dados - SGDB

29

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Geraes Cliente / Servidor

Primeira Gerao
Basicamente, a primeira gerao de cliente/servidor
se caracteriza por essa distribuio do
processamento da aplicao entre dois
componentes:

A estao de trabalho do usurio


O servidor de banco de dados

medida que a arquitetura cliente/servidor evolui,


novas partes da aplicao vo sendo distribudas e
novos elementos vo aparecendo no ambiente

30

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Geraes Cliente / Servidor

Segunda Gerao
Hoje, a tecnologia cliente/servidor j caminha para
sua segunda gerao
Essa gerao explora mais o ambiente de rede e
suas mquinas
Surgem novos servidores com a finalidade de
retirar das estaes de trabalho grande parte do
processamento que elas realizam
Os principais elementos dessa nova arquitetura so
os servidores de aplicao e os servidores Web
31

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Geraes Cliente / Servidor

Segunda Gerao
Os servidores de aplicao so responsveis por
retirar o restante da camada de manipulao de
dados que ainda havia na estao cliente
Alm disso, tem o objetivo de concentrar a lgica
de negcio, antes distribuda entre a estao cliente
e o servidor de banco
Normalmente, esse trabalho no feito por um
nico servidor de aplicao e sim por um conjunto
de servidores onde o processamento balanceado
atravs de elementos chamados Midlleware
32

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Geraes Cliente / Servidor

Segunda Gerao
Desta forma resta para a estao cliente o
processamento da interface visual com o usurio,
deixando-a mais leve, exigindo uma menor
configurao e melhorando seu desempenho.
Os servidores Web tentam ir mais longe ainda,
permitindo retirar das estaes de trabalho at
parte da lgica da interface visual, deixando-as
responsveis apenas por interpretar o cdigo
HTML enviado pelos servidores

33

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Geraes Cliente / Servidor

Segunda Gerao
Entretanto, com a utilizao de componentes como
Java e ActiveX, parte do processamento pode
retornar estao de trabalho.
Essas novas tecnologias trazem mais recursos,
mas tornam o ambiente mais complexo e difcil de
ser implementado
Concluso:

preciso estar bem certo do que se pretende e no fazer uso


de uma tecnologia mais nova sem a conhec-la direito ou sem
a real necessidade de utiliz-la

34

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Tpicos a serem pensados em um sistema


Cliente / Servidor

A construo de um sistema Cliente/Servidor


Elementos de um computador Cliente
Opes de computador Cliente
Sistemas Operacionais que podem ser usados com
os computadores Clientes
Como deve ser um computador Servidor
O que deve ser observado neste tipo de
computador
35

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Tpicos a serem pensados em um sistema


Cliente / Servidor

Tipos de Servidores
Acessrios para Servidores
Opes de Servidor
Servidores de Rede Local
Super-Servidores
Servidores de Mdio Porte
Usando Mainframes como Servidores
Sistemas Operacionais para Servidores
36

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Conceitos relacionados

Programa

SO de multiprogramao

Unidade de software executada pela CPU de um


computador sob o controle de um SO
SO que pode ter vrios programas na memria ao
mesmo tempo e alternar a execuo entre eles

Processo ou Tarefa

Cada ativao de um programa

37

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Conceitos relacionados

SO de multitarefa

SO de multiprocessamento

SO que pode compartilhar a CPU entre os vrios


processos
SO que pode controlar mltiplas CPUs de multitarefa,
executando vrios processos ao mesmo tempo

A maior parte dos SOs de multitarefa ou de


multiprocessamento oferecem facilidades de

comunicao entre processos (IPC)


38

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Conceitos relacionados

Comunicao entre Processos

So processos concorrentes que rodam em paralelo a


fim de se comunicarem, estejam eles compartilhando a
mesma CPU, em CPUs mltiplas numa mesma mquina
ou at em mquinas diferentes numa rede se
comunicando um com o outro

A comunicao pode ser:


Por meios dinmicos. Ex.: memria compartilhada
Por meios estticos. Ex.: bloqueio de sistema de arquivo
39

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Conceitos relacionados

Processos Distribudos

So processos concorrentes que se comunicam atravs


de passagem de mensagens, encontrados em
facilidades de IPC
Um tipo especial de IPC a Chamada a Procedimento
Remoto (RPC)

40

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Conceitos relacionados

Processos Distribudos

Existem 4 tipos de processos distribudos

Clientes
Servidores
Filtros: realizam uma operao fixa no fluxo de dados,
passando adiante os resultados para outro processo
Peers (no-hierrquicos): so idnticos um ao outro, e
interagem de forma cooperativa para um trabalho til
A

No-hierarquicos

Filtros

Cliente / Servidor

41

Desenvolvimento de Sistemas
Cliente/Servidor Introduo ao
Cliente / Servidor

Conceitos relacionados

Processos Distribudos

Processos Clientes / Servidor

Processos Clientes enviam pedidos para um processo servidor,


que responde com os resultados para esses pedidos
Processos Servidores oferecem servios aos seus clientes,
normalmente de processamento especfico que s eles podem
fazer
O processo Cliente, livre da complexidade e esforo adicional
do processamento da transao, pode realizar outro trabalho
til
A interao entre os processos cliente e servidor uma troca
cooperativa transacional, onde o cliente o ativo e o servidor
o reativo
42