Tecnologia Cliente-Servidor - Erudito FEA-USP

Propaganda
Tecnologia de Informática
Prof. Antonio Geraldo da Rocha Vidal
EAD-5881
[email protected]
Conteúdo Básico Tecnologia


Tecnologia Cliente/Servidor
Tecnologia Orientada a Objetos
»
»

Tecnologia Internet
»
»
»
»


Conceitos Básicos
Linguagem Java
Páginas HTML
Páginas Ativas no Cliente (linguagens script e componentes)
Componentes no Servidor (ASP, JSP, PHP, .NET, etc.)
Repositórios no Servidor (bancos de dados, imagens,
documentos etc.).
Laboratório de Tecnologia Aplicada (em duplas)
Tecnologia XML
»
»
Conceitos Básicos
Web Services e Aplicações
Sistemas Monolíticos







Dados centralizados
Recursos centralizados
Processamento centralizado
Simplicidade de desenvolvimento
Simplicidade de operação
Pouca flexibilidade para atendimento aos
usuários.
Exemplos:
»
»
Sistemas em Mainframe
Aplicativos em Microcomputadores
Sistemas Distribuídos







Processos em execução concorrente,
distribuídos em diversos pontos da rede.
Comunicação entre processos.
Otimização de hardware.
Reutilização de software.
Software em camadas.
Dados distribuídos.
Maior flexibilidade para atendimento aos
usuários.
Tecnologia Cliente/Servidor
 Utilização
de três componentes básicos
para o compartilhamento de recursos
de computação:
»
Computador Cliente:
–
»
Computador Servidor:
–
»
Normalmente um microcomputador padrão PC.
Normalmente um PC poderoso, um
equipamento RISC ou mesmo um Mainframe.
Rede:
–
Conecta os clientes aos servidores.
Tecnologia Cliente/Servidor
 Equilíbrio
entre:
Cliente “burro” e Servidor “inteligente”
» Cliente “inteligente” e Servidor “burro”.
»
 Pressupõe
que o cliente e o servidor
sejam plenamente capazes.
 Tenta distribuir o trabalho de forma
equilibrada, numa tentativa de tirar
melhor proveito de ambos os recursos
(dentro de suas especialidades).
Tecnologia Cliente/Servidor
 Dependendo
do tipo da aplicação, a
distribuição exata do trabalho entre o
cliente e o servidor pode variar.
 Porém, o mais comum é:
Cliente: responsável pela interface com o
usuário (GUI) e lógica básica do aplicativo.
» Servidor: responsável pelo gerenciamento
do acesso, por todas as funções relativas
ao banco de dados e pelas “regras” ou
“lógica” do negócio.
»
Aplicações Típicas Cliente/Servidor
 Aplicativos
Simples de Banco de Dados:
Pedido SQL
Resultados
Cliente
GUI
Lógica da Aplicação
Parte da Lógica dos
Negócios
Acesso ao
Banco de Dados
Servidor
Lógica dos Negócios
Gerenciamento da Rede
Aplicações Típicas Cliente/Servidor
 Processamento
de Transações: duas ou
mais atualizações no banco de dados que devem ser
concluídas tudo ou nada (aplicações missão-crítica)
Transação
Resultados
Cliente
GUI
Lógica da Aplicação
Parte da Lógica dos
Negócios
Acesso ao
Banco de Dados
Servidor
Lógica dos Negócios
Registro das Transações
Recuperação da Transação
Papel do Cliente
 Gerenciamento
de apresentação:
Interação com o usuário (GUI)
» Entrada e consulta de dados
»
 Lógica
do aplicativo:
Funcionamento do aplicativo
» Partes simples da lógica do negócio
»
 Aplicativos
de produtividade pessoal:
Processador de textos, planilha etc.
» Navegador Web, Cliente de E-mail etc.
»
Papel do Servidor

Atendimento a Usuários:
»
»

Gerenciador de Banco de Dados:
»
»
»

Acesso e organização de registros/dados
Seleção de registros/dados
Atualização de registros/dados
Execução de Regras do Negócio:
»
»

Comunicação e autenticação de usuários
Atendimento a solicitações de clientes
Procedimentos armazenados no Banco de Dados
Procedimentos armazenados em Componentes
Processamento de Transações
»
Conjuntos de operações relacionadas aos
processos de negócio.
Papel da Rede
 Infra-estrutura
para os aplicativos
Cliente/Servidor.
 Submete solicitações do Cliente para o
Servidor.
 Transporta os dados resultantes do
Servidor para o Cliente.
 Padrões mais utilizados:
Ethernet (transporte físico)
» TCP/IP (transporte lógico)
» HTTP (transporte na Internet)
»
Arquitetura Cliente/Servidor da
Internet (animação)
Processamento Cliente/Servidor

Um processo de software é um programa de
computador sendo executado em uma CPU.
 “Processo”, “Tarefa” e “Serviço” podem ser
considerados sinônimos.
 Processos concorrentes enviam e recebem
mensagens entre si, prestando serviços uns
aos outros para atender o usuário.
 Um “sistema” Cliente/Servidor é composto
por diversos destes processos, tarefas ou
serviços.
Processamento Distribuído
Processamento
Processamento
Centralizado
Processamento
Distribuído
Monolítico
Peer-to-Peer
Ponto-a-Ponto
Cliente
Servidor
Processamento Peer-to-Peer
 Não
é hierárquico.
 Todos os processos são “clones”
rodando em todas as máquinas e
prestando serviços uns aos outros.
 Não existem processos servidores.
 Cada processo pode ser cliente e
também servidor para outros processos
simultaneamente.
 Exemplo: Windows Explorer
Processamento Cliente/Servidor
 Existem
processos distintos: o processo
cliente é diferente do processo servidor.
 Processos cliente são sempre clientes.
 Processos servidores são sempre
servidores.
 Cada processo é designado para a
plataforma mais conveniente.
 Exemplo:
Navegador (no cliente)
» Aplicação Web (no servidor)
»
Processamento Cliente/Servidor
 Um
»
Hardware:
–
–
–
»
sistema cliente/servidor inclui:
Servidores
Estações de trabalho
Rede
Software:
–
Sistemas operacionais (clientes e servidores)
– Processos clientes (aplicativos do usuário)
– Processos servidores (banco, web, regras etc.)
– Processos de comunicação (entre ambos)
Características do Cliente
 Ativo.
 Inicia
e termina as conversações com
os servidores, solicitando serviços.
 Normalmente não se comunica com
outros clientes.
 Normalmente é responsável pela
entrada e saída de dados e
comunicação com o usuário.
 Torna a rede transparente ao usuário.
Características do Servidor
 Reativo.
 Execução
contínua.
 Recebe e responde a solicitações dos
clientes e de outros servidores.
 Presta serviços distribuídos.
 Atende a diversos clientes ou outros
servidores simultaneamente.
Características da Comunicação
 Interação
cooperativa
(Remote Procedure Call).
 Não hierárquica.
 Servidores enviam pela rede apenas os
resultados relevantes ao pedido do
cliente.
 Abrangência das Redes: WAN, MAN e
LAN.
Camadas da Aplicação
Apresentação
Rede
Apresentação
CLIENTE
Apresentação
Apresentação
Apresentação
Lógica de Negócio
Lógica de Negócio
Lógica de Negócio
Gerência de Dados
Apresentação
Lógica de Negócio
Lógica de Negócio
Lógica de Negócio
SERVIDOR
Gerência de Dados
Gerência de Dados
Gerência de Dados
Gerência de Dados
Gerência de Dados
Apresentação Distribuída
Apresentação Remota
Lógica Distribuída
Gerenciamento de
Dados Remoto
Gerenciamento de
Dados Distribuído
Camada de Apresentação
 Responsável
pela coleta e apresentação de
dados ao usuário.
 Inclui:
»
»
»
»
»
»
»
Entradas de dados.
Apresentação de dados.
Formatações.
Validações básicas.
Metáforas visuais.
Fluxo de formulários/páginas (navegação).
Lógica da aplicação.
Regras do Negócio
 São
regras do mundo real que devem
ser identificadas para garantir a
coerência das informações.
 Dependem exclusivamente do mundo
real, isto é, das regras burocráticas,
políticas, legais, comerciais etc. que
regem a operação da organização, e
que devem ser refletidas em seus
sistemas de informação.
Camada de Regras do Negócio
 Responsável
pelo processamento dos
dados e pelo cumprimento das regras
do negócio.
 Independente da interface do usuário
(camada de apresentação) e da forma
de armazenamento dos dados (camada
de dados).
 Inclui o processamento de transações
(processos ou funções), tomada de
decisões e controle de acesso.
Camada de Dados
 Responsável
por prover o
armazenamento persistente dos dados.
 Inclui:
»
»
»
»
»
»
Atualização de dados.
Recuperação de dados.
Gerenciamento de concorrência.
Gerenciamento da distribuição de dados.
Recuperação de falhas.
Recursos: banco de dados, documentos
eletrônicos, imagens, sons etc.
Estrutura Típica de um Aplicativo
Interface do
Usuário
Regras de
Negócios
Banco de
Dados
Interfaces na Arquitetura do
Aplicativo em Três Camadas
GUI & WEB
Aplicativos do
Usuário
Interação com
componentes
da mesma camada
Pedido de Processo
Regras de
Negócios
Transações e Consultas
Banco de Dados
Interação com
componentes de
outra camada
Arquitetura do Sistema







Definição da Interface com o Usuário
Distribuição de Dados e Processos.
Divisão da Aplicação em Camadas e
componentes.
Topologia da Rede de Comunicações.
Segurança, Capacidade e Desempenho
Reutilização de Componentes
Seleção de Ferramentas para
Desenvolvimento.
Identificação de Processos
Clientes e Servidores
 Processos
a serem alocados a clientes:
Interface
» Validações básicas
» Lógica local (personalização)
»
–
–
»
Departamental
Pessoal
Fluxo de utilização (seqüência de
formulários ou páginas).
Identificação de Processos
Clientes e Servidores

Processos a serem alocados a servidores:
»
Gerenciamento de recursos compartilhados:
–
–
–
»
Lógica corporativa
–
–
»
Bancos de dados
Imagens
Documentos (páginas Web estáticas)
Política de acesso
Autenticação de usuários
Regras de negócio
–
–
–
Decisões
Cálculos
Registro de operações
Integração de Sistemas
 Sempre
considerar, ao avaliar
alternativas de distribuição (dados e
processos), as possibilidades de futura
reutilização.
 Conceber a arquitetura com interfaces
bem definidas para futuras integrações.
 Encapsular sistemas internos e
sistemas legados como componentes
servidores.
Transações Distribuídas
 Consulta
»
remota:
Acesso a uma fonte de dados remota para
recuperação de informações.
 Atualização
»
Alteração realizada em uma fonte de
dados remota.
 Consulta
»
distribuída
Obtenção de dados de várias fontes.
 Atualização
»
remota:
distribuída
Atualização de dados em várias fontes.
Projeto de Transações
 Características
da boa transação:
Pequena duração
» Acesso ao mínimo de dados possível
» Sem interação humana
»
 Estratégias
Otimista
» Pessimista
»
de bloqueio de acesso:
Projeto de Transações
 Isolar
processos clientes de servidores,
quanto à localização:
Os clientes fazem solicitações ao agente
de roteamento (p.ex. servidor Web).
» O agente, baseado no diretório de
processos, roteia a solicitação ao processo
servidor adequado.
» Quando da resposta do servidor, o agente
roteia o resultado ao cliente.
»
Transparência de Local
 Vantagens:
Processos servidores podem ser
adicionados, retirados ou movidos sem
necessidade de manutenção nos
processos clientes.
» Com o uso de processos servidores
replicados, pode ser feito balanceamento
de carga e a disponibilidade pode ser
aumentada.
»
Transparência de Acesso
 Permite
ao usuário o acesso a seu
ambiente de trabalho a partir de
qualquer máquina cliente.
 Exige que os dados de configuração do
cliente sejam centralizados em um
servidor de acesso.
Resultado

O que há de “diferente”:
» Arquitetura da Aplicação
» Projeto da Camada de Interface
» Projeto da Camada de Regras de Negócio
» Projeto da Camada de Dados
» Projeto de Distribuição de Componentes
» Projeto de Transações
» Projeto de Segurança

O que há de “possibilidades”:
» Atendimento a usuários cada vez mais exigentes
» Apoio a processos de negócios cada vez mais complexos
» Integração de processos em “larga escala” (via “Internet”)
Download