Conceptos Básicos de Arquitectura SAP

Fundamentos técnicos esenciales del sistema SAP

Introducción

Comprender los conceptos fundamentales de la arquitectura SAP es esencial para cualquier profesional técnico que trabaje con estos sistemas. SAP utiliza una arquitectura cliente-servidor multinivel con componentes especializados que trabajan coordinadamente para proporcionar las capacidades empresariales que requieren las organizaciones.

Esta página describe los elementos básicos que componen un sistema SAP, desde las instancias y work processes hasta los mecanismos de memoria y comunicación entre componentes.

Arquitectura cliente-servidor

SAP implementa una arquitectura cliente-servidor de tres capas que separa claramente la presentación, la lógica de aplicación y la gestión de datos. Esta separación permite escalar cada componente de forma independiente según las necesidades de carga y rendimiento.

El cliente SAP (SAP GUI o navegador web) se ejecuta en las estaciones de trabajo de los usuarios y solo maneja la interfaz gráfica. Toda la lógica de negocio se ejecuta en los servidores de aplicación del centro de datos, y los datos se almacenan de forma centralizada en la base de datos.

Esta arquitectura garantiza que los datos críticos del negocio permanezcan seguros en el centro de datos, facilita el mantenimiento centralizado de las aplicaciones y permite que usuarios con conexiones de red lentas puedan trabajar eficientemente al minimizar la cantidad de datos que viajan por la red.

Instancias SAP

Una instancia SAP es un conjunto de procesos que se inician y detienen juntos como una unidad administrativa. Cada instancia tiene un número único (instance number) que la identifica dentro del sistema y determina los puertos de red que utiliza para comunicarse.

Existen varios tipos de instancias en un sistema SAP. La instancia central (Central Instance o CI) incluye el servidor de mensajes (message server) y el servidor de enqueue. Los servidores de aplicación adicionales (Additional Application Servers o AAS) se añaden para distribuir la carga de procesamiento.

En arquitecturas modernas de alta disponibilidad, el servidor de enqueue puede ejecutarse en una instancia separada (ASCS - ABAP Central Services) para protegerlo mediante clustering y garantizar la disponibilidad del sistema incluso si la instancia central falla.

Work processes

Los work processes son los componentes que ejecutan realmente las peticiones de los usuarios en SAP. Cada instancia de aplicación contiene un conjunto de work processes de diferentes tipos, cada uno especializado en un tipo de tarea específico.

Los work processes de diálogo (Dialog Work Processes o DIA) procesan las transacciones interactivas de los usuarios. Cuando un usuario ejecuta una transacción, el dispatcher asigna un work process de diálogo disponible para procesar su petición.

Los work processes de background (Background Work Processes o BTC) ejecutan trabajos programados y procesos batch que no requieren interacción del usuario. Los work processes de actualización (Update Work Processes o UPD) gestionan las actualizaciones asíncronas de la base de datos. Los work processes de spool (Spool Work Processes o SPO) gestionan la impresión y generación de documentos.

El número y tipo de work processes en cada instancia debe dimensionarse cuidadosamente según la carga de trabajo esperada. Demasiados work processes pueden saturar la memoria del servidor, mientras que muy pocos provocan colas de espera y degradación del rendimiento.

Dispatcher

El dispatcher es el componente que distribuye las peticiones entrantes a los work processes disponibles. Actúa como punto de entrada de la instancia y gestiona la cola de peticiones cuando todos los work processes están ocupados.

Cuando una petición llega al dispatcher, este busca un work process del tipo adecuado que esté libre. Si todos los work processes están ocupados, la petición se encola y el usuario ve un mensaje de espera. El dispatcher también se encarga de terminar work processes que se quedan bloqueados o consumen recursos excesivos.

Gateway

El gateway es el componente responsable de la comunicación entre sistemas SAP y entre SAP y sistemas externos. Gestiona las conexiones RFC (Remote Function Call) que permiten que un sistema SAP invoque funciones en otro sistema.

Cada instancia SAP tiene su propio proceso gateway que escucha en puertos específicos. El gateway mantiene una tabla de conexiones RFC registradas y enruta las llamadas RFC entrantes al work process o programa externo correspondiente.

Arquitectura de memoria

SAP utiliza varias áreas de memoria con propósitos diferentes. La memoria compartida (shared memory) contiene datos a los que todos los work processes de una instancia necesitan acceder, como buffers de tablas de la base de datos, programas ABAP compilados y datos de configuración del sistema.

Cada work process tiene su propia memoria privada (private memory) para procesar las peticiones actuales. Esta memoria se libera cuando el work process termina de procesar una petición y queda disponible para la siguiente.

La memoria extendida (extended memory) es un pool de memoria compartida del que los work processes pueden solicitar memoria adicional cuando necesitan procesar peticiones grandes que no caben en su memoria privada inicial. Una configuración incorrecta de estos parámetros de memoria es una causa frecuente de problemas de rendimiento.

Comunicación entre componentes

Los diferentes componentes del sistema SAP en capas se comunican mediante protocolos y mecanismos específicos. Los clientes SAP GUI se conectan al dispatcher usando el protocolo DIAG (Dynamic Information and Action Gateway).

Los servidores de aplicación se comunican con la base de datos utilizando interfaces nativas de cada base de datos o la interfaz común DBI (Database Interface) de SAP. La comunicación entre sistemas SAP se realiza principalmente mediante RFC, aunque también se utilizan otros protocolos como HTTP para aplicaciones web y OData para servicios Fiori.

Message Server

El message server es un componente crítico que coordina la comunicación entre las diferentes instancias de aplicación en un sistema SAP. Mantiene información actualizada sobre qué instancias están activas, cuántos work processes libres tiene cada una y qué grupos de logon existen.

Cuando un usuario se conecta al sistema SAP utilizando un grupo de logon, el message server consulta su tabla de disponibilidad y redirige al usuario a la instancia menos cargada en ese momento. Esto permite balancear automáticamente la carga entre servidores.

Enqueue Server

El enqueue server gestiona los bloqueos (locks) de registros en la base de datos para garantizar la consistencia de los datos cuando múltiples usuarios trabajan simultáneamente. Cuando un usuario modifica un documento, el sistema solicita un lock al enqueue server para ese registro específico.

En arquitecturas de alta disponibilidad, el enqueue server puede configurarse en modo replicado (Enqueue Replication Server) para evitar que sea un punto único de fallo. Si el enqueue server principal falla, el replicado asume automáticamente sin pérdida de locks.

Preguntas Frecuentes (FAQ)

¿Qué es una instancia SAP?

Una instancia SAP es un grupo de procesos y servicios que se inician y detienen simultáneamente en un servidor físico o virtual, identificada por un número de instancia de dos dígitos.

¿Para qué sirven los Work Processes?

Son los procesos que ejecutan las tareas del sistema. Los hay de diálogo (interacción de usuario), background (procesos por lotes), update (actualización de DB) y spool (impresión).

¿Qué es el mandante (client) en SAP?

El mandante es una unidad lógica y organizativa dentro de un sistema SAP que tiene sus propios datos maestros, tablas y registros, permitiendo que múltiples entornos (como diferentes empresas) residan en el mismo sistema físico.

Temas relacionados

Para profundizar en estos conceptos fundamentales, consulta:

Capas del sistema SAP para entender cómo se organizan estos componentes en una arquitectura multinivel.

Arquitectura SAP ECC y Arquitectura SAP S/4HANA para ver cómo estos conceptos se aplican en versiones específicas del producto.

Escalabilidad y dimensionamiento para calcular cuántos work processes y qué configuración de memoria necesita tu sistema.

SAP BASIS para conocer las tareas operativas relacionadas con estos componentes.