本节包含下列内容:
驱动程序使用各种因特网协议和语言在 Identity Manager 和万维网服务之间交换数据。
SOAP(简单对象访问协议)是一种基于 XML 的协议,用于交换位于 Identity Manager 中的讯息。它定义讯息交换,但不定义讯息内容。此驱动程序支持 SOAP 1.1。
SOAP 文档分为以下三个元素:
封套: XML 根节点。
标题: 提供环境信息(如,事务 ID 和安全信息)。
正文: 特定于方法的信息。
SOAP 遵循 HTTP 请求/响应讯息模型,该模型提供 HTTP 请求中的 SOAP 请求参数和 HTTP 响应中的 SOAP 响应参数。
SOAP 驱动程序包括两种协议的样本配置:SPML 1.0 和 DSML 2.0。
SPML 1.0: 服务供应标记语言是基于 XML 的供应请求和响应协议。客户端向服务器发出 SPML 请求。该请求描述了要在给定服务点执行的操作。服务点执行必要的操作来实施所请求的服务。完成操作后,服务点向客户端返回 SPML 响应,其中详细描述了与该请求有关的所有结果或错误。
此驱动程序支持 SPML 1.0。SPML 与 SOAP 1.1 相联结,并使用 HTTP 和 HTTPS 1.1 作为传输协议。
DSML 2.0: 目录服务标记语言以 XML 文档的形式表示目录结构信息、目录查询和更新以及这些操作的结果。
DSML 与 SOAP 1.1 相联结,并使用 HTTP 和 HTTPS 1.1 作为传输协议。
有关驱动程序中包括的样本 SPML 和 DSML 配置的更多信息,请参见使用样本驱动程序配置。
XML(可扩展标记语言)是允许在因特网上交换结构化数据的标准通用标记语言 (SGML) 的通用子集。
HTTP 是用于在因特网或其它计算机网络上请求和传输数据的协议。此协议最适用于因特网基础结构和防火墙。
由于通常只对当前请求保持连接,因此 HTTP 是无状态请求/响应系统。客户端与服务器建立 TCP 连接,并向其发送请求命令,然后服务器发回响应。
以下图表说明了 Identity Manager 和万维网服务之间的数据流:
Figure 1-1 SOAP 驱动程序数据流
Identity Manager 引擎使用 XDS(XML 的专用格式)表示 Identity Vault 中的事件。Identity Manager 将 XDS 传递给驱动程序策略(由基本策略、DirXML® 底稿和 XSLT 样式表组成)。
在订购者通道上,驱动程序策略将 XDS 转换为 XML(如 SOAP)。在发布者通道上,驱动程序策略将其它形式的 XML(如 SOAP)转换为 XDS。
驱动程序 Shim 接收来自驱动程序策略的 XML。驱动程序 Shim 使用 HTTP 与万维网服务通讯。通常,驱动程序 Shim 和应用程序之间的转接是序列化的 XML。
例如,假定驱动程序使用 DSML 样本配置与仅配置为订购者的 DSML 服务器进行通讯。当 Identity Vault 中发生事件时,Identity Manager 会创建一个表示该事件的 XDS 命令。Identity Manager 将该 XDS 命令传递给驱动程序策略。
驱动程序策略用输出转换样式表转换该 XDS 命令。XSLT 样式表将 XDS 转换为包含 DSML 的 SOAP 封套。将该 SOAP 封套传递给驱动程序 Shim。驱动程序 Shim 将 SOAP 封套转换为字节数组,建立相应的 HTTP 连接并执行 HTTP POST 操作,以便将数据提交到万维网服务。
万维网服务或应用程序处理请求,并向驱动程序 Shim 返回 SOAP 响应。Shim 将响应作为字节数组接收,并在将其传递回驱动程序策略之前将其转换为 XML 文档。输入转换样式表处理响应,将其转换为报告回 Identity Manager 引擎的相应 XDS。
驱动程序 Shim 根据嵌入命令中的 XML 元素(在 Shim 中显示为 <operation-data>),对订购者命令进行特殊处理。<operation-data> 元素有两种用途。首先,它可以用于将命令与其生成的响应相匹配,这对于创建关联很有用。其次,它可以用于覆盖默认的订购者通道连接特性。
将 <operation-data> 元素从某一订购者通道策略添加到命令中。驱动程序 Shim 从命令中去除 <operation-data> 元素,再将命令发送到应用程序,然后将 <operation-data> 元素恢复到得到的响应。
默认情况下,响应之后恢复 <operation-data> 元素时,会将其追加为根节点的子元素。通过向 <operation-data> 元素提供一个或多个 parent-node-n 特性可以改变这种情况,其中 n 是从 1 开始并按每个要提供的父限定词递增的数字。驱动程序 Shim 检查操作数据节点以查找 parent-node-n 特性。如果找到了特性,则依次尝试每个特性;如果存在已命名节点,则将节点用作响应中操作数据的父节点。
要了解 <operation-data> 元素如何与样式表结合使用,请参见Section 4.5, 操作数据。