<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ObjectSource Blog - Because Expertise Matters &#187; Identity Management (IdM)</title>
	<atom:link href="http://objectsource.com/blogs/category/identity-management/feed/" rel="self" type="application/rss+xml" />
	<link>http://objectsource.com/blogs</link>
	<description>Objective Outsourcing Delivered</description>
	<lastBuildDate>Sun, 22 Aug 2010 07:43:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>BMC Corporate Directory Manager (CDM) &#8211; The Unofficial Guide</title>
		<link>http://objectsource.com/blogs/2010/02/bmc-corporate-directory-manager-cdm-the-unofficial-guide/</link>
		<comments>http://objectsource.com/blogs/2010/02/bmc-corporate-directory-manager-cdm-the-unofficial-guide/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 11:50:33 +0000</pubDate>
		<dc:creator>Srikanth Shenoy</dc:creator>
				<category><![CDATA[BMC Identity Management]]></category>
		<category><![CDATA[Identity Management (IdM)]]></category>
		<category><![CDATA[BMC IdM]]></category>
		<category><![CDATA[BMC Workflow]]></category>
		<category><![CDATA[CDM]]></category>
		<category><![CDATA[Corporate Directory Manager]]></category>

		<guid isPermaLink="false">http://objectsource.com/blogs/?p=80</guid>
		<description><![CDATA[This is yet another post on CDM again ! My previous post covered workflow best practices with respect to CDM. This one gets into product details &#8211; following my trademark unconventional approach to understanding the product. This installment is perhaps the last on CDM and provides a nice compact document that explains how CDM really [...]]]></description>
			<content:encoded><![CDATA[<p>This is yet another post on CDM again ! My previous post covered workflow best practices with respect to CDM. This one gets into product details &#8211; following my trademark unconventional approach to understanding the product.</p>
<p>This installment is perhaps the last on CDM and provides a nice compact document that explains how CDM really works (as of 5.5 &#8211; when the underlying architecture was completely revamped). Again, this  is a guide that I created for my own sake. I documented one piece at a time, as I understood its workings and offering this for the first time in public domain for reference. I know there are a lot of big companies still on BMC IdM (Control SA + CDM + &#8230;..). So &#8211; if any of you oth there run into this blog by Googling CDM &#8211; I can assure you that this is the best damn guide on CDM period.</p>
<p>Enjoy</p>

<iframe src="http://docs.google.com/viewer?url=http%3A%2F%2Fwww.objectsource.com%2Fblogs%2Fwp-content%2Fuploads%2F2010%2F02%2FThe_Unofficial_Guide_to_CDM55_and_REM_v0.5.pdf&embedded=true" width="100%" height="800" frameborder="0" style="min-width:305px;" class="gde-frame"></iframe>

<p class="gde-text"><a href="http://www.objectsource.com/blogs/wp-content/uploads/2010/02/The_Unofficial_Guide_to_CDM55_and_REM_v0.5.pdf" target="_blank" class="gde-link">Download (PDF, 1.65MB)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://objectsource.com/blogs/2010/02/bmc-corporate-directory-manager-cdm-the-unofficial-guide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Workflow Best Practices with BMC Corporate Directory Manager</title>
		<link>http://objectsource.com/blogs/2010/02/workflow-best-practices-with-bmc-corporate-directory-manager/</link>
		<comments>http://objectsource.com/blogs/2010/02/workflow-best-practices-with-bmc-corporate-directory-manager/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 11:16:19 +0000</pubDate>
		<dc:creator>Srikanth Shenoy</dc:creator>
				<category><![CDATA[Identity Management (IdM)]]></category>
		<category><![CDATA[BMC Corporate Directory Manager]]></category>
		<category><![CDATA[BMC Identity Management]]></category>
		<category><![CDATA[CDM]]></category>

		<guid isPermaLink="false">http://objectsource.com/blogs/?p=74</guid>
		<description><![CDATA[BMC Corporate Directory Manager (CDM) &#8211; Ever heard if it? It is a nice workflow product that was acquired from French Company Calendra by BMC when they were into building their IdM arsenal way back in 2004. The product is very good. I&#8217;d go so far as to say that it was the best workflow [...]]]></description>
			<content:encoded><![CDATA[<p>BMC Corporate Directory Manager (CDM) &#8211; Ever heard if it? <img src='http://objectsource.com/blogs/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>It is a nice workflow product that was acquired from French Company Calendra by BMC when they were into building their IdM arsenal way back in 2004. The product is very good. I&#8217;d go so far as to say that it was the best workflow tool in the &#8220;Bundled with Identity Management&#8221; category.  I used it when architecting solutions for customers using BMC Identity Management and fell in love with it. It had its idiosyncrhasies. It is definitely not the best of breed among workflow tools, in fact it will not even come close to solutions like Lombardi, it is not standards based (no WfMC, no xPDL, no BPMN), but it was tailored for a particular job (Identity related workflows) and did the job well.</p>
<p>It is my habit to use a tool in the RIGHT way and in the best possible manner. And so I did the same with CDM and applied them successfully at countless BMC IdM deployments. Shown below is a document that sumarrizes the best practices with the tool</p>

<iframe src="http://docs.google.com/viewer?url=http%3A%2F%2Fwww.objectsource.com%2Fblogs%2Fwp-content%2Fuploads%2F2010%2F02%2FCDM_Workflow_Design_Practices.pdf&embedded=true" width="100%" height="800" frameborder="0" style="min-width:305px;" class="gde-frame"></iframe>

<p class="gde-text"><a href="http://www.objectsource.com/blogs/wp-content/uploads/2010/02/CDM_Workflow_Design_Practices.pdf" target="_blank" class="gde-link">Download (PDF, 466.84KB)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://objectsource.com/blogs/2010/02/workflow-best-practices-with-bmc-corporate-directory-manager/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ideas for next generation VIDT for Sun Identity Manager</title>
		<link>http://objectsource.com/blogs/2010/02/ideas-for-next-generation-vidt-for-sun-identity-manager/</link>
		<comments>http://objectsource.com/blogs/2010/02/ideas-for-next-generation-vidt-for-sun-identity-manager/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 09:58:42 +0000</pubDate>
		<dc:creator>Srikanth Shenoy</dc:creator>
				<category><![CDATA[Identity Management (IdM)]]></category>
		<category><![CDATA[Sun Identity Management (Sun IdM)]]></category>
		<category><![CDATA[Sun Identity Manager]]></category>
		<category><![CDATA[Sun IdM]]></category>
		<category><![CDATA[VIDT]]></category>

		<guid isPermaLink="false">http://objectsource.com/blogs/?p=60</guid>
		<description><![CDATA[Hopefully you have seen my post on learning Sun IdM using UML. Here it is http://objectsource.com/blogs/2010/02/understanding-sun-idm-using-uml/ Combining that UML centric/domain driven idea with existing VIDT and deriving inspiration from Naked Objects (and similar) framework, I came up with a novel concept for next generation VIDT. This approach will take VIDT a level higher and would [...]]]></description>
			<content:encoded><![CDATA[<p>Hopefully you have seen my post on learning Sun IdM using UML. Here it is <a href="http://objectsource.com/blogs/2010/02/understanding-sun-idm-using-uml/">http://objectsource.com/blogs/2010/02/understanding-sun-idm-using-uml/</a></p>
<p>Combining that UML centric/domain driven idea with existing VIDT and deriving inspiration from Naked Objects (and similar) framework, I came up with a novel concept for next generation VIDT. This approach will take VIDT a level higher and would solve additional problems that VIDT cannot solve as is. I developed the approach on my own time &#8211; based on my understanding of Sun IdM, VIDT, Java, JavaEE and of course OO. I proposed it to the Sun management, the idea was accpeted, but nobody had the commitment to take a goose laid golden eggs (meaning billable &#8211; that is me) and put on a  project that would take the VIDT tool to next level. The idea was that apart from travelling every week and working insance hours, I could as well contribute to developing the product. That was too much to chew at once.</p>
<p>Anyway, a more detailed explanation of this approach will be provided at a later date. For now, enjoy the presentation below. It is chock full of ideas.</p>

<iframe src="http://docs.google.com/viewer?url=http%3A%2F%2Fwww.objectsource.com%2Fblogs%2Fwp-content%2Fuploads%2F2010%2F02%2FBuild_NextGen_VIDT.pdf&embedded=true" width="100%" height="800" frameborder="0" style="min-width:305px;" class="gde-frame"></iframe>

<p class="gde-text"><a href="http://www.objectsource.com/blogs/wp-content/uploads/2010/02/Build_NextGen_VIDT.pdf" target="_blank" class="gde-link">Download (PDF, 676.87KB)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://objectsource.com/blogs/2010/02/ideas-for-next-generation-vidt-for-sun-identity-manager/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Understanding Sun Identity Manager using UML</title>
		<link>http://objectsource.com/blogs/2010/02/understanding-sun-idm-using-uml/</link>
		<comments>http://objectsource.com/blogs/2010/02/understanding-sun-idm-using-uml/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 09:32:03 +0000</pubDate>
		<dc:creator>Srikanth Shenoy</dc:creator>
				<category><![CDATA[Identity Management (IdM)]]></category>
		<category><![CDATA[Sun Identity Management (Sun IdM)]]></category>
		<category><![CDATA[ActiveSync]]></category>
		<category><![CDATA[IdM]]></category>
		<category><![CDATA[Reconciliation]]></category>
		<category><![CDATA[Sun IdM]]></category>

		<guid isPermaLink="false">http://objectsource.com/blogs/?p=63</guid>
		<description><![CDATA[Understanding Sun IdM using UML &#8211; Now that&#8217;s a really novel concept as far as IdM users are concerned. How did I come up with this idea?  The answer is: Based on my own learning and teaching experience.While at Sun, I was asked to learn Sun IdM as quickly as possible and implement for the clients. [...]]]></description>
			<content:encoded><![CDATA[<p>Understanding Sun IdM using UML &#8211; Now that&#8217;s a really novel concept as far as IdM users are concerned. How did I come up with this idea?  The answer is: Based on my own learning and teaching experience.While at Sun, I was asked to learn Sun IdM as quickly as possible and implement for the clients. There was a catch &#8211; I had never even used Sun IdM before let alone knowing about it. So, a few of us were put through a bootcamp.</p>
<p>The bootcamp methodology for teaching Sun IdM was too much a like a cookbook. Instead of getting to the fundamentals and concepts and building it from there, the approach was &#8211; Here is a button, here are few drop downs, Clikc them and you will get activesync., Oh by the way provide a proxy admin for ActiveSync, but remember not to attach a user form to proxy admin. Oh and here is how you create a deferred task scanner. This approach was totally unappetizing for me. I am a JavaEE developer and architect  by profession and understanding concepts, capturing the domain in UML lay at the center of whatever I did for my customers.  I thought &#8211; IdM should be no different. Hence &#8211; after a few painful iterations of following the cookbook, I decided to dig under the hood &#8211; look at the database created by IdM, analyze the data and come up with how IdM is logically under the hood. This was of course UML (No surprises there &#8211; huh ?)</p>
<p>So, while other wannabe &#8220;IdM architects&#8221; were mugging how to do each task via the cookbook approach, I went on a tangent and approached the domain from common sense approach. As I uncovered each relation between various IdM components &#8211; I drew UML on paper. After I had captured enough of those relations, I converted them into electronic format. A cookbook would only address a few pre-defined questions, but my UML was helping me address all sorts of questions that customers posed.  With just a week of bootcamp and a two weeks of self learning using the aforementioned approach, I emerged as a real productive IdM developer in my first project, implemented it very well and was architecting more IdM solutions. I was productive on ground real fast.</p>
<p><a href="http://www.objectsource.com/blogs/wp-content/uploads/2010/02/sunidm_uml.zip">Download All UML Diagrams as a ZIP</a></p>
<p>And here I am, providing a few of those UML class diagrams as samples for you to understand Sun IdM from grounds up using concepts than cookbook. Use these as starting point to build, extend and share your understanding.  As the old adage goes &#8211; A picture is worth thousand words. Whoever said it had UML on their mind. So, each of these diagrams captures a wealth of relationships between components and you could look at each of those relationship and conclude what configuration changes are needed for a given task. Observe the relations, navigabilities, multiplcities, dependencies and inheritance depicted to get a deeper level of Sun IdM understanding</p>
<div class="wp-caption aligncenter" style="width: 1016px"><img src="http://www.objectsource.com/blogs/wp-content/uploads/2010/02/01-IdM_Top_Level_Diagram.png" alt="IdM Top Level View" width="1006" height="471" /><p class="wp-caption-text">IdM Top Level View</p></div>
<div class="wp-caption aligncenter" style="width: 899px"><img src="http://www.objectsource.com/blogs/wp-content/uploads/2010/02/02-LoginModule_ClassDiagram.png" alt="Login Module Class Diagram" width="889" height="426" /><p class="wp-caption-text">Login Module Class Diagram</p></div>
<div class="wp-caption aligncenter" style="width: 928px"><img src="http://www.objectsource.com/blogs/wp-content/uploads/2010/02/03-Repo_Diagram.png" alt="Relation between IdM Forms, Rules, View Handler and XPRESS" width="918" height="573" /><p class="wp-caption-text">Relation between IdM Forms, Rules, View Handler and XPRESS</p></div>
<div class="wp-caption aligncenter" style="width: 1522px"><img src="http://www.objectsource.com/blogs/wp-content/uploads/2010/02/04-User_Relationships_ClassDiagram.png" alt="Relations between Waveset User, Account and password policies, Forms, Resource assignments etc." width="1512" height="740" /><p class="wp-caption-text">Relations between Waveset User, Account and password policies, Forms, Resource assignments etc.</p></div>
<div class="wp-caption aligncenter" style="width: 1132px"><img src="http://www.objectsource.com/blogs/wp-content/uploads/2010/02/05-Resource_Class_Diagram.png" alt="Relation between a Waveset User, Resource, Reconcilation, ActiveSync, scheduling, admins and forms" width="1122" height="1055" /><p class="wp-caption-text">Relation between a Waveset User, Resource, Reconcilation, ActiveSync, scheduling, admins and forms</p></div>
<div class="wp-caption aligncenter" style="width: 1013px"><img src="http://www.objectsource.com/blogs/wp-content/uploads/2010/02/User_Admin_Role_ClassDiagram.png" alt="Relation between User, Resource, Admin Role, Admin Group" width="1003" height="473" /><p class="wp-caption-text">Relation between User, Resource, Admin Role, Admin Group</p></div>
<p>As you can see this material is not meant for glossing over. Rather it is meant for focussed study with deep introspection. Meant for serious readers only <img src='http://objectsource.com/blogs/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Enjoy and provide feedback. And if you contribute, dont forget to provide me a link to your UMLs</p>
]]></content:encoded>
			<wfw:commentRss>http://objectsource.com/blogs/2010/02/understanding-sun-idm-using-uml/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A different way of looking at Sun IdM and VIDT</title>
		<link>http://objectsource.com/blogs/2010/02/a-different-way-of-looking-at-sun-idm-and-vidt/</link>
		<comments>http://objectsource.com/blogs/2010/02/a-different-way-of-looking-at-sun-idm-and-vidt/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 07:25:32 +0000</pubDate>
		<dc:creator>Srikanth Shenoy</dc:creator>
				<category><![CDATA[Identity Management (IdM)]]></category>
		<category><![CDATA[Sun Identity Management (Sun IdM)]]></category>
		<category><![CDATA[Sun Identity Manager]]></category>
		<category><![CDATA[Sun IdM]]></category>
		<category><![CDATA[VIDT]]></category>

		<guid isPermaLink="false">http://objectsource.com/blogs/?p=47</guid>
		<description><![CDATA[Talk to any Sun IdM consultant and he/she will give you the same old elevator pitch about Sun IdM. That&#8217;s great if you were a CEO who is buying IdM. But if you were a developer who wants to use brains and understand things from first principles rather than from a step by step recipe [...]]]></description>
			<content:encoded><![CDATA[<p>Talk to any Sun IdM consultant and he/she will give you the same old elevator pitch about Sun IdM. That&#8217;s great if you were a CEO who is buying IdM. But if you were a developer who wants to use brains and understand things from first principles rather than from a step by step recipe book, then you will like my blog &#8211; Because I peel out the useless layers of marketing, hype and &#8220;monkey see-monkey do&#8221; recipe guides and get straight to concept and explain this at the conceptual level. Then I let you to exercise your brains to figure out the rest. I trust your intelligence. I dont want Sun IdM developers to be &#8220;monkey see-monkey do&#8221;ers.</p>
<p>In today&#8217;s blog, Iwill  explain the IdM configuration object mayhem in a typical IdM lifecycle and VIDT in greater details. In my next blog, I will layout some uncommon ways of approaching and understanding Sun IdM using UML. (I hope my readers come from a OO background and know Java and UML)</p>
<h2>Abstract</h2>
<p>Sun Identity Manager deployment experiences have added the maturity to the delivery model. VIDT is the outcome of thus gained maturity. VIDT captures several best practices in IdM implementation and almost productizes them to help jumpstart a IdM project. It is possible that VIDT workings can appear confusing on the surface. This blog probes beneath the surface to reveal why it is, what it is and how it works.</p>
<p>In the process, the blog series will provide a overview of VIDT logical and physical architecture, role of VIDT in a IdM deployment lifecycle, problems solved by VIDT and new challenges introduced in a IdM project using VIDT and how to address them. Future blogs will also cover the patterns and best practices that are implemented by VIDT as time permits.</p>
<h2>1. Identity Management Project Lifecycle</h2>
<p>This section covers the Sun identity Manager in the context of execution of a Identity Management project. Most importantly, it highlights a few logistical problems faced in Identity Management project with Sun Identity Manager.</p>
<p><strong>1.1 Sun Identity Manager Overview</strong></p>
<p>Sun Identity Manager is the granddaddy of configuration. Sun Identity Manager 7.1 has 50 different types of so-called IdM objects. Each type of object can have 5 subtypes and up to 100 instances. Identity Manager projects tend to be configuration heavy as most of the features of the product are exposed and customized via the IdM-object configuration. Each IdM object is essentially a xml snippet (conforming to waveset dtd) and stored as a single record in IdM repository. Throughout this document any references to xml snippet, IdM object, or object are interchangeable.</p>
<p>Sun IdM itself ships with thousands of objects. Some of them are internal and core to IdM, while others are essentially meant to be customized. A lot of functionality can also be configured via the administrative interface. Even the configurations from an administrative interface translate into xml snippets. Figure 1. shows this.</p>
<p>Any project life cycle involves building a baseline in an environment. Then it has go through the iterative cycles of configuration, development, testing and deployment in multiple environments. test and then deploy to several environments including production. The automation of this process makes it defined and repeatable. IdM projects are no exception. One thing that especially stands out in IdM project is that they involve heavy configuration. Configuration done via the administrative interface involves manual intervention and prone to human errors. The solution for this is to “create the configuration once and deploy everywhere”. Sun IdM provides the hooks to automate the deployment of the se objects. Creation and testing of the objects forms the rest of (also bulk of) Sun IdM implementation.</p>
<p><strong>1.2 Where is my XML?</strong></p>
<p>As noted earlier, Sun IdM implementation is mostly about configuring and deploying the xml snippets into the IdM repository. The xml snippets can be put together by hand or using a logical interface like Business Process Editor (BPE) or the newer NetBeans IdM plugin. In either case, they are imported into IdM repository through a ant build/deploy (The xmls can also be indivdually imported into repository via a special “import exchange file mechanism, but the environment specific parameter replacement will not occur). Many xml objects share a logical relationship because they are part of a single business requirement. However the xmls snippet validation is limited to basic dtd. Complex type based relationships are not completely enforced at the creation time(Netbeans and BPE do some type based validation at creation time). At runtime, the association between the xml snippets is resolved and the IdM tries to get all the defined objects and connect them together to execute the defined business requirement. In doing so, it may fail only at runtime. In addition, the number of xml snippets needed to meet even a modest set of business requirements can be quite large.</p>
<p>The two factors mentioned above overload the IdM implementor with creation of xml snippets (some boilerplate, some slightly customised and some highly customized) during project initiation, which really can be automated. Additionally, considering the fact that IdM is a “sort of” vertical, most of these basic requirements across IdM implementations are more or less the same and need slight adjustment to meet the needs of individual customers. Velocity Identity Deployment Tool (VIDT) was born out of this necessity.</p>
<h2>2. What can VIDT do for you?</h2>
<p>VIDT is a tool aimed at solving the problem mentioned in the previous section. It is a tool aimed at jump starting the IdM implementation. VIDT lets the business analyst or the implementer to input most of the basic business requirements through a simple point and click interface. A set of xml snippets are created by the tool to meet the business requirements.</p>
<p>In the beginning, the number of xmls generated by VIDT can be a bit overwhelming. However the structure of generated xmls remains same across multiple projects. The generated xml snippets follow several identifiable patterns, best practices and defined process flows. Over time this consistency becomes a familiar territory. Advantages of pre-defined patterns, practices and processes are manifold.</p>
<p>First of all, it cuts down project time by generating the pre-wired xml snippets. It does this by eliminating the need to creating most commonly needed xml snippets from scratch (not to forget the time needed to verify all those are of correct type and correctly linked)</p>
<p>It moves the thought process from xml snippets to actual business use cases. It makes cross-training across projects is easier. Spotting the patterns in a project jumpstarted by VIDT becomes second nature to a VIDT trained implementor. Health checks become easier due to the same reason. Consistent structure can work wonders by making the projects defined and repeatable.</p>
<p>In addition, it also generates valuable documentation automatically for requirements, design, level of effort and Statement of Work. Each of these is a timesaver by itself.</p>
<p>At the beginner level, it is okay to treat VIDT as a blackbox that outputs wonderful xmls based on business requirements. But a deeper knowledge of the tool is necessary to fully exploit its capability and understand when it cannot be used. A deeper knowledge is essential for resolving the logistical and technical challenges that arise with the usage of the tool in a IdM project.</p>
<h2>3. VIDT Logical Architecture</h2>
<p>Figure 2 shows the high level logical architecture</p>
<p><img class="aligncenter" src="http://www.objectsource.com/blogs/wp-content/uploads/2010/02/VIDT_Logical_Architecture.jpg" alt="" width="635" height="380" /></p>
<p>On the left use cases are entered into VIDT using the UI. Use cases are definitions at pseudo business level &#8211; for instance &#8211; define a Active Directory resource (easier than IdM console) and a use case might say &#8211; I need activesync with Active Directory and voila a bunch of xmls including workflow, forms and Xpress code to support the use case (all based on best practices) get generated. They can be further tweaked then at xml level. Internally the use cases get stored as intermediate xmls using Castor which then generate the real XMLs when requested. Incidentally all this conversions and even the UI is based on Velocity (a open source tool &#8211; Find it in Apache) templating. Hence the name VIDT !!</p>
<p>More to come in future blogs</p>
]]></content:encoded>
			<wfw:commentRss>http://objectsource.com/blogs/2010/02/a-different-way-of-looking-at-sun-idm-and-vidt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configuration Objects in Sun IdM &#8211; Great Idea, Bad Implementation</title>
		<link>http://objectsource.com/blogs/2010/02/configuration-objects-in-sun-idm-great-idea-bad-implementation/</link>
		<comments>http://objectsource.com/blogs/2010/02/configuration-objects-in-sun-idm-great-idea-bad-implementation/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 06:56:41 +0000</pubDate>
		<dc:creator>Srikanth Shenoy</dc:creator>
				<category><![CDATA[Identity Management (IdM)]]></category>
		<category><![CDATA[Sun Identity Management (Sun IdM)]]></category>
		<category><![CDATA[Sun Identity Manager]]></category>
		<category><![CDATA[Sun IdM]]></category>

		<guid isPermaLink="false">http://objectsource.com/blogs/?p=44</guid>
		<description><![CDATA[This is a continuation of my Sun IdM blog series. Sun IdM is a very extensible product. Every piece of functionality is loosely coupled.  Everything is configurable in Sun IdM.  Even to the last bit. How is this achieved? Answer: Configuration Objects Configuration Objects are pieces of xml to configure a bit of functionality. Large number [...]]]></description>
			<content:encoded><![CDATA[<p>This is a continuation of my Sun IdM blog series.</p>
<p>Sun IdM is a very extensible product. Every piece of functionality is loosely coupled.  Everything is configurable in Sun IdM.  Even to the last bit. How is this achieved?</p>
<p>Answer: Configuration Objects</p>
<p>Configuration Objects are pieces of xml to configure a bit of functionality. Large number of such bits come together to define the behavior of the product.  Like communism &#8211; the idea is great, but implementation sucks. This is how it causes unthinkable nightmares</p>
<ol>
<li>All configuration objects are xml and stored in database with a id and name.</li>
<li>Developer can change any xml object and write back to the database/repository</li>
<li>Database will happily accept the xml as long as it is valid and confirms to to the dtd</li>
<li>Problem comes during runtime &#8211; Another executing object looks for a previously existing xml by name or id. If it does not find it, there is a runtime error. If it finds it, but somebody has changed the behavior of the called object/xml by modifying it and introduced bugs, again it results in  runtime error.</li>
<li>IdM consultant&#8217;s biggest headache when at a customer site  who has been using IdM for a while is exactly this. One of client&#8217;s developer has inadvertantly changed a xml and put it in database. Nobody knows which one. A lot of these xml changes completely skipped the source control and done by just committing the new xml to the production database.</li>
<li>Client has changed a xml behavior but retained its original name. During product upgrade all xmls with out-of-the-box names are replaced. Gone are the customizations</li>
</ol>
<p>With 1000s of xml pieces, it is hard to find which pieces were interacting together before and after and the system is broken. Like I said before, the idea is great, implementation sucks. Tools such as VIDT (Velocity Identity Deployment Tool &#8211; Bad name, good implementation) came into being just to address this mayhem a little bit.</p>
<p>In my next blog, I will describe in detail about IdM project life cycle and the importance of VIDT and a logical description of VIDT.</p>
]]></content:encoded>
			<wfw:commentRss>http://objectsource.com/blogs/2010/02/configuration-objects-in-sun-idm-great-idea-bad-implementation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XPRESS in Sun IdM &#8211; A real oxymoron</title>
		<link>http://objectsource.com/blogs/2010/02/xpress-in-sun-idm-a-real-oxymoron/</link>
		<comments>http://objectsource.com/blogs/2010/02/xpress-in-sun-idm-a-real-oxymoron/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 16:57:15 +0000</pubDate>
		<dc:creator>Srikanth Shenoy</dc:creator>
				<category><![CDATA[Identity Management (IdM)]]></category>

		<guid isPermaLink="false">http://objectsource.com/blogs/?p=33</guid>
		<description><![CDATA[If you ever had to use Sun IdM ever in your life, you know XPRESS. To those whose dont know XPRESS - it is a xml based dynamic scripting/programming language used extensively by Sun IdM I dont know for sure &#8211; but perhaps this language originated as a quick hack language for adminstrators. No hassles of [...]]]></description>
			<content:encoded><![CDATA[<p>If you ever had to use Sun IdM ever in your life, you know XPRESS.</p>
<p>To those whose dont know XPRESS - it is a xml based dynamic scripting/programming language used extensively by Sun IdM</p>
<p>I dont know for sure &#8211; but perhaps this language originated as a quick hack language for adminstrators. No hassles of programming, compiling and then redeploying, get new code to run while the Sun IdM is in motion. Sounds like paradise. Indeed .. Until this met real world.</p>
<p>The idea of non compiled xml that does procedural programming is a pain in the neck to get right and get working. Programming by tags means writing code in prefix style. Heck &#8211; I&#8217;d rather become a compiler myself and write programming in postfix notation <img src='http://objectsource.com/blogs/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>When the rest of the world was moving ahead with Java, .NET and IDE integration, time seemed to be going back for XPRESS. But to their defense, one needs to remember this language was created in 2001 when xml was all the rage from configuration to even cooking Thanksgiving Turkey dinner.</p>
<p>Programming pain aside, the real reason for this bloglet is to show a funny thing about the so called XPRESS. There was joke in private circles that went like this: &lt;b&gt;&#8221;The only thing express about the language is its name&#8221;&lt;/b&gt;. Funny but true.</p>
<p>To prove this, I wrote a simple 5 line program in Java that does a for loop 100 times and printed out the time taken. Then I repeated the process in XPRESS.</p>
<p>Believe it or not &#8211; The program written in XPRESS was 1000 times slower (Yep &#8211; thats 3 zeroes &#8211; Thousand time slower). Even a reflection based Java program is 100 times slower than compiled Java. It looks like the XPRESS code is parsed everytime, converted into some kind of internal syntax (held in Java objects) and then executed by dynamically constructing Java syntax and run as a scriptlet (like Beanshell or Groovy). The whole exercise costs 1000 times more in time. Not to mention the development time for xpress coding.</p>
<p>If one wants to write anything that is non trivial in XPRESS, God save him/her. And to fill this gap some clever guy wrote a tool that converts Java code to XPRESS code. (<a href="http://www.xpressutils.com/java2xpress.html">http://www.xpressutils.com/java2xpress.html)</a> So, one can now write non-trivial code in Java, then run it through this tool, generate the XPRESS code (xml that is), copy the xml into a text file and save it in the database so that the IdM runtime can pick it and execute (Did I mention 1000 times slower) . Goodness gracious!!</p>
<p>One might think, in the world of web services, why doesnt Sun change its best selling IdM by offerring Java APIs and web service to everything from provisioning to workflow. And truth be told, a lot of them exist. But they are not documented correctly or not documented at all. One has to assume the risk and start digging himself/herself and find the right service and Java API. But user is forewarned &#8211; Such services are half baked &#8211; some features do not exist in the exposed services or Java API. Xpress is the only thing to the rescue in such cases.</p>
<p>On the business/economic front, the XPRESS and arcane workflow interface does not make sense for companies buying Sun IdM either. C&#8217;mon start counting &#8211; How many XPRESS  &#8221;one trick pony-tailers&#8221; are you going to find around you? And contrast that with how many Java developers will you find. It is a irony that Sun &#8211; the company that regards itself as a leader in open source has dug themselves into a rut with this product.</p>
<p>And everytime I look at Gartner report I cringe &#8211; because they have so many good things to be said about this product &#8211; especially how easy it is to build and deploy IdM solution with this product. True, there are a lot of good things abut the product.  Rapid and Easy/clean deployment  with customization is not one of them. Only if they could wrap the strong inner core with a open interface (Java and web services end to end) and support it, while also continuing to support their XPRESS&#8230;</p>
<p>That plan never existed at Sun. But alas&#8230; Now, Oracle has acquired Sun now and Sun-IdM is planned for sunset. And I can see a few XPRESS cowboys riding into oblivion too unless they retrain themseleves with some mainstream language.</p>
<p>PS: For those who think I came down too harsh on Sun IdM &#8211; face it &#8211; I have called a spade &#8211; a spade. I did a objective review of the interface exposed to the IdM users (users means Sun IdM consultants, IT departments of companies using Sun IdM).</p>
<p>Its not Sun&#8217;s product alone that is messed up like this &#8211; Have you heard of another IdM product called BMC IdM?  To deal with that monster you will have to know UNIX shell scripting, Windows programming, Top class Java programming, JSF, SDO, Tcl/Tk, JavaEE deployment and debugging knowledge, . The spectrum of language skills needed to do implement a complete BMC IdM shows how many different products were acquired and stitched together. Consequently there is no one consultant that I know of that could do all of these pieces. A few might exist, I dont know what their hourly rate is <img src='http://objectsource.com/blogs/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>And here is a disclaimer &#8211; I am ex-Sun, ex-BMC and worked on both Sun IdM and BMC IdM.  I was with BMC 5 years ago and with Sun until 2 years ago. Having seen the best and worst of both products, I am exactly the person that can give the true picture by shredding the glossy picture painted by sales. And I think I just did that.</p>
]]></content:encoded>
			<wfw:commentRss>http://objectsource.com/blogs/2010/02/xpress-in-sun-idm-a-real-oxymoron/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>A contrarian approach to Identity Management for Small &amp; Medium Business (SMBs) &#8211; Part 1 of 3</title>
		<link>http://objectsource.com/blogs/2009/10/a-contrarian-approach-to-identity-management-for-small-medium-business-smbs-part-1-of-3/</link>
		<comments>http://objectsource.com/blogs/2009/10/a-contrarian-approach-to-identity-management-for-small-medium-business-smbs-part-1-of-3/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 07:08:36 +0000</pubDate>
		<dc:creator>Srikanth Shenoy</dc:creator>
				<category><![CDATA[Identity Management (IdM)]]></category>
		<category><![CDATA[Identity Management for SMBs]]></category>
		<category><![CDATA[Identity management with SOA]]></category>
		<category><![CDATA[IdM]]></category>

		<guid isPermaLink="false">http://objectsource.com/blogs/?p=6</guid>
		<description><![CDATA[The benefits of Identity Management (IdM) are well known. Several vendor products rule the roost when it comes to IdM. However in reality, the costs of the vendor products, subsequent enhancements, customization and maintenance does not justify the Return On Investment (ROI) for Small &#38; medium Businesses (SMBs). This blog series takes a contrarian view of the current state of Identity Management especially for SMBs and defines a strategy to leverage your company's existing IT investment in SOA to achieve Identity Management.
]]></description>
			<content:encoded><![CDATA[<h2>Abstract</h2>
<p>The benefits of Identity Management (IdM) are well known. Several vendor products rule the roost when it comes to IdM. However in reality, the costs of the vendor products, subsequent enhancements, customization and maintenance does not justify the Return On Investment (ROI) for Small &amp; medium Businesses (SMBs). This blog series takes a contrarian view of the current state of Identity Management especially for SMBs and defines a strategy to leverage your company&#8217;s existing IT investment in SOA to achieve Identity Management.</p>
<h2>Selling points for traditional Identity Management products</h2>
<p>Traditionally Identity Management products IdM products are sold to Information Security division. Security management and security administrators are the primary users of IdM. These primary customers (Information Security division) are not developers by background. Hence the following arguments are used to sell IdM products:</p>
<ol>
<li>Companies that don&#8217;t use IdM product use a collection of vast array of scripts for achieving similar results with varying degree of success. A company&#8217;s IdM strategy cannot rely on hotch potch collection of scripts because
<ol>
<li>Scripts are tactical</li>
<li>What if scripts fails,</li>
<li>What if scheduled script doesn&#8217;t run &#8211; who is notified etc.</li>
<li>Scripts need programming and constant maintenance cost and man power</li>
</ol>
</li>
<li>Management needs Reports on user provisioning, password resets etc. and report generation is not trivial</li>
<li>IdM vendor products come with
<ol>
<li>Canned schema (ldap or db)</li>
<li>Canned reports</li>
<li>Canned provisioning workflows</li>
</ol>
</li>
<li>Products have great UI capabilities &#8211; A lot of provisioning, reconciliation and reporting can be done with the click of a button.</li>
</ol>
<p>Capitalizing on the audience background, the scripting nightmare stories enhance the FUD factor. The “click of a button” provisioning and reporting demos convince the buyers beyond any doubt. However one needs to look beyond the sales demo to get to the whole truth.</p>
<h2> The whole truth about IdM products</h2>
<p>Sure. all those selling points have some truth in them. But can they justify the cost of Identity Management products or the ROI on them &#8211; especially for SMBs?</p>
<p>Lets delve into the internals of any Identity Management product in a generic way. I am not stereotyping, however a majority of IdM product architecture goes like this.</p>
<ol>
<li>All IdM products need substantial customization to meet real world needs and this is where the “click of a button” paradigm falls apart. Canned schema, canned provisioning workflows and canned reports can only go so far. Once you reach this threshold, your luck runs out. (which certainly will, during the requirements analysis and design stage itself by the way)</li>
<li>Reports, provisioning workflow and other facilities are accomplished as vendor supported extensions on top of basic datastore schema</li>
<li>All additional data fields to meet custom business logic have to be crammed into limited extensible space in the tables or by extending the ldap schema. When you extend vendor datastore schema, vendor support is dropped as a general rule.</li>
<li>User provisioning, deprovisioning, system access administration each require workflow that integrates with various IT systems in the company to create ids, grant access &#8211; logic ranging from simple to complex to sometimes weird, but all have logical explanations in the history of evolution of the company. However each IdM product comes with its own workflow syntax and semantics that is completely different from all other workflow systems in your company and requires integration with all other systems to come up with this logic. Since this kind of integration is expensive for the vendor, they take the route of copying the data from existing systems. This makes the vendor PS implementation easier but in the process, they are setting up operations nightmare down the road for data synchronization and data integrity. This approach is very shortsighted.</li>
<li>Add to this the fact that most IdM customizations are written in a propeitory language that is arcane and known only to a few hundred folks (or thousand at best) in the entire world. These folks are expensive, often work for the vendor or their partners (Disclaimer: I am one of them. And yet, truth should be told). You have to go back to the vendor for enhancements. Even your trained folks quit &#8211; what do you do? (Note: Even when Java is supported, it is very propreitory API. BTW, this is the best case scenario today.)</li>
<li>Needless to say that a lot of these IdM products are built upon their legacy propreitory foundations, acquired products patched up together and not standards compliant.</li>
<li>Products cost are justified and sold by their UI capabilities, which is nice facade to the underlying mechanism described above.</li>
<li>You now have in your hands, a solution that is isolated from other systems, with only tactical integration at best, that has to be maintained by the security department not to mention the redundant IT infrastructure needed to run the IdM system, including but not limited to clustering, load balancing and troubleshooting!</li>
</ol>
<p>Now you as a company end up with a solution that</p>
<ol>
<li>Resistant to customizations or collapses under customizations</li>
<li>Need tweaks to your working processes to work within the realms of the product,</li>
<li>Risk of paying too much to get any useful functionality relevant to your company</li>
<li>No support for extensions and your hands tied without any other alternative.</li>
</ol>
<p>This doesnt mean that Identity management product has no value. It does of course. However keep in mind that:</p>
<p><strong><span style="text-decoration: underline">All you really wanted from the Identity Management product/solution is the core identity management capability for a reasonable price.</span></strong></p>
<p><strong><span style="text-decoration: underline">Yet the price is inflated to incorporate all the bells and whistles that you really don&#8217;t need</span></strong></p>
<p>Sounds like you got a raw deal! So, is there a better approach? Sure there is. I will discuss this in my future blogs in this series.</p>
]]></content:encoded>
			<wfw:commentRss>http://objectsource.com/blogs/2009/10/a-contrarian-approach-to-identity-management-for-small-medium-business-smbs-part-1-of-3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

