Java EE: ¿qué es?
Java EE es una plataforma construida sobre Java SE que proporciona una API y un entorno de ejecución para desarrollar y ejecutar aplicaciones de red a gran escala, de múltiples niveles, escalables, confiables y seguras. Estas aplicaciones se denominan aplicaciones empresariales porque resuelven los problemas que enfrentan las grandes empresas. Sin embargo, las grandes corporaciones y agencias gubernamentales no son las únicas que pueden beneficiarse de este tipo de aplicaciones y de los beneficios que proporciona Java EE. Las soluciones que ofrece la plataforma Java EE son útiles y, a veces, simplemente necesarias, para desarrolladores individuales y pequeñas organizaciones.Desarrollo JavaEE
Java EE se desarrolla a través del Java Community Process (JCP), formado en 1998. Permite a las partes interesadas participar en la configuración de futuras versiones de las especificaciones de la plataforma del lenguaje Java. La base de este proceso son los JSR (Solicitud de especificación de Java), documentos formales que describen las especificaciones y tecnologías que se proponen agregar a la plataforma Java. Estas solicitudes las realizan miembros de la comunidad: desarrolladores y empresas comunes. Estos últimos incluyen Oracle, Red Hat, IBM, Apache y muchos otros. Aquellos. Los chicos proponen nuevas características y ventajas para su consideración que les gustaría incluir en Java. Y luego se realiza una votación, a partir de la cual se decide qué incluir en la próxima versión. El historial de versiones de Java EE tiene este aspecto:- J2EE 1.2 (diciembre de 1999)
- J2EE 1.3 (septiembre de 2001)
- J2EE 1.4 (noviembre de 2003)
- Java EE 5 (mayo de 2006)
- Java EE 6 (diciembre de 2009)
- Java EE 7 (mayo)
- Java EE 8 (agosto de 2017)
- Yakarta EE 8 (septiembre de 2019)
Arquitectura de aplicaciones Java EE
Una breve introducción. Para que sea más fácil de entender, hablemos sobre la estructura de las aplicaciones Java EE y algunos de los términos que usaremos más adelante. Las aplicaciones Java EE tienen una estructura que tiene dos cualidades clave:- En primer lugar, multinivel. Las aplicaciones Java EE tienen varios niveles y hablaremos de esto con más detalle;
- en segundo lugar, anidar. Hay un servidor Java EE (o servidor de aplicaciones), con contenedores de componentes ubicados en su interior. Estos contenedores albergan componentes (¡bingo!).
Niveles de aplicación
Las aplicaciones multinivel son aplicaciones que se dividen según principios funcionales en módulos aislados (niveles, capas). Normalmente (incluso en el contexto del desarrollo de Java EE), las aplicaciones empresariales se dividen en tres niveles:- cliente;
- nivel promedio;
- nivel de acceso a los datos.
-
La capa de cliente es una aplicación que solicita datos del servidor Java EE (capa intermedia). El servidor, a su vez, procesa la solicitud del cliente y le devuelve una respuesta. La aplicación cliente puede ser un navegador, una aplicación independiente (móvil o de escritorio) u otras aplicaciones de servidor sin una interfaz gráfica.
-
El nivel medio se divide, a su vez, en nivel web y nivel de lógica de negocio.
-
La capa web consta de algunos componentes que proporcionan interacción entre los clientes y la capa de lógica empresarial.
A nivel web se utilizan las siguientes tecnologías Java EE:
- Tecnología JavaServer Faces (JSF);
- Páginas del servidor Java (JSP);
- lenguaje de expresión (EL);
- servlets;
- Contextos e inyección de dependencias para Java EE (CDI).
-
La capa de lógica empresarial consta de componentes que implementan toda la lógica empresarial de la aplicación. La lógica empresarial es un código que proporciona una funcionalidad que cubre las necesidades de algún área empresarial específica (industria financiera, banca, comercio electrónico). Este nivel puede considerarse el núcleo de todo el sistema.
Tecnologías que intervienen en este nivel:
- JavaBeans empresariales (EJB);
- servicios web RESTful de JAX-RS;
- Entidades API de persistencia de Java;
- Servicio de mensajes Java.
-
-
Nivel de acceso a datos. Este nivel a veces se denomina nivel de sistemas de información empresarial (EIS). EIS consta de varios servidores de bases de datos, sistemas de planificación de recursos empresariales ERP (Enterprise Resource Planning) y otras fuentes de datos. La capa de lógica empresarial accede a esta capa para obtener datos.
En este nivel podrás encontrar tecnologías como:
- API de conectividad de bases de datos Java (JDBC);
- API de persistencia de Java;
- Arquitectura del conector Java EE;
- API de transacciones de Java (JTA).
Servidores de aplicaciones, contenedores, componentes.
Echemos un vistazo a la definición de Java EE de Wikipedia. Java EE es un conjunto de especificaciones y documentación relacionada para el lenguaje Java, que describe la arquitectura de la plataforma del servidor para las tareas de medianas y grandes empresas. Para comprender mejor lo que significa un "conjunto de especificaciones" en este contexto, hagamos una analogía con una interfaz Java. La propia interfaz Java carece de funcionalidad. Simplemente define algún contrato según el cual se implementa alguna funcionalidad. Pero otras clases implementan la interfaz. Además, una interfaz puede tener varias implementaciones, cada una de las cuales puede diferir en algunos detalles. Con las especificaciones todo es exactamente igual. Java EE desnudo es solo un conjunto de especificaciones. Estas especificaciones son implementadas por varios servidores Java EE. Un servidor Java EE es una aplicación de servidor que implementa las API de la plataforma Java EE y proporciona servicios Java EE estándar. Los servidores Java EE a veces se denominan servidores de aplicaciones. Los datos del servidor pueden contener componentes de aplicación, cada uno de los cuales corresponde a su propio nivel en una jerarquía de varios niveles. El servidor Java EE proporciona varios servicios a estos componentes en forma de contenedor. Los contenedores son la interfaz entre los componentes que alojan y la funcionalidad independiente de la plataforma de bajo nivel que admite el componente. Los contenedores proporcionan servicios específicos a los componentes que alojan. Por ejemplo, gestión del ciclo de vida del desarrollo, inyección de dependencias, concurrencia, etc. Los contenedores ocultan la complejidad técnica y aumentan la portabilidad. Hay cuatro tipos diferentes de contenedores en Java EE :-
La mayoría de los navegadores implementan contenedores de subprogramas. Al desarrollar subprogramas, puede concentrarse en el lado visual de la aplicación, mientras que el contenedor proporciona un entorno seguro.
-
El contenedor de cliente de aplicaciones (ACC) contiene un conjunto de clases, bibliotecas y otros archivos de Java necesarios para implementar funciones como inyección, gestión de seguridad y servicios de nombres en aplicaciones Java SE.
-
El contenedor web proporciona los servicios principales para gestionar y ejecutar componentes web (servlets, componentes EJB Lite, páginas JSP, filtros, escuchas, páginas JSF y servicios web). Es responsable de crear instancias, inicializar e invocar servlets y soportar los protocolos HTTP y HTTPS. Este contenedor se utiliza para servir páginas web a los navegadores de los clientes.
-
El contenedor EJB (Enterprise Java Bean) es responsable de gestionar y ejecutar los componentes del modelo EJB que contienen la capa de lógica empresarial de la aplicación. Crea nuevas entidades de bean EJB, gestiona su ciclo de vida y proporciona servicios como transacciones, seguridad, concurrencia, distribución, denominación o capacidades de invocación asincrónica.
-
Los applets son aplicaciones de interfaz gráfica de usuario (GUI) que se ejecutan en un navegador. Aprovechan la rica API Swing para producir potentes interfaces de usuario.
-
Las aplicaciones son programas que se ejecutan en el lado del cliente. Normalmente son interfaces gráficas de usuario (GUI) y se utilizan para el procesamiento por lotes.
-
Aplicaciones web (que constan de servlets y sus filtros, detectores de eventos web, páginas JSP y JSF): se ejecutan en un contenedor web y responden a solicitudes HTTP de clientes web. Los servlets también admiten puntos finales de servicios web SOAP y RESTful.
-
Las aplicaciones empresariales (creadas con Enterprise Java Beans, Java Message Service, Java Transaction API, llamadas asincrónicas, servicios de tiempo) se ejecutan en un contenedor EJB. Los EJB administrados por contenedores manejan la lógica empresarial transaccional. Se puede acceder a ellos de forma local o remota a través de RMI (o HTTP para servicios web SOAP y RESTful).
Tecnologías
Entonces, hemos resuelto la arquitectura. La estructura general debe ser clara. En el proceso de descripción de los componentes arquitectónicos, tocamos algunas tecnologías Java EE como EJB, JSP, etc., echemos un vistazo más de cerca. La siguiente tabla muestra las tecnologías que se utilizan principalmente a nivel de cliente:Tecnología | Objetivo |
---|---|
servlets | Clases de Java que procesan dinámicamente solicitudes de clientes y generan respuestas (generalmente páginas HTML). |
Caras del servidor Java (JSF) | Un marco para crear aplicaciones web con una interfaz de usuario. Le permite incluir componentes de interfaz de usuario (por ejemplo, campos y botones) en una página, transformar y validar estos componentes y almacenar estos datos en el almacenamiento del lado del servidor. |
Tecnología Java Server Faces Facelets | Es un subtipo de aplicación JSF que utiliza páginas XHTML en lugar de páginas JSP. |
Páginas del servidor Java (JSP) | Documentos de texto que se compilan en servlets. Le permite agregar contenido dinámico a páginas estáticas (como páginas HTML) |
Biblioteca de etiquetas estándar de páginas de servidor Java (JSTL) | Una biblioteca de etiquetas que encapsula la funcionalidad principal en el contexto de páginas JSP. |
Lenguaje de expresión | Un conjunto de etiquetas estándar que se utilizan en páginas JSP y Facelets para acceder a componentes Java EE. |
Contextos e inyección de dependencias para Java EE (CDI) | Representa un conjunto de servicios proporcionados por contenedores Java EE para gestionar el ciclo de vida de los componentes, así como para inyectar componentes en objetos del cliente de forma segura. |
Componentes de Java Beans | Objetos que actúan como almacenamiento temporal de datos para las páginas de la aplicación. |
Tecnología | Objetivo |
---|---|
Componentes de Enterprise Java Beans (bean empresarial) | Los EJB son beans administrados que contienen la funcionalidad principal de una aplicación. |
Servicios web RESTful de JAX-RS | Es una API para el desarrollo de servicios web que cumplen con el estilo arquitectónico REST. |
Puntos finales del servicio web JAX-WS | API para crear y consumir servicios web SOAP. |
Entidades de la API de persistencia de Java (JPA) | Una API para acceder a datos en almacenes de datos y convertir esos datos en objetos del lenguaje de programación Java y viceversa. |
Beans gestionados Java EE | Beans administrados que proporcionan la lógica empresarial de la aplicación pero no requieren las características transaccionales o de seguridad del EJB. |
Servicio de mensajes Java | La API Java Message Service (JMS) es un estándar de mensajería que permite a los componentes de la aplicación Java EE crear, enviar, recibir y leer mensajes. Esto garantiza una comunicación distribuida, confiable y asíncrona entre componentes. |
Tecnología | Objetivo |
---|---|
La API de conectividad de bases de datos Java (JDBC) | API de bajo nivel para acceder y recuperar datos de almacenes de datos. Un uso típico de JDBC es escribir consultas SQL en una base de datos específica. |
La API de persistencia de Java | Una API para acceder a datos en almacenes de datos y convertir esos datos en objetos del lenguaje de programación Java y viceversa. API de nivel mucho más alto en comparación con JDBC. Oculta toda la complejidad de JDBC al desarrollador bajo el capó. |
La arquitectura del conector Java EE | API para conectar otros recursos corporativos, como:
|
La API de transacciones de Java (JTA) | Una API para definir y gestionar transacciones, incluidas transacciones distribuidas y transacciones en múltiples almacenes de datos. |
GO TO FULL VERSION