Buscar

Aula 7

Prévia do material em texto

Aula 7 – Arquiteturas MVC Modelos I e II, Implementação de MVC Modelo II, Gerenciamento de Sessão e Login 
 
Relembrando nossa aula anterior... 
 
Padrões de Projeto constituem um conjunto de regras descrevendo como realizar determinadas tarefas no 
desenvolvimento de software. Fonte. 
 
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 descreve um problema que ocorre repetidamente em um ambiente. Ele descreve o núcleo da solução 
do problema, de modo que possamos utilizar esta solução inúmeras vezes. 
 
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). 
 
Podemos citar como exemplos: Reflexão e MVC (Model-View-Controller). 
 
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. 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. (Fonte) 
 
 
 
O Padrão MVC sugere a separação entre o modelo, a visão e o controle de uma aplicação: 
 
 
 
Vantagens e Desvantagens do MVC: 
 
 
 
Utilização de camadas 
 
Segundo SANTOS, o sucesso em aplicações orientadas a objetos está diretamente ligado à organização de aplicações 
em camadas e na utilização dos padrões utilizados pelo mercado. 
 
Aplicações em camadas 
 
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. 
 
 
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. 
 
 
 
 
Nesta estrutura, o acesso à base de dados foi colocado em uma máquina especifica, ficando esta separada das 
máquinas que apenas executam as aplicações. 
 
Neste modelo, as estações dos clientes contem 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 n máquinas clientes, para 
que se atualize o software, terá de ser novamente instalado n vezes. A figura ao lado ilustra o MVC de duas 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 Web podem acessar as aplicações sem a necessidade de instalá-las em suas 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 classes e pacotes. A 
aplicação de três camadas transformou a arquitetura padrão para sistemas corporativos com base na Web. A figura 
ao lado exemplifica o MVC de três camadas. 
 
 
 
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: 
 
 
 
 
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: 
 
 
 
 
Saiba Mais 
 
Segundo, FREIRE, pode-se destacar alguns passos para a construção do modelo MVC 2, tais como: 
1. Definir beans para representar os dados; 
2. Usar um Servlets para tratar requisições; 
3. Preencher os beans; 
4. Armazenar o bean na requisição, sessão, ou no contexto do Servlets; 
5. Encaminhar a requisição para uma página JSP; 
6. Extrair os dados dos beans. 
 
Esta divisão facilita o controle de tarefas e ação realizadas pela implementação do sistema. 
 
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: http://localhost:8080/ e dê 
“enter”. Caso apareça uma das figuras abaixo, ok! Caso contrário, configure o seu Tomcat. 
 
 
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: 
 
 
 
Salve-o na pasta “teste” com o nome de teste.jsp conforme figura: 
 
 
 
Digite no browser o endereço: htpp://localhost:8080/teste/teste.jsp e tecle “enter”. A figura abaixo deve aparecer: 
 
 
 
Verificando sites 
 
Digite http://localhost:8080/ na barra de endereço do browser; 
 
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; 
 
 
 
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). 
 
 
 
 
 
02DS_aula07_doc01.pdf 
 
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 
transição (barra) e outro passivo denominado lugar (círculo). Os lugares equivalem às variáveis de estado e as 
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. 
 
 
 
 
 
02DS_aula07_doc02.pdf 
 
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 umadeterminada 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 kryptós, "escondido", e gráphein, "escrever”, a criptografia é o estudo e aplicação de técnicas que tem 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 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: 
 
 
 
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 
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 (Transport Layer Security) e SSL (Secure Sockets Layer) são exemplos dessa combinação.

Continue navegando