by wcappell | May 17, 2012 | 1 Comment
To date, most attempts to manage the costs and patterns of IT related energy consumption have focused on events and processes at the infrastructure layer. It is generally recognized that infrastructure level energy consumption management could end up frustrating the legitimate power consumption demands of business critical applications while oversupplying energy to applications that are relatively unimportant. Nonetheless, analytics technologies and techniques do not, as yet, appear capable of delivering sufficiently robust application process/event to infrastructure process/event correlations to allow us to manage energy consumption at the application level.
In a recent post, I discussed computational complexity in relationship to market equilibrium discovery algorithms and it has occurred to me that computational complexity considerations could be used to guide enterprises in their attempts to determine energy consumption at the application level. In essence, an algorithm’s computational complexity is a measure of how the time and/or space it requires to execute grows with the size of the representation of its input. It is relatively easy to segregate algorithms into a sequence of classes of heightening complexity and applications can be described in terms of the algorithms that they contain. Hence, one can determine which algorithms contained within an application are likely to be invoked. On this basis, an application’s ‘complexity profile’ can be constructed as a function of the frequencies with which its usage requires the invocation of its high complexity algorithms.
So what? Well, an application that frequently executes high complexity algorithms is either consuming comparatively large quantities of space and/or compute time to accomplish its goals and a such a consumption is an excellent proxy for the amount of energy, the application is likely to consume. In other words, when looked at from a slightly different perspective, the entire body of computational complexity research is really a study of how algorithms consume energy and, hence, could serve as a source of guidance for application level energy management.
Category: Uncategorized Tags: computational complexity, Energy Management
by wcappell | April 26, 2012 | 2 Comments
Supply and demand tend to move towards equilibrium in markets with prices serving as the mechanism by which that equilibrium comes about. The imbalance between supply and demand exerts a downward or upward pressure on prices, the results of which, in turn, modify amounts supplied and amounts demanded in opposite direction until a price emerges that makes supply and demand equal. Until recently, mathematical economists focused almost exclusively on proving the existence and mapping the structure of a market in equilibrium. The last few years, however, have witnessed an explosion of research into the algorithmic processes by which markets come into equilibrium (or by which game players settle on strategies – which comes to much the same thing.)
This study, which usually goes by the name of Algorithmic Game Theory (AGT,) has already had significant commercial impact through its systemization and expansion of our understanding of optimal auction design. As AGT matures further, however, it will also profoundly impact Infrastructure and Application Management (IAM) in a world that revolves around the access of cloud-based services, across mobile interfaces, by users who are embedded within social networks.
• First, it will allow enterprises to design better chargeback and internal pricing systems, both with regard to ensuring that pricing schemes do indeed achieve the resource allocation and behaviour modification effects an enterprise has hoped for and with regard to justifying the very principles on which a resource allocation goal is based.
• Second, it will support the development of automated dynamic decentralized resource allocation systems by working out the principles by which software agents can coordinate local actions without requiring a powerful, centralized manager of managers to ensure that scarce resources are fairly distributed across multiple business needs.
• Third, it will provide the industry with an understanding of how to extract a coherent end to end performance picture across multiple cloud service providers by providing them with a set of incentives to be open without compromising their individual interests.
• Fourth, algorithmic markets are themselves a kind of distributing computing model which could be deployed for the purposes of IAM.
It is interesting to note that one of the issues that bedevils the algorithms capable of driving markets towards equilibrium is computational complexity. The theory of computational complexity segregates algorithms into classes depending upon how the rate at which resources are consumed grows with the size of algorithm inputs. One famous class of algorithms is called P (for Polynomial) which contains those algorithms where the rate of resource consumption (expressed as time it takes for the algorithm to execute) grows according to a polynomial function. P algorithms are generally considered to be efficient.
Another famous class is called NP (for Non-deterministic Polynomial – think of an algorithm with branching paths, each path of which can grow with input according to a polynomial function.) The NP class has many famous members like the algorithm for determining an optimal path through a network and is generally considered to indicate an high degree of inefficiency or resource consumptiveness. It turns out that the complexity or resource consumptiveness of equilibrium discovery algorithms fall somewhere between the level characteristic of P and the level characteristic of NP.
So while such algorithms are not as hungry as general network path optimization algorithms, they could, in theory, start consuming a lot of compute resources very quickly and without much warning, potentially undermining the second and fourth scenarios mentioned above. On the other hand, markets occur in the real world and get to equilibrium pretty rapidly so even if the complexity here is a theoretical problem, it could be the case that in practice (or, in other words, in the neighbour hood of the input sizes we are actually likely to encounter) chances of a resource consumption blow up are small.
Category: Uncategorized Tags: Algorithmic Game Theory, computational complexity
by wcappell | April 10, 2012 | 5 Comments
Whereas traditional AI focused on modelling the cognition of isolated individuals, Social AI is a relatively new discipline that seeks to model the way in which in groups of agents or actors perceive, analyze, and respond to events in their collective environment. Each agent or actor has its own local perspective on that environment. Furthermore, there is, typically, no global perspective that organizes all of the local perspectives into a single coherent whole. As such, Social AI divides into a collection of sub-disciplines.
First, there is the distributed translation of event streams into a distributed model of objects laid out in a collection of interlinked space-time frameworks. What is critical to Social AI is that there is no need for there to be a single space-time framework within which all objects are placed. It is only necessary that whenever a subset of agents or actors are in communication, it is possible to construct or deconstruct a chain of links between the frameworks relevant to the communicating subgroup.
Second, there is the analysis of the changes that take place in the spatio-temporal arrangements of these objects into a network of causal paths. Once again, there is no guarantee that a single causal network will coherently unite all changes. It is only necessary that, from the perspective of any given agent or actor, that a causal analysis can be performed that reaches all objects appearing within that agent’s local framework and the frameworks of the agents communicating with it.
Third, with the local causal paths in place, Social AI explores how distributed agents or actors can ensure that the causally analyzed objects satisfy a pre-established set of constraints while only communicating locally and there being no guarantee that any fact about the adherence to constraints or lack thereof is globally communicated across the entire agent/actor population.
Fourth, if constraint satisfaction is concerned with whether or not objects satisfy a given list of properties, optimization is about what properties a set of objects must have in order that a particular goal be satisfied and just as there is a Social AI of constraint satisfaction, there is a Social AI of distributed optimization.
Fifth, and finally, Social AI recognizes that goals themselves may be subject of decision and agents and actors can compete in order to establish which goals a distributed system may seek to obtain.
Now, as long as the IT stacks relevant to delivery of applications and services resided within the logical confines of single enterprise, it was possible, at least in theory, to assume that one could construct infrastructure and application management (IAM) systems that had a global view of the infrastructure, services and applications being managed.
Over the last five years, however, applications and services have increasingly been stretched across trans-enterprise continuously evolving infrastructures and the assumption that a global view can be obtained is less and less plausible. For this reason, I believe that the traditional global perspective presupposing AI engines underlying many of today’s popular IAM products are rapidly becoming obsolete and will need to be replaced by Social AI equivalents.
This is not just a change in technology, however. It is also a change in IAM philosophy. Truly distributed systems will require a truly distributed management. There will be no master view, no single source of truth. Instead, there will be a series of shifting, opportunistic perspectives that will evolve as rapidly as the systems targeted for management.
Category: Uncategorized Tags: Social AI; Global vs. Local
by wcappell | April 3, 2012 | 3 Comments
An end user accessing a service from within a social network will behave differently with regard to that service than he or she would if the service had been accessed from outside the social network. This is, of course, particularly true if the service can be shared with other individuals in that network or if the service is a collaboration enabling application.
Now, an end user’s behaviour often influences that end user’s perception of service performance or quality. Therefore, if social networks modify user behaviour then social networks will modify perceptions of service performance or quality. Hence, in a world where more and more services are being accessed from within one or more social networks, understanding how they affect behaviour will be critical aspect of infrastructure and application performance management.
Behaviours are shaped by many factors but knowledge is certainly one of the most important. What a user knows about his or her environment, about the services being accessed, and also about what others know or believe about the environment and the services will play a crucial role in determining what a user does when confronted with an option and how the user will regard the outcome of his or her behaviour. So, if we could get some understanding of how the state of a user’s knowledge changes as a result of his or her participation in a social network, that would go part of the way towards helping understand perceptions of service quality.
Epistemic logic, i.e., the study of how to reason about propositions or sentences that have the form ‘I know that…’ has been an important sub-discipline of AI since the early 1960s. From the beginning, there was an appreciation among researchers that reasoning that the knowledge possessed by a group of people that was aware of itself as a group was different in nature from the knowledge possessed by individuals as individuals. Over the last 10 years, however as the field of what I have been calling Social AI came into its own, the study of group knowledge and how group knowledge evolves under the impact of new information has become the very heart of modern epistemic logic research.
I believe that the epistemic logic of groups will provide important insights into how knowledge is distributed and updated in social networks and, by casting light on at least one aspect of the difference between accessing a service as part of community and accessing that service in isolation, will give some clues towards how social network embedded users perceive service quality. In future posts, I will explore some aspects of group knowledge and their implications for social network embedded end user experience monitoring.
Category: Uncategorized Tags: AI, knowledge, service performance monitoring, social networks
by wcappell | March 30, 2012 | 4 Comments
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.
Category: Uncategorized Tags: analytics, models, transactions
by wcappell | March 28, 2012 | 10 Comments
Immanuel Kant, in his late 18th century classic, the Critique of Pure Reason, concluded that human cognition takes place on two levels. Level one consists of an initial organization of raw sense materials into geometric figures located in space and time which is then followed, on level two, by a determination of just how these objects and their changes in time relate to one another causally. On the side, Kant also argued that the mental capabilities used to generate results at both levels were the very same capabilities used by human beings to formulate propositions and make inferences about the world.
Various 20th century philosophers have echoed Kant’s Age of Enlightenment reflections, most notably Wilfred Sellars who railed against the ‘Myth of the Given’, i.e., the idea that raw sense materials lacking any kind of analytical pre-structuring are considered and reasoned about directly. Even given Kant’s influence on modernity, however, it is still interesting to note that many of today’s cognitive scientists and AI practitioners – particularly those working in the field of machine vision – deploy two-tiered models that depend, first, upon mapping of a pixel array into a shape filled three-dimensional space which then must be followed by algorithmic attempts to determine just what kinds of objects those shapes represent.
Although we don’t have the space here to work through all of the arguments, I am inclined to think that Kant and the cognitive scientists have hit on something which is not just true of the processes that govern human cognition but rather reflects the deep structure of any process that seeks to turn volumes of raw, noisy data into information capable of grounding action taken by human beings or machines. Not only does this include most operational technology sense and response systems, it also includes, and perhaps in an exemplary way, the analytics-enhanced performance and event monitoring technology increasingly used by Infrastructure and Application Management (IAM) professionals.
Now, such Kantian processes would be two-tiered. At the first tier, data streams (or stores but the IT wide imperative to reduce latencies of all sorts means streams will increasingly become the paradigm here) would be consumed and transformed into information about objects and their basic relationships to one another in space and time; then, at the second tier, the information is further analyzed with the tasks of sorting objects into types and type hierarchies and establishing causal pathways among the objects becoming paramount.
In terms of analytics-enhanced monitoring system architectures, this means enterprises will, in the long run, deploy functionality on two layers: first, a Complex Event Processing (CEP) or Stream Database (SDB) platform to read and convert packets and other data flows into information about the spatio-temporal state of the systems being monitored, maybe along with some basic space-time data grounded statistical correlations, and, second, an array of causal and type pattern discovery engines that work on the information generated by the first layer. One sign that this is a correct prognostication will be the success of alliances between performance monitoring vendors delivering CEP or SDB functionality (e.g., ExtraHop, Nastel, Optier) with vendors that focus on discovering causal patterns in existing data sets (e.g., Prelert, Verdande, Netuititve.)
It may be worth noting, before I close today, that if it is indeed the case that two tiers are essential to the success of an analytics-enhanced monitoring process, we have a good explanation for why neural networks failed as a technology in the IAM market, despite early signs of promise. At the end of the day, neural network algorithms did organize data into patterns but the patterns were essentially single layered and, as a result, were insufficiently textured or modular to be used by either human or machine. But more on this topic some other time.
Category: Uncategorized Tags: analytics, complex event processing, machine vision, stream database
by wcappell | March 26, 2012 | 6 Comments
Welcome to my new Blog! I hope you’ll join me in the coming weeks and months so that, together, we can explore some of the fascinating developments that are taking place, both academically and commercially, on the borderlines between Artificial Intelligence (AI) and Infrastructure and Application Management (IAM). There has always been a high volume of traffic between these two fields. In fact, a good case can be made that the market for independent IAM software first emerged as a result of the Cold War wind-down induced collapse of AI market in the late 1980s, when refugees from companies like Symbolics, Aion, and Thinking Machines (and their non-military investors) sought to recommercialize their IP in the form of service desks and event correlation and analysis systems.
In recent years, there has been a three to four order of magnitude increase in the amount of performance and event data which IT operations and application support teams need to process in order to anticipate, track and resolve performance problems. As a result, IAM vendors and practitioners are once again reaching out to AI technology and concepts in the hopes of discovering powerful and efficient techniques for discovering, analyzing, and reacting to patterns in large performance and event data volumes and the weak signals that indicate the presence of such patterns.
Responding to the prevalence of distributed computing and the Internet, the study of AI, itself, has undergone a rapid development as it has incorporated and modified the results of three fields: the graphical modelling of probability distributions, game- theoretic economics, and modal logic (the logic that studies the relationship between what is valid locally and what is valid globally.) The net result of this development is increasing sophistication in the representation and simulation of how groups of individuals (or automated agents) discover, analyze, and react to the presence of significant patterns. In other words, we have seen the emergence of a Social AI that is, increasingly, superseding (without negating) the more individual mind or agent oriented AI of the past. Some of these technologies and concepts have indeed already made their way into commercialized product but it is my belief that the impact of Social AI on IAM is only just beginning.
Beyond sharing and discussing some very interesting ideas, I am actually hoping that together we may be able to do a bit more. The Prisoners’ Dilemma is commonly used to introduce some of the basic issues in Game Theory. Two captured criminals are separately presented with the choice of either confessing to a crime or not confessing. They are told that if they both confess they will each receive a 1 year prison sentence. If one of them confesses, while the other does not, the one who does confess will get 5 years, while the one who does not confess will get off scot-free. Finally, if neither confesses, they will both get 4 years.
Each criminal reasons as follows: Suppose I confess. My partner in crime can do one of two things: confess or not confess. If he confesses, then I will get one year. If he does not confess, I will get five years. On the other hand, suppose I don’t confess. If my partner in crime confesses, then I am a free man. If he doesn’t confess, I will get 4 years. Whatever he does, it makes sense for me not to confess, so I won’t.
Since both criminals reason in an identical manner, they both wind up not confessing and both end up spending 4 years in prison. Clearly, it would have made a lot more sense for both of them to confess but that would require cooperation, guarantees, and shared knowledge which the situation did not provide.
I think that the IT market unfortunately often functions much like a Prisoner’s Dilemma. The knowledge gap between vendor and buyer can be an abyss. Buyers lack knowledge of the functional capabilities of the technologies being sold and vendors lack knowledge of the actual and potential business uses for the technologies in their portfolios. As a result, features and prices settle into stable but not optimal equilibria. Value that could be obtained by both sides is simply left on the table in the same way that the two criminals end up spending many more years in prison than they actually had to if they had been aware of all the possibilities.
By sharing knowledge and discussing novel opportunities for the application of AI to IAM problems, this blog, once again with your help, may move the IT market from the suboptimal equilibria to equilibria where at least some of that value that would otherwise just dissipate allows both vendors and buyer to better accomplish their respective goals. I am looking forward to the conversation!
Category: Uncategorized Tags: AI, analytics, application performance monitoring, big data