Edi Carlos Siniciato
Transcrição
Edi Carlos Siniciato
UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS Edi Carlos Siniciato¹, William Magalhães¹ ¹ Universidade Paranaense (Unipar) Paranavaí – PR – Brasil [email protected], [email protected] Resumo. Este artigo descreve a utilização de uma arquitetura consistente para desenvolvimento de software web baseado na plataforma J2EE (Java 2 Enterprise Edition) acoplada a tecnologias como JSF (Java Server Faces), Maven, Primefaces, Spring Security e Subversion. Bem como seu emprego na construção do projeto técnico de software proporcionando um caso de uso para exibir como resultado a geração de um CRUD (Create, Read, Update, Delete) envolvendo a arquitetura proposta. 1. Introdução Todo software construído para plataforma web requer uma arquitetura consistente e segura para se adequar ao escopo do projeto e requisitos do software. A ISO/IEC/IEEE 42010:2013, define arquitetura como uma organização fundamental de um sistema incorporada em seus componentes, seus relacionamentos com o ambiente, e os princípios que conduz seu design e evolução. Essa arquitetura alinhada a tecnologias e frameworks é indispensável no desenvolvimento de uma aplicação web que pode ser seguida por uma escala de menor para maior complexidade. Hoje no mercado temos muitas tecnologias que podem ser moldadas para projetos web como, JSF, Maven, Subversion, Plataforma J2EE, Primefaces e Spring Security. O objetivo dessa pesquisa é apresentar uma arquitetura otimizada na plataforma J2EE agregada a essas tecnologias web, implicando na descrição das mesmas, permitindo a junção de todo o processo para gerar um CRUD em JSF, que irá demonstrar a arquitetura construída a partir de um estudo de caso contido no projeto técnico de sistemas de informação (software). 2. Arquitetura de Software Introduzida a Plataforma J2EE A arquitetura de um software consiste na definição de seus componentes, as propriedades externamente visíveis destes elementos e os relacionamentos entre eles, enfatizando a separação dos interesses [BASS 2003]. A plataforma Java 2 Enterprise Edition é uma tecnologia de referência para desenvolvimento de aplicações web. Essa tecnologia acopla um sistema de multicamadas suportando componentes de apresentação (JSF, Servlet), componentes de regra de negócio e persistência dos dados como Enterprise Java Beans (EJB), Contexts and Dependency Injection (CDI), dá suporte a conexão com banco de dados e gerencia a camada de controle da aplicação. Tornando assim uma arquitetura flexível buscando simplificar e padronizar a estrutura do projeto. 2.1. A camada modelo-visão-controle (MVC) Esse modelo introduz um padrão para desenvolvimento de software permitindo isolar a lógica de negócio da interface (apresentação), proporcionado um desacoplamento entre os objetos permitindo desenvolver e testar separadamente cada parte do projeto. Segundo SAM [2007] esse padrão implementa um use-case interativo em três componentes: Modelo: Mantém o estado atual da View. É responsável por alterar o estado e fornecer à View os valores atuais. View (apresentação): Captura ações do usuário e comunica com o controle para que sejam executadas. Controle: Recebe solicitações da View, invoca as regras de negócio necessárias, comanda a alteração do estado do Modelo e a atualização das informações exibidas na View. 2.2. Integrando o framework JSF a camada da aplicação O JSF é um framework da especificação Java Enterprise Edition (JEE) desenvolvido para aplicações web, sua estrutura é definida por um modelo único de componente (UIComponents), o qual utiliza conceito de eventos para trabalhar com interface, além de poder ser mesclados com novas tecnologias web como as tags HTML5 e estilos do CSS 3, validações e conversões de dados. O JSF é uma tecnologia que incorpora características de um framework MVC para web e de um modelo de interface gráficas baseado em eventos. Por basear-se no padrão MVC, uma de suas melhores vantagens é a clara separação entre a visualização (View) e regras de negócio (Controle) [PITANGA]. Como mostra a figura 1. Figura 1: Modelo MVC do JavaServer Faces (Fonte: Mota, Roberto Dias) 2.3. Primefaces a suite para JSF O Primefaces é uma biblioteca de componentes para JSF que implementa tecnologia AJAX e JavaScript, ao todo são mais de 100 componentes todos personalizáveis e de fácil utilização, pois disponibiliza um showcase com todos os exemplos implementados. Esse framework foi o primeiro a dar suporte para JSF 2.0 e sua estrutura é leve sendo que todas as decisões são tomadas baseadas em manter o Primefaces mais leve quanto possível [Prime Tecnology, 2013]. 2.4. Repositório maven O Maven é uma ferramenta para gerenciamento de dependências, seu comportamento distribui ao projeto as bibliotecas e arquivos jars necessário para o desenvolvimento, essas injeções chegam ao projeto através de repositórios disponíveis na web ou repositórios locais contido no diretório classpath onde foi instalado o JDK (Java Development Kit). Basicamente a configuração do Maven é feita por um arquivo chamado pom.xhtml (Project Object Model) nele declaramos a estrutura, características e dependências do projeto. 2.5. Gerenciando o projeto com subversion O Subversion é um sistema de controle de versão (SVN) que gerencia arquivos e diretórios, e as modificações feita no mesmo ao longo do desenvolvimento do projeto. Esse sistema permite o trabalho em equipe, onde diversas pessoas podem trabalhar no mesmo projeto em locais distintos. As operações (atualizar cópia, submeter alterações, reverter alterações) fazem parte do ciclo de trabalho do projeto. Para o gerenciamento da SVN são criado os diretórios Trunk que contém o projeto em desenvolvimento e suas atualizações, os Branches armazena as versões paralela do Trunk, porém isolada deste. O Branch é uma versão final do projeto que é gerada a partir do Trunk. A figura 2 ilustra o ciclo de trabalho na SVN Figura 2: Ciclo de trabalho na SVN (Fonte: Moreira, Anderson L. S.) 3. Estudo de Caso (A Aplicação) O estudo de caso proposto visa desenvolver um projeto técnico de sistema resultando em um Software Web para Gestão Comercial (SW-GC). Sua construção partiu dos conceitos da engenharia de software onde foi possível realizar uma análise de requisitos e definir um escopo para o desenvolvimento do projeto. Seguindo esse escopo foi possível aplicar as tecnologias abordadas nessa pesquisa cientifica construindo uma arquitetura flexível, otimizada e consistente. 3.1. Gerando um CRUD aplicando a arquitetura proposta A partir do estudo de caso foi possível gerar um CRUD, apresentando os resultados obtidos através da arquitetura proposta. A figura 3 apresenta a View (tela) de gestão de usuário do sistema. Figura 3: CRUD de gestão de usuário gerado a partir da arquitetura introduzida 3.2. Aplicando segurança ao projeto com spring security O Spring Security é um framework de autenticação e controle de acesso, altamente customizado em aplicações Enterprise Java Bean (EJB). Sua implementação é feita através de configurações declarativas via arquivo XML ou anotações com auxílio de programação orientada a aspecto (AOP). Essa ferramenta faz a segurança através de declarações baseadas em papéis (roles). Através dos roles definidos, podemos informar ao aplicativo, a qual área está sendo assegurada, quais recursos podem ser acessados e qual usuário receberá permissões para acessar o conteúdo restrito. A figura 4 implementa a parte de segurança requisitada no CRUD apresentado na figura 3. Figura 4: Arquivo applicationContext.xml do projeto proposto apresentando os níveis de acesso para cada hole gerenciado pelo Spring Security. 4. Metodologia O trabalho é resultado de uma revisão bibliográfica acerca das tecnologias abordadas, revisando artigos científicos, livros, trabalho de conclusão de curso publicados, e ainda sites da internet especializados no assunto. Acrescendo o levantamento do caso de uso em questão coincidindo com as tecnologias pesquisadas. 5. Conclusão O desenvolvimento de software web dentro de uma arquitetura planejada tem objetivado resultados positivos no mercado, alcançando padrões de alto níveis tanto para o produto final, quanto para projetista e desenvolvedor. Outro ponto importante está nas tecnologias que envolvem essa arquitetura, pois podemos encontrar frameworks de alta performance como os descritos nessa artigo para moldar o projeto. É importante ressaltear que a arquitetura proposta não é um modelo a ser seguido e sim o acoplamento para um caso de uso especifico, podendo ser alterada de acordo com necessidade do projeto. Já o projeto técnico de sistemas (caso de uso) apresentou resultados positivos com a arquitetura implementada, deixando claro a separação entre as camadas de negócio e interface da aplicação. Referências BASS, Len and Clements, Paul and Kazman, Rick. 2003, April. Software Architecture in Practice, Second Edition. Addison-Wesley Professional. MELO JR, Cleuton Sampaio, 2007, Guia do Java Enterprise: Desenvolvendo Aplicações Corporativas. 5ª ed, Rio de Janeiro: Brasport. PITANGA Talita. Java Server Faces: a mais nova tecnologia para desenvolvimento web Disponível em:<www.guj.com.br/content/articles/jsf/jsf.pdf> 28/07/2013. MOTA, Roberto Dias, 2011, Utilizando Framework Java Serve Faces (JSF), Hibernate e Primefaces para Desenvolvimento de Software para Web. Prime Tecnology. “Why PrimeFaces?” Disponível em: <http://www.primefaces.org/whyprimefaces.html>. 28/07/2013. Core Spring: Desenvolvimento de Aplicações Java EE com Spring Framework. Disponível em: < http://www.globalcode.com.br/treinamentos/cursos/core-spring >. 25/07/2013 Moreira, Anderson L. S. Controle de Versões com SVN, 2011. Disponível em: <http://siep.ifpe.edu.br/anderson/blog/?page_id=993>.21/07/2013 Java Frameworks: Spring Security, 2012. Disponível em < http://javaframeworks-renzi.rhcloud.com/?cat=5 >. 20/08/2013 ISSO/IEC/IEEE 42010:2013: System and software engineering – Architecture description. Disponível em:<http://www.iso-architecture.org/ieee1471/afs/>30/07/2013.
Documentos relacionados
Baixar - Unipar
referência para aplicações web, pois define um conjunto de componentes de interface que podem ser mesclados com HTML5, CSS, componentes de regra de negócio e persistência dos dados com EJB (Enterpr...
Leia maisContato com a imprensa: Capital Informação
Developer’s Conference 2009, este ano em sua 3ª edição, contará com a participação dos principais nomes da comunidade Java mundial: Mike Keith, representante da Oracle nas ...
Leia mais