Start of Content Area

Background documentation ABAP and the SAP NW Application Server  Locate the document in its SAP Library structure

Overview

If you have experience in programming or languages such as Java and C, you have probably asked yourself why, in the context of ABAP, we speak of the programming environment of the server. In ABAP, you program on the server from the outset. You do not develop the programs locally on your PC, nor do you store the sources in a versioning system or deploy the programs on the server at a later stage.

To program with ABAP, you therefore require access to and developer authorization for the SAP NW Application Server ABAP. You write your programs using the ABAP Editor of the ABAP Workbench, which is also part of the server. Once you activate your source code, platform-independent byte code is generated, which the runtime environment interprets for the program execution.

However, the SAP NW Application Server ABAP not only contains the programming environment with its tools and those for supporting the software lifecycle. ABAP programs always run on the SAP NW AS ABAP and the architecture of the environment in which they run must be taken into account when designing these programs. For this purpose, you first require some information about this architecture.

The Layers of the SAP NW Application Server

The SAP NW Application Server ABAP consists of three layers: presentation, application, and database. The database layer of a system is made up of a central database with a database management system and the database itself. It not only contains the user data, but also the entire program code of the SAP NW AS and application programs, all administrative data, and Customizing settings.

The application layer lies between the database layer and the presentation layer. It consists of one or more application servers (more than 100 servers possible) and a single message server, which is responsible for communication and load distribution within this layer. The programs that process the business logic of an application run in this layer. Technically, the actual processing takes place in work processes, which represent operating system processes. A fixed database connection is assigned to each work process. There is no fixed assignment of users to work processes. A lengthy user session can utilize different work processes sequentially.

The kernel and the Basis services make up the part of the application layer that is specific to both the operating system and the database. They are responsible for user and process management, database access, communication with other systems, as well as system monitoring and administration. The software processes or virtual machines, that interpret the platform-independent byte code as operating system-specific machine language commands, run in the kernel.

The presentation layer represents the interface with the user and is responsible for the screen display. This layer receives user entries – that is, mouse-clicks and keyboard input – and passes them on to the application layer. Furthermore, it receives data from the application layer and displays it to the user.

The purpose of this layering is high performance and scalability. The layer division is purely logical. It does not imply over how many machines the system is distributed. All three layers can actually run on a single computer. However, in the case of large, production applications of customers, this is more of a theoretical possibility, since it would counteract the scalability of the three-level architecture. For demonstration purposes, such as in the case of the mini Basis, it is possible to install all three layers on a single PC. In a production operation, the database usually has a separate machine, as it contains all program, Customizing, and user data. The application layer is spread across several machines, depending on the anticipated load, while the presentation layer runs on the workstations of the individual users.

What Does All this Mean for the Programmer?

The layers communicate with one another via network connections, meaning that programmers need not concern themselves with these connections. When you write application programs, these run in the application layer in work processes. Therefore, there is always an open database connection. The specifications of the individual database are of just as little concern to you as the operating system. The kernel is responsible for the communication with all supported operating systems and databases. Therefore, you can program platform-independently. 

 

End of Content Area