✒️SAP BASIS Internet Communication Manager (ICM)
SAP BASIS Internet Communication Manager (ICM)
Internet Communication Manager (ICM)
Las nuevas aplicaciones de SAP basadas en Business Server Pages (BSPs) y servicios SOAP se implementan en una compañia en el contexto de cambiar a una arquitectura moderna de IT y orientada a servicios.
Como miembros del equipo de administracion de sistemas, es nuestra tarea configurar los sistemas SAP en virtud de estos requerimientos. Para esto, necesitamos tener una vision del proceso central para las conexiones de Intranet e Internet, el Internet Communication Manager (ICM).
1. Arquitectura del Proceso ICM:
Algunos aspectos importantes son:
- Soporte para protocolos Web estandar tales como HTTP, HTTPS, WebDAV, SOAP y SMTP.
- Salida en formatos Web estandar tales como HTML, XML y XSLT.
- Completa integracion dentro del entorno SAP (desarrollo, administracion, concepto de autorizacion, monitoreo y protocolos de comunicacion).
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 envia de vuelta una respuesta HTTP, el cual es el caso que veremos en esta leccion.
Dentro de un work process, el Internet Communication Framwork (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.
Desde la version 6.10 de SAP Web AS, los work processes pueden generar directamente contenido web-compatible de tal forma que pueden ser enviados a un navegador web mediante el ICM. Una manera de crear contenido de ese tipo es utilizar aplicaciones con Business Server Pages (BSPs), las cuales son desarrolladas en el sistema SAP utilizando como herramienta la transaccion SE80.
Desde el punto de vista tecnico, El proceso ICM esta separado (icman a nivel sistema operativo) y es iniciado y monitoreado por el dispatcher 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 el ICM esta escuchando. El ICM luego llama al local handler apropiado, dependiendo de la URL.
El proceso ICM utiliza threads (hilos) de ejecucion 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 conexion. Un worker thread contiene un administrador I/O para las entradas y salidas de red, y varios plug-ins para los diferentes protocolos soportados.
- Watchdog: normalmente, un worker thread espera por la respuesta (ya sea que fuese el cliente o el servidor); si ocurre un timeout, el watchdog toma control sobre la tarea que esta esperando la respuesta. El worker thread luego puede ser utilizdo para otras solicitudes.
- Signar Handler: procesa las señales que son enviadas por el sistema operativo u otro proceso (tal como el ABAP dispatcher).
- Connection Info: esta tabla contiene informacion sobre las conexiones de red existentes.
- Memory Pipes: estos son objetos de comunicacion basados en memoria que permite la transferencia de datos entre el ICM y el work process ABAP.
El ICM usa plug-ins para implementar varios protocolos de comunicacion. Los siguientes protocolos pueden ser usados inmediatamente luego de la instalacion del SAP Web AS:
HTTP
HTTPS
SMTP
2. Internet Server Cache (ISC):
El internet server cache (ICS) es una parte del ICM que es importante para la performance. Almacena objetos HTTP(S) antes de que sean enviados al navegador Web. La proxima solicitud puede ser encontrada directamente desde el ISC, mientras el tiempo de expiracion no haya vencido, lo cual acelera significativamente el acceso.
Algunos aspectos del ISC:
- Jerarquia 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 utilizadas.
- Cacheo Dinamico: los productos tradicionales son basados en proxies HTTP y generalmente ofrecen cacheo de contenido estatico unicamente, tal como las imagenes. El ISC puede almacenar en cache contenido dinamico tal como las paginas JSP o BSP.
- Cacheo Activo: La aplicacion tiene control total sobre la actualizacion de los objetos que se encuentran en cache, por lo que debe asegurar que esten actualizados.
- Cacheo UFO: solicitudes invalidas (UnFound Objects) que generan situaciones de error en el servidor de aplicacion o la base de datos son directamente rechazadas, de esta manera el sistema queda protegido contra solicitudes invalidas o malintencionadas.
- Cacheo dependiente de navegador Web: Los desarrolladores de un BSP pueden definir si su aplicacion es dependiente del tipo de navegador web. Si este indicador esta marcado, el ISC usa los datos en el cache solamente para las solicitudes enviadas por ese tipo de navegador.
El ISC es configurado mediante los parametros del perfil icm/HTTP/server_cache* y puede ser monitoreado e invalidado desde el sistema SAP.
3. Procedimiento de Inicio y Monitoreo del ICM:
El parametro del perfil rdisp/start_icman controla si un proceso ICM es tambien iniciado cuando un servidor de aplicacion (instancia) es iniciado. Si ningun valor es especificado, el valor por defecto true (verdadero) aplica.
El ICM se configura mediante los parametros de perfil que en su mayoria comienzan con icm/. La configuracion del parametro icm/server_port_ es de particular importancia. Este parametro de perfil especifica el puerto utilizado para cada protocolo, asi tambien como otras propiedades del protocolo, como el timeout.
En el sistema SAP, podemos obtener una vista rapida de los servidores de aplicacion que estan corriendo con un ICM mediante la vista de servidores de aplicacion, transaccion ((SM51)).
Para informacion mas detallada, tal como el ID de hilo de ejecucion, podemos usar el monitor de ICM, transaccion SMICM. Desde esta transaccion, es posible finalizar el proceso de ICM, para esto debemos utilizar el camino de menu Administration -> 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 seleccion del menu Administration - Restart - Yes/No, controlamos si el ABAP dispatcher reinicia el ICM cuando este finaliza por un error o como se explico recientemente por el administrador de forma manual.
La herramienta mas importante para un administrador en el entorno ICM es el Monitor ICM, transaccion SMICM. Tener en cuenta que los datos visualizados aqui son dependientes de la instancia donde corre el ICM, de la misma manera que la vista de work processes, en la transaccion SM50.
Algunas actividades administrativas, desde la transaccion SMICM, son:
- Monitorear y reiniciar el 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.
- Visualizacion de los parametros de perfil (Goto - Parameters - Display/Change). El ICM se configura con los parametros de perfil. Los valores de los parametros visualizados aplican para la instancia en la que estamos logueados. Para la documentacion de los parametros, podemos ir desde el monitor ICM (Goto - Parameters - Change y luego el boton Documentation), la transaccion RZ11 y en la libreria de SAP.
- Visualizacion de estadisticas (Goto - Statics - Display). Podemos utilizar las estadisticas para ver la cantidad de solicitudes que el ICM ha procesado desde que se inicio o desde que se reiniciaron las estadisticas. El sistema tambien muestra informacion sobre la duracion del procesamiento.
- 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, el contenido podra ser enviado directamente desde el cache al cliente.
Tambien el program a nivel de sistema operativo icmon muestra informacion sobre el ICM. La llamada icmon - h muestra los parametros que pueden usarse para este programa, el cual, tambien puede generar carga de trabajo.
 
 
 
Sobre el autor
Publicación académica de Meyer Macabeo, en su ámbito de estudios para la Carrera Consultor Basis NetWeaver.
Meyer Macabeo
Profesión: Consultor Sap Basis - Mexico - Legajo: BE53Z
✒️Autor de: 65 Publicaciones Académicas
🎓Cursando Actualmente: Consultor BASIS Nivel Avanzado
🎓Egresado del módulo:
Certificación Académica de Meyer Macabeo