Siebel CRM Application Architecture

This topic contains an overview of the Siebel client. The figure below illustrates the architecture of a typical Siebel deployment.

Siebel system architecture

This section covers the portion of the above figure that is highlighted in blue: the Web client (thin client). This is the default deployment for Siebel CRM installations.

The Web client is an HTTP-, HTML-, Java-applet based application that does not require a client-side software installation.

The load testing of Siebel thin client installations is achieved by recording and replaying HTTP traffic generated by browsers and Java applets.

Dedicated Web clients and mobile Web clients can also be tested using Silk Performer, although those topics are not covered in this section.

HTTP Traffic

To understand recorded scripts, it is helpful to distinguish between two types of HTTP traffic:

  • HTTP traffic generated by browsers
  • HTTP traffic generated by Java applets

HTTP traffic generated by browsers is similar to HTTP traffic generated by typical Web applications (for example, HTML and pictures).

HTTP traffic generated by Java applets consists primarily of POST requests sent to servers. The bodies of HTTP requests have the MIME type application/x-www-form-urlencoded, which is the same MIME type used for form submissions in HTML based applications. HTTP response bodies however are in a proprietary Siebel format.

The first example below shows the body of a typical Java applet HTTP request.

HTTP Request Body from a Java Applet

SWERPC=1&SWECount=5&SWECmd=InvokeMethod&SWEMethod=GetPreference&SWEInputPropSet=%400%600%603%600%60GetPreference%603%60%60pCategory%60SWE%3AListAppletLayout%60pPrefName%60%60SWEJSXInfo%60false%60

BDL Form Definition for a HTTP Request Body from a Java Applet

This example shows the corresponding BDL form definition that is generated by the Web Recorder for this HTTP request.

SALES_START_SWE018 <ENCODE_CUSTOM> :
  "SWERPC"               := "1",
  "SWECount"             := "5",
  "SWECmd"               := "InvokeMethod",
  "SWEMethod"            := "GetPreference",
  "SWEInputPropSet"      := "@0`0`3`0`GetPreference`3``pCategory` SWE:"
                                  "ListAppletLayout`pPrefName``SWEJSXInfo`false`";