David Linthicum

The secret to SOA is approaching the primitive

SOA is clearly making a comeback, typically around the emerging use of cloud computing. Why? We'll when we're dealing with clouds, we're dealing with services, and when we're dealing with services we should be dealing with SOA. Make sense?

The common approach to SOA is to define sets of services that may exist physically within the data center, on a public cloud, or perhaps in both places (hybrid cloud). The degree that these services provide functional behavior, and functional behavior bound to data, really goes to the value. However, I would also say that we need to consider the quality of the services design, the granularity, or how well the services approach a "functional primitive," and thus providing more value.

The ability to design, define, and develop services at a primitive level goes to the value of those services considering that it's much easier to create composites out of groups of primitive services. Thus, allowing you to mix and match services to live up to the exact purpose/requirements of the composite service, process, or application, rather than attempting to deal with services that are to high level, or course grained, and thus not an exact fit for your requirements.

An analogy that I would use is that it's much easier to build a custom designed home using wood, fasteners, or other materials than to build a house from pieces of another home. The more primitive the parts, the more flexibility you have when building solutions. Rather than trying to reuse a living room.

This is of particular importance when considering cloud computing. You want to expose services that provide very primitive and low-level functions, and thus are more useful to those that want to consume them. Public clouds providers get this, and thus provide many primitive APIs that seem complex, but provide much more value to those looking to create business solution.

It's important that you consider the levels that you define services, and the more primitive the better. I understand that is a bit counterintuitive, but many aspects of good SOA are. When thinking SOA, tell everyone you're taking the most primitive approach.

This blog is your first step toward understanding the issues you will face as cloud computing and SOA converge. The movement to cloud computing is a disruptive change that IT departments will soon face as SOA and cloud computing begin to have an effect on the modern enterprise. IT managers must learn how to give as well as take information in this new, shareable environment, while still protecting their company's interests. Innovative companies will take advantage of these new resources and reinvent themselves as unstoppable forces in their markets. Those who don't take advantage of this revolution will become quickly outdated, perhaps out of business.

David Linthicum

David Linthicum is the CTO of Blue Mountain Labs, and an internationally known distributed computing and application integration expert. He has twenty years of experience in the integration technology industry, most recently as chief technology officer (CTO) at Grand Central Communications. He has also served as the CTO at both Mercator Software and SAGA Software, and has held senior-level management positions at Electronic Data Systems, AT&T; Solutions, Mobil Oil, and Ernst & Young LLP. He has consulted for hundreds of major corporations engaged in systems analysis, design, and development, with a concentration in complex distributed systems. View more