✒️SAP BASIS Internet Communication Manager (ICM)
SAP BASIS Internet Communication Manager (ICM)
Internet Comunication Manager (ICM)
Las nuevas aplicaciones de SAP basadas en Businesss Server Pages (BSPs) y servicios SOAP se implementan en una compañía en el contexto de cambiar a una arquitectura moderna de IT y orientada a Servicios.
Nuestra tarea como administradores en configurar los sistemas SAP en virtud de esos requerimientos. Por eso necesitamos tener una visión del proceso central para las conexiones de Intranet e Internet, el Internet Comunication Manager (ICM)
1. Arquitectura del proceso ICM
Puede existir un landscape con un sistema SAP Web AS (distribuido en varios servidores dentro y fuera de la DMZ) al que se conecten varios navegadores web desde Internet e Intranet
Aspectos importantes del ICM
- Soporte para protocolos Web estándar tales como HTTP, HTTPS, WebDAV, SOAP y SMTP
- Salida en formatos Web estándar tales como HTML, XML y XSLT
- Completa integración dentro del entorno SAP (desarrollo, administración, concepto de autorización, monitoreo y protocolos de comunicación)
El SAP Web Application server puede funcionar tanto como un Web server (rol de servidor) y como un cliente Web (rol de cliente). El rol de servidor, en el cual el SAP Web AS acepta y procesa solicitudes HTTP de cualquier cliente web (navegador web) y envía de vuelta una respuesta HTTP, el cual es el caso que veremos a continuación.
Dentro de un Work Process (WP), el Internet Comunication Framework (ICF) provee el entorno para manejar las solicitudes HTTP. El ICF es el puente entre el KERNEL del sistema SAP y e programa creado en ABAP
Desde la versión 6.10 de SAP Web AS, los WP pueden generar directamente contenido web-compatible de tal manera que pueden ser enviados a un navegador web mediante ICM. Una manera de crear contenido de este tipo es utiliza aplicaciones con Busniness Server Pages (BSPs), las cuales son desarrolladas en el sistema SAP utilizando como herramienta la Transacción SE80
Desde el punto de vista Técnico. El proceso ICM está separado (icman a nivel del sistema operativo) y es iniciado y monitoreado por el distpacher de ABAP. La tarea del ICM es asegurar que el sistema SAP pueda comunicarse con el mundo exterior (usando HTTP, HTTPS y SMTP)
En el caso del rol de servidor web, puede procesar solicitudes que llegan desde internet mediante URLs con el servidor y puerto para el cual ICM está escuchando. El ICM luego llama al local handler apropiado, dependiendo de la URL
El proceso ICM utiliza threads (hilos) de ejecución para procesar la carga de trabajo en paralelo.
Los componentes del ICM son:
- Thread control: este thread recibe la solicitud TCP/IP entrante y crea (o despierta) un worker thread del pool de threads para procesar la solicitud.
- Worker Thread: este thread maneja las solicitudes y respuestas para una conexión. Un worker thread contiene un administrador I/O para las entradas y salidas de red y varios plugs-ins para los diferentes protocolos soportados.
- Watchdog: normalmente, un worker thread espera la respuesta (sea cliente o servidor); si ocurre un timeout, el watchdog toma el control sobre la tarea que esta esperando la respuesta, EL worker thread luego puede ser utilizado para otras solicitudes
- Signal Handler: procesa las señales que son enviadas por el sistema operativo u otro proceso (como el ABAP dispatcher)
- Connection info: esta tabla contiene información sobre las conexiones de red existentes.
- Memory Pipes: estos son objetos de comunicación basados en memoria que permite la transferencia de datos entre el ICM y el WP ABAP
El ICM usa plug-ins para implementar varios protocolos de comunicación. los siguientes protocoloes pueden ser usados inmediatamente luego de la instalación del SAP web AS:
- HTTPS
- HTTPS
- SMTP
2. Internet Server Cache (ISC)
El Internet Server Cache (ISC) es una parte del ICM que es importante para el performance. Se encarga de almacenar objetos HTTP(S) antes de que sean enviados al navegador web. La próxima solicitud puede ser encontrada directamente desde el ISC, mientras el tiempo de expiración no haya vencido.
Algunos aspectos del ISC
- Jerarquía de dos niveles: cuando se almacenan objetos, las ventajas de la velocidad de la memoria principal (cache de memoria) y la capacidad de almacenamiento (cache de disco) son usadas.
- Cacheo dinámico: los productos tradicionales son basados en proxies HTTP y generalmente ofrecen cacheo de contenido estático unIcamente, como imágenes. El ISC puede almacenar en cache contenido dinámico como JSP o BSP.
- Cacheo Activo: La aplicación tiene control total sobre la actualización de los objetos que se encuentran en la cache por lo que debe asegurar que estén actualizados.
- Cacheo UFO: solicitudes invalidas (Unfound Objects) que generan situaciones de error en el servidor de aplicación o la base de datos son directamente rechazadas, de esta manera el sistema queda protegido contra solicitudes inválidas.
- Cacheo dependiente de navegador web: los desarrolladores de un BPS pueden definir si su aplicación es dependiente del tipo de navegador web. Si el indicador está marcado, el ISC usa los datos en el cache solamente para las solicitudes enviadas por ese tipo de navegado
El ISC es configurado mediante los parámetros de perfil icm/HTTP/server_cache* y puede ser monitoreado e invalidado desde el sistema SAP.
3. Procedimiento de Inicio y Monitoreo del ICM
El parámetro de perfil rdisp/stat_icman controla si un proceso ICM es también iniciado cuando un servidor de aplicación (instancia) arranca. Si ningún valor es especificado, el valor por defecto verdadero (true) aplica.
El ICM se configura mediante los parámetros de perfil en su mayoria comienzan con icm/. La configuracióndel parámetro icm/server_port_ es importante. Este parámetro de perfil especifica el puerto usado para cada protocolo, asi también como otras propiedades del protocolo, como el timeout.
En el sistema SAP, podemos obtener una vista rápida de los servidores de aplicación que están corriendo con ICM mediante la vista de servidor de aplicación SM51
Para información mas detallada, tal como el ID de hilo de ejecución, podemos usar el monitor de ICM, transacción SMICM. Desde esta es posible finallizar el proceso de ICM o reiniciarlo.
Algunas actividades administrativas desde la transacción ICM son:
- Monitorear y Reiniciar ICM
- Configurar el nivel de traza (Goto > Trace level > ...) los valores pueden ir de 0 a 3
- Evaluar los archivos de traza (Goto > Trace file > ...) el sistema lee el archivo dev_icm desde el directorio work de la instancia
- Visualización de los parámetros de perfil (Goto > Parámetros > Display/Change) El ICM se configura con los parámetros de perfil. Los valores de los parámetros visualizados aplican para la instancia en la que estamos logueados. Ver en la Transacción RZ11
- Visualizar estadísticas (Goto > Statistics > display) Podemos usar las estadísticas para ver la cantidad de solicitudes que el ICM ha procesado desde que se inició o desde que se reiniciaron las estadísticas. El sistema también muestra información sobre la duración del procesamiento.
- Monitoreo del cache de ICM (Goto > HTTP Server Chache > Display) El ICM server cache almacena objetos HTTP antes de ser enviado al cliente. La próxima vez que el objeto es solicitado, el contenido podrá ser enviado directamente desde el cache al cliente.
También el programa a nivel de sistema operativo icmon muestra información sobre ICM. La llamada icmon - h muestra los parámetros que pueden usarse para este programa, el cual , también puede generar carga de trabajo.
 
 
 
Sobre el autor
Publicación académica de Gabriel Ochoa, en su ámbito de estudios para la Carrera Consultor Basis NetWeaver.
Gabriel Ochoa
Profesión: Ingeniero de Sistemas - Colombia - Legajo: SD43Q
✒️Autor de: 13 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Gabriel Ochoa