De Wikipedia, la enciclopedia libre
  (Redirigido desde Java Platform, Enterprise Edition )
Saltar a navegación Saltar a búsqueda

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 características empresariales como computación distribuida y servicios web . [2] Las aplicaciones de Jakarta EE se ejecutan en tiempos de ejecución de referencia , que pueden ser microservicios o servidores de aplicaciones , que manejan transacciones, seguridad, escalabilidad, simultaneidad y administración de los componentes que está implementando.

Jakarta 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 de Java Community Process , los proveedores deben cumplir con 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 [ editar ]

La plataforma se conocía como Java 2 Platform, Enterprise Edition o J2EE desde la versión 1.2, hasta que el nombre se cambió 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 de Java . El 12 de septiembre de 2017, Oracle Corporation anunció que enviaría Java EE a Eclipse Foundation . [3] El proyecto de nivel superior de Eclipse se ha denominado Eclipse Enterprise para Java (EE4J). [4] La Fundación Eclipse se vio obligada a cambiar el nombre porque Oracle posee la marca registrada para el nombre "Java" y cambió el nombre de la plataforma Java EE a Jakarta EE. [5] [6] 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 .

  • J2EE 1.2 (12 de diciembre de 1999)
  • J2EE 1.3 (24 de septiembre de 2001)
  • J2EE 1.4 (11 de noviembre de 2003)
  • Java EE 5 (11 de mayo de 2006)
  • Java EE 6 (10 de diciembre de 2009)
  • Java EE 7 (28 de mayo de 2013) [7] pero el 5 de abril de 2013 según el documento de especificaciones. El 12 de junio de 2013 fue la fecha de inicio prevista [8]
  • Java EE 8 (31 de agosto de 2017) [9]
  • Jakarta EE 8 (10 de septiembre de 2019) [10] : totalmente compatible con Java EE 8
  • Jakarta EE 9 (22 de noviembre de 2020) [11] - javax. * A jakarta. * Cambio de espacio de nombres.

Especificaciones [ editar ]

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, administrar 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 [ editar ]

  • Jakarta Servlet : define cómo gestionar las solicitudes HTTP, de forma síncrona o asincrónica. Es de bajo nivel y otras especificaciones de Yakarta EE se basan en él;
  • Jakarta WebSocket: especificación de API que define un conjunto de API para dar servicio a las conexiones WebSocket ;
  • Jakarta Faces : una tecnología para construir interfaces de usuario a partir de componentes;
  • Jakarta Expression Language ( EL ) es un lenguaje simple originalmente diseñado 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 Contexts and Dependency Injection a beans con nombre, pero se puede usar en toda la plataforma.

Especificaciones del servicio web [ editar ]

  • Los servicios web RESTful de Yakarta brindan soporte para la creación de servicios web de acuerdo con el patrón arquitectónico de Transferencia de estado representacional (REST);
  • El procesamiento JSON de Jakarta es un conjunto de especificaciones para administrar información codificada en formato JSON;
  • Jakarta JSON Binding proporciona especificaciones para convertir información JSON en o desde clases Java;
  • Jakarta XML Binding permite mapear XML en objetos Java;
  • Los servicios web XML de Jakarta se pueden utilizar para crear servicios web SOAP.

Especificaciones empresariales [ editar ]

  • Jakarta Contexts and Dependency Injection ( 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 de relaciones 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 depende del manejo transparente de transacciones por las abstracciones de EJB de nivel superior, o que utiliza 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 [ editar ]

  • Validación: este paquete contiene las anotaciones e interfaces para el soporte de validación declarativa que ofrece la API de validación de Bean . Bean Validation proporciona una forma unificada de proporcionar restricciones sobre beans (por ejemplo, clases de modelo JPA) que se pueden aplicar entre capas. En Jakarta EE, JPA 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 ejecución que posiblemente impliquen un gran volumen de datos y que puedan necesitar ejecutarse 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 no suele entrar en contacto.

Perfil web [ editar ]

En un intento por limitar la huella de los contenedores web, tanto en términos físicos como conceptuales, se creó el perfil web, un subconjunto de las especificaciones de Jakarta EE. El perfil web de Jakarta EE comprende lo siguiente:

Tiempos de ejecución de referencia certificados [ editar ]

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 fallas , alta disponibilidad , seguridad , etc.), tamaño instalado, espacio de memoria, tiempo de inicio, etc.


Yakarta EE [15] [16] [ editar ]

Java EE [ editar ]

Muestra de código [ editar ]

El ejemplo de código que se muestra a continuación demuestra cómo varias tecnologías en Java EE 7 se utilizan 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 Server Faces ( JSF ) con Facelets . El siguiente ejemplo usa Caras y Facetas . No se muestra explícitamente que los componentes de entrada usan la API Jakarta EE Bean Validation bajo las cubiertas para validar 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  name = "user_id"  value = "# {userEdit.user}"  converter = "# {userConvertor}"  />  </ f: metadata> <h: cuerpo> <h: mensajes  /> <h: formulario>  <h: panelGrid  columnas = "2" >  <h: outputLabel  for = "firstName"  value = "First  Name " />  <h: inputText  id = "firstName"  value = "# {userEdit.user. firstName} "  label = " Nombre "  /> <h: outputLabel  for = "lastName"  value = "Last name"  />  <h: inputText  id = "lastName"  value = "# {userEdit.user.lastName}"  label = "Last name"  /> <h: commandButton  action = "# {userEdit.saveUser}"  value = "Guardar"  />  </ h: panelGrid>  </ h: form> </ h: cuerpo> </html>

Ejemplo de clase Backing Bean [ editar ]

Para ayudar a la vista, Jakarta EE utiliza un concepto llamado "Backing Bean". El siguiente ejemplo utiliza Contexts and Dependency Injection (CDI) y Jakarta Enterprise Beans ( EJB ).

@Named @ViewScoped clase pública  UserEdit {    Usuario  usuario privado ; @Inject  privado  UserDAO  userDAO ; public  String  saveUser ()  {  userDAO . guardar ( este . usuario );  addFlashMessage ( "Usuario"  +  este . usuario . getId ()  +  "guardado" ); return  "users.xhtml? faces-redirect = true" ;  } public  void  setUser ( Usuario  usuario )  {  this . usuario  =  usuario ;  } public  User  getUser ()  {  retorno de  usuario ;  } }

Ejemplo de clase de objeto de acceso a datos [ editar ]

Para implementar la lógica empresarial, Jakarta Enterprise Beans ( EJB ) es la tecnología dedicada en Jakarta EE. Para la persistencia real, se puede utilizar JDBC o Jakarta Persistence (JPA). El siguiente ejemplo utiliza EJB y JPA. No se muestra explícitamente que EJB utiliza JTA de forma encubierta para controlar el comportamiento transaccional.

@Stateless clase pública  UserDAO {   @PersistenceContext  private  EntityManager  entityManager ; public  void  save ( usuario  usuario )  {  entityManager . persistir ( usuario );  }  actualización de vacío  público ( usuario usuario ) { entityManager . fusionar ( usuario ); }     public  List < Usuario >  getAll ()  {  return  entityManager . createNamedQuery ( "User.getAll" ,  clase User . ) . getResultList (); }  }

Clase de entidad de ejemplo [ editar ]

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 public  class  User  { @Id  @GeneratedValue ( estrategia  =  IDENTIDAD )  ID de entero privado  ;  @Size ( min  =  2 ,  message = "Nombre demasiado corto" )  private  String  firstName ; @Size ( min  =  2 ,  message = "Apellido demasiado corto" )  private  String  lastName ; public  Integer  getId ()  {  id de retorno  ; }  public  void  setId ( Id. entero  ) { this . id = id ; }      public  String  getFirstName ()  {  return  firstName ;  } public  void  setFirstName ( String  firstName )  {  esto . firstName  =  firstName ;  } public  String  getLastName ()  {  return  lastName ;  } public  void  setLastName ( String  lastName )  {  esto . lastName  =  lastName ;  }}

Ver también [ editar ]

  • Contenedor web
  • Descriptor de implementación
  • BluePrints de Java
  • Servidor Sun Java System Portal
  • Licencia de fuente de la comunidad de Sun
  • Licencia de investigación de Java

Referencias [ editar ]

  1. ^ "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 .
  2. ^ "Descripción general de Java EE" . Oracle Corporation . Consultado el 26 de febrero de 2017 .
  3. John K. Waters (12 de septiembre de 2017). "Java EE se está trasladando a la Fundación Eclipse" . ADTmag . Consultado el 13 de septiembre de 2017 .
  4. ^ Beaton, Wayne. "Preguntas frecuentes sobre EE4J | La Fundación Eclipse" . www.eclipse.org .
  5. ^ Chirgwin, Richard (4 de marzo de 2018). "Java EE renombró 'Jakarta EE' después de la disputa de la marca Big Red" . Software. El registro . Consultado el 19 de marzo de 2018 .
  6. ^ Vaughan-Nichols, Steven J. (5 de marzo de 2018). "Adiós JEE, hola Jakarta EE" . Linux y código abierto. ZDNet . Consultado el 10 de julio de 2020 .
  7. ^ a b "JSR 342: Java ™ Platform, Enterprise Edition 7 (Java EE 7) Especificación" . Proceso de la comunidad Java .
  8. ^ Wieldt, Tori. "Presentación de Java EE 7: lanzamiento del 12 de junio" . Archivado desde el original el 13 de septiembre de 2013 . Consultado el 28 de mayo de 2013 .
  9. ^ a b "Plataforma Java, Especificación de Enterprise Edition (Java EE), v8" (PDF) . Oráculo.
  10. ^ "Yakarta EE 8" . proyectos.eclipse.org . Consultado el 11 de julio de 2020 .
  11. ^ "Yakarta EE 9" . eclipse.org . Consultado el 23 de noviembre de 2020 .
  12. ^ "JSR 316: Java ™ Platform, Enterprise Edition 6 (Java EE 6) Especificación" . Proceso de la comunidad Java .
  13. ^ "Componentes necesarios" . WebProfile. Yakarta EE . Consultado el 11 de julio de 2020 .
  14. ^ "Jakarta EE WebProfile" . jakarta.ee . Consultado el 15 de julio de 2020 .
  15. ^ "Productos compatibles con Jakarta EE 9" . Jakarta.ee .
  16. ^ "Productos compatibles con Jakarta EE 8" . Jakarta.ee .
  17. ^ a b c d e f g "Compatibilidad con Java EE" . www.oracle.com . Consultado el 5 de agosto de 2018 .
  18. ^ a b c d e f g "Compatibilidad con Java EE" .
  19. ^ a b "Comparación de las versiones 2.xy 3.0.x de GlassFish Open Source Edition" . Archivado desde el original el 20 de diciembre de 2012.
  20. ^ "Compatibilidad con Java EE" . Java.sun.com. 2010-09-07 . Consultado el 18 de julio de 2012 .
  21. ^ "Oracle Weblogic Server 14.1.1" . www.oracle.com .
  22. ^ "Oracle Weblogic Server 12.1.1" . www.oracle.com .
  23. ^ Lyons, 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 .
  24. ^ "Compatibilidad con Java EE" . www.oracle.com .
  25. ^ "JBoss AS 7.1.0.Final" Thunder "lanzado - ¡Perfil completo de Java EE 6 certificado! | Mi Wiki | Comunidad Planet JBoss" . Planet.jboss.org. 2012-02-17 . Consultado el 18 de julio de 2012 .
  26. ^ "Servidor de aplicaciones JBoss - Comunidad JBoss" .
  27. ^ "Servidor de aplicaciones JBoss - Comunidad JBoss" .
  28. ^ "Compatibilidad con Java EE" .
  29. ^ "¡JBoss AS ahora tiene 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 .
  30. ^ "Disponibilidad de Red Hat JBoss Enterprise Application Platform 7.2" .
  31. ^ Business Wire (20 de junio de 2012). "Red Hat lanza la plataforma de aplicaciones empresariales JBoss 6 para ayudar a las empresas a trasladar el desarrollo y la implementación de aplicaciones a la nube" . Business Wire . Consultado el 18 de julio de 2012 .
  32. ^ "Novedades de WebSphere Application Server V8" . Ibm.com . Consultado el 18 de julio de 2012 .
  33. ^ a b "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 las aplicaciones Spring Boot" . IBM . Consultado el 12 de julio de 2018 .
  34. ^ "Java EE 7 - Configuraciones probadas - Perfil Liberty de IBM WebSphere Application Server" . Oracle.com .
  35. ^ "Java EE 7 ha aterrizado en WAS Liberty - WASdev" . 25 de junio de 2015.
  36. ^ "Configuraciones probadas del perfil web de IBM Java EE 6" .
  37. ^ "Apache Geronimo: índice" . geronimo.apache.org . 25 de enero de 2010.
  38. ^ "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 .
  39. ^ "Configuraciones probadas, Java EE 6 - TMAX JEUS 7" . Oracle.com. 2010-09-07 . Consultado el 18 de julio de 2012 .
  40. ^ "Servidor de aplicaciones web Java EE6, era software" . Us.tmaxsoft.com. Archivado desde el original el 2 de julio de 2012 . Consultado el 18 de julio de 2012 .
  41. ^ "Java EE 6 - Configuraciones probadas, Java EE 6 - Servidor de aplicaciones Hitachi uCosminexus v9.0" . Oracle.com.
  42. ^ "Servidor de aplicaciones Fujitsu Interstage con tecnología de Windows Azure" . Archivado desde el original el 10 de agosto de 2011.
  43. ^ "Configuraciones probadas, Java EE6 - Fujitsu Interstage" . Oracle.com. 2010-09-07 . Consultado el 18 de julio de 2012 .
  44. ^ "Fujitsu lanza Interstage Application Server V10.1" . Fujitsu.
  45. ^ "Certificación NEC WebOTX Application Server V9.x" .
  46. ^ "Apache TomEE" . Openejb.apache.org . Consultado el 18 de julio de 2012 .
  47. ^ "MarketWatch.com" . MarketWatch.com . Consultado el 18 de julio de 2012 .
  48. ^ TomEE, Apache. "Apache TomEE 7.0.1" .
  49. ^ "Perfil web de Resin Application Server Java EE 6" (PDF) . caucho.com . 2011.
  50. ^ "¡Dé la bienvenida a Siwpas como opción certificada de Java EE!" . Oracle.com . Consultado el 7 de diciembre de 2015 .
  51. ^ "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 .
  52. ^ "SAP NetWeaver Cloud Java EE 6 Web Profile certificado! (El acuario)" .
  53. ^ "Soluciones de software SAP - Tecnología y aplicaciones empresariales" .

Enlaces externos [ editar ]

  • Página web oficial
  • Gupta, Arun (2013). Java EE 7 Essentials . O'Reilly.
  • Goncalves, Antonio (2013). A partir de Java EE 7 . APulse.
  • Java EE de Oracle Technology Network
  • Página de compatibilidad con Java EE de Oracle: implementaciones certificadas compatibles con Java EE
  • Patrones principales de J2EE
  • Un breve tutorial que presenta la plataforma Java EE a los desarrolladores principiantes de Java EE.