20
Desenvolvimento de Sistemas Cliente Servidor Introdução ao Modelos de Duas Camadas – Cliente Servidor Cliente Servidor Prof. Esp. MBA Heuber G. F. Lima Aula 1

Introdução ao Modelos de Duas Camadas – Cliente Servidor · Em comparação com o paradigma P2P, onde uma arquitetura P2P, atualizações de dados podem precisar ser distribuída

Embed Size (px)

Citation preview

Desenvolvimento de Sistemas Cliente Servidor

Introdução ao Modelos de Duas Camadas – Cliente Servidor

Cliente Servidor

Prof. Esp. MBA Heuber G. F. Lima

Aula 1

Ciclo de Vida Clássico

� Aonde estamos?

Page � 2

Análise

� O que fizemos na análise?

� O que fizemos no projeto?

� O que fizemos na implementação?

� O que faremos na implantação?

� O que faremos na manutenção?

Page � 3

� O que faremos na manutenção?

Mas enfim, o que é Mas enfim, o que é Desenvolvimento de Sistemas Desenvolvimento de Sistemas Cliente x ServidorCliente x Servidor

Alguns modelos de arquitetura de sistemas

� Modelos de sistemas Locais

� Modelos Cliente-Servidor

� SOA

�Webservices...

Page � 5

Modelo local

� Um único host executa todas as operações necessárias

� Vantagens

– Maior segurança da informação;

– Algumas vezes, podemos ser mais robustos;

– Maior integração com recursos locais (hardware e até mesmo outros softwares);

Page � 6

softwares);

� Desvantagens

– Menor escalabilidade;

– Dificuldade na atualização;

– Não compartilhamento de recursos...

Modelo Cliente x ServidorCliente x Servidor

Modelo Cliente x Servidor - Conceitos

� Cliente-servidor é um modelo computacional que separa clientes e servidores, sendo interligados entre si

� Geralmente utilizando-se uma rede de computadores. Cada instância de um cliente pode enviar requisições de dado para algum dos servidores conectados e esperar pela resposta.

� Por sua vez, algum dos servidores disponíveis pode aceitar tais

Page � 8

� Por sua vez, algum dos servidores disponíveis pode aceitar tais requisições, processá-las e retornar o resultado para o cliente.

� Muitas vezes os clientes e servidores se comunicam através de uma rede de computador com hardwares separados, mas o cliente e servidor podem residir no mesmo sistema.

� A máquina servidor é um host que está executando um ou mais programas de servidor que partilham os seus recursos com os clientes.

Características do Modelo Cliente Servidor

� Serviço

– Cliente-servidor é uma relação entre processos que estão a ocorrer em máquinas diferentes. O processo servidor é o fornecedor dos serviços. O cliente é o consumidor dos serviços. Fundamentalmente uma arquitetura cliente-servidor implementa uma separação lógica de funções baseadas no conceito de serviço

� Recurso Compartilhados

Page � 9

� Recurso Compartilhados

– Um servidor pode servir vários clientes ao mesmo tempo e gerir os acessos a recursos compartilhados;

� Protocolos Assimétricos

– Existe uma relação de muitos-para-um entre clientes e servidor. Os clientes iniciam o diálogo através da requisição de um serviço. Os servidores esperam passivamente os pedidos dos clientes;

Características de um modelo cliente servidor

� Localização Transparente

– O servidor é um processo que pode residir na mesma máquina que o cliente ou numa máquina diferente que esteja ligada através da rede. Um programa pode ter o papel de cliente, de servidor ou de ambos;

� Independência;

– O conceito inerente as arquiteturas cliente-servidor baseia-se em software que

Page � 10

– O conceito inerente as arquiteturas cliente-servidor baseia-se em software que deve ser independente de hardware ou sistemas operacionais;

� Baseados em transmissão de mensagens;

– Clientes e servidores devem estar ligados de forma ‘fraca’; ou seja; não deve ser obrigatório que o serviço esteja executando para que o cliente possa ser executado. Normalmente se comunicam através de mensagens. A mensagem é o mecanismo de transporte para os pedidos e respostas dos serviços

Características do Modelo Cliente Servidor

� Encapsulamento de serviços

– Um servidor deve ser um programa especializado. As mensagens transmite o pedido de serviço ao servidor. O servidor é que deve ser o responsável pela forma como implementa o serviço. A forma de implementar os serviços pode ser melhorada/alterada sem implicações ao nível dos clientes.

� Escalabilidade

Page � 11

– Os sistemas cliente-servidor podem evoluir facilmente quer por adição de novos clientes quer por evolução de novas máquinas servidoras mais potentes.

� Integridade

– O código e dados do servidor devem ser mantidos centralmente. Dessa forma reduzem-se os custos de manutenção e aumenta-se a integridade dos dados.

Características gerais...

� Cada instância de software do cliente pode enviar requisições de dados a um ou mais servidores ligados.

� Por sua vez, os servidores podem aceitar esses pedidos, processá-los e retornar as informações solicitadas para o cliente.

� Embora este conceito possa ser aplicado para uma variedade de razões para diversos tipos de aplicações, a arquitetura permanece

Page � 12

para diversos tipos de aplicações, a arquitetura permanece fundamentalmente a mesma.

Características do Cliente

� Sempre inicia pedidos de servidores;

� Espera por respostas;

� Recebe respostas;

� Normalmente, se conecta a um pequeno número de servidores de uma só vez;

Page � 13

� Normalmente, interage diretamente com os usuários finais através de qualquer interface com o usuário, como interface gráfica do usuário.

� utiliza recursos da rede;

� Clientes são implementados de diversas formas, porém normalmente representam uma aplicação leve, e definem uma interface simples para que se possa acessar as solicitações de serviço.

Características do Servidor

� Sempre esperar por um pedido de um dos clientes;

� Serve os clientes pedidos, em seguida, responde com os dados solicitados aos clientes;

� Um servidor pode se comunicar com outros servidores, a fim de atender uma solicitação do cliente.

� fornece recursos a rede.

Page � 14

� fornece recursos a rede.

Vantagens

� Na maioria dos casos, a arquitetura cliente-servidor permite que os papéis e responsabilidades de um sistema de computação para ser distribuído entre vários computadores independentes que são conhecidos por si só através de uma rede. Isso cria uma vantagem adicional para essa arquitetura:

– Maior facilidade de manutenção. Por exemplo, é possível substituir, reparar, atualizar ou mesmo realocar um servidor de seus clientes, enquanto continuam

Page � 15

atualizar ou mesmo realocar um servidor de seus clientes, enquanto continuam a ser a consciência e não afetado por essa mudança;

� Todos os dados são armazenados nos servidores, que geralmente possuem controles de segurança muito maior do que a maioria dos clientes.

� Servidores podem controlar melhor o acesso e recursos, para garantir que apenas os clientes com as permissões adequadas podem acessar e alterar dados;

Vantagens

� Desde o armazenamento de dados é centralizada, as atualizações dos dados são muito mais fáceis de administrar,

� Em comparação com o paradigma P2P, onde uma arquitetura P2P, atualizações de dados podem precisar ser distribuída e aplicada a cada ponto na rede, que é o time-consuming é passível de erro, como pode haver milhares ou mesmo milhões de pares;

Page � 16

haver milhares ou mesmo milhões de pares;

� Muitas tecnologias avançadas de cliente-servidor já estão disponíveis, que foram projetadas para garantir a segurança, facilidade de interface do usuário e facilidade de uso;

� Funciona com vários clientes diferentes de capacidades diferentes.

Desvantagens

� Redes de tráfego de bloqueio é um dos problemas relacionados com o modelo cliente-servidor. Como o número de solicitações simultâneas de cliente para um determinado servidor, o servidor pode ficar sobrecarregado;

� O paradigma cliente-servidor não tem a robustez de uma rede P2P. Sob cliente-servidor, se um servidor crítico falhar, os pedidos dos clientes não

Page � 17

cliente-servidor, se um servidor crítico falhar, os pedidos dos clientes não podem ser cumpridos.

� Em redes P2P, os recursos são normalmente distribuídos entre vários nós. Mesmo se um ou mais nós partem e abandonam baixar um arquivo, por exemplo, os nós restantes ainda deve ter os dados necessários para completar o download.

Resumindo

� Logo, havendo um cliente, um servidor com serviços e um meio de comunicação entre o cliente e o servidor, está estabelecida uma arquitetura Cliente/Servidor.

� O padrão de arquitetura Cliente/Servidor é utilizado em serviços de bancos de dados, aplicações de groupware, Internet e outros

Page � 18

� Algumas características são resultantes de uma boa implementação de uma arquitetura Cliente/Servidor:

– Usabilidade;

– Escalabilidade;

– Interoperabilidade;

– Flexibilidade.

Page � 19

– Flexibilidade.

[email protected]

Obrigado!Obrigado!