What is SAP R/3?
SAP R/3 is a 3 tier architecture consisting of 3 layers
In simple words, it’s a client server architecture.
- R signifies Real-time system
- 3 represents - 3-tier architecture.
User's PC:- Users can access SAP system in two ways:-
- Through SAP GUI
- Through Web browser
It's called front-end. Only the front-end is installed in the user's PC not the application/database servers.
Front-end takes the user's requests to database server and application servers.
Application Servers: - Application server is built to process business-logic. This workload is distributed among multiple application servers. With multiple application servers, the user can get the output more quickly.
Application server exists at a remote a location as compared to the location of the user PC.
Database Server: -Database server stores and retrieves data as per SQL queries generated by ABAP and Java applications.
Database and Application may exist on the same or different physical location.
Understanding different SAP layers
The Presentation Layer contains the software components that make up the SAPgui (graphical user interface). This layer is the interface between the R/3 System and its users. The R/3 System uses the SAPgui to provide an intuitive graphical user interface for entering and displaying data.
The presentation layer sends the user's input to the application server, and receives data for display from it. While a SAPgui component is running, it remains linked to a user's terminal session in the R/3 System.
The Application Layer consists of one or more application servers and a message server. Each application server contains a set of services used to run the R/3 System. Theoretically, you only need one application server to run an R/3 System. In practice, the services are distributed across more than one application server. The message server is responsible for communication between the application servers. It passes requests from one application server to another within the system. It also contains information about application server groups and the current load balancing within them. It uses this information to assign an appropriate server when a user logs onto the system.
The Database Layer consists of a central database system containing all of the data in the R/3 System. The database system has two components - the database management system (DBMS), and the database itself. SAP has manufactured its own database named Hana but is compatible with all major databases such as Oracle.All R/3 data is stored in the database. For example, the database contains the control and customizing data that determine how your R/3 System runs. It also contains the program code for your applications. Applications consist of program code, screen definitions, menus, function modules, and various other components. These are stored in a special section of the database called the R/3 Repository, and are accordingly called repository objects. R/3 repository, objects are used in ABAP workbench.
Understanding the components of SAP R/3 3-tier Architecture:-
ABAP+Java System Architecture
- Message Server:It handles communication between distributed Dispatchers in ABAP system.
- Dispatcher Queue: Various work process types are stored in this queue.
Dispatcher: It distributes requests to the work processes.
Gateway: It enables communication between SAP system and between SAP system and external systems.
ABAP-Work processes: - It separately executes dialog steps in R/3 applications.Types of work processes are given as below:-
Memory-pipes: It enables communication between ICM and ABAP work processes.
Message Server: It handles java dispatchers and server processes.It enables communication within java runtime environment.
Enqueue Server:It handles logical locks that are set by the executed Java application program in a server process.
Central Services: Java cluster requires a special instance of the central services for managing locks and transmitting messages and data. Java cluster is a set of processes that work together to build the reliable system. Instance is group of resources such as memory, work processes and so on.
Java Dispatcher: It receives the client requests and forwards to the server process.
SDM: Software Deployment Manager is used to install J2EE components.
Java Server Processes: It can processes a large number of requests simultaneously.
Threading: Multiple Processes executes separately in the background, this concept is called threading.
ICM: It enables communication between SAP system and HTTP, HTTPS, SMTP protocol. It means by entering system URL in the browser you can access SAP from browser also.
One more component is JCO. JCO is used to handle communication between java dispatcher and ABAP dispatcher when system is configured as ABAP+Java.
How the SAP Logon Process works?
Step 1) Once a user clicks on the SAP system from GUI, the user request is forwarded to Dispatcher.
Step 2) Request is stored in Request queues first. Dispatcher follows First in First out rule. It will find free work process and if available will be assigned.
Step 3) As per user request, particular work process is assigned to user. For example, when user login to the system then Dialog work process is assigned to the user. If user runs a report in background then background work process is assigned to the user.When some modifications are done at database level then update workprocess is assigned.So as per user's action workprocess is assigned.
Step 4) Once user is assigned the dialog workprocess then user authorizations, user's current setting are rolled in to work-process in shared memory to access user's data.Once dialog step is executed then user's data is rolled out from workprocess. Thus shared memory will be cleaned and other user's data can be saved in shared memory area. Dialog step means the screen movements. In a transaction, when a users jumps from one screen to other the process is called a dialog step.
Step 5) First work process will find the data in the buffer. If it finds data in buffer then there is no need to retrieve data from database. Thus response time is improved and this process is called hit.If it does not find the data in buffer then it will find the data in database and this process is called miss. Hit ratio should be always higher than miss ratio. It improves the performance of system .
Step 6) Other requested data is queried from the database and once the process is complete,the result is sent back to GUI via dispatcher.
Step 7) At the end user's data is removed from shared memory so the memory will be available to other users.This process is called roll-out.