JAVA EE 5. Arquitectura, conceptos y ejemplos.
INTRODUCCIÓN.
MODELO DE LA APLICACIÓN JEE5. El modelo de aplicación Java EE define una arquitectura para implementar servicios como lo hacen las aplicaciones multicapa, las cuales son escalables, accesibles y tienen capacidad de gestión para aplicaciones de nivel empresarial. Este modelo implementa un servicio multicapa que se divide en: la capa de negocio y la lógica de presentación que serán implementadas por el desarrollador y los servicios del sistema estándar proporcionado por la plataforma Java EE.
Aplicaciones Multicapa distribuidas.
La plataforma Java EE utiliza un modelo de aplicación distribuida multicapa para aplicaciones empresariales. La lógica de aplicación de divide en componentes según la función y los componentes de las distintas aplicaciones que integran una aplicación Java EE se instalan en máquinas diferentes dependiendo del nivel, en el entorno multinivel de Java EE al que pertenece el componente de la aplicación.
Una aplicación Java EE puede constar de 3 o 4 niveles; las aplicaciones Java multicapa se consideran en general aplicaciones de 3 niveles, ya que esta distribuida en: las maquinas clientes, el servidor Java EE y la base de datos. Nivel de Cliente: componentes que corren en la maquina cliente. Nivel Web: componentes que corren en el servidor Java EE. Capa de Negocios: componentes que corren en el servidor Java EE. Nivel EIS (Enterprise Information System): software que se ejecuta en el servidor EIS.
SEGURIDAD. La plataforma Java EE proporciona reglas estándar para el control de acceso que son definidas por el desarrollador e interpretadas cuando la aplicación se implementa en el servidor. Java EE también ofrece mecanismos estándar para inicio de sesión.
COMPONENTES JAVA EE. Una aplicación Java EE esta creada de componentes. Un componente de Java EE es una unidad autónoma de software funcional que se ensambla en una aplicación Java EE con sus clases y archivos relacionados y que se comunica con otros componentes. Las especificaciones Java EE define los siguientes componentes.
Las aplicaciones cliente y los applets son componentes que se ejecutan en el cliente. Java Servlet, JavaServer Faces y JavaServer Pages son componentes Web que se ejecutan en el servidor. Enterprise JavaBeans (EJB) son componentes de negocio que se ejecutan en el servidor. La diferencia entre los componentes de Java EE y las clase de Java estándar es que los componentes son ensamblados en una aplicación JEE y se verifica que estén bien creados y que cumplan con las especificaciones JEE. Se despliegan a la producción, donde se ejecutan y gestionan por el servidor Java EE.
CLIENTES JAVA EE. Un cliente Java EE puede ser un cliente Web o una aplicación cliente. Cliente Web. Applets. Clientes de aplicación.
CLIENTES WEB. Un cliente web se compone de 2 partes: 1. Páginas web dinámicas que contienen diversos tipos de lenguaje de marcas (HTML, XML, etc), que son generados por los componentes Web que se ejecuta en la capa Web 2. Navegador es el encargado de interpretar las paginas recibidas por el servidor.
APPLETS. Es una aplicación cliente pequeño escrito en el lenguaje de programación Java que se ejecuta en la maquina virtual Java instalada en el navegador. Es decir que los sistemas clientes necesitaran de un plug-in de java y posiblemente un archivo con políticas de seguridad para poder ejecutar con éxito el applet en el navegador web.
APLICACIÓN CLIENTE. Una aplicación cliente se ejecuta en una maquina de forma stand-alone, generalmente tiene una interfaz grafica de usuario (GUI) creadas con API Swing o AWT, pero una interfaz desde línea de comandos también es posible. Las aplicaciones cliente pueden tener acceso directamente a la capa de negocios. Sin embargo si los requisitos de la aplicación así lo justifiquen un cliente de aplicación puede abrir una conexión HTTP para establecer comunicación con un servlet que se ejecuta en la capa web.
ARQUITECTURA DE LOS COMPONENTES JAVABEANS. El servidor y el cliente pueden incluir componentes JavaBeans para administrar el flujo de datos entre una aplicación cliente o un applet y componentes que se ejecutan en el servidor JEE o entre componentes de servidor y BD. Los JavaBeans no son considerados componentes de las especificaciones JEE. JavaBeans tiene propiedades pero para acceder a ellas se necesita de los métodos get y set.
JAVA EE COMUNICACIÓN CON EL SERVIDOR.
El cliente se puede comunicar directamente con la capa de negocios que se ejecuta en el servidor JEE ó por medio de un navegador yendo a través de las paginas JSP o Servlets que se ejecutan en la capa Web dentro del servidor JEE.
COMPONENTES WEB. Los componentes Web de Java EE son Servlets ó paginas creadas con tecnología JSP y/o tecnología JavaServer Faces. Los Servlets son clases escritas con el lenguaje de programación Java que procesan peticiones y construyen peticiones dinámicamente. Las paginas JSP son documentos basados en texto que se ejecutan como servlets, pero permitir un enfoque más natural a la creación de contenido estático de la tecnología. JavaServer Faces es una tecnología de Servlets y JSP que proporciona un Framework para Interfaz de usuario en los componentes de una aplicaciones Web.
La siguiente imagen muestra como se pueden incluir JavaBeans para gestionar los datos enviados por el cliente.
COMPONENTES DE NEGOCIO. Es la lógica que resuelve o satisface las necesidades de un dominio particular de negocios como la banca, venta al por menor ó la financiación está a cargo de un enterprise bean que se ejecutan en la capa de negocio. La siguiente imagen muestra como un enterprise bean recibe los datos de un cliente y los envía al sistema de información empresarial (EIS) para su almacenamiento. Un enterprise bean también recupera datos almacenados y los envía al cliente.
SISTEMA DE INFORMACIÓN EMPRESARIAL. El Sistema de Información Empresarial (EIS) incluye software y sistemas de infraestructura de la empresa tales como la planificación de recursos empresariales (ERP), procesamiento de transacciones mainframe, sistemas de base de datos y otros sistemas de información heredados.
CONTENEDORES JAVA EE.
Normalmente, las aplicaciones de cliente delgado con múltiples niveles son difíciles de escribir porque implican muchas líneas de código complejo para manejar las transacciones y la gestión estatal, multithreading, la combinación de recursos, y otros detalles de bajo nivel de complejidad. El componente de base y de independientes de la plataforma Java EE permite la arquitectura de aplicaciones Java EE fácil de escribir, porque la lógica de negocio se organiza en componentes reutilizables. Además, el servidor Java EE proporciona servicios subyacentes en la forma de un contenedor para cada tipo de componente.
SERVICIOS DE CONTENEDORES. Los contenedores son la Interfaz entre un componente y la plataforma de bajo nivel especifica la funcionalidad que soporta el componente. Antes de que una Web, un enterprise bean ó un componente de aplicación cliente pueda ser ejecutado debe ser ensamblado en un modulo JEE y desplegado en su recipiente. El proceso de montaje consiste en especificar la configuración de contenedores para cada componente; la configuración de soporte subyacente por el servidor JEE, incluye los servicios tales como seguridad, gestión de transacciones, Java Naming and Directory Interface (JNDI) las búsquedas, y la conectividad remota.
Aspectos mas destacados sobre los servicios de un contenedor: El modelo de seguridad de Java EE permite configurar un componente Web o un enterprise bean para que los recursos del sistema sean accesibles únicamente por usuarios autorizados. El modelo de transacciones Java EE permite especificar las relaciones entre los métodos que conforman una sola transacción, de modo que todos los métodos en una sola transacción se tratan como una sola unidad. Los servicios de búsqueda JNDI proporcionar un interfaz unificado para múltiples nombres y los servicios de directorio en la empresa de manera que los componentes de aplicación puede tener acceso a estos servicios. El modelo de Java EE de conectividad remota gestiona la comunicación de bajo nivel entre los clientes y los enterprise bean. Después de que un enterprise bean se crea, un cliente llama a los métodos en él como si estuviera en la misma máquina virtual.
TIPOS DE CONTENEDORES. Servidor Java EE: La porción de tiempo de ejecución de un producto de Java EE. Un servidor Java EE proporciona contenedores EJB y Web. Enterprise JavaBeans (EJB) contenedor: Administra la ejecución de los enterprise bean para las aplicaciones Java EE. Enterprise bean y de su contenedor se ejecutan en el servidor de Java EE. Contenedor Web: Administra la ejecución de los componentes JSP y servlets para aplicaciones Java EE. Componentes Web y su contenedor se ejecutan en el servidor de Java EE. Contenedor de aplicación cliente: Administra la ejecución de los componentes de la aplicación cliente. Las aplicaciones cliente y sus contenedores se ejecutan en el cliente. Contenedor Applet: Administra la ejecución de applets. Consiste en un navegador web y Java Plug-in, se ejecutan en el cliente juntos.
WEB SERVICES.
Los servicios web son aplicaciones basadas en la web de la empresa con estándares como XML y protocolos de transporte para el intercambio de datos. La plataforma Java EE proporcional el API de XML y las herramientas necesarias para diseñar, desarrollar, probar y desplegar servicios web y los clientes que operan con otros servicios es decir los clientes que corren en plataformas diferentes, que no utilizan como plataforma base Java EE.
TECNOLOGÍAS DE UN WEB SERVICES EN JEE XML: es multi-plataforma, extensible, basado en texto estándar para representar los datos. Protocolo de transporte SOAP: las solicitudes del cliente y las respuestas de un servicio web se transmiten con un SOAP es decir mensajes a través de HTTP para permitir un intercambio completamente interoperable entre los clientes y los servicios web. SOAP es un protocolo basado en XML que sigue el modelo HTTP petición y respuesta.
Formato estándar WSDL: El Web Services Description Language (WSDL) es un formato XML estándar para describir servicios de red. La descripción incluye el nombre del servicio, la ubicación del servicio, y las maneras de comunicarse con el servicio. Descripciones del servicio WSDL se pueden almacenar en registros UDDI o publicados en la web (o ambos). Sun Java System Application Server Platform Edition 8 proporciona una herramienta para la generación de la especificación WSDL de un servicio web que utiliza las llamadas a procedimiento remoto para comunicarse con los clientes. UDDI y ebxml Formatos Estándar: Otras normas basadas en XML, como Universal Description, Discovery and Integration (UDDI) y ebxml, permiten a las empresas a publicar información en Internet sobre sus productos y servicios web, donde la
EMPAQUETANDO APLICACIONES.
Una aplicación Java EE es liberada con un archivo Enterprise Archive (EAR) y archivo Java Archive (JAR) con una extensión.ear el uso de archivos EAR y módulos permite a un numero de diferentes aplicaciones Java EE utilizando algunos de los componentes del mismo. Un archivo EAR contiene módulos de Java EE y descriptores implementados. Un descriptor implementado es un documento XML con extensión.xml que describe la configuración de la implementación de una aplicación, un módulo o un componente.
Estructura de un archivo EAR.
API DE JAVA EE 5.
TECNOLOGÍA ENTERPRISE JAVABEANS. Un componente EJB ó enterprise bean, es un conjunto de código con los campos y métodos para implementar los módulos de la lógica de negocio. Hay 2 tipos de enterprise bean: los sesion beans y los message-driven beans. En Java EE 5, beans de entidad han sido sustituidos por las entidades Java Persistence API. Una entidad representa datos persistentes almacenados en una fila de una tabla de base de datos. Si el cliente termina, o si se apaga el servidor, el administrador de persistencia se asegura de que se guardan los datos de la entidad.
JORGE ALBERTO LEONOR GONZÁLEZ. Facultad Ciencias de la Computación BUAP.