Just as Greek philosophers tried to explain the ancient world in terms of the four classical elements of Earth, Water, Fire, and Air – with the fifth element of Aether defining the invisible context in which they exist – software architects in the digital world work in disciplines that are centered around four basic elements – Process, Service, Event, and Information. However, I think we need a "unifying theory" of the digital world that brings these four elements together more closely.
Who’s The Boss?
Too often, one or another of these four elements is elevated to a dominant position in architecture, often at the expense of sufficient attention to the others. Consider:
- BPM elevates process – and is often coupled with services, as in the increasingly popular phrase "BPM with SOA." But events and information sometimes get short shrift in discussions of BPM.
- SOA elevates service – but sometimes treats process as "just another layer," events as just "something to be emitted and consumed by services," and information hardly at all.
- EDA elevates events – but often without sufficient integration into a broader view of SOA.
- Information hasn’t gotten as much attention lately, although at Forrester we’ve been excited for some time about the potential for Information as a Service, which brings information into the SOA fold. But one still encounters "information bigots" from time to time who are throwbacks to the "data is in the center of the universe" era, or worse yet, "information laggards" who think of data as only the persistent state information for services and processes.
How to solve this problem? First, consider this evidence regarding the intimate connection between the four elements:
- BPM with SOA is indeed now the dominant trend for BPM. Forrester’s survey data shows a high correlation between BPM and SOA implementations in the same shops.
- A process can also be viewed as a service, in many situations. For example, micro-processes in BPM/SOA stacks often implement a composition of multiple lower-level, fine-grained services, delivering a more business-friendly interface and information model.
- A service does indeed emit and consume events – although the significance of events is far greater than this connection. Another way to view this is that services are one of many different kinds of things that produce events, or are concerned about events arising from elsewhere.
- An event can also be viewed as information – either singly, or in groups, a la Complex Event Processing. This is particularly important to an enlightened understanding of real-time business intelligence, both as it exists today, and as it will evolve in the future.
And this really only scratches the surface of all the ways the four elements fit together and are related to one another.
One of the over-arching frameworks Forrester has created to unify other architectures is Digital Business Architecture, that subdivides our understanding of the digital world into four domains. Here’s a high-level view, in a version that shows the path to follow in each domain to get from today, to this end-state:
The scope of this over-arching framework is too large for our purposes, although the four IT elements do apply here – as further articulation of all these domains, from a different perspective.
Therefore, I think we really need to develop a more explicit unifying framework for processes, services, events, and information. Do you? One problem immediately becomes apparent as Forrester works on this: how to arrange the boxes on the picture! This seemingly simple issue is really a reflection of a deeper issue – if we view these four things as architectural layers, there’s not really any way to put one above the other – here’s a try, which is obviously wrong:
What’s the problem? Well, a process can also be viewed as a service, an event is also information, etc. Plus, you can’t always say that the layer below is consumed/used by the layer above – sometimes the relationship runs in the opposite direction.
So is this a situation akin to wave/particle duality? For you non-Physics types, this is the discovery from quantum physics that light exhibits properties of both waves and particles, and so is really neither, purely – it is what it is, and sometimes it seems like a wave, and other times it seems like a particle. I think this kind of non-Newtonian way of thinking about the physical world is helpful in understanding how the four elements of the digital world relate to one another.
I recently discussed this situation with Charles Brett, a Principal Analyst on our team, and Charles suggested a circular representation, with four pie-segments, each representing one of these four key "aspects" of the digital world. Here’s a shot at that:
So what good does it do us to have this representation of the four elements of the digital world? On its own, not much. But I think it’s a good starting point to help developers and architects to think about these elements in the right way. What else do we need to make this more useful? Here are some ideas:
- In the classical Greek (or Hindu) understanding of the four (or five) elements, transformation of one element into another was not an inherent part of the model, although reactions between the elements were understood to be possible. However, even after a reaction, the elements were thought to be "particular and indestructible." However, in the Chinese philosophical doctrine of Wu Xing, instead of five elements, there are five phases, Metal, Wood, Water, Fire, and Earth. And inherent in Wu Xing is the idea that both destructive and generating transformational relationships between the phases exist – hence the choice of phase instead of element to refer to them.
- Part of the detail of Wu Xing is the specification of these particular transformations that exist in the world: Wood feeds Fire, Fire creates Earth (ash), Earth bears Metal, Metal carries Water, and Water nourishes Wood. Likewise, Wood parts Earth, Earth absorbs Water, Water quenches Fire, Fire melts Metal, and Metal chops Wood.
- So a complete system of understanding built around the four elements of the digital world would also specify a complete set of relationships between them – all the specific ways in which they relate, including transformation. Without getting into why the Chinese system could be "superior" to the Greek, it’s clear that we need these kinds of relationships to understand all aspects of how an event can be information, while at the same time a service is triggered by an event, as the first step in a process the event initiates.
The bottom line: I believe it is important that we develop a complete, exhaustive model – a semantic model, really – of all the ways in which the four elements of the digital world relate to one another. This in turn will fuel a complete, exhaustive meta-model for representing these concepts in systems and tools, one that can model any system in the digital world, in any architecture, in a way that can stand the test of time and not need to be changed because of some new architectural fashion.
A tall order. Do you think I’m right? Or is this a Quixotic quest? Please respond with your suggestions!