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 se denominan en esta guía como aplicaciones de empresas distribuidas.
Java Enterprise System también es una versión de software de Sun, además de una metodología de envío y una estrategia empresarial y de asignación de precios. El planteamiento de esta guía, sin embargo, está centrado en los componentes de software de Java Enterprise System y los servicios que proporcionan.
Este capítulo presenta Java Enterprise System y las tareas que conlleva la utilización del sistema. Incluye los siguientes temas:
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 Enterprise System proporciona los servicios de infraestructura necesarios para estas aplicaciones de empresa distribuida, es decir, las aplicaciones que generalmente tienen las siguientes características:
Distribuidas. 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 están, a su vez, admitidos por 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 Enterprise System proporciona la capa de servicios de infraestructura distribuida que se muestra en la Figura 1–1. Sin embargo, los servicios de Java Enterprise System también incluyen una serie de servicios de nivel de aplicaciones accesibles para los usuarios finales.
Entre los servicios que incluye Java Enterprise System se encuentran 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, a la vez 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.
Identidad de red y servicios de seguridad. Estos servicios mejoran la seguridad y la protección de los activos 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 están basados en la tecnología Java 2 Platform, Enterprise Edition (J2EETM).
Java Enterprise System 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 que incluye Java Enterprise System se encuentran las siguientes:
Servicios de disponibilidad. Estos servicios proporcionan una disponibilidad prácticamente continua, también para los componentes de aplicaciones y para los componentes de infraestructura que los respaldan.
Servicios de acceso. Estos servicios proporcionan acceso de Internet o acceso basado en navegador a los servicios de Java Enterprise System.
Servicios administrativos. Estos servicios ayudan a mantener y ajustar el rendimiento de las aplicaciones respaldadas por Java Enterprise System.
Puede implementar uno o varios servicios de Java Enterprise System, cada uno de los cuales puede incluir un número de componentes de Java Enterprise System.
Java Enterprise System es una integración de distintos productos de software y componentes en un único sistema de software. Los componentes de este sistema se han probado conjuntamente para garantizar su interoperabilidad. La integración es posible mediante una serie de funciones de nivel de sistema:
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.
Estas funciones se describen en los siguientes capítulos de esta guía. El objetivo de esta sección es presentar los distintos componentes integrados en Java Enterprise System. Estos componentes de sistema se pueden agrupar en tres categorías principales, tal y como se muestra en la siguiente ilustración:
Componentes de los servicios del sistema. Estos componentes proporcionan los servicios de infraestructura principales de Java Enterprise System que admiten el uso de aplicaciones de empresa distribuidas.
Componentes de calidad del servicio. Estos componentes 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.
Una serie de componentes de Java ES proporcionan los servicios principales que dan respaldo a las soluciones de software distribuidas. Estos servicios de sistemaincluyen servicios de portal, servicios de comunicación y colaboración, servicios de identidad y seguridad, servicios de contenedor web y servicios de aplicación J2EE.
Los componentes de servicio de sistema que proporcionan estos servicios distribuidos y los servicios que éstos proporcionan se describen brevemente en la siguiente tabla. Cada componente de los 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 Descripciones de los componentes de servicios de sistemas.
Tabla 1–1 Componentes de los servicios del sistema de Java ES
Además de los componentes de los servicios del sistema que se muestran en la Tabla 1–1, Java Enterprise System incluye una serie de componentes que se usan para mejorar la calidad de los servicios proporcionados por los componentes de los 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 administrativos
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 Enterprise System y los servicios que proporcionan se muestran en la siguiente tabla. Para obtener más detalles acerca de cualquier componente, consulte Descripciones de los componentes de disponibilidad.
Tabla 1–2 Componentes de disponibilidad de Java ES
Componente |
Servicios de disponibilidad proporcionados |
---|---|
Proporciona servicios de escalabilidad y de alta disponibilidad para Java Enterprise System, las aplicaciones que se ejecutan en la parte superior de la infraestructura de Java Enterprise System y el entorno de hardware donde se implementan. |
|
Proporciona un almacén de datos que hace que los datos de la aplicación, especialmente los datos del estado de la sesión, estén disponibles incluso en caso de fallo. |
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. Los componentes de acceso incluidos en Java Enterprise System y los servicios que proporcionan se muestran en la siguiente tabla. Para obtener más detalles acerca de los componentes, consulte Descripciones de componentes de acceso.
Tabla 1–3 Componentes de acceso de Java ES
Componente |
Servicios de acceso proporcionados |
---|---|
Proporciona servicios de seguridad para Directory Server desde fuera de un servidor de seguridad corporativo. Directory Proxy Server proporciona control de acceso al directorio y redireccionamiento para varias instancias de Directory Server. |
|
Sun Java System Web Proxy Server |
Proporciona funciones de almacenamiento en caché, filtrado y distribución de contenido web para peticiones de Internet entrantes y salientes. |
Sun Java System Communications Express |
Proporciona acceso basado en web a Messaging Server, Calendar Server y Directory Server, en función de la configuración. |
Proporciona un acceso de Internet seguro desde fuera de un servidor de seguridad corporativo al contenido de Portal Server y los servicios, incluidos los portales internos. |
|
|
|
Proporciona clientes de escritorio utilizando Microsoft Outlook con una interfaz para Messaging Server y Calendar Server. |
Los componentes administrativos proporcionan funciones de administración, como configuración y supervisión, para los servicios del sistema. Los componentes administrativos incluidos en Java Enterprise System y los servicios que proporcionan se muestran en la siguiente tabla. Para obtener más detalles acerca de cualquier componente, consulte Descripciones de componentes administrativos.
Tabla 1–4 Componentes administrativos de Java ES
Componente |
Servicios administrativos proporcionados |
---|---|
Proporciona una herramienta de administración gráfica que le permite configurar y administrar Directory Server y Messaging Server. |
|
Proporciona una secuencia de comandos para configurar Directory Server con el esquema necesario para la provisión de los usuarios para Messaging Server y Calendar Server. |
|
Proporciona tanto herramientas de línea de comandos como de GUI para cumplimentar las entradas de los usuarios en Directory Server con los atributos de usuario requeridos por Messaging Server y Calendar Server. |
Java Enterprise System incluye varias bibliotecas compartidas instaladas localmente de las que dependen muchos componentes de los servicios del sistema y muchos componentes de calidad del servicio. Los componentes compartidos de Java ES proporcionan servicios locales para los componentes de Java ES que se ejecutan en el mismo equipo host.
Los componentes compartidos se utilizan a menudo para proporcionar portabilidad entre los distintos sistemas operativos. Ejemplos de componentes compartidos de Java Enterprise System: Java 2 Platform, Standard Edition (plataforma J2SETM), Netscape Portable Runtime (NSPR), Network Security Services (NSS), Network 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.
La creación de soluciones empresariales basadas en el software de Java Enterprise System 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 Enterprise System 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 Enterprise System: el ciclo de vida de la solución de Java Enterprise System y los distintos escenarios de adopción generalmente implicados.
Las tareas que se usan para crear soluciones de negocio basadas en el software de Java ES se pueden dividir en varias fases, tal y como se muestra en la Figura 1–3. La ilustración también muestra la categoría del usuario de Java Enterprise System que generalmente realiza las distintas tareas.
Las etapas del ciclo de vida que se muestran en la Figura 1–3 se pueden estructurar en los siguientes grupos generales:
Fase previa a la implementación. En esta fase, una necesidad de la empresa se traslada a un escenario de implementación: una arquitectura lógica y un conjunto de requisitos de calidad de servicio. El escenario de implementación sirve como especificación para el diseño de la arquitectura de implementación.
Implementación. En esta etapa, un escenario de implementación se transforma 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.
Fase posterior a la implementación. En esta fase, 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.
El ciclo de vida de la solución y las tareas de cada etapa se muestran en la Figura 1–3 y se describen detalladamente en el Capítulo 4, Tareas del ciclo de vida de la solución Java Enterprise System.
La Figura 1–3 muestra los usuarios de Java ES que realizan normalmente las tareas de las distintas etapas del ciclo de vida. Si trabaja con Java ES, su trabajo se deje ajustar a una o a varias de las categorías de usuarios que se muestran en la Figura 1–3. 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 Enterprise System para que se pueda usar una nueva solución de negocio.
Mejora. Se parte de una infraestuctura 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 sistemas secundarios porque son demasiado complicados, porque 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. En otras palabras, desea una mejor rentabilidad de la inversión que la que ofrece el sistema existente.
Ampliación. Se parte de una infraestructura de TI existente en la que se implementa el software Java Enterprise System 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 Java para los servicios existentes.
Actualización. Se parte de una infraestructura de TI que cuenta con una versión anterior de Java Enterprise System o con productos de Sun de versiones anteriores a la de Java Enterprise System. El usuario actualiza a la versión más nueva de los componentes de Java Enterprise System.
Cada escenario de adopción cuenta con sus propios retos y consideraciones. Con independencia del escenario de adopción que se aproxime más a su situación, el proceso del ciclo de vida de la solución que se muestra en la Figura 1–3 sigue siendo aplicable. Sin embargo, en función del escenario de adopción, es posible que varíen los elementos que tendrá que tratar y los recursos en los que necesitará invertir en las distintas etapas del ciclo de vida.
Las siguientes consideraciones se aplican generalmente en varios 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 Enterprise System.
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
Esta sección explica los términos técnicos clave utilizados en este capítulo. Se pone un interés especial en clarificar las relaciones entre estos términos y cómo se utilizan en el contexto de Java Enterprise System.
Un motivo general para implementar el software de Java Enterprise System, teniendo en cuenta el sistema de software desde el que se parte y el objetivo que se desea conseguir. Existen cuatro escenarios de adopción básicos para Java Enterprise System: nuevo sistema, sustitución, extensió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 de sistema incluidos en Java Enterprise System 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 J2EETM) y realiza algunas funciones informáticas específicas. 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 admita 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).
Uno de los tipos de componentes de sistema incluidos en Java Enterprise System. Los componentes mejoran la disponibilidad, la seguridad, la escalabilidad, la facilidad de mantenimiento y otros aspectos de los componentes de los servicios del sistema y los componentes de aplicaciones distribuidas.
Uno de los tipos de componentes de sistema incluidos en Java Enterprise System. Los componentes compartidos, normalmente bibliotecas, proporcionan servicios locales a otros componentes del sistema. Por contraposición, un componente de los servicios del sistema proporciona servicios de infraestructura a otros componentes de sistema (o a los componentes de aplicación).
Cualquier paquete de software o conjunto de paquetes incluidos en Java Enterprise System e instalados mediante el instalador de Java Enterprise System. Existen varios tipos de componentes del sistema: componentes de servicio de sistema que proporcionan servicios de infraestructuras distribuidas; componentes de servicio de calidad que aportan compatibilidad para los componentes de los servicios del sistema al proporcionar servicios administrativos y de acceso; y, por ultimo, componentes compartidos que proporcionan servicios locales a otros componentes de sistemas.
Uno o varios servicios distribuidos que definen la función única que proporciona Java Enterprise System. Los servicios del sistema normalmente requieren la compatibilidad de una serie de componentes de servicio de calidad, de componentes compartidos o puede que requieran ambos.
Uno de los tipos de componentes de sistema incluidos en Java Enterprise System. Los componentes de los servicios del sistema proporcionan los servicios de infraestructura principales de Java Enterprise System: servicios de portal, servicios de comunicación y colaboración, servicios de identidad y seguridad, servicios web y de aplicaciones, así como servicios de disponibilidad.