✒️SAP BASIS Internet Communication Manager (ICM)
SAP BASIS Internet Communication Manager (ICM)
2.7 - Internet Communication Manager (ICM)
Se puede determinar cuantos ICM existe en el sistema, mediante la transacción SM51, se puede observar los servidores de aplicación activos.
/nSMICM: Muestra el estado del componente ICM, otra información se muestra la cantidad de hilos de ejecución que se tiene creado en ese momento.
GOTO - Services: dese esta pantalla se puede ver los servicios activos para el componente ICMP.
GOTO - Parameters: Se puede ver todos los parámetros o modificarlos.
GOTO - Statistics - Display: Se puede ver el nivel de estadisticas, la cantidad de solicitudes recibidas, por el componente desde que se inicio o se hizo el reset. El tiempo total de procesamiento, time out, entre otras cosas
Es posible utilizar una aplicación web, para ver como se registran los datos estadísticos. Se puede ingresar desde la misma aplicación de SAP GUI.
- La arquitectura del proceso ICM
La figura muestra un ejemplo de un landscape de sistema en el cual los navegadores web están conectados a través de internet y la intranet con un SAP Web AS (en este caso, distribuido en varios servidores).
Algunos aspectos importantes son:
- Soporte a protocolos Web estándares tales como HTTP, HTTPS, WebDAV, SOAP y SMTP.
- Salida en formatos Webe estándar tales como HTML, XML y XSLT.
- Completa integración dentro del entorno SAP (desarrollo, administración, conecpto 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 Web Client (rol de cliente). El rol de servidor, en el cual el SAP Web AS acepta y procesa solicitudes HTTP de cualquier cliente WEB ( tal como un navegador Web) y envía de vuelta una respuesta HTTP.
Dentro de un work process, 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 el programa creado en ABAP.
Una manera de crear contenido de este tipo es utilizar aplicaciones con Business Server Pages (BSPs), las cuales son desarrolladas en el sistema SAP utilizando como herramienta la transacción SE80.
Desde un punto de vista técnico, el proceso ICM está separado (icman a nivel del sistema operativo) y es iniciado y monitoreado por el dispatcher de ABAP. La tarea de ICM es asegurar que el sistema SAP pueda comunicarse con el mundo exterior (HTTP, HTTPS y SMTP).
En el caso del rol de servidor web, puede procesar solicitudes que llegan desde el internet mediante URLs con el servidor y puerto para el cual el ICM está escuchando.
El proceso ICM utiliza threads (hilos) de ejecución para procesar la carga de trabajo en paralelo.
Thread control: este recibe la solicitud TCP/IP entrante y crea un worker thread del pool threads para procesar la solicitud.
Worker Thread: maneja solicitudes y respuestas para una conexión. Un worker thread contiene un administrador I/O para entradas y salidas de red, y varios plug-ins para los diferentes protocolos soportados.
Watchdog: Un worker threadespera por la repuesta (ya sea que fuese cliente o servidor); si ocurre un timeout, el watchdog toma control sobre la tarea que está esperando la respuesta.
Signal Hander: Procesa las señales que son enviadas por el sistema operativo u otro proceso (tal 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 ICM y el work process ABAP.
El ICM usa plug-ins para implementar varios protocolos de comunicación. Los siguientes protocolos pueden ser usados inmediatamente luego de la instalación del SAP Web AS. (http, https, smtp)
- Internet Server Cache (ISC)
El internet server cache (ISC) es una parte del ICM que es importante para la performance. Almacena objetos HTTP(s) antes de que sean enviados al navegador Web.
Aspectos del ISC:
- Jerarquía de dos niveles: Cuando se almacena objetos, las ventajas de la velocidad de la memoria principal y la capacidad de almacenamiento son utilizadas.
- Cache Dinámico: Los productos tradicionales son basados en proxies HTTP y generalmente ofrecen cacheo de contenido estático únicamente, tal como las imágenes. El ISC puede almacenar en cache contenido dinámico tal como las páginas JSP o BSP.
- Cache Activo: La aplicación tiene control total sobre la actualización de los objetos que se encuentran en el cache, por lo que deben asegurar que estén actualizados.
- Cache UFO: Solicitudes inválidas (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 o malintencionadas.
- Cacheo dependiente de navegador Web: Los desarrolladores de un BSP puede definir si su aplicación es dependiente del tipo de navegador web. Si este indicador está marcado, el ISC usa los datos en el cache solamente para las solicitudes enviadas por este tipo de navegador.
El ISC es configurado mediante los parámetros de perfil icm/HTTP/server_cache*
3. Procedimiento de inicio y monitoreo del ICMP
El parámetro de perfil rdisp/start_icman controla si un proceso ICM es también iniciado cuando un servidor de aplicación (instancia) es iniciado.
El ICM se configura mediante los parámetros de perfil que en su mayoría comienzan con icm/. La configuración del parámetro icm/server_port_ es de particular importancia. Este parámetro de perfil especifica el puerto utilizado para cada protocolo, así también como otras propiedades del protocolo, como el timeout.
Podemos obtener una vista rápida de los servidores de aplicación que están corriendo con un ICM mediante la vista de servidores de aplicación, transacción SM51.
Tal como el ID de hilo de ejecución, podemos usar el monitor de ICM, transacción SMICM, desde esta transacción, es posible finalizar el proceso de ICM, para esto debemos utilizar el camino de menú: Administrator - ICM y seleccionar soft termination (corresponde a una señal 2 en UNIX) o hard termination (corresponde a una señal 9 en UNIX). El dispatcher luego inicia un nuevo proceso de ICM.
Mediante la selección del menú Administrator - Restart - Yes/No, controlamos si el ABAP dispatcher reinicia el ICM cuando este finalizar por un error o como se explicó recientemente por el administrador de forma manual.
La herramienta mas importante para un administrador en el entorno ICM es el monitor ICM, la transacción SMICM. Tener en cuenta que los datos visualizados aquí son dependientes de la instancia donde corre el ICM, de la misma manera que la vista de work process, en la transacción SM50.
Algunas actividades administrativas, desde la transacción SMICM son:
- Monitorear y reiniciar el ICM.
- Configuración del nivel de traza (Goto - Trace Level - … ) los valores pueden ir de 0 a 3.
- Evaluar 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 - Parameters - Dispaly/Change). El ICM se configura con los parámetros de perfil. Para la documentación de los parámetros, podemos ir desde el monitor ICM (Goto - Parameters - Chage y luego el botón Documentation), la transacción RZ11 y en la librería de SAP.
- Visualización de estadísticas (Goto - Statistics - Display). Podemos utilizar las estadísticas para ver la cantidad de solicitudes que el iCM ha procesado desde que inició o desde que se reiniciaron las estadísticas.
- Monitoreo del Cache de ICM (Goto - HTTP Server Cache - Display) el ICM server cache almacena objetos HTTP antes de ser enviados al cliente. La proxima vez que un objeto es solicitado, en 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 el ICM. La llamada icmon -h muestra los parámetros que pueden usarse para este programa.
 
 
 
Sobre el autor
Publicación académica de Israel Cespedes Penaloza, en su ámbito de estudios para la Carrera Consultor Basis NetWeaver.
Israel Cespedes Penaloza
Profesión: Ingeniero Electrónico - Bolivia - Legajo: DO67A
✒️Autor de: 90 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: PartTime
Certificación Académica de Israel Cespedes