Baixar - Unipar

Propaganda
Frameworks funcionais para JSF que proporciona o
desenvolvimento de aplicações computacionais WEB
Bruno Costa Silva1 , Ricardo Rufino1
1
Universidade Paranaense (Unipar)
Paranavaı́ – PR – Brasil
[email protected], [email protected]
Resumo. Este artigo apresenta a construção de uma aplicação web comercial,
com o objetivo de expor novas tecnologias na produção do mesmo tornando,
assim, o desenvolvimento mais produtivo e organizado. Será utilizado o padrão
de desenvolvimento MVC que possibilita a separação da parte visual e a regra
de negócio. O resultado dessa aplicação é um sistema computacional comercial
web intregado a frameworks que torna o desenvolvimento mais rápido na sua
produção e garante um gerenciamento com mais qualidade.
1. Introdução
No desenvolvimento do software utilizando, a framework JSF incorpora as caracterı́sticas
de uma arquitetura MVC e interfaces gráficas baseadas em eventos. Sua principal vantagem é a separação de camadas constituı́das em modelos, visão e controles.
Essa tecnologia foi definida pelo JCP (Java Community Process), o que a torna
um padrão de desenvolvimento que facilita o trabalho dos fornecedores de fermentas
ao criarem produtos que valorizam a produtividade no desenvolvimento de interface
visual[Faria 2015]
O modelo é responsável por fornecer os objetos de negócio, fornecendo total
acesso a camada de controle. A visão tem a finalidade de representar a camada de interfaces que interagem com o usuário. Cada ação realizada na interface é enviada para o
controlador, tornando, assim, a programação mais clara para os desenvolvedores.
As novas aplicações web facilitam a vida do usuário, proporcionando acessibilidade e mais agilidade em cada processo. No entanto, muitas empresas ainda não
migraram suas aplicações desktop para uma aplicação WEB, tendo mais trabalho com
atualizações, manutenções, implantações etc.
Em virtude dos fatos mencionados, esse artigo apresenta o desenvolvimento de
uma aplicação web, utilizando diferentes tecnologias para a elaboração de um produto
computacional de forma acessı́vel e compacta.
2. Metodologia
Para elaboração do presente artigo, realizou-se estudos em sites na internet, bem como
cursos online, livros, artigos acadêmicos e a implementação. Para implementar foram
utilizadas as tecnologias JSF, primeFaces, Bens CDI, maven, Hibernate, servidor Tomcat.
3. Desenvolvimento
Para o desenvolvimento da aplicação web, foram utilizadas algumas tecnologias com intuito de agregar um layout moderno e responsivo, fazendo com que os dados persistidos
sejam salvos de forma segura.
A seguir segue as descrições de algumas das tecnologias que foram utilizadas para
o desenvolvimento desta aplicação web.
3.1. PrimeFaces
Essa aplicação conforme já citado, está utilizando diversas tecnologias. Uma delas é o
primeFaces, que é responsável pela parte visual do software que faz a interação com o
usuário.
O primeFaces é uma biblioteca de componentes que inclui diversos campos de entrada, botões, tabela de dados, árvores, gráficos, diálogos, etc. Os componentes possuem
funcionalidades de AJAX,baseando na API do Ajax JSF. primeFaces aumenta a produtividade dos desenvolvedores pois os componentes já vem prontos sem contar ainda que
eles podem ser personalizados[Faria 2015].
Na figura 1 podemos avaliar a pagina inicial do framework PrimeFaces.
Figura 1. PrimeFaces(primefaces.org (PrimeTek [2015]).
3.2. Beans CDI
No beck end foi utilizado o Contexts and Dependency (injection) que é um padrão de
desenvolvimento que faz a injeção de dependências no software. Os objetos não são
instanciados mais sim injetados[Faria 2015].
O CDI é uma especificação do Java EE, podendo ser utilizado para instanciar e
injetar os objetos da aplicação.
Em um projeto CDI quase todas as classes são consideradas com beans CDI ou
CDI managed beans. A anotação @Named dá o acesso aos bens CDI através de seu
nome[Faria 2015].
3.3. Persistência de Dados
Para persistência de dados foi utilizado banco de dados de objeto relacional postgreSQL,
um sistema de código aberto.
O mapeamento objeto relacional é uma técnica de programação para conversão de
dados entre banco de dados relacionais e linguagens de programação orientada a objeto.
O hibernate tem uma função muito importante dentro do mapeamento do banco
de dados que possui alguns módulos, sendo que o Hibernate EntityManger faz a
implementação da JPA que encapsula o HibernateCore[Faria 2015].
O HibernateCore é fundamental no funcionamento da persistência, com API nativa em arquivos xhtml
Na Figura 2 é apresentada uma visão em alto nı́vel da arquitetura do Hibernate,
o framework, uma camada entre a aplicação Java e o banco de dados que é configurada
para fornecer o serviço de persistência.
Figura 2. Arquitetura mı́nima(Canal Java:Carlos Araujo[2011]).
3.4. Servidores Web
Um servidor web recebe uma solicitação, no caso uma requisição, e retorna uma resposta
para o cliente.
O servidor possui alguns recursos, mas por algumas falhas não conseguem processar tudo sozinho, como por exemplo: armazenamento no banco de dados e criações de
páginas dinâmicas.
Os navegadores permitem que o usuário solicite um recurso e quando o servidor
responder é encontrado recurso como: paginas HTM, figuras e documentos pdf, que serão
exibidos para eles. Os servidores enviam instruções para os navegadores escritos em
HTML. O HTML diz para o navegador como será apresentado aquele conteúdo para o
usuário[Vinicius 2013].
A figura 3 apresenta o funcionamento de um servidor web, que quando o navegador manda requisição para o mesmo, logo em seguida o servidor dá resposta.
Figura 3. Simulação de uma solicitação e resposta (Canal Java: Thiago Vinicius
[2012]).
3.5. Arquitetura do Tomcat
Uma instância do Tomcat consiste de um grupo de aplicações de container, no qual se tem
uma hierarquia muito bem definida[Medeiros 2012]
O Catalina Servlet Engine é o componente principal desta hierarquia que trata a
implementação do servlet conforme especificado no Java Servlet API.
Na figura 4 mostra os principais componentes da arquitetura do tomcat:
Figura 4. Principais componentes da arquitetura do Tomcat (Canal Java: Higor
Medeiros [2013]).
3.6. Repositorio Maven
Utilizou-se para reposição de bibliotecas o Maven, uma ferramenta que faz o gerenciamento das mesmas. Em grandes projetos, os desenvolvedores não perdem tempo procurando bibliotecas para o software, a ferramenta já traz tudo através do poo.xhtml (Project
Object Model), declarado o tipo de empacotamento e de onde elas estão buscando, permitindo ser remoto ou locais.
Os repositórios remoto ficam em um servidor web e centralizam todas as bibliotecas Java, bibliotecas open source, utilizadas como dependências ou artefatos dos próprios
projetos da empresa, que por sua vez podem ser utilizados como dependências de outros
projetos [Mieko 2013].
O poo.xml é a identificação do projeto e o maven entende que o projeto é identificado através das tags como: groupId, artifactld, version e qual o tipo de empacotamento.
Já o repositório local é basicamente uma pasta na máquina do desenvolvedor onde
são gravadas as bibliotecas que este precisa ter para construir seus projetos. As bibliotecas
disponı́veis neste repositório são copiadas do repositório remoto[Mieko 2013].
4. Considerações finais
Diante do que foi exposto no presente trabalho, conclui-se que, a arquitetura de software
web adapta-se em diversos escopos trazendo um ótimo resultado no desenvolvimento do
software tornando-o mais flexı́vel e produtivo.
Pode-se observar que o desenvolvimento dos softwares utilizando frameworks
torna o mesmo mais produtivo, pois o mecanismo que os frameworks proporciona já vem
pronto possibilitando a modificação do mesmo para adaptar o produto computacional que
é desenvolvido.
As aplicações que não fazem o uso de frameworks acabam não tendo a mesma
produtividade, pois a cada funcionalidade desenvolvida será gasto um tempo muito maior
tornando a aplicação muito extensa e complicada de desenvolver.
Referências
Araujo, C. (2013). Introdução à persistência com hibernate. Canal Java, (1):13–15.
Faria, T. (2015). Java EE 7 com JSF, PrimeFaces e CDI. AlgaWorks, Uberlândia , MG
(2 Edição).
Medeiros, H. (2012). Introduzindo o servidor de aplicação apache tomcat. Canal Java,
(1):6–10.
Mieko, C. (2013). Fundamentos do maven. Canal Java, (1):19–24.
Vinicius, T. (2013). Como funcionam as aplicações web. Canal Java, (1):2–5.
Download