James Governor's Monkchips

On Adobe, SOA D’OH! and Several Things To Fire An Architect For

Share via Twitter Share via Facebook Share via Linkedin Share via Reddit

The Redmonkers are big fans of Adobe’s Duane Nickull and his “cosmic genius“, so its pleasing to know that he has finally joined the conversation, here. [For those of you that don’t know already, Adobe also has some pretty nifty developer blogs… Matt McKenzie is certainly worth subscribing to, if you’re interested in Adobe’s push into the business process space.]

But what do Adobe bloggers have to do with firing architects? Duane, in his latest post on Anti-Patterns for SOA, argues thusly, in what amounts to a neat primer on best practices in service invocation and granularity.

This introduces several things that I would fire an architect for.

First – it mixes two tasks into one process. If something goes wrong, the service consumer will have great difficulty knowing where things went wrong. The service consumer also cannot accurately know the state of the service call since it would likely have no idea when the service passed the work to the transformation component.

Secondly, it also blurs two unique functions into one. This lessens the probability of uncomplicated reuse but building unnecessarily complex interfaces. The service interface, instead of handling simple requests, now has to handle requests overloaded with details of where to forward things, what protocol to use and what instructions to forward. Inelegant.

This scenario also introduces another potentially unhealthy risk – the service does not know if the transformation service is even available when it accepts the service request. The Service consumer may get some form of acknowledgement back from the service leading it to believe its request is being processed when in fact it cannot be completed. This would become much more complex in the real world if you layered protocols like WS-RX over top of the transactions.

Finally – As with OO programming and analysis, object should break large jobs down into several smaller tasks which can be completed and orchestrated at will. The third example above is akin to procedural web services. It also introduces dependencies between three components which may result in problems maintaining the system.

I have a feeling that if enterprises followed Duane’s firing policies they would end up well short of architects. But what does all this have to do with Homer Simpson? Would anyone notice if you sent them home? just kidding folks…

IBM’s Bobby Woolf has been talking about design patterns that are so inherently smart you hit your head with your palm and say: “Of course…” He calls these Therefore, BOOM!” Its a moment of cognition, an aha moment, a time when you actually learn something really important about software development. [The epiphany may even be driven by an anecdote or story or contrarian thought.]

A pattern is not an experience report, and it’s not an account of a clever trick; it’s a mind-meld from an expert to a novice of what works well.

There is however a corrolary, naturally called “Therefore, D’OH!” You know what Bobby is talking about…

So with respect to feedback for Duane, given that he asked, I would suggest it might be useful to map your patterns to RESTFUL thinking, which they speak to in terms of simplicity and intentional opacity. Also – why not explicitly call out that anti patterns concern interdependency – “don’t call that, because it will make the service brittle”.

Why do I like Duane’s thoughts on the subject? Because they talk to what I believe is going to become an increasingly important issue in SOA- the granularity of the service. Granularity of service is very much a 3 Bears issue – this service is too granular, this service is not granular enough, ah this service is just right in granularity. I dinged Zapthink on this just the other day.

Who else should I call out for Duane and the patterns cluster? Grady Booch is an obvious candidate – how about the design patterns of dating, which he pointed to recently? I am pretty sure we have all had anti-pattern experience there, too.

A couple of things to ponder then before I sign off.

Is SOA D’OH like playdough? And would you rather be a comic genius or a cosmic genius? I am leaning to the former.

No Comments

Leave a Reply

Your email address will not be published. Required fields are marked *