UMA INTRODUÇÃO DA TECNOLOGIA DE DESENVOLVIMENTO WEB UTILIZANDO JAVA SERVERFACES (JSF) Júlio César Semprebom¹, Wyllian Fressatti ¹Universidade Paranaense (Unipar) Paranavaí – PR – Brasil [email protected], [email protected] Resumo. Este artigo trata de uma revisão bibliográfica sobre a framework para desenvolvimento web conhecida como Java ServerFaces (JSF), apresentando conceituações, funcionalidades e vantagens de utilização na web. Seu desenvolvimento e alguns conceitos sobre o padrão MVC JavaServer Faces (JSF), Model, View, Controller (MVC), Java Persistence API (JPA), Hibernate e Banco de Dados PostgreSQL, tem o intuito de mostrar sua praticidade e utilizar esta framework em um desenvolvimento web, numa aplicação Java 2EE utilizando a framework JSF. 1. Introdução “Desenvolvido através do Java Community Process sob JSR - 314, a tecnologia JavaServer Faces estabelece o padrão para a construção de interfaces com o usuário do lado do servidor. Com as contribuições do grupo de peritos, o JavaServer Faces APIs estão sendo projetados de modo que possam ser alavancadas pelas ferramentas que irão tornar o desenvolvimento de aplicações web ainda mais fácil” [Oracle, s.d.]. Java ServerFaces (JSF) é um framework MVC do Java Web utilizando um padrão de separação da parte lógica e estática, com vários funcionalidades para facilitar o desenvolvimento de programas para web. O modelo padronizado do JSF é um padrão de projeto conhecido como MVC. O MVC é uma sigla utilizada para referir aos três componentes utilizados em um padrão de projeto, é a abreviação de Model,View,Controller (modelo, visão e controle). Um padrão utilizado para separar códigos xhtml de códigos fonte em aplicações web. O objetivo deste artigo é fazer uma pesquisa científica sobre a ferramenta JSF, apresentando as funcionalidades desse framework, suas vantagens de utilização para desenvolvimentos de aplicações web, conceitos de um framework MVC, e uma JPA. Por fim, concluir quais os benefícios ao utilizar estas ferramentas em um desenvolvimento de software. 2. Metodologia Para o desenvolvimento do artigo foi feita uma revisão bibliográfica em apostilas online, sites e livros, onde foram pesquisados fundamentos deste framework, pelo fácil acesso e maior acessibilidade. Após o estudo, um software web foi desenvolvido utilizando o Java 2EE, a framework Java ServerFaces (JSF) e Banco de Dados Postgre. A implementação foi feita com a IDE Netbeans versão 8.1 para desenvolvimento e o Glassfish 4.1 como servidor de aplicação. 3. Desenvolvimento 3.1. Java Server Faces “JSF é uma tecnologia que incorpora características de um framework MVC para WEB e de um modelo de interfaces gráficas baseado em eventos. Por basear-se no padrão de projeto MVC, uma de suas melhores vantagens é a clara separação entre a visualização e regras de negócio (modelo)” [Pitanga, s.d.]. O Java ServerFaces (JSF) é uma framework MVC que foi desenvolvida para deixar mais fácil o desenvolvimento web, tentar abstrair a complexidade de desenvolvimento e permitir a criação de interfaces de usuários que possui um conjunto de componentes com em formulários que ligam com objetos, input e botões e vária funcionalidades e interatividade. Java ServerFaces (JSF) é uma tecnologia herdada das JSP e Servlets para criar aplicações web. Na Figura 1, pode-se entender como funciona a estrutura de uma aplicação utilizando a framework MVC Java ServerFaces. Sua estrutura é separada por páginas web onde terá pastas armazenando arquivos HTML, no qual o cliente visualizará no sistema, conhecido como view (visão). A outra parte é separada por arquivos Java, esta parte é dividido em dois pacotes, o controller que contém páginas Java, que controlarão o sistema e o pacote model que armazena páginas Java utilizada para fazer a persistência de dados em um banco de dados utilizando Hibernate e JPA Figura 1 – Estrutura de uma aplicação Java ServerFaces [Marques, 2011] 3.2. Modelo MVC O MVC é um padrão arquitetônico que organiza a aplicação através de uma separação de interesses. Ele reforça o isolamento de dados de negócios (modelo), de interfaces de usuário (visão), com um terceiro componente (controlador), lógica gestão tradicional e entrada do usuário [Osmani, 2012]. Este padrão é uma das tecnologias que auxiliam os desenvolvedores de aplicação Java Web. A ferramenta é de grande importância para o desempenho e organização do desenvolvimento, pois ela tem a função de separar o código HTML do Java. Na figura 2, exemplifica como o padrão MVC funciona. O Cliente visualiza apenas as páginas de visão, o controlador as controla e o modelo armazena os dados. Figura 2 – Padrão MVC [Celestino, 2013] “A MVC tem algumas vantagens no desenvolvimento, tais como, reaproveitamento dos componentes do modelo, utilizar os objetos de negócio definidos na camada modelos em diversas classes/arquivos de visualização” [Frasson, 2014]. 3.3. Java Persistence API (JPA), Hibernate e Banco de Dados PostgreSQL. “O Java Persistence API (JPA) é um framework baseado em POJOS (Plain Old Java Objects) que persiste objetos Java. A Java Persistence API, diferente do que muitos imaginam, não é apenas um framework para Mapeamento Objeto-Relacional (ORM - Object-Relational Mapping), ela também oferece funcionalidades essenciais em qualquer aplicação corporativa” [Medeiros, 2013]. A framework objeto relacional Java Persistence API (JPA), segundo Frasson (2014), propõe uma maneira de trabalhar diretamente com classes sem consultas nativas do banco de dados. Segundo site NetBens (s.d.), o Hibernate é o framework de mapeamento relacional de objeto (ORM). Segundo Magalhães (2013), o Hibernate é um Framework escrita na linguagem Java, como ferramenta poderosa realiza o mapeamento de atributos dentro de tabelas do banco de dados. Sua principal função é abstrair o mapeamento de forma econômica e resolver problemas referentes a determinadas tarefas. Ainda segundo o autor, o Hibernate disponibiliza um mecanismo de consulta de dados para seus usuários, que posteriormente diminuir o tempo de desenvolvimento que poderia ser gasto em uma determinada aplicação. Por utilizar sua própria HQL (Hibernate Query Language) disponibiliza a função de consulta e retorno de dados, fazendo a conversão entre os registros permitindo que a aplicação utilize qualquer banco de dados SQL. “Um esquema de banco de dados é especificado por um conjunto de definições expressas por uma linguagem especial chamada linguagem de definição de dados (Data Definition Language, DDL). O resultado da compilação de comandos de uma DDL é um conjunto tabelas que são armazenadas em um arquivo especial chamado dicionário (ou diretório) de dados” [Sanches, 2005]. “O PostgreSQL é um poderoso sistema gerenciador de banco de dados objetorelacional de código aberto” [PostgreSQL, s.d.]. Segundo Silva (s.d.), o Banco de Dados PostgreSQL tem a licença BSD (aberto, permite uso comercial) e é um sistema Multiplataforma (Unix, GNU/Linux, Windows...). Na figura 3, é apresentado o resultado da implementação realizada neste estudo. Uma tela de cadastro de Pessoa Física/Jurídica mostra como é o layout de um sistema Java com JSF. Figura 3: Tela de Pessoa Física/Jurídica 4. Conclusão O JavaServer Faces é uma tecnologia que está se aprimorando com novas funcionalidades para facilitar nos desenvolvimento web. Após o desenvolvimento desse artigo, pode-se concluir que o JSF é uma framework de desenvolvimento Java Web bem estruturada que facilita o entendimento dos códigos, por causa da sua estrutura e organização através do modelo MVC. O estudo realizado sobre estas ferramentas e a implementação do software resultaram em uma aplicação web JAVA 2EE utilizando a Framework Java ServerFaces (JSF) e Banco de Dados PostgreSQL. Esta aplicação será utilizada para realização de ordem e serviço para uma oficina de lancha para auxiliar no trabalho da empresa de uma forma organizada. Referências Frasson, R. Apostila Java Web. 2014. p. 57, 58. http://goo.gl/vf8mje Acesso em 13/07/2015. Medeiros, H. Introdução à JPA – Java Persistence API. 2013. Disponível em http://goo.gl/LAs2L2 Acesso em 13/05/2015. Osmani, Addy (2012) Learning JavaScript Design Patterns. First Edition. California: O’Reilly p. 79 Marques, T. Crud em JSF 2.0 e Primefaces 2.2.1 parte 1. 2011. Disponível em: http://goo.gl/oKuR25 Acesso em 19/07/2015 Celestino, A. L. O conceito e as duvidas sobre o MVC. 2013. Disponível em http://goo.gl/stKdt4 Acesso em 19/07/2015 Oracle Tecnologias Java ServerFaces. s.d. Disponível em http://goo.gl/NyYvEi Acesso em 19/07/2015 Pitanga, T. JavaServer Faces: A mais nova tecnologia Java para desenvolvimento WEB. s.d. http://goo.gl/Fa9fQ3 Acesso em 20/07/2015 Magalhães, C. F. Utilização do Framework Hibernate em aplicação JAVA WEB, Universidade Paranaense – UNIPAR, Paranavaí, PR. 2013. Disponível em http://goo.gl/mdOXE1 Acesso em 05/08/2015 NetBeans. s.d. Disponível em https://goo.gl/coA73S Acesso em 06/08/2015 Sanches, A. R. Disciplina: Fundamentos de Armazenamento e Manipulação de Dados. 2005. Disponível em http://goo.gl/vGzA2t Acesso em 08/05/2015 Silva, A. L. F. PostgreSQL. USP. s.d. Disponível em http://goo.gl/9WmlGe Acesso em 05/08/2015 PostgreSQL. Sobre o PostgreSQL. s.d. Disponível em http://goo.gl/nrcMpn Acesso em 05/08/2015