Identity Manager 用户应用程序依靠一起工作的多个独立部件运行。 下表中描述了其中的核心部件及其基本职责。
从信息流来看,上面提到的部件在逻辑上都以下图描述的方式进行链接。 从物理上看,各个部件可能(大多数情况下会)位于多台计算机上。 例如,尽管 Identity Vault(及其主管理工具 iManager)将共同位于承载 Identity Manager 引擎的计算机上,但 JBoss(和用户应用程序)通常却会驻留在单独的计算机上(如果已组成群集,则位于一组计算机上)。 同样,出于性能、安全和灾难恢复的原因,数据库 (MySQL) 通常位于自己的计算机上。

Identity Vault 用于储存身份数据和各种类型的提取层定义。 eDirectory 的一个实例(在 Windows、Solaris 或 Linux 上运行)就用于此目的。 通过使用 eDirectory,Identity Manager 能够利用经过充分验证的、伸缩性极强的企业级 LDAPv3 目录(带分区和复制功能),以及灵活的基于万维网的管理和配置工具 (iManager),该工具提供了 Identity Manager 和 eDirectory 之间的一体化管理集成点。
用户应用程序包装为 Java 万维网应用程序存档(即 WAR 文件)。 WAR 被部署到 JBoss 中,JBoss 是一种常见的开放源代码 Java 应用程序服务器(使用 Tomcat 作为服务器小程序引擎;未显示在图中)。 将 JBoss 用作执行环境有很多优点,包括:
用户应用程序 WAR 包含用户应用程序的可执行代码。出于隔离目的,可执行代码又使用模型视图控制器 (MVC) 体系结构来构建。 面向用户的界面在用户应用程序中作为模块化入口小程序运行。 单独的入口小程序用来查看组织结构图、进行搜索、查看用户细节、重设置口令等。
有关向 JBoss 部署万维网应用程序的各个方面的更多信息,请参考 JBoss 文档,网址为 http://www.jboss.org/products/jbossas/docs。
用户应用程序依靠数据库(默认情况下为 MySQL;有关受支持的数据库列表,请参见安装指南)来储存多种类型的信息:
Identity Manager 产品包括运行时引擎、驱动程序和策略。 Identity Manager 引擎响应 Identity Vault 中的事件,并管理数据在它自身和 Identity Vault 之间的流动和转换。 驱动程序对象封装可执行代码和物件(如策略文档),旨在提供特定于某一已连接系统的数据处理行为。 Identity Manager 用户应用程序是一个已连接系统。 Identity Vault、用户应用程序的提取层和工作流程引擎之间的通讯通过用户应用程序驱动程序来实现(参见下文)。
由于用户应用程序依靠多种目录对象来储存提取层物件,因此必须扩展 eDirectory 纲要以容纳用户应用程序所需的自定义 LDAP 对象和特性。 在 Identity Manager 安装过程中,会自动进行纲要扩展。 但是,只有安装并激活了用户应用程序驱动程序,才会用默认值填充自定义对象和特性。
用户应用程序驱动程序是一个重要的用户应用程序启动块。 用户应用程序驱动程序的一个职责就是:在 Identity Vault 中有重要的数据值发生更改时通知提取层,以便提取层更新其超速缓存。
如果已安装预置模块,则可以将用户应用程序驱动程序配置为自动开启工作流程,来响应 Identity Vault 中的特性值更改。
用户应用程序驱动程序不仅是一个运行时部件,也是一个目录对象的储存包装程序(组成用户应用程序运行时物件)。 下面显示与用户应用程序驱动程序相关联的目录物件的典型表示形式。

注:显示的名称表示 LDAP 常用名 (cn) 值。 各种对象类的实际纲要命名将在别处讨论。
下文更详细地讨论了这些物件类别。
每次安装 Identity Manager 时都需要将驱动程序分组为多个驱动程序集。 在给定的目录服务器上,每次只能有一个驱动程序集处于活动状态。 可以单独打开或关闭集内的驱动程序,而不会影响作为整体的驱动程序集。 与其它任何 IDM 驱动程序类似,用户应用程序驱动程序必须存在于驱动程序集的内部。 用户应用程序不会自动创建驱动程序集;必须事先创建一个驱动程序集,然后在其内部创建用户应用程序驱动程序。
用户应用程序驱动程序对象(可赋予任意名称)是多种物件的树枝。 像所有 Identity Manager 驱动程序一样,用户应用程序驱动程序执行发布者和订购者通道对象和策略。 虽然发布者通道可用于自定义使用的情况,但不可用于用户应用程序。
AppConfig 对象是各种用户应用程序配置对象的树枝:
它是供应请求定义的树枝,供应请求定义是管理员配置的请求定义,可用于用户应用程序运行时(如果存在预置模块)。 这种树枝中存储的定义(作为 XML 存储)表示具有相应权限的终端用户可通过用户应用程序实例化的请求的类。 RequestDef 将 WorkFlowDef(见下文)与 ResourceDef 相关联。
工作流程对象的树枝,包括设计时说明和所有模板或未使用的流程。
受供资源定义的树枝,包括设计时说明和所有模板或未使用的目标。
服务定义对象的树枝,用于包装工作流程调用的 Web Services。
提取层元级别的对象(ChoiceDef、EntityDef、RelationshipDef),表示可由身份入口小程序公开的目录的不同类型的内容(部分可由用户定义,其它由管理员设置)。
用于初始化运行时环境(例如,超速缓存配置信息和电子邮件通知属性)的配置对象的树枝。
代理定义的树枝。
委托定义的树枝。
入口小程序通过查询目录提取层来获取它们的身份数据,目录提取层是将身份数据访问的细节与客户程序进程相分离的代码层。 例如,当入口小程序需要搜索身份数据时,提取层将代表入口小程序对 Identity Vault 中的目标树枝进行适当的 LDAP 查询。 所有入口小程序在任何时候都不会直接查询 Identity Vault。
目录提取层还是创建和更改提取层定义的代码层,这些定义由系统管理员或其他有资格的用户指定。 若要进行此类更改,系统专家将使用设计程序应用程序的目录提取层编辑器,有关此编辑器的说明,请参见本指南中的部分 4.0, 配置目录提取层。
在运行时,提取层将超速缓存 Identity Vault 中包含的多种配置和实体定义数据。 用户应用程序维护的各种超速缓存可由管理员细化管理。 有关超速缓存和超速缓存管理的附加信息,请参见部分 13.0, 超速缓存配置。
工作流程引擎(安装预置模块时可用)是一组运行时类,负责执行由进程定义(实例化工作流程时创建的运行时物件)指定的工作流程步骤,并跟踪数据库(如 MySQL 或 Oracle )中保存的状态信息;请参见上文中的部分 1.3.3, 数据库。
有关工作流程系统的附加详情,包括如何创建工作流程,请参见本指南下文中的部分 21.0, 基于工作流程的配置信息提供的介绍。
Identity Manager 用户界面由与 JSR168 兼容的入口小程序集合(在安装预置模块后,还包括一些 Java 服务器页)组成,它们运行在基于 JBoss 的 Java 万维网应用程序中。 入口小程序体系结构可提供较高的模块化程度,内容的自定义以及实现用户对页面外观的控制。 用户应用程序框架可提供多种类型的树枝服务。 它管理窗口状态、入口小程序自选设置、持久性、超速缓存、主题设置和日志记录等,并担当安全性门卫。 运行该用户应用程序的应用程序服务器又可向该应用程序提供多种服务,例如通过群集实现可伸缩性、通过 JDBC 访问数据库以及支持基于证书的安全性等。
此体系结构具有高度的封装性,为 Identity Manager 用户应用程序提供强大、安全的演示层环境。 它也保证对用户界面所有方面的高度管理控制。
有关对用户界面各部分进行管理的更多信息,请参考本指南部分 III, 管理用户应用程序中的各章节。