Introdución al Servidor de Aplicaciones iPlanet

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.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR