✒️SAP BASIS Internet Communication Framework
SAP BASIS Internet Communication Framework
Unidad 2 Leccion 8: ICF - Internet Communication Framework El ICF provee un entorno para manejo de solicitudes web dentro del work process ABAP de un sistema sap. Para ICF no se requieren librerías adicionales excepto para el protocolo https empleando la librería SAPCRYPTOLIB. ICF hace posible generar una respuesta a una solicitud de una aplicación. La tarea de los servicios ICF es la conexión de una URL con un HTTP request handler Un servicio ICF crea una conexión entre una URL a la cual una solicitud HTTP es enviada y los objetos de desarrollo que procesarán la solicitud. La solicitud http es enviada desde el cliente ejemplo desde un navegador web , al servidor. El ICF reenvía la solicitud a una aplicación. Los datos son procesados por la aplicación , la cual devuelve usando el ICF, la respuesta al cliente. El HTTP request handler llama a la aplicación. Un HTTP request handler es un programa , mas precisamente una clase ABAP, que es identificado usando una URL y el cual recibe solicitudes HTTP que usan esta URL La tarea del HTTP request handler es recibir los datos enviados por la solicitud, realiza una cantidad de procesos específicos del handler y genera una repuesta a esta solicitud HTTP. Los clientes pueden crear HTTP request handlers, pero SAP también entrega algunos. Ejemplos de HTTP request handler de SAP es el que maneja los BSPs, con el cual es posible desarrollar aplicaciones web simples. Si una solicitud http es recibir por el ICM que será procesada en un work process, el task handler toma el control, y este luego inicia el controlador ICF. Es decir los pasos son los siguientes: Web Browser >> ICM >> Memory Pipes y Dispatcher >> Task Handler >> controlador ICF >> ICF Manager >> http extension y programa de aplicacion ABAP. El controlador ICF es implementado usando el módulo de función http_dispatch_request El ICF manager es implementado usando la clase ABAP cl_http_server una solicitud http es enviada desde el navegador al icm usando http. El icm usa la url recibida para decidir si la aplicación que se está llamando está implementada en el stack abap o java del servidor de aplicación web de sap el icm almacena los datos en un memory pipe e informa al dispatcher abap El dispatcher abap coloca la solicitud del icm en la cola del dispatcher , crea un nuevo contexto, y selecciona un work process libre para el procesamiento El task handler lee los datos del memory pipe y los transfiere al controlador ICF El controlador ICF cra un bloque de control y lo llena con los datos de la solicitud http. El controlador ICF transfiere la solicitud al ICM manager. El cliente es autenticado El http request handler (el cual procesa los datos solicitados) es llamado. Una vez que finaliza devuelve el control al controlador ICF El task handler escribe la respuesta en el memory pipe y avisa al ICm que el procesamiento de la solicitud ha finalizado El ICM devuelve la respuesta al navegador web del cliente. Detrás de un http request handler hay una clase abap. Esta clase implementa la interface IF_HTTP_EXTENSION y el método HANDLE_REQUEST. Sap entrega clases de este tipo, pero los clientes pueden crear también sus propias clases con el Class Builder, Trx SE24, integrado dentro del Object Builder y la trx SE80 Transacción SICF, revisión de todos los servicios ICF El camino completo para un servicio (tal como /sap/bc/icf/info) determina junto con el protocolo, nombre de servidor y puerto, la URL bajo la cual el servicio puede ser llamado. Los servicios ICF pueden estar activados o no, se aprecia con colores: Activado >> color negro >> El servicio puede ser llamado Inactivo >> color gris >> el servicio está explícitamente desactivado Inactivo >> color azul >> el servicio está implícitamente desactivado Los desactivados implícitamente , ocurre cuando hay un servicio superior explícitamente desactivado. Si llamamos a un servicio inactivo saldrá un msje informando que el acceso a la página está bloqueado. Todos los servicios icf se entregan con el estado desactivado, por medida seguridad. Sobre un servicio se puede configurar de la sgte manera a través de la trx SICF: Datos de Servicio/Procedimiento de Logon: Campos de autenticación mediante campos http (fields authentication) Autenticación SSO (single sign-on) (inicio de sesión en diferentes sistemas con un mismo usuario, evitando el logoneo múltiple Autenticación básica Autenticación de sap con un usuario y contraseña del sistema sap (sap authentication) Autenticación de certificado mediante un certificado de cliente Autenticación de servicio con un usuario anónimo almacenado en el mismo servicio (Service authentication) Datos de Servicio /datos de logon anónimo Los detalles almacenados en Client, user, password, y language son verificados si seleccionamos Logon Data Required como procedimiento de logon para un servicio. Deberíamos solo almacenar usuarios aquí que fueron creados como usuarios de servicio en la trx su01. Si almacenamos usuarios de diálogo el sistema muestra una advertencia. Datos de Servicio /Opciones de Servicio Podemos usar el campo Server Group para ingresar un grupo de logon (creado en la trx SMLG) Datos de Servicio / Requerimientos de seguridad La opción standart está seleccionado, el cual permite conexiones http y https al servicio. Si seleccionamos SSL, solo conexiones https podrán ser aceptadas. Datos de Servicio / autenticación básica Si el logon al Sap Web AS se realiza usando basic authentication, podemos seleccionar si las entradas realizadas para el usuario en la ventana http del cliente, serán interpretadas como un usuario estándar R/3 (campo user en la trx su01 con un máximo de 12 caracteres) o como un usuario internet (campo alias en la trx su01, con un máximo de 40 caracteres Handler List En esta solapa ingresamos los HTTP handlers en la secuencia en que serán ejecutados. Un http request handler es una clase ABAP que implementa la interface IF_HTTP_EXTENSION. Esta interface contiene el método HANDLER-REQUEST, que es llamado por ICF. Error Pages Error de logon (401) error de aplicación (500) Página de logoff No accesible (404) Los servicios que son requeridos para servicios internos del sistema están definidos bajo el nodo /sap/public. El nodo superior es /sap/bc/bsp Alias En el ICF, podemos crear links conocidos como alias, desde un servicio ICF a otro. No deberíamos crear alias internos a los servicios sap que se encuentran debajo del nodo /sap/ Monitoreo de ICF El ICF recorder permite a los desarrolladores y los administradores identificar y corregir posibles causas de errores mediante el registro de solicitudes http para aquellos intentos fallidos. La solicitud con el problema puede ser reprocesada varias veces mediante el uso de la entrada en la base de datos para aislar la causa usando el debugging o un archivo de traza del work process que lo ejecuta. El ICF recorder está en la trx SICF escogiendo Edit >> Recorder >> Activate Recording >> Deactivate Recording >> Display Recording. También de forma alternativa mediante la trx SICFRECORDER para evaluar los registros.
 
 
 
Sobre el autor
Publicación académica de Mauricio Javier Torres Hidalgo, en su ámbito de estudios para la Carrera Consultor Basis NetWeaver.
Mauricio Javier Torres Hidalgo
Ecuador - Legajo: ZT43A
✒️Autor de: 42 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Mauricio Torres