Understanding Sun IdM using UML – Now that’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 – I had never even used Sun IdM before let alone knowing about it. So, a few of us were put through a bootcamp.

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 – 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 – IdM should be no different. Hence – after a few painful iterations of following the cookbook, I decided to dig under the hood – 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 – huh ?)

So, while other wannabe “IdM architects” 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 – 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.

Download All UML Diagrams as a ZIP

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 – 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

IdM Top Level View

IdM Top Level View

Login Module Class Diagram

Login Module Class Diagram

Relation between IdM Forms, Rules, View Handler and XPRESS

Relation between IdM Forms, Rules, View Handler and XPRESS

Relations between Waveset User, Account and password policies, Forms, Resource assignments etc.

Relations between Waveset User, Account and password policies, Forms, Resource assignments etc.

Relation between a Waveset User, Resource, Reconcilation, ActiveSync, scheduling, admins and forms

Relation between a Waveset User, Resource, Reconcilation, ActiveSync, scheduling, admins and forms

Relation between User, Resource, Admin Role, Admin Group

Relation between User, Resource, Admin Role, Admin Group

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 :-)

Enjoy and provide feedback. And if you contribute, dont forget to provide me a link to your UMLs