Prévia do material em texto
- -1
DESENVOLVIMENTO DE SISTEMAS WEB
ARQUITETURAS MVC MODELOS I E II,
IMPLEMENTAÇÃO DE MVC MODELO II,
GERENCIAMENTO DE SESSÃO E LOGIN
- -2
Olá!
Ao final desta aula, você será capaz de:
1. Compreender os conceitos básicos da arquitetura de software; 2. Desenvolver aplicações web dinâmicas, em
camadas integrando-as com sistemas de banco de dados; 3. Consolidar conhecimentos sobre as tecnologias Java,
Banco de Dados e Segurança de Redes; 4. Conheceu os conceitos básicos da Rede de Petri e sua contribuição na
avaliação da estrutura e do comportamento dinâmico dos sistemas modelados.
Relembrando nossa aula anterior ...
Padrões de projeto elaborados um conjunto de regras descreverendo como realizar determinadas tarefas no
desenvolvimento de software.
PREE, W. . Inglaterra: Addison-Wesley,Fonte: Design Patterns for Object-Oriented Software Development
1995.
Na década de 70, este termo surgiu através do arquiteto Christopher Alexander, o qual encontrou temas
recorrentes na arquitetura e organizou-os em descrições e instruções chamadas padrões.
Cada padrão requisitos um problema que ocorre repetidamente em um ambiente. Ele enunciados o núcleo da
solução do problema, de modo que possamos utilizar esta solução sólida vezes.
1 Padrões de Arquitetura
Definem a estrutura do sistema, oferecendo uma visão de alto nível da estrutura do sistema.
Providenciam um conjunto de subsistemas predefinidos, especificando os relacionamentos entre eles e
estabelecendo regras para esses relacionamentos ( ).fonte
SOUZA, C. Padrões de Projeto. Disponível na INTERNET via www.url: www.ufpa.br/cdesouza/teaching/cedai/7-
Arquivo consultado em: 15/12/2012.patterns.pdf
Podemos citar como exemplos: Reflexão e MVC ( ).Model-View-Controller
2 Padrão MVC
O MVC foi um dos primeiros padrões identificados. Foi criado pela comunidade Smalltalk® em 1979 e, mesmo
após todos esses anos, ainda é muito aplicado em aplicações interativas que necessitam de interfaces flexíveis.
http://www.ufpa.br/cdesouza/teaching/cedai/7-patterns.pdf
http://www.ufpa.br/cdesouza/teaching/cedai/7-patterns.pdf
- -3
Tem por objetivo tornar a aplicação modular, facilitando a resolução de grandes problemas, transformando-os
em outros menores que podem ser resolvidos mais facilmente, além de facilitar o planejamento do
desenvolvimento.
Modularidade consiste em dividir o software em componentes independentes. SILVA, P. F.; PENHA, J. A. M.;
ALVES, G.M. Estudo do Padrão de Projeto Observer no Desenvolvimento de Softwares Utilizando a Arquitetura
MVC. In: III MOSTRA NACIONAL DE INICIAÇÃO CIENTÍFICA NO ENSINO MÉDIO E TÉCNICO. Santa Catarina:
UFSC, 2009. Disponível na INTERNET via url: http://www.biblioteca.ifc-camboriu.edu.br/criacac/tiki-
Arquivo consultado em: 10/12/2012.searchresults.php?words=Observer&where=pages&search=Procura
O Padrão MVC sugere a separação entre o modelo, a visão e o controle de uma aplicação:
Arquitetura MVC
http://www.biblioteca.ifc-camboriu.edu.br/criacac/tiki-searchresults.php?words=Observer&where=pages&search=Procura
http://www.biblioteca.ifc-camboriu.edu.br/criacac/tiki-searchresults.php?words=Observer&where=pages&search=Procura
- -4
Fonte: Fonte: SANTOS, G. P. Aplicação do Padrão de Projeto MVC com JSF. Monografia. Faculdade de Jaguariúna,
Jaguariúna, 2008.
Vantagens e Desvantagens do MVC:
Vantagens
Desenvolvimento de módulos de forma individual; Manutenção simplificada; Gerência de várias interfaces em
uma mesma base de dados.
Desvantagens
Requer um tempo maior para análise e modelagem do sistema, exigindo desenvolvedores especializados no
assunto; Não é aconselhável para aplicações de pequeno porte.
2.1 Utilização de camadas
Segundo SANTOS, o sucesso em aplicações orientadas a objetos está diretamente ligado à organização de
e na utilização dos padrões utilizados pelo mercado.aplicações em camadas1
1 O termo camada refere-se a uma separação da aplicação em si em partes isoladas, cada uma com suas
respectivas responsabilidades. Organização em camadas é o estratagema utilizado para a independência entre os
componentes. Consequentemente, este método auxilia o alcance aos os objetivos de eficiência, escalabilidade,
reutilização, e facilidade de manutenção.
Aplicação de uma camada
No passado, na era do computador pessoal, uma aplicação era desenvolvida para ser utilizada em uma única
maquina. Usualmente, esta aplicação possuía todas as funcionalidades em um único núcleo, com uma vasta
quantidade de linhas de código, o que tornava a manutenção do software árdua. A interação do usuário, a lógica
de negócio, o acesso aos dados estavam presentes em um único local, como demonstrado na figura.
- -5
Aplicação de duas camadas
Nesta estrutura, o acesso à base de dados foi colocado em uma máquina especifica, ficando está separada das
máquinas que apenas executam as aplicações.
Neste modelo, as estações dos clientes contém todas as lógicas das aplicações, o que gera um grande problema:
para cada nova versão de uma determinada aplicação, se o sistema estiver instalado em máquinas clientes,n
para que se atualize o , terá de ser novamente instalado vezes. A figura ao lado ilustra o MVC de duassoftware n
camadas.
Aplicação de três camadas
Com o avanço da Internet, houve um movimento para separar a lógica de negócio da interface com o usuário.
Sendo assim, os usuários da podem acessar as aplicações sem a necessidade de instalá-las em suasWeb
máquinas.
A separação em camadas lógicas torna as aplicações mais flexíveis, permitindo que as partes possam ser
modificadas de forma independente. As funcionalidades da camada de negócio podem ser divididas em classes e
as mesmas podem ser agrupadas em pacotes ou componentes, reduzindo, assim, as dependências entre as
- -6
classes e pacotes. A aplicação de três camadas transformou a arquitetura padrão para sistemas corporativos com
base na . A figura ao lado exemplifica o MVC de três camadas.Web
2.2 Modelo MVC 1
Modelo formado apenas por páginas JSP e Beans. Deve ser utilizado no desenvolvimento de sistemas pequenos e
simples, pois pode haver uma grande quantidade de código Java nas páginas JSP. A figura exemplifica o modelo
MVC 1:
- -7
1 Envio de uma requisição à página JSP;
2 A página JSP que foi solicitada cria e chama o para passar a requisição;bean
3 O bean faz conexão com o banco de dados e grava as informações;
4 A página JSP responde ao navegador ( ) do usuário enviando a resposta à requisição.browser
2.3 Modelo MVC 2
Este modelo explora o que há de melhor em cada tecnologia, dividindo o desenvolvimento do sistema em duas
partes: implementação e apresentação, além de adicionar um componente a mais em relação ao modelo MVC 1:
os Servlets. A Figura mostra o funcionamento da arquitetura:
1 Controlador recebe a requisição feita pelo navegador do usuário;
2 Controlador cria o e repassa a requisição ao ;bean bean
3 Controlador escolhe a qual página JSP deve ser enviada a requisição;
4 A página JSP acessa o para recuperar a requisição solicitada. Caso esteja no banco de dados, este ébean
acessado também;
5 A resposta é visualizada pelo navegador do usuário que fez a requisição.
Segundo, FREIRE, pode-se destacar alguns passos para a construção do modelo MVC 2, tais como:
1. Definir para representar os dados; 2. Usar um Servlets para tratar requisições; 3. Preencherbeans
os ; 4. Armazenar o na requisição, sessão, ou no contexto do Servlets; 5. Encaminhar abeans bean
requisição para uma página JSP; 6. Extrair os dados dos .beans
- -8
Esta divisão facilita o controle de tarefas e ação realizadas pela implementação do sistema.
3 Criação de uma aplicação Web com acesso a base de
dados
Teste o servidor Web: Digite na barra de endereços do browser, o seguinte endereço: ehttp://localhost:8080/
dê “enter”. Caso apareça uma das figuras abaixo, ok! Caso contrário, configure o seu Tomcat.
Fonte: Fonte: Baseado no Tutorial: SANTOS, J.S. Criando uma Aplicação Simples com Java e MySQL usandoNetBeans – Parte III.
Crie e teste o seu site
Localize a pasta “webapps” do Tomcat (c:\arquivos de programas\Apache Software\Tomcat x.x); Crie uma
subpasta de nome “teste” dentro da pasta “webapps” (este será o seu site); Na pasta “teste”, crie a subpasta WEB-
INF (deve ser escrito em letras maiúsculas como aqui!); Abra o bloco de notas e digite:
<html> <body> <% out.print("Estou testando meu site"); %> </body> </html>
http://localhost:8080/
- -9
Fonte: Fonte: Baseado no Tutorial: SANTOS, J.S. Criando uma Aplicação Simples com Java e MySQL usando
NetBeans – Parte III.
Salve-o na pasta “teste” com o nome de teste.jsp conforme figura:
Fonte: Fonte: Baseado no Tutorial: SANTOS, J.S. Criando uma Aplicação Simples com Java e MySQL usando
NetBeans – Parte III.
Digite no browser o endereço: htpp://localhost:8080/teste/teste.jsp e tecle “enter”. A figura abaixo deve
aparecer:
- -10
Fonte: Fonte: Baseado no Tutorial: SANTOS, J.S. Criando uma Aplicação Simples com Java e MySQL usando
NetBeans – Parte III.
Verificando sites
Digite na barra de endereço do browser;http://localhost:8080/
Selecione “Tomcat Manager”;
Ao aparecer a imagem, digite admin (em letras minúsculas) e clique ok. Ou nome e senha que você colocou
quando instalou o Tomcat;
Fonte: Fonte: Baseado no Tutorial: SANTOS, J.S. Criando uma Aplicação Simples com Java e MySQL usando
NetBeans – Parte III.
http://localhost:8080/
- -11
Observe o site (teste) conforme destacado na figura a seguir. Aqui você pode administrá-lo, ou seja, parar (stop),
recarregar (reload) ou iniciar(start). Lembre-se que sempre adicionar uma classe (.class) nova em seu site, é
necessário recarregá-lo (reload).
Fonte: Fonte: Baseado no Tutorial: SANTOS, J.S. Criando uma Aplicação Simples com Java e MySQL usando
NetBeans – Parte III.
4 Redes de Petri na modelagem de Sistemas Web
Segundo, MOURELLI, Rede de Petri é uma ferramenta para a modelagem e projeto de sistemas, utilizando uma
representação matemática do sistema, sendo uma extensão das máquinas de estados finitos.
A análise da rede de Petri permite avaliar a estrutura e o comportamento dinâmico do sistema modelado. O
resultado desta avaliação pode levar a melhorias ou mudanças no sistema.
A representação gráfica de uma rede de Petri básica é formada por dois componentes: um ativo chamado de
(barra) e outro passivo denominado (círculo). Os lugares equivalem às variáveis de estado e astransição lugar
transições correspondem às ações realizadas pelo sistema. Esses dois componentes são ligados entre si através
de arcos dirigidos. Os arcos podem ser únicos ou múltiplos. A figura mostra os elementos básicos de um grafo
associado às redes de Petri.
- -12
5 Introdução à segurança
Existem alguns serviços que fundamentam as tecnologias de segurança:
• Autenticação: processo de cerificar a identidade tanto do cliente como do provedor de serviço;
• Privacidade: garantia de que os dados que estiverem trafegando entre a origem e o destino da
comunicação não possam ser entendidos ou utilizados por terceiros;
• Integridade: garantia de que os dados não foram alterados durante o processo de transmissão;
• Autorização: processo de determinação de que uma determinada pessoa tem o direito de executar uma
ação em particular, em relação a um objeto específico e em determinada situação;
• Não-repúdio: mecanismo pelo qual nenhuma das partes de uma negociação possa negar que a mesma
ocorreu ou que participou dela.
Criptografia
Do Grego , "escondido", e , "escrever”, a criptografia é o estudo e aplicação de técnicas que temkryptós gráphein
por objetivo transformar uma informação original e legível para outra completamente ilegível, que a torna difícil
de ser lida por alguém não autorizado. Sua interpretação só pode ser feita caso seja conhecida sua "chave
secreta".
Segundo SOUZA, pode ser considerada como o processo de codificar informações de maneira que somente a
origem e o destino da troca de mensagens possam entendê-los. Uma informação sem criptografia é chamada de
texto claro, enquanto uma informação criptografada chama-se texto cifrado.
Atenção
Técnicas de criptografia são as mais utilizadas para prover um meio efetivo de proteção contra ataques, estejam
armazenadas em disco ou sendo transmitidas pelas redes computacionais.
A criptografia fornece determinados processos, serviços básicos de: autenticidade, confidencialidade,
integridade e não repúdio para os dados a pessoas devidamente autorizadas.
A criptografia tem como funcionalidade a alteração de uma mensagem original para outra cifrada. Para
conseguir isso, a mensagem deve passar por um processo de cifragem, que consiste basicamente no emprego da
mensagem a um mecanismo que, através de uma chave “específica”, cifre a mesma. Ou seja, após a mensagem ser
empregada ao algoritmo de criptografia com esta chave secreta a mesma será totalmente alterada ficando
•
•
•
•
•
- -13
completamente ilegível. E um processo contrário, que é a decifragem onde, novamente, através da chave
específica, é possível a conversão dos dados cifrados para a mensagem original. A figura abaixo exemplifica a
funcionalidade da criptografia:
Atualmente, há dois tipos de criptografia:
• Simétrica
A criptografia simétrica utiliza uma única chave no processo de criptografia, e esta chave deve ser
mantida em segredo.
• Assimétrica
A criptografia assimétrica utiliza duas chaves, matematicamente relacionadas, sendo uma delas para
encriptar e outra para decriptar. Uma das chaves é mantida em segredo, e a outra é divulgada.
A principal diferença encontrada nas duas técnicas é com relação às chaves utilizadas. A criptografia simétrica
utiliza somente uma chave para realizar o processo de cifragem e decifragem da mensagem e a assimétrica
utiliza duas chaves, uma pública e outra privada, sendo uma utilizada para cifrar e a outra para decifrar a
mensagem.
Chave Simétrica
Tipo mais simples de criptografia, já que tanto o emissor quanto o receptor da mensagem possuem a mesma
chave, ou seja, a mesma chave é usada tanto na codificação quanto na decodificação.
Para ser realizada, basta que o emissor, antes de enviar a mensagem criptografada, envie a chave privada que
será utilizada para descriptografá-la.
Existem diversos algoritmos criptográficos que fazem uso da Chave Simétrica, tais como: DES (Data Encryption
Standard); IDEA (Internacional Data Encryption Algorithm); e RC (Ron’s Code ou Rivest Cipher).
A Chave Simétrica apresenta algumas desvantagens, tais como: necessidade da troca constante dessas chaves; e
a impossibilidade de serem usados com fins de autentificação (já que a transmissão da chave privada de um para
o outro pode não ser segura).
Chave Assimétrica
•
•
- -14
Utiliza 2 (duas) chaves, uma pública e uma privada. O sistema funciona da forma que alguém cria uma chave e
envia essa chave a quem quiser enviar informações (essa é a chamada chave pública). Com ela é feita a
codificação da mensagem. Para decodificação será necessário utilizar outra chave que deve ser criada, a chave
privada – que é secreta.
A Chave Assimétrica também possui suas desvantagens: a utilização de algoritmos reversos para desencriptação
de mensagens acaba por elevar o tempo computacional dos algoritmos de criptografia assimétrica, tornando
inviável o seu uso em uma comunicação intensa.
Atenção
Com os dois tipos de Chaves (Simétrica e Assimétrica) tendo suas vantagens e desvantagens, era natural o
surgimento um método que buscasse mixar as vantagens de cada um, eliminando assim, suas desvantagens.Os
protocolos TLS ( ) e SSL ( ) são exemplos dessa combinação.Transport Layer Security Secure Sockets Layer
O que vem na próxima aula
Na próxima aula, você vai estudar:
• Orientação a Objetos com JavaSc
CONCLUSÃO
Nesta aula, você:
• O Modelo MVC: suas características, vantagens e desvantagens;
• Os conceitos de sessão de usuário; e
• Os conceitos de Criptografia.
Saiba mais
Saiba mais sobre Arquitetura MVC & Gerenciamentode Sessão e Login:
•BRAUDE, E. Projeto de software: da programação à arquitetura: uma abordagem baseada em
Java. Porto Alegre: Bookman, 2005.
•FREEMAN, E.; FREEMAN, E. Use a Cabeça! Padrões de Projetos. São Paulo: Alta Books, 2007.
•METSKER, S. J. Padrões de projeto em Java. Porto Alegre: Bookman, 2004.
•
•
•
•
Olá!
1 Padrões de Arquitetura
2 Padrão MVC
2.1 Utilização de camadas
2.2 Modelo MVC 1
2.3 Modelo MVC 2
3 Criação de uma aplicação Web com acesso a base de dados
4 Redes de Petri na modelagem de Sistemas Web
5 Introdução à segurança
Simétrica
Assimétrica
O que vem na próxima aula
CONCLUSÃO