Baixe o app para aproveitar ainda mais
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.
Compartilhar