Jakarta EE es el nombre actual que recibe lo que antes conocíamos como Java EE, o Java Enterprise Edition. Este cambio de nombre refleja una evolución en el ecosistema Java, pero el concepto básico sigue siendo el mismo: un conjunto de tecnologías diseñadas para crear aplicaciones web y de servidor robustas, distribuidas y con alta concurrencia. Cuando buscamos empleo en el mundo Java, es común encontrar que se requiere conocimiento en Jakarta EE, ya que es la base para desarrollar aplicaciones empresariales que deben estar siempre disponibles y operativas, ya sea para navegadores web, consumidores de APIs REST o microservicios.
Aunque el término Enterprise puede sonar un poco anticuado, en esencia nos referimos a tecnologías que permiten construir aplicaciones que corren en servidores y que manejan múltiples usuarios y procesos simultáneamente. Jakarta EE no es una única tecnología, sino un conjunto amplio de especificaciones que se montan sobre Java. Por eso, no basta con saber Java puro; es necesario conocer las tecnologías que forman parte del estándar Jakarta EE.
Para entender mejor cómo encaja Jakarta EE dentro del ecosistema Java, podemos imaginar una pila tecnológica donde Java es la base, el lenguaje y la plataforma sobre la que se construyen todas las aplicaciones. Encima de Java, tenemos las especificaciones de Jakarta EE, que definen cómo deben implementarse ciertas funcionalidades para aplicaciones empresariales. Estas especificaciones incluyen muchas tecnologías diferentes, como Jakarta Batch, Jakarta Bean Validation, Jakarta Config, Jakarta Concurrency, entre otras.
Algunas tecnologías clave dentro de Jakarta EE son JPA para la gestión de bases de datos, JSP y Servlets para la creación de aplicaciones web, JAX-RS para servicios REST, y EJB para la gestión de componentes empresariales. Aunque JDBC aparece en la documentación oficial, en realidad es parte de Java SE y no estrictamente de Jakarta EE. Cada una de estas tecnologías es una especificación que describe cómo debe funcionar una funcionalidad concreta, pero no es un software que podamos descargar e instalar directamente.
Para usar estas tecnologías, existen implementaciones concretas desarrolladas por diferentes proveedores. Por ejemplo, Hibernate es una implementación muy popular de JPA, que nos permite trabajar con bases de datos siguiendo las reglas definidas por la especificación JPA. De manera similar, Jersey es una implementación de JAX-RS que facilita la creación de servicios REST en Java.
Además de estas bibliotecas, existen servidores de aplicaciones que integran múltiples tecnologías Jakarta EE y que permiten desplegar aplicaciones completas. Servidores como GlassFish, TomEE, JBoss o WebSphere son ejemplos de estos macro contenedores que implementan las especificaciones Jakarta EE. La ventaja de usar estos servidores es que, al seguir un estándar común, podemos desarrollar nuestra aplicación en un entorno y luego desplegarla en otro servidor compatible sin problemas de compatibilidad.
Es importante destacar que Jakarta EE no es algo que podamos descargar como un paquete único. Más bien, es un conjunto de especificaciones que diferentes proveedores implementan en sus bibliotecas y servidores. Por eso, para aprender Jakarta EE, no existe un único libro o curso que cubra todo, sino que debemos estudiar las tecnologías específicas que nos interesen o que sean relevantes para el tipo de aplicaciones que queremos desarrollar.
En resumen, Jakarta EE es un ecosistema amplio y modular que extiende Java para facilitar la creación de aplicaciones empresariales, web y distribuidas, con un enfoque en la interoperabilidad gracias a sus estándares. Conocer estas tecnologías y sus implementaciones es fundamental para quienes quieren trabajar en el desarrollo de aplicaciones Java a nivel profesional.