SAP Application layer
The application layer is the heart of an SAP system, the tier where business logic actually executes. It sits between the presentation layer (what users see) and the database, running the ABAP programs that make SAP do what it does.
The SAP application layer is one or more application-server instances, each running work processes under a dispatcher that execute the ABAP and, where relevant, Java code. Dialog processes handle user steps, background runs jobs, update posts asynchronous database changes, enqueue manages locks and spool prints. Shared memory buffers spare the database, and scaling adds instances behind the message server.
- Dialog: handle interactive user steps.
- Watch out: Misconfiguring work-process ratios, e.g. too few background processes.
What runs here
The application layer consists of one or more application-server instances. Each runs a set of work processes, controlled by a dispatcher, that execute the ABAP (and, where relevant, Java) code implementing SAP’s business logic. When a user acts, their request is handled here, and any data needed is fetched from the database layer.
Work-process types
- Dialog: handle interactive user steps.
- Background: run scheduled/batch jobs.
- Update: perform asynchronous database updates.
- Enqueue: manage locks to protect data consistency.
- Spool: handle printing and output.
Scaling the application layer
You scale by adding application-server instances, all connecting to the one database, with the message server balancing load across them. This horizontal scaling is how SAP handles thousands of concurrent users.
Common pitfalls
- Misconfiguring work-process ratios, e.g. too few background processes.
- Ignoring buffering, poor buffering hammers the database.
- Assuming one instance in production sizing.