MIIS(Microsoft Identity Integration Server)由包含配置信息及数据的后端SQL Server 2000数据库和服务组成。下图就是MIIS的逻辑构成:
数据源的数据进出MIIS都要经过名为连接器空间的区域。MIIS中的对象大致相当于数据库中的记录。连接器空间中的对象相应的称为连接器对象。当连接器空间中创建了连接器对象后,MIIS为后者分配一个全局唯一标识符(GUID)。
连接器对象具有属性。对象大致相当于数据库中的记录,属性则相当于记录的字段。连接器对象的锚属性常为数据源的关键字段。
Metaverse是存放传输到其他数据库的数据的地方。数据离开连接器空间、进入Metaverse的过程称为映射(projection)。管理代理通过以下操作控制数据进出连接器空间:
·导入(staging):将数据从数据源1输入连接器空间1
·同步(Sync):将数据输入Metaverse,并输出至连接器空间2
·导出(Export):将数据从连接器空间2输入到数据源2
MIIS通过上述操作记录对象是否发生过修改。这样MIIS就可以只移动修改过的数据,从而加快处理速度。
随着数据导出到数据源2,伴随着名为 "provisioning"的数据源增加新数据的过程以及名为"deprovisioning"的移除数据的过程。
样例描述
本文的样例代码模拟了一个典型的MIIS场景。它用SQL Server 2000 数据库中自带的Northwind数据作为员工信息来源。它的作用是从Northwind员工表发送员工身份号、姓、名和雇佣日期字段至Metaverse,随后再发送至另一个SQL Server 2000 数据库。
下载样例代码
下载地址:http://www.developer.com/img/2005/07/MIISSource.zip。
身份识别认证
所有操作及许多MIIS开发都是由身份管理器(identity manager )控制的。
身份管理器可分为三个主要工具:操作(operation)、管理代理(management agent)及Metaverse Designer。操作能使您看到MIIS内发生的活动。
用Metaverse Designer更新Metaverse 正如上面所讨论的,Metaverse是对象进出的中转站。Metaverse中包括您想与其他系统集成的数据。在Metaverse中,您必须创建两样东西:对象及其属性。当您从Metaverse Designer工具中选择"创建对象类型"选项,就会弹出下面的对话框:
一旦您选择了"创建对象类型",输入对象的名称,并选择可选属性(或自己创建新的属性)。下面是"新属性"对话框:
在属性类型下拉式列表中,属性类型有整数型、布尔型和其他数据类型。您还可以选择索引数据,加快数据库访问速度。注意:Metaverse中的属性名称必须是唯一的。
创建好Metaverse对象后,就可以开始向Metaverse内添加数据。管理代理将控制数据如何进出Metaverse。
配置管理代理
管理代理是MIIS活力的源泉。它们管理连接器空间,并配置进入Metaverse的数据。要创建新的管理代理,点击工具条上的管理代理按钮,并从动作菜单中选择"创建"项。从下图的管理代理设置对话框中,您可以看到有许多种管理代理可供选择。
事实上,除了上面列出的之外,您还可以创建自己的管理代理。MIIS的软件开发工具包中就有创建自定义的管理代理的文档。
在本例中,您需要创建两个管理代理:一个用于控制进入Metaverse的HumanResourceData对象的数据,另一个则是控制流出HumanResourceData对象的数据。由于您还要从SQL Server 2000数据库中移入和移出数据,所以您还得创建SQL Server管理代理。
配置SQL Server 2000管理代理的第一步是选择服务器和表(或视图)(见下图)。
如果您选择集成身份验证,就必须输入用户名和域。当您设置好数据库信息,MIIS管理代理就从表设置中读取信息,并在连接器空间中设置合适的信息。下图的对话框显示了表中的列设置信息。
这一对话框中两个主要的设置是锚(或关键字段)和连接器的对象类型。
MIIS管理代理下一步主要的设置是映射规则。您可以以两种方式设置流入Metaverse的信息:映射规则和加入规则。在这两种规则下,MIIS确定何时拷贝新对象到Metaverse的技术不同。映射规则把来自数据源的所有数据都输入到映射对话框中指定的Metaverse对象中。
加入规则相当于数据库的更新。当您启用加入规则后,就会根据您在管理代理中设置的加入规则,更新Metaverse 中已有的对象
最后一步是配置属性数据流动。属性数据流动把进出的数据映射到Metaverse 中的字段(属性)。下图显示了Northwind数据流入Metaverse 的属性数据流动。
数据流出Metaverse 的管理代理与流入时的管理代理有以下几个根本不同之处:
·它没有映射规则
·属性流动从Metaverse 指向流出的目标数据源
·在配置信息中没有锚值属性数据流动
·为了便于部署和版本控制,您可以将所有配置信息导出至XML文件
配置好管理代理之后,就可以定义开始导入、导出和同步的过程了。
复制数据至Metaverse 中:导入与同步
管理代理通过运行概要文件控制导入、导出和同步。运行概要文件包括一系列称为步骤的操作,步骤可以合并或者分离。下图显示了运行步骤的配置屏幕:
样例中创建了称为"导入(Import)"的运行概要文件,它的作用是导入Northwind对象类型。它还创建了名为"同步"的同步运行概要文件,它会根据您先前定义好的映射规则和属性流动规则,把导入的Northwind对象转移到Metaverse中。它随后继续与由名为"MetaverseToExternalDB"的管理代理所管理的"TestDatabase"连接器空间同步。下图是运行"同步"运行概要文件后的结果。
MIIS导出和Provisioning
正如之前提到的,Provisioning是创建帐号的过程。为了在连接器空间2内创建新的对象,您必须使用Visual Studio.NET创建和配置Metaverse规则扩展组件。在工具菜单中选择"选项",弹出"选项"对话框:
"创建规则扩展项目"选项会打开新的Visual Studio.NET项目,连同一个类和相应的存根函数(stub function)。为执行provisioning,IMVSynchronization.Provision 函数是您唯一需要编写的代码。代码如下:
|
要增加帐号至连接器空间,您要用到两个关键对象:MVEntry和CSentry。MVEntry对象用于控制来自Metaverse对象的访问。CSentry对象代表了创建在连接器空间中的对象。
当MIIS确定必须要在连接器空间内创建新对象时,它就调用 provision 函数,通过MVentry类传输适当的Metaverse对象。要创建新的连接器空间对象,只需在管理代理中的连接器集合上调用"StartNewConnection"以创建CSentry对象,随后在CSentry对象上调用"CommitNewConnector",以把对象保存至连接器空间。
剩下的就是创建把数据从连接器空间2导出至目标数据源的运行概要文件。
调试和测试管理代理和Metaverse规则扩展
正如上述提到的,Metaverse规则扩展是您在Visual Studio中创建的.NET组件。与任何Visual Studio .NET项目一样,您可以用Visual Studio 工具菜单中的"Debug Processes"选项,调试您的组件。在Processes窗口内,显示所有会话的进程后,选择miiserver.exe进程,并点击"attach"按钮。
现在,当您改变Northwind数据库时,执行运行概要文件,就可以把数据复制到Metaverse及目标数据源。
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/