We hear about “Business Driven SOA” so much that it’s almost a cliché. And, like most clichés, we don’t really know what it means. If SOA is not that well understood, making it business driven is even more elusive. In this article, I’ll describe what business driven SOA is, and illustrate this with an example.
First, let’s start with what it’s not. It’s not web services. From the business perspective, we don’t care what technology is used to implement SOA. We can expand on this principle and say it’s not an SOA platform or product suite (sorry vendors). Although business sponsors sometimes drive technology purchasing decisions (usually around COTS systems), we all know that they shouldn’t. From an IT perspective, we insist that the business should clearly state their requirements, and then leave it to the IT experts to choose the most appropriate implementation. It stands to reason then, that business driven SOA is not about products, platforms, technology, protocols or standards.
What else is it not? This may come as a surprise, but it’s not about cutting costs or reducing time to market. Those are technology efficiency characteristics, not business characteristics. Again, the business doesn’t care how IT achieves these. It could be SOA or MDA or Agile or any number or combination of things. Obviously, increasing IT efficiency is highly desirable, and we might even get business sponsors to kick in some bucks to facilitate it, but it’s not a business imperative.
It’s probably obvious, but business driven SOA is not about building utility services, or achieving reuse, or governance or even about BPM. Instead, business driven SOA is about using the principles of SOA to address specific business problems and meet business strategies and goals. To understand this, we need to look at what some of those principles, or characteristics are.
- Consistency – SOA allows us to have a single, common entry point into a process or sub process. In other words, it allows the business to provide consistent behavior regardless of the path taken to get to that behavior (more on this later).
- Commonality – SOA allows us to have a single access point to common information that is spread across the enterprise. In other words, it provides the business with common, enterprise wide information that is consistent and coordinated. The most cited example of this is the ‘common customer’, but there are many other opportunities to provide business value with common information. Advanced SOA implementations provide both read and write access to common information.
- Modularity – SOA provides an excellent mechanism for implementing modularity of business function and information. When done well, those modules can be reused and recombined across multiple processes and scenarios. This provides the business with the flexibility and agility required to be innovative and competitive.
- Decoupled – SOA provides a mechanism for integrating business functions and information together, while at the same time minimizing the dependencies (or coupling) between them. In other words, independent business units, applications, etc. can work together, but continue to have their own schedules, lifecycles and business drivers.
- Managability – SOA allows us to manage our business at the modular level by defining service level agreements. In other words, we can set, monitor and refine our business performance over time.
Business driven SOA is about using some or all of these characteristics to solve business problems and drive business value. Let’s look at an example.
I travel a lot for business and frequently rent a car when I arrive at my US destination. To save myself time and hassle, I belong to a ‘frequent renter’ program, which means that the car will be waiting for me when I arrive, rather that me waiting in line for it. I make my own travel arrangements and I reserve my car on the rental company’s web site. But the other day when I got to the airport, my car wasn’t ready. After waiting in line, I was informed that I didn’t reserve my car via ‘speed rent’ (the brand name is hidden to protect the guilty). “Oh yes I did. I reserved it the same way I did the last 10 times,” I replied. But after some exploration, I discovered that you actually get a different ‘speed rent’ reservation system when you log into the website with your speed rent number. If you don’t log in first, but provide the number in the field of the reservation request form, you get the regular reservation system, which means your car won’t be waiting for you at the airport. Hard to understand, harder to explain, but most importantly, it results in unsatisfied customers.
The business imperative is to provide a consistent way to reserve cars that results in keeping the best customers happy, regardless of how the reservation is made. This should be true whether it is made over the phone, through a travel agent, or on the website, with or without logging in. Understanding the common information and processes needed to accomplish this, and providing a ‘reservation service’ to implement it is an SOA approach to a solution, driven by a business imperative. That’s business driven SOA.