Welcome!

Open Source Authors: Liz McMillan, Maureen O'Gara, Jeremy Geelan, Reuven Cohen, Lavenya Dilip

Related Topics: SOA & WOA

SOA & WOA: Article

Bottom Line SOA

The Economics of Agility

Interestingly, each time we add just a single node to the network, we must build more than one connection to link it in. In fact, the number of new links required is proportional to the size of the network at the time the component is added. Specifically, linking every component to every other component will require N(N-1)/2 physical connections, where N is the total number of components, or nodes, to be included in the network. When we are finished networking all 10 of our example nodes we will be left with 10(10-1)/2 = 45 physical connections, as depicted in Figure 2.

Let's now assume that each connection has a fixed lifetime cost. (In reality, of course, individual build-out and ongoing maintenance costs will vary, but every IT organization should be able to calculate a reasonably accurate approximation based on average labor costs and useful life.) For example, let's say it takes, on average, 40 hours of labor at a blended rate of $50 an hour, or $2,000, to build each connection. This puts our total upfront integration cost at $2,000 * 45 = $90,000.

As for maintenance, let's say that each component will need to be materially changed - such that the nodes it's connected to must be correspondingly changed - once during its useful life. Each change by itself requires an additional 10% of the initial build-out cost - in this case, $200 (.10 * $2000). At face value this may seem perfectly manageable, but remember that since each node is connected to every other node, every change will affect every node regardless of where the change originated. A change to one node will cause all nine of its linked nodes to change. At $200 apiece, the bill comes to $2,000. Multiply this by the 10 independent changes that we anticipate and the total maintenance cost of the network comes to N2 * ($200) = $20,000. The total lifetime cost of our 10-node P2P integration network is $90,000 + $10,000 = $110,000.

This doesn't seem too scary, but then again, we limited our IT infrastructure to just 10 components. It's doubtful that a company could react to change in real-time with only 10 high-value business functions at its disposal. The optimal size of the network will vary from company to company but it's probably safe to assume that it includes at least 100 nodes, especially when considering the range of valuable HR, CRM, contract, billing, security, logistics, loan origination, analytics, and other functions that may be present in any given IT environment. Running the cost figures above for a network of 100 fully connected nodes yields a total build-out cost of $9.9 million and lifetime maintenance of $2 million, for a total cost of $11.9 million. Taken a step further, a very large IT shop may need to network 200 or more nodes to be agile, at a total cost of more than $47.8 million. Frighteningly, as the number of nodes doubled from 100 to 200, the total cost more than quadrupled.

The P2P model does do an excellent job of keeping integration costs low at the project, or microeconomic, level. Since this is the scale at which IT historically evaluates success it's no wonder that this is the predominant approach today. The ugly truth behind this approach is that big problems begin to hatch at the enterprise, or macroeconomic, level very quickly. Each new low-cost, tightly coupled P2P connection added to the enterprise has a non-linear, compounding effect on the total lifetime cost of the overall IT infrastructure. The P2P cost model increases exponentially as the size of the network increases linearly, as illustrated by the cost curve in Figure 3. But this is only half the story. What does IT gain by investing in point-to-point architecture?

Every connection in the P2P network has exactly two endpoints: an information source, or provider, and an information sink, or consumer. Since the connection exposes the functionality of one provider node to a single consumer node, the business gains one unit of value from the investment in the connection. As a rule then IT can expect a return on investment of one unit of value (whatever it defines that to be) per connection in the integration network regardless of the size of the network. Therefore, the total value of the complete network of connections increases linearly as nodes are linked together. The value of a P2P network is equal to the sum of the individual values of its physical connections. Put another way, the value of a P2P network is equal to the sum of its parts.

Looking at the cost curve and value curve together (Figure 3) reveals a striking characteristic of the P2P network: the value of the network increases linearly over time while its costs increase exponentially. With the addition of each component, more money must be invested to eek out the same rate of return as the component before it. As a result of this phenomenon, short-term gains realized at the project level can explode into massive losses at the enterprise level. Indeed, this analysis paints an ominous portrait of traditional IT spending, but let's see if the service-oriented approach can do any better.

The ROI of SOA
Service-oriented architecture differs from the point-to-point approach in that it avoids dedicated hard-wired connections between components. Instead, components exchange information indirectly via shared middleware services, which act together as a distribution "hub" for messages traveling between isolated nodes. Components in a SOA network always interact with the service hub, never directly with each other. Moreover, the link any component has with another component is a virtual link, in that the two are connected implicitly via the hub, not explicitly through a physical connection to each other. This architecture shields any node in the network from the technical details of all other nodes, resulting in a web of loosely coupled integration relationships that spans the IT infrastructure. This characteristic of SOA is extremely powerful because it significantly reduces the number of dedicated connections, and therefore overall costs, required to build and operate a fully integrated agile network.

Let's apply the SOA approach to our 10-node infrastructure. Just as with the P2P approach, we begin by linking two nodes together. This time, however, we must incorporate the service hub as an intermediary between the two functional nodes. We see right away that this requires more architectural complexity than creating a point-to-point link between two nodes. To begin with, the service hub represents an additional piece of infrastructure that must be added to IT's inventory. Next, two physical connections (one from each node into the hub), instead of one, must be built to complete the integration. Unfortunately, this increase in complexity naturally begets a corresponding increase in spending.

Our first two nodes have yet to be linked and there are already clear signs of cost increases compared to the P2P approach. Project-oriented, date-driven IT organizations have a big problem with how SOA presents itself at this level. Managers are apprehensive about taking on the burden of delivering this extra layer of complexity and project controllers are reluctant to approve funding for it. At this microeconomic level, it's easy for SOA to be stifled because it inflates scope and budget precisely where scope and budget are scrutinized most heavily. However, welcoming a bit more investment at the project level can pay off handsomely at the enterprise level.

Continuing with the example, things begin to improve as soon as we get beyond integrating the first two nodes. (Figure 4) In the P2P model, linking the third node into the network required two additional physical connections. In the SOA model, one is sufficient. Because the first two components are already members of the network, node three gains access to them implicitly via virtual connections through the hub. Similarly, the fourth node gains virtual access to all existing nodes when it's attached to the hub. By contrast, linking the fourth node into the P2P network required three additional physical connections.

When all 10 nodes have been fully integrated into the network, that is, when all 10 nodes can share data with all other nodes, the network will be composed of just 10, or N, physical connections - less than a quarter of those required by the P2P network. Only one additional physical connection is required to fully link one additional node to a service-oriented network, regardless of the size of the network. (Figure 5) Now that we know how many connections there will be, let's examine what it will cost to build and maintain them.

Again, each connection has a total cost comprised of initial build-out and lifetime maintenance expenses. We will assume that connecting a node to the service hub entails roughly the same complexity as linking it to another node, so the build-out cost of each physical connection will remain $2,000. However, the additional cost of the service hub itself must be accounted for.

For simplicity's sake, we will spread hub expenses evenly over the network as a "tax" on each connection. The complexity of the service hub should grow with the complexity of the network so that hub costs are kept commensurate with connection costs. We will tax each connection at a very generous flat rate of 100%, meaning that each integration project will allocate equal resources to building connections and enhancing the service hub. This effectively doubles the build-out cost of each connection to $4,000. The resulting build-out cost of our 10-node, fully connected service-oriented network comes to N * ($4,000) = $40,000.


More Stories By Marc Rix

Marc Rix is a lead SOA solutions architect at SAIC, focused on accelerating key business activities through SOA and BPM. He has been building enterprise-scale integration solutions for the past 11 years.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.