Web Application Server
Architecture of the SAP Web Application Server
SAP Web Application Server Components
Internet Communication Manager (ICM)
HTTP Plug-In
Logging in the ICM
Binding Ports Lower Than 1024 on UNIX
Error Handling Using the ICM
Examples of a Dynamic Error Page
Internet Server Cache
Cache Key
Identifying Objects
Manipulating Cache Properties
Invalidating Objects in the Cache
Search Sequence in the ICM Server Cache
Storing Data Objects in the ICM Server Cache
Caching BSPs
ICM Server Clipboard
Parameterizing the ICM and the ICM Server Cache
Sample Profile for the ICM
exe/icman
rdisp/start_icman
icm/plugin_<xx>
icm/server_port_<xx>
Binding Ports Lower Than 1024 on UNIX
icm/HTTP/j2ee_<xx>
icm/host_name_full
icm/min_threads
icm/max_threads
icm/min_spare_threads
icm/max_services
icm/max_plugins
icm/req_queue_len
icm/listen_queue_len
icm/max_conn
icm/max_sleep
icm/<PROT>/context_quota
icm/accept_remote_trace_level
icm/ccms_monitoring
icm/keep_alive_timeout
icm/conn_timeout
icm/wp_mpi_available
icm/wp_roll_timeout
icm/dpj2ee
icm/HTTP/file_access_<xx>
icm/HTTP/redirect_<xx>
icm/HTTP/logging_<xx>
Logging in the ICM
icm/HTTPS/verify_client
icm/HTTP/server_cache_<xx>
icm/HTTP/server_cache_<x>/max_entries
icm/HTTP/server_cache_<xx>/clear
icm/HTTP/server_cache_<xx>/expiration
icm/HTTP/server_cache_<xx>/max_name_len
icm/HTTP/server_cache_<xx>/max_ufo_entries
icm/HTTP/server_cache_<xx>/size_MB
icm/HTTP/server_cache_<xx>/memory_size_MB
icm/HTTP/server_cache_<xx>/ufo_list
icm/HTTP/server_cache_<xx>/ufo_expiration
Memory Pipes
Monitoring the ICM with the ICM Monitor
Monitoring the State of the ICM
Monitoring and Administrating the ICM Server Cache
Displaying and Changing Services
Analyzing Problems and Searching for Errors
Administration of the ICM
SAP J2EE Engine Administration
SAP Web Dispatcher
Operating the SAP Web Dispatcher
Server Selection and Load Balancing Using the SAP Web Dispatcher
Server Groups in the Internet Communication Framework
The SAP Web Dispatcher Profile Parameter
Example: Profile File of a SAP Web Dispatcher
Minimal Configuration for the SAP Web Dispatcher
SAP Web Dispatcher as a URL Filter
SAP Web Dispatcher and SSL
High Availability of the SAP Web Dispatcher
HTTP Load Distribution Using SAP Message Server
SAP Web Application Server: Web Server and Web Client
Server Role
Client Role
Integrating the SAP J2EE Engine
Using the SAP J2EE Engine with Standalone Dispatcher
SAP J2EE Engine Administration
Profile Parameters for the SAP J2EE Engine
Internet Communication Framework
HTTP Communication Using the SAP System as a Server
HTTP Request Handler
Design
Interaction Model
Calling the Function Module HTTP_DISPATCH_REQUEST (1)
Creating the Server Control Block (2)
Filling the Server Control Block (4)
Client Logon (6)
Selecting and Calling the HTTP Request Handler (HTTP Extension)
Processing the Request Using the HTTP Extension (7)
Sending Back the Response (9-10)
Stateless and Stateful Model
Logging On to SAP Web Application Server
Determining the Logon Language
ICF Classes and Interfaces
IF_HTTP_SERVER
Attributes
Constants
Methods
IF_HTTP_RESPONSE and IF_HTTP_REQUEST
IF_HTTP_ENTITY
Accessing Header Fields
Accessing Form Fields
Accessing Cookies
Accessing HTTP Body Data
Accessing HTTP Multipart Data
IF_HTTP_EXTENSION
Attributes
Constants for Describing the Control Flow
Constants for Describing Lifetime Control
Methods
IF_HTTP_UTILITY
Using the ICF
Implementing Handler Classes
Linking a HTTP Request to an ICF Service
Virtual Hosts
Virtual Hosts - Advantages
Creating an ICF Service
Anonymous Logon Data
Service Options
Security Requirements
Basic Authentication
Error Page
Activating and Deactivating an ICF Service
Internal Aliases
External Aliases
Monitoring and Troubleshooting Functions
Special Features
Transporting ICF Services
HTTP Communication Using the SAP System as a Client
Interaction Model
Sample Program
Connection Establishment Using Destination (SM59)
Parallel Processing Requests
Redirecting Requests
Configuring Proxies
Interface IF_HTTP_CLIENT
Attributes
Constants
Methods
Web Applications and Business Server Pages
User Concepts
Logging onto BSP Applications
Prerequisites
Testing Security Settings
The Authentication Process
Using BSP Application SYSTEM
SYSTEM_PUBLIC
Enhancements
Logging off BSP Applications
Using a Default User for BSP Applications
Creating a Default User
Using an Internet User for BSP Applications
Sample BSP Application for Using Internet Users
Logging On as an Internet User
Creating New Users
Programming Model
What is a BSP Application?
Structure of a BSP Application
Accessing a BSP Application
Starting and Ending a BSP Application
System-Specific URL Parameters
Processing a BSP Application
Creating a BSP Application
Application Class of a BSP Application
BSP Components
Properties
Layout
Event Handler
OnCreate
OnRequest
OnInitialization
OnInputProcessing
OnManipulation
OnDestroy
Page Attributes
Type Definitions
BSP Directives
Page Directive
Inline Code
Comments
Include Directive
OTR Directives
Transferring Variables
Extension Directive
Classes and Interfaces
Class CL_BSP_APPLICATION
Class CL_BSP_MESSAGES
Class CL_BSP_SERVER_SIDE_COOKIE
Class CL_BSP_GET_TEXT_BY_ALIAS
Class CL_BSP_CONTROLLER2
Interface IF_BSP_APPLICATION
Interface IF_BSP_APPLICATION_EVENTS
Interface IF_BSP_NAVIGATION
Interface IF_BSP_PAGE
Interface IF_BSP_RUNTIME
Interface IF_BSP_PAGE_CONTEXT
IF_CLIENT_INFO Interface
Global Objects
Object application
Object navigation
Object runtime
Object request
Object response
Object messages
Object page
Object page_context
BSP Extensions
Button
TableView
Defining Your Own BSP Extension
BSP Extension Framework
Creating BSP Extensions
Defining BSP Elements
Defining the Element Content
User-Defined Validation
Iteration Through Element Content
Manipulation of the Element Content
Pass by Reference for Attributes
Activating the BSP Extension
Implementing Element Handler Classes
Generated Classes and Class Hierarchy
Basis Class CL_BSP_ELEMENT
Entering Documentation
Using BSP Elements
Example: Using Extensions in BSP Pages
Composite Elements
Creating Page before.htm
Design Solution
Creating a New BSP Extension with Elements
Creating Page after.htm
Dynamically Processing BSP Elements
Creating a New BSP Extension with Composite Elements
Step 1 a) Implementing <sf:SimpleFormItem>
Step 1 b) Using <htmlb:SimpleFormItem>
Step 2: Creating <sf:SimpleForm>
Step 3: Changes to the Look and Feel
Model View Controller (MVC)
MVC Design Pattern
Using MVC for BSP
Creating a Controller
Creating a View
Testing Controllers
Calling (Sub) Controllers
Calling a View
Creating Error Pages
From Pages to Controllers
Call Options of BSP Components
Navigation
Lifetime
Data Binding
Calling the Model Class by the Controller
Components
Process Flow
Creating Your Own Components
Creating the Top-Level Controller
Creating Components
Calling Components
Determining Input Processing
Class CL_BSP_CONTROLLER2
Examples of Architecture
BSP Application with Controllers and Views
BSP Application with Several Views per Controller
Combination of the Previous Examples
Calling Controllers of Other Applications
Calling Several Controllers from a View
Model View Controller Tutorial
Creating a Controller
Creating a View
Calling a Controller
Calling Java Beans
The FLUSH Method
Possible Return Values
Session Handling
Stateful BSP Applications
Session Cookie
Stateless BSP Applications
Server-Side Cookies and Data Persistency
Hybrid Forms
Setting Stateful or Stateless
Stateful or Stateless Programming?
A Sample BSP Application
Control Flow of BSPs
BSP Only with Layout
BSP With Layout and Initialization
BSPs with Layout, Initialization and Navigation
BSPs with Layout, Initialization and Input Processing
Caching BSPs
Page Layout
Accessibility
Programming Environment
Recommended Browser Settings
Debugging
Breakpoints for BSP Page Fragments
Tracing HTTP Requests
Internationalization and Translation
Creating OTR Alias Text
Creating OTR Long Text
OTR Texts in ABAP
BSP Development Tools
MIME Repository
Pretty Printer in the Web Application Builder
Implementing External Tools with WebDAV
Tag Browser
XSLT Editor
BAPI Explorer
Online Text Repository
Task Formatting
Stylesheets
Setting Stylesheets for HTMLB and XHTMLB
File Upload in BSP Applications
Uploading Files and Manipulating their Content
Handling Incorrect Entries
Outputting Error Messages for Auto Page Attributes
Creating Page Attributes
Execute the Initialization
Defining the Layout
Using Object messages
Coding Alternative Error Output
Adding Your Own Error Messages
Sending E-Mails from BSP Applications
Creating Order Pages
Creating Application Classes
Class Attributes
Class Methods
Method SET_ADDRESS
Method SET_TIME
Method SEND
Calling the Mail Class
MIME Types of a Page
Mobile Extensions to the SAP Web Application Server
Differences Between Mobile Devices
Effects of the Differences Between WAP Browsers
Device Recognition
IF_CLIENT_INFO Interface
GET_ACCEPT Method
GET_BACK_HARD_WIRED Method
GET_BACK_LABEL Method
GET_CHAR_HEIGHT Method
GET_BREAKING_SPACE Method
GET_BROWSER_CATEGORY Method
GET_BROWSER_NAME Method
GET_BROWSER_OS Method
GET_CHAR_WIDTH Method
GET_COOKIES_SUPPORTED Method
GET_CSS_SUPPORTED Method
GET_DEFAULT_ACTION_DESIGN Method
GET_DEFAULT_BLOCK_SEPARATOR Method
GET_DEFAULT_BULLET Method
GET_DEFAULT_FORM_STYLE Method
GET_DEFAULT_MENU_STYLE Method
GET_DEVICE_CATEGORY Method
GET_DEVICE_NAME Method
GET_FIELDSET_LAYOUT Method
GET_FIELDSET_TITLE_VISIBLE Method
GET_FORM_FACTOR Method
GET_FORM_MENU_SUPPORTED Method
GET_FRAMES_SUPPORTED Method
GET_HREF_WITH_PARAMS_SUPPORTED Method
GET_IMAGE_LINKS_SUPPORTED Method
GET_INPUT_SHOWN_WITH_CAPTION Method
GET_LINKS_SEPARATED Method
GET_LINK_DECORATION Method
GET_LINK_TEXT_WIDTH Method
GET_MARQUEE_LINK_SUPPORTED Method
GET_MARQUEE_TEXT_SUPPORTED Method
GET_MAX_LINK_LENGTH Method
GET_MEDIA_FORMATS Method
GET_NEWLINE_AFTER_IMAGE Method
GET_NBSP_SUPPORTED Method
GET_NESTED_TABLES_SUPPORTED Method
GET_NEWLINE_AFTER_INPUT Method
GET_NEWLINE_BEFORE_IMAGE Method
GET_NEWLINE_BEFORE_INPUT Method
GET_NEWLINE_BEFORE_LINK Method
GET_NEWLINE_BETWEEN_IMAGES Method
GET_NEWLINE_BETWEEN_LINKS Method
GET_NEWLINE_BETW_LINK_AND_TAG Method
GET_PAGE_SIZE_MAX Method
GET_PIXEL_HEIGHT Method
GET_PIXEL_WIDTH Method
GET_REDIR_RELATIVE_SUPPORTED Method
GET_SELECTION_MENU_SUPPORTED Method
GET_SKIPPING_TO_INPUT Method
GET_SOFTKEY_NUM Method
GET_SOFTKEY_STYLE1 Method
GET_SOFTKEY_STYLE2 Method
GET_SOFTKEY_TITLE_WIDTH Method
GET_SCRIPT_SUPPORTED Method
GET_SUB_CATEGORY Method
GET_TABLE_HAS_BORDERS Method
GET_TABLE_SUPPORTED Method
GET_TELEPHONY_LINKS_SUPPORTED Method
GET_TEXT_STYLES_SUPPORTED Method
GET_TITLE_SUPPORTED Method
GET_TITLE_WIDTH Method
GET_USER_AGENT Method
Administrator’s Guide to Device Recognition
Data Retention for Device Recognition
Modifying Device Properties
Integrating Additional Mobile Devices
DDIC Services for BSP Applications
Overview of the Type Properties
Technical Properties
Output Properties
Language-Specific Texts
Services and Runtime Objects
GET_FIELD_LABEL
GET_QUICKINFO
GET_DAY_COLLECTION
GET_MONTH_COLLECTION
GET_HISTORY_ID
GET_LOCAL_HISTORY_ID
GET_SIMPLE_HELPVALUES
Use in BSP Applications
Application Help
Field Labels
Field History
Calendar
Value Help
Workplace 2.11
Preparing BSP Application for Integration in SAP Workplace
Adding a BSP Application to Your Favorites
Integrating a BSP Application in the Launchpad
Integrating a BSP Application as a MiniApp
Enterprise Portal 5.0
Portal and BSP Session Management
Session Handling without Cookies
Administration
Logon Ticket Cache
DNS Configuration for BSP Applications Under Windows 2000
SAP Web Application Server Security
Using the Secure Sockets Layer Protocol
The Application Server's Personal Security Environments
SSL Server PSE
SSL Client PSEs
The SAP Cryptographic Library Installation Package
Installing the SAP Cryptographic Library on the SAP Web AS
Setting the Profile Parameters for Using SSL
Configuring the SAP Web AS for Supporting SSL
Creating the SSL Server PSE
Generating Certificate Requests for the SSL Server PSEs
Sending the Certificate Requests to a CA
Importing the Certificate Request Response
Maintaining the SSL Server PSE's Certificate List
Creating the Standard SSL Client PSE
Creating the Anonymous SSL Client PSE
Creating Individual SSL Client PSEs
Specifying that a Connection Should Use SSL
Testing the SSL Configuration
Making Sure the SSL Port is Set up Correctly
Testing the Connection for SSL Server Authentication
Testing the Connection for SSL Client Authentication
User Authentication
Using Logon Tickets
Configuring the System for Issuing Logon Tickets
Obtaining a Certificate Signed by the SAP CA
Using a Self-Signed Certificate
Changing from a Self-Signed Certificate to a Certificate Signed
Configuring the System for Accepting Logon Tickets
Protecting User Information
Using X.509 Client Certificates
Configuring the System for Using X.509 Client Certificates
Pluggable Authentication Services for External Authentication
Authentication Mechanisms Supported by the PAS
Authentication Using Windows NTLM
Verifying User ID/Password on the Windows NT Domain Controller
Authentication Using X.509 Client Certificates
Authentication Using an LDAP Bind to a Directory Server
Authentication Using an Arbitrary Mechanism on the Web Server
Authentication Using a Mechanism Provided by a Partner
Prerequisites for Using PAS
Logon Tickets
Prerequisites for Using Windows NTLM Authentication
Prerequisites for Verifying Users on the Domain Controller
Prerequisites for Using X.509 Client Certificates
Prerequisites for Using an LDAP Bind to a Directory Server
Prerequisites for Using an Arbitrary Mechanism on the Web Server
Prerequisites for Using a Partner Mechanism
Secure Network Communications
Configuring the PAS
Configuring the Use of Logon Tickets
Configuring Windows NTLM Authentication on the Web Server
Configuring SNC
Configuring SNC on the Application Server
Configuring SNC on the AGate
Configuring SNC on the WGate
Installing the PAS
Configuring the PAS Service File
Examples
Specifying the HTTP Header Variable to Use
Maintaining the User Mapping in the SAP System
Configuring the PAS for Providing the SAP User ID Directly
Troubleshooting
Testing the Configuration Using the ITS Administration Tool
Testing the Use of SNC
Testing Logon Tickets and PAS
Checking the HTTP Header Variable
Sample Trace File: SNC Initialization
Sample Trace File (AGate): Successful PAS Using NTLM
Sample Trace File (AGate): SAP User ID not Found
Using the Trust Manager
Terminology and Abbreviations
Certificate List
Certification Authority (CA)
Credentials
Logon Ticket
Personal Security Environment (PSE)
Private Key
Public Key
Public-Key Certificate
Public-Key Infrastructure (PKI)
Public-Key Technology
SAP Cryptographic Library (SAPCRYPTOLIB)
SAP Security Library (SAPSECULIB)
Secure Sockets Layer (SSL) Protocol
Secure Store & Forward (SSF)
SSO Personal Security Environment (SSO PSE)
System PSE
Verification PSE
FAQ
What is SAP Web Application Server?
What is the Internet Communication Framework?
How Do I Create My Own HTTP Request Handlers?
What is the BSP Runtime Environment?
Can I Access a Web Server via HTTP?
Is There a Server Cache for Storing Web Pages?
What Are Business Server Pages?
Can I Generate BSPs Dynamically?
How Do I Create a Basic BSP Application?
What Is an Application Class?
How can I Transfer Data Between a View and a Page?
What Are BSP Directives and What BSP Directives Are There?
Where Can I Store Pictures?
Can I Transfer Whole Tables as Page Attributes?
How Can I Customize a BSP Application?
How Can I Determine the URL Path for my BSP?
How Can I Transfer Language or the Client to the URL?
How Can I use Data Structures from a Different System?
What Do I Do If There is a Protocol Conflict?
How do I Handle DNS Configuration Problems?
How Can I Specify That My Application Does Not Require Log-In?
Can I Execute a User Switch for My BSP Application?
How Do I Get My BSP Application into the Workplace?
How Do I Get a BSP into a Portal Environment?
Can I Send E-mails from a BSP Application?
Can I Create BSP Applications for Mobile Terminals?
Can I Create Pages with MIME Types Other Than Text and HTML?
How Do You Determine the Display Language?
How Can I Catch a Timeout for Long-Running Processes?
How Can I Measure the Performance of My BSP Application?
How Do I Administrate SAP Web Application Server?
How Do I Configure SSL?
Is Single Sign-On supported for SAP Web Application Server?
What Should I Know About the Network Configuration?