Programación en castellano
Inicio > Tutoriales > Servidores de Aplicaciones Java > Introdución al Servidor de Aplicaciones iPlanet
-Tutoriales

Introdución al Servidor de Aplicaciones iPlanet


Detalles de la Arquitectura

. Procesos de Servidor

La arquitectura de iAS incluye tres tipos internos de servidores, que normalmente son llamados motores o procesos. Son los responsables de todo el proceso dentro de iPlanet Application Server. La siguiente tabla sumariza los servidores internos:

Servidor Interno Nombre del Proceso Descripción
Executive Server KXS Proporciona la mayoría de los servicios como el balance de carga Dsync, el repositorio y el control de fallos.
Administrative Server KAS Proporciona servicios del sistema para administración y control de fallos de iAS.
Java Server KJS Proporciona servicios para aplicaciones Java

Observa que iPlanet Application Server 6.0 soporta aplicaciones C++ por compatibilidad. Todas las nuevas aplicaciones deben desarrollarse usando herramientas J2EE.

. Sumario de Interacciones de Procesos

La siguiente figura muestra cómo interactúan los cuatro procesos de iPlanet Application Server, y la relación entre el servidor de aplicaciones y otros servicios complementarios:

Cuando un servidor web reenvía solicitudes a iAS, la solicitud primero es recibida por el proceso Executive Server (KXS). Este proceso reenvía la solicitud al proceso Java Server (KJS). Un proceso KJS ejecuta la lógica de programación Java. Observa que para propósitos de migración, existe un motor C++, KCS que ejecuta lógica de programación C++. JCS se ejecuta de forma similar al motor KJS.

Cada proceso KJS mantiene un número específico de threads y ejcuta la lógica de programación para completar esos threads. Los resultados son devueltos al servidor Web y enviados al navegador del cliente.

La técnica iAS de procesamiento de solicitudes de aplicaciones es la clave para reducir la carga de un servidor Web, y así proporcionar un tiempo de respuesta más rápido. Un servidor de administración puede configurar el entorno iAS para mejorar el rendimiento mediante:

  • añadir cualquier número de máquinas iAS.
  • especificar cualquier número de procesos KJS.
  • mantener cualquier número de threads en cada proceso.

Además de proporciona alto rendimiento, los precesos internos hacen posible que iAS permanezca disponible 24 horas al día, 7 días a la semana. Si se cae un proceso KJS, el proceso KXS lo reinicia. Y si el propio proceso KXS falla, entonces es reiniciado por un proceso adicional —el proceso Administrative Server (KAS). La monitorización adicional en iAS nos asegura que el proceso KAS siempre se está ejecutando. Si se caen todos los procesos de iAS, entonces otras máquinas iAS del cluster pueden tomar el control, (esto asume un entorno multi-servidor). Además, iAS puede reemplazar la página index con un página redirigida y también enviar notificaciones por e-mail y FAX para avisar al administrador del sistema y redirigir el sistema a una site diferente.

Las siguientes secciones describen los servidores internos en más detalle.

. El Servidor Ejecutivo

El Servidor Ejecutivo es el motor principal de iPlanet Application Server. Es responsable de hospedar muchos servicios de nivel de sistema según los necesita iAS.

El proceso del Servidor Ejecutivo (KXS) también distribuye solicitudes de aplicaciones al proceso de apliación apropiado, Servidor Java.

Por ejemplo, aquí podemos ver lo que sucede cuando entra una solicitud de aplicación en iPlanet Application Server:

  1. El Servidor Ejecutivo llama al controlador de solicitudes, un servicio de nivel de sistema.
  2. El controlador de solicitures asigna un thread del almacen a la solicitud y reenvía la solicitud al Servidor Java apropiado que carga las clases de la aplicación si necesario y ejecuta la lógica de la aplicación.
  3. Cuando se completa la solicitud, el thread se devuelve al almacen de threads.

. El Servidor Administrativo

El Servidor Administrativo pemite la administración de uno o más iPlanet Application Servers. Registra con el servidor o servidores apropiados todos los cambios hechos en el sistema y la configuración de aplicaciones usando iAS Administrator Tool (iASAT), la herramienta de administración GUI.

El servidor administrativo también hospeda el servicio de recuperación de fallos que reinicia otros procesos servidores si fallan. Este servicio de recuperación de fallos proporciona un alto grado de tolerancia a fallos para el iPlanet Application Server.

. El Servidor Java

El proceso Servidor Java es el servidor de aplicaciones. Los componentes de lógica de negocios escritos en Java están hospedados en el Servidor Java. Los componentes de la lógica de negocio son el corazón de la aplicación, conteniendo las instrucciones de código compilado escritos por el desarrollador.

El Servidor Java (KJS) también hospeda los servicios a nivel de aplicación. Estos servicios se cargan dinámicamente en el proceso apropiado según los necesitan un componente de la aplicación. Por ejemplo, cuando un EJB requiere acceso a una base de datos, el Servidor Java caga el motor de acceso a datos, usa sus servicios, y luego lo cierra. La conexión a la base de datos proporcionada por el motor de acceso a datos es almacenada en la memoria activa del Servidor Java. Si otra solicitud entra en el sistema y accede a las misma base de datos, se usa la conexión del caché. De esta forma, iAS reduce la necesidad de invocar al motor de acceso de datos, mejorando así al rendimiento de procesamiento de solicitudes.

. Componentes del Sistema

Esta sección describe los principales sistemas internos que componen la arquitectura iAS. Estos sistemas se pueden ver en la siguiente figura:

. Controlador de Protocolo

La comunicación entre un servidor Web e iPlanet Application Server ocurre a través de NSAPI, ISAPI, y CGI optimizado. La optimización y el rendimiento superior se consiguen a través de una comunicación optimizada mediante un plug-in sobre el protocolo interno. Los componentes internos manejan los diferentes protocolos según los van encontrando.

Cuando entra una solicitud desde un navegador web, la solicitud es pasada al servidor web mediante el protocolo HTTP o HTTPS. La solicitud es procesada por el conector Web apropiado. Los conectores Web incluyen el NSAPI.

. Sistema de Balance de Cargas

En un entorno con varias instalaciones de iAS, las solicitudes entrantes primero pasan a través del Sistema de Balance de Carga. Este sistema dirige la solicitud al servidor mejor preparado para procesarla. El Sistema de Balance de Carga incluye un Monitor de Carga y un Balanceador de Carga. Hay varios tipos de balances de carga:

iAS emplea varios métodos de balance de carga para un rendimiento optimo:

  • Balance de Carga Weighted round robin.
  • Balance de Carga por tiempo de respuesta.
  • Balance de Carga basado en la carga del sistema.

Además, se soportan los siguientes tipos de balance de carga:

  • Balance de carga de nivel de proceso Intraserver
  • Balance de Carga JSP.
  • Balance de carga de clientes ricos.

Los administradores pueden elegir el mejor método en que la solicitud implementada es enrutada a la máquina iAS más apropiada.

. Sistema de Control de Solicitudes

Las solicitudes entrantes son manejadas por el Request Management System. iAS es multi-thread, y este sistema asigna threads desde un almacen de threads dinámico para procesar la solicitud. El sistema de control de solicitudes permite el proceso simultáneo de un alto volumen de solicitudes. Los administradores del sistema pueden configurar los parámetros del almacen de threads para un procesamiento óptimo de solicitudes. Request Management System incluye los siguientes subsistemas:

  • Thread Manager proporciona un almacen de threads dinámico. Desde este almacen, un thread es asignado para procesar una solicitud.
  • Queue Manager se ve implicado cuando las solicitudes deben esperar a que un thread esté disponible. Este controlador de colas maneja la lista de solicitudes pendientes y la información descriptiva. Esta información incluye cosas com el ID único de la solicicitud y el estado actual de procesamiento de la solicitud, como esperando, en proceso, finalizada, etc.
  • Request Logging, es activada por el administrador del sistema, guarda un log de información de las solicitudes del servidor Web en una base de datos final o en fichero log.

. Componentes de Aplicación

Cada solicitud entrante identifica uno o más componentes de aplicación. Estos componentes, a su vez, son identificados por su identificador único global, o GUID. Los GUIDs con chequeados contra el Global Directory Service (GDS) de iAS e iPlanet Directory Server, un servidor LDAP. Si es necesario, iPlanet Directory Server auntentifica la solicitud chequeandola contra la información de rol. Entonces se ejecuta el componente de aplicación apropiado para procesar la solicitud. Por ejemplo, la solicitud podría invocar a un Servlet, que a su vez podría llamar a uno o más EJBs.

. Servicios de Aplicación

Los servicios de aplicación permiten el control de las funciones de aplicación, como sesiones de usuario, estados de aplicación, cookies, notificación e-mail, caché de resultados, etc. Estos servicios son invocados por componentes de la aplicación usando llamandas API. Los servicios de aplicación se cargan dentro de un proceso KJS. Las siguientes secciones sumarizan los servicios disponibles para aplicaciones Java:

Servicios Hospedados por KJS

Los siguientes servicios están disponibles para aplicaciones en Java:

Servicios sólo hospedados por KJS:

Servicio de Aplicación Descripción
Control de Estado y de Sesión Control la información de sesión de usuario, como el login del usuario, la información de navegación de paginas, y las selecciones de "la carta de compra". Controla la persistencia de la información de estado. Las máquinas iAS distribuidas pueden usar un espacio de trabajo para información compartida.
Control de Cookies Genera cookies HTTP para navegadores que tienen cuidado con las cookies. Para navegadores que no soportan las cookies, emula las cookies embebias en URLS o en campos ocultos.
Control de Acceso a Datos. Proporciona y maneja acceso a bases de datos.
Control de Transaciones. Controla las transaciones a bases de datos, proprocionando soporte de "negocición" y "deshacer" para esas transaciones.
Almacen de Conexiones a Bases de Datos Almacena las conexiones a bases de datos para que futuros accesos a la misma base de datos se proporcionen inmediatamente.
Caché de Resultados Cachea las resultados de conjuntos de datos para que futuras solicitudes puedan ser procesadas más eficientemente. Si las solicitudes han sido almacendas en el caché de resultados, el resultado calculado préviamente se devuelve inmediatamente. De otra forma, se ejecuta la lógica de la aplicación y se procesa el resultado. Los administradores del sistema pueden configurar las selecciones del caché de resultados como el número de slots de caché, y el intervalo de limpieza del caché.
Eventos de Aplicación Basándose en criterios de tiempo u otros criterios de eventos, permite a las aplicaciones enviar y ecibir e-mails, invocar a aplicaciones Java, invocar a un servlet. Es útil para administración.
Streaming HTML Proporciona streaming de los datos devueltos a clientes HTML para que se devuelvan los datos más eficientemente.
Conectores Permite a las aplicaciones enterprise integrarse con aplicaciones desplegadas sobre iAS. Los conectores son módulos persistentes que se cargan dinámicamente en iAS y son accedidos por varios EJBs sobre la vida de la extensión. Aunque los conectores pueden actuar como servicios de aplicación, también pueden ser considerados como componentes de la aplicación.

Los siguientes servicios están disponibles sólo para aplicaciones escritas en Java:

Servicio de Aplicación Descripción
Compilador JSP Interpreta las etiquetas JSP, etiquetas al estilo HTML que determinan la distribución de las páginas enviadas a un navegador. El compilador soporta la especificación 1.1 de JavaServer Pages.
Contenedor de Servlets Contiene y controla los servlets a través de su ciclo de vida proporcionando servicios de red sobre los que se envían las solicitudes y las respuestas, decodificando las solicitudes basadas en el tipo MIME, y formateando las respuestas basándose en el tipo MIME. Soporta HTTP y HTTPS.
Contenedor de EJB Proporciona una hogar para EJBs y controla los beans que contiene. El control implica el registro de beans, proporcionando un interface remoto para ellos, creando y destruyendo ejemplares, chequeando la seguridad, controlando su estado de actividad, y coordinando las transaciones distribuidas. El contenedor EJB también puede controlar todos los datos persistentes dentro del bean e incluye un controlador de transaciones glogales.
Transaciones Distribuidas Soporta las transaciones que implican varias bases de datos (o diferentes tipos o en diferentes localizaciones). Una transación distribuida es invocada desde un EJB y usa el controlador de procesamiento de transaciones interno de iAS.
Soporte LDAP Facilita el control y la seguridad proporcionando un repositorio central para la información sobre usuarios y grupos.

. Servicios del Sistema

Los servicios del sistema incrementan la eficicencia con la que la aplicación procesa las solicitudes. Estos servicios son usados directamente por las aplicaciones, pero proporcionan soporte adicional fuera del ámbio de la lógica de la aplicación. No hay APIs de accceso a los servicios del nivel del sistema. En la siguiente tabla podemos ver una descripción de estos servicios:

Servicio del Sistema Descripción
Control del Protocolo Controla las comunicaciones con clientes soportando los distintos protocolos usados por iPlanet Application Server.
Control de Solicitudes Controla las solicitudes según llegan al servidor, enrutándolas al proceso apropiado (el Servidor Java) y manejando la asignación de threads.
Servicio de Directorio Global Repositorio para toda la información metadata del servidor de aplicaciones.
JNDI Java Naming and Directory Interface (JNDI) es una extensión estándard de la plataforma Java. El API JNDI proporciona a las aplicaciones Java un interface unificado para múltiples servicios de nombres y directorios empresariales.
Log de Eventos Mantiene un log de la ejecución de la lógica de la aplicación. Los desarrolladores de aplicaciones puede activar el log en su lógica de aplicaciones para ayudar en la depuración y el ajuste. Además, los administradores del sistema pueden activar automáticamente el log de eventos, para grabar los mensajes generados por la carga de módulos dinámicos (DLMs) y objetos lógicos de la aplicación cuando se procesen solicitudes de usuario. El log de eventos se puede ejecutar en todos los procesos.
Balance de carga Determina el modo en que una aplicación solicita el balance de carga entre varios servidores.
Caché de resultados de la aplicación Cachéa los resultados de la aplicación para que futuras solicitudes de los mismos componentes de aplicación por el mismo usuario sean manejadas inmeadiatamente.
Recuperación de fallos. Reincia el Servidor Ejecutivo, o los procesos del Servidor Java si se vuelven indisponibles.
Sincronización de datos distribuidos Soporta la recuperación de fallos para datos distribuidos. Los datos están sincronizados no sólo entre todos los procesos KJS ejecutándose en iAS, sino también entre todas las instalaciones iAS dentro de un cluster.
Soporte de SNMP Proporciona acceso a iAS mediante agentes SNMP, así permite el control remoto desde herramientas de administración de terceras partes.
Servicios de Kernel Proporciona servicios de bajo nivel a todos los otros servicios y subsistemas. Los ejemplos de servicios del kernel incluyen motores de uniones de idiomas, y el control de bloqueo.

. Sistemas de Control de Transaciones

El sistema de control de transaciones proporciona soporte para el modelo de transación EJB. También es responsable de la propagación transaparente del contexto de transación a través de los procesos y soporta una negociación de coordinación de dos fases.

Transaciones Locales vs. Globales

Para aplicaciones J2EE, iAS soporta transaciones locales y globales.

Las transaciones globales pueden expandir múltiples bases de datos y potencialmente de tipos heterogéneos. Las transaciones globales son controladas y coordinadas por el controlador de transaciones, y puden expandir múltiples bases de datos y proceso. El controlador de transaciones normalmente usa el protocolo XA para interactuar con las bases de datos finales. Las transaciones globales ocurren usando una negociación de dos fases desde Encina, un controlador de transaciones interno de iPlanet Application Server.

Las transaciones locales implican acceso a una sóla base de datos. Proporcionan un mejor rendimiento de la aplicación porque son menos complejas. Las transaciones locales son nativas a una sóla base de datos y están restringidas a un sólo proceso.

Las transaciones globales sólo pueden arrancarse declarativamente desde EJBs. Por el contrario, las transaciones locales sólo pueden ser ejecutadas programáticamente, desde servlets, JSPs, o EJBs.

Tanto el JDBC como los APIs iPlanet Application Server trantan con el motor de acceso de datos para interactuar con drivers de bases de datos. iPlanet Application Server proporciona soporte nativo para los siguientes drivers de bases de datos: Oracle, DB2, Informix, Sybase, y (sólo sobre Windows NT) SQLServer. También hay un driver ODBC. iPlanet Application Server puede configurar automáticamente los drivers si se han instalado antes que iPlanet Application Server.

El sistema controlador de transaciones también incluye Java Transaction API (JTA). JTA se usa para controlar conexiones con una sóla base de datos. JTA especifica interfaces locales Java entre el controlador de transaciones y los otros elementos de la transaciones (que incluyen iPlanet Application Server y la aplicación transacional). JTA proporciona un mapeo Java del protocolo estándard de la industria X/Open XA, que se usa para aplicaciones de bases de datos distribuidas.

Detalles de la Arquitectura

La siguiente figura muestra los detalles de la arquitectura del sistema controlador de transaciones:

Tanto JDBC como los APIS iAS tatan con el Data Access Engine para interactuar con drivers de bases de datos. iAS proporciona soporte nativo para los siguientes drivers de bases de datos: Oracle, DB2, Informix, Sybase, y (sólo sobre Windows NT) SQLServer.

El sistema controlador de transaciones también incluye el interface de transaciones de usuarios especificado en la especificación JTA. Este interface permite al desarrollador de aplicaciones desmarcar explícitamente transaciones.

Seguridad

La seguridad en iAS está basada en roles como se especifica en la especificación J2EE. Los Roles son definidos por los ensambladores de aplicaciones y son permisos acordados para acceder a métodos de beans, servlets y JPSs. Estos roles se mapean en tiempo de despliegue a usuarios y grupos LDAP.

Srvicios Administrativos

Los servicios administrativos se ejecutan en KAS, el proceso del Servidor Administrativo. KAS permite la administración remota de servidores y aplicaciones. KAS también soporta otros servicios, como particionado de aplicaciones, log de eventos, monitorización de peticiones, y configuración dinámica de las selecciones clave del servidor.

Entre los clientes que acceden a los servicios administrativos se incluyen iAS Administration Tool, iPlanet Directory Server, y agentes SNMP de terceras partes.

 
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