UMA ARQUITETURA VOLTADA PARA O DESENVOLVIMENTO DE APLICAÇÕES WEB. Djonathan Assis Oliveira1 , Jaime William Dias1 1 Universidade Paranaense (Unipar) Paranavaı́ – PR – Brasil [email protected], [email protected] Resumo. Este artigo constitui um trabalho sobre as tecnologias utilizadas para elaboração de um software web que assegura as qualidades e padrões de desenvolvimento web. Descrevendo as seguintes ferramentas utilizada no desenvolvimento com plataforma JEE (Java Enterprise Edition) juntamente com a tecnologia JSF (Java Server Faces), a framework PrimeFaces, Tomcat, CDI (Context and Dependency Injection), Maven, Spring Security e Subversion, entre outras, como objetivo de apresentar um produto computacional de alto padrão utilizando essas tecnologias, trabalhando juntamente com a linguagem de programação Java, proporcionando um aplicação final de maneira ágil e satisfatória dentro dos paradigmas web. 1. Introdução Quando se pensa na elaboração e implementação de uma aplicação web, nem de longe é uma tarefa fácil, é necessário decidir o conjunto de tecnologias e ferramentas que serão utilizadas no desenvolvimento, juntamente com uma plataforma web que necessita ter uma arquitetura estável e segura para adequar-se ao projeto e ao requisito da aplicação a ser desenvolvido, visto que esta arquitetura pode ser uma referência no meio corporativo por conta de suas especificações. No desenvolvimento de uma aplicação utiliza-se em sua arquitetura um conjunto de tecnologias e framework, tal qual é indispensável na criação de uma aplicação do seguimento web. Atualmente, existem várias tecnologias no mercado que disponibilizam arquiteturas robustas que se utiliza para a implementação de aplicações web como por exemplo, plataforma JEE (Java Enterprise Edition), JSF (Java Server Faces), CDI (para a injeção de dependência) Tomcat (servidor web) e Spring Security (para segurança da aplicação), entre outras.[Andrade 2013]. O objetivo do trabalho é apresentar um produto computacional final com uma arquitetura e os padrões web utilizando as tecnologias e framework atuais, proporcionar a confecção de uma aplicação de qualidade, e dessa forma atender as necessidades do cliente, para obter o resultado esperado. 2. Metodologia Para a realização deste artigo foi feito uma revisão bibliográfica em livros de formato digital (e-books), em sites da internet e em artigos publicados de temas semelhantes a este. Após os conhecimentos adquiridos sobre as tecnologias, foram implementados os conhecimentos na criação de um ambiente de desenvolvimento para linguagem Java, que utiliza plataforma Java EE, a framework Java Server Faces (JSF), e banco de dado Mysql, sendo desenvolvido na IDE eclipse e o Tomcat como servidor de aplicação. 3. Desenvolvimento 3.1. A plataforma Java Enterprise Edition O Java Enterprise Edition é, antes de mais nada, um conjunto de especificações publicadas pela Sun (agora Oracle) e pelo JAVA Community Process (JSRs) que criam toda a infraestrutura para desenvolvimento de aplicações distribuı́das corporativas. [Sampaio 2011]. O modelo de programação JAVA enterprise edition [é baseado em containers, que fornecem todos os serviços necessários para a aplicação corporativa. Desta forma, o desenvolvedor escreve menos códigos, que diminui o tempo de desenvolvimento, os riscos do projeto e os problemas de manutenção. [Sampaio 2011]. As aplicações corporativas do modelo JAVA EE podem ser vistas como um modelo de tiers (ou camadas com separação de conceitos). [Sampaio 2011]. Esta tecnologia engloba varia especificações, APIs para servidores biblioteca e as funcionalidades utilizam um sistema em camadas de apresentação (JSF, Servlet), e componente de regra de negócio e também componente para a injeção de dependência (CDI) e persistência no banco de dado. A figura 1 mostra a Arquitetura lógica JEE: Figura 1. Arquitetura logica J2EE. (Fonte:MARTIN, [2003]). 3.2. Java Server Faces (JSF) JSF (Java Server Faces) é um framework muito dinâmico desenvolvido pela Sun Microsystems para o desenvolvimento de aplicações web de especificações Java utilizando a plataforma JEE. Esta tecnologia baseia-se no padrão de arquitetura MVC (Modelo Visão Controlador), oferece grandes vantagens por separação entre camadas de visualização e regra negócio, que torna o desenvolvimento menos complicado.[Oracle 2015]. 3.3. MVC O padrão de arquitetura MVC permite a lógica de negócio e as interfaces de visualizações e dentro de uma aplicação web é dividida em três partes, e cada uma tem sua importância que são denominadas de modelo, visão e controlador. O modelo é a camada responsável por representar os dados, manter o estado da aplicação pela definição dos dados armazenados e fornecer o acesso às informações quando necessário. A visualização é a camada responsável por exibir as informações vindas do modelo e por captar e enviar aos controles, as ações dos usuários sobre os dados apresentados. O controle é a camada que faz a ligação entre a visão e os modelos, ao relacionar um ou outro, de acordo com as requisições recebidas. Essa interação produz modificações no estado do sistema que pode provocar respostas diferenciadas ao cliente. [Pitanga 2013]. 3.4. Prime Faces Prime Faces é um framework que oferece conjunto de componentes para JSF, que conta com um grande número de componentes completos e de fácil implementação. Uma das vantagens do Prime Faces é utilizar tecnologia Ajax nativa JSF em seu componente. Possui ótima documentação, rica em exemplos de códigos, disponibilizados na web para auxı́lio na utilização dos mesmos. A implementação do prime faces é muito simples, necessita somente adicionar as dependências à sua aplicação, mas para isto, é necessário o uso do Java 5 e JSF. Prime Faces é uma biblioteca de código aberto nativo do Java Server Faces (JSF) para criação de interface muito utilizado em aplicações web por ser simples e eficiente. É considera-se um framework mais utilizado por conta de seus componentes para JSF. [Natália Batuta 2015]. 3.5. Hibernate O Hibernate é uma ferramenta de mapeamento é um objeto relacional de grande aceitação entre os desenvolvedores de sistemas orientados a objetos. Esta é uma ferramenta gratuita e é consider-se uma das mais utilizadas por especialistas da área, e por estes motivos foi adotada para o desenvolvimento deste artigo. Toda a configuração do Hibernate é feita através de arquivos em XML, os quais contêm detalhes sobre o mapeamento de dados e detalhes sobre as conexões com bancos de dados. Uma nova versão do Hibernate, o Hibernate Annotations permite fazer anotações sobre o mapeamento em cada classe que se deseja mapear no sistema, substituindo assim os arquivos XML de mapeamento que cada classe deve possuir para realizar o mapeamento, exceto o arquivo de configuração do Hibernate. [Fabiano Silva de Carvalho 2011]. 3.6. Servidor Web Tomcat O Apache Tomcat, desenvolveu-se pela Fundação Apache, com a finalidade permitir a execução de aplicações web caracterı́sticas centradas na linguagem de programação Java com especificação na tecnologia Servlets. Uma das principais capacidades é trabalhar com servidor web, que pode funcionar também como servidor web dedicado. O Tomcat como servidor web HTTP totalmente em Java. Na verdade, o Apache Tomcat muito conhecido pelo seu servidor que pode ser usado para fim comerciais ou não. [Natália Batuta 2015]. O Tomcat e desenvolveu-se na linguagem Java, para funcionar precisar estalado da versão Java 2 Standard Edition (J2SE) no computador onde será desenvolvido a aplicação juntamente com as especificações JEE com as tecnologias servlet e JSP, e tecnologias de apoio relacionadas como JNDI Resources e JDBC DataSources, Realms e segurança. E tem o objetivo de desenvolver esta aplicação de código aperto na plataforma java. [Natália Batuta 2015]. 3.7. Maven Maven é uma ferramenta de integração de projetos Java, responsável pelo gerenciamento de dependências e por controlar versãos artefatos, desenvolvida pela Apache Software Foundation para facilitar e simplificar o build dos projetos em Java. A adoção do Maven no desenvolvimento traz de imediato vários benefı́cios, como centralização das informações do projeto no arquivo XML (pom), onde descreve-se o projeto de aplicação ao ser colocado as dependências sobre módulos, diretório, repositórios e plug-ins necessários isto é padronizando o ambiente de desenvolvimento. O Maven baixa a biblioteca Java e os seus plug-ins dinamicamente de vários repositórios armazenados em cache local, que pode ser atualizado quando necessário. Sua arquitetura é baseada em plug-in, pois permite que ele faça uso de qualquer aplicação controlável através da entrada padrão. Teoricamente, isto permitiria qualquer um escrever plug-ins para fazer interface com ferramentas de construção. [Natália Batuta 2015]. 3.8. 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, ao dispensar configurações do container, torna-se a aplicação web portável. Dessa forma, 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, ao utilizar filtros, por exemplo. [Godoy 2015]. Essa poderosa ferramenta faz a segurança baseada em papéis, chamados roles, os quais através desses papéis pode-se informar á aplicação qual área do sistema está sendo acessada, quais recursos podem ter o acesso liberado e quais usuários têm 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 é encontra-se em quão facilmente ele pode estender-se para atender aos requisitos personalizados. [Godoy 2015]. 4. Considerações finais O desenvolvimento de aplicações web vem se aperfeiçoando ao decorrer dos últimos anos, com o surgimento de novas tecnologias, ao buscar sempre utilizar-se uma arquitetura segura e consistente, que apresente resultados importantes e positivos, que se adequasse ao escopo e os requisitos do projeto a ser desenvolvimento e assim confeccionar um produto de qualidade e com resultado satisfatório no final do projeto. O presente artigo, tratou sobre as ferramentas utilizadas no desenvolvimento de uma aplicação web voltada para o meio corporativo, mostrando algumas das tecnologias utilizadas no projeto, assim, juntamente com suas caracterı́sticas e funcionalidades apresentou-se a cada uma sua importância para a criação deste produto computacional de qualidade e eficiência. O estudo realizado no presente artigo foi de grande relevância para a conclusão dos objetivos finais do projeto, trouxe de forma satisfatória o conhecimento sobre as tecnologias e a implementação do software que resultaram em uma aplicativo web Java EE, utilizando-se Java Server Faces (JSF) e banco de dados mysql e com isto pode-se atingir os objetivos finais dentro dos padrões web. Esta aplicação será utilizada para organizar os pedidos de vendas de uma indústria de alimento que vem crescendo no mercado. Referências Andrade, T. F. (2013). AlgaWorks - Java EE 7 com JSF, PrimeFaces e CDI. Disponı́vel em: http://www.algaworks.com/livros/ javaee-jsf-primefaces-cdi/. acessado em: 08/08/2016. Barcelar, R. R. (2013). Implementação de Projetos WEB Utilizando o Seam Framework. Disponı́vel em: http://www.ricardobarcelar.com.br/aulas/ impl-prj-web-seam.pdf. acessado em: 08/08/2016. Bond Martin, Haywood Dan, M. B. (2003). Aprenda J2EE em 21 Dias. Editora Brasport, São Paulo SP. Fabiano Silva de Carvalho, Cleiber Garcia da Cruz, A. C. d. P. A. H. A. R. M. (2011). FRAMEWORK HIBERNATE. Disponı́vel em: http: //www.revista.universo.edu.br/index.php?journal=1reta2& page=article&op=viewFile&path%5B%5D=1396&path%5B%5D=1031. acessado em: 08/08/2016. Godoy, E. M. (2015). DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS. Disponı́vel em: http://web.unipar.br/˜seinpar/2015/_include/artigos/ Emanuel_M._Godoy.pdf. acessado em: 10/08/2016. Jailson Nunes Leocadio, Roniere Silva Sousa, E. S. S. A. C. (2012). Desenvolvimento Web com Framework Primefaces. Disponı́vel em: http://enucomp.com.br/ 2012/conteudos/AnaisVENUCOMP2012.pdf. acessado em: 20/08/2016. Natália Batuta, Lusana Sousa, T. R. (2015). Projeto Financeiro WEB Graduação Tecnológica em Gestão da Tecnologia da Informação. Disponı́vel em: http://gti.projetointegrador.com.br/˜131M154200080/ ProjetoIntegrador_WEB%20(1).pdf. acessado em: 08/08/2016. Oracle (2015). JavaServer Faces Technology Overview. Disponı́vel em: http://www. oracle.com/technetwork/java/javaee/overview-140548.html. acessado em: 18/08/2016. Pitanga, T. (2013). JavaServer Faces: A mais nova tecnologia Java para desenvolvimento WEB. http://www.cin.ufpe.br/˜jvwr/JSF/jsf.pdf. acessado em: 17/08/2016. Sampaio, C. (2011). Java Enterprise Edition 6. Editora Brasport, Rio de janeiro RJ.