Identity Management and other related stuff

Metaverse Router

Have you ever heard of Metaverse Router? If your answer is yes – you ARE a Sync Engine geek! (No offence here)After years of sitting on this project I’ve finally got some time and will to clean it up, write an installer and make it publicly available.

So what is Metaverse Router? If you have worked with MIIS/ILM and to some degree with FIM, before — you likely had a need to write some sort of provisioning code to generate new objects in connected directories. The truth is that regardless of how many directories you are generating objects for you’ll be working with the same DLL. It is a good and a bad thing. Good thing, it’s a single DLL, it’s easy to have all your code in one place and you can re-use some portions of it and apply to deferent situations.

The bad thing is that when you change something for one connected data-source you are changing code for ALL connected data-sources. Technically that qualifies your DLL to be re-tested from end-to-end and perform some regression testing on every data-source; will you do that or not is on your choice of how well you want to sleep that night and night after that.

So what is the solution? There is "well-unknown" router solution that MIIS/ILM product team supplied in the "developer reference"; technically you can cut and paste that solution and be happy with that. What is gives you is an ability to create multiple provisioning DLLs for every connected data-source without having them all mixes into a monolithic block of code. The "developer reference" router will look at the files in the "extensions" folder and will look at their names. If file falls into specified naming convention — voila! — it will be executed.

The Metaverse Router that I’ve just published on CodePlex takes this idea to the next level. First of all I am looking at XML configuration file for my collection of provisioning DLLs. Second of all I don’t have to delete DLLs from "Extensions" folder to disable provisioning to a certain connected data-source (and therefore trigger a need for full re-synchronization), and third of all I can control execution index of my modules, which can be handy during specific configuration (Auxiliary MA implementation for example); Lastly, but not less important The Metaverse Router will allow you to turn on and off provisioning without actually changing sever configuration. So if you are a Sync Engine geek – you’ve got a new toy for yourself: Metaverse Router.