DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS Emanuel M. Godoy1, Ricardo Ribeiro Rufino1 1 Universidade Paranaense (Unipar) Paranavaí – PR – Brasil [email protected], [email protected] Resumo. O presente artigo tem como objetivo apresentar uma arquitetura consistente para o desenvolvimento web tendo como base a plataforma J2EE (Java 2 Enterprise Edition), trabalhando em conjunto com tecnologias tais como JSF (Java Server Faces), o framework Primefaces, Glassfish e Spring Security, entre outras, com o objetivo de confeccionar um produto computacional de qualidade utilizando essas tecnologias, trabalhando com a linguagem de programação Java e o padrão de arquitetura MVC (modelo, visão e controle), proporcionando assim um software final de qualidade dentro dos padrões para desenvolvimento web. 1. Introdução Nos dias atuais, todo software implementado ou confeccionado para a plataforma web, precisa ter uma arquitetura consistente e segura o bastante para adequar-se ao escopo do projeto e requisitos do software que será desenvolvido. Sendo assim, essa arquitetura pode ser definida como uma organização de suma importância para um sistema incorporada em seus componentes, os seus relacionamentos com o ambiente, e os princípios que se fazem conduzir em seu design e evolução. O desenvolvimento do software em questão, somado a essas tecnologias e frameworks, é indispensável para a implementação de uma aplicação nos padrões web dos dias atuais, podendo ter um grau de maior ou menor complexidade no decorrer do seu desenvolvimento. Atualmente, o mercado nos disponibiliza várias tecnologias que podem ser utilizadas para a implementação de softwares web, como por exemplo, plataforma J2EE (Java 2 Enterprise Edition), JSF (Java Server Faces), Glassfish (servidor web) e Spring Security ( para segurança da aplicação), entre outras. O objetivo do trabalho em questão é desenvolver de um produto computacional final utilizando essas tecnologias, proporcionando assim a confecção de um sistema de software de qualidade, tentando atender as necessidades do cliente e visando obter os resultados esperados. 2. Metodologia Para o desenvolvimento deste trabalho foi realizada uma revisão bibliográfica em materiais como livros em formato digital (ebooks), artigos e sites da internet. Com o intuito de absorver conhecimento e material necessário para a realização do trabalho de forma que o mesmo consiga ser bastante claro e objetivo, tendo assim um resultado satisfatório. 3. Desenvolvimento 3.1. A plataforma J2EE A plataforma J2EE (Java 2 Enterprise Edition) é uma plataforma criada para servidores com aplicações web, desenvolvida na linguagem de programação Java. Essa tecnologia consiste em um sistema de multicamadas que dá suporte a componentes de apresentação (JSF, Servlet), auxilia na utilização de componentes de regra de negócio e também componentes de persistência no banco de dados como o EJB (Enterprise Java Beans), suporta também a conexão com o banco de dados, e possibilita maior flexibilidade da arquitetura do projeto de forma bem mais simples, isso feito através do gerenciamento da camada de controle da aplicação. 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 et al, 2003]. 3.2. O framework JSF O framework JSF (Java Server Faces) é um framework para desenvolvimento de aplicações web com Java que implementa o padrão Model View Controller (MVC), baseado na configuração de um controlador para o fluxo de informações entre as camadas de visão e web. [ORACLE, 2015]. O JSF torna o desenvolvimento de aplicações web mais rápidas, aumentando a produtividade e também minimiza a dificuldade de manutenção da aplicação. E devido o JSF ser muito dinâmico, ele ainda possibilita a utilização de diversas tecnologias, como CSS ( Cascading Style Sheets), HTML, validações e conversões de dados, para a criação de novos componentes. Por basear-se no padrão MVC, o JSF tem como uma vantagem a separação da camada View (visualização) da camada Controller (negócio). 3.3. Padrão de Arquitetura MVC O padrão de arquitetura MVC (Modelo, Visão e Controle) é um tipo de padrão para desenvolvimento web que permite a separação entre a lógica de negócio da aplicação e as interfaces de visualização, dividindo assim o sistema em três partes, cada uma contendo suas responsabilidades de forma distinta. Essas separações (partes) são denominadas de modelo, visão e controle. A camada Modelo representa os dados, e mantém o estado da aplicação pela definição dos mesmos armazenados e fornece o acesso às informações quando se faz necessário. A camada Visão é responsável pela exibição das informações vindas da camada Modelo e também é responsável por captar e enviar aos controles, todas as ações dos usuários sobre os dados apresentados. A camada Controle faz a ligação entre camadas Modelo e Visão, acionando um ou outro, de acordo com as requisições recebidas. Essa interação produz modificações no estado do sistema que então provoca respostas diferenciadas ao cliente. Ao dividir em grupos as diversas tarefas de um sistema, o padrão MVC faz com que a aplicação passe a ter uma arquitetura onde a interface pode ser modificada sem preocupações com alterações na camada de lógica do negócio. [Engholm Júnior, H 2010]. A figura 1 mostra a arquitetura JSF baseado no padrão MVC. Figura 1. Arquitetura do JSF baseada no MVC Fonte: http://enucomp.com.br/2012/conteudos/AnaisVENUCOMP2012.pdf 3.4. Primefaces O Primefaces é um framework para interface gráfica, composto por mais de 100 componentes para o JSF, ou seja, é uma biblioteca de componentes para JSF, com suporte nativo a Ajax e HTML 5. É de fácil utilização, possui boa documentação e tem ricos exemplos de códigos disponibilizados na web para auxílio na utilização dos mesmos. PrimeFaces é uma biblioteca leve, todas as decisões tomadas são baseadas em manter as aplicações tão leves quanto possível. Normalmente a adição de uma solução de terceiros poderia trazer uma sobrecarga, mas no entanto, este não é o caso com PrimeFaces. É apenas um único .jar com nenhuma dependência e nada para configurar. [Prime Tecnology, 2015]. 3.5. Servidor Web Glassfish O GlassFish é um software livre para a plataforma J2EE, e é também um servidor web, sendo duplamente licenciado sob duas licenças de software livre: Common Development and Distribution License (CDDL) e GNU General Public License (GPL) alterada exceção para classpath. De fácil manuseio, desde sua instalação até a sua utilização, é uma ferramenta que pode ser usada em qualquer aplicação web, e podem-se obter resultados satisfatórios quanto a sua utilização no desenvolvimento do projeto. 3.6. Segurança com Spring Security O Spring Security é uma alternativa à segurança oferecida pela especificação Java EE. Ele centraliza as configurações em um único arquivo XML, dispensando configurações do container, tornando a aplicação web portável. Assim, todo o controle passa a ser feito de maneira declarativa, retirando do desenvolvedor a responsabilidade de ter que controlar o acesso a recursos por perfis de maneira programática, utilizando filtros, por exemplo. Essa poderosa ferramenta faz a segurança baseada em papéis, chamados roles, onde através desses papeis podemos informar á aplicação qual área do sistema está sendo acessada, quais recursos podem ter o acesso liberado e quais usuários tem a permissão necessária para acessar determinada área do sistema. Spring Security é uma estrutura que se concentra em fornecer autenticação e autorização para aplicativos Java. Como todos os projetos do tipo, o poder real do Spring Security é encontrado em quão facilmente ele pode ser estendido para atender aos requisitos personalizados. [Spring Security, 2015]. A figura 2 mostra o gerenciamento de dependência do Spring Security. Figura 2. Gerenciamento de dependência do Spring Security Fonte: http://projects.spring.io/spring-security/ 4. Considerações finais O desenvolvimento de aplicações web tem evoluído muito nos últimos anos, sempre utilizando novas tecnologias, buscando sempre trabalhar com uma arquitetura consistente e segura o bastante para adequar-se ao escopo do projeto e os requisitos do software que será desenvolvido, buscando sempre a confecção de sistemas computacionais de qualidade, tendo como resultado final um produto satisfatório. O presente trabalhou tratou de ferramentas utilizadas na implementação de sistemas ou aplicações web, mostrando um pouco de algumas das tecnologias que estão sendo utilizadas no projeto, suas funcionalidades e características, bem como também a importância das mesmas para a confecção de um produto computacional de qualidade. É de suma importância para a continuidade, e por ventura a conclusão do projeto citado no presente artigo, que o conhecimento sobre essas tecnologias continue aumentando de forma gradativa e satisfatória, para chegar ao objetivo final do trabalho, esse que é a conclusão do projeto do sistema de software, sempre respeitando os devidos padrões para web e buscando atender as necessidades que levaram o cliente a requerer o desenvolvimento do sistema em questão. 5. Referências BASS, Len. et al (2003), April. Software Architecture in Practice, 2nd. ed. AddisonWesley Professional. ORACLE. JavaServer Faces technology overview. 2015. Disponível em: <http://www.oracle.com/technetwork/java/javaee/overview-140548.html>. Acesso em: 23/07/2015 Engholm Júnior, H. (2010). Engenharia de Software na Prática. São Paulo: Novatec Editora. Prime Tecnology. “Why PrimeFaces?” Disponível em: <http://www.primefaces.org/whyprimefaces.html>. Acesso em 28/07/2015 Projects Spring. “Spring Security” Disponível em: <http://projects.spring.io/spring-security/>. Acesso em 26/07/2015 PITANGA Talita. Java Server Faces: a mais nova tecnologia para desenvolvimento web. Disponível em:<www.guj.com.br/content/articles/jsf/jsf.pdf>. Acesso em: 25/07/2015. LEOCADIO, Jailson N. et al (2012) Desenvolvimento Web com Framework Primefaces. Disponivel em: < http://enucomp.com.br/2012/conteudos/AnaisVENUCOMP2012.pdf >. Acesso em: 28/07/2015.