Project Description
Metaverse Router makes it easier for MIIS, ILM, FIM Sync engine administrators to manage multiple provisioning modules, turn on/off provisioning without modifying configuration, turn/off certain modules without re-compiling, allows to specify execution order. C# project


In traditional configuration MIIS, ILM, FIM Sync Engine allows for only one "scripted" provisioning module.
Whenever Sync Engine provisioning rules are increasing in complexity and more importantly in the number of target connected data sources it have to work with an administrator/programmer is facing difficult task of extending single DLL with code snipes that will provision new entries to completely dissimilar environments. For example single module would provision objects to an Active Directory, as well as to the SQL database as well as to Lotus Notes and to any other kind of directories.
Having to deal with this architecture is rather difficult from support and test stand point. Technically any modification to any business logic within the single module, regardless of the target provisioning data-source, will (or should) trigger full regression testing of provisioning to ALL data-sources; needless to say that this practice is costly from resource/time stand-point.
Another problem posed by "monolithic" provisioning code is creation of "spaghetti" code which is difficult to understand and troubleshoot/extend in the future.
Metaverse Router provides an answer to this dilemma. Microsoft provided the concept of the "Router" within "technical reference" to MIIS/ILM/FIM Sync Engine. However technical reference "Router" relies on the name convention of the files places into "extension" folder, which is not very practical/convenient way of managing multiple provisioning modules.
This Metaverse Router provides administrators with capability of creation of multiple provisioning assemblies/DLLs. It uses an XML configuration file that allows to:
  • Enable or disable individual module without physical deletion of the assembly from "extensions" folder
  • Specification of particular order provisioning assemblies should be executed
  • An ability to turn on and off provisioning without modifying server configuration and therefore triggering request for the full re-synchronization

Future Developments/Features

  • An ability to filter MVEntry objects by its "type" within the Router, which will allow partial filtering of the provisioning rules without code modification

Last edited May 24, 2010 at 10:05 PM by kdmitry, version 2