Prévia do material em texto
JAVA EE ©2018 Copyright ©Católica EAD. Ensino a distância (EAD) com a qualidade da Apresentação Olá, seja bem-vindo(a)! Este referencial de estudo enfatizará a plataforma Java EE, seu surgimento e as motivações criadas para atender às demandas das tecnologias no contexto Web. Discorrerá sobre seus componentes, funcionalidades e estrutura. De forma objetiva, evidenciará sobre as tecnologias, como Java Enterprise Edition (JEE) e frameworks e bibliotecas referentes ao JavaServer Faces (JSF). Para melhor organização e compreensão, os conteúdos estão subdivididos em tópicos: Java EE. Container. Servlet. JavaServer Pages (JSP). Objetivos Entender o que é o Java Enterprise Edition e a arquitetura Java EE. Compreender o que são Container e Servelt e o passo a passo para criar uma página JSP. Conhecer as vantagens de usar a linguagem JSP. ©2018 Copyright ©Católica EAD. Ensino a distância (EAD) com a qualidade da Desafio Leia o artigo “Frameworks e seus Benefícios no Desenvolvimento de Software ” da Revista Pensar, escrito por Santos e Carvalho. Os autores abordam as vantagens em relação à utilização de frameworks Open Source, com práticas de reutilização de códigos, possuindo como base a programação Orientada a Objetos (OO) e com ênfase nas metodologias de desenvolvimento de softwares, em conjunto com os padrões de tecnologias Java Enterprise Edition. Ao realizar a leitura, escreva um texto (no mínimo 10 linhas e no máximo 15) apresentando as vantagens em relação à utilização de Frameworks Open Source e as contribuições da Plataforma Java Enterprise Edition. http://revistapensar.com.br/tecnologia/pasta_upload/artigos/a95.pdf http://revistapensar.com.br/tecnologia/pasta_upload/artigos/a95.pdf http://revistapensar.com.br/tecnologia/pasta_upload/artigos/a95.pdf http://revistapensar.com.br/tecnologia/pasta_upload/artigos/a95.pdf ©2018 Copyright ©Católica EAD. Ensino a distância (EAD) com a qualidade da Conteúdo Java EE No mundo globalizado e dinâmico, cada vez mais aumenta a demanda por aplicações distribuídas e portáteis que aproveitam velocidade, segurança e confiabilidade das tecnologias existentes nos servidores. Em paralelo a isso, houve avanços das linguagens de programação para atender às necessidades do mercado. É importante destacar que a linguagem Java foi sendo aperfeiçoada e elevou o número de aplicações ao longo do tempo. Aconteceu igualmente com o número de bibliotecas, que, por sua vez, acarretou no surgimento de três plataformas: (BROEMMER , 2003) Java Standard Edition (JSE) Java Enterprise Edition (JEE) Java Micro Edition (JME) – ambiente de desenvolvimento voltado para dispositivos móveis e portáteis. A plataforma Java EE (Java Enterprise Edition) tem seu ambiente voltado para aplicações e possui especificações publicadas pela Sun, comunidade Java (Java Community Process). A Sun elabora uma infraestrutura para o desenvolvimento (SAMPAIO , 2007). Dessa forma, o desenvolvedor escreve menos código e consequentemente reduz o tempo de desenvolvimento. Isso ocorre devido a um conjunto de tecnologias que diminui, significativamente, o custo e a complexidade do desenvolvimento (SAMPAIO , 2011). Outra contribuição oferecida pela a plataforma Java EE é a padronização que possibilita solucionar o problema de migração de fornecedores, visto que o Java EE possui uma especificação muito bem estabelecida. Assim, deverá ser alterado apenas a implementação da especificação que permite que o software não seja preso ao código, já que a especificação garante que a aplicação funciona com implementação de outro fornecedor (GONÇALVES , 2010). O Java EE é baseado em Containers que fornecem todos os serviços importantes para aplicação corporativa. Este ambiente também se refere à descrição de uma série de serviços que podem ser usados pelos componentes. Conforme Faria (2015), o Java EE possui um conjunto de especificações com objetivos diferentes. Entre elas, as mais conhecidas são: Servlets: refere-se aos componentes Java executados no servidor para gerar conteúdo dinâmico para a Web, como HTML e XML. JSF (JavaServer Faces): refere-se a um framework Web idealizado em Java que tem como objetivo reduzir o desenvolvimento de interfaces de sistemas para a Web por meio de um modelo de componentes reutilizáveis. A ideia é que os sistemas sejam desenvolvidos de modo fácil e produtivo. JPA (Java Persistence API): é referente a uma API padrão do Java que utiliza o conceito de objeto-relacional para persistência de dados. Esta tecnologia contribui na produtividade para o desenvolvimento de sistemas que precisam de integração com banco de dados. API permite o desenvolvimento das aplicações usando banco de dados sem necessitar escrever em SQL. EJB (Enterprise Java Beans): refere-se aos componentes que são executados nos servidores de aplicação. Tem como objetivo fornecer praticidade para criação como também contribuir para produtividade. De acordo com Rocha (2016), as aplicações Java EE são divididas em três camadas independentes: apresentação, negócios e integração. Camada Apresentação – é controlada pelo Web Container. Camada Negócios – é controlada pelo EJB Container que são responsáveis por facilitar o encapsulamento e compartilhamento da lógica do negócio. Camada Integração – responsável por possibilitar plugar serviços como banco de dados, transações, entre outros. Desse modo, as camadas se comunicam por meio de registros que são usados para localizar objetos e serviços. A interação entre objetos e serviços, geralmente, é feita de forma declarativa usando injeção de dependências. Diferentes componentes são usados em cada camada. A figura 1 apresenta um resumo de como a arquitetura Java EE é estruturada e como as tecnologias estão dispostas. Figura 1 – Arquitetura Java EE multicamadas Fonte: Oracle, 2020. Serviços de Aplicação Java EE O servidor de aplicação Java fornece uma infraestrutura de serviços para executar aplicações distribuídas. Implementa as APIs da plataforma Java EE como também é responsável por fornecer os serviços padronizados aos clientes. Vale relatar que qualquer servidor Java EE é composto por serviços de nomes, bancos de dados, transações distribuídas, autenticação e autorização. São serviços acessíveis aos componentes através de APIs e Frameworks, descritos em diversas especificações. Conheça as vários APIs do Java EE 7: EJB: utilizada para construir componentes Session Bean ou Massage-driven Bean. Java Servlet: usada para construir WebServlets e como infraestrutura básica para frameworks Web. JSF: Framework para aplicações Web. JSP: tecnologia antiga para construir páginas Web. JSTL: biblioteca de tags para páginas JSP Java EE 7 Capítulo 1 – Introdução 1-3. JPA: Framework ORM para criar objetos persistentes. JTA, API: para demarcação de transações distribuídas. JAX-RS - Framework para desenvolver aplicações RESTful (Web Services). Managed Beans: tecnologia antiga para criar componentes gerenciados leves. CDI: serviços de contextos, injeção de dependências e componentes gerenciados. DI: serviços de injeção de dependências. Bean Validation - Framework para validação automática de beans. JMS, API: para acesso a serviços de mensageria. JCA, API: para construir adaptadores para serviços externos. JavaMail: API para envio de e-mail. JACC, API: para serviço de autorização. JASPIC, API: para serviços de autenticação. WebSocket API:suporta o protocolo WebSocket. JSON-P, API: para processamento JSON. Utilitários de concorrência. API: para aplicações em lote. Além dessas APIs, os servidores também oferecem aparatos que são acessíveis por meio de APIs do Java SE 8: JDBC. JNDI – para acesso a serviços de nomes e registro de serviços. JavaBeans Activation Framework. JAXP – API para processamento XML. JAXB – API de mapeamento Objeto-XML. JAX-WS – API para construção de Web Services SOAP. SAAJ – API para construir mensagens SOAP. JAAS – serviço de autenticação e autorização. Common Anotations – anotações comuns. Vale enfatizar que alguns dessesserviços precisam ser configurados e ativados por meio de ferramentas do servidor, para que possam ser utilizados pelos componentes mediante interfaces independentes de fabricante. Nessa listagem, é possível observar quantos serviços estão disponíveis na plataforma Java EE. A figura 2 apresenta a arquitetura JAVA EE e sua divisão em camadas. Observe que em Java EE, as entidades são caracteristicamente modeladas com objetos e JPA. Serviços são modelados com EJB, e a camada de apresentação em JSF (com páginas XHTML como Views e Beans) gerenciados como modelos e controladores. Figura 2 – Visão da Arquitetura Java EE Fonte: Rocha, 2016. Sendo assim, os serviços das aplicações são executados em servidores e acessados pelo cliente por meio de uma conexão de rede, tendo as vantagens em relação ao modelo cliente/servidor. Outra importante contribuição para oferecer praticidade no desenvolvimento é o fato de priorizar o compartilhamento de componentes e aplicações, facilitando, assim, a implementação da manutenção e o gerenciamento de aplicações complexas (RENOUF , 2009). Conheça alguns exemplos das implementações desses servidores: RedHat, JBoss Application Server. Sun, GlassFish. Apache, Apache Geronimo. IBM, IBM Websphere Application Server. O servidor de aplicações usa uma arquitetura denominada de três camadas ou n-camadas que possibilita uma melhora no aproveitamento das propriedades de cada componente. Assim, a primeira camada também denominada de front-end refere-se aos browsers, a segunda refere-se à aplicação sendo executada no servidor de aplicação e a terceira é o servidor de banco de dados (RENOUF, 2009). Além das características citadas, existem também outros serviços, como: tolerância a falhas, balanceamento de cargas, gerenciamento de componentes, gerenciamento de transações, segurança e outros. Container Os Containers são interfaces entre um componente e a funcionalidade exclusiva da plataforma de baixo nível suportando um componente. Para executar uma aplicação Web, Enterprise Bean, ou algum componente do aplicativo cliente, alguma das opções já citadas deve ser disposta em um módulo Java EE e implementanda em seu receptor (JENDROCK et al., 2013). Os Containers Web são as interfaces entre componentes Web (Servlets, JSP ou JSF) e o servidor Java EE. Os Containers EJB têm a interface entre os componentes EJB e o servidor Java EE. Vale ressaltar que o servidor Java EE é um modelo de programação fundamentado em Containers específicos. Por exemplo, aplicações servidores Web rodam em Container Web e os componentes corporativos distribuídos rodam no JavaBeans (EJB). Assim, para esclarecer todas APIs e serviços da especificação, há um Container incluído. Umr exemplo seria o Container totalmente Web, como Tomcat, e completos, como Apache Geronimo (SAMPAIO, 2007). Outros componentes de aplicação contidos no Container do Java EE são descritos abaixo: Web Container: aborda a implementação de interação de componente Web com a arquitetura Java EE, provendo um ambiente de execução para componentes do tipo Web que abrange desde segurança até gerenciamento de vida e transação. Application Client: gerencia e aceita a execução de componentes do cliente da aplicação. Applet Container: gerencia a execução de applet, ou seja, consiste em um navegador Web e Java Plug-in que realiza execução ao mesmo tempo, no cliente (OLIVEIRA , 2013) e (JENDROCK et al., 2013). A figura 3 apresenta a relação de servidores de aplicação e Containers. Figura 3 – Servidores de Aplicação e Containers Fonte: elaborada pela autora, 2020. Servlet Servlet é uma tecnologia que possibilita a criação de classes de Servlet HTTP exclusivos. Essa classe estende as funções dos servidores capazes de hospedar aplicativos acessados através de um modelo de programação de solicitação e resposta. Inclusive, eles são responsáveis por receber qualquer tipo de solicitação. Portanto, são comumente usados para expandir os aplicativos hospedados por servidores Web, ou seja, fornecem uma estrutura simples e eficiente para ampliar a funcionalidade de um servidor Web para acessar sistemas corporativos (JENDROCK et al., 2010). Cada Servlet é responsável por uma página que lê os dados da solicitação do cliente e responde com outros dados, por exemplo, uma página HTML, uma imagem e outros. Dessa maneira, cada Servlet corresponde a um objeto Java que recebe tais requisições (request) e produz algo (response), como uma página HTML dinamicamente gerada (ROCHA , 2016). É importante destacar que os Servlets são programas que rodam em um servidor Web e constroem páginas Web. Construir páginas dinâmicas em tempo de execução são úteis e usadas frequentemente devido à constante atualização de dados. A utilização de páginas Web mediante banco de dados corporativos para atualização de itens de estoques ou preços e outras necessidades de criação de páginas dinâmicas. Outro ponto pertinente é o ciclo de vida bem definido de um Servlet, pois é representado na API pelos métodos init, service e destroy da interface javax.servlet.Servlet, que deve ser obrigatoriamente implementada, direta ou indiretamente, por meio das classes abstratas GenericServlet ou HttpServlet. O ciclo é marcado desde a inicialização, passa pelo processamento das requisições vindas dos clientes e acaba quando ele é destruído (MORDANI , 2009). A interface Servlet funciona e possibilita o uso de qualquer protocolo baseado em requisições e respostas, e não necessariamente sendo só o HTTP. Para escrever uma servlet é criado uma classe Java que estenda HttpServlet e sobrescreva um método chamado service. Esse método será o responsável por atender a requisições e gerar as respostas adequadas. A figura 4 apresenta a implementação do método servisse. Figura 4 – Método Service Fonte: elaborada pela autora, 2020. Observe que o método recebe dois objetos que representam, respectivamente, a requisição feita pelo usuário e a resposta que será exibida no final. Por meio do método getWriter da variável response, é possível obter um objeto que represente a saída a ser enviada ao usuário. E, a partir disso, utilizar um PrintWriter para imprimir algo na resposta do cliente. Veja a seguinte figura. Figura 5 – Exemplo da Classe Fonte: elaborada pela autora, 2020. É possível observar que a estrutura é simples, possibilitando escrever outros códigos Java mais complexos para gerar as Strings do HTML, baseadas em informações dinâmicas, por exemplo, de um banco de dados. Ao trabalhar com Servlets, existe uma documentação da API que merece destaque. Por meio dessa documentação, é possível verificar todas as classes com seus respectivos métodos e variáveis. Conforme a necessidade, essa documentação é disponibilizada no site oficial do Java. Essa tecnologia, com decorrer do tempo, apresentou desvantagens em como induzir o programador a embutir código HTML dentro de código Java. Como também parte do que tem que tem de ser gerado é texto ou código HTML estático, surge o JavaServer Pages (JSP) com aprimoramento para melhor atender às necessidades. JavaServer Pages (JSP) JavaServer Pages (JSP) é uma tecnologia Java que permite a criação de conteúdo Web, de modo prático. Assim, uma página JSP é um arquivo fundamentado em HTML, com a extensão .jsp. As páginas JSP contém dois tipos de textos: um de dados estáticos que pode ser escrito em qualquer formato baseado em texto, como o HTML ou XML; e outro de elementos JSP que realiza o modo de construção do conteúdo dinâmico da página (OLIVEIRA, 2013). O surgimento dessa tecnologia beneficiou o desenvolvimento de conteúdo dinâmico Web. A tecnologia JSP é usada para servir conteúdo dinâmico ao usuário, usando lógica e dados no lado do servidor. A JSP faz parte da plataforma Java EE e, juntamente ao Java Servlets e ao Java Beans, pode ser usada para desenvolver aplicações Web eficientes, escaláveis e seguras (JEVEAUX , 2019). Para detalhar o funcionamento dessa tecnologia, é preciso que o cliente inicie uma requisição de uma página JSPatravés de um browser. Em seguida, essa página é processada pelo servidor. Caso seja a primeira vez, a página JSP é modificada em um programa Java (conhecido como Servlet), compilado e gerado um bytecode (conhecido por .class). Logo, é gerada uma página HTML que é enviada de volta ao browser do cliente. Desse modo, a partir da segunda vez que essa página for acessada, verificará somente se houve ou não alguma modificação. Caso não tenha ocorrido, o bytecode é chamado para gerar a página HTML. Todavia, vale expor que o objetivo da linguagem JSP não é apenas o desenvolvimento de páginas dinâmicas para Internet. Por meio dela, ainda, permite desenvolver sistemas completos para Internet. Conheça as vantagens para usar a linguagem JSP: Possibilita ao desenvolvedor de sites produzir aplicações que permitam acesso nativo aos mais variados bancos de dados devido à tecnologia JDBC. Acesso a arquivos: capta informações a partir de formulários. Busca de informações sobre o visitante e sobre o servidor entre outros. É facilmente codificado, contribuindo assim no desenvolvimento e manutenção da página dinâmica. Permite a separação da programação lógica que é parte dinâmica da programação visual que é parte estática. Criptografia de dados. Alteração de arquivos XML. Possibilita a utilização de vários bancos de dados como: SQL Server , Oracle , MySQL e outros. Possibilita o uso de cookies e sessões. Permite o uso de recursos como sistema de relatórios, por exemplo, o JasperReport e outros. Quem conhece a tecnologia Java Servlets sabe que o JSP não oferece nada que não se possa conseguir com apenas as Servlets. A diferença é que as Servlets obrigam o programador a colocar código HTML dentro de código Java, isso possibilita a desorganização com a mistura dos códigos lógico e visual. Outra característica da tecnologia JSP é que contém uma API usada pelos desenvolvedores de Containers da Web. Em contrapartida, JSP ganha por facilitar mais no processo de codificação devido a ter separado a programação lógica do visual. Essa ação contribuiu no desenvolvimento para que o programador e o designer possam trabalhar em um mesmo projeto. De forma sumária, os recursos da tecnologia JSP são classes de linguagem para o desenvolvimento de páginas JSP, também são documentos baseados em texto que descrevem como processar uma solicitação e construir uma resposta. É uma linguagem de expressão para acessar a objetos do lado do servidor e um mecanismo para definir extensões para a linguagem JSP. https://www.devmedia.com.br/guia/sql-server/35720 https://www.devmedia.com.br/guia/sql-server/35720 https://www.devmedia.com.br/guia/sql-server/35720 https://www.devmedia.com.br/guia/sql-server/35720 https://www.devmedia.com.br/guia/oracle/34365 https://www.devmedia.com.br/guia/oracle/34365 https://www.devmedia.com.br/guia/oracle/34365 https://www.devmedia.com.br/guia/mysql/34335 https://www.devmedia.com.br/guia/mysql/34335 https://www.devmedia.com.br/guia/mysql/34335 https://www.devmedia.com.br/gerando-relatorios-com-jasperreports/24798 https://www.devmedia.com.br/gerando-relatorios-com-jasperreports/24798 https://www.devmedia.com.br/gerando-relatorios-com-jasperreports/24798 Vale ressaltar que o JSP é uma linguagem Server-Side. Isso implica dizer que precisa de um servidor para funcionar. Um exemplo de um Servlet Container de código aberto é o Apache Tomcat. Esta é uma aplicação que suporta e processa Servlets (Java Servlets ) e JSP (Java Server Pages). O Apache Tomcat foi criado pela Apache Software Foundation (APACHE, 2020). Para ter acesso a este servidor clique aqui . Conheça o passo a passo para criar uma página JSP: Download e instalação do servidor Tomcat para seu sistema operacional. Crie uma pasta easyjava em C:\Program Files (x86)\Apache Software Foundation\Tomcat 7.0\Webapps, quando for no Windows. Caso a criação seja no Linux, esta é a pasta /usr/java/apache-tomcat-7.0. Assim, na pasta easyjava, crie as pastas src, WEB-INF, Web,e WEB-INF/lib. src – pasta que guarda o código fonte dos Servlets. Web – pasta raiz da aplicação Web. WEB-INF – pasta que guarda o descritor da aplicação Web (Web.xml), como também outros arquivos de configuração. Vale lembrar que esta pasta é invisível para o usuário. WEB-INF/lib – representa bibliotecas que são precisas para a aplicação. Crie o arquivo no editor de Texto, de sua preferência, conforme a figura 6. Em seguida, salve-o na pasta easyjava como ola.jsp com o seguinte conteúdo: Figura 6 – Programa Olá Mundo https://www.devmedia.com.br/introducao-a-servlets-em-java/25285 https://www.devmedia.com.br/introducao-a-servlets-em-java/25285 https://www.devmedia.com.br/introducao-a-servlets-em-java/25285 http://tomcat.apache.org/ http://tomcat.apache.org/ http://tomcat.apache.org/ Fonte: elaborada pela autora, 2020. Salve o arquivo e abra no broswer (navegador) de sua preferência e digite: http://127.0.0.1:8080/easyjava/ola.jsp . Será exibida uma página com o texto Ola Mundo. Vale ressaltar que será visualizado apenas HTML e não código JSP. Para realizar o teste, basta clicar no botão direito na tela e exibir o código fonte. Figura 7 – Programa Olá Mundo Fonte: elaborada pela autora, 2020. Exemplificando melhor código: O script JSP em tags . A linha out.println("Ola Mundo") é responsável por escrever o texto que está entre aspas, sendo transformado para a apresentação em HTML de Ola Mundo. http://127.0.0.1:8080/easyjava/ola.jsp http://127.0.0.1:8080/easyjava/ola.jsp http://127.0.0.1:8080/easyjava/ola.jsp É analisado que a visualização do cliente não apresenta código JSP, por ter sido processado no servidor. Ainda é importante observar que o JSP adota o padrão do Java, que no final de cada linha tem um ponto e vírgula. Finalizando a Unidade O referencial deste estudo apresentou as vantagens em relação à utilização de Frameworks Open Source, com práticas de reutilização de códigos, possuindo base em programação Orientada a Objetos (OO) e ênfase nas melhores metodologias de desenvolvimento de softwares, em conjunto com os padrões de tecnologias Java Enterprise Edition. Dessa forma, foi possível perceber o quanto as funcionalidades da plataforma Java EE são importantes atualmente, no contexto Web, pois viabilizam praticidade nos recursos oferecidos para ajudar os desenvolvedores no processo de desenvolvimento Web. ©2018 Copyright ©Católica EAD. Ensino a distância (EAD) com a qualidade da Dica do Professor Leia o artigo: Processos de Desenvolvimento para Aplicações Web: Uma Revisão Sistemática . Os autores Travassos, Mendes e Conte apresentam um levantamento sistemático que poderá servir como base de pesquisa para trabalhos futuros em Engenharia Web. O objetivo da pesquisa foi a definição de atividades específicas para processos de desenvolvimento para aplicações Web. https://www.academia.edu/1923439/Processos_de_desenvolvimento_para_aplica%C3%A7%C3%B5es_Web_Uma_revis%C3%A3o_sistem%C3%A1tica https://www.academia.edu/1923439/Processos_de_desenvolvimento_para_aplica%C3%A7%C3%B5es_Web_Uma_revis%C3%A3o_sistem%C3%A1tica https://www.academia.edu/1923439/Processos_de_desenvolvimento_para_aplica%C3%A7%C3%B5es_Web_Uma_revis%C3%A3o_sistem%C3%A1tica https://www.academia.edu/1923439/Processos_de_desenvolvimento_para_aplica%C3%A7%C3%B5es_Web_Uma_revis%C3%A3o_sistem%C3%A1tica ©2018 Copyright ©Católica EAD. Ensino a distância (EAD) com a qualidade da Saiba Mais Para aprimorar os conhecimentos sobre a plataforma Java EE, clique aqui . https://docs.oracle.com/javaee/7/JEETT.pdf https://docs.oracle.com/javaee/7/JEETT.pdf https://docs.oracle.com/javaee/7/JEETT.pdf ©2018 Copyright ©Católica EAD. Ensino a distância (EAD) com a qualidade da Referências ARIA, Thiago. Java EE 7 com JSF, PrimeFaces e CDI. SI sn, 2015. BROEMMER, Darren. J2EE Best Practices – Java Design Patterns, Automation, and Performance. 1. ed. Indianápolis: Wiley Publishing, 2003. Davidson, James Duncan e Coward, Danny. Java Servlet Specification, v2.2, Sun Microsystems, Final Release, 1999,p. 11. GONÇALVES, Antonio. Beginning Java EETM 6 Platform With GlassFishTM 3 – From Novice to Professional. 2. ed. New York: Apress, 2010. JENDROCK, Eric; NAVARRO, Ricardo Cervera; EVANS, Ian; GOLLAPUDI, Devika; HAASE, Kim; MARKITO, William; SRIVATHSA, Chinmayee. The Java EE 6 Tutorial. 1. ed. Rewood City: Oracle USA, 2013. MORDANI, Rajiv. Java Servlet Specification. Sun Microsystems, 2009. OLIVEIRA, Eric C. M. Conhecendo a plataforma J2EE – Um Breve Overview. Desenvolvimento – Java – Linha de código. Disponível em: Acesso em: 01 dez. 2019. RENOUF, Colin. Pro (IBM) WebSphere Application Server 7 Internals. This book is for Java EE developers, architects, and administrators who want to Know how WebSphere Application Server 7 works under the covers. 1. ed. New York: Apress, 2009. ROCHA, Carlos. “Análise de desempenho em ambientes cliente/servidor 2-camadas e 3-camada”. Florianópolis. 2002. ROCHA, Helder.“Programação de aplicações Java EE (com servidores Glassfish e WildFly)”. 2016. Disponível em : http://www.argonavis.com.br/. SAMPAIO, Cleuton. Guia do Java Enterprise Edition 6 – Desenvolvendo Aplicações Corporativas. 1 ed. Rio de Janeiro: Brasport Livros e Multimídia Ltda., 2007.