Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 7

15/2/24, 10:53 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).

https://es.w ikipedia.org/w iki/Java_EE 1/7


15/2/24, 10:53 Java EE - Wikipedia, la enciclopedia libre

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.

Contenedores: Son entornos en tiempo de ejecución; es decir, un programa que se está


ejecutando y tu aplicación se monta sobre este como si fuera un plugin o el casete para una consola
de juegos. Hay varios tipos de contenedores y la agrupación de ellos forman un servidor de
aplicaciones.

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.

Estos tres conceptos permiten a Java EE definir una arquitectura de capas:

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 servidor/negocio: Proporciona los datos y persiste la información de la capa cliente y


contiene la capa de negocio. También se ejecuta en el servidor de aplicaciones.

Capa de datos: Donde se persisten los datos, por ejemplo una bbdd.

Esta arquitectura intenta independizar evitando dependencias entre capas.

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

https://es.w ikipedia.org/w iki/Java_EE 2/7


15/2/24, 10:53 Java EE - Wikipedia, la enciclopedia libre

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 negocio: Son los que implementan la lógica de negocio y se


ejecutan en la capa de negocio. Son los EJB Enterprise Java Beans. Los EJBs los hay de tres tipos,
de sesión de entidad y dirigidos por mensajes. Las tecnologías básicas de esta capa son los EJBs,
la api-Rest o las de persistencia

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.

https://es.w ikipedia.org/w iki/Java_EE 3/7


15/2/24, 10:53 Java EE - Wikipedia, la enciclopedia libre

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.

Seguridad. La seguridad es un aspecto fundamental de las aplicaciones empresariales. La seguridad


en Java EE está basada en el Servicio Java de Autentificación y Autorización (JAAS). JAAS separa el
sistema de autentificación de la aplicación Java EE mediante el uso de un API bien definida que es
implementada por el servidor de aplicaciones.

API generales estructura de control y manejo


Las API de Java EE incluyen varias tecnologías que extienden la funcionalidad de las API base de Java
SE.

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)

Los paquetes javax.naming, javax.naming.directory, javax.naming.event, javax.naming.ldap y


javax.naming.spi definen la API de Java Naming and Directory Interface (JNDI).

java.sql

Los paquetes java.sql y javax.sql definen la API de JDBC.

javax/transaction.*
javax.transaction (http://java.sun.com/j2ee/1.4/docs/api/javax/transaction/pa
ckage-summary.html)

https://es.w ikipedia.org/w iki/Java_EE 4/7


15/2/24, 10:53 Java EE - Wikipedia, la enciclopedia libre

Estos paquetes definen la Java Transaction API (JTA).

javax/xml.*
javax.xml (http://java.sun.com/j2ee/1.4/docs/api/javax/xml/package-summary.ht
ml)

Estos paquetes definen la API JAXP.

javax/jms.*
javax.jms (http://java.sun.com/j2ee/1.4/docs/api/javax/jms/package-summary.ht
ml)

Estos paquetes definen la API JMS.

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.

Ejemplos de herramientas de desarrollo Java de código abierto de terceras partes son:

NetBeans IDE, un IDE basado en Java.


La plataforma Eclipse, un IDE basado en Java.
Expand, un plugin de Eclipse, para desarrollo rápido.
Jedit, de código abierto, un IDE basado en Java.
Apache Software Foundation Apache Ant, una herramienta de construcción automática.
Apache Software Foundation Apache Maven, una herramienta de construcción automática y gestión
de dependencias.
JUnit, un framework para Pruebas de unidad automatizadas.
Apache Software Foundation Apache Tomcat, un contenedor web de Servlet/JSP.
Jetty, un servidor web y un contenedor web Servlet/JSP.
Spring, un framework para desarrollo de aplicaciones Java EE.
Struts, un framework para desarrollar aplicaciones web EE conforme al patrón Modelo Vista
Controlador.
OpenXava, un framework de código abierto para desarrollo fácil de aplicaciones de negocio J2EE.

https://es.w ikipedia.org/w iki/Java_EE 5/7


15/2/24, 10:53 Java EE - Wikipedia, la enciclopedia libre

JDeveloper, un IDE basado en Java y desarrollado por Oracle.


JBuilder (https://web.archive.org/web/20071214080118/http://www.codegear.com/products/jbuilder),
desarrollado por Borland.
JavaServer Faces, un framework para desarrollar aplicaciones web EE conforme al patrón Modelo
Vista Controlador, desarrollado por Sun.
Aries, un framework de código abierto para desarrollo rápido de aplicaciones de gestión Java EE.

Servidores de aplicaciones certificados

Servidores de Aplicaciones Java EE 5 certificados


JOnAS, un servidor de aplicaciones de código abierto de ObjectWeb.
JBoss, desarrollado inicialmente por JBoss Inc y adquirido posteriormente por Red Hat. Existe una
versión de código abierto soportada por la comunidad y otra empresarial.
Sun Java System Application Server Platform Edition 9.0, basado en GlassFish.
Oracle WebLogic Application Server 10.0 (Antes BEA Systems).
Servidor de Aplicaciones SAP NetWeaver, Java EE 5 Edition de SAP.
JEUS 6, un Servidor de aplicaciones específico de Linux de TmaxSoft.
Apache Geronimo 2.0
IBM WebSphere Application Server.
Oracle Containers for Java EE 11.
GlassFish, un servidor de aplicaciones de código abierto de Sun.
Apache OpenEJB vía Apache Geronimo.

Servidores de Aplicaciones J2EE 1.4 certificados


Geronimo, un servidor de aplicaciones de código abierto de Apache.
JOnAS, un servidor de aplicaciones de código abierto de ObjectWeb.
Servidor de Aplicaciones SAP NetWeaver, Java EE 5 Edition de SAP.
Sun Java System Web Server
Sun Java System Application Server
IBM WebSphere Application Server (WAS) de IBM.
Servidor de aplicaciones WebLogic de BEA Systems.

Servidores de Aplicaciones J2EE 1.3 certificados


Servidor de Aplicaciones JRun de Macromedia.

Véase también
Contenedor Web
Descriptor de Despliegue

https://es.w ikipedia.org/w iki/Java_EE 6/7


15/2/24, 10:53 Java EE - Wikipedia, la enciclopedia libre

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»

https://es.w ikipedia.org/w iki/Java_EE 7/7

También podría gustarte