Читать книгу Desarrollo de aplicaciones web con Jakarta EE - César Francisco Castillo - Страница 11
Оглавление1
Introducción a Jakarta EE
Jakarta EE es una plataforma derivada de Java Enterprise Edition (JEE) que se compone de un amplio conjunto de especificaciones, las cuales permiten cubrir la mayoría de las necesidades del desarrollo de una aplicación empresarial.
La direccion URL del sitio oficial de Jakarta EE es: https://jakarta.ee/
En este capítulo, nos ocuparemos de los siguientes temas:
* Historia y evolución
* APIs que componen Jakarta EE 8
* Especificaciones que estudiar
* Concepto de desarrollo de aplicaciones en capas
1.1 Historia y evolución
Java Enterprise Edition fue un proyecto iniciado por Sun Microsystems en el año 1999 que luego fue adquirido por la empresa estadounidense Oracle, que dio continuidad a dicho proyecto hasta el año 2017. En ese año, Oracle decidió que el proyecto pasara a manos de la Eclipse Foundation para que esta continuara con su desarrollo bajo la modalidad código abierto.
A pesar de haber transferido la totalidad del proyecto, Oracle, por cuestiones de derechos, no permitió que la Eclipse Foundation utilizara la marca Java, por lo que se renombró como Jakarta EE (2018). Este nombre surgió de una encuesta realizada por la fundación en la que participaron personas pertenecientes a la comunidad Eclipse.
En el momento de escribir este libro, Jakarta EE se encuentra disponible en su versión 8.
Figura 1.1 Evolución de Java EE.
1.2 Jakarta EE APIs
La Figura 1.2 muestra las diferentes APIs que componen Jakarta EE 8, entre las que podemos destacar: JSF (para el desarrollo de aplicaciones web), JAX-RS (para construir servicios web RESTful), JSON-P (para manipular datos en formato JSON), CDI (para acceder a recursos del servidor mediante JNDI), EJB (para implementar componentes de negocio), JTA (para el manejo de transacciones) y JPA (para interactuar con bases de datos relacionales).
Figura 1.2 APIs que componen Jakarta EE.
Para desarrollar proyectos con Jakarta EE, utilizaremos la siguiente dependencia Maven:
Encontrará el listado completo de APIs y su descripción en la siguiente dirección URL: https://jakarta.ee/specifications/
1.3 Especificaciones
Por razones de espacio no cubriremos todas las APIs y solo nos centraremos en aquellas que consideramos esenciales para el desarrollo de aplicaciones empresariales.
La Figura 1.3 muestra cuáles son las APIs que estudiaremos en este libro.
Figura 1.3 Resumen de las APIs que estudiaremos.
1.4 Desarrollo de aplicaciones en capas
A la hora de desarrollar una aplicación, nos enfrentamos al concepto de programación en capas, cuyo objetivo principal es separar las diferentes partes que componen la aplicación. Estas capas pueden ser lógicas o físicas. Sznajdleder (2013) afirma: “(…) una capa es física cuando esta tiene la capacidad de poder ser ejecutada en su propio host (computadora conectada a la red)”.
A partir de dicha afirmación, diremos que en este libro todos los ejemplos están desarrollados siguiendo el esquema de capas lógicas, es decir, un proyecto dividido en varios paquetes, en el que cada paquete tiene a su cargo la implementación de una pequeña porción de la funcionalidad total del proyecto.
Describiremos la responsabilidad de cada capa adoptando un enfoque ascendente: comenzaremos por las capas de datos y el acceso a ellos, seguiremos por la de negocio y, por último, nos enfocaremos en la capa de presentación.
1.4.1 Capa de datos
Esta capa se implementa con una base de datos, cuya responsabilidad es garantizar la persistencia de los datos y proveer un mecanismo para realizar distintas operaciones, tales como: inserción, actualización, eliminación y búsqueda, entre otras.
1.4.2 Capa de acceso a datos
Esta capa se encarga de encapsular los accesos a la base de datos. Las operaciones de inserción, modificación, eliminación, búsquedas y demás las realizaremos en esta capa.
1.4.3 Capa de negocio
Esta capa es la encargada de resolver la lógica de la aplicación (cálculos, validaciones, procesamiento de eventos).
1.4.4 Capa de presentación
Esta capa es la encargada de interactuar con el usuario final de la aplicación y con la capa de negocio.
Para comprender un poco mejor la organización en capas de una aplicación, pensemos en la siguiente situación: imagine un sitio web de comercio electrónico que en su página principal exhibe un catálogo de productos que gozan de un descuento del 30 %.
Antes que nada, los productos deben estar almacenados en una base de datos (capa de datos), luego se deben obtener, mediante algún proceso, aquellos productos que tengan descuento (capa de acceso a datos y capa de negocio) y, por último, se deben exponer en la página principal del sitio (capa de presentación).
Figura 1.4 Desarrollo de una aplicación en capas lógicas.
Jakarta EE provee tecnologías para cada una de estas capas. Por ejemplo, en la capa de presentación se puede utilizar Jakarta Server Faces (JSF); en la capa de negocio, Jakarta Enterprise Beans (EJB) y, finalmente, en la capa de acceso a datos, Jakarta Persistence API (JPA). Obviamente, además de las tecnologías mencionadas, intervienen otras en menor medida, aunque no por ello son menos importantes.
1.5 Resumen
En este capítulo presentamos una introducción a Jakarta EE e hicimos un breve repaso de su historia, centrándonos en el proceso de evolución de J2EE, que pasó a ser Java EE y se convirtió, finalmente, en Jakarta EE.
Además, mostramos cuáles son las APIs que componen Jakarta EE 8 y definimos cuáles estudiaremos a lo largo de esta obra.
Por último, explicamos cómo desarrollar una aplicación en capas y mencionamos las posibles tecnologías que podrían ser empleadas en cada una de ellas.