Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Java EE - Wikipedia, La Enciclopedia Libre
Java EE - Wikipedia, La Enciclopedia Libre
Java EE
(Redirigido desde «Java 2 Enterprise Edition»)
Java Platform, Enterprise Edition o Java EE (anteriormente conocido como Java 2 Platform,
Enterprise Edition o J2EE hasta la versión 1.4; traducido informalmente como Java Empresarial) es
una plataforma de programación —parte de la Plataforma Java— para desarrollar y ejecutar software
de aplicaciones en el lenguaje de programación Java. Permite utilizar arquitecturas de N capas
distribuidas y se apoya ampliamente en componentes de software modulares ejecutándose sobre un
servidor de aplicaciones. La plataforma Java EE está definida por una especificación. Similar a otras
especificaciones del Java Community Process (JCP), Java EE es también considerado informalmente
como un estándar debido a que los proveedores deben de cumplir ciertos requisitos de conformidad
para declarar que sus productos son conformes a Java EE; estandarizado por JCP.
Java EE tiene varias especificaciones de API, tales como JDBC, RMI, e-mail, JMS, Servicios Web,
XML, etc y define cómo coordinarlos. Java EE también configura algunas especificaciones únicas para
Java EE para componentes. Estas incluyen Enterprise JavaBeans, servlets, portlets (siguiendo la
especificación de Portlets Java), JavaServer Pages y varias tecnologías de servicios web. Ello permite
al desarrollador crear una aplicación de empresa portable entre plataformas y escalable, a la vez que
integrable con tecnologías anteriores. Otros beneficios añadidos son, por ejemplo, que el servidor de
aplicaciones puede manejar transacciones, la seguridad, escalabilidad, concurrencia y gestión de los
componentes desplegados, significando que los desarrolladores pueden concentrarse más en la lógica
de negocio de los componentes en lugar de en tareas de mantenimiento del bajo nivel.
Historia
La especificación original J2EE fue desarrollada por la empresa Sun Microsystems.
J2EE 1.3 fue desarrollada bajo el Java Community Process. JSR 58 (http://jcp.org/en/jsr/detail?id=5
8) especifica J2EE 1.3, el SDK de J2EE 1.3 fue distribuida inicialmente como beta en abril de
2001.
La beta del SDK de J2EE 1.4 definida en JSR 151 (http://jcp.org/en/jsr/detail?id=151) fue distribuida
por Sun en diciembre de 2002.
La especificación Java EE 5 fue desarrollada bajo el JSR 244 (http://jcp.org/en/jsr/detail?id=244) y
el lanzamiento final se hizo el 11 de mayo de 2006.
La versión Java EE 6 cumple la especificación JSR 316 (https://jcp.org/en/jsr/detail?id=316) y fue
lanzada el 10 de diciembre de 2009.
La versión Java EE 7 cuya especificación es la JSR 342 (https://www.jcp.org/en/jsr/detail?id=342),
de 28 de mayo de 2013.
La versión Java EE 8 fue lanzada el 31 de agosto de 2017, y sigue la especificación JSR 366 (http
s://jcp.org/en/jsr/detail?id=366).
Desde el 24 de abril de 2018 Java EE es gestionado por la Fundación Eclipse. La Fundación Eclipse fue
forzada a eliminar la palabra Java del nombre debido a que Oracle posee el registro de la marca
"Java". El 26 de febrero de 2018 se anunció que el nuevo nombre de Java EE sería Jakarta EE.
Arquitectura Java EE
La arquitectura Java EE está basada en tres conceptos clave:
Servicios: Permiten que el programador se concentre en su lógica de negocio y use estos servicios
para su aplicación. Estos servicios pueden tener funcionalidades de seguridad, comunicaciones de
red, logging, integridad de datos, etc. Estos servicios son proporcionados por un contenedor.
Componentes: Son objetos Java que contienen la lógica de negocio de la aplicación y usan los
servicios proporcionados por el contenedor. Hay varios tipos de componentes y según ese tipo son
desplegados en un contenedor u otro.
Capa cliente: Con componentes que corren en la máquina del cliente (como un navegador, un
teléfono inteligente o un ordenador de escritorio)
Capa web: Corre en el servidor Java EE o servidor de aplicaciones y se comunica con la capa
web(capa cliente?) y la de capa de negocio de tal manera que transforma la información al formato
adecuado (por ejemplo HTML).
Capa de datos: Donde se persisten los datos, por ejemplo una bbdd.
El uso de estas capas, nos permite a la hora de desarrollar dividir nuestra aplicación en distintas capas.
El modelo más típico es el Modelo Vista Controlador MVC en el cual se separa la capa de
presentación, la de negocio y la de acceso a datos. Una arquitectura multicapas promueve la separación
de responsabilidades por capas. En el caso particular de 3-capas se separa la presentación de la lógica
de negocio y ésta de la de datos. La capa de presentación no accede directamente a la base de datos,
sino que lo hace únicamente a través de la capa de negocio. La arquitectura multicapas introduce
muchas mejoras importantes dentro del diseño de la aplicación, incluyendo la flexibilidad a través de
una adecuada separación entre la capa de presentación y la lógica de negocio.
Componentes
Con el fin de construir aplicaciones por componentes basados en JEE, se han definido diferentes
componentes:
Componentes de cliente: Son todos aquellos que se ejecutan en la máquina del cliente y hay de
dos tipos, aplicaciones de clientes y clientes web. Los clientes web se conocen como Thin Clients y
son páginas web generadas dinámicamente por los componentes web con lenguajes como HTML o
XML que se envían a la máquina del cliente como respuesta a una petición, en la que habrá un
navegador web que se encargará de mostrarle al cliente el contenido. Incluso esa web puede llevar
un applet integrado. En este caso, se conectan directamente con la capa web del servidor JEE la
cual es la encargada de acceder a la capa de negocio. Por otro lado las aplicaciones de cliente o
Smart Clients, las cuales se ejecutan también en cliente, y ofrecen una interfaz más rica no basadas
en un navegador web. En este caso se “saltan” la conexión con la capa web y tiran directamente
contra la capa de negocio.
Componentes web: Se ejecutan en el contenedor web del servidor JEE y son servlets, páginas
web dinámicas como JSF y/o JSPs y JavaBeans. Los servlets son clases java que procesan
dinámicamente las peticiones del cliente y generan respuestas adecuadas. Los JSP es un servlet
pero más orientado a la presentación, es más sencillo para el programador. Los JSF es una
evolución de los JSP pero con una interfaz de usuario más potente ya que soporta, por ejemplo Ajax.
Por último los Javabeans son componentes de servidor que encapsulan la lógica de negocio de una
aplicación.
Componentes de la capa de datos: No son componentes de java en si,sino que son 3party. Nos
permite explotar las características de esos servicios. Para ello Java EE nos proporciona un API de
conectividad con bbdd, otro de persistencia para poder guardar información, API de transacciones,
etc.
Seguridad y Persistencia
Persistencia: Los datos y la información son clave en las aplicaciones actuales. Las organizaciones y
las aplicaciones necesitan guardar datos porque necesitan almacenar la información sobre su actividad.
Hoy en día vamos a que todo tiene que ser almacenado y todo tiene que ser recuperable para poder
explotar esa información. Cualquier aplicación hoy en día debe tener almacenada información y debe
poder recuperarla en cualquier momento. En el mundo de java existen múltiples maneras de
almacenar información, desde lo más sencillo que sería serializando una serie de datos en algún tipo de
archivo como guardarlos en formato json, xml, guardarlos en formato binario como con protocolbuffer
o incluso en el peor de los casos con la API serializable de java o en el caso más profesional con el uso de
bbdd o almacenes de datos.
Este último caso, que es el más habitual, tiene un problema, ya que cuando hablamos de bbdd, en
muchos casos nos referimos a bbdd relacionales, donde se almacenan los datos en tablas. Sin embargo
java es un lenguaje orienta a objetos y trabajar con estos dos conceptos puede tener sus pequeños
problemas ya que necesitamos algo que nos convierta entre objetos y relaciones que tenemos en
nuestra bbdd relacional.
Existen distintas formas de hacerlo, como por ejemplo con el uso de JDBC que permite especificar
consultas SQL.
Existe un mecanismo que se encarga de hacer esto por nosotros, los ORMs, que son librerías que nos
permiten convertir entre objetos y entidades relacionales. Las dos tecnologías más extendidas en este
aspecto son JPA (una API que permite almacenar de forma persistente información simplemente
etiquetando cada uno de los elementos que necesitamos recordar)e Hibernate que es uno de los
ORM más utilizados.
javax/ejb.*
javax.ejb (http://java.sun.com/j2ee/1.4/docs/api/javax/ejb/package-summary.ht
ml)
La API Enterprise JavaBeans define un conjunto de API que un contenedor de objetos distribuidos
soportará para suministrar persistencia, RPCs (usando RMI o RMI-IIOP), control de concurrencia,
transacciones y control de acceso para objetos distribuidos.
javax/naming
javax.naming (http://java.sun.com/j2ee/1.4/docs/api/javax/naming/package-summ
ary.html)
java.sql
javax/transaction.*
javax.transaction (http://java.sun.com/j2ee/1.4/docs/api/javax/transaction/pa
ckage-summary.html)
javax/xml.*
javax.xml (http://java.sun.com/j2ee/1.4/docs/api/javax/xml/package-summary.ht
ml)
javax/jms.*
javax.jms (http://java.sun.com/j2ee/1.4/docs/api/javax/jms/package-summary.ht
ml)
javax/persistence
javax.persistence (http://java.sun.com/j2ee/1.4/docs/api/javax/persistence/pa
ckage-summary.html)
Este paquete provee las clases e interfaces para gestionar la interacción entre los proveedores de
persistencia, las clases administradas y los clientes de la Java Persistence API (JPA).
Beneficios
Uno de los beneficios de Java EE es que es posible empezar con poco o ningún coste. La
implementación Java EE de Oracle Corporation puede ser descargada gratuitamente, y hay muchas
herramientas de código abierto disponibles para extender la plataforma o para simplificar el desarrollo.
Véase también
Contenedor Web
Descriptor de Despliegue
Java BluePrints
Referencias
Enlaces externos
Tutorial de J2EE en el website Java en castellano (https://web.archive.org/web/20070928063343/htt
p://www.programacion.com/java/tutorial/j2ee/)
Spartan Java (http://www.spartanjava.com/) - Artículos y tips para programación Java simple,
eficiente y robusta
OnJ2EE (http://onj2ee.blogspot.com/) - Blog en español dedicado a la plataforma J2EE. Como a las
certificaciones en esta tecnología: SCWCD, SCBCD, SCDJWS
Deployment en JEE. Conceptos básicos sobre módulos WAR y EAR y contenedor J2EE (https://we
b.archive.org/web/20131002032822/http://www.lab.inf.uc3m.es/~a0080802/RAI/deployment.html) -
Sitio web donde se explican conceptos básicos del deployment en JEE
Obtenido de «https://es.wikipedia.org/w/index.php?title=Java_EE&oldid=157575128»