Sun JavaTM Enterprise System (Java ES) es un conjunto de componentes de software que proporciona los servicios necesarios para poder utilizar potentes aplicaciones de empresa distribuidas en un entorno de red o de Internet. Estas aplicaciones reciben el nombre de aplicaciones de empresas distribuidas. Esta guía se centra en los componentes de software de Java ES y los servicios que proporcionan.
En este capítulo se ofrece una introducción a Java Enterprise System y se describen las tareas que conlleva la utilización del sistema. Este capítulo contiene las siguientes secciones:
En la actualidad, los requisitos empresariales demandan soluciones de software distribuidas en la red o en entornos de Internet y que tengan altos niveles de rendimiento, disponibilidad, seguridad, escalabilidad y facilidad de mantenimiento.
Java ES proporciona los servicios de infraestructura necesarios para estas aplicaciones de empresa distribuidas que, por lo general, presentan las siguientes características:
Distribuida. La aplicación consiste en componentes de software que interactúan implementados en un entorno de red que puede incluir sitios remotos geográficamente. Estos componentes distribuidos que se ejecutan en varios equipos del entorno funcionan juntos para proporcionar funciones de negocio específicas para los usuarios finales y otras aplicaciones de negocio.
Potencia empresarial. El ámbito de la aplicación y la escala deben satisfacer las necesidades de un entorno de producción o de un proveedor de servicios de Internet. La aplicación normalmente abarca toda la empresa e integra varios departamentos, operaciones y procesos en un único sistema de software. La aplicación debe cumplir requisitos de alta calidad de servicio relativos al rendimiento, la disponibilidad, la seguridad, la escalabilidad y la facilidad de mantenimiento.
Las aplicaciones de empresa distribuidas requieren un conjunto subyacente de servicios de infraestructura que permita a los componentes distribuidos comunicarse entre ellos, coordinar el trabajo, implementar un acceso seguro, etc. Estos servicios de infraestructura son, a su vez, compatibles con un entorno de hardware de equipos y vínculos de red. Este entorno de hardware incluye arquitecturas de hardware SPARC® y x86 (Intel y AMD).
En la siguiente figura se muestra el esquema general. En su mayor parte, Java ES proporciona la capa de servicios de infraestructura distribuidos que se muestra en la figura.
Entre los servicios que proporciona Java ES, se incluyen los siguientes:
Servicios de portal. Estos servicios permiten a los empleados, los teletrabajadores, las personas que trabajan con la información, los socios empresariales, los proveedores y los clientes acceder a recursos corporativos desde cualquier lugar fuera de la red corporativa. Estos servicios proporcionan funciones de acceso en cualquier lugar y en cualquier momento a las comunidades de usuarios, al tiempo que aportan características de integración, adición, seguridad, acceso móvil y búsqueda personalizadas.
Servicios de comunicación y colaboración. Estos servicios permiten el intercambio seguro de información entre varias comunidades de usuarios. Entre las funciones específicas, se incluyen las siguientes: mensajería, colaboración en tiempo real (como mensajería y conferencia) y programación de calendario en el contexto del entorno de negocios del usuario.
En esta guía, se hace referencia a los componentes de Sun Java Communications Suite que dependen de los componentes de Java ES y se utilizan en las arquitecturas de implementación de Java ES. Los componentes de comunicación y colaboración no se incluyen en Java ES.
Identidad de red y servicios de seguridad. Estos servicios mejoran la seguridad y la protección de los activos clave de información corporativa, garantizando la aplicación de directivas de control de acceso adecuadas en todas las comunidades, aplicaciones y servicios de forma global. Estos servicios funcionan con un depósito para almacenar y administrar perfiles de identidad, privilegios de acceso e información de recursos de aplicaciones y de redes.
Servicios de aplicación y contenedor web. Estos servicios permiten que los componentes distribuidos se comuniquen entre sí en el tiempo de ejecución y que sean compatibles con el desarrollo, la implementación y la administración de aplicaciones para una amplia gama de servidores, clientes y dispositivos. Estos servicios se basan en la tecnología de J2EE.
Java ES también proporciona servicios que mejoran la disponibilidad, la escalabilidad, la facilidad de mantenimiento y otras cualidades de las aplicaciones o del sistema. Entre las funciones de calidad del servicio proporcionadas por Java ES, se incluyen las siguientes:
Servicios de disponibilidad. Estos servicios proporcionan una disponibilidad prácticamente continua, también para los componentes de aplicación y para los componentes de infraestructura que los respaldan.
Servicios de acceso. Estos servicios proporcionan acceso por Internet o basado en navegador a los servicios de Java ES.
Servicios de supervisión. Estos servicios proporcionan información en tiempo real acerca de los componentes de Java ES.
Puede implementar uno o varios servicios de Java ES; cada uno de ellos puede incluir varios componentes de Java ES.
Java ES es una integración de distintos productos de software y componentes en un único sistema de software. Una serie de funciones en el nivel del sistema facilitan esta integración, entre las que se incluyen:
Todos los componentes están sincronizados en un conjunto común de bibliotecas compartidas.
Todos los componentes de Java ES se instalan usando un único instalador.
Todos los componentes de Java ES pueden compartir una identidad de usuario integrada y un sistema de administración de la seguridad.
Todos los componentes de Java ES tienen una estructura de supervisión común.
Estas funciones se describen en los siguientes capítulos de esta guía. El objetivo de esta sección es presentar los componentes integrados en Java ES. Estos componentes del sistema se pueden agrupar en tres categorías principales, tal y como se muestra en la siguiente figura:
Los componentes proporcionan los siguientes servicios, como se indica a continuación:
Componentes de servicios del sistema. Estos componentes proporcionan los servicios de infraestructura principales de Java ES que admiten el uso de aplicaciones de empresa distribuidas.
Componentes de calidad del servicio. Estas calidades mejoran la disponibilidad, la seguridad, la escalabilidad y la facilidad de mantenimiento de los componentes de los servicios del sistema y los componentes de aplicaciones distribuidas.
Componentes compartidos. Estos componentes proporcionan el entorno en el que se ejecutan los componentes de los servicios del sistema y de calidad del servicio.
Para obtener una lista de los componentes de Java ES, consulte el Apéndice A, Componentes de Java ES.
Una serie de componentes de Java ES proporcionan los servicios principales que dan respaldo a las soluciones de software distribuidas. Entre estos servicios del sistema se incluyen los servicios de portal, identidad y seguridad, contenedor web, aplicaciones de J2EE y persistencia.
Los componentes de servicios del sistema que proporcionan estos servicios distribuidos y los servicios que éstos proporcionan se muestran en orden alfabético y se describen brevemente en la siguiente tabla. Cada componente de servicios del sistema es un proceso de servidor con varios subprocesos que admite el uso de una gran cantidad de clientes. Para obtener más información sobre cada componente, consulte Componentes de servicios del sistema.
Tabla 1–1 Componentes de los servicios del sistema de Java ES
Además de los componentes de servicios del sistema que se muestran en la Tabla 1–1, Java ES incluye una serie de componentes que se usan para mejorar la calidad de los servicios proporcionados por los componentes de servicios del sistema. Los componentes de calidad del servicio también pueden mejorar los servicios de aplicaciones desarrollados de forma personalizada. Los componentes de servicio de calidad se pueden clasificar en las siguientes categorías:
Componentes de disponibilidad
Componentes de acceso
Componentes de supervisión
Los componentes de disponibilidad ofrecen un tiempo de actividad prácticamente continuo para los componentes de los servicios del sistema y los servicios de aplicaciones personalizadas. Los componentes de disponibilidad incluidos en Java ES y los servicios que proporcionan se muestran en la siguiente tabla. Para obtener más información sobre cada componente, consulte Componentes de disponibilidad.
Tabla 1–2 Componentes de disponibilidad de Java ES
Los componentes de acceso proporcionan acceso cliente a los servicios del sistema, a menudo un acceso seguro desde ubicaciones de Internet fuera de un servidor de seguridad de la empresa. Además de dicho acceso, también ofrecen una función de enrutamiento y almacenamiento en la caché. Los componentes de acceso incluidos en Java ES y los servicios que proporcionan se muestran en la siguiente tabla. Para obtener más información sobre cada componente, consulte Componentes de acceso.
Tabla 1–3 Componentes de acceso de Java ES
Java ES incluye una función de supervisión nueva que proporciona el estado del sistema en tiempo real y realiza trabajos de supervisión que se pueden personalizar. El componente de producto Sun Java System Monitoring Console, compatible con el componente compartido Sun Java System Monitoring Framework, implementa la supervisión. Para obtener más información, consulte Componentes de supervisión.
Java ES incluye varias bibliotecas compartidas instaladas localmente de las que dependen muchos componentes de servicios del sistema y muchos componentes de calidad del servicio. Los componentes compartidos de Java ES proporcionan servicios locales para los componentes de productos de Java ES que se ejecuten en el mismo equipo host.
Los componentes compartidos se utilizan a menudo para proporcionar portabilidad entre los distintos sistemas operativos. Entre los ejemplos de componentes compartidos de Java ES, se incluyen: Java 2 Platform, Standard Edition (J2SE), Netscape Portable Runtime (NSPR), Network Security Services (NSS), Java Security Services for Java (JSS), etc. Para ver la lista completa, consulte Componentes compartidos.
Los componentes compartidos se instalan automáticamente con el instalador de Java ES, en función de los componentes de los servicios del sistema y de los componentes de calidad del servicio que se instalen.
Java ES está disponible como una única distribución de software de infraestraestructura punto a punto y como distribuciones de conjuntos individuales destinadas a satisfacer las necesidades empresariales vitales. Java ES incluye todos los componentes de Java ES, mientras que los conjuntos de Sun Java System incluyen subgrupos de componentes seleccionados para satisfacer determinadas necesidades empresariales. Los programas de instalación y desinstalación de Java ES se incluyen en las distribuciones de conjuntos, pero se han reducido para que sólo administren los componentes del conjunto. Todos los componentes compartidos se incluyen en todas las distribuciones de conjuntos.
El contenido de los conjuntos individuales y de los requisitos empresariales que deben satisfacer se muestra en la siguiente tabla.
Tabla 1–4 Componentes de los conjuntos de Sun Java
La creación de soluciones empresariales basadas en el software de Java ES requiere una serie de tareas estándar. Estas tareas varían en su ámbito y dificultad en función del punto de partida que se use para la adopción de Java ES y de la naturaleza de la solución que desee crear e implementar.
En esta sección, se describen dos aspectos del trabajo con Java ES: el ciclo de vida de las soluciones de Java ES y los distintos escenarios de adopción generalmente implicados.
Las tareas necesarias para crear soluciones empresariales basadas en el software de Java ES se pueden dividir en varias fases, tal y como se muestra en la siguiente figura. La ilustración también muestra la categoría del usuario de Java ES que normalmente realiza las distintas tareas.
Las etapas del ciclo de vida que se muestran en la figura anterior se pueden dividir en los siguientes grupos generales:
Etapa previa a la implementación. En estas etapas, la necesidad empresarial se convierte en un escenario de implementación, es decir, una arquitectura lógica y un conjunto de requisitos de calidad del servicio. El escenario de implementación sirve como especificación para el diseño de la arquitectura de implementación.
Implementación. En estas etapas, el escenario de implementación se convierte en una arquitectura de implementación. Esta arquitectura se puede utilizar como la base para la aprobación y la elaboración del presupuesto del proyecto. La arquitectura de implementación también es la base de la especificación de implementación que proporciona los detalles necesarios para implementar (crear, probar y desplegar) una solución de software en un entorno de producción.
Etapa posterior a la implementación. En esta fase de operaciones, una solución implementada se ejecuta en condiciones de producción y se supervisa y optimiza para obtener el mejor rendimiento. La solución implementada también se actualiza para que incluya nuevas funciones, según sea necesario.
Las tareas de esta etapa del ciclo de vida se muestran en la Figura 1–3 y se describen detalladamente en el Capítulo 4, Ciclo de vida de las soluciones de Java ES.
La Figura 1–3 muestra los usuarios de Java ES que realizan normalmente las tareas de las distintas etapas del ciclo de vida. La siguiente tabla describe las capacidades e información de cada categoría de usuario.
Tabla 1–5 Categorías de usuarios para las tareas del ciclo de vida de Java ES
Las necesidades empresariales que impulsan la adopción de Java ES varían significativamente. Sin embargo, los objetivos generales para prácticamente todas las implementaciones de Java ES se ajustan a uno de los siguientes escenarios de adopción:
Sistema nuevo. No existe ningún sistema de software y el usuario implementa Java ES para que se pueda usar una nueva solución empresarial.
Mejora. Se parte de una infraestructura de TI existente en la que se reemplazan una, varias o todas las partes del sistema por el software Java ES. Normalmente se sustituyen los sistemas o subsistemas porque son demasiado complicados, presentan demasiadas limitaciones o son demasiado costosos de mantener. Por ejemplo, puede requerir una mayor seguridad, una mayor disponibilidad, una mayor escalabilidad, más flexibilidad, menor complejidad, capacidades adicionales (como el inicio de sesión único) o un mejor uso de los recursos de TI.
Ampliación. Se parte de una infraestructura de TI existente en la que se implementa el software de Java ES que hasta ahora no formaba parte del sistema. Normalmente, se amplía un sistema de software de esta manera porque es necesario satisfacer nuevas necesidades empresariales. Es posible que se necesiten nuevas capacidades funcionales, como una adición personalizada de los servicios existentes mediante un portal de Java ES o funciones de autenticación y autorización de Java para los servicios existentes.
Actualización. Se parte de una infraestructura de TI que cuenta con una versión anterior de Java ES o con productos de Sun de versiones anteriores a las de Java ES. El usuario actualiza a la versión más actual de los componentes de Java ES.
Cada escenario de adopción cuenta con sus propios retos y consideraciones. Sin embargo, en función del escenario de adopción, es posible que varíen los problemas que deberá solucionar y los recursos en los que necesitará invertir en las distintas etapas del ciclo de vida mostradas en la Figura 1–3.
Las siguientes consideraciones se aplican en diversos grados a los escenarios de adopción:
Migración. La mejora o la actualización de una infraestructura existente con un software nuevo requiere la migración de los datos desde el sistema existente hasta el sistema nuevo. Los datos pueden ser información de configuración, de usuario o de aplicación. También tendrá que migrar la lógica empresarial o de presentación debido a las interfaces de programación nuevas.
Integración. La adición de nuevo software a un sistema existente o la sustitución de subsistemas de software requieren a menudo la integración de los nuevos componentes de software con los subsistemas restantes. La integración puede implicar el desarrollo de nuevas capas de interfaces utilizando conectores J2EE o adaptadores de recursos, la reconfiguración de los componentes existentes y la implementación de esquemas de transformación de datos.
Formación. Casi todos los cambios que se realicen en la infraestructura implican cambios en los procedimientos de TI y en los conjuntos de habilidades. El departamento de TI debe tener el tiempo suficiente para adquirir los nuevos conocimientos o transferir los antiguos para poder utilizar las nuevas tecnologías de Java ES.
Hardware. Al sustituir o mejorar un sistema o subsistema existentes, las restricciones del negocio pueden exigir que se reutilice hardware existente. En función del escenario de adopción, los recursos de hardware pueden convertirse en un factor importante.
La siguiente tabla resume la naturaleza de las consideraciones que se aplican a cada uno de los escenarios de adopción de Java ES.
Tabla 1–6 Consideraciones sobre los escenarios de adopción de Java ES
En esta sección, se explican los términos técnicos clave empleados en este capítulo, con especial atención al uso de estos términos en el contexto de Java ES.
Un motivo general para implementar el software de Java ES, que describe el sistema de software desde el que se parte y el objetivo que se desea conseguir. Existen cuatro escenarios de adopción básicos de Java ES: sistema nuevo, sustitución, ampliación y actualización.
Unidades lógicas de software a partir de las cuales se crean las aplicaciones distribuidas. Un componente puede ser uno de los componentes del sistema incluidos en Java ES o también un componente de aplicación que se desarrolle de forma personalizada. Normalmente, un componente de aplicación se ajusta a un modelo de componente distribuido (como CORBA o la plataforma J2EE) y desempeña una función informática específica. Estos componentes, ya sea de forma individual o combinados, proporcionan servicios de negocio y se pueden encapsular como servicios web.
Una aplicación cuya lógica abarca varios entornos de red o de Internet (el aspecto distribuido), y cuyo ámbito y escala responden a las necesidades de un entorno de producción o de un proveedor de servicios (el aspecto empresarial).
Una persona que usa una aplicación distribuida, a menudo, a través de una interfaz gráfica de usuario como, por ejemplo, un navegador de Internet o una GUI de un dispositivo móvil. El número de usuarios finales simultáneos que admite una aplicación es un factor importante de la arquitectura de implementación de la aplicación.
Una función de software realizada para uno o varios clientes. Esta función podría ser de muy bajo nivel, como la administración de memoria, o de alto nivel, como el servicio de negocios de comprobación de crédito. Un servicio de alto nivel puede estar formado por una familia de servicios individuales. Los servicios pueden ser locales (disponibles para clientes locales) o distribuidos (disponibles para clientes remotos).
Los componentes de servicios del sistema de Java ES, que proporcionan los principales servicios de infraestructura de Java ES y los componentes de calidad del servicio de Java ES, que mejoran los servicios del sistema. Los componentes de productos se pueden seleccionar en el programa de instalación de Java ES.
Un tipo de componente del sistema incluido en Java ES. Estos componentes mejoran la disponibilidad, seguridad, escalabilidad y facilidad de mantenimiento de los componentes de servicios del sistema y los componentes de aplicaciones distribuidas.
Un tipo de componente del sistema incluido en Java ES. Los componentes compartidos, normalmente bibliotecas, proporcionan servicios locales a otros componentes del sistema.
Cualquier paquete de software o conjunto de paquetes incluidos en Java ES e instalados mediante el programa de instalación de Java ES. Existen varios tipos de componentes del sistema: los componentes de productos que proporcionan los servicios de infraestructura de Java ES y los componentes compartidos que proporcionan servicios locales a los demás componentes del sistema.
Uno o varios servicios distribuidos que definen la función exclusiva que proporciona Java ES. Los servicios del sistema normalmente requieren la compatibilidad de una serie de componentes de calidad del servicio, de componentes compartidos o puede que requieran ambos.
Un tipo de componente del sistema incluido en Java ES. Los componentes de servicios del sistema proporcionan los servicios de infraestructura de Java ES: servicios de portal, identidad y seguridad, web y de aplicación, y de disponibilidad.