Sunday, June 20, 2010

All growed up

The title of this blog post doesn't have a typo. All Growed Up is the animated movie of Rugrats, a popular American television show that portrays lives of a group of toddlers. In this episode of Rugrats, the babies attempt to tackle real issues as if they are much older and ponder major life decisions. Its like Rugrats 2.0.

Mainstream SOA adoption
We are at an inflection point with Service Oriented Architecture (SOA) maturity. For several years, businesses have moved to an architecture that is oriented towards services to give them increased flexibility. For over ten years, applying SOA principles has been a very effective way for organizations to achieve both business agility and cost optimization. SOA has primarily been about the services that allow an organizaton to achieve its business goals, and both service reuse and flexibility have been key factors in the success of SOA. Across the world, thousands of IT organizations have embraced SOA to really simplify their application integration environments and enterprise architecture, by addressing and increasing service reuse as well as securely integrating across a heterogenous set of service consumers and service providers. Each of these organizations started with a specific business problem or process or application and a set of services. These SOA pilot projects focused on specific business problems that tackled aspects of the SOA lifecycle. By using the SOA paradigm and applying best practices they were able to see real business benefit. SOA is more mainstream now and often as the "only way that IT approaches and solves business problems".

SOA is "all growed up"
Many enterprises are moving beyond SOA projects that focused on specific, departmental business problems to more complex SOA installations extending the reach of SOA and making it ubiquitous, supporting end-to-end business transactions across departmental or business unit boundaries. Most modern enterprises are not single entities, but have multiple business units. These are different departments or lines of businesses, that are sometimes even across country boundaries. And each business unit has services reused within the business unit boundaries via its own connectivity infrastructure. Each domain has their own ESB and registry. These domains or business units are often unconnected and autonomous - they are effectively "islands of SOA", or service domains. There has been a growing requirement to share services between these independent domains. These may be a result of a merger or acquisition, or the creation of inter-enterprise hosted services, or as a result of multi-enterprise collaboration. Connecting isolated services can optimize business performance and improve flexibility.

What if this cost can be reduced by bridging connectivity "across" domain boundaries? A non-technical analogy is - a government structure where a "federation model is used to address unity out of a number of separate entities so that each member retains the management of its internal affairs."

In the SOA context, this poses several questions:
  • Heterogeneity : How does one maximize service reuse across heterogeneous enterprise domains?
  • Share: How can one share services between domains, instead of federating the underlying connectivity infrastructure?
  • Visibility: Can an enterprise architect discover and manage those services that span the multiple SOA boundaries?
  • Effort: Sharing services on a case-by-case basis is possible, but can be complex and costly.What code has to be written by the IT middleware team to accomplish the federation?
  • Autonomy: Can each domain still run their own SOA based on how they like it, or same as how they did it before participating in the federation?
In other words, there is a strong need to manage service visibility and reuse across the enterprise, across divisions and across boundaries of SOA domains. As Tommy would say to Angelica from Rugrats in his nasally voice, "what are we going to do Angelica? we are all growed up!!"

Sunday, February 7, 2010

"Yes, everything is included!"

Why can't all buying decisions be made easy? My teenage son wanted to get a "good" sound system for his car. In the U.S., you can drive at 16. Since he drives a previously used car that is over 10 years old, he wanted to upgrade his speakers. You know for the usual reasons - to feel good, look cool, show off at school, etc.

So after having a family discussion about it, I agreed to look into it. I took my son to the default giant electronic superstore, because "they have everything you need" and "you can't go wrong". We entered the giant store and found the car audio section. What I saw was a large impressive array of choices. There were aisles of stereo receivers with many sub-choices. There were about 40 different speakers. Then there was the sub-woofer section, some with an enclosure included. Somehow through all this maze, I must have missed the "Accessory" section, which displays hundreds of cables and connectors. I was both impressed and annoyed.

We walked over to the sales rep and I asked him "Can you help us? We wanted to get a good audio system for our car." His response was something I dreaded even before I walked into the store. He said "Well... depends on what you want". I wanted to scream. Not at him but the store. I was the customer. They were the audio technology experts. How would I know what I want?

I patiently replied - "Can we go over the components/features and you give me the list of things I need to buy?" He reluctantly agreed. After spending 45 minutes walking through the different aisles and making hasty uninformed decisions along the way, I waited for the list and the price estimate. The sales rep came back and said "Your total will be $925.96". I said "Ok" to him and "Wow. That's a lot. I wonder if I chose the wrong components. Maybe 1000 watts is too much" to myself.

Then he dropped a bomb! He said - "You know that price is just for parts. Installation cost is extra. About $300-500". I was speechless. We thanked the store employee and quickly left.

As we drove home, I thought - that is a lot of money for something that I don't know will even meet my expectations or I would be paying for the premium quality sound that would exceed my expectations. Big unknown.

My son told me about another store that specializes in car audio electronics. So the next day we went there.

It was a small store that seemed to generate a positive vibe. Maybe it was the music with high quality sound that was playing. Maybe it was the number of people in the store. We went in. I said "We need to upgrade our sound system in our car". He only asked us two questions. "What kind of car?" and "What kind of music do you listen to?". After we answered his questions, he pondered first, used the calculator next, and then said "$800 for an excellent system"

I said "Ok. Does that include sub-woofers? What about the enclosure for the sub-woofers? Does the price include the 4 speakers? What about the wiring? How much is installation?" He said "Yes, everything is included". Then he listed the specs of his package - 2000 watts, Pioneer receiver with detachable faceplate+remote, CD/MP3 and USB/iPod/iPhone compatible, 2 sub-woofers 12 1/2 inch each with enclosure, mounted in the trunk, and a 1000 watt amplifier for the sub-woofers installed behind the backseat.

That was music to my ears! Acceptable price, good brand name components, tailored to the customer's music preference (hip-hop), and installation was included. I was pleased. Then he said something even better "I can do it right now and it will take one hour". Sold! About 90 minutes later, my son was driving home in what sounded like a "dance club on wheels".

What if technology purchasing decisions were that easy?

As their needs grow, businesses often look at their IT infrastructure and consider an "upgrade". IT managers begin exploring how others are solving similar problems.

So many questions to consider?
- Should I now embrace a Service Oriented Architecture (SOA)?
- Is an Enterprise Service Bus (ESB) required?
- Do I need a Service Registry?
- Do they come together?
- Do I make two separate decisions or can I get everything I need?

- Do I need something else for handling file transfers or will my FTP based systems work with the ESB?

When IT managers do go shopping, do technology vendors say "Depends on what you want"? Or do they say "We have a package or a suite that will solve your application integration problems. It can coexist and fit on top of your existing technologies and also allows you to grow as your needs evolve"?

Does being prescriptive in an application integration or middleware space make sense? What do you think?