Buscar

Unidade III - Modelo Cliente-Servidor

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 47 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 47 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 47 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

UNIVERSIDADE ESTÁCIO DE SÁ
REDES DE COMPUTADORES
SISTEMAS DE INFORMAÇÃO
Arquitetura de Sistemas Distribuídos
Prof. Fernando André
fandre.gomes@yahoo.com.br
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Cliente-Servidor
Conceitos:
“É uma arquitetura onde o processamento da informação é dividido em
módulos ou processos distintos. Um processo é responsável pela
manutenção da informação (Servidor), enquanto que outro é responsável
pela obtenção dos dados (Cliente)”. BATTISTI, (2001, pág. 38).
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Cliente-Servidor
Conceitos:
“Sistema inovador surgido nos anos 90 e muito utilizado no meio
corporativo, baseado em três componentes principais: gerenciamento de
banco de dados, que funcionam como servidores; redes, que funcionam
como meio de transporte de dados e, finalmente, softwares para acesso aos
dados: Clientes”. BATTISTI, (2001, pág 39).
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Cliente-Servidor
Estrutura Básica
Em uma rede de computadores existem uma ou mais máquinas que atuam
como servidores, disponibilizando recursos para as demais máquinas, as quais
atuam como clientes.
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Cliente-Servidor
Estrutura Básica
Os servidores oferecem serviços a processos usuários, ou seja, executam a
tarefa solicitada e enviam uma resposta ao cliente que se traduz nos dados
solicitados.
Os clientes solicitam um determinado serviço, através do envio de uma
mensagem ao servidor. Enquanto o processo servidor está trabalhando a
solicitação, o cliente está livre para realizar outras tarefas.
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Cliente-Servidor
Cliente
O processo cliente realiza o envio das mensagens fazendo algum pedido ao
servidor.
O cliente é a parte que interage com o usuário, possui a interface que o
usuário utiliza para requisitar as tarefas ao servidor, sendo chamado de
front-end da aplicação.
Os processos clientes gerenciam as atividades dos usuários e realizam as
validações dos dados informados por estes.
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Cliente-Servidor
Modelo de Cliente-Magro
Em um modelo cliente-magro, todo o processamento de aplicação e o
gerenciamento de dados é realizado no servidor. O cliente é responsável,
simplesmente por executar o software de apresentação.
Modelo de Cliente-Gordo
Nesse modelo, o servidor é responsável somente pelo gerenciamento de
dados. O software do cliente implementa a lógica da aplicação e as
interações com o usuário do sistema.
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Cliente-Servidor
Modelo Cliente-Magro (Thin-client) 
 Apresentação 
 
 
Modelo Cliente-Gordo (fat client) Apresentação 
 
 Processamento de aplicações 
Figura – Clientes Magros e Gordos 
Cliente 
Cliente 
Gerenciamento de dados 
Processamento de aplicações 
Gerenciamento de dados 
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Cliente-Servidor
Servidor
É o processo que responde a uma mensagem solicitando a realização de
alguma tarefa por parte do cliente. O processo servidor é chamado de back-
end.
O processo servidor pode oferecer serviços a muitos clientes, realiza
pesquisas, filtragens e atualizações em bancos de dados.
Os serviços podem ser realizados diretamente pelo processo servidor ou
através de processos escravos criados por este para atender cada pedido do
cliente, o que libera o processo mestre do servidor para receber outras
solicitações.
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Cliente-Servidor
Servidor Dedicado
Um servidor dedicado, também chamado de servidor de alojamento
dedicado ou ainda de servidor de hospedagem é um conjunto de sistemas
com determinadas características, configuradas para o tipo de função a
realizar, que pode ser desde o alojamento de arquivos, emails, fóruns ou
páginas da Internet.
Além da alta segurança e sigilo na informação, um servidor
dedicado permite ainda uma alta performance na gestão de todos os seus
conteúdos. Dispõe também de dispositivos de alta segurança, como
geradores próprios, para o caso de falta de energia e de pessoal
especializado na sua manutenção.
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Cliente-Servidor
Transparência de Localização
Um aspecto importante nos sistemas cliente/servidor:
Transparência
Para o usuário não deve existir diferença entre acessar um recurso local ou
remoto, não deve ser motivo de preocupação para o usuário a localização
do servidor e a natureza da comunicação.
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Cliente-Servidor
Vantagens
Confiabilidade
Se uma máquina apresenta algum problema, ainda que seja um dos
Servidores, parte do Sistema continua ativo.
Matriz de Computadores agregando capacidade de processamento
A arquitetura Cliente / Servidor provê meios para que as tarefas sejam feitas
sem a monopolização dos recursos. Usuários finais podem trabalhar
localmente.
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Cliente-Servidor
Vantagens
O Sistema cresce facilmente
Torna-se fácil modernizar o Sistema quando necessário.
O Cliente e o Servidor possuem ambientes operacionais
individuais/Sistemas Abertos
Pode-se misturar várias plataformas para melhor atender às necessidades
individuais de diversos setores e usuários.
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Cliente-Servidor
Desvantagens
Manutenção
As diversas partes envolvidas nem sempre funcionam bem juntas. Quando
algum erro ocorre, existe uma extensa lista de itens a serem investigados.
Ferramentas
A escassez de ferramentas de suporte, não raras vezes obriga o
desenvolvimento de ferramentas próprias. Em função do grande poderio
das novas linguagens de programação, esta dificuldade está se tornando
cada vez menor.
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Cliente-Servidor
Desvantagens
Treinamento
A diferença entre a filosofia de desenvolvimento de software para o
microcomputador de um fabricante para o outro, não é como a de uma
linguagem de programação para outra. Um treinamento mais efetivo torna-
se necessário.
Gerenciamento
Aumento da complexidade do ambiente e a escassez de ferramentas de
auxílio tornam difícil o gerenciamento da rede.
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Cliente-Servidor
Arquitetura em Duas Camadas
No início da utilização do modelo Cliente/Servidor, as aplicações foram
desenvolvidas utilizando-se um modelo de desenvolvimento em duas
camadas.
Neste modelo, um programa, normalmente desenvolvido em um ambiente
de desenvolvimento, como o Visual Basic, Delphi ou Power Builder, é
instalado em cada Cliente.
Este programa acessa dados em um servidor de Banco de dados.
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Cliente-Servidor
Arquitetura em Duas Camadas
A configuração usual Cliente/Servidor encontrada na maioria das empresas,
é aquela em que existem vários Clientes requisitando serviços a um único
Servidor.
Esta arquitetura se caracteriza como sendo centrada no Servidor. Porém na
visãodo usuário, ele imagina que existem vários Servidores conectados a
somente um Cliente, ou seja, centrado no Cliente. Entretanto, com as várias
ligações de comunicação possíveis, existe na realidade uma mistura de
Clientes e Servidores.
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Cliente-Servidor
Arquitetura em Duas Camadas
O cliente comunica-se diretamente com o servidor.
• A base de dados fica no servidor;
• As regras e a lógica da aplicação no cliente;
• Problema de manutenção - toda vez que uma aplicação for alterada,
tanto bancos de dados como aplicações clientes precisam ser
alteradas;
• A aplicação cliente precisa ser instalada em todos os nós.
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Cliente-Servidor
Arquitetura em Duas Camadas
Figura – Modelo 2 Camadas
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Cliente-Servidor
Arquitetura em Três Camadas
Todo o acesso do cliente ao Banco de dados, é feito de acordo com as regras
contidas no Servidor de aplicações. O cliente não tem acesso direto ao
Banco de dados, sem antes passar pelo servidor de aplicações. Com isso as
três camadas são as seguintes:
• Apresentação;
• Lógica;
• Dados.
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Cliente-Servidor
Arquitetura em Três Camadas
Camada de Apresentação
Como em duas camadas o programa continua instalado no cliente.
Alterações na Interface do programa, geram a necessidade de atualizar a
aplicação em todos os computadores, onde esta está sendo utilizada.
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Cliente-Servidor
Arquitetura em Três Camadas
Camada Lógica
São as regras do negócio, as quais determinam de que maneira os dados serão
utilizados. Esta camada foi deslocada para o Servidor de aplicações. Desta
maneira, quando uma regra do negócio for alterada, basta atualizá-la no
Servidor de aplicações.
Após a atualização, todos os usuários passarão a ter acesso a nova versão, sem
que seja necessário reinstalar o programa em cada um dos computadores da
rede.
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Cliente-Servidor
Arquitetura em Três Camadas
Camada de Dados
Nesta camada temos o servidor de Banco de dados, no qual reside toda a
informação necessária para o funcionamento da aplicação. Cabe ressaltar,
novamente, que os dados somente são acessados através do Servidor de
aplicação, e não diretamente pela aplicação Cliente.
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Cliente-Servidor
Arquitetura em Três Camadas
Figura – Modelo 3 Camadas
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Cliente-Servidor
Arquitetura em Três Camadas
Figura – Modelo 3 Camadas
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Cliente-Servidor
Arquitetura em Quatro Camadas
A ideia básica do modelo de 4 camadas, é retirar a apresentação do cliente e
centralizá-las em um determinado ponto, o qual na maioria dos casos é um
servidor Web.
Com isso o próprio Cliente deixa de existir como um programa que precisa
ser instalado em cada computador da rede. O acesso a aplicação, é feito
através de um Navegador, como o Internet Explorer ou o Mozilla Firefox.
Às vezes, continua-se a chamar de 3 camadas porque as camadas Web e
Aplicação frequentemente rodam na mesma máquina (para pequenos
volumes)
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Cliente-Servidor
Arquitetura em Quatro Camadas
Para acessar a aplicação, o cliente acessa o endereço da aplicação,
utilizando o seu navegador.
Por exemplo http://www.empresa-abc.com/sistemas/cadastro.asp . Todo o
acesso do cliente ao Banco de dados, é feito de acordo com as regras
contidas no Servidor de aplicações. O cliente não tem acesso direto ao
Banco de dados, sem antes passar pelo servidor de aplicações. Com isso as
quatro camadas são as seguintes:
• Camada de Cliente;
• Camada de Apresentação;
• Camada Lógica;
• Camada de Dados.
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Cliente-Servidor
Arquitetura em Quatro Camadas
Camada de Cliente
Nesta caso o Cliente é o Navegador utilizado pelo usuário, quer seja o
Internet Explorer, quer seja o Netscape Navigator, ou outro Navegador
qualquer.
Camada de Apresentação
Essa camada fica instalada em um Servidor Web. A interface pode ser
composta de páginas HTML, ASP, ou qualquer outra tecnologia capaz de
gerar conteúdo para o Navegador.
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Cliente-Servidor
Arquitetura em Quatro Camadas
Camada Lógica
São as regras do negócio, as quais determinam de que maneira os dados
serão utilizados.
Esta camada está no Servidor de aplicações. Desta maneira, quando uma
regra do negócio for alterada, basta atualizá-la no Servidor de aplicações.
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Cliente-Servidor
Arquitetura em Quatro Camadas
Camada Lógica
São as regras do negócio, as quais determinam de que maneira os dados
serão utilizados.
Esta camada está no Servidor de aplicações. Desta maneira, quando uma
regra do negócio for alterada, basta atualizá-la no Servidor de aplicações.
Camada de Dados 
Nesta camada temos o servidor de Banco de dados, no qual reside toda a
informação necessária para o funcionamento da aplicação.
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Cliente-Servidor
Arquitetura em Quatro Camadas
Figura – Modelo 4 Camadas
Arquitetura de Sistemas Distribuídos
Unidade 3. Comunicação nos Sistemas Distribuídos 
3.5. Modelo Peer-to-Peer 
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Peer-to-Peer
Definição
“São sistemas distribuídos compostos de nós interconectados, aptos a se auto-
organizar em topologias de rede, com o intuito de compartilhar recursos, como
conteúdo, ciclos de CPU, largura de banda e armazenamento, com a capacidade
de adaptação a faltas e acomodação a um número variável de nós, ao mesmo
tempo que mantém a conectividade e o desempenho em níveis aceitáveis, sem
a necessidade de suporte ou intermediação de um servidor centralizado.”
(Adroutsellis-Theotokis & Spinellis, 2004)
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Peer-to-Peer 
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Peer-to-Peer
Características
• Auto-organização: não há um coordenador da organização, não há
um coordenador do Grupo, toda a coordenação é distribuída;
• Adaptabilidade: a rede se ajusta ao ambiente mesmo que ocorram
falhas;
• Escalabilidade: a rede cresce em grande escala, não há ponto de
estrangulamento;
• Comunicação direta entre os pares: se opõe ao tradicional modelo
cliente-servidor. Cada servidor e cada nó pode fornecer ou obter
recursos.
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Peer-to-Peer 
Utilização
• Compartilhamento de arquivos, imagens, músicas, vídeos, etc.;
• Atualização de sistemas operacionais e de software aplicativo;
• Gerenciamento de redes e sistemas;
• Processamento distribuído;
• Sincronização de bancos de dados;
• Difusão de informações;
• etc.
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Peer-to-Peer 
Arquitetura de Redes P2P
Classificação da Arquiteturade Redes P2P
• Arquitetura Centralizada: utiliza um servidor central para controle de
acesso à rede, para publicação e pesquisa de conteúdo;
• Arquitetura Descentralizada: todos os peers possuem funcionalidade
equivalente;
• Arquitetura Híbrida: alguns peers especiais são chamados de
supernós, possuem um papel diferenciado na rede.
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Peer-to-Peer
Arquitetura de Redes P2P
Centralizada
• Um servidor central controla as entradas e saídas de peers da rede;
• Os peers registram no servidor central os recursos que
compartilharão na rede;
• Pesquisas por recursos disponíveis nos peers são efetuadas pelo
servidor central;
• O acesso aos recursos é feito diretamente entre peers;
• Exemplos: Napster, eMule.
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Peer-to-Peer 
Arquitetura de Redes P2P
Híbrida
• Supernós permitem o ingresso dos nós na rede, podendo também
exercer atividades de coordenação do funcionamento da rede,
indexar os recursos compartilhados pelos nós e permitir a busca por
estes recursos;
• Após localizado, um recurso pode ser obtido a partir da interação
direta entre nós;
• Falha de um supernó pode ser tolerada elegendo dinamicamente
outro supernó;
• Exemplos: Kazzaa, Skype.
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Peer-to-Peer 
Arquitetura de Redes P2P
Híbrida
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Peer-to-Peer 
Arquitetura de Redes P2P
Descentralizada
• Não há um elemento central;
• Todos os nós possuem papel equivalente;
• As pesquisas por recursos compartilhados são feitas por inundação
(flooding);
• Gera um alto tráfego na rede;
• Desempenho das pesquisas é ruim devido à necessidade de contactar
muitos nós e aguardar a resposta;
• Exemplos: Gnutella e JXTA.
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Peer-to-Peer 
Exemplos de Redes P2P
eMule
• Utiliza vários servidores “centrais” que fazem a indexação de arquivos
compartilhados;
• As bases de dados usadas pelos servidores para indexação são
independentes;
• Os peers podem se conectar a um ou mais servidores para efetuar
buscas;
• Os downloads são feitos diretamente entre peers, sendo possível
baixar partes de um arquivo a partir de diferentes peers.
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Peer-to-Peer 
Exemplos de Redes P2P
Gnutella
• Um nó entra na rede se conectando a qualquer outro nó já existente;
• Cada nó faz o papel de cliente para realizar buscas, baixar arquivos de
servidor para responder as buscas e pedidos de download;
• O protocolo define as mensagens que podem ser trocadas entre nós
para fazer pesquisas de arquivos e baixa-los;
• Foi aperfeiçoado para tornar--se mais escalável de ser totalmente
descentralizado (Ultrapeers e QRP –– Query Routing Protocol).
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Peer-to-Peer 
Exemplos de Redes P2P
JXTA
• Proposto pela Sun;
• Provê uma infra-estrutura simples de rede P2P com estrutura simples
de rede P2P sobre a qual podem ser criadas aplicações que
empregam este paradigma de comunicação;
• Cria grupos de pares com interesses comuns;
• Mensagens JXTA são codificadas em XML;
• Permite estabelecimento de conexões seguras;
• Possui uma implementação padrão em Java.
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Peer-to-Peer 
Exemplos de Redes P2P
Kazaa
• Utiliza supernós para acesso à rede e para busca e indexação de
conteúdo;
Skype
• Permite comunicação por áudio ou vídeo entre usuários;
• Utiliza supernós e um servidor de login.
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Peer-to-Peer 
Exemplos de Redes P2P
BitTorrent
• Protocolo P2P para download de arquivos;
• Há vários aplicativos clientes compatíveis;
• O arquivo compartilhado é dividido em vários pedaços, que são
baixados simultaneamente;
• Pedaços recebidos já são compartilhados;
• O protocolo engloba mecanismos para:
o Controlar a integridade dos pedaços de arquivos baixados;
o Recompensar quem compartilha arquivos, e penalizar quem tira
proveito e não colabora.
Arquitetura de Sistemas Distribuídos
Comunicação nos Sistemas Distribuídos
Modelo Peer-to-Peer
Exemplos de Redes P2P
BitTorrent
• Arquivo .torrent;
o Criado por nó seed, que compartilha arquivo;
o Contém metadados que descrevem o que descrevem o arquivo e
permitem verificar sua integridade;
o Indica servidores tracker;
o Servidores tracker;
o Coordenam a distribuição de arquivos;
o Indicam os nós para download;
o Controlam a velocidade do download;
o Se o nó não colabora (leech), perde banda.

Materiais relacionados

Perguntas relacionadas

Materiais recentes

Perguntas Recentes