Programación en castellano
Inicio > Tutoriales > J2EE > Construir Aplicaciones EJB con JBoss, Lomboz y Eclipse
-Tutoriales

Construir Aplicaciones EJB con JBoss, Lomboz y Eclipse


Introducción a la Tecnología y Conceptos J2EE

Java 2 Enterprise Edition (J2EE) es una arquitectura multicapa para implementar aplicaciones de tipo empresarial y aplicaciones basadas en la Web. Esta tecnología soporta una gran variedad de tipos de aplicaciones desde aplicaciones Web de gran escala a pequeñas aplicaciones cliente-servidor. El objetivo principal de la tecnología J2EE es crear un simple modelo de desarrollo para aplicaciones empresariales utilizando componentes basados en el modelo de aplicación. En este modelo dichos componentes utilizan servicios proporcionados por el contenedor, que de otro modo tendrían que estar incorporados en el código de la aplicación. Observa que esto podría no ser lo ideal para todos los escenarios: por ejemplo, una pequeña aplicación se cubriría mejor utilizando una solución de la tecnología Java de peso ligero (por ejemplo Servlets, JSPs, etc.).

. Componentes J2EE:

Las aplicaciones J2EE están compuestas de diferentes componentes. Un componente J2EE es una unidad de software funcional auto-contenido que se ensambla dentro de una aplicación J2EE con sus clases de ayuda y ficheros y que se comunica con otros componentes de la aplicación. La especificiación J2EE define los siguientes componentes J2EE:

  • Las Aplicaciones CLientes y los Applets son componentes que se ejecutan en el lado del cliente.
  • Los componentes Java Servlet la tecnología JavaServer Pages son componentes Web que se ejecutan en el lado del servidor.
  • Los Enterprise JavaBeans (beans enterprise) son componentes de negocio que se ejecutan en el servidor de aplicacion.

Todos esos componentes se ensamblan en una aplicación J2EE, se verifica que están bien formados y que cumplen la especificación J2EE, y se despliegan en el entorno de producción, donde se ejecutan y son controlados por el servidor de aplicaciones J2EE.

Además de estos componentes principales, J2EE incluye servicios estándar y tecnologías de soporte como:

  • Java Database Connectivity (JDBC) tecnología que proporciona acceso a sistemas de bases de datos relacionales.
  • Java Transaction API (JTA) o Java Transaction Service (JTS) proporciona soporte para transaciones a los componentes J2EE.
  • Java Messaging Service (JMS) para comunicación asíncrona entre componentes J2EE.
  • Java Naming y Directory Interface (JNDI) proporcionan accesos a nombres y directorios.
Nota:
Todos los componentes J2EE están escritos en lenguaje Java

. Clientes J2EE

Normalmente hay dos tipos de clientes J2EE: clientes Web y aplicaciones cliente como vimos en la figura anterior.

Un cliente Web consta de dos partes, páginas Web dinámicas que contienen distintos tipos de lenguajes de marcas (HTML, XML, y otros), que son generados por los componentes Web que se ejecutan en la capa Web, y un navegador Web, que dibuja las páginas recibidas desde el servidor. Otra categoría de clientes web son los conocidos como clientes thin (pequeños). Este tipo de pequeños clientes normalmente no hacen cosas como consultas a bases de datos o ejecutar complejas reglas de negocio. Cuando se utilizan clientes pequeños, las operaciones de peso pesado como estás las manejan los beans enterprise que se ejecutan en el servidor J2EE donde pueden tratar con la seguridad, los servicios y el rendimiento de las tecnologías del lado del servidor J2EE.

Una página Web recibida desde la capa del cliente puede incluir un applet embebido. Un appelt es una pequeña aplicación cliente escrita en Java que se ejecuta en la máquina virtual Java instalada en el navegador Web. Sin embargo, los sistemas cliente necesitarán el Plug-in Java y posiblemente un fichero de política de seguridad para poder ejecutar con éxito los applets en el navegador Web. Normalmente los componentes Web son el API preferido para crear programas clientes Web porque no necesitan plug-ins ni ficheros de política de seguridad en los sistemas clientes. Además esto permite un diseño más claro y modular de la aplicación porque proporciona un significado a la separación de la lógica de la aplicación del diseño de la página Web.

Una aplicación cliente se ejecuta sobre una máquina cliente y proporciona una forma para que los usuarios puedan manejar tareas que requieren un interface de usuario más rico que el que puede proporcionar un lenguaje de marcas. Normalmente tienen un interface gráfico de usuario (GUI) creado con los APIs Swing o Abstract Window Toolkit (AWT). Las aplicaciones cliente acceden directamente a los beans enterprise que se ejecutan en la capa de negocio. Pero si se necesita un cliente Web pueden abrir una conexión HTTP para establecer comunicación con un servlet que se ejecute en la capa Web.

Nota:
Si se requiere, se puede utilizar un interface de línea de comandos.

. Componentes Web:

Los componentes Web de J2EE pueden ser servlets o páginas JSP. Los servlets son clases Java que procesan dinámicamente las peticiones y construyen las respuestas. Las páginas JSP son documentos basados-en-texto que se ejecutan como servlets pero permiten una aproximación más natural para crear contenido estático. Las páginas HTML y los applets se juntan con los componentes Web durante el ensamble de la aplicación, pero la especificación J2EE no los considera como componentes J2EE. De forma similar, las clases de utilidades del lado del servidor también se unen a los componentes Web como páginas HTML, pero tampoco se consideran como componentes J2EE. Abajo podemos ver la comunicación entre componentes Web:

La capa Web podría incluir componentes JavaBeans para manejar la entrar del usuario y enviar esta entrada a los beans enterprise que se ejecutan en la capa de negocio para su procesamiento según hemos visto en la figura anterior.

. Componentes de Negocio:

El código de negocio, que es la lógica que resuelve o cumple las necesidades de un negocio particular, como la banca, la venta, o la financiación, se maneja mediante beans enterprise que se ejecutan en la capa de negocio.

La figura de arriba muestra la comunicación entre los componentes de negocio, donde un bean enterprise recibe datos de los programas clientes, los procesa (si es necesario), y los envía a la capa del sistema de información empresarial para su almacenamiento. Un bean enteprise también recupera datos desde el almacenamiento, los procesa (si es necesario), y los envía de vuelta al programa cliente.

Hay tres tipos de beans enterprise: beans de sesión (con o sin estado), beans de entidad (manejados por el bean o por el contenedor) y beans dirigidos a mensaje. Un bean de sesión representa una conversación temporal con un cliente. Cuando el cliente finaliza su ejecución, el bean de sesión y sus datos desaparecen. Por el contrario, un bean de entidad representa datos persistentes almacenados en una fila de una tabla/relación de una base de datos. Si el cliente se termina o si se apaga el servidor, los servicios subyacentes se aseguran de grabar el bean. Un bean dirigido-a-mensaje combina las características de un bean de sesión y de un oyente de Java Message Service (JMS), permitiendo que un componente de negocio reciba asíncronamente mensajes JMS.

Nota:
La especificación J2EE no considera como componentes J2EE a los Java Beans ya que son diferentes de los Beans Enterprise. La arquitectura de componentes JavaBeans se pueden utilizar tanto en la capa de cliente como de servidor para manejar la comunicación entre una aplicación cliente o un applet y los componentes que se ejecutan en el servidor J2EE o entre los componentes del servidor y una base de datos, mientras que los componentes Enterprise JavaBeans sólo se utilizan en la capa de negocio como parte de una capa de servidor. Los JavaBeans tienen variables de ejemplar y métodos accesores y mutadores para acceder a las propiedades del bean o digamos, acceso a los datos en las variables de ejemplar lo que simplifica el diseño y la implementación de los componentes JavaBeans.

. La Capa del Sistema de Información Empresarial:

La capa del sistema de información empresarial maneja el software del sistema de información empresarial e incluye la infraestructura del sistema así como los planings de recursos (ERP), procesamieno de transaciones a mainframes, sistemas de bases de datos y otros sistemas de información legales (personalizados). Los componentes de aplicaciones J2EE podrían necesitar acceder a estos sistemas de información empresariales para conectividad con sus bases de datos.

. Contenedores J2EE:

Los contenedores J2EE proporcionan acceso a los servicios subyancentes del entorno del Servidor J2EE mediante contenedores para diferentes tipos de componentes. Tradicionalmente, los desarrolladores de aplicaciones tenían que escribir código para el manejo de transaciones, manejo del estado, multi-threads, almacenamiento de recursos, etc. Ahora el contenedor J2EE proporciona estos servicios permitiendo que te puedas concentrar en resolver los problemas de negocio.

Los contenedores son el interface entre un componente y la funcionalidad de bajo nivel específica-de-la-plataforma que soporta el componente. Por ejemplo, antes de poder ejecutar un componente Web, un bean enterprise o un componente de una aplicación cliente, debe ensamblarse dentro de una aplicación J2EE y desplegarse dentro de su contenedor.

El proceso de ensamble implica especificar las configuraciones del servidor para cada componente de la aplicación J2EE y para la propia aplicación J2EE. Estas configuraciones personalizan el soporte subyacente proporcionado por el servidor J2EE, que incluye servicios como JNI, JNDI, seguridad, control de transaciones, etc.

El servidor J2EE proporciona contenedores para Enterprise JavaBeans (EJB) y para componentes Web. El contenedor EJB maneja la ejecución de los beans enterprise de las aplicaciones J2EE, mientras que el contenedor Web maneja la ejecución de las páginas JSP y los componentes servlets de la aplicación J2EE. Otros contenedores distintos a estos son el contenedor de aplicaciones clientes y el contenedor de applets, que no son parte del servidor J2EE porque residen en la máquina del cliente:

Una contenedor de aplicaciones cliente maneja la ejecución de los componentes de la aplicación cliente mientras que un contenedor de Applets maneja la ejecución de los applets. Normalmente están en el JRE (Java Runtime Environment) y el navegador Web compatible con Java, respectivamente.

. Empaquetado:

Para poder desplegar una aplicación J2EE, después de desarrollar los diferentes componentes, se empaqueta en ficheros de archivo especiales que contienen los ficheros de las clases relevantes y los descriptores de despliegue XML. Estos descriptores de despliegue contienen información específica de capa componente empaquetado y son un mecanismo para configurar el comportamiento de la aplicación en el momento del ensamble o del despliegue. Estos se empaquetan en diferentes tipos de archivos según los distintos componentes.

Los componentes Web se empaquetan en un archivo Web (.war) que contiene los servlets, las páginas JSP y los componentes estáticos como las páginas HTML y las imágenes. El fichero .war contiene clases y ficheros utilizados en la capa Web junto con un descriptor de despliegue de componentes Web.

Los componentes de negocio se empaquetan en un archio Java (.jar) que contiene los descriptores de despliegue EJB, los ficheros del interface remoto y del objeto junto con ficheros de ayuda requeridos por el componente EJB.

Los ficheros de clases del lado del cliente y los descriptores de despliegue se empaquetan en un fichero Java (.jar) que crea la aplicación cliente.

Una aplicación J2EE se empaqueta en un archivo enterprise (.ear) que contiene toda la aplicación junto con el descritor de despliegue que proporciona información sobre la aplicación y sus componentes:

. Roles de la Plataforma J2EE:

La construcción de los diferentes componentes de una aplicación J2EE implica a varios roles en el desarrollo, despliegue y control de una aplicación empresarial.

  • El proveedor de componentes de aplicación desarolla componentes J2EE reutilizables, que pueden ser componentes Web, beans enterprise, applets, o aplicaciones clientes para utilizar en aplicaciones J2EE.
  • El ensamblador de aplicaciones toma todos los bloques de los diferentes proveedores de componentes y los combina en aplicaciones J2EE.
  • El desarrollador es el responsable de la instalación/despliegue de los componentes en un entorno o servidor J2EE.
  • El administrador del sistema es el responsable de configurar y administrar los sistemas informáticos en una empresa.
  • El proveedor de herramientas es un vendedor utilizado para desplegar, empaquetar y desplegar aplicaciones J2EE.
Nota:
Todos los roles mencionados se pueden asiginar a personas u organizaciones.

. La Arquitectura Distribuida en J2EE:

Todas las aplicaciones J2EE implementan una arquitectura distribuida. En ésta un objeto está asociado con un nombre, donde los nombres los proporciona un servicio de nombres, notificando a distintos componentes y resolviendo las referencias de clientes para estos componentes de servicio como se muestra en la siguiente figura:

Como resultado de esto, las referencias de objetos se obtienen buscando un objeto por su nombre notificado, una vez encontrado, se obtiene la referencia, y se llevan a cabo las operaciones necesarias sobre ese objeto utilizando los servicios del host. Un objeto remoto notifica su disponibilidad en el servicio de nombres utilizando un nombre lógico y el servicio de nombres lo traduce a la localización física del objeto en el entorno J2EE. Una vez que la petición del cliente obtiene una referencia a un componente remoto, puede enviarle peticiones. El sistema de ejecución maneja la comunicación distribuida entre objetos remotos, lo que incluye la serialización y des-serialización de parámetros.

Nota:
Algunos de los sistemas de nombres utilizados en los sistemas distribuidos son RMI (sólo para implementaciones Java), CORBA, LDAP, DNS, NIS.
El servidor de aplicaciones JBOSS utiliza RMI como su servicio de nombres.

. La Arquitectura Java Naming Directory Interface (JNDI):

J2EE utiliza el API JNDI para acceder genéricamente a servicios de nombrado y directorio utilizando la tecnología Java. El API JNDI reside entre la aplicación y el servicio de nombres y hace que el servicio de nombres subyacente sea transparente para los componentes de la aplicación:

Un cliente puede buscar referencias a componentes EJB u otros recursos en un servicio de nombres como el mencionado arriba. El código del cliente no se modifica, sin importar el servicio de nombres que se esté utilizando o en qué tecnología esté basado, y esto no crea ninguna diferencía en el modo en que los clientes localizan los objetos remotos mediante el API JNDI.

 
Patrocinados
 

Copyright © 1999-2007 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network

red internet: musica mp3 | logos y melodias | hospedaje web linux | registro de dominios | servidores dedicados
más internet: comprar | recursos gratis | posicionamiento en buscadores | tienda virtual | gifs animados