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”)