Introdução ao Modelos de Duas Camadas – Cliente Servidor Desenvolvimento de Sistemas 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 Mas enfim, o que é Desenvolvimento de Sistemas Cliente 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); Desvantagens – Menor escalabilidade; – Dificuldade na atualização; – Não compartilhamento de recursos... Page 6 Modelo Cliente 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 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. Page 8 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 – 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; Page 9 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 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 Page 10 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 – 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. Page 11 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 fundamentalmente a mesma. Page 12 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; 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. Page 13 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 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 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; Page 15 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; 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. Page 16 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 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. Page 17 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 Obrigado! [email protected]