Friday, January 05, 2007

SOA Algebra

How do we reason about services and SOA? In particular, how do we reason about composition and decomposition?

One important type of reasoning involves the ability to think numerically. For example:
  • If service A costs $x to maintain, and service B costs $y to maintain, how much does it cost to maintain A+B?
  • If service A has an availability of 95%, and service B has an availability of 98%, what is the availability of A+B?
Many people will solve these kind of problems by adding the first and multiplying the second. In very simple situations, addition and multiplication may be good enough. But to deal with more complex situations, we need something called algebra.

Algebra is the branch of mathematics that deals with structure, relation and quantity. The word Al-Jabr is the arabic for reunion - in other words composition. This is therefore the form of reasoning that formalizes and quantifies the composition and decomposition of separate elements. Algebra tells us when it is safe to use addition and multiplication, and when we need something more sophisticated.

For example, if artefact A is composed from components {A1, A2, ..., An}, then the reliability of A is some algebraic function of the reliability of the components A1 to An. Conversely, if you have a requirement for a given level of reliability, you need some algebraic function to decompose this requirement into an equivalent set of sub-requirements.

In an earlier post on Reliability and Availability, I took issue with a vendor white paper, which assumed that all you have to do is multiply the parts to get the whole. This is obviously only true if you make some fairly simplistic assumptions about the composition structure, and is not true in the general case.

Meanwhile, Jeff Schneider takes issue with a confusing formula of SOA costs proposed by Dave Linthicum, which apparently involves adding different kinds of complexity.

If people are getting into these difficulties, where is the SOA algebra to haul them back onto solid ground? I spoke to a friendly professor (Bashar Nuseibeh), who advised me that the formal theory of composition is not advanced enough to support precise quantification. He referred me to some of the work he has been doing with Michael Jackson and others on formalizing composition.

But if I can't have precise, I'll settle for approximate. Surely anything would be better than the algebraic fallacies and muddle currently in circulation?

R. Laney, L. Barroca, M. Jackson, and B. Nuseibeh , Composing Requirements Using Problem Frames , Proceedings of 12th IEEE International Requirements Engineering Conference (RE'04), Kyoto, Japan, 6-10 September 2004 (PDF).

Wikipedia: Algebra
Technorati Tags: