Thursday, March 24, 2005


Phil Wainewright (Loosely Coupled) has been drumming up interest in the SOA: bus or fabric? debate. He identifies a number of vendors on the fabric side: Actional, Blue Titan, SOA Software (formerly Digital Evolution).

I have always described the service economy as a continuous fabric of services. Service-oriented projects are then understood in terms of developing and maintaining this fabric: weaving new fabric; and repairing and patching holes in the existing fabric.

This fits with my interpretation of Christopher Alexander's Nature of Order. Complex systems of systems are formed as a continous network of what Alexander calls "centres", and emerge from a series of design acts under an appropriate mode of governance. (Alexander previously used the word "fabric" but now seems to prefer the mathematical word "field".)

My notion of fabric is general and abstract. In particular, I think of the fabric metaphor as applying to the whole of SOA and not just the messaging layer. I like the metaphor because it suggests extension in two or more dimensions, rather than a simple linear bus. We can also talk about the quality of the fabric, in terms of its completeness, connectedness, density, flexibility, and so on. (Obviously these terms need more precise definition before they can be used as part of a formal design method, but they already have some intuitive force.)

But the term "SOA fabric" is now being used to describe a class of software products supporting SOA, rather than the whole of SOA. (This is a figure of speech known as synecdoche.)

Thus for example: "An SOA Fabric is the unifying software structure for security, provisioning and management of Web services applications. It provides a unified control layer for software architects to integrate, share, scale and reuse applications, define and enforce consistent operational and security polices across an enterprise’s distributed architecture, and quickly implement required changes to evolving business processes." (Anexinet white paper, pdf).

Meanwhile, there is an entirely different use of the fabric label within the SOA world: WebMethods Fabric, which is sold as a business integration product suite. Business processes are woven (in other words: composed, orchestrated) from so-called Smart Services. But at the centre of the WebMethods graphical representation of the SOA fabric is a service bus. So what's going on here? Is it just too difficult to produce a simple graphic of a fabric without reducing it to a bus, or are the concepts really not that different?

So can we sustain the notion of SOA fabric as a distinct concept? I hope we can, but we shall need to find some better graphics.

No comments: