Where SOA Meets Cloud

David Linthicum

The ABCs of Service Design for Clouds

user-pic
Vote 0 Votes

How does one design a service for use within an SOA, or SOA leveraging cloud computing platforms? Also, what tools are available? There are certain steps architects and developers can follow. Here are some suggestions, assuming new service design.

1. You need to define the purpose of the service. What will the service do, and who are the intended user; human, application, and / or other services?

2. You need to determine the information to be bound to the service, including both metadata and schemas. This means you need to understand how information is leveraged by the service, and what functions require what data.

3. You need to determine the functions (methods) encapsulated inside the service; in other words, the behaviors you would like to expose. It's also at this step where we define each function, including how the function breaks down using a traditional functional decomposition chart.

4. You need to define any interfaces into the service, both machine and human. This means we need to determine how the service will interact with the calling applications, and through what mechanisms.

5. You need to define how the service is to be tested, using the suggestions above. This is a very important but often neglected step where you define how those who leverage the service will test the service within the context of their usage pattern. You need to define test information, service invocation, and validity of results.

What's core to the success of SOA using cloud computing is a clear approach to service design, development, and testing. At the end of the day, it's good old-fashioned discipline that comes into play here, more so than new technology, tools, and programming tricks. That's not what people want to hear in the context of the deafening hype, but that's the reality.

The truth of the matter is that services are a new challenge for developers, and they bring their own sets of requirements. In many ways it's as much of a shift in thinking as was the movement from structured analysis, design, and development to object-oriented analysis, design, and development. We all know how long that took, and in many respects it's still going on today.

What we'll see in the short term is what you expect to see with any new approach...poorly designed, developed, and tested services that bring high cost and lost productivity. Thus, the failures will lead to rethinking, relearning, and retooling to get service design right.

Count on large expenditures on training, tools, and testing infrastructure over the next 3 to 6 years as cloud computing grows, and SOA becomes the primary approach. Also, count on some pushback on the whole SOA concept as people understand that they are very dependent on the underlying services, and thus the architecture will suffer as well as developers move along this learning curve.

Attention needs to be paid around the process of exposing existing legacy systems as collections of services, for cloud or not. While it appears that you'll have to take the interfaces as they are deployed, now exposed as services, there is actually a lot the developers can do to design abstracted services that better serve the architecture. While many believe that tools and technologies that turn APIs or transactions directly into services are the way to go, most will find that services built using those principles provide very little value in the long run.

Leave a comment

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. View more

Subscribe

 Subscribe in a reader

Recently Commented On

Monthly Archives

Blogs

ADVERTISEMENT