SAP is having a 3 tier client-server architecture containing the Presentation Server, Application Server and Database server.
This is the displayed part for a user. It’s a program named sapgui.exe. It usually installed on a user’s computer. Starting this application will open the SAP window in user computer. This program is responsible for sending all the inputs from a user to application server and retrieving the data from application server and display for user. As the name says it is a SAP Graphical User Interface for presenting before a user. We can start an executable ABAP program in SAP GUI , but the execution takes place only in Application Server.
Application Server is responsible for interpreting the ABAP programs. It cotains several executable programs and every program will start automatically when an Application Sever started. It has a configuration file calls application server profile which contains mainly the following things.
- Number and type of each process.
- Amount of memory for each process
- Length of time a user is inactive before being automatically logged off
The following diagram shows the application server architecture.
All the requests from presentation server will first reach to a dispatcher and will write in a queue. From the dispatcher queue each request will come out on first come first out ( FIFO) basis and a first available work process will allocate to each of these process. A work process can handle only one request at a time. For every request, work process need to use following two special memory areas.
- User Context (Contains the information about the user)
- Roll Area (Contains the information about the program)
If the ABAP program requires any data from the database a request will sent to database server from application server.
Database server contains several executable files to process the requests from Application Server. After the processing of Application Server request, it will send a request to RDBMS (Relation database management System). RDBMS will send the data back to database server and database server will send this data to Application Server.
This is only basic introduction about the R3 architecture. There are several other things like memory areas and all to know more details about this. Those things will be described in other posts.