ITS Technology 

What is the SAP Internet Transaction Server?

The conventional method of accessing the SAP System interactively is by using the SAPgui, which displays SAP transaction screens and allows the user to interact directly with the system. It communicates with the SAP System by using a special SAPgui protocol that uses TCP/IP as its networking basis. The SAPgui has a direct network connection to the SAP Application Server via a local or wide area network. Programs can also use the SAP RFC protocol (Remote Function Call) to communicate with the SAP system.

So that you can access the SAP System with a Web browser, you need additional middleware to make the connection between SAP technology (SAP Application Servers and SAPgui) and Web technology (Web servers and browsers). This is accomplished by the ITS. It offers the services of a Web application server, however if does not do any transaction processing itself. Instead it hands all business processing to the SAP System, to which it looks exactly like a regular SAPgui. This relationship is illustrated by the following graphic:

ITS Features

Since the processing of the SAP Internet Applications Components (IACs) takes place in the SAP System, the benefits of the SAP infrastructure apply immediately to Web applications. Some of the features of ITS are:

  • Scalability
  • Handling of logon and user sessions in the SAP System
  • Transactional consistency for Web applications
  • Multi-language capabilities
  • Code page conversions
  • Full integration with the ABAP Workbench
  • Change and Transport System
  • User management and authorization concept
  • Scalability
  • Handling of logon and user sessions in the SAP System
  • Transactional consistency for Web applications
  • Multi-language capabilities
  • Code page conversions
  • Full integration with the ABAP Workbench
  • Change and Transport System
  • User management and authorization concept

ITS Architecture

The Internet Transaction Server is the link between the Web and SAP. It is composed of two separate programs: WGate (Web Gateway) and AGate (Application Gateway), which may reside on the same computer or on separate computers connected by a TCP/IP network. The graphic below shows the components of ITS which are explained in detail in the following sections:

The Web Browser

Most currently available Web browsers can be used to access SAP Internet Application Components (IACs). The HTML 3.0 standard must be supported. Some of the SAP IACs use special features like Java applets or "Dynamic HTML" which may not be supported by all browsers.

The Web Server

The Web server is the interface between the Internet/Intranet and the ITS. It has the following functions:

  • Forwards specific requests to the WGate through one of the supported interfaces and transmits the dynamically generated HTML pages back to the client.
  • Delivers static information, such as pictures embedded in HTML pages, directly from the file system of the Web server machine.

The Web server automatically loads the WGate when a certain URL is called. This URL typically has the form

http://<server>/<path-to-wgate>/wgate/<service>/!

, for example http://www.flexicorp.com/scripts/wgate/va01/! .

Here the directory

scripts is a virtual directory of the Web server that allows the execution of CGI programs or server extension DLLs. The parameters after wgate/ are passed to the entry function of the DLL. In this case the parameters tell the ITS to start a service called va01 .

For a list of Web servers supported by ITS see the brochure SAP System Requirements (available in SAPnet under

http://sapnet.sap-ag.de/SSR ).

WGate

The WGate component connects the ITS to the Web server. The WGate is always located on the same computer as the Web server. The following standard Web server interfaces are supported:

  • Microsoft Information Server API (ISAPI)
  • on Windows NT. The Microsoft Information Server API loads the WGate into the Web server process as a dynamic link library (DLL).
  • Netscape Server API (NSAPI)
  • on Windows NT. The Netscape Server API also loads the WGate into the Web server process as a DLL.
  • Common Gateway Interface (CGI)
  • on Windows NT, UNIX and AS/400 (as of Release 4.5A). On the UNIX and AS/400 platforms, the Common Gateway Interface starts the WGate as an external executable program.

The WGate receives requests from the Web server, establishes a connection to the AGate and forwards the requests. No data processing is done by the WGate except when an error during communication with AGate occurs. In this case the WGate generates an error message.

One WGate is configured for communication with exactly one AGate. Each WGate instance has a name which is equal to the name of the corresponding AGate.

AGate

The AGate program is implemented as a Windows NT service. It runs on the Windows NT 4.0 operating system on Intel processors. Although the AGate can be located on the same machine as the WGate, we recommend that you keep the two components on two separate machines for productive use.

The AGate is responsible for managing communication to and from SAP, including:

  • Establishing the connection by using SAPgui or RFC protocols
  • Generating the HTML documents for the SAP applications
  • Managing user logon data
  • Managing session context and time-outs
  • Code page conversions and national language support

Multiple AGate instances can be installed on the same computer. Each instance has a unique name.

The SAP System

The ITS accesses the SAP System just like any SAPgui or RFC client program would. It can use different SAP Systems for different Web services. All logon methods, such as load balancing with the SAP message server, are supported by the ITS. No special technical provisions have to be made in the SAP System to use IACs.

ITS Administration Interface

ITS features an HTML based administration tool that allows you to configure, control and monitor ITS instances. You can use it to:

  • Monitor ITS instances, either individually or all together
  • Monitor ITS performance
  • Start or stop ITS instances or their corresponding Web servers
  • Set ITS configuration parameters and security settings
  • View ITS service file settings
  • View registry settings
  • View NLS (national language support) information

For details see the SAP Online Documentation.

ITS Installation Options

The two components of the ITS, AGate and WGate, can either be installed on a single computer (single-host installation) or on two separate machines (dual-host installation). Multiple ITS instances can be installed on one computer, just like multiple SAP system instances. These options are explained in the following sections.

Single Host and Dual Host Installation

The simplest configuration is to install the Web server, WGate and AGate all on one computer running Windows NT 4.0 on an Intel processor. This setup is sufficient for test or development purposes with small load ("personal ITS"). It is not suited for serving the Internet.

In order to cope with heavier load or to meet higher security demands the ITS functions can be split between two computers. In a productive environment this dual-host configuration is advisable. The first computer runs the Web server and the WGate. It has to be connected to the client access network (Internet and/or intranet). The second computer runs the AGate. It is connected to the WGate via TCP/IP network and handles all communication with the SAP System.

The following graphic shows the single- and dual-host installation. Since the AGate is available in a version for Windows NT 4.0 on Intel only, this is the only platform supported for the single-host installation. In dual-host installations the WGate can also run on a UNIX or AS/400 host.

ITS Instances

You can install more than one ITS instance (also called "virtual ITS instances") on one computer. Each instance has a unique name and runs as a separate Windows NT service. The executable files are shared with all of the AGates on a single computer allowing only one ITS version to be installed on a single computer.

Most supported Web servers also allow multiple virtual Web servers on one computer. Web server instances also have names by which they can be distinguished. There are three ways to access the different Web server instances located on one computer:

  • The computer has multiple IP addresses. The addresses can be assigned to one or more Network Interface Cards (NICs).
  • The Web servers use different TCP ports. For example, one server can use the standard port number 80, another server uses port number 1080.
  • The HTTP header field "Host". In this case the single IP address of the Web server has multiple alias names assigned to it. Now all requests to the different server names actually reach the same computer. The Web server can still distinguish the requests by means of a field in the HTTP request which specifies the name of the server that the request is sent to. This feature is part of HTTP Version 1.1. Although most browsers do not fully implement this standard, the Host field is supported by most browsers, even older ones (Internet Explorer, Netscape Navigator and Opera versions 3.0 or higher). This feature does not work with SSL encrypted HTTP.

If you use multiple virtual Web servers with WGates that you want to connect to different AGates then you must make sure that these Web servers run in separate processes or memory spaces. Otherwise only one WGate would be present in memory. The Netscape Enterprise Server does this automatically. In IIS 4.0 you have to check the option "run in separate memory space" in the properties page of the Web server instance and reboot the computer. Note that this option may seriously affect the performance of the Web server.

This installation variant is useful for Web applications with a small load, such as development and test systems. The ITS administration tool (see online documentation) should also be installed as a separate ITS instance on every AGate computer.

SAP Internet Application Components Technology

A Web application with ITS is called an SAP Internet Application Component (IAC). An IAC consists of different components. Some of them reside on the ITS server, some in the SAP system. The ITS offers the following technologies for setting up Internet Applications:

  • WebTransactions
  • are Web-enabled SAP Transactions. They are screen-based and follow a dialog flow just like normal SAP transactions. This implies that WebTransactions are usually stateful, which means that the SAP applications server holds a memory of the current application state. Subsequent dialog steps use the information of previous steps. After completion of all necessary steps, the transaction is terminated and either commits the result to the database or rejects all changes made so far.

The state of the application data is kept in the SAP system. The ITS has to keep only the state of the SAP screen in order to synchronize it with an appropriate Web page. It generates a new Web page dynamically for every SAP transaction screen. This is done with the help of templates which are written in an ITS specific programming language called "HTML Business". Additional resources such as language and theme files are used to simplify the task of multi language support and Web page design.

The following figure shows how the components that make up a WebTransaction work together. It also shows the communication that takes place between browser, ITS and SAP System.

  • WebRFC
  • communicates directly with ABAP function modules. These function modules act like CGI scripts in that they process user input to create dynamic Web pages. WebRFC is a low-level programming interface.

Only function modules that implement a specific interface can be used by WebRFC. The function module must evaluate the Web request arguments, execute the corresponding business functions, and generate an internal table which contains the HTML page that is then sent back to the browser. Alternatively, it can create a binary MIME object and send this to the browser, for example, a graphic or Excel chart. The ITS handles logon management and error conditions for the programmer; the functionality must be implemented entirely by the function module.

The following diagram shows how a WebRFC application works:

  • WebReporting
  • allows you to call (almost) any ABAP report or list from the Web. It is based on WebRFC. The ITS calls a special ABAP function module in the SAP System to execute the report. Web pages for the selection screen are generated automatically by this function module. Then it calls the report and converts the output data to HTML and returns it to the ITS, which uses HTTP to pass it back to the Web browser. The conversion is aided by templates that are different from ITS templates in that they reside in the SAP System and do not use the HTML Business language.

The following diagram shows how an SAP report is processed for the Web:

Services

The representation of an Internet Application Component (IAC) in the ITS is called a "service". It consists of all components needed to run this application, such as templates, language resources, graphics and so on. Every service also has a "service file" that contains the settings required to connect and log on to the SAP System. Depending on the application it may contain an SAP user name and password. See

ITS Security for details about service users and named users and the security issues related to these concepts. If user name and password are missing from the service file, ITS generates a login window prior before it starts the IAC.

The service is specified in the URL that the browser sends to start the application. This URL looks like

http://www.mycorp.com/scripts/WGate/online-shop/!
where online-shop is the name of the service. The ITS now looks for a file called online-shop.srvc for the service information. If this file does not exist, ITS issues an error message.

The ITS usually has one additional master service file called

Global.srvc which contains service information applicable to all applications executed by this specific ITS. Typically, SAP connection information, such as the system ID and system number, is stored here. The settings made in this file can be overridden by the service file for the specific application.

The following graphic shows the relationship between the global and the application-specific service file. A list of all service parameters can be found in the SAP Online Documentation.