January 17th, 2008 by Kyle Gabhart
Over the last couple of months, I’ve been focusing quite a bit on helping people think about how much SOA they really need to address their business objectives. It turns out that you can, in fact, have too much of a good thing.
In November, I spoke at SOAWorld in San Francisco: “A Little SOA Goes A Long Way”. Then in December, I was interviewed by Jason Bloomberg and David Linthicum of ZapThink fame: “How Much SOA Do You Need?”. The presentation is available as a video webcast and the interview is available as an audio podcast.
“A Little SOA Goes A Long Way” (video webcast)
“How Much SOA Do You Need?” (audio podcast)
Additionally, my upcoming book (Wiley Press, Spring 2008) devotes an entire chapter to the subject of right-sizing SOA.
Have any experiences to share regarding how much SOA is just right and/or too much? Feel free to comment and discuss!
Posted in SOA |
No Comments »
January 8th, 2008 by Kyle Gabhart
“SOA is fine, unless of course you want a system with decent performance.”
“XML is slow and all the added layers that SOA demands will cripple any marginally high-transaction system.”
I’ve heard uneducated statements like these, and many others regarding SOA, XML, and the prospect of service orienting high performance, mission-critical systems. The truth is, that these statements are ill-informed and those that make them rarely have anything beyond vague anecdotes from “some Fortune 500 company a few years ago” to back them up.
Generalizing SOA
First, we’ll start with some broad sweeping generalizations regarding SOA. These have some truth to them and do, in fact, characterize a typical utilization of SOA. In general, SOA is realized as follows:
- Multiple layers of abstraction
- Standard XML message format (typically SOAP)
- Standard Web transport (typically HTTP)
- Non-reliable (no guaranteed delivery by default)
- Oriented more toward reuse and agility rather than performance or scalability
Breaking the perception barrier
There is more than one way to skin a cat and there is more than one way to implement SOA. HTTP is simple and cheap, but not robust or performant. HTTP-based SOA’s are certainly the most common as they are simple to setup, simple to exploit, cheap, and widely available. The problem is that HTTP isn’t reliable, suffers from high latency, has limited bandwidth, and does not offer any sort of message buffering or message durability. High performance SOA solutions must take a different approach. Messaging middleware solutions such as IBM WebSphere MQ, SonicMQ, or TIBCO hold one answer. These platforms are designed with scalability and performance in mind and are increasingly supporting SOA right out of the box.
High Performance SOA
Designing a high performance SOA solution is possible. Gerardo Pardo-Castellote, PhD, recommends the following steps:
- Select a Messaging Fabric/Bus
- Select an appropriate Architecture (hub-spoke, clustered, federated, peer-to-peer)
- Identify Quality of Service requirements (reliability, latency, flow control, lifespan, history, transport priority, etc.)
- Leverage Performance Technologies (multicast, message batching, asynchronous writes, compression, etc.)
- Select and monitor appropriate Metrics (throughput, latency, scalability, etc.)
Still skeptical? Consider the following examples:
As with so many things, there just is no simple answer. The only absolute is that there are no absolutes. SOA is a style of enterprise architecture for which the focus tends to be more upon flexibility and reuse. However, to the extent that solution performance is a priority, the architecture can be tweaked accordingly.
For further reading on this topic, I suggest the following:
Posted in SOA |
No Comments »