DS+Cliente+Servidor-+aula+1+-+Introdu%C3%A7%C3%A3o+ao+Cliente+Servidor

42
Desenvolvimento de Sistemas Cliente/Servidor UNICEUMA Departamento de Informática Prof. Msc. Eduardo Freire [email protected]

description

cliente servidor

Transcript of DS+Cliente+Servidor-+aula+1+-+Introdu%C3%A7%C3%A3o+ao+Cliente+Servidor

Desenvolvimento de Sistemas

Cliente/Servidor

UNICEUMADepartamento de Informática

Prof. Msc. Eduardo [email protected]

2

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Introdução ao modelo Cliente / Servidor

“A necessidade da empresa em se tornar mais competitiva com a globalização, fez com que se

começasse a pensar em downsizing ligado a redução de custos...

É dado o marco inicial a computação Cliente/Servidor”

3

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Introdução 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 aplicação cliente requisitava um serviço que era então executado pelo programa servidor

Entretanto, esse termo ainda não distinguia se o programa cliente e o programa servidor estavam sendo executados em uma mesma máquina ou em máquinas diferentes

4

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Introdução ao modelo Cliente / Servidor Hoje, quando se fala em cliente/servidor, está se

referindo a um processamento cooperativo distribuído, onde o relacionamento entre clientes e servidores são relacionamentos entre componentes tanto de software quanto de hardware

Portanto, estaremos interessados na arquitetura cliente/servidor envolvendo duas ou mais máquinas em um processo cooperativo para executar a aplicação

5

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Mudanças de Paradigma Paradigma Tradicional

A visão tradicional da computação era centralizada na figura do computador que concentrava todos os serviços e recursos fornecidos aos usuários

O acesso a esses computadores era feito diretamente pelo usuário através de teclados e monitores

6

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Mudanças de Paradigma Paradigma Tradicional

Em alguns casos, essa máquina era um equipamento poderoso capaz de atender vários usuários simultaneamente (Mainframe) – Figura 1

Em outros casos eram pequenos computadores isolados capazes de atender um único usuário de cada vez – Figura 2

Figura 1 Figura 2

7

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Mudanças de Paradigma Paradigma Tradicional

Problemas: Para que essas máquinas pudessem acompanhar a crescente

demanda de novos recursos e serviços seria necessário expandir seus recursos de memória e processamento

No caso de se utilizar apenas uma máquina servindo vários usuários (Mainframe), seria difícil expandir ainda mais seus recursos para suportar as novas demandas tecnológicas, principalmente a interface gráfica

Por outro lado, através de várias máquinas isoladas, os serviços teriam que ser replicados e cada máquina incrementada para suportar tal processamento

Além disso, essa alternativa não provê uma maneira de comunicação entre os usuários

8

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Mudanças de Paradigma Paradigma Tradicional

Soluções: Surgiu-se a necessidade de interligar essas máquinas, para

que juntas pudessem fornecer um número maior de benefícios Apareceram ambientes de redes que permitiam a distribuição

de recursos e serviços em locais diferentes, aumentando a capacidade do usuário final

Conseqüência: máquinas que tinham que ser equipamentos caros e poderosos podiam ser aos poucos substituídas por várias máquinas menores e de custo mais baixo, mas que através de um processo cooperativo conseguiam prover funcionalidade maior

9

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Mudanças de Paradigma Paradigma Cliente / Servidor

Modelo que faz um aplicativo ficar passivamente esperando dados e um outro de iniciar a comunicação enviando dados

Os termos cliente-servidor se refere-se basicamente a dois aplicativos envolvidos numa comunicação Cliente é o aplicativo que iniciar a comunicação Servidor é o aplicativo que espera passivamente o contato

10

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Definições 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 computação necessários para execução do trabalho, utilizando-se de um aplicativo dividido em três componentes básicos, um cliente, um servidor e uma rede conectando os dois” (Revista Eletrônica da UNIFIEO)

11

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Definições para Cliente / Servidor 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

12

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

O que pode fazer uma computação Cliente / Servidor? Cria aplicativos para negócios personalizados que acessem

dados em Mainframes, mas que sejam tão fáceis de usar quanto os aplicativos PC prontos para uso, tais como editores de texto e planilhas eletrônicas

Desenvolve aplicativos que possibilitam o acesso à dados armazenados em sistemas de computador de outro modo incompatíveis

Cria um sistema de informações executivo que reúne uma grande quantidade de informações, geralmente armazenadas em computadores Mainframes

13

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Alguns dos principais aplicativos para o modelo Cliente/Servidor Aplicativos de Banco de Dados Aplicativos de Processamento de Transação Correio Eletrônico Groupware

14

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Alguns dos principais benefícios do modelo Cliente/Servidor para as empresas Permite às corporações alavacarem a tecnologia de

computadores “desktops” Hoje, as estações de trabalho já possuem um poder

computacional considerável, por um custo muito mais baixo, antes só disponível em “Mainframes”

Permite que o processamento seja feito mais próximo da origem dos dados reduzindo o tráfego na rede Correio Eletrônico

15

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Alguns dos principais benefícios do modelo Cliente/Servidor para as empresas Facilita a utilização de aplicações gráficas e

multimídias Permitindo a construção de aplicações que excedem as

expectativas dos usuários proporcionando-lhes um real aumento de produtividade

Permite e encoraja a utilização de sistemas abertos, já que clientes e servidores podem rodar em diferentes hardwares e softwares, livrando as corporações de arquiteturas proprietárias

16

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Deficiências do modelo Algumas características necessárias para um completo

processo distribuído ainda não foram observadas nesse modelo que ainda apresenta algumas deficiências

Se uma porção significante da lógica da aplicação for movida para o servidor, esse se torna um “gargalo” assim como na arquitetura de “Mainframe”

Para resolver esse problema seria necessário uma melhor distribuição e gerenciamento do processamento da lógica da aplicação

Isto dá origem a uma nova arquitetura chamada “Segunda Geração Cliente/Servidor”.

17

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Deficiências do modelo Algumas características necessárias para um completo

processo distribuído ainda não foram observadas nesse modelo que ainda apresenta algumas deficiências

O processo de construção de aplicações distribuídas é bem mais complexo que o desenvolvimento de aplicações não distribuídas devido ao maior número de parâmetros a serem definidos, ao desconhecimento da tecnologia e a falta de padrões e ferramentas que auxiliem essa ambientação

Portanto, muito tempo pode ser consumido no processo de definição e construção do ambiente de desenvolvimento

Esse tempo é muitas vezes subestimado pelas empresas devido ao desconhecimento e as falsas propagandas dos vendedores de ferramentas

18

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Evolução 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 Informações

19

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Evolução da Arquitetura Cliente/Servidor Time-Sharing ou Emulador de Terminais

Arquitetura baseada em um processamento centralizado

Uma máquina, chamada de hospedeiro, é responsável por rodar todos os programas e gerenciar todos os recursos

O tempo de processamento é compartilhado pelos programas, simulando uma execução em paralelo

Os usuários têm acesso a esses serviços e recursos através de terminais conectados localmente ou remotamente

20

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Evolução da Arquitetura Cliente/Servidor Time-Sharing ou Emulador de Terminais

Os terminais não possuem nenhuma capacidade de processamento e consistem basicamente de uma tela, um teclado e do hardware necessário para se comunicar com o hospedeiro

Novas necessidades: mais de processamento, economicamente e fisicamente inviável

Os exemplos mais conhecidos dessa arquitetura são os sistemas em Mainframes e alguns sistemas em UNIX

21

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Evolução da Arquitetura Cliente/Servidor Resourse-Sharing ou Servidor de Arquivos

(Recursos) Consiste de vários computadores (estações

de trabalho) interligados, sendo cada um capaz de realizar seu próprio processamento

Alguns desses computadores são responsáveis em compartilhar e gerenciar recursos tais como impressora, disco, etc (servidores de rede)

A rede não é utilizada para proporcionar um processamento cooperativo entre as máquinas Processamento

Processamento

Servidor de Rede

Aplicações

22

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Evolução da Arquitetura Cliente/Servidor Resourse-Sharing ou Servidor de Arquivos

(Recursos) Todo o processamento da aplicação é

ainda feito por uma única máquina, havendo apenas o compartilhamento de recursos

Já é possível compartilhar a base de dados da aplicação, permitindo o acesso por várias pessoas simultaneamente

Problema: Como todo o processamento dos dados é realizado em cada máquina, a necessidade de um volume maior de informações torna inviável o tráfego de informações pela rede

Processamento

Processamento

Servidor de Rede

Aplicações

23

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Evolução da Arquitetura Cliente/Servidor Resourse-Sharing ou Servidor de Arquivos

(Recursos) Para resolver esse problema seria

necessário que a máquina responsável em armazenar os dados fizesse um processamento local capaz de enviar uma quantidade menor de dados para a máquina que está processando a aplicação

Processamento

Processamento

Servidor de Rede

Aplicações

24

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Evolução da Arquitetura Cliente/Servidor Cliente / Servidor

Também consiste de vários computadores, cada um com seu próprio processamento, interligados em rede

A diferença básica para a arquitetura Resource-Sharing é que aqui já começa a haver um processamento distribuído cooperativo

Parte do processamento, que era feito pela máquina da aplicação, é feito agora pela própria máquina responsável pelo armazenamento e distribuição da informação, diminuindo assim o tráfego de informações na rede

Processamento

Processamento

Processamento

Servidor de Bancode Dados (DBMS)

Aplicações

Processamento

Servidor de Rede

25

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Evolução da Arquitetura Cliente/Servidor Cliente / Servidor

É preciso selecionar os dados que serão enviados para o usuário para uma melhor eficiência do ambiente

Esse modelo já começa a retirar partes específicas de processamento das aplicações que eram executadas pelas máquinas clientes, centralizando-as nas máquinas de localização física mais adequada, garantindo assim uma melhor distribuição do processamento e utilização do ambiente

Processamento

Processamento

Processamento

Servidor de Bancode Dados (DBMS)

Aplicações

Processamento

Servidor de Rede

26

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Evolução da Arquitetura Cliente/Servidor Cliente / Servidor

Através dessas especializações garante-se também um melhor gerenciamento e facilidade de manutenção dos serviços devido a sua concentração em um ou poucos locais físicos

Processamento

Processamento

Processamento

Servidor de Bancode Dados (DBMS)

Aplicações

Processamento

Servidor de Rede

27

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Gerações Cliente / Servidor Primeira Geração

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 utilização dos recursos de cada máquina e fornecendo uma base sólida e flexível para a implantação de um número crescente de serviços

Algumas implementações desse tipo já vêm sendo utilizadas em várias empresas e são conhecidas como a primeira geração cliente/servidor

28

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Gerações Cliente / Servidor Primeira Geração

Para compartilhar recursos, como disco e impressora, são utilizados Servidores de Arquivos na rede

Estes são sistemas com a função de processar as requisições aos arquivos e impressoras e gerenciar seu acesso e distribuição

Além disso, parte do processamento das aplicações também foi distribuído

29

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Gerações Cliente / Servidor Primeira Geração

Alguns serviços de manipulação e gerenciamento de dados foram retirados das aplicações e colocados em pontos centralizados conhecidos como “Servidores de Banco de Dados”, tornando o processamento dos dados mais próximo do seu local de armazenamento

Os sistemas que fornecem tais serviços foram chamados de “Sistemas Gerenciadores de Banco de Dados” - SGDB

30

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Gerações Cliente / Servidor Primeira Geração

Basicamente, a primeira geração de cliente/servidor se caracteriza por essa distribuição do processamento da aplicação entre dois componentes: A estação de trabalho do usuário O servidor de banco de dados

À medida que a arquitetura cliente/servidor evolui, novas partes da aplicação vão sendo distribuídas e novos elementos vão aparecendo no ambiente

31

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Gerações Cliente / Servidor Segunda Geração

Hoje, a tecnologia cliente/servidor já caminha para sua segunda geração

Essa geração explora mais o ambiente de rede e suas máquinas

Surgem novos servidores com a finalidade de retirar das estações de trabalho grande parte do processamento que elas realizam

Os principais elementos dessa nova arquitetura são os servidores de aplicação e os servidores “Web”

32

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Gerações Cliente / Servidor Segunda Geração

Os servidores de aplicação são responsáveis por retirar o restante da camada de manipulação de dados que ainda havia na estação cliente

Além disso, tem o objetivo de concentrar a lógica de negócio, antes distribuída entre a estação cliente e o servidor de banco

Normalmente, esse trabalho não é feito por um único servidor de aplicação e sim por um conjunto de servidores onde o processamento é balanceado através de elementos chamados “Midlleware”

33

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Gerações Cliente / Servidor Segunda Geração

Desta forma resta para a estação cliente o processamento da interface visual com o usuário, deixando-a mais leve, exigindo uma menor configuração e melhorando seu desempenho.

Os servidores “Web” tentam ir mais longe ainda, permitindo retirar das estações de trabalho até parte da lógica da interface visual, deixando-as responsáveis apenas por interpretar o código “HTML” enviado pelos servidores

34

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Gerações Cliente / Servidor Segunda Geração

Entretanto, com a utilização de componentes como Java e ActiveX, parte do processamento pode retornar à estação de trabalho.

Essas novas tecnologias trazem mais recursos, mas tornam o ambiente mais complexo e difícil de ser implementado

Conclusão: É preciso estar bem certo do que se pretende e não fazer uso

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

35

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Tópicos a serem pensados em um sistema Cliente / Servidor A construção de um sistema Cliente/Servidor Elementos de um computador Cliente Opções 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

36

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Tópicos a serem pensados em um sistema Cliente / Servidor Tipos de Servidores Acessórios para Servidores Opções de Servidor Servidores de Rede Local Super-Servidores Servidores de Médio Porte Usando Mainframes como Servidores Sistemas Operacionais para Servidores

37

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Conceitos relacionados Programa

Unidade de software executada pela CPU de um computador sob o controle de um SO

SO de multiprogramação SO que pode ter vários programas na memória ao

mesmo tempo e alternar a execução entre eles Processo ou Tarefa

Cada ativação de um programa

38

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Conceitos relacionados SO de multitarefa

SO que pode compartilhar a CPU entre os vários processos

SO de multiprocessamento SO que pode controlar múltiplas CPUs de multitarefa,

executando vários processos ao mesmo tempo A maior parte dos SOs de multitarefa ou de

multiprocessamento oferecem facilidades de comunicação entre processos (IPC)

39

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Conceitos relacionados Comunicação entre Processos

São processos concorrentes que rodam em paralelo a fim de se comunicarem, estejam eles compartilhando a mesma CPU, em CPUs múltiplas numa mesma máquina ou até em máquinas diferentes numa rede se comunicando um com o outro

A comunicação pode ser: Por meios dinâmicos. Ex.: memória compartilhada Por meios estáticos. Ex.: bloqueio de sistema de arquivo

40

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Conceitos relacionados Processos Distribuídos

São processos concorrentes que se comunicam através de passagem de mensagens, encontrados em facilidades de IPC

Um tipo especial de IPC é a Chamada a Procedimento Remoto (RPC)

41

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Conceitos relacionados Processos Distribuídos

Existem 4 tipos de processos distribuídos Clientes Servidores Filtros: realizam uma operação fixa no fluxo de dados,

passando adiante os resultados para outro processo Peers (não-hierárquicos): são idênticos um ao outro, e

interagem de forma cooperativa para um trabalho útil

A A’

A C

A B

B

Não-hierarquicos

Filtros

Cliente / Servidor

42

Desenvolvimento de Sistemas Cliente/Servidor – Introdução ao Cliente / Servidor

Conceitos relacionados Processos Distribuídos

Processos Clientes / Servidor Processos Clientes enviam pedidos para um processo

servidor, que responde com os resultados para esses pedidos Processos Servidores oferecem serviços aos seus clientes,

normalmente de processamento específico que só eles podem fazer

O processo Cliente, livre da complexidade e esforço adicional do processamento da transação, pode realizar outro trabalho útil

A interação entre os processos cliente e servidor é uma troca cooperativa transacional, onde o cliente é o ativo e o servidor é o reativo