|By David Linthicum||
|October 28, 2009 07:00 AM EDT||
While there are many attempts to fix the badly broken IT architectures within our enterprises, most ‘solutions' just put another technology layer on top of the existing technologies in hopes that the technology will somehow fix the issues. As you may have guessed, it just makes things more complex. Few enterprises were willing to take the risk and address the core issues.
Service-oriented architecture, or SOA, is really about fixing existing architectures by addressing most of the major systems as services, and abstracting those services into a single domain where they are formed into solutions (see below). Simple in concept - and really nothing new - SOA is our best approach to fixing the broken architectures. With the wide use of standards such as Web services SOA is being promoted as the best way to bring architectural agility to your enterprise, that is, if you do SOA correctly. There is no magic bullet here.
SOA is a valid approach to solving many of the architectural problems that enterprises face today. However, those who implement SOA typically look at SOA as something you buy, not something you do. Thus many SOA projects are again about purchasing some technology that is sold as ‘SOA-in-a-box,' which turns out to be in-a-box, but not SOA, and thus only adds to the problems.
SOA, as the "A" implies, is architecture. Thus it is the orderly arrangement of systems that best serve service needs of the business. Taken in its literal context, enterprise IT can succeed with SOA. However, most do not succeed and much of that failure is due to the fact that the SOA implementers view SOA as something other than architecture, and most often those implementers are not architects.
SOA is a valid architectural pattern and you need to look at SOA as a journey - not a project - and clearly not a product. At the same time you need to break SOA down into small, incremental successes, which also move the enterprise toward the core value proposition of SOA, which become even more powerful when leveraged with emerging concepts such as cloud computing.
We can call this ‘small SOA' and ‘big SOA.' Big SOA encompasses the larger strategic objectives of SOA, moving the enterprise IT assets to something much more agile and easy to change, and doing so all at the same time. An example would be the breaking down of all relevant enterprise systems to a functional primitive, and building them up again as services, as well as adding a process configuration layer to form solutions. Considering that this typically means hundreds and sometimes thousands of systems, this could take many years.
Small SOA is just an instance of a big SOA. Small SOA is still a SOA, but has well-defined objectives, a time box, and a core return on investment that must be met. The lesson here is to leverage small SOA to get to big SOA. For instance, you could build a partner portal using SOA approaches that you can stand up in six months, with an ROI of only three months. A clear benefit and a small and doable project that occurs within a year's time.
While small SOA seems to be working, big SOA has largely been abandoned as something that's just too complex and too expensive to pursue. The reality is that you need both, but you need to know how to leverage both. Hold on to that thought for now.
Cloud computing is any IT resource, including storage, database, application development, and application services, that exists outside of the firewall that may be leveraged by enterprise IT over the Internet. The core idea behind cloud computing is that it's much cheaper to leverage these resources as-a-service, paying as you go and as you need them, rather than buying more hardware and software for the data center. There are other advantages as well.
Thus, cloud computing allows you to expand and contract your costs in direct proportion to your needs. Moreover, it shifts some of the risk around expanding your IT resources from the enterprise to the cloud computing provider.
The relationship between cloud computing and SOA is that cloud computing provides IT resources you can leverage on demand, including resources that host data, services, and processes. Thus you have the ability to extend your SOA outside of the enterprise firewall to cloud computing providers, seeking the benefits we already described.
Why SOA Is Important to Cloud Computing
First, it's a good approach to architecture that deals with the proper formation of the information systems using mechanisms that make them work and play well together, inside and outside of the enterprise.
Second, in order to take advantage of cloud computing, you need to have interfaces and architectures that can reach out and touch cloud computing resources. While many believe they can simply create quick and dirty links between core enterprise information systems and cloud computing resources, the fact of the matter is that you really need an architecture inside of the enterprise, such as SOA, to make the most of cloud computing.
Finally, you need some sort of architectural discipline with guiding principles to document and organize your architecture. Most have ignored this over the past several years to focus on ad-hoc hype-drive stuff. We need to get back to leveraging the best solution for the problem, and SOA is a good approach for doing that if you follow the steps.
The idea here is to drive change for the better. Many enterprises are in such bad shape that it makes sense to leverage disruptive technology and approaches to drive that change. This is really about rethinking, redefining, and shaking things up. It's analogous to taking your 300 pound body to the gym for the first time in your life, or having heart bypass surgery which now allows you to walk 10 miles. It's about making major disruptive changes to very poorly planned IT infrastructures that drive changes for the good.
• • •
This article is an excerpt from "Cloud Computing and SOA Convergence in Your Enterprise...a Step-by-Step Approach by David Linthicum.
- Real-World AJAX
- SOA 2 Point Oh No!
- Semantic Mapping, Ontologies, and XML Standards
- SOA - Loosely Coupled...What?
- Joining Enterprises With Web 2.0
- Ten Things to Think About When Building the Perfect SOA
- Why Services Are Like Craigslist
- Cloud Computing & SOA: Getting the Links Straight Between Them
- AJAX, RIA, SOA & Web 2.0 Mashups - Mash What?
- What Level Is Your SOA?