close

JavaEE

Ir para a navegação Ir para a pesquisa

Java Platform, Enterprise Edition ou Java EE (anteriormente conhecido como Java 2 Platform, Enterprise Edition ou J2EE até a versão 1.4; informalmente traduzido como Java Enterprise ) é uma plataforma de programação—parte da Plataforma Java — para desenvolver e executar software de aplicativo .na linguagem de programação Java . Ele suporta arquiteturas de N camadas distribuídas e depende muito de componentes de software modulares executados em cima de um servidor de aplicativos . A plataforma Java EE é definida por uma especificação . Semelhante a outras especificações do Java Community Process(JCP), Java EE também é informalmente considerado um padrão porque os fornecedores devem atender a certos requisitos de conformidade para declarar que seus produtos são compatíveis com Java EE ; padronizado pelo JCP.

Java EE possui várias especificações de API como JDBC , RMI , e-mail , JMS , Web Services , XML , etc e define como coordená-las. O Java EE também configura algumas especificações exclusivas do Java EE para componentes. Isso inclui Enterprise JavaBeans , servlets , portlets (seguindo a especificação Java Portlets), JavaServer Pages e várias tecnologias de serviço da web. Isso permite que o desenvolvedor crie um aplicativo corporativo que seja portátil entre plataformas e escalável, além de integrar-se a tecnologias anteriores. Outros benefícios adicionais são, por exemplo, que o servidor de aplicativos pode lidar com transações, segurança, escalabilidade, simultaneidade e gerenciamento de componentes implantados, o que significa que os desenvolvedores podem se concentrar mais na lógica de negócios dos componentes do que nas tarefas.

História

A especificação J2EE original foi desenvolvida pela empresa Sun Microsystems .

  • O J2EE 1.3 foi desenvolvido sob o Java Community Process . JSR 58 especifica o J2EE 1.3, o J2EE 1.3 SDK foi lançado inicialmente como beta em abril de 2001 .
  • O J2EE 1.4 SDK beta definido no JSR 151 foi lançado pela Sun em dezembro de 2002 .
  • A especificação Java EE 5 foi desenvolvida sob JSR 244 e a versão final foi em 11 de maio de 2006 .
  • A versão Java EE 6 está em conformidade com a especificação JSR 316 e foi lançada em 10 de dezembro de 2009.
  • A versão Java EE 7 cuja especificação é JSR 342 , datada de 28 de maio de 2013.
  • A versão Java EE 8 foi lançada em 31 de agosto de 2017 e segue a especificação JSR 366 .

A partir de 24 de abril de 2018, o Java EE é gerenciado pela Eclipse Foundation. A Eclipse Foundation foi forçada a remover a palavra Java do nome porque a Oracle é proprietária da marca registrada "Java". Em 26 de fevereiro de 2018, foi anunciado que o novo nome do Java EE seria Jakarta EE.

Arquitetura Java EE

A arquitetura Java EE é baseada em três conceitos principais:

  • Serviços : Eles permitem que o programador se concentre em sua lógica de negócios e use esses serviços para sua aplicação. Esses serviços podem ter recursos de segurança, comunicações de rede, registro, integridade de dados, etc. Esses serviços são fornecidos por um contêiner.
  • Containers : São ambientes de tempo de execução; ou seja, um programa que está rodando e seu aplicativo é construído em cima dele como se fosse um plugin ou o cassete de um console de jogos. Existem vários tipos de containers e o agrupamento deles forma um servidor de aplicação.
  • Componentes : São objetos Java que contêm a lógica de negócios da aplicação e utilizam os serviços fornecidos pelo container. Existem vários tipos de componentes e, dependendo desse tipo, eles são implantados em um contêiner ou outro.


Esses três conceitos permitem que o Java EE defina uma arquitetura em camadas :

  • Camada do cliente : com componentes que são executados na máquina do cliente (como um navegador, um smartphone ou um computador desktop)
  • Camada Web : É executado no servidor Java EE ou servidor de aplicativos e se comunica com a camada web (camada cliente?)
  • Camada de servidor/negócios: Fornece os dados e persiste as informações da camada de cliente e contém a camada de negócios. Ele também é executado no servidor de aplicativos.
  • Camada de dados : onde os dados são persistidos, por exemplo, um banco de dados.


Essa arquitetura tenta torná-la independente evitando dependências entre camadas.


O uso dessas camadas nos permite, ao desenvolver, dividir nossa aplicação em diferentes camadas. O modelo mais típico é o MVC Controller View Model no qual as camadas de apresentação, negócios e acesso a dados são separadas. Uma arquitetura multicamadas promove a separação de responsabilidades em camadas. No caso particular de 3 camadas, a apresentação é separada da lógica de negócio e esta dos dados. A camada de apresentação não acessa o banco de dados diretamente, mas apenas através da camada de negócios. A arquitetura multicamada apresenta muitas melhorias importantes no design do aplicativo, incluindo flexibilidade por meio da separação adequada entre a camada de apresentação e a lógica de negócios.

Componentes

Para construir aplicativos de componentes baseados em JEE, diferentes componentes foram definidos:

  • Componentes cliente : São todos aqueles que rodam na máquina cliente e existem dois tipos, aplicações cliente e clientes web. Os clientes da Web são conhecidos como Thin Clients e são páginas da Web geradas dinamicamente por componentes da Web com linguagens como HTML ou XML que são enviadas para a máquina cliente em resposta a uma solicitação, na qual haverá um navegador da Web que será encarregado de mostrar o conteúdo para o cliente. Mesmo esse site pode ter um applet integrado. Nesse caso, eles se conectam diretamente à camada web do servidor JEE, que se encarrega de acessar a camada de negócios. Por outro lado, aplicativos cliente ou Smart Clients, que também são executados no cliente, e oferecem uma interface mais rica não baseada em um navegador da web. Nesse caso, eles "pulam" a conexão com a camada da web e disparam diretamente contra a camada de negócios.
  • Componentes da Web: Eles são executados no contêiner da Web do servidor JEE e são servlets, páginas da Web dinâmicas, como JSF e/ou JSPs e JavaBeans. Servlets são classes Java que processam dinamicamente solicitações de clientes e geram respostas apropriadas. O JSP é um servlet mas mais orientado a apresentações, é mais fácil para o programador. JSF é uma evolução do JSP, mas com uma interface de usuário mais poderosa, pois suporta, por exemplo, Ajax. Finalmente, Javabeans são componentes de servidor que encapsulam a lógica de negócios de um aplicativo.
  • Componentes da camada de negócios : São os que implementam a lógica de negócios e são executados na camada de negócios. Eles são os EJB Enterprise Java Beans. Existem três tipos de EJBs, sessão de entidade e acionado por mensagem. As tecnologias básicas desta camada são os EJBs, o api-Rest ou os de persistência
  • Componentes da camada de dados : Eles não são componentes Java em si, mas sim de terceiros. Ele nos permite explorar os recursos desses serviços. Para isso, Java EE nos fornece uma API para conectividade com o banco de dados, outra para persistência para poder salvar informações, API para transações, etc.

Segurança e Persistência

Persistência: Dados e informações são fundamentais nas aplicações atuais. Organizações e aplicativos precisam economizar dados porque precisam armazenar informações sobre suas atividades. Hoje vamos ver que tudo tem que ser armazenado e tudo tem que ser recuperável para explorar essa informação. Qualquer aplicativo hoje deve ter informações armazenadas e deve poder recuperá-las a qualquer momento. No mundo do java existem várias formas de armazenar informações, desde a mais simples que seria serializar uma série de dados em algum tipo de arquivo como salvá-los em json, formato xml, salvá-los em formato binário como com protocolbuffer ou mesmo no pior dos casos com a API serializável java ou no caso mais profissional com o uso de bancos de dados ou armazenamentos de dados.

Este último caso, que é o mais comum, tem um problema, pois quando falamos em banco de dados, em muitos casos nos referimos a banco de dados relacional, onde os dados são armazenados em tabelas. No entanto, java é uma linguagem orientada a objetos e trabalhar com esses dois conceitos pode ter seus pequenos problemas, pois precisamos de algo que nos converta entre objetos e relacionamentos que temos em nosso banco de dados relacional.

Existem diferentes maneiras de fazer isso, como usar JDBC que permite especificar consultas SQL.

Existe um mecanismo responsável por fazer isso por nós, os ORMs , que são bibliotecas que nos permitem converter entre objetos e entidades relacionais. As duas tecnologias mais difundidas nesse sentido são JPA (uma API que permite o armazenamento persistente de informações simplesmente rotulando cada um dos elementos que precisamos lembrar) e Hibernate , que é um dos ORMs mais usados.

Segurança . A segurança é um aspecto fundamental dos aplicativos de negócios. A segurança no Java EE é baseada no Java Authentication and Authorization Service (JAAS). O JAAS separa o sistema de autenticação do aplicativo Java EE por meio do uso de uma API bem definida que é implementada pelo servidor de aplicativos.

Estrutura geral de controle e gerenciamento de API

As APIs Java EE incluem várias tecnologias que estendem a funcionalidade das APIs Java SE básicas .

javax/ejb.*

A API Enterprise JavaBeans define um conjunto de APIs que um contêiner de objeto distribuído suportará para fornecer persistência , RPCs (usando RMI ou RMI-IIOP ), controle de simultaneidade, transações e controle de acesso para objetos distribuídos.

javax/nomeação

Os pacotes javax.naming, javax.naming.directory, javax.naming.event, javax.naming.ldap e javax.naming.spi definem a API Java Naming and Directory Interface ( JNDI ).

java.sql

Empacote java.sqle javax.sqldefina a API JDBC .

javax/transaction.*

Esses pacotes definem a Java Transaction API ( JTA ).

javax/xml.*

Esses pacotes definem a API JAXP .

javax/jms.*

Esses pacotes definem a API JMS .

javax/persistência

Este pacote fornece as classes e interfaces para gerenciar a interação entre provedores de persistência, classes gerenciadas e clientes Java Persistence API (JPA).

Benefícios

Um dos benefícios do Java EE é que você pode começar com pouco ou nenhum custo. A implementação Java EE da Oracle Corporation pode ser baixada gratuitamente e há muitas ferramentas de código aberto disponíveis para estender a plataforma ou simplificar o desenvolvimento.

Exemplos de ferramentas de desenvolvimento Java de código aberto de terceiros são:

Servidores de aplicativos certificados

Servidores de aplicativos Java EE certificados 5

  • JOnAS , um servidor de aplicativos de código aberto da ObjectWeb.
  • JBoss , inicialmente desenvolvido pela JBoss Inc e posteriormente adquirido pela Red Hat . Existe uma versão de código aberto suportada pela comunidade e uma versão corporativa.
  • Sun Java System Application Server Platform Edition 9.0, baseado em GlassFish .
  • Oracle WebLogic Application Server 10.0 (anteriormente BEA Systems).
  • SAP NetWeaver Application Server , Java EE 5 Edition da SAP .
  • JEUS 6, um servidor de aplicativos específico para Linux da TmaxSoft.
  • Apache Gerônimo 2.0
  • Servidor de Aplicativos IBM WebSphere .
  • Oracle Containers para Java EE 11.
  • GlassFish , um servidor de aplicativos de código aberto da Sun.
  • Apache OpenEJB via Apache Geronimo.

Servidores de aplicativos certificados J2EE 1.4

Servidores de aplicativos certificados J2EE 1.3

  • Servidor de aplicativos Macromedia JRun .

Veja também

Referências

Links externos