SAP NetWeaver Application Server with ABAP and Java


You can install the SAP NetWeaver AS in various ways. You will find the installation options in Architecture of the SAP NetWeaver AS.

The following describes the integrated version with ABAP and Java.

ABAP and Java Minimal Installation

The architecture of this type of system (with one instance) looks like:

This system provides the following functions:

·        Operation using SAPGUI

Users log on to the dispatcher and work processes perform the users’ tasks.

·        Processing Web requests

Web requests are received by an Internet Communication Manager ( ICM). These HTTP(S) requests may be designated for the Internet Communication Framework ( ICF), that is, processed in an ABAP work process (for example, BSP Applications), or they may be J2EE requests, designated for the J2EE Engine.

With the help of the URL the ICM decides where it will forward the request to (see below).

Installation with Several SAP NW AS Instances

The following graphic shows an SAP System with three instances:

As the system should offer ABAP and Java, each instance must contain an Internet Communication Manager (ICM) that can receive Web requests.

Each of these integrated instances of the SAP NW AS contains the (ABAP) dispatcher and its work processes, which can process the ABAP programs, as well as the Java dispatcher and its server processes, to which it distributes the incoming J2EE requests.

One of the instances must provide must be installed as the (ABAP) central instance, that is, offer the enqueue service. Alternatively, the system can be set up with the Standalone Enqueue Server, and without a central instance.

Of course, you do not have to use the Web Client to log on to an SAP System – you can also log on from the SAP GUI menu. If log on groups are set up here, the message server determines the application server that the SAP GUI connects to. The function of the message server in the ABAP environment is to transfer requests between the application servers.

The Java cluster requires a special instance, the Central Services, for managing locks and transmitting messages and data.

Finally, all the applications and data for ABAP and Java each have a database.


To operate the J2EE Engine, the following services must be active in the HTTP service tree (Transaction SICF):

·        /sap/public/icman: The ICM uses this service to forward requests to the J2EE Engine.

·        /sap/public/icf_info supplies the SAP Web Dispatcher with details of logon groups, server load, etc.

These services must be activated so that the SAP Web dispatcher and the ICM can forward the request correctly.

If these services are not active, you have to activate them in transaction SICF, as described in Activating and Deactivating ICF Services.


Distributing HTTP Requests Using the SAP Web Dispatcher

The SAP Web Dispatcher is the central access point from the Internet into the SAP System. The SAP Web dispatcher has to decide to which application server it will send each incoming request. The procedure for this is described in section Server Selection and Load Balancing Using the SAP Web Dispatcher.

You can also use another load balancer (software or hardware) to distribute the HTTP(S) requests. However, SAP does recommend the SAP Web dispatcher, as this is designed especially for the SAP environment, distributes requests to the system efficiently, and requires minimal configuration.

Processing HTTP(S) Requests Using the ICM

For each incoming HTTP request, the ICM must decide whether it should forward the request for processing to the ABAP engine (the ICF) or to the J2EE engine.

This decision is made using the URL prefix. The ICM uses the same procedure as the SAP Web Dispatcher.

Communication Between the ICM and Java Dispatcher

A separate protocol is used for the communication between the ICM and Java Dispatcher. This protocol is described in Communication Between ICM and J2EE Engine.

Caching in the ICM

You can also use the Internet Server Cache with the J2EE server, in order to store HTTP responses (such as HTML pages or images). The next time, the request can be retrieved directly from the cache.