DESENVOLVENDO APLICAÇÕES UTILIZANDO JAVASERVER FACES E MVC Felipe Moreira Decol Claro1, Késsia Rita da Costa Marchi1 1 Universidade Paranaense (Unipar) Paranavaí – PR – Brasil [email protected], [email protected] Resumo. Este artigo compreende o estudo da tecnologia JavaServer Faces e MVC, abordando seus conceitos e a sua importância no desenvolvimento de um produto computacional de qualidade. O Java Server Faces e o MVC vem sendo muito utilizado no desenvolvimento de softwares por garantir segurança para a aplicação e a eficiência no desenvolvimento do software. 1. Introdução Frameworks são bibliotecas que vem sendo desenvolvidas com o intuito de agilizar e facilitar o desenvolvimento de aplicações, poupando o tempo que o desenvolvedor gastaria para criar um método, a framework já traz tudo pronto, desta forma aumentando a produtividade e consistência do projeto, fazendo com que o sistema seja um produto de qualidade. [SCARPINI 2011] O JavaServer Faces é um framework de componentes do lado do servidor para a construção de aplicações web baseadas na tecnologia Java, desenvolvendo aplicações mais robustas e flexíveis separando o modelo da visão. [ORACLE 2013] O uso do framework baseada no padrão de desenvolvimento MVC (Modelo, Visão e Controle), auxilia, organiza e separa a camada de interface com as regras de negocio do sistema, permitindo que ele possa ser desenvolvido em plataforma WEB e com a mesma regra de negócio possa ser desenvolvido na plataforma DESKTOP. [NASCIMENTO 2005] Com o uso de frameworks o trabalho de um desenvolvedor iniciante é facilitado, tendo em vista os erros que cometeria no desenvolvimento e as dificuldades que passaria no projeto, à framework já corrigiu, criando testando e implementando um novo padrão de desenvolvimento, reduzindo o tempo de desenvolvimento, aumentada a produtividade e qualidade do software. Esse artigo tem como objetivo apresentar as tecnologias JavaServer Faces (JSF) e Model View Control (MVC) e seu funcionamento no desenvolvimento de um software. 2. A utilização do JavaServer Faces. O JavaServer Faces é a tecnologia padrão do Java 2 Plataform Enterprise Edition (J2EE) para desenvolver aplicações web. Ele herda das tecnologias (JSP) Java Serves Pages e Servlets, e extende seus conceitos com um ciclo de vida e um conjunto de componentes e recursos avançados e focados no desenvolvimento para web. [GOMES 2008] O uso da tecnologia JSF exige dedicação e tempo, pois não é uma tarefa fácil. Entretanto, ao redor do mundo, muitos desenvolvedores já criaram diversas bibliotecas que auxiliam nesta tarefa, gerando o que chamamos de framework. O JavaServer Faces é o framework notável em termos de programação em Java, boa parte de suas promessas são cumprida, por desenvolver aplicações mais robustas e flexíveis não se mistura código do modelo com a visão. [GEARY 2007] Com a utilização do JavaServer Faces (JSF) no desenvolvimento de um software, torna-o mais confiável e flexível fazendo com que a aplicação tenha excelentes resultados. O JSF é uma tecnologia que recebe características de um framework MVC para WEB e de um modelo baseado em interfaces gráficas. Por basear-se no padrão MVC, uma de suas vantagens é de poder separar a interface gráfica com a regra de negocio do sistema. [PITANGA 2004] O JSF tem um ótimo rendimento quando se no desenvolvimento de um software, por concentrar-se grande parte de códigos redundantes, a transparência na separação das camadas do MVC, deixando ainda clara a ideia de trabalhar com aplicações em camadas. “No JSF, o controle é composto por um servlet denominado FacesServlet, por arquivos de configuração e por um conjunto de manipuladores de ações e observadores de eventos. O FacesServlet é responsável por receber requisições da WEB, redirecionálas para o modelo e então remeter uma resposta.” [PITANGA 2004] Facelets é uma linguagem leve e poderosa, que é usada para construir referências JSF usando HTML. As características do Facelets são: Templates para componentes de páginas; Reutilização de código através de templates; Compilação em tempo real de uma página; Alto desempenho de execução; Utilização de XHTML na construção de páginas; Suporte para o Expression Language (EL); Assim o uso de Facelets reduz tempo e trabalho, diminuindo gasto em projeto de uma aplicação. [ORACLE 2013] O JSF oferece um modelo de desenvolvimento bem definido baseado no padrão MVC, tendo características que facilitam a construção e manutenção dos aplicativos web. As funcionalidades fornecidas pela aplicação web JSF são: Um conjunto de páginas da web em que os componentes são estabelecidos. Um conjunto de tags para adicionar componentes para a página web. Um descritor de implantação da web. Um conjunto de tags personalizadas para representar objetos personalizados na página. A Figura 1 representa a execução de uma regra de negócio ao receber dados vindos da camada de interface respondendo a solicitação de um usuário em uma aplicação desenvolvida em JSF. Figura 1. Executando uma requisição vinda da camada de interface. [PITANGA, 2004] A separação das camadas e com o detalhamento do código, o JavaServer Faces trás uma grande facilidade para realizar futuras manutenções e implementações de novos módulos. 3. A utilização do padrão de desenvolvimento MVC “O MVC é um conceito (paradigma) de engenharia de software para desenvolvimento e design, que propõe a separação de uma aplicação em três partes distintas. O model está relacionada ao trabalho atual que aplicação administra, a view, é interligada a exibir os dados ou informações da aplicação, o controller está designado em controlar as duas camadas anteriores exibindo a interface correta ou executando algum trabalho complementar para a aplicação.” [GONSALVES 2007] O modelo é a camada responsável pela persistência dos dados na aplicação, no modelo conterá todas as funcionalidades como incluir, excluir, consultar e salvar, além de outras funcionalidades como a ordenação de índices. A visão é o local onde se você desenvolve tudo que vai ser visualizado pelo usuário quando ele abrir o sistema, logicamente acompanhadas de um bom design, uma boa estrutura organizacional e um ambiente agradável para quem está vendo, é também por meio da visão que se faz as requisições das operações que se comunicam diretamente com o controle. O controle é responsável pelo funcionamento do software, ou seja, é o coração da aplicação onde fica toda parte logica do software como a regra de negócios, que abrange a politica da empresa mostrando suas etapas de funcionamento e o que pode ser feito, com a regra de negócio implementada ele limita as ações do usuário. As vantagens de se utilizar o modelo de desenvolvimento MVC são: Gerenciar múltiplos visualizadores usando o mesmo modelo, isso facilita a manutenção e os testes do software. Mais simples na inclusão de novos clientes apenas incluindo seus visualizadores e controles. Figura 2. Fluxo de Trabalho do Modelo de Desenvolvimento MVC. [HARVARD 2013] 4. Metodologia O trabalho resultou em uma ampla pesquisa sobre modelo de desenvolvimento MVC e framework JSF, suas definições e conceitos, utilizando a consulta de artigos e sites da internet, livros e slides com materiais de aulas universitárias (aulas do curso de Sistemas de Informação pela Universidade Paranaense – Unipar, Campus de Paranavaí - Paraná). .5. Conclusão A utilização da tecnologia Java Server Faces, mostrou-se extremamente eficiente no quesito facilidade de uso e curva de aprendizado. O JSF nos permite empregar camadas de MVC nas aplicações web, isso permite a separação das regras de negócio e da camada de visão, tornando a manutenção do sistema ágil e simples. Outro aspecto interessante do uso do JSF nas aplicações, ainda mais interessante que a separação das camadas do sistema é a possibilidade da compilação em tempo real da página e a possibilidade do uso de web-templates, esta funcionalidade torna a programação da parte visual do software muito mais veloz. As tecnologias abordadas neste artigo foram empregadas em uma aplicação, e alcançaram os objetivos esperados, superando as expectativas previstas. Referências NASCIMENTO Givanildo Santana, Framework MVC: Apace Struts ou JavaServer Faces Disponível em: <http://www.plugmasters.com.br/getContent.php?url=http://www.plugmasters.com.b r/sys/materias/213/1/Framework-MVC:-Apache-Struts-ou-JavaServer-Faces?-parte3>. ORACLE, 2013. The Java EE 6 Tutorial Disponível em: <http://docs.oracle.com/javaee/6/tutorial/doc/bnaph.html> acessado em 30/07/2013 SCARPINI, Gustavo Costa, Desenvolvimento Agil de Aplicações para WEB Utilizando Frameworks JavaServer Faces e Apache Struts Disponível em: < http://web.unipar.br/~seinpar/artigos/Gustavo-Costa-Scarpini.pdf >, 2011 GOMES, Yuri Marx P. “Java na Web com JSF, Spring, Hibernate e Netbeans 6”, Rio de Janeiro: Ciência Moderna Ltda. 2008 GEARY, David.; HORSTMANN Cay. Core Java Server Faces. Rio de Janeiro Alta Books, 2007. PITANGA, Talita. JavaServer Faces a mais nova tecnologia para desenvolvimento web Disponível em: <http://www.guj.com.br/content/articles/jsf/jsf.pdf>, 2004 GONSALVES, Edson. Desenvolvendo Aplicações Web com JSP, Servelts, Java Server Faces, Hibernate, EJB 3 Persistence e Ajax. Rio de Janeiro. Ciência Moderna Ltda, 2007 HARVARD, 2013, University Extension School, Model, View, Controllet (MVC) Design Pattern, Disponível em: <http://cscie153.dce.harvard.edu/lecture_notes/2012/20121112/slide10.html>, acessado em 30/07/2013.