From time to time an interesting debate breaks out in the LinkedIn group for Model Driven Architecture, over whether MDA will be making software developers redundant anytime soon. They’re discussing why MDA hasn’t become mainstream yet and why it’s taking so long for modellers to take over the world.
For those who aren’t familiar with their proposal, I will grossly over-simplify the proposition as follows (under risk of ex-communication from the group for my heresy):
MDA suggests three modelling layers comprised of:
- The CIM (Computationally Independent Model) in our case a conceptual model of a business operation
- The PIM (Platform Independent Model) a logical design that could potentially implement the CIM on “any” given platform
- The PSM (Platform Specific Model) a physical design of the solution implemented on a particular platform.
These are accompanied by a set of transformation maps to convert from one modelling layer to another, because the OMG doesn’t have a single language that applies at all three layers.
Actually I’ve never seen a working solution of the OMG’s vision and I don’t think it is likely to be taking the world by storm. However, I do think that there is a more relevant question of whether an “executable” architecture is a realistic proposition.
I think that the prospect of an executable business architecture model is not only likely, but actually quite imminent. I’d venture a guess that most of us (at least the ones who still have hair) will see it become a reality in our career-time.
I’m quite certain however that it won’t be based on UML and don’t believe that MDA based transformations of UML could ever lead to a pragmatic outcome. The whole concept of transformation is the Achilles heel of MDA and is fundamentally flawed in my view.
On the other hand, our experience shows that ontologies and semantic technologies hold great potential for executable models. The whole concept of transformation is irrelevant in a semantic model since the conceptual modelling language of the CIM (e.g. RDF/OWL) is entirely consumable by the platform layer so that there is nothing to transform. A semantic model combined with a query layer, an execution engine and a front-end visualisation layer forms the basis for a perfectly viable semantic application.
So how is this an executable architecture? Well the missing link of course is a meta-model for the CIM; in our case the CAPSICUM Framework. CAPSICUM is a domain ontology of a business, providing the foundational concepts and properties for defining a semantic model of a business domain. CAPSICUM further provides behavioural and governance models that articulate the logic and flow of business transactions. Together this provides a complete articulation of the business operation as a state-machine.
A CAPSICUM model is analogous with an MDA CIM, a conceptual model of a business. However, since semantic models can be instantiated, it is only a small extra step to instantiate the elements of a business transaction (eg in a sales process, the attributes of a customer, an order and a product) and to apply the business logic contained in the model to execute the transaction.
Why is this better than what we have now?
Because by encapsulating the logic of a business operation in a semantic model of the enterprise, the organisation creates a new strategic asset, an executable business model, which is technology agnostic and therefore insulates the business from the potential disruption of ongoing technology innovation. We are moving inevitably towards an intelligent digital mesh, where semantic business models plug seamlessly into a real-time cloud of micro-services, block-chains or any other new technology options that start-up innovators throw at us.
The power and potential of semantic technologies are already well understood by many of the new-world technology platforms (eg Google, Facebook, Amazon) but have yet to penetrate the enterprise world. As they do, they have the potential to generate a powerfully disruptive technology shift as enterprises begin to completely reimagine enterprise applications as we know them.