{"id":1655,"date":"2011-08-29T04:54:55","date_gmt":"2011-08-29T04:54:55","guid":{"rendered":"https:\/\/www.wapshere.com\/missmiis\/?p=1655"},"modified":"2011-08-30T01:13:42","modified_gmt":"2011-08-30T01:13:42","slug":"event-broker-for-fim-2010","status":"publish","type":"post","link":"https:\/\/www.wapshere.com\/missmiis\/event-broker-for-fim-2010","title":{"rendered":"Event Broker for FIM 2010"},"content":{"rendered":"<p>Unify Solutions have a bunch of great add-on products for FIM 2010 and, now I&#8217;m working here, I have a chance to find out more about them. The first one I&#8217;ve been playing with is the <a href=\"http:\/\/www.fimeventbroker.com\/product-information\/\">FIM Event Broker<\/a>, which is essentially a task scheduler for FIM Sync, with all sorts of great features like an intuitive GUI, event-triggered tasks and proper logging. All things I think we can safely agree have been missing from the Sync Service as it comes out of the box! <!--more--><\/p>\n<h3>Why we need it<\/h3>\n<p>Most people still trigger run profiles and associated processes (such as SSIS packages and other scripts) using a combination of vbscript or powershell scripts, and the Windows Task Scheduler. This approach is OK to a point &#8211; but when a lot of processes need to run at different times it can quickly become unweildy and hard to manage.<\/p>\n<p>Something that is even more pertinent now we have the FIM Portal is on-demand provisioning. When an account is requested in the FIM Portal we may want to provision that account straight away, instead of having to wait for the next Sync cycle. I worked on a project a few years back where on-demand provisioning was a big requirement &#8211; this was before the FIM Portal so we were using a custom built website and ILM 2007, but the principal is the same. At the time I actually wrote my own <a href=\"https:\/\/www.wapshere.com\/missmiis\/the-ilm_scheduler-is-now-available-for-download\">ILM Scheduler service<\/a>, just to tackle this problem &#8211; but I sure wish I&#8217;d known about Event Broker then &#8211; it would have made life a lot easier!<\/p>\n<h3>Operations<\/h3>\n<p>In Event Broker you can define lists of tasks called &#8220;Operations&#8221;. Here&#8217;s one I&#8217;ve been using a lot in my FIM Portal demos, where I&#8217;m creating objects in the Portal and provisioning them through the AD. Note the sub-task for the FIM MA &#8211; here if I get that annoying stopped-ma error that is only fixed by a Full Import, Event Broker will automatically run the Full instead of the Delta.<\/p>\n<p><a href=\"https:\/\/www.wapshere.com\/missmiis\/wp-content\/uploads\/2011\/08\/EB-FIMtoAD.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1656\" title=\"EB FIMtoAD\" src=\"https:\/\/www.wapshere.com\/missmiis\/wp-content\/uploads\/2011\/08\/EB-FIMtoAD.jpg\" alt=\"\" width=\"516\" height=\"152\" srcset=\"https:\/\/www.wapshere.com\/missmiis\/wp-content\/uploads\/2011\/08\/EB-FIMtoAD.jpg 516w, https:\/\/www.wapshere.com\/missmiis\/wp-content\/uploads\/2011\/08\/EB-FIMtoAD-300x88.jpg 300w\" sizes=\"auto, (max-width: 516px) 100vw, 516px\" \/><\/a><\/p>\n<p>Operations are not just confined to run profiles &#8211; there are various other tasks I can include, such as running a powershell script:<\/p>\n<p><a href=\"https:\/\/www.wapshere.com\/missmiis\/wp-content\/uploads\/2011\/08\/EB-operations.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1657\" title=\"EB operations\" src=\"https:\/\/www.wapshere.com\/missmiis\/wp-content\/uploads\/2011\/08\/EB-operations.jpg\" alt=\"\" width=\"416\" height=\"239\" srcset=\"https:\/\/www.wapshere.com\/missmiis\/wp-content\/uploads\/2011\/08\/EB-operations.jpg 416w, https:\/\/www.wapshere.com\/missmiis\/wp-content\/uploads\/2011\/08\/EB-operations-300x172.jpg 300w\" sizes=\"auto, (max-width: 416px) 100vw, 416px\" \/><\/a><\/p>\n<h3>Scheduling<\/h3>\n<p>You can schedule operations the traditional way, with times and repetition frequencies, though with a lot more flexibility than you get with the Task Scheduler:<\/p>\n<p><a href=\"https:\/\/www.wapshere.com\/missmiis\/wp-content\/uploads\/2011\/08\/EB-scheduling.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1658\" title=\"EB scheduling\" src=\"https:\/\/www.wapshere.com\/missmiis\/wp-content\/uploads\/2011\/08\/EB-scheduling.jpg\" alt=\"\" width=\"658\" height=\"300\" srcset=\"https:\/\/www.wapshere.com\/missmiis\/wp-content\/uploads\/2011\/08\/EB-scheduling.jpg 822w, https:\/\/www.wapshere.com\/missmiis\/wp-content\/uploads\/2011\/08\/EB-scheduling-300x136.jpg 300w\" sizes=\"auto, (max-width: 658px) 100vw, 658px\" \/><\/a><\/p>\n<h3>Event based<\/h3>\n<p>The really cool way to trigger EB operations is in response to events in the connected data source. There is an agent involved, but once that&#8217;s in place you can actually trigger sync runs in response to, for example, a new user object being created in AD, or a new record being added to a database table. Here&#8217;s a view of the agents available with Event Broker.<\/p>\n<p><a href=\"https:\/\/www.wapshere.com\/missmiis\/wp-content\/uploads\/2011\/08\/EB-Agents.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1659\" title=\"EB Agents\" src=\"https:\/\/www.wapshere.com\/missmiis\/wp-content\/uploads\/2011\/08\/EB-Agents.jpg\" alt=\"\" width=\"371\" height=\"157\" srcset=\"https:\/\/www.wapshere.com\/missmiis\/wp-content\/uploads\/2011\/08\/EB-Agents.jpg 371w, https:\/\/www.wapshere.com\/missmiis\/wp-content\/uploads\/2011\/08\/EB-Agents-300x126.jpg 300w\" sizes=\"auto, (max-width: 371px) 100vw, 371px\" \/><\/a><\/p>\n<p>The method I&#8217;ve been using the most is the FIM Agent where I can make use of the Event Broker Workflow Activity. This activity can be added into standard FIM workflows, so that you can then actually trigger a Sync run, or anything else you&#8217;ve defined as an operation in EB, as part of the workflow. Here&#8217;s the workflow I&#8217;ve been using in my demos so I can provision an AD account immediately and without having to run any other scripts:<\/p>\n<p><a href=\"https:\/\/www.wapshere.com\/missmiis\/wp-content\/uploads\/2011\/08\/EB-Workflow.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"740\" height=\"702\" class=\"alignnone size-full wp-image-1660\" title=\"EB Workflow\" src=\"https:\/\/www.wapshere.com\/missmiis\/wp-content\/uploads\/2011\/08\/EB-Workflow.jpg\" alt=\"\" srcset=\"https:\/\/www.wapshere.com\/missmiis\/wp-content\/uploads\/2011\/08\/EB-Workflow.jpg 740w, https:\/\/www.wapshere.com\/missmiis\/wp-content\/uploads\/2011\/08\/EB-Workflow-300x284.jpg 300w\" sizes=\"auto, (max-width: 740px) 100vw, 740px\" \/><\/a><\/p>\n<p>So just to spell out what that workflow is doing:<\/p>\n<ol>\n<li>I generate DisplayName, AccountName, Domain and an initial password for the user,<\/li>\n<li>I attach the &#8220;Provision AD User&#8221; Sync Rule,<\/li>\n<li>I send notifications to the Target and Requestor, and<\/li>\n<li>I call the Event Broker Operation that syncs the changes through to AD (identified by it&#8217;s GUID to prevent any renaming mishaps).<\/li>\n<\/ol>\n<p>And it&#8217;s been working\u00c2\u00a0a treat!<\/p>\n<h3>Logging<\/h3>\n<p>Finally, logging has always been somewhat undernourished in FIM Sync, but you can get the detailed logs you&#8217;d expect in EB.<\/p>\n<p><a href=\"https:\/\/www.wapshere.com\/missmiis\/wp-content\/uploads\/2011\/08\/EB-Logging.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1661\" title=\"EB Logging\" src=\"https:\/\/www.wapshere.com\/missmiis\/wp-content\/uploads\/2011\/08\/EB-Logging.jpg\" alt=\"\" width=\"521\" height=\"292\" srcset=\"https:\/\/www.wapshere.com\/missmiis\/wp-content\/uploads\/2011\/08\/EB-Logging.jpg 651w, https:\/\/www.wapshere.com\/missmiis\/wp-content\/uploads\/2011\/08\/EB-Logging-300x168.jpg 300w\" sizes=\"auto, (max-width: 521px) 100vw, 521px\" \/><\/a><\/p>\n<h3>Just a couple more points&#8230;<\/h3>\n<p>I&#8217;ve been using it with R2 and it works fine. EB is now on version 3.0 and has a long history in production with many Unify customers in Australia so it&#8217;s a stable product. And it&#8217;s straight-forward to install yourself.<\/p>\n<h3>If you&#8217;d like to know more&#8230;<\/h3>\n<p>See <a href=\"http:\/\/www.fimeventbroker.com\">www.fimeventbroker.com.<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Unify Solutions have a bunch of great add-on products for FIM 2010 and, now I&#8217;m working here, I have a chance to find out more about them. The first one I&#8217;ve been playing with is the FIM Event Broker, which is essentially a task scheduler for FIM Sync, with all sorts of great features like&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"footnotes":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":[]},"categories":[42,58,57,45],"tags":[],"class_list":["post-1655","post","type-post","status-publish","format-standard","hentry","category-fim-2010","category-fim-sync-service","category-unify","category-workflow"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pkp1o-qH","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.wapshere.com\/missmiis\/wp-json\/wp\/v2\/posts\/1655","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wapshere.com\/missmiis\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wapshere.com\/missmiis\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wapshere.com\/missmiis\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wapshere.com\/missmiis\/wp-json\/wp\/v2\/comments?post=1655"}],"version-history":[{"count":12,"href":"https:\/\/www.wapshere.com\/missmiis\/wp-json\/wp\/v2\/posts\/1655\/revisions"}],"predecessor-version":[{"id":1672,"href":"https:\/\/www.wapshere.com\/missmiis\/wp-json\/wp\/v2\/posts\/1655\/revisions\/1672"}],"wp:attachment":[{"href":"https:\/\/www.wapshere.com\/missmiis\/wp-json\/wp\/v2\/media?parent=1655"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wapshere.com\/missmiis\/wp-json\/wp\/v2\/categories?post=1655"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wapshere.com\/missmiis\/wp-json\/wp\/v2\/tags?post=1655"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}