jueves, 9 de diciembre de 2010

j2ee

Java Platform, Enterprise Edition o Java EE (anteriormente conocido como Java 2 Platform, Enterprise Edition o J2EE hasta la versión 1.4), es una plataforma de programación—parte de la Plataforma Java —para desarrollar y ejecutar software de aplicaciones en Lenguaje de programación Java con arquitectura de N niveles distribuida, basándose 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 delJava Community Process, Java EE es también considerada informalmente como un estándar debido a que los suministradores deben cumplir ciertos requisitos de conformidad para declarar que sus productos son conformes a Java EEestandarizado por The Java Community Process / JCP.
Java EE incluye varias especificaciones de API, tales como JDBCRMIe-mailJMSServicios WebXML, etc y define cómo coordinarlos. Java EE también configura algunas especificaciones únicas para Java EE para componentes. Estas incluyen Enterprise JavaBeansservletsportlets (siguiendo la especificación de Portlets Java), JavaServer Pages y varias tecnologías de servicios web. Esto 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 de bajo nivel.

<!--[if !mso]> <! st1\:*{behavior:url(#ieooui) } -->

Historia

La especificación original J2EE fue desarrollada por Sun Microsystems.
Comenzando con J2EE 1.3, la especificación fue desarrollada bajo el Java Community ProcessJSR 58 especifica J2EE 1.3 y JSR 151 especifica J2EE 1.4.
El SDK de J2EE 1.3 fue distribuida inicialmente como beta en abril de 2001. La beta del SDK de J2EE 1.4 fue distribuida por Sun en diciembre de 2002.
La especificación Java EE 5 fue desarrollada bajo el JSR 244 y el lanzamiento final se hizo el 11 de mayo de 2006.

APIs generales

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

javax.ejb.*

La API Enterprise JavaBeans define un conjunto de APIs que un contenedor de objetos distribuidos soportará para suministrar persistenciaRPCs (usando RMI o RMI-IIOP), control de concurrencia, transacciones y control de acceso para objetos distribuidos.

javax.naming

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.

java.transaction.*

Estos paquetes definen la Java Transaction API (JTA).

javax.xml.*

Estos paquetes definen la API JAXP.

javax.jms.*

Estos paquetes definen la API JMS.

javax.persistence

Este paquete provee las clases e interfaces para gestionara la interacción entre los proveedores de persistencia, las clases administradas y los clientes de la Java Persistence API.

Desarrollo de bajo coste (Plataforma)

Uno de los beneficios de Java EE como plataforma es que es posible empezar con poco o ningún coste. La implementación Java EE de Sun Microsystems 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:

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 Community Edition 2.0, based on Apache Geronimo
  • Oracle Containers for Java EE 11
  • GlassFish, un servidor de aplicaciones de código abierto de Sun
  • Apache OpenEJB via Apache Geronimo

Servidores de Aplicaciones J2EE 1.4 certificados

Componentes de Aplicación J2EE

Los programadores de aplicaciones J2EE escriben componentes de aplicación J2EE. Un componente J2EE es una unidad de software funcional auto-contenida que se ensambla dentro de una aplicación J2EE y que se comunica con otros componentes de aplicación. La especificación J2EE define los siguientes componentes de aplicación:
· Componentes de Aplicación Cliente
· Componentes JavaBeans Enterprise
· Componentes Servlets y JavaServer Pages (también llamados componentes Web)
· Applets
En esta lección, crearemos una aplicación y dos componentes J2EE: un servlet y un Bean de sesión. El servlet está empaquetado con su fichero HTML en un fichero Web Archive (WAR), y las clases e interfaces del Bean de sesión están empaquetadas en un fichero JAR. Los ficheros WAR y JAR se añaden a la aplicación J2EE y se empaquetan dentro de un fichero Enterprise Archive (EAR) para probar, verificar y desplegar el entorno de producción.
Mientras estemos haciendo todos estos pasos para esta lección, realmente estaremos realizando varias funciones diferentes. Escribir el código del servlet y del Bean de sesión es una función de desarrollo, mientras que crear la aplicación J2EE y añadir los componentes J2EE a una aplicación es una función de ensamblaje. En realidad, estas funciones podrían ser realizadas por diferentes personas de diferentes compañías.

Ensamblar la Aplicación J2EE

Ensamblar una aplicación J2EE implica crear una nueva aplicación, y añadirle los componentes de aplicación. Aquí tenemos un sumario de los pasos para ensamblar, que se describen abajo con más detalle.
1. Crear una nueva aplicación J2EE (BonusApp.ear).
2. Crear un nuevo bean enterprise (CalcBean.jar).
3. Crear un nuevo componente web (Bonus.war).
4. Especificar un nombre JNDI para el bean enterprise (calcs).
5. Especificar el contexto raíz para la aplicación J2EE (BonusRoot ).

Crear la aplicación J2EE

Los componentes J2EE se ensamblan dentro de ficheros (EAR) "Enterprise Archive".
Menu File : Seleccionamos New Application .
Caja de diálogo New Application:
· Tecleamos BonusApp.ear para el Application File Name.
· Pulsamos el botón derecho del ratón en el campo Application Display Name.BonusApp aparece en el nombre.
· Pulsamos el botón Browse para abrir el selector de ficheros para seleccionar la localización donde queremos grabar el fichero EAR
Selector de Ficheros New Application:
· Localizamos el directorio donde queremos situar el fichero EAR de la aplicación.
· En este ejemplo, este directorio es /home/monicap/J2EE .
· En el campo File name, tecleamos BonusApp.ear.
· Pulsamos sobre New Application .
· Pulsamos sobre OK.
En la ventana de Local Applications ahora aparecerá "Bonusapp.ear", y en la ventana Inspector a la derecha muestyra el nombre, la localización y la información de contenidos paraBonusApp . La meta información mostrada en la ventrana contents describe el fichero JAR y la aplicación J2EE, y prorporciona información de tiempo de ejecución sobre la aplicación.

Crear el Bean de Sesión

Los beans Enterprise (tanto de entidad como de sesión) se empaquetan en un fichero JAR.
Menú File: Seleccionamos New Enterprise Bean. Arrancará el New Enterprise Bean Wizardy mostrará un diágolo de introducción que sumariza los pasos que vamos a tomar. Después de leerlos, pulsamos sobre Next .
Caja de Diálogo EJB JAR: Especificamos la siguiente información:
· Enterprise Bean will go in : BonusApp
Display name: CalcJar
Description: Un sencillo Bean de sesión que calcula un bonus y tiene un método.
· Pulsamos sobre Add. Hay dos botones en esta pantalla. No aseguramos de pulsar el segundo que está cerca de la ventana Contents.
Caja de Diálogo Add Files to .JAR: vamos al directorio J2EE. Podemos teclear el nombre del path o usar el navegador para obetenerlo. Una vez en el directorio J2EE, hacemos doble click sobrebeans para mostrar el contenido del directorio beans.
· Selecionamos Calc.class .
· Pulsamos sobre Add .
· Seleccionamos CalcHome.class .
· Pulsamos sobre Add .
· Seleccionamos CalcBean.class .
· Pulsamos sobre Add .

Verificar y Desplegar la Aplicación J2EE

Antes de desplegar la aplicación, es una buena idea ejecutar el verificador. El verificador nos mostrará errores en los componentes de la aplicación como un método no existente en el bean que el compilador no captura.
Verificar:
  • Con BonusApp seleccionado, elegimos Verifier desde el menú Tools.
  • En el diálogo que aparece, pulsamos OK. La ventana nos debería decir si no han fallado los tests.
  • Cerramos la ventana del verificador porque ya estamos listos para desplegar la aplicación.
Nota:
En la versión 1.2 podríamos obtener un error tests app.WebURI. Esto significa que la herramienta de desarrollo no puso una extensión .war al fichero WAR durante su creación. Este es un bug menor y la apliación J2EE se despliega bien sin notarlo.
Desplegar:
  • Desde el menú Tools, elegimos Deploy Application . Se mostrará una caja de diálogoDeploy BonusApp. Debemos verificar que la selección Target Server es o localhost o el nombre del servidor donde se está ejecutando el J2EE.
Nota:
No debemos seleccionar el check box Return Client Jar. La única vez que necesitamos seleccionar este check box es cuando despleguemos una aplicación solitaria para el programa cliente. Este ejemplo usa un servlet y una página HTML por eso no debemos seleccionarlo. Seleccionar este check box crea un fichero Jar con la información de despliegue necesaria para una aplicación solitaria.
  • Pulsamos Next. Nos aseguramos de que el nombre JNDI muestra calcs. Si no lo hace, lo tecleamos nosotros mismos y pulsamos la tecla Return.
  • Pulsamos Next. Nos aseguramos de que el nombre Context Root muestraBonusRoot. Si no lo hace, lo tecleamos nosotros y pulsamos la tecla Return.
  • Pulsamos Next .
  • Pulsamos Finish para empezar el despliegue. Aparecerá una caja de diálogo que mostrará el estado de la operación de despliegue.
  • Cuando esté completa, las tres barras de la izquierda estárán completamente sombreadas, como se ve en la siguiente figura. Cuando esto suceda, pulsamos OK.

Ejecutar la Aplicación J2EE

El servidor web se ejecuta por defecto en el puerto 8000. Para abrir la página bonus.htmlapuntamos nuestro navegador a http://localhost:8000/BonusRoot/bonus.html, que es donde DeployTool puso el fichero HMTL.
Nota:
Si necesitamos usar un puerto diferente porque el puerto 8000 está siendo utilizado por otra cosa, editamos el fichero web.properties en el directorio ~/J2EE/j2sdkee1.2/config y arrancamos de nuevo el servidor J2EE.
  • Rellenamos un número de seguridad social.
  • Rellenamos un multiplicador.
  • Pulsamos el botón SubmitBonusServlet procesa nuestros datos y devuelve una página HTML con el cálculo del bono.
Bonus Calculation

Soc Sec: 777777777
Multiplier: 25

Bonus Amount 2500.0
La Plataforma de Soluciones Empresariales 
La plataforma Java 2, Enterprise Edition (J2EE) define el estándar para el desarrollo de aplicaciones empresariales de varios niveles. La plataforma J2EE simplifica las aplicaciones empresariales basándolas en componentes modulares estándar, proporcionando un conjunto completo de servicios a esos componentes, y manejando muchos detalles del comportamiento de la aplicación automáticamente, sin necesidad de programación compleja.
La plataforma J2EE se aprovecha de las muchas características de la plataforma Java 2, Standard Edition (J2SE), como "Write Once, Run Anywhere" portabilidad, JDBC API para acceder a la base de datos, la tecnología CORBA para la interacción con los recursos existentes de la empresa, y un modelo de seguridad que protege los datos incluso en aplicaciones de Internet. Partiendo de esta base, la plataforma Java 2, Enterprise Edition añade soporte completo para componentes de Enterprise JavaBeans, Servlets de Java API, JavaServer Pages y la tecnología XML. El estándar J2EE incluye las especificaciones completas y las pruebas de cumplimiento para garantizar la portabilidad de las aplicaciones a través de la amplia gama de sistemas empresariales existentes capaces de apoyar a la plataforma J2EE. Además, la especificación J2EE ahora garantiza la interoperabilidad de servicios Web mediante el apoyo a la WS-I Basic Profile.
Middleware facilitando
las empresas de hoy en día obtener una ventaja competitiva al rápido desarrollo y despliegue de aplicaciones personalizadas que ofrecen servicios únicos de negocios. Si son aplicaciones internas de productividad de los empleados, o aplicaciones de Internet para clientes especializados o servicios de proveedores, el rápido desarrollo y despliegue es clave para el éxito.
Portabilidad y escalabilidad son también importantes para la viabilidad a largo plazo. Las aplicaciones empresariales debe escalar desde pequeños prototipos de trabajo y casos de prueba para completar 24 x 7, los servicios en toda la empresa, con acceso por decenas, cientos o incluso miles de clientes simultáneamente.
Sin embargo, las aplicaciones de varios niveles son difíciles de arquitecto. Requieren que reúne a una variedad de habilidades y recursos, los datos de legado y el código heredado. En entornos heterogéneos de hoy en día, las aplicaciones empresariales tienen que integrar los servicios de una variedad de proveedores con una gran diversidad de modelos de aplicación y otros estándares.experiencia en la industria muestra que la integración de estos recursos puede tomar hasta 50% del tiempo de desarrollo de aplicaciones.
Como una norma única que puede sentarse en la parte superior de una amplia gama de sistemas empresariales existentes - los sistemas de gestión de bases de datos, monitores de transacción, nombres y servicios de directorio, y más - la plataforma J2EE rompe las barreras inherentes entre los sistemas empresariales actuales. El estándar J2EE unificado envuelve y abraza a los recursos existentes necesarios por las aplicaciones de varios niveles con un modelo unificado, la aplicación basada en componentes. Esto permite a la próxima generación de componentes, herramientas, sistemas y aplicaciones para la solución de las necesidades estratégicas de la empresa.
La especificación J2EE también es compatible con las nuevas tecnologías de servicios Web mediante la inclusión de la WS-I Basic Profile. WS-I Basic cumplimiento Perfil significa que los desarrolladores pueden construir aplicaciones en la plataforma J2EE como servicios Web que interactúan con los servicios Web desde entornos no compatibles con J2EE.
Con simplicidad, portabilidad, escalabilidad e integración legado, la plataforma J2EE es la plataforma para las soluciones empresariales.
Aunque Sun Microsystems inventó el lenguaje de programación Java y fue pionera en su uso para los servicios de la empresa, el estándar J2EE representa una colaboración entre los líderes de todo el ámbito de software para empresas. Nuestros socios incluyen sistema operativo y base de datos de proveedores de gestión de sistemas, proveedores de middleware y herramientas y aplicaciones verticales de mercado y los desarrolladores de componentes. Trabajando con estos socios, Sun ha definido una plataforma robusta y flexible que se puede implementar en la gran variedad de sistemas empresariales existentes actualmente disponibles, y que apoya la gama de aplicaciones que las organizaciones necesitan para mantener sus empresas competitivas.
El éxito de la plataforma J2EE en la empresa sigue en aumento a medida que más de dos tercios de los gerentes de las empresas de desarrollo de software utilizan la plataforma J2EE para desarrollar y desplegar sus aplicaciones. Con la adición de servicios Web interoperables y otras nuevas características en la versión 1.4, la plataforma J2EE continuará siendo el estándar de la industria para soluciones empresariales para los próximos años.