Você está na página 1de 38

Tecnologia de Informática

Prof. Antonio Geraldo da Rocha Vidal


EAD-5881
vidal@usp.br
Conteúdo Básico Tecnologia
 Tecnologia Cliente/Servidor
 Tecnologia Orientada a Objetos
» Conceitos Básicos
» Linguagem Java
 Tecnologia Internet
» 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:
– Normalmente um microcomputador padrão PC.
» Computador Servidor:
– 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 Acesso ao
Parte da Lógica dos Banco de Dados
Servidor
Negócios 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 Acesso ao
Parte da Lógica dos Banco de Dados
Servidor
Negócios 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:
» Comunicação e autenticação de usuários
» Atendimento a solicitações de clientes
 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:
» 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-estruturapara 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 Processamento
Centralizado Distribuído

Monolítico
Peer-to-Peer Cliente
Ponto-a-Ponto 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 sistema cliente/servidor inclui:
» Hardware:
– 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.
 Iniciae 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 Apresentação Apresentação Apresentação Apresentação

Rede CLIENTE 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 Gerenciamento de


Dados Remoto 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 Pedido de Processo
da mesma camada Regras de Interação com
Negócios componentes de
outra camada

Transações e Consultas

Banco de Dados
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:
– Bancos de dados
– Imagens
– Documentos (páginas Web estáticas)
» Lógica corporativa
– 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 remota:
» Alteração realizada em uma fonte de
dados remota.
 Consulta distribuída
» Obtenção de dados de várias fontes.
 Atualização 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 de bloqueio de acesso:


» Otimista
» Pessimista
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”)

Você também pode gostar