Saturday, April 29, 2006

Enterprise Architecture v Services Federation Architecture

This post is based on a number of recent discussions (many of you will recognise some of the thoughts). It posits - A Service Federation approach would provide a better way of understanding, aligning and delivering business and IT services than that of traditional Enterprise Architecture.

‘Services Federation Architecture’ (SFA) is a simplified, more realistic and risk reducing approach to building IS systems. That is, realistic in the sense that the model provides a better representation of how the real-world actually operates.

Enterprise Architects usually approach their work top down– starting with business vision and strategy and working down to the implemented system components and the activities of the people that use them. This way of working has had a degree of success within the four walls of the organisation (in truth, however, rarely applied enterprise-wide). But more importantly, it breaks down across highly federated business scenarios like supply chains. Here multiple business domains interact around a common purpose and at the same time, operate within the context of their own business mission and behavioural traits. This world is less precision-engineered and more negotiated as events unfold – but within a simple model of well defined but relatively simple “touch-points”.

The need for a simplified approach services (from definition to delivery) is obvious in the highly federated world of international trading partners. For example, the joining up both human-based and technology-based services across an international supply chain involving different originations across multiple countries and many languages. Anything other than a simple model of the interfaces between interacting services would simply fail to be meaningful. Each of the members of this supply focused Value System ( “system” in the General Systems Theory abstract sense) operate both within the context of their own independent Value System and within that of the overarching supply chain.

Each constituent organisation is potentially both a consumer and provider of services (within the context of a particular business activity or task). However, despite the apparent complexity, these interacting services are naturally understood by the individuals involved and as is the notion of service governance through policies, contracts and SLAs between parties. The need to document the descriptions of the services provided and the associate information passed between each service (either verbal, paper-based or electronic) is also intuitive. There is a clear understanding of responsibility across the interacting domains and little desire to ‘peek into’ others processes as long as service levels are met or exceeded.

Contrast this with artefacts prescribed by many Enterprise Architecture frameworks. These frameworks focus on engineering rigour and traceability from the coarse-grained business strategies down to very fine-grained technology widgets. The architecture and engineering process wraps itself within its own language and with it, introduces multiple layers of translation between the originating business concept and the final operational outcome. This has the effect of dis-integrating IT away from the business and introduces delay and increases the risk of misinterpretation.

So what? - I believe we might be better off describing, creating and managing services using a “Service Provision in a Supply Chain” pattern rather than the “Construction Blueprint” or even, the slightly more applicable, “Town Planning” pattern. By doing this, perhaps, we can find a way to simplify how we conceive and deliver IT-enabled capabilities and at the same time, reconnect IT to the business.

There are many aspects to this discussion and as always, the interesting stuff is probably to be found somewhere between engineering rigour and operational pragmatics. I would like to explore this thinking here over the coming weeks. I also believe this is fundamental to the whole Services Fabric theme. While similar discussions have taken place in the past within the context of Object Orientation for example, I believe now is the right time to explore a more holistic, abstracted, macro approach to both business (e.g. trading-economies and global ecological needs) and IT (e.g. Web 2.0, Semantic Web, CEP.. et al). I feel this might drive out new insights and principles that can be applied at a macro level (e.g. pan-nation trade) right down to services delivered within an enterprise or by an individual - in all cases; without regard for the service delivery mechanism (e.g. IT-based or human-based).

Other related areas for discussion that come to mind:

  • Fractal Model (i.e. a model that is recursively constructed or self-similar, that is, like a shape that appears similar at all scales of magnification)
  • Value Networks and Domains of Control
  • Service Granularity: How to get in right – the Holy Grail!
  • A better representation of the real world and real-world-aware systems
  • Social networking and trading models
  • Multiple concurrent centres of gravity
  • The importance of understanding Events in a federated model.
  • Business and IT communication
  • The relative importance of re-use and of what?

Tuesday, April 11, 2006

Demise of the Application?

Does SOA at last move us beyond the 'traditional' notion of an application and elevate the space between 'applications' to that of a first class citizen in the world of information systems? Today, users and IT practioners alike reinforce the notion of traditional application stovepipes in the way that they (applications) get discussed as servicing particular user communities. This affects many aspects of how we do IT, from how things are run to what is paid for.

SOA and event management operate in the world between 'applications' and as such require us to re-evaluate the boundaries of our functional and data blocks. Maybe EAI was the first IT trend to bring attention to the space between applications, but the Application was still central. SOA by definition places emphasis on Interface. We need to manage interfaces and the infrastructure that enables them, not just on a per project or application basis, but enterprisewide.

This is where applications move beyond the database in to the world of communications; not at only at the network transport level but at the semantic level. Indeed, this a paradigm that may be more readily understood by telecoms people, who talk in terms of protocols and interfaces, whereas application people talk in terms of databases, business logic and user interfaces. A user interface being no more than an adapter (a service wrapper?) for a particular form of external system, all be it a rather demanding and unpredictable one.

This emphasis on interfaces and boundaries between systems aligns well with the enterprise architects view of the world but naturally creates a tension with the application owners and developers. Ultimately for SOA to be successful we have to unlearn some of these traditional IT practices and look to other disciplines to help us.