I have been having an interesting dialogue with an ex colleague York whose own blog is well worth a read. The particular dialogue has been around what is essentially the changing, and expanded environment in which we are all increasingly working. It’s a World in which Web Services and traditional IT both exist, and therefore we need to start to be careful to discriminate about terms to ensure that we really understand what we mean.
The challenge that this produces is that if both exist in parallel then we need to get a whole load more carefully about terminology. What exactly do you mean by a process as an example? Is this part of an application, an orchestration of ‘services’ or even something achieved through REST? Some 18 months ago I wrote a white paper about using Web 2.0 and SOA in which I attempted to make some clarifications.
A month so back I asked for thoughts on how to define Middleware in the new World and sure enough after some great posts I think we got a really good and recognizable definition. Well I would like to try this again with the following; (I do believe that ‘crowd sourcing’ works, particularly when looking for an ‘open’ definition).
A Transaction is the outcome of a Procedure, which is a stable, and strongly managed, workflow that will result in a computational task to create or consume a set of data records.
A Procedure is a business definable set of tasks where the value lies in the stability and unchanging nature of the procedure in ensure that the Transaction produces consistent data.
The stability and consistency of the procedure is of importance to the enterprise, in particular its CxO level officers, and its auditors, to ensure core data is reliable in its creation and use.
An Interaction is an operational Process that has a repeatable path with a consistent outcome but the value is not derived from the transaction of and production of core enterprise data.
A Process is an orchestration of a set of individual business tasks that can be used in multiple Interactions to provide an agile environment that is easy to change.
Both Interactions and Transactions can be characterized as definable in their flow and repeatable in their outcomes, but an increasing amount of business activity is based on the need to innovate the answer to a specific event and leads to the last major definition.
A Collaboration is a people based ad hoc solution based on the ability to communicate and share content to arrive at an optimized, but individual Decision in response to an Event.
And just for completeness two terms which I do think are quite well understood, but am I right in thinking this?
An Orchestration is the combining of a number of individual predetermined (Business) Tasks represented by Services into an optimized flow that uses Rules for a predictable outcome.
Choreography is the definition of messages and protocols used to Exchange information between groups of peers requiring a Process or Procedure to ensure a predictable outcome.
So a challenge again to try to come up with some common agreed terms and definitions for the above to make sure that we don’t confuse ourselves with throw away comments about ‘process’ or ‘procedure’
PS – A quick note of thanks to those readers who nominated the CTOBlog to Computer Weekly for their best Blogs competition, I am deeply grateful to you and happy to tell you that we have been short listed as a finalist in the CIO / Director category. The competition is interesting in that it shows short lists for several categories of Blogs and has included several blogs I didn’t know about and, in my opinion are well worth reading. You can find the shortlists (and vote for your choices) at www.computerweekly.com/blogawards