<?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; Sun Identity Management (Sun IdM)</title>
	<atom:link href="http://objectsource.com/blogs/category/identity-management/sun-identity-management-sun-idm/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>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>
	</channel>
</rss>

