Baixar - Unipar

Propaganda
DESENVOLVIMENTO WEB UTILIZANDO JAVA
ENTERPRISE EDITION (JAVA EE)
Marcelo Augusto Lobo da Paz1 , Jaime William Dias1
1
Universidade Paranaense (Unipar)
Paranavaı́ – PR – Brasil
[email protected], [email protected]
Resumo. Este artigo aborda as tecnologias utilizadas na produção de softwares para a WEB, tem como objetivo apresentar uma visão do desenvolvimento
ágil e produtivo utilizando a tecnologia Java na plataforma Java 2 Platform Enterprise Edition (Java EE). Para tal foram utilizados os métodos de pesquisas
em livros, artigos, sites da internet e e-books, tendo como finalidade expressar
de uma forma bem clara e objetiva do mesmo. Com o resultado do trabalho
foi possı́vel observar que a utilização da plataforma Java 2 Platform Enterprise
Edition (Java EE) em conjunto a suas especificações proporciona um desenvolvimento robusto de forma ágil, sem se preocupar com grande parte de código
de infraestrutura, que demandaria muito trabalho, garantindo um maior gerencimanto da aplicação.
1. Introdução
O Java EE (Java Enterprise Edition) consiste de uma série de especificações bem detalhadas, dando uma receita de como deve ser implementado um software que faz cada um
desses serviços de infraestrutra. Veremos no decorrer desse artigo vários desses serviços
e como utilizá-los, focando no ambiente de desenvolvimento web através do Java EE. Veremos também conceitos muito importantes, para depois conceituar termos fundamentais
como servidor de aplicação e container [Caelum 2015]
O Java EE são várias especificações que quando implementadas, que auxiliam
o desenvolvimento da uma aplicação, além de não se preocupar com código grande,
sendo ele um grande PDF, uma especificação, mostrando quais fazem parte deste. Para
que possamos usar algum software, terı́amos que baixar uma implementação dessas
descrições. Exemplo o Glassfish, desenvolvida pela Sun/Oracle, é um servidor open
source e gratuito, porém não é o lı́der de mercado apesar de ganhar força nos últimos
tempos [Caelum 2015].
O objetivo desse artigo é mostrar que a plataforma Java EE, é uma maneira de
desenvolver aplicações Java de grande porte, com suporte a escalabilidade, flexibilidade
e segurança. Simplificar e facilitar a codificação de aplicativos por parte dos desenvolvedores. Para isso foi desenvolvido uma aplicação Web, utilizando a plataforma Java EE e
suas especificações, por exemplo JSF (JavaServer Faces) é um framework web baseado
em Java que tem como objetivo simplificar o desenvolvimento de interfaces (telas) de
sistemas para a web, através de um modelo de componentes reutilizáveis.
2. Metodologia
Para o desenvolvimento do trabalho foram utilizados os métodos de pesquisas em livros,
artigos, sites da internet e e-books, tendo como finalidade expressar de uma forma bem
clara e objetiva todos os requisitos. Com a aquisição do conhecimento adquirido foi
desenvolvido uma aplicação WEB utilizando a plataforma Java EE onde foi obtido resultados positivos na sua implementação.
3. Desenvolvimento
3.1. A plataforma Java EE
A plataforma Java EE (Java 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].
O Java EE domina atualmente o mercado, a figura 1 foi tirado de uma pesquisa
independente do site zeroturnaround.com publicada em junho de 2016, mostra que a plataforma Java EE em suas versões chega a cinquenta e oito por cento de utilização pelos
desenvolvedores.
Figura 1. A figura mostra o percentual de utilização da plataforma Java EE em
suas versões, pesquisa publicada em junho de 2016 (Fonte: zeroturnaround.com
[2016]).
3.2. Como o Java EE pode ajudar
As aplicações Web de hoje em dia já possuem regras de negócio bastante complicadas.
Codificar essas muitas regras já representam um grande trabalho. Além dessas regras,
conhecidas como requisitos funcionais de uma aplicação, existem outros requisitos que
precisam ser atingidos através da nossa infraestrutura: persistência em banco de dados,
transação, acesso remoto, web services, gerenciamento de threads, gerenciamento de conexões HTTP, cache de objetos, gerenciamento da sessão web, balanceamento de carga,
entre outros. São chamados de requisitos não-funcionais. O Java EE consiste de uma série
de especificações bem detalhadas, dando uma receita de como deve ser implementado um
software que faz cada um desses serviços de infraestrutra[Caelum 2015].
3.3. Vantagens do Java EE
A ideia é que você possa criar uma aplicação que utilize esses serviços de infraestrutura.
Como esses eles são bem complicados, você não perderá tempo implementando essa parte
do sistema. Existem implementações tanto open source quanto pagas, ambas de boa qualidade. Algum dia, você pode querer trocar essa implementação atual por uma que é mais
rápida em determinados pontos, que use menos memória, etc. Fazendo essa mudança
de implementação você não precisará alterar seu software, já que o Java EE é uma
especificação muito bem determinada. O que muda é a implementação da especificação:
você tem essa liberdade, não está preso a um código e a especificação garante que sua
aplicação funcionará com a implementação de outro fabricante [Caelum 2015].
3.4. Algumas especificações do Java EE
As APIs a seguir são as principais dentre as disponibilizadas pelo Java Enterprise:
• JavaServer Pages (JSP), Java Servlets, Java Server Faces (JSF) (trabalhar para a
Web, onde é focado este curso)
• Enterprise Javabeans Components (EJB) e Java Persistence API (JPA). (objetos
distribuı́dos, clusters, acesso remoto a objetos etc)
• Java API for XML Web Services (JAX-WS), Java API for XML Binding (JAXB) (trabalhar com arquivos xml e webservices)
• Java Autenthication and Authorization Service (JAAS) (API padrão do Java para
segurança)
• Java Transaction API (JTA) (controle de transação no contêiner)
• Java Message Service (JMS) (troca de mensagens assı́ncronas)
• Java Naming and Directory Interface (JNDI) (espaço de nomes e objetos)
• Java Management Extensions (JMX) (administração da sua aplicação e estatı́sticas sobre a mesma)
JSP e Servlets são sem dúvida as especificações essenciais que todo desenvolvedor
Java vai precisar para desenvolver com a Web. Mesmo usando frameworks e bibliotecas
que facilitam o trabalho para a Web, conhecer bem essas especificações é certamente um
diferencial, e fará com que você entenda motivações e dificuldades, auxiliando na tomada
de decisões arquiteturais e de design.
3.5. Servidor de Aplicação
Servidor de aplicação é um software que fornece um ambiente para a execução das
aplicações, de forma padronizada para acesso a recursos Java EE. Alguns dos servidores de aplicação mais conhecidos do mercado:
• RedHat, JBoss Application Server;
• Sun, GlassFish.
• Apache, Apache Geronimo;
• Oracle/BEA, WebLogic Application Server;
• IBM, IBM Websphere Application Server;
• Sun, Sun Java System Application Server (baseado no GlassFish);
• SAP, SAP Application Server;
3.6. Servlet Container
Um Servlet Container é um servidor que suporta essas funcionalidades, mas não necessariamente o Java EE completo. É indicado a quem não precisa de tudo do Java EE e
está interessado apenas na parte web (boa parte das aplicações de médio porte se encaixa
nessa categoria) [Caelum 2015].
O Java EE possui várias especificações, entre elas, algumas especı́ficas para lidar
com o desenvolvimento de uma aplicação Web:
• JSP - Java Server Page é uma tecnologia baseada em Java que simplifica o processo de desenvolvimento de sites da web dinâmicos.Com JSP, os designers da web e
programadores podem rapidamente incorporar elementos dinâmicos em páginas da web,
utilizando Java embutido e algumas tags de marcação simples.Estas tag(s) fornecem ao
designer de HTML um meio de acessar dados e lógica de negócio armazenados em
objetos Java sem ter que dominar as complexidades do desenvolvimento de aplicações
[Pittella 2013].
• Servlets - Servlets são classes Java, desenvolvidas de acordo com uma estrutura
bem definida que quando instaladas e configuradas em um Servidor que implemente um
Servlet Container, podem tratar requisições recebidas de clientes Web, como por exemplo
os Browsers.
• JSTL - é o acrônimo de JavaServer Pages Standard Template Library, o qual podemos usar para recuperar dados de forma transparente usando como componente básico
da JEE o qual é muito usado na programação pura [Eduardo 2015].
• 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].
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 um produto computacional de qualidade.
Nesse artigo pode-se ver que o desenvolvimento utilizando a plataforma Java Enterprise Edition (Java EE) é extremamente eficaz no que diz respeito a desenvolvimento
com agilidade, flexibilidade e segurança, possibilitando simpliciar e facilitar a codificação
de aplicações WEB.
Assim, dentre as contribuições desse trabalho, foi desenvolvido uma aplicação
WEB utilizando todos os recursos aprendido da plataforma Java EE onde foi obtido
grande êxito. Como o desenvolvimento de aplicações WEB tem evoluı́do muito, hoje
já existe frameworks bem mais robustas e de grande crescimento no mercado de desenvolvimento como por exemplo: Spring framework que tem tido muita aceitação, podendo
deixar para trás a plataforma Java EE.
Referências
Bass, L., Clements, P., and Kazman, R. (2003). Software Architecture in Practice. Addison Wesley.
Caelum (2015). apostila-java. Disponı́vel em: https://www.caelum.com.br/apostila-javaweb/, acessado em: 08/08/2016.
Eduardo, C. (2015).
Introdução - jstl - java.
Disponı́vel em:
http://www.devmedia.com.br/introducao-jstl-java/23582, acessado em 18/05/2016.
Gonçalves, A. (2011). Introdução à Plataforma Java EE 6 com o Glassfish. Editora
Ciência Moderna LTDA, Rio de Janeiro RJ.
Netbeans.org (2013). Tutorial de e-commerce do netbeans: Introdução. Disponı́vel em:
https://netbeans.org/kb/docs/javaee/javaee-intro.html, acessado em 18/05/2016.
Oracle (2015).
Javaserver faces technology overview.
Disponı́vel em:
http://www.oracle.com/technetwork/java/javaee/overview-140548.html,
acessado
em 12/07/2015.
Pittella, F. (2013). O que é jsp? Disponı́vel em: http://javafree.uol.com.br/artigo/1409/Oque-e-JSP.html acessado em 05/08/2016.
Download