Break the Law of Expensive Integration

March 12, 2008 Data Platform

There are a lot of laws in computing with people's names on them: Moore's Law, Amdahl’s Law, Murphy’s Law...    ;)    When talking about Web 2.0 and networks, Metcalfe’s Law is often cited: The value of a network is proportional to the square of the number of users. *

Metcalfe's Law also works to describe the expense of point-to-point application integration: "The cost of point-to-point integration is proportional to the square of the number of applications." The attraction of a common bus (AKA the Fat Double-Headed Arrow) is that the (apparent) cost of integration increases linearly, because each application adapts itself to the bus. One need only plug an application in and voila, integration.

Unless applications agree on the structure and meaning of shared data types like "Customer", "Address" or "Resource", a common backbone protocol still requires point-to-point data transformations to reconcile diverse data formats. Without a common data model (or common information model), the cost of data integration is still high because it is still related to a multiple of the number of unique data types: three apps, three different "Customers," six transformations if everybody’s talking.

A common definition of "Customer" lets an application adapt itself once to the common data representation, regardless of the number of other applications it communicates with. Therein lies the value of a common data model - it allows the true value of the Fat Double-Headed Arrow to be realized.

SOA What? A common data model provides a way to break the Law governing expensive point-to-point data integration. Ask yourself how many different ways the same data is represented in your IT systems, do the math and see how much value a common data model could have for you.


Intuitively, a network's value is in the number of unique connections between nodes. Point-to-point application integration is unidirectional, so every connection is unique. For a well-connected network, every node (n) connects to every other node (n-1), which gives us n*(n-1) or (n2 - n). Working this out, two nodes have two connections (2*2 – 2), three nodes have six connections (3*3 – 3) and the expression converges on the square of ‘n’ for larger values of ‘n’, e.g. (100*100 – 100) is 99% of (100*100).

Jody Hunt

Read next OpenSSL Vulnerability: What You Need to Know