# Java Platform, Enterprise Edition

Java Platform, Enterprise Edition (ou Java EE, ou EE, ou em português Plataforma Java, Edição Empresarial) é uma plataforma de programação para servidores na linguagem de programação Java. A plataforma fornece uma API e um ambiente de tempo de execução para o desenvolvimento e execução de softwares corporativos, incluindo serviços de rede e web, e outras aplicações de rede de larga escala, multicamadas, escaláveis, confiáveis e seguras. Java EE estende a Java Platform, Standard Edition (Java SE), fornecendo uma API para mapeamento objeto-relacional, arquiteturas multicamada e distribuídas e web services. A plataforma incorpora um desenho amplamente baseado em componentes modulares rodando em um servidor de aplicação. Softwares para Java EE são primeiramente desenvolvidos na linguagem de programação Java. A plataforma enfatiza a convenção sobre configuração e anotações para configuração.

## Nomenclatura e Histórico de versões

A plataforma era conhecida como Java 2 Platform, Enterprise Edition ou J2EE, até o nome ser alterado para Java Platform, Enterprise Edition ou Java EE na versão 5. A versão atual é chamada Java EE 8.
* J2EE 1.2 (12 de dezembro de 1999)
* J2EE 1.3 (24 de setembro de 2001)
* J2EE 1.4 (11 de novembro de 2003)
* Java EE 5 (11 de maio de 2006)
* Java EE 6 (10 de dezembro de 2009)
* Java EE 7 (28 de maio de 2013, - 5 de abril de 2013, de acordo com o documento de especificação)
* Java EE 8 (31 de agosto de 2017)

## Descrição

A Plataforma Java Enterprise Edition difere-se da Plataforma Java Standard Edition (Java SE) pela adição de bibliotecas que fornecem funcionalidade para implementar software Java distribuído, tolerante a falhas e multicamada, baseada amplamente em componentes modulares executando em um servidor de aplicações. A plataforma Java EE é considerada um padrão de desenvolvimento já que o fornecedor de software nesta plataforma deve seguir determinadas regras se quiser declarar os seus produtos como compatíveis com Java EE. Ela contém bibliotecas desenvolvidas para o acesso a base de dados, RPC, CORBA, etc.. Devido a essas características, a plataforma é utilizada principalmente para o desenvolvimento de aplicações corporativas.
A plataforma JEE contém uma série de especificações e containers, cada uma com funcionalidades distintas.

## Containers e APIs

* JDBC (Java Database Connectivity), utilizado no acesso a bancos de dados;
* Servlets, são utilizados para o desenvolvimento de aplicações Web com conteúdo dinâmico. Ele contém uma API que abstrai e disponibiliza os recursos do servidor Web de maneira simplificada para o programador.
* JSP (Java Server Pages), uma especialização do servlet que permite que conteúdo dinâmico seja facilmente desenvolvido.
* JTA (Java Transaction API), é uma API que padroniza o tratamento de transações dentro de uma aplicação Java.
* EJBs (Enterprise Java Beans), utilizados no desenvolvimento de componentes de software. Eles permitem que o programador se concentre nas necessidades do negócio do cliente, enquanto questões de infraestrutura, segurança, disponibilidade e escalabilidade são responsabilidade do servidor de aplicações.
* JCA (Java Connector Architecture), é uma API que padroniza a ligação a aplicações legadas.
* JPA (Java Persistence API), é uma API que padroniza o acesso a banco de dados através de mapeamento Objeto/Relacional dos Enterprise Java Beans.
* JMS (Java Message Service), é uma API para middleware orientado a mensagens. Através dela, é possível realizar a comunicação de forma assíncrona entre duas ou mais aplicações.
* JSF (JavaServer Faces), é uma especificação Java para a construção de interfaces de usuário baseadas em componentes para aplicações web.

## Leitura específica

* Perrone, Paul J.; Chaganti, Krishna (2003). J2EE Developer's Handbook. Indianapolis, Indiana: Sam's Publishing. ISBN 0-672-32348-6 A referência emprega parâmetros obsoletos |coautor= (ajuda)
* Bodoff, Stephanie (2004). The J2EE Tutorial. Boston: Addison-Wesley. ISBN 0-321-24575-X
* Kumaraswamipillai, Arulkumaran (2007). Java/J2EE Job Interview Companion. [S.l.: s.n.] ISBN 1-41-166824-3
* Christopher Judd, Hakeem Shittu: Pro Eclipse JST: Plug-ins for J2EE Development, ISBN 1-59059-493-2
* Antonio Goncalves: Beginning Java EE 6 Platform with GlassFish 3: From Novice to Professional, ISBN 1-4302-1954-8