1.1 Driver Concepts

This section contains the following information:

1.1.1 Data Management

The Salesforce.com driver communicates with the Salesforce.com using the Salesforce.com partner API. The partner API is represented as XML and its transport is SOAP 1.1 over HTTPS.

SOAP

SOAP (Simple Object Access Protocol) is an XML-based protocol for exchanging messages. It defines the message exchange but not the message content. The driver supports SOAP 1.1.

SOAP documents are organized into three elements:

  • Envelope: The root XML node.

  • Header: Provides context knowledge such as a transaction ID and security information.

  • Body: The method-specific information.

SOAP follows the HTTP request/response message model, which provides SOAP request parameters in an HTTP request and SOAP response parameters in an HTTP response.

XML

XML (Extensible Markup Language) is a generic subset of Standard Generalized Markup Language (SGML) that allows for exchange of structured data on the Internet.

HTTP

HTTP is a protocol used to request and transmit data over the Internet or other computer network. The protocol works well in an Internet infrastructure and with firewalls.

HTTP is a stateless request/response system because the connection is usually maintained only for the immediate request. The client establishes a TCP connection with the server and sends it a request command. The server then sends back its response.

NOTE:Salesforce.com communication mostly happens over HTTPS.

1.1.2 How the Driver Works

The following diagram illustrates the data flow between Identity Manager and salesforce.com service:

Figure 1-1 Salesforce.com Driver Data Flow

The Identity Manager engine uses XDS, a specialized form of XML, to represent events in the Identity Vault. Identity Manager passes the XDS to the driver policy, which can consist of basic policies, DirXML Script, and XSLT style sheets.

The driver's output transformation stylesheet translates the XDS to the Salesforce.com API represented as XML.

The driver shim receives the XML from the driver policy. The driver shim uses HTTPS to communicate with the Salesforce.com.

Salesforce.com processes the request, and returns a response to the driver shim. The input transformation style sheet processes the response, converting it into appropriate XDS that is reported back to the Identity Manager engine.

1.1.3 Understanding Operation Data

The driver shim applies special handling to Subscriber commands based on an XML element embedded in the command, which appears in the driver shim as <operation-data>. The <operation-data> element is used to match commands with the responses they generate, which can be useful for creating associations.

The <operation-data> element is added to the command from one of the Subscriber channel policies or in the output transformation stylesheet. The driver shim removes the <operation-data> element from the command before it is sent to the application, and restores the <operation-data> element to the resulting response.

By default, when the <operation-data> element is restored on the response, it is appended as a child element of the root node. This can be overridden by providing one or more parent-node-n attributes to the <operation-data> element, where n is a number beginning with 1 that is incremented for each parent specifier you want to provide. The driver shim examines the operation data node, looking for parent-node-n attributes. If attributes are found, each is tried in turn and if the named node exists, the node is used as the parent for the operation data on the response.

To see how the <operation-data> element works with the style sheets, see Section 4.2, Managing Operation Data.