Application Development Blog Posts
Learn and share on deeper, cross technology development topics such as integration and connectivity, automation, cloud extensibility, developing at scale, and security.
cancel
Showing results for 
Search instead for 
Did you mean: 
horst_keller
Product and Topic Expert
Product and Topic Expert


SAP NetWeaver comprises something called Application Server ABAP - there is even an own area reserved for it in SDN - but what is Application Server ABAP? What is its role in SAP NetWeaver and which services does it offer? To solve this question, we must have a look at the different usages of the term "application server" in the ABAP environment.

 

SAP NetWeaver Application Server

 

SAP NetWeaver offers of a set of different components - so called "usage types". Important "usage types" include:

 

  • Business Intelligence (BI)

  • SAP NetWeaver Portal (EP)

  • Mobile Infrastructure (MI)

  • Process Integration (PI)


 

and - tataah! - an

 

  • Application Server (AS)


 

The "usage type" Application Server (AS) plays a very central role. It is responsible for the persistent storing of data and its processing. For this, it offers programming interfaces that allow other components of SAP NetWeaver, such as the SAP NetWeaver Portal, to request data, have it edited, or store it. The primary data storage of a NetWeaver AS is usually a central database.

 

The application server essentially offers two programming interfaces, ABAP and Java. Or in other words, the Application Server "usage type" in SAP NetWeaver comprises two "usage types": the Application Server ABAP (AS ABAP) and the Application Server Java (AS Java). Both application servers work on different data (different database schemes that can nevertheless be located in the same database). When you install an application server, you can install either one of the two variants, or you can install both variants at the same time. Then, they are linked together via a special programming interface, the so called Java Connector (JCO).

 

Application Server ABAP

The Application Server ABAP (AS ABAP) allows you to program applications in ABAP. For this it provides the ABAP runtime environment (a virtual machine for ABAP programs), the ABAP Workbench, and an integrated change and transport system (CTS). The following figure shows shows an overview of its most important components.

 



 

AS ABAP can be used either by people using user interfaces (Web Browsers or SAP GUI) or by other software components through the network. For the latter two main protocols are used: HTTP/HTTPS/SMTP for Internet connections (controlled by the so-called Internet Communication Manager, ICM) and SAP's own Remote Function Call (RFC) protocol (via the RFC interface).

Most of the components of AS ABAP can be divided into three layers:

 

  • Presentation Layer

    These components are responsible for the presentation of data for users and the receiving of user entries. When web browsers are used as user interfaces, HTML pages prepared in the presentation layer are accessed by application programs through the classes and interfaces of the Internet Connection Framework (ICF), which wrap the HTML pages. The presentation in a web browser is based on Web Dynpro ABAP (MVC-based technology for creating platform-independent web-based interfaces) and also still Business Server Pages (BSP, HTML pages that incorporate server-side scripts written directly in ABAP). When you use the SAP GUI that is available in versions for MS Windows, Java and Web Browser, user interfaces are displayed in windows that are based on the (classical) dynpro technology. The layout of a dynpro can contain a set of predefined screen elements or GUI controls (wrapped by the classes of a Control Framework, CFW).

  • Application Layer

    Here, application programs are executed. The application layer contains a kernel written primarily in C/C++ that serves as a platform for the application programs. The kernel of AS ABAP provides Virtual Machines for ABAP with ABAP Objects (main programming interface of AS ABAP for business applications), XSLT and ST (transformation languages for transforming ABAP data to XML and vice versa), and still JavaScript (obsolete, server-side scripting in BSPs beside ABAP).

  • Persistence Layer

    Here, persistent data is held in a database. The database is accessed by ABAP programs through the database interface of AS ABAP that is subdivided into an Open SQL interface and a native SQL interface. Open SQL is a subset of the Structured Query Language (SQL) realized directly by ABAP statements. Native SQL are database-specific SQL instructions that are passed directly to the database system (either statically or dynamically via ADBC).


 

The other components are communication components:

 

  • Internet Communication Manager (ICM)

    The ICM allows the AS ABAP to communicate with the Internet via HTTP/HTTPS/SMTP. It is the basis for webbased presentation components such as Web Dynpro ABAP and BSP and it enables an AS ABAP to act both as a client and as a server for Web services ABAP programs access the ICM through the classes and interfaces of the Internet Communication Framework (ICF)

  • RFC Interface

    Classical functional interface of AS ABAP. A Remote Function Call (RFC) is an invocation of a function that is located in a different system than the one in which the calling program is running. Calls are possible between different AS ABAPs, or between an AS ABAP and another system (JCO communication also takes place via the RFC interface).


More Application Servers ...

Now, that we know the Application Server ABAP, what other application servers do we have to look at? Well, the application layer of the AS ABAP is not a single unit, but is distributed across several parallel software units to make it scalable. These software units are connected by a message server and for historical reasons are also called application servers.

With other words: one AS ABAP (sy-sysid) can be distributed over several application servers. Usually these application servers are installed on several machines. As a matter of fact, each application server can handle only its own memory (programs, data) and there is no access to the memory of other application servers, even within the same AS ABAP. Each application server provides a range of services that are implemented by so-called work processes. Each ABAP program is executed by an appropriate work process on such an application server. Each work process is connected to the central database of the AS ABAP as a user.

In short: ABAP programs run on application servers that communicate with the presentation layer, the central database layer, and between each other via the message server. An ABAP program can only access memory that belongs to the current application server.

 

And a last one ...

Finally, I should not forget to mention, that the machines on which the application servers of the application layer of an AS ABAP physically run are also referred to as "application servers".

Therfore, if you install the ABAP Trial Version on your PC, your machine becomes an "application server" (sy-host), that hosts an AS ABAP consisting of a presentation layer, a persistence layer and an application layer which itself contains a software unit called application server with an own memory management and several work processes. Call transaction SM51 to find out more! Double clicking the application server's name will show you the work processes.

 

Further reading

In Chapter 3 of the book "ABAP Objects  ABAP Programming in SAP NetWeaver" you find more details about application servers and the ABAP runtime environment.

4 Comments