Conjunto de especificaciones que amplían Java SE
Jakarta EE , anteriormente Java Platform, Enterprise Edition ( Java EE ) y Java 2 Platform, Enterprise Edition ( J2EE ), es un conjunto de especificaciones que amplía Java SE [1] con especificaciones para funciones empresariales como informática distribuida y servicios web . [2] Las aplicaciones Jakarta EE se ejecutan en tiempos de ejecución de referencia , que pueden ser microservicios o servidores de aplicaciones , que manejan transacciones, seguridad, escalabilidad, concurrencia y gestión de los componentes que están implementando.
Yakarta EE se define por su especificación . La especificación define las API (interfaz de programación de aplicaciones) y sus interacciones. Al igual que con otras especificaciones del Proceso comunitario de Java , los proveedores deben cumplir ciertos requisitos de conformidad para poder declarar que sus productos cumplen con Jakarta EE .
Ejemplos de contextos en los que se utilizan tiempos de ejecución de referencia de Jakarta EE son: comercio electrónico , contabilidad , sistemas de información bancaria .
Historia
La plataforma se conocía como Java 2 Platform, Enterprise Edition o J2EE desde la versión 1.2, hasta que se cambió el nombre a Java Platform, Enterprise Edition o Java EE en la versión 1.5.
Java EE fue mantenido por Oracle bajo el Proceso de la Comunidad Java . El 12 de septiembre de 2017, Oracle Corporation anunció que presentaría Java EE a la Fundación Eclipse . [3] El proyecto de nivel superior de Eclipse se ha denominado Eclipse Enterprise para Java (EE4J). [4] La Fundación Eclipse no pudo llegar a un acuerdo con Oracle sobre el uso de las marcas javax y Java. [5] Oracle posee la marca registrada del nombre "Java" y la plataforma pasó a llamarse Java EE a Jakarta EE. [6] [7] El nombre hace referencia a la ciudad más grande de la isla de Java y también a la capital de Indonesia, Yakarta . [8] El nombre no debe confundirse con el antiguo Proyecto Jakarta que fomentó una serie de proyectos Java actuales y anteriores en la Apache Software Foundation .
Especificaciones
Jakarta EE incluye varias especificaciones que sirven para diferentes propósitos, como generar páginas web, leer y escribir desde una base de datos de forma transaccional y gestionar colas distribuidas.
Las API de Jakarta EE incluyen varias tecnologías que amplían la funcionalidad de las API de Java SE básicas , como Jakarta Enterprise Beans , conectores , servlets , Jakarta Server Pages y varias tecnologías de servicios web .
Especificaciones web
- Jakarta Servlet : define cómo gestionar las solicitudes HTTP, de forma sincrónica o asincrónica. Es de bajo nivel y otras especificaciones de Yakarta EE dependen de él;
- Jakarta WebSocket: especificación API que define un conjunto de API para dar servicio a conexiones WebSocket ;
- Jakarta Faces : una tecnología para construir interfaces de usuario a partir de componentes;
- Jakarta Expression Language ( EL ) es un lenguaje simple diseñado originalmente para satisfacer las necesidades específicas de los desarrolladores de aplicaciones web. Se usa específicamente en Jakarta Faces para vincular componentes a beans (de respaldo) y en Contextos e inyección de dependencia a beans con nombre, pero se puede usar en toda la plataforma.
Especificaciones del servicio web
Especificaciones empresariales
- Jakarta Activation ( JAF ) especifica una arquitectura para ampliar los Beans de componentes proporcionando tipificación de datos y enlaces de dichos tipos.
- Contextos de Jakarta e inyección de dependencia ( CDI ) es una especificación para proporcionar un contenedor de inyección de dependencia ;
- La especificación Jakarta Enterprise Beans ( EJB ) define un conjunto de API ligeras que un contenedor de objetos (el contenedor EJB) admitirá para proporcionar transacciones (usando JTA ), llamadas a procedimientos remotos (usando RMI o RMI-IIOP ), control de concurrencia , dependencia. inyección y control de acceso a objetos de negocio. Este paquete contiene las clases e interfaces de Jakarta Enterprise Beans que definen los contratos entre el Enterprise Bean y sus clientes y entre el Enterprise Bean y el contenedor ejb.
- Jakarta Persistence ( JPA ) son especificaciones sobre el mapeo relacional de objetos entre tablas de bases de datos relacionales y clases Java.
- Jakarta Transactions ( JTA ) contiene las interfaces y anotaciones para interactuar con el soporte de transacciones ofrecido por Jakarta EE. Aunque esta API se abstrae de los detalles de nivel realmente bajo, las interfaces también se consideran de nivel algo bajo y se supone que el desarrollador de aplicaciones promedio en Yakarta EE confía en el manejo transparente de las transacciones mediante abstracciones EJB de nivel superior, o usa las anotaciones proporcionadas por esta API en combinación con beans administrados por CDI.
- Jakarta Messaging ( JMS ) proporciona una forma común para que los programas Java creen, envíen, reciban y lean los mensajes de un sistema de mensajería empresarial.
Otras especificaciones
- Validación de Jakarta: este paquete contiene las anotaciones e interfaces para el soporte de validación declarativa que ofrece la API de validación de Jakarta. La validación de Jakarta proporciona una forma unificada de proporcionar restricciones a los beans (por ejemplo, clases de modelo de persistencia de Jakarta) que se pueden aplicar entre capas. En Jakarta EE, Jakarta Persistence respeta las restricciones de validación de beans en la capa de persistencia, mientras que JSF lo hace en la capa de vista.
- Jakarta Batch proporciona los medios para el procesamiento por lotes en aplicaciones para ejecutar tareas en segundo plano de larga duración que posiblemente impliquen un gran volumen de datos y que pueden necesitar ser ejecutadas periódicamente.
- Jakarta Connectors es una herramienta basada en Java para conectar servidores de aplicaciones y sistemas de información empresarial ( EIS ) como parte de la integración de aplicaciones empresariales ( EAI ). Esta es una API de bajo nivel dirigida a proveedores con los que el desarrollador de aplicaciones promedio normalmente no entra en contacto.
perfil web
En un intento por limitar el espacio de los contenedores web, tanto en términos físicos como conceptuales, se creó el perfil web, un subconjunto de las especificaciones EE de Yakarta. El perfil web de Jakarta EE comprende lo siguiente:
Tiempos de ejecución de referencia certificados
Aunque, por definición, todas las implementaciones de Jakarta EE proporcionan el mismo nivel básico de tecnologías (es decir, la especificación de Jakarta EE y las API asociadas), pueden diferir considerablemente con respecto a características adicionales (como conectores , agrupación en clústeres , tolerancia a fallos , alta disponibilidad , seguridad , etc.), tamaño instalado, uso de memoria , tiempo de inicio, etc.
Yakarta EE.UU.
JavaEE
Ejemplo de código
El ejemplo de código que se muestra a continuación demuestra cómo se utilizan varias tecnologías en Java EE 7 juntas para crear un formulario web para editar un usuario.
En Jakarta EE se puede crear una interfaz de usuario (web) utilizando Jakarta Servlet , Jakarta Server Pages ( JSP ) o Jakarta Faces ( JSF ) con Facelets . El siguiente ejemplo utiliza Caras y Facelets . Lo que no se muestra explícitamente es que los componentes de entrada utilizan la API de validación de Jakarta EE Bean en secreto para validar las restricciones.
<html xmlns= "http://www.w3.org/1999/xhtml" xmlns:h= "http://xmlns.jcp.org/jsf/html" xmlns:f= "http://xmlns.jcp .org/jsf/core" > <f:metadata> <f:viewParam nombre= "user_id" valor= "#{userEdit.user}" convertidor= "#{userConvertor}" /> </f:metadata> <h:cuerpo> <h:mensajes /> <h:form> <h:panelGrid columns= "2" > <h:outputLabel for= "firstName" value= "First name" /> <h:inputText id= "firstName" value= "#{userEdit.user. firstName}" etiqueta = "Nombre" /> <h:outputLabel for= "lastName" value= "Apellido" /> <h:inputText id= "lastName" value= "#{userEdit.user.lastName}" label= "Apellido" /> <h:commandButton action= "#{userEdit.saveUser}" value= "Guardar" /> </h:panelGrid> </h:form> </h:cuerpo> </html>
Ejemplo de clase de Backing Bean
Para facilitar la vista, Jakarta EE utiliza un concepto llamado "Backing Bean". El siguiente ejemplo utiliza contextos e inyección de dependencia (CDI) y Jakarta Enterprise Beans ( EJB ).
@Named @ViewScoped clase pública UserEdit { Usuario usuario privado ; @Inject usuarioDAO privado userDAO ; cadena pública saveUser () { usuarioDAO . guardar ( este . usuario ); addFlashMessage ( " Usuario " + este.usuario.getId ( ) + " guardado" ) ; devolver "users.xhtml?faces-redirect=true" ; } public void setUser ( Usuario usuario ) { this . usuario = usuario ; } Usuario público getUser () { usuario de retorno ; } }
Ejemplo de clase de objeto de acceso a datos
Para implementar la lógica empresarial, Jakarta Enterprise Beans ( EJB ) es la tecnología dedicada en Yakarta EE. Para la persistencia real, se puede utilizar JDBC o Jakarta Persistence (JPA). El siguiente ejemplo utiliza EJB y JPA. Lo que no se muestra explícitamente es que EJB utiliza JTA encubiertamente para controlar el comportamiento transaccional.
@Clase pública sin estado UserDAO { @PersistenceContext EntityManager privado EntityManager ; guardar vacío público ( Usuario usuario ) { entityManager . persistir ( usuario ); } actualización pública nula ( Usuario usuario ) { entityManager . fusionar ( usuario ); } Lista pública <Usuario> getAll ( ) { return entidadManager . createNamedQuery ( "User.getAll" , Usuario . clase ) . getListaResultados (); } }
Ejemplo de clase de entidad
Para definir clases de entidad/modelo, Jakarta EE proporciona Jakarta Persistence ( JPA ) y para expresar restricciones sobre esas entidades proporciona la API de validación de Bean. El siguiente ejemplo utiliza ambas tecnologías.
@Entity usuario de clase pública { @Id @GeneratedValue ( estrategia = IDENTIDAD ) ID entero privado ; @Size ( min = 2 , mensaje = "Nombre demasiado corto" ) private String firstName ; @Size ( min = 2 , mensaje = "Apellido demasiado corto" ) private String apellido ; público entero getId () { identificación de retorno ; } public void setId ( ID entero ) { this . identificación = identificación ; } cadena pública getFirstName () { return firstName ; } public void setFirstName ( String firstName ) { this . nombre = nombre ; } public String getLastName () { return apellido ; } public void setLastName ( String apellido ) { this . apellido = apellido ; } }
Ver también
Referencias
- ^ "Diferencias entre Java EE y Java SE: su primera copa: una introducción a la plataforma Java EE". Docs.oracle.com. 2012-04-01 . Consultado el 18 de julio de 2012 .
- ^ "Descripción general de Java EE". Corporación Oráculo . Consultado el 26 de febrero de 2017 .
- ^ Waters, John K. (12 de septiembre de 2017). "Java EE se traslada a la Fundación Eclipse". ADTmag . Consultado el 13 de septiembre de 2017 .
- ^ Beaton, Wayne. "Preguntas frecuentes sobre EE4J". Fundación Eclipse .
- ^ Milinkovich, Mike (3 de mayo de 2019). "Actualización sobre los derechos EE de Yakarta sobre las marcas comerciales de Java". Blog. La vida en Eclipse . Consultado el 25 de julio de 2024 .
- ^ Chirgwin, Richard (4 de marzo de 2018). "Java EE pasó a llamarse 'Jakarta EE' después de la disputa con la marca Big Red". Software. El registro . Consultado el 19 de marzo de 2018 .
- ^ Vaughan-Nichols, Steven J. (5 de marzo de 2018). "Adiós JEE, hola Yakarta EE". Linux y código abierto. ZDNet . Consultado el 10 de julio de 2020 .
- ^ Tijms, Arjan (27 de febrero de 2020). "Transición de Java EE a Yakarta EE". Revista Java. blogs.oracle.com . Consultado el 25 de julio de 2024 .
- ^ "Lanzamientos EE de Yakarta". Yakarta EE.UU. Fundación Eclipse . Consultado el 17 de julio de 2024 .
- ^ Obradovic, Tanja; Grimstad, Ivar (22 de septiembre de 2022). "El grupo de trabajo Jakarta EE de la Fundación Eclipse lanza Jakarta EE 10 para marcar el comienzo de la era del Java nativo en la nube". Noticias. Yakarta EE (Presione soltar). Fundación Eclipse . Consultado el 17 de julio de 2024 .
- ^ Obradovic, Tanja; Grimstad, Ivar (25 de mayo de 2021). "El grupo de trabajo de Jakarta EE lanza Jakarta EE 9.1 a medida que la industria continúa adoptando Java empresarial de código abierto". Noticias. Yakarta EE (Presione soltar). Fundación Eclipse . Consultado el 5 de marzo de 2022 .
- ^ Mmayel, Shabnam; Obradovic, Tanja (8 de diciembre de 2020). "¡Lanzamiento de Yakarta EE 9!". Noticias. Yakarta EE (Presione soltar). Fundación Eclipse . Consultado el 5 de marzo de 2022 .
- ^ Mmayel, Shabnam; Obradovic, Tanja (10 de septiembre de 2019). "¡Lanzamiento de Yakarta EE 8!". Noticias. Yakarta EE (Presione soltar). Fundación Eclipse . Consultado el 5 de marzo de 2022 .
- ^ Krill, Paul (21 de noviembre de 2003). "Certificación de especificación J2EE 1.4". Desarrollo de software. InfoMundo . Consultado el 5 de marzo de 2022 .
- ^ Copeland, Lee (24 de septiembre de 2001). "Sun presenta J2EE 1.3". Desarrollo de software. Mundo de la informática . Consultado el 5 de marzo de 2022 .
- ^ "JSR 316: plataforma Java, especificación Enterprise Edition 6 (Java EE 6)". Proceso de la comunidad Java . Corporación Oráculo . Consultado el 5 de marzo de 2022 .
- ^ "JSR 342: Plataforma Java, especificación Enterprise Edition 7 (Java EE 7)". Proceso de la comunidad Java . Corporación Oráculo . Consultado el 5 de marzo de 2022 .
- ^ "Especificación del perfil web de Java Platform, Enterprise Edition 8 (Java EE 8)" (PDF) . GitHub . Corporación Oráculo . Archivado (PDF) desde el original el 9 de octubre de 2022 . Consultado el 5 de febrero de 2022 .
- ^ "Definición de perfil web". Perfil web de EE de Yakarta . 8. Yakarta EE.UU. Fundación Eclipse . Consultado el 5 de marzo de 2022 .
- ^ "Definición de perfil web". Perfil web de EE de Yakarta . 9. Yakarta EE.UU. Fundación Eclipse . Consultado el 5 de marzo de 2022 .
- ^ "Definición de perfil web". Perfil web de EE de Yakarta . 9.1. Yakarta EE.UU. Fundación Eclipse . Consultado el 5 de marzo de 2022 .
- ^ "Definición de perfil web". Perfil web de EE de Yakarta . 10. Yakarta EE.UU. Fundación Eclipse . Consultado el 27 de septiembre de 2022 .
- ^ "Productos compatibles con Yakarta EE". Yakarta.ee .
- ^ "Productos compatibles con Yakarta EE 9". Yakarta.ee .
- ^ "Productos compatibles con Yakarta EE 8". Yakarta.ee .
- ^ "Plataforma Jakarta EE 10 y MicroProfile 6 en Open Liberty 23.0.0.1-beta". openliberty.io .
- ^ ab "Compatibilidad con Jakarta EE 10, MicroProfile 6 y Java SE 20 en Open Liberty 23.0.0.3". openliberty.io .
- ^ "Apache TomEE". tomee.apache.org . Consultado el 8 de enero de 2024 .
- ^ abcdefg "Compatibilidad con Java EE". www.oracle.com . Consultado el 5 de agosto de 2018 .
- ^ abcdefg "Compatibilidad con Java EE".
- ^ ab "Comparación de las versiones 2.x y 3.0.x de GlassFish Open Source Edition". Archivado desde el original el 20 de diciembre de 2012.
- ^ "Compatibilidad con Java EE". Java.sun.com. 2010-09-07 . Consultado el 18 de julio de 2012 .
- ^ "Servidor Oracle Weblogic 14.1.1". www.oracle.com .
- ^ "Servidor Oracle Weblogic 12.1.1". www.oracle.com .
- ^ Lyon, Will; Humphrey, Pieter (2011). "Oracle Web Logic Server 12c: desarrollo de aplicaciones Java EE 6 modernas y ligeras" (PDF) . Archivado desde el original (PDF) el 15 de diciembre de 2011 . Consultado el 3 de diciembre de 2011 .
- ^ "Compatibilidad con Java EE". www.oracle.com .
- ^ "JBoss AS 7.1.0.Final" Thunder "lanzado - ¡Certificación de perfil completo de Java EE 6! | Mi Wiki | Comunidad Planet JBoss". Planeta.jboss.org. 2012-02-17 . Consultado el 18 de julio de 2012 .
- ^ "Servidor de aplicaciones JBoss - Comunidad JBoss".
- ^ "Servidor de aplicaciones JBoss - Comunidad JBoss".
- ^ "Compatibilidad con Java EE".
- ^ "¡JBoss AS ahora tiene la certificación EE5!". 15 de septiembre de 2008. Archivado desde el original el 20 de septiembre de 2008 . Consultado el 7 de agosto de 2016 .
- ^ "Disponibilidad de la plataforma de aplicaciones empresariales Red Hat JBoss 7.2".
- ^ Business Wire (20 de junio de 2012). "Red Hat lanza JBoss Enterprise Application Platform 6 para ayudar a las empresas a trasladar el desarrollo y la implementación de aplicaciones a la nube". Cable comercial . Consultado el 18 de julio de 2012 .
- ^ "Novedades de WebSphere Application Server V8". IBM.com . Consultado el 18 de julio de 2012 .
- ^ ab "IBM WebSphere Application Server Liberty ofrece el primer servidor de aplicaciones compatible con Java EE 8, listo para producción, y amplía el soporte para aplicaciones Spring Boot". IBM . 10 de julio de 2018 . Consultado el 12 de julio de 2018 .
- ^ "Java EE 7 - Configuraciones probadas - Perfil Liberty de IBM WebSphere Application Server". Oracle.com .
- ^ "Java EE 7 ha aterrizado en WAS Liberty - WASdev". 25 de junio de 2015.
- ^ "Configuraciones probadas del perfil web de IBM Java EE 6".
- ^ "Apache Geronimo: índice". geronimo.apache.org . 25 de enero de 2010.
- ^ "Apache Geronimo totalmente certificado para Java EE 6 - The H Open: noticias y características". H-online.com. 2011-11-14. Archivado desde el original el 20 de abril de 2012 . Consultado el 18 de julio de 2012 .
- ^ "Configuraciones probadas, Java EE 6 - TMAX JEUS 7". Oracle.com. 2010-09-07 . Consultado el 18 de julio de 2012 .
- ^ "Servidor de aplicaciones web Java EE6, software WAS". Nosotros.tmaxsoft.com. Archivado desde el original el 2 de julio de 2012 . Consultado el 18 de julio de 2012 .
- ^ "Java EE 6 - Configuraciones probadas, Java EE 6 - Servidor de aplicaciones Hitachi uCosminexus v9.0". Oracle.com.
- ^ "Servidor de aplicaciones Fujitsu Interstage con tecnología de Windows Azure". Archivado desde el original el 10 de agosto de 2011.
- ^ "Configuraciones probadas, Java EE6 - Fujitsu Interstage". Oracle.com. 2010-09-07 . Consultado el 18 de julio de 2012 .
- ^ "Fujitsu lanza el servidor de aplicaciones Interstage V10.1". Fujitsu.
- ^ "Certificación del servidor de aplicaciones NEC WebOTX V9.x".
- ^ "Apache TomEE". Openejb.apache.org . Consultado el 18 de julio de 2012 .
- ^ "MarketWatch.com". MarketWatch.com . Consultado el 18 de julio de 2012 .
- ^ TomEE, Apache. "Apache TomEE 7.0.1".
- ^ "Perfil web Java EE 6 del servidor de aplicaciones Resin" (PDF) . caucho.com . 2011. Archivado (PDF) desde el original el 9 de octubre de 2022.
- ^ "¡Dé la bienvenida a Siwpas como opción certificada por Java EE!". Oracle.com . Consultado el 7 de diciembre de 2015 .
- ^ "Lanzamiento de JOnAS 5.3.0 RC1". jonas.ow2.org . 2013-01-07. Archivado desde el original el 15 de octubre de 2013 . Consultado el 25 de febrero de 2014 .
- ^ "¡Perfil web SAP NetWeaver Cloud Java EE 6 certificado! (El acuario)".
- ^ "Soluciones de software SAP: tecnología y aplicaciones empresariales".
enlaces externos
Wikimedia Commons tiene medios relacionados con Yakarta EE .
- Página web oficial
- Productos compatibles con Jakarta EE: aplicaciones Java empresariales y servidores web - Fundación Eclipse
- El tutorial de EE de Yakarta
- Tutorial de la primera Copa de Jakarta EE: Introducción a Jakarta EE
- Plataforma Java, edición empresarial (Java EE), Oracle Technology Network
- Canal oficial de YouTube de Yakarta EE