aula01 arquitetura clienteservidor
DESCRIPTION
redes de computadoresTRANSCRIPT
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)Especialista : Sistema distribuídos (UFBA)([email protected])
TÉCNICAS AVANÇADAS EM PROGRAMAÇÃO ORIENTADA A OBJETOS
O foco do curso é oferecer aos alunos um curso avançado de programação voltado para o projeto e construção de sistemas complexos. O curso discutirá com maior profundidade os problemas relacionados com paradigmas de programação, especialmente as questões relacionadas a Padrões de Projeto e Programação Genérica.
Os tópicos a serem abordados incluem:
Arquitetura Cliente Servidor JDBC; Introdução: HTML, CSS; Applets, Servlets, JSP; Padrões de Projeto; Frameworks
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)Especialista : Sistema distribuídos (UFBA)([email protected])
Paradigma de Programação
Definição Conjunto de regras e/ou hipóteses que
governam a definição de um modelo.
Aplicação na computação/informática Auxiliar na condução do processo de
busca da solução (modelo conceitual) de um problema.
? Do CAOS as SOLUÇÕES ????
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)Especialista : Sistema distribuídos (UFBA)([email protected])
Relembrando algo sobre OO
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)Especialista : Sistema distribuídos (UFBA)([email protected])
Noção de objeto Orientado a objeto:
Abstração de responsabilidades. Trabalha com a identificação de unidades comportamentais (estado e ações) independentes, que produzem a computação a partir de suas interações
O princípio da orientação a objetos está associado ao encapsulamento de comportamento.
A forma de fazer evoluir um programa é permitir que objetos compartilhem dados entre si através de trocas explicitas de mensagens.
TÉCNICAS AVANÇADAS EM PROGRAMAÇÃO ORIENTADA A OBJETOS
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)Especialista : Sistema distribuídos (UFBA)([email protected])
Objeto
"Objeto é uma coisa, uma entidade, alguma coisa que você levanta ou chuta, qualquer coisa que você possa imaginar que tenha sua própria identidade."
(Mike O´Docherty, 2005)
TÉCNICAS AVANÇADAS EM PROGRAMAÇÃO ORIENTADA A OBJETOS
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)Especialista : Sistema distribuídos (UFBA)([email protected])
Uma mensagem consiste em uma requisição, onde o objeto requisitante (sender) envia uma solicitação de serviço ao objeto requisitado (receiver).
Este serviço, necessariamente, precisa pertencer à interface de serviços oferecida pelo objeto requisitado.
TÉCNICAS AVANÇADAS EM PROGRAMAÇÃO ORIENTADA A OBJETOS
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)Especialista : Sistema distribuídos (UFBA)([email protected])
Um serviço é especificado para um objeto como um método.
A estas informações, representadas por dados armazenados no contexto do objeto, dar-se denominação de atributos – objetos possuem atributos representando seu estado interno.
O estado interno de um objeto pode conter tanto valores como referenciar outros objetos.
TÉCNICAS AVANÇADAS EM PROGRAMAÇÃO ORIENTADA A OBJETOS
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)Especialista : Sistema distribuídos (UFBA)([email protected])
Identifique: Identifique, na figura abaixo, os seguintes itens:
Objeto Métodos de acesso modificados; Propriedades;
1,82altura
81peso
$12,45
dimdim no bolso
cofre
comer(alimento)
irNaPraia(valor)
receberSalario(grana)
Pessoa
depositar(valor)
retirar(valor)
mostarValor(valor)
Cofre da Pessoa
$500,15saldo
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)Especialista : Sistema distribuídos (UFBA)([email protected])
Arquitetura Cliente / Servidor
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)Especialista : Sistema distribuídos (UFBA)([email protected])
Arquitetura Cliente / ServidorCONCEITOS
Cliente / Servidor (Client / Server) A expressão “Cliente / Servidor” (comumente
chamado de “Client / Server”) descreve o desenvolvimento físico de modelos onde o computador cliente faz um pedido para o computador servidor, e o computador servidor responde a esse pedido.
SCresposta
pedidoEste servidor também pode ser um cliente.
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)Especialista : Sistema distribuídos (UFBA)([email protected])
Cliente: Ativo.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.
Arquitetura Cliente / ServidorCaracteríst icas
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)Especialista : Sistema distribuídos (UFBA)([email protected])
Servidor: Reativo.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.
Arquitetura Cliente / ServidorCaracteríst icas
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)Especialista : Sistema distribuídos (UFBA)([email protected])
Comunicação: Não hierárquica.. Servidores enviam pela rede apenas os
resultados relevantes ao pedido do cliente. Abrangência das Redes: WAN, MAN e
LAN.
Arquitetura Cliente / ServidorCaracteríst icas
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)Especialista : Sistema distribuídos (UFBA)([email protected])
Estrutura típica de um aplicativo:
Arquitetura Cliente / ServidorCaracteríst icas
Interface doUsuário
Regras deNegócios
Banco deDados
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)Especialista : Sistema distribuídos (UFBA)([email protected])
Cliente Serv. A
pedidoresposta
Serv. B
Middleware Middleware
Suporte de comunicação
Máquina BMáquina A
Usuário
Arquitetura Cliente / ServidorCaracteríst icas
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)Especialista : Sistema distribuídos (UFBA)([email protected])
Arquitetura centralizada Dominantes até década de 80 como arquitetura corporativa; Utilização de um Computador central (mainframe); Problema básico: interface não amigável;
Arquitetura Cliente / ServidorTipos de sistemas (Arquitetura)
mainframe
recursos
terminais
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)Especialista : Sistema distribuídos (UFBA)([email protected])
Arquitetura em 2 camadas Camada cliente trata da lógica de negócio e da UI; Camada de servidor trata dos dados (usando um
SGBD); Melhor aproveitamento dos PCs das empresa; Interfaces gráficas mais amigáveis.
Problemas: Falta de escalabilidade (conexões a bancos de
dados); Manutenção (mudanças na lógica de aplicação
forçava instalações);
Arquitetura Cliente / ServidorTipos de sistemas (Arquitetura)
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)Especialista : Sistema distribuídos (UFBA)([email protected])
Arquitetura em 2 camadas Ilustração prática:
Arquitetura Cliente / ServidorTipos de sistemas (Arquitetura)
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)Especialista : Sistema distribuídos (UFBA)([email protected])
Arquitetura em 3 camadas Criação das camadas de:
Apresentação; Negócio; Dados.
Arquitetura Cliente / ServidorTipos de sistemas (Arquitetura)
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)Especialista : Sistema distribuídos (UFBA)([email protected])
Arquitetura em 3 camadas Com essa solução, os problemas de
manutenção foram reduzidos, pois mudanças às camadas de aplicação e de dados não necessitam de novas instalações no desktop .
Fisicamente, várias camadas podem executar na mesma máquina;
Quase sempre, há separação física de máquinas.
Arquitetura Cliente / ServidorTipos de sistemas (Arquitetura)
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)Especialista : Sistema distribuídos (UFBA)([email protected])
Arquitetura em 3/4 camadas (Baseada na WEB)
Ainda na arquitetura três camadas a instalação inicial dos programas no desktop é cara;
O problema de manutenção ainda persiste quando há mudanças à camada de apresentação (UI);
Não se pode instalar software facilmente num desktop que não está sob seu controle administrativo, pois:
Em máquinas de parceiros; Em máquinas de fornecedores.
Arquitetura Cliente / ServidorTipos de sistemas (Arquitetura)
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)Especialista : Sistema distribuídos (UFBA)([email protected])
Arquitetura em 3/4 camadas (Baseada na WEB) Agora surge o cliente universal chamado
“BROWSER”; Conceito de Intranet; A camada de aplicação se quebra em duas: Web e
Aplicação. Evitamos instalar qualquer software no desktop e portanto,
problemas de manutenção; Evita instalação em computadores de clientes, parceiros,
fornecedores, etc.
Arquitetura Cliente / ServidorTipos de sistemas (Arquitetura)
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)Especialista : Sistema distribuídos (UFBA)([email protected])
Arquitetura em 3/4 camadas (Baseada na WEB) Com tudo isso, continua-se a chamar de 3 camadas porque
as camadas Web e Aplicação freqüentemente rodam na mesma máquina (para pequenos volumes) ;
Arquitetura Cliente / ServidorTipos de sistemas (Arquitetura)
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)Especialista : Sistema distribuídos (UFBA)([email protected])
Vantagens Maior facilidade de crescimento
Crescimento incremental dos serviços Custos
Maioria dos equipamentos mais baratos. Menor risco de falhas (Generalizadas)
Ocorrência de falhas somente em partes do sistema.
Maior facilidade em replicar entre os servidores
Arquitetura Cliente / ServidorVantagens e Desvantagens
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)Especialista : Sistema distribuídos (UFBA)([email protected])
Desvantagens Soluções mais complexas
É preciso separar a aplicação em diversas partes.
Problemas com a utilização da rede Dependência do meio de comunicação
Maior atenção com relação a segurança Todas as informações circulam na rede Utilização de algoritmos de criptografia.
Arquitetura Cliente / ServidorVantagens e Desvantagens
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)Especialista : Sistema distribuídos (UFBA)([email protected])
Bibliografia Cay S. Horstmann - Conceitos de Computação com o Essencial
de Java. Daniel Gouveia Costa - Java Dicas & Truques. Harvey M. Deitel - Como Programar Java. Notas de aula do Prof. Antonio Geraldo da Rocha Vidal – USP –
Universidade de São Paulo. PAUL E. Renaud. Introduction to Client/Server Systems: A
Practical Guide for Systems Professionals . Second Edition.
http://www.dsc.ufcg.edu.br/~jacques/cursos/j2ee/html/intro/intro.htm.
Notas de aula do Prof. Carlos A. Maziero – PUCPR.
Arquitetura Cliente / Servidor