Tecnologia de Informática Prof. Antonio Geraldo da Rocha Vidal EAD-5881 [email protected].
Transcript of 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
» 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:
Servidor
Cliente
Pedido SQL
Resultados
GUILógica da AplicaçãoParte da Lógica dosNegócios
Acesso aoBanco de DadosLógica dos NegóciosGerenciamento 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)
Servidor
Cliente
Transação
Resultados
GUILógica da AplicaçãoParte da Lógica dosNegócios
Acesso aoBanco de DadosLógica dos NegóciosRegistro das TransaçõesRecuperaçã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-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 Centralizado
ClienteServidor
Peer-to-PeerPonto-a-Ponto
Processamento Distribuído
Processamento
Monolítico
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. 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
Gerência de Dados
Lógica de Negócio
Apresentação
Gerência de Dados
Gerência de Dados
Lógica de Negócio
Apresentação
Gerência de Dados
Lógica de Negócio
Apresentação
Lógica de Negócio
Gerência de Dados
Lógica de Negócio
Apresentação
Lógica de Negócio
Gerência de Dados
Apresentação
Apresentação
Rede
Gerenciamento deDados Distribuído
Gerenciamento deDados Remoto
Lógica DistribuídaApresentação RemotaApresentação Distribuída
CLIENTE
SERVIDOR
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 doUsuário
Regras deNegócios
Banco deDados
Interfaces na Arquitetura do Aplicativo em Três Camadas
Aplicativos doUsuário
Regras deNegócios
Banco de Dados
GUI & WEB
Pedido de Processo
Transações e Consultas
Interação com componentesda mesma camada Interação com
componentes deoutra 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 ProcessosClientes 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 ProcessosClientes 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”)