38
Arquitetura Cliente Arquitetura Cliente Servidor Servidor b l d Fabiula de Aquino

Apostilas - cliente servidor - aula 1 - fabiula

Embed Size (px)

Citation preview

Page 1: Apostilas - cliente servidor - aula 1 - fabiula

Arquitetura ClienteArquitetura Cliente ServidorServidor

b l dFabiula de Aquino

Page 2: Apostilas - cliente servidor - aula 1 - fabiula

Objetivos deste encontroObjetivos deste encontro

• Definição dos conceitos relacionados– Cliente/Servidor/– Distribuindo papéisCliente– Cliente

• Gordo e magro

d– Servidor– Vantagens e Desvantagens da arquitetura– Web‐Based

Page 3: Apostilas - cliente servidor - aula 1 - fabiula

Cliente/ServidorCliente/Servidor

• O termo Cliente/Servidor refere‐se ao métodode distribuição de aplicações computacionaisç p ç patravés de muitas plataformas. Tipicamenteessas aplicações estão divididas entre umessas aplicações estão divididas entre umprovedor de acesso e uma central de dados enumerosos clientes contendo uma interfacenumerosos clientes contendo uma interfacegráfica para usuários para acessar e manipulardados.

Page 4: Apostilas - cliente servidor - aula 1 - fabiula

Cliente/ServidorCliente/Servidor

• Modelo onde dois ou mais computadoresinteragem de modo que um oferece osg qserviços aos outros.

• Este modelo permite aos usuários acessarem• Este modelo permite aos usuários acessareminformações e serviços de qualquer lugar.

Page 5: Apostilas - cliente servidor - aula 1 - fabiula

Cliente/ServidorCliente/Servidor

• Arquitetura computacional que envolverequisições de serviços de clientes paraq ç ç pservidores. Uma rede Cliente/Servidor é umaextensão lógica da programação modularextensão lógica da programação modular.

Page 6: Apostilas - cliente servidor - aula 1 - fabiula

Cliente/ServidorCliente/Servidor

• Uma aplicação Cliente/Servidor pode serestruturada em três níveis:– Interface com o usuárioProcessamento– Processamento

– Dados

• Simples requer dois tipos de máquinas:– Cliente: executa programas que compreendem aCliente: executa programas que compreendem ainterface com o usuário;

– Servidor: implementa camadas de processamento e– Servidor: implementa camadas de processamento ede dados.

Page 7: Apostilas - cliente servidor - aula 1 - fabiula

Cliente ServidorCliente Servidor

Page 8: Apostilas - cliente servidor - aula 1 - fabiula

Cliente ServidorCliente Servidor

• Na alternativa (a), executa‐se no cliente só aparte da interface dependente do terminalp p

• Na alternativa (b), todo o software deinterface com usuário executa no clienteinterface com usuário executa no cliente

• Exemplo da alternativa (c): verificação deconsistência do preenchimento de umformulário feito no clienteformulário feito no cliente

Page 9: Apostilas - cliente servidor - aula 1 - fabiula

Cliente ServidorCliente Servidor

• Na alternativa (d), a aplicação executa namáquina cliente, indo para o servidor somenteq pas operações sobre as base de dados.Exemplo:Exemplo:– muitas aplicações bancárias;

• Na alternativa (e), o disco local no clientemantêm parte dos dados.p

• Exemplo: browser web mantendo uma cachê;

Page 10: Apostilas - cliente servidor - aula 1 - fabiula

Cliente ServidorCliente Servidor

• Recentemente tem‐se evitado as alternativas(d) e (e) devido a problemas de( ) ( ) pgerenciamento e por tornar o software clientedependente da plataforma subjacente dodependente da plataforma subjacente doclientel ( b ( ) ( ))• Clientes gordos (abordagens (d) e (e)):evitar;

• Clientes magros (abordagens (a) a (c)): maisClientes magros (abordagens (a) a (c)): maisfáceis de gerenciar.

Page 11: Apostilas - cliente servidor - aula 1 - fabiula

ClienteCliente

• Sempre inicia pedidos de servidores;• Espera por respostas;Espera por respostas;• Recebe respostas;• Normalmente, se conecta a um pequenonúmero de servidores de uma só vez;;

• Normalmente, interage diretamente com osá i fi i t é d l i t fusuários finais através de qualquer interface

com o usuário , como interface gráfica dousuário.

Page 12: Apostilas - cliente servidor - aula 1 - fabiula

ClienteCliente

• Cliente, também denominado de “front‐end”e “WorkStation”, é um processo que interagep q gcom o usuário através de uma interface gráficaou não permitindo consultas ou comandosou não, permitindo consultas ou comandospara recuperação de dados e análise erepresentando o meio pela qual os resultadosrepresentando o meio pela qual os resultadossão apresentados.

Page 13: Apostilas - cliente servidor - aula 1 - fabiula

ClienteCliente

• Além disso, apresenta algumas característicasdistintas:– É o processo ativo na relação Cliente/Servidor.Inicia e termina as conversações com os– Inicia e termina as conversações com osServidores, solicitando serviços distribuídos.Nã i t Cli t– Não se comunica com outros Clientes.

– Torna a rede transparente ao usuário.

Page 14: Apostilas - cliente servidor - aula 1 - fabiula

ServidorServidor

• Sempre esperar por um pedido de um dosclientes;

• Serve os clientes pedidos, em seguida,responde com os dados solicitados aosresponde com os dados solicitados aosclientes;

• Um servidor pode se comunicar com outrosservidores, a fim de atender uma solicitaçãoservidores, a fim de atender uma solicitaçãodo cliente.

Page 15: Apostilas - cliente servidor - aula 1 - fabiula

ServidorServidor

• Também denominado Servidor ou “back‐end”,fornece um determinado serviço que ficaf ç qdisponível para todo Cliente que o necessita. Anatureza e escopo do serviço são definidosnatureza e escopo do serviço são definidospelo objetivo da aplicação Cliente/Servidor.

Page 16: Apostilas - cliente servidor - aula 1 - fabiula

ServidorServidor

• Além disso, ele apresenta ainda algumaspropriedades distintas:p p– É o processo reativo na relação Cliente/Servidor.Possui uma execução contínua– Possui uma execução contínua.

– Recebe e responde às solicitações dos Clientes.– Não se comunica com outros Servidores enquantoestiver fazendo o papel de Servidor.

– Presta serviços distribuídos.– Atende a diversos Clientes simultaneamente.Atende a diversos Clientes simultaneamente.

Page 17: Apostilas - cliente servidor - aula 1 - fabiula

Organização de ServidoresOrganização de Servidores

• Servidor interativo: o próprio servidormanipula a requisição e, se necessário,p q çretorna uma resposta ao cliente;

• Servidor concorrente: repassa para uma• Servidor concorrente: repassa para umathread ou processo em separado a requisição

l óe imediatamente espera pela próximarequisição

Page 18: Apostilas - cliente servidor - aula 1 - fabiula

Tipos de servidoresTipos de servidores

• Servidor de Arquivos• Servidor de ImpressoraServidor de Impressora• Servidor de Banco de Dados• Servidor de Redes• Servidor de TelexServidor de Telex• Servidor de Fax• Servidor de Processamento e Imagens• Servidor de Comunicação e etc• Servidor de Comunicação e etc.

Page 19: Apostilas - cliente servidor - aula 1 - fabiula

Comunicação Cliente/ServidorComunicação Cliente/Servidor

• Através de portas conhecidas designadas pelaAutoridade para Atribuição de Números nap çInternet (Iana). Ex: FTP‐21, HTTP‐80

• Através de um daemon que registra os• Através de um daemon que registra osservidores em execução

• Através de um superservidor, que escuta emvárias portas e repassa a requisição a umvárias portas e repassa a requisição a umservidor específico.

Page 20: Apostilas - cliente servidor - aula 1 - fabiula

Uma intervenção cliente/servidorUma intervenção cliente/servidor

Page 21: Apostilas - cliente servidor - aula 1 - fabiula

VantagensVantagens

• Na maioria dos casos, a arquiteturacliente/servidor permite que os papéis ep q p presponsabilidades de um sistema decomputação possam ser distribuídos entrecomputação possam ser distribuídos entrevários computadores independentes que sãoconhecidos por si só através de uma redeconhecidos por si só através de uma rede.

Page 22: Apostilas - cliente servidor - aula 1 - fabiula

VantagensVantagens

• Isso cria uma vantagem adicional para essaarquitetura:q– Maior facilidade de manutenção. Por exemplo, épossível substituir, reparar, atualizar ou mesmopossível substituir, reparar, atualizar ou mesmorealocar um servidor de seus clientes, enquantocontinuam a ser a consciência e não afetado porcontinuam a ser a consciência e não afetado poressa mudança;

Page 23: Apostilas - cliente servidor - aula 1 - fabiula

VantagensVantagens

• Todos os dados são armazenados nosservidores, que geralmente possuemq g pcontroles de segurança muito maior do que amaioria dos clientesmaioria dos clientes.

• Servidores podem controlar melhor o acesso elrecursos, para garantir que apenas os clientes

com as permissões adequadas podem acessare alterar dados;

Page 24: Apostilas - cliente servidor - aula 1 - fabiula

VantagensVantagens

• O armazenamento de dados é centralizada, asatualizações dos dados são muito mais fáceisçde administrar, em comparação com oparadigma P2P onde uma arquitetura P2Pparadigma P2P, onde uma arquitetura P2P,atualizações de dados podem precisar serdistribuída e aplicada a cada ponto na rededistribuída e aplicada a cada ponto na rede,que é o timeconsuming é passível de erro,como pode haver milhares ou mesmo milhõesde pares;

Page 25: Apostilas - cliente servidor - aula 1 - fabiula

VantagensVantagens

• Muitas tecnologias avançadas declientes/servidor já estão disponíveis, quej p qforam projetadas para garantir a segurança,facilidade de interface do usuário e facilidadefacilidade de interface do usuário e facilidadede uso;

á l f• Funciona com vários clientes diferentes decapacidades diferentes.

Page 26: Apostilas - cliente servidor - aula 1 - fabiula

VantagensVantagens

• Confiabilidade– Se uma máquina apresenta algum problema,q p g p ,ainda que seja um dos Servidores, parte doSistema continua ativo.

• Matriz de Computadores agregando capacidade de processamentocapacidade de processamento– A arquitetura Cliente / Servidor provê meios paraque as tarefas sejam feitas sem a monopolizaçãodos recursos. Usuários finais podem trabalharlocalmente.

Page 27: Apostilas - cliente servidor - aula 1 - fabiula

VantagensVantagens

• O Sistema cresce facilmente– Torna‐se fácil modernizar o Sistema quandoqnecessário.

• O Cliente e o Servidor possuem ambientes• O Cliente e o Servidor possuem ambientesoperacionais individuais / Sistemas Abertos– Pode‐se misturar várias plataformas para melhoratender às necessidades individuais de diversossetores e usuários.

Page 28: Apostilas - cliente servidor - aula 1 - fabiula

DesvantagensDesvantagens

• Redes de tráfego de bloqueio é um dosproblemas relacionados com o modelopcliente/servidor.– Como o número de solicitações simultâneas de– Como o número de solicitações simultâneas decliente para um determinado servidor, o servidorpode ficar sobrecarregado;pode ficar sobrecarregado;

Page 29: Apostilas - cliente servidor - aula 1 - fabiula

DesvantagensDesvantagens

• O paradigma cliente/servidor não tem arobustez de uma rede P2P.– Sob cliente/servidor, se um servidor crítico falhar,os pedidos dos clientes não podem ser cumpridos.os pedidos dos clientes não podem ser cumpridos.

– Em redes P2P, os recursos são normalmentedistribuídos entre vários nós Mesmo se um oudistribuídos entre vários nós. Mesmo se um oumais nós partem e abandonam baixar um arquivo,por exemplo os nós restantes ainda deve ter ospor exemplo, os nós restantes ainda deve ter osdados necessários para completar o download.

Page 30: Apostilas - cliente servidor - aula 1 - fabiula

DesvantagensDesvantagens

• Manutenção– As diversas partes envolvidas nem semprep pfuncionam bem juntas. Quando algum erroocorre, existe uma extensa lista de itens a serem,investigados.

• Ferramentas• Ferramentas– A escassez de ferramentas de suporte, não raras

b i d l i d fvezes obriga o desenvolvimento de ferramentaspróprias. Em função do grande poderio das novasli d ã difi ld d álinguagens de programação, esta dificuldade estáse tornando cada vez menor.

Page 31: Apostilas - cliente servidor - aula 1 - fabiula

DesvantagensDesvantagens

• Treinamento– A diferença entre a filosofia de desenvolvimentoçde software para o microcomputador de umfabricante para o outro, não é como a de umap ,linguagem de programação para outra. Umtreinamento mais efetivo torna‐se necessário.

• GerenciamentoA d l id d d bi– Aumento da complexidade do ambiente e aescassez de ferramentas de auxílio tornam difícil o

i d dgerenciamento da rede.

Page 32: Apostilas - cliente servidor - aula 1 - fabiula

Arquitetura Web BasedArquitetura Web‐Based

• Então, usamos o Browser como ClienteUniversal

• Conceito de IntranetA d d li ã b d• A camada de aplicação se quebra em duas:Web e Aplicação

• Evitamos instalar qualquer software nodesktop e portanto problemas dedesktop e portanto, problemas demanutenção

Page 33: Apostilas - cliente servidor - aula 1 - fabiula

Arquitetura Web BasedArquitetura Web‐Based

• Evitar instalação em computadores declientes, parceiros, fornecedores, etc.p

• Às vezes, continua se a chamar isso de 3camadas porque as camadas Web e Aplicaçãocamadas porque as camadas Web e Aplicaçãofrequentemente rodam na mesma máquina( l )(para pequenos volumes)

Page 34: Apostilas - cliente servidor - aula 1 - fabiula

Arquitetura Web BasedArquitetura Web‐Based

Classe Mãe

Generaliza

E i liEspecializa

Classe Filha

Page 35: Apostilas - cliente servidor - aula 1 - fabiula

Problemas da Web BasedProblemas da Web‐Based

• Não há suporte a Thin Clients (PDA, celulares,smart cards, quiosques, ...)q q )– preciso usar um browser (pesado) no cliente

• Dificuldade de criar software reutilizável• Dificuldade de criar software reutilizável– cadê a componentização?

Page 36: Apostilas - cliente servidor - aula 1 - fabiula

Problemas da Web BasedProblemas da Web‐Based

• Fazer aplicações distribuídas multicamadas édifícil. Pois deve‐se– Implementar persistência (impedance mismatchentre o mundo OO e o mundo dos BDsentre o mundo OO e o mundo dos BDsrelacionais)Implementar tolerância a falhas com failover– Implementar tolerância a falhas com failover

– Implementar gerência de transações distribuídas– Implementar balanceamento de carga– Implementar resource poolingp p g

Page 37: Apostilas - cliente servidor - aula 1 - fabiula

Só isso?Só isso?

Ú ?• DÚVIDAS?

Page 38: Apostilas - cliente servidor - aula 1 - fabiula

ReferênciasReferências

• (AMARAL,1993) Amaral, W. H. “Arquitetura Cliente/Servidor Orientada a Objeto” Tese de jMestrado, IME, 1993.

• (NAVATHE 1994) Navathe Shamkant B &• (NAVATHE,1994) Navathe, Shamkant B. & Elmasri, Ramez “Fundamentals of Database

”Systems” 2nd Ed., Benjamin Cummings, CA, 1994.