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

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 mais

Contato com a imprensa: Capital Informação

Contato 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