The concept of a user-defined (or ‘business’) transaction is central to application performance monitoring (APM.) Not only is user-defined transaction profiling one of the five dimensions which Gartner takes as being essential to comprehensive APM solutions but most attempts to conceptualize application execution involve the idea that, in some sense or another, that execution is constituted by something called a transaction literally moving through infrastructural tiers or hopping from node to node until some task or set of tasks (usually database reads and/or writes) either are accomplished or the motion halts in failure.
Little attention has been given to articulating a formal, product-independent model of the user-defined transaction concept. Of course, there is the traditional database-oriented definition of a transaction as ‘logical unit of work’ – which, in turn, is interpreted as meaning a sequence (or better yet, a partial order) of database operations which take a database from one consistent state to the next. But this definition captures, at best, a part of the meaning required. First, it does not reflect the user’s perspective (i.e., it is more critical that the user see the set of operations constituting the transaction as contributing to a coherent action plan than as maintaining database consistency;) and second, it does not take into account the fact that transactions move in space and time and change their contents as they are moving while still retaining their identity. Both deficiencies are challenging but, in this post, I will focus on the second since it is far less frequently discussed.
Any formalism capturing the notion of a user defined transaction will be two-faced. In one single representation, it will have to exhibit both the transaction’s spatio-temporal and its semantic properties. A quick glance at vendor attempts to articulate what is going in their transaction profiling technology reveals that they focus either on modelling the semantics or on modelling the movements through space-time (more the former than the latter) and it is the failure to come to grips with both faces that makes their models difficult to abstract from the specifics of their technologies.
The failure is broadly ackonwledged but, until recently, all the mathematical models available for representing computational processes and process communication were essentially one dimensional. The Pi calculus, for example, provides excellent constructs for expressing how processes pass semantic states from one to another but does not have the resources to show how processes may be positioned respectively to one another within a spatially distributed infrastructure.
Things could be changing now, however. The late Robin Milner,(inventor, as it happens, of the Pi calculus,) developed the algebra of BiGraphs during the last decade of his life (see his ‘The Space and Motion of Communicating Agents’ for a comprehensive exposition.) Originally constructed to help model pervasive computing environments, BiGraphs are objects that carry two separate structures – one indicates their placement in an abstract space; the other indicates non-spatial links between elements within them and other BiGraphs, also resident in the abstract space. Like any good algebra, BiGraphs are also provided with operators that show how they can combine, change their placement in space, and modify their links.
Put another way, BiGraph appear to possess precisely the two-faced nature which I argued above was required to effectively model user-defined transactions. I would encourage the vendor community and standards bodies to take a good look at the BiGraph algebra for the purposes of modelling user defined transactions. It could be just the thing for turning what has, to date, been a fuzzy, metaphor-filled discussion into an exchange of rigorous ideas and, even, code.