You are on page 1of 9

Architecture of the SAP

With the SAP Web Application Server you can implement both server-based and client-based Web applications. Server applications (for example, online shops or portals) can be created in the integrated development environment or in an external tool. These applications can contain Web pages as well as static HTML code and dynamic script code. The SAP Web Application Server can execute depending on your chosen installation option ABAP and/or Java programs. This means you can use the ABAP-based Business Server Pages and a Java technology (JSP, etc.) to create Web applications. Integration The SAP Web Application Server is the application platform of the SAP NetWeaver, which is the basis for the other NetWeaver components.

Installation Options
There are the following installation options for the SAP Web AS:

SAP Web Application Server ABAP System. In the graphic these are the components in the yellow box on the left. SAP Web Application Server Java System. In the graphic these are the components in the green box on the right. For more information see the Java Architecture Manual under Java Cluster Architecture. SAP Web Application Server ABAP+Java System. These are all the components of the graphic. For details see SAP Web Application Server with ABAP and Java.

[Type text]

Page 1

The components and their tasks are described below:

The Internet Communication Manager (ICM) sets up the connection to the Internet. It can process both server and client Web requests. It supports the protocols HTTP, HTTPS, and SMTP. The SAP Web AS can behave as a Web server or as a Web client (see SAP Web Application Server: Web Server or Web Client) The dispatcher distributes the requests to the work processes. If all the processes are occupied the requests are stored in the dispatcher queue. The ABAP Work Process executes the ABAP code.

The SAP Gateway makes the RFC interface between the SAP instances available (within an SAP System and beyond system boundaries). For information on the architecture see Architecture of the SAP Gateway. The message server exchanges messages and balances the load in the SAP System. Java Dispatcher,

In the Java component of the SAP Web AS there are the components Server Process and Software Deployment Manager.

In the documentation on the Client/Server Technology you can find links to the administration options for the components.

Business Server Pages


Purpose The SAP Web Application Server provides a page-based programming model with serverside scripting as well as server page technology for developing, designing and implementing Web applications: Business Server Pages (BSP). Server-side scripting enables direct access to all elements in the application server (such as function modules, database tables, ABAP Objects, and so on.). In the Web Application Server, the presentation is separate from the business logic. This makes it possible to implement front-end technology. You can create HTML pages or Business Server Pages (BSPs) with server-side scripting in ABAP or JavaScript. When creating your application, you can take advantage of the Model View Controller design patterns. The HTMLB and XHTMLB HTML Business libraries are available as BSP Extensions for a uniform layout and its associated usability advantages. [Type text] Page 2

Example In addition to the examples described in the den BSP Tutorials, additional sample applications are available and delivered in the system. The most important applications are listed below. Sample BSP Applications Name of the BSP application IT00 HTMLB_SAMPLES SBSPEXT_HTMLB SBSPEXT_XHTMLB SBSPEXT_PHTMLB BSP_MODEL Description

Test application Examples of the HTML Business library

Examples of the enhanced HTML Business library Examples of the Pattern HTML Business library Example of the model connection as part of the MVC Design Pattern

Architecture Manual
This documentation provides an overview of the server for Java. It describes the setup of a Java cluster and the components involved. Also, it describes the system architecture of the J2EE Engine.

Integration
You can operate the J2EE Engine solely for J2EE applications or together with the SAP Web AS ABAP. The integrated scenario is described in the documentation section SAP Web Application Server with ABAP and Java. This architecture overview provides an introduction to and background information for administration and development of J2EE applications with the SAP Web AS.

SAP Web Application Server with ABAP and Java


ABAP and Java Minimal Installation The architecture of this type of system (with one instance) looks like:

[Type text]

Page 3

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

Internet Communication Manager (ICM)


Purpose The Internet Communication Manager guarantees communication between the SAP System (SAP Web Application Server) and the outside world via the protocol HTTP, HTTPS and SMTP. In its role as a server the ICM can process requests from the Internet that arrive as URLs with the server/port combination that the ICM can listen to. The ICM then calls the relevant local handler for the URL in question.

[Type text]

Page 4

In addition to the pool of worker threads that process the incoming requests, the following ICM components are implemented as further requests: Thread Control

This thread accepts the incoming TCP/IP requests and creates (or wakes) a worker thread from the thread pool to process the request. Then the thread control initializes the connection info data. Worker Threads

These threads handle connection requests and responses. A worker thread contains an I/O handler for the network input and output, diverse plugins for the various supported protocols (HTTP, SMTP,), which are required to be able to decide when the sent packet is finished (depends on the protocol). Watchdog

Usually a worker thread waits for a response (regardless of whether it is a client or a server thread). If there is a timeout the watchdog takes on the task of waiting for the response. Then the worker thread can again be used for other requests. If the watchdog receives the response, it informs the thread control component, which then wakes up a worker thread.

[Type text]

Page 5

Signal Handler

This thread processes signals that are sent by an operating system or another process (for example, the dispatcher). Connection Info

This table contains for each existing network connection details of the status, the memory pipes and the plug-in data. Memory Pipes

These memory-based communication objects are used to transfer data between the ICM and the work processes. For each connection there are four pipes: for each request and response one data pipe and an OOB (Out Of Band) pipe. The OOB pipe is used for control data. The ICM contains another cache to enable repeated requests to be quickly responded to. This cache is not shown in the graphic.

Internet Communication Framework


The Internet Communication Framework enables you to use standard protocols (HTTP, HTTPS, and SMTP) to operate communications between systems through the Internet. You do not need any additional SAP program libraries (other than the SAP Web Application Server). The only condition is that your system platform is Internet-compliant. This scenario gives you a maximum amount of flexibility in responding to varying communication requirements. Communications operated through the ICF have the following benefits: Increased security. The HTTPS protocol guarantees secure data transmission at the same level as modern security standards for RFC/SNC communication and other interfaces. Increased flexibility. Using the ICF, the user can open a connection to an SAP system across the Internet from any location. Reduced technological barriers. The open HTTP standard is used worldwide, which makes it efficient to install and configure. The Internet Communication Framework enables an application to generate a response to a request. A client (such as a Web browser) sends a HTTP request to the server. The Internet Communication Framework (ICF) forwards the request to an application. The application then gathers data as a response and sends it back to the client through the ICF. The browser displays the data in the response.

[Type text]

Page 6

The Internet Communication Framework (ICF) provides the infrastructure for handling HTTP requests in work processes in an SAP system (server and client). If you are using the system as a server, you need a HTTP Request Handler, which you can create yourself. Defining the HTTP request handler yourself allows you to use the ICF flexibly in your application. However, HTTP request handlers are also shipped with the SAP system.
Installation with Several SAP Web AS Instances

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

Internet

Each of these integrated instances of the SAP Web 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 without a central instance. Standalone Enqueue Server, and

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 [Type text] Page 7

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 messages and data. Central Services, for managing locks and transmitting

Finally, all the applications and data for ABAP and Java each have a database. Integration 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 Web Dispatcher with details of logon groups,

/sap/public/icf_info supplies the 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.
Functions 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 SAP Web AS 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.

[Type text]

Page 8

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 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. Java Dispatcher. This

[Type text]

Page 9