I’ve been finding it very useful to construct swimlane diagrams that illustrate the actors and interactions in a specific UMA use case, along with flow options and branches. You can see one example in the “UMA solution” tab of Sample Use Case on the OpenUMA community home page. A lot of people use PlantUML or the websequencediagrams.com site (I used the latter), which share the same basic swimlane pseudocode to create diagrams. In case you want to create and play around with (and share?!) your own such diagrams, here is what I used to create the Delegated University Course Registration diagram:
participant "resource owner\n(student Alice)" as RO
participant "resource server\n(course reg API)" as RS
participant "authorization server\n(university STS)" as AS
participant "client\n(course reg app)" as C
participant "requesting party\n(parent Bob)" as RqP
RS->AS: register "courses" resource set and "setup" scope
RO-->AS: set sharing preferences: parent "Bob" can set up my courses
RqP->C: use app to...
C->RS: ...attempt to set up courses for Alice
RS->AS: register permission for access attempt
AS->RS: return permission ticket
RS->C: return 403 with authz server location and permission ticket
C->AS: request authz data, sending permission\nticket and the claim that I'm "Bob"
AS-->AS: assess against Alice's sharing preferences
AS->C: add authz data and return RPT
C->RS: attempt resource access with RPT
RS->AS: introspect RPT
AS->RS: return token status and authz data
RS-->RS: assess access attempt against authz data
RS->C: let Bob set up Alice's courses
I find swimlanes much easier to understand than the diagrams that look like intercontinental missile strikes.
It is much easier to keep track of the sequence of events and see patterns.
Though I usually use Visio to draw them as it gives me more control.
I’ll have a bash a drawing it in Visio too, I have a line style that makes it look hand drawn too.
Thanks, Robert! Yeah, the napkin style seems to be a favorite of a lot of people. If you come up with something you’d like to share, so much the better. As your talk at the #IRMSummit this past week demonstrated, people are visual thinkers and can learn from different visualization approaches.
We’re discussing setting up a Google Hangout in a few weeks’ time to collect & trade (so to speak) use cases with people, and no doubt the subtle differences among otherwise similar diagrams will play a role. We can play around with “persistence of vision” techniques for this. :-) Stay tuned for news on that.
I’m sure that those of us with more visual spatial tendencies can add a lot to the ForgeRock and UMA knowledge base. There is plenty of text, but not too many diagrams. I’ll get out my crayons and see what I can do to redress the balance.
I like the swim lanes too, it helps me visualize the process between interactions more clearly. I often draw swim lanes when brainstorming solutions to work. Thank you for the link to websequencediagrams.com, I hadn’t seen that before and it could be a useful tool. I usually use Omnigraffle or Visio if I need to type them up, but I like the ease of just typing it in like the above example. I’ll play around with it, thanks!
Hey, thanks to everyone for weighing in. As noted above, we’re thinking about a Google Hangout around this. If we were to do one the week of December 15, say on the 16th or 17th, any interest out there in jumping on? This wouldn’t be a “webinar” but an interactive working session — swimlane contributions welcome! :-) I’d love to get this scheduled in the next few days if there’s interest.