O documento discute técnicas avançadas em programação orientada a objetos, abordando tópicos como arquitetura cliente-servidor, JDBC, padrões de projeto e frameworks. O curso tem o objetivo de aprofundar conceitos de programação complexos, como paradigmas de programação e programação genérica.
1. 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:
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)
Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)
Arquitetura Cliente Servidor
JDBC;
Introdução: HTML, CSS;
Applets, Servlets, JSP;
Padrões de Projeto;
Frameworks
2. Paradigma de Programação
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)
Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)
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 ????
3. Relembrando algo sobre OO
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)
Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)
4. 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)(arleys.castro@gmail.com)
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.
5. 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)(arleys.castro@gmail.com)
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)
6. TÉCNICAS AVANÇADAS EM
PROGRAMAÇÃO ORIENTADA A
OBJETOS
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.
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)
Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)
7. TÉCNICAS AVANÇADAS EM
PROGRAMAÇÃO ORIENTADA A
OBJETOS
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.
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)
Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)
8. Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)
Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)
Identifique:
Identifique, na figura abaixo, os seguintes itens:
Objeto
Métodos de acesso modificados;
Propriedades;
1,82
altura
81
peso
$12,45
dimdim no bolso
cofre
comer(alimento)
irNaPraia(valor)
receberSalario(grana)
Pessoa
depositar(valor)
retirar(valor)
mostarValor(valor)
$500,15
saldo
Cofre da Pessoa
10. Arquitetura Cliente / Servidor
CONCEITOS
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.
pedido
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)
Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)
C S
resposta
Este servidor
também pode
ser um cliente.
11. Arquitetura Cliente / Servidor
Características
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)
Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)
Cliente:
AAttiivvoo..
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.
12. Arquitetura Cliente / Servidor
Características
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)
Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)
Servidor:
RReeaattiivvoo..
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.
13. Arquitetura Cliente / Servidor
Características
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)
Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)
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.
14. Arquitetura Cliente / Servidor
Características
Estrutura típica de um aplicativo:
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)
Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)
Interface do
Usuário
Regras de
Negócios
Banco de
Dados
15. Arquitetura Cliente / Servidor
Máquina A Máquina B
resposta
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)
Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)
Cliente Serv. A
pedido
Serv. B
Middleware Middleware
Suporte de comunicação
Usuário
Características
16. Arquitetura Cliente / Servidor
Tipos de sistemas (Arquitetura)
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;
recursos
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)
Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)
mainframe
terminais
17. Arquitetura Cliente / Servidor
Tipos de sistemas (Arquitetura)
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.
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)
Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)
Problemas:
Falta de escalabilidade (conexões a bancos de
dados);
Manutenção (mudanças na lógica de aplicação
forçava instalações);
18. Arquitetura Cliente / Servidor
Tipos de sistemas (Arquitetura)
Arquitetura em 2 camadas
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)
Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)
Ilustração prática:
19. Arquitetura Cliente / Servidor
Tipos de sistemas (Arquitetura)
Arquitetura em 3 camadas
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)
Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)
Criação das camadas de:
Apresentação;
Negócio;
Dados.
20. Arquitetura Cliente / Servidor
Tipos de sistemas (Arquitetura)
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.
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)
Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)
21. Arquitetura Cliente / Servidor
Tipos de sistemas (Arquitetura)
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.
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)
Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)
22. Arquitetura Cliente / Servidor
Tipos de sistemas (Arquitetura)
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.
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)
Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)
23. Arquitetura Cliente / Servidor
Tipos de sistemas (Arquitetura)
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) ;
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)
Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)
24. Arquitetura Cliente / Servidor
Vantagens e Desvantagens
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)
Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)
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
25. Arquitetura Cliente / Servidor
Vantagens e Desvantagens
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)
Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)
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.
26. Arquitetura Cliente / Servidor
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.ht
m.
Notas de aula do Prof. Carlos A. Maziero – PUCPR.
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI)
Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)