Does My Bus Look Big in This?
I just watched Martin Fowler and Jim Webber’s collective presentation on SOA and ESB I entered into the presentation hoping to learn about how they’d recommend I use a Mule or ServiceMix. Well, they not only didn’t tell me which one was better or how I should configure it or anything even close to that. I don’t want to spoil it all for you, but I’ll say that they did tell me that SOA actually stands for “Same Old Atrocity” and that ESB stands for “Erroneous Spaghetti Box”. Oh yeah, I almost forgot – Mule and ServiceMix, while not named explicitly, may have man-boobs.
Here are my notes from the presentation:
Does My Bus Look Big in This?
———————————————-
Talk given by Jim Webber and Martin Fowler
Most integration tools are bloated lard asses because they’ve been on a rich
diet of BPM, Transformations, Security, Adapters, Rules Engine and GUI tools.
Integration software is a bridge built between two existing applications (silos)
SOA to the rescue! ( not! ) It’s the same old stuff. Same old atrocity -
if a single service ever needs to change then you’re screwed.
SOA != Service Oriented Architecture
SOA == Same Old Atrocity
ESB – this should fix things. Just plumb your databases and services in
and you are suddenly Scalable and Governable.
ESB != Enterprise Service Bus
ESB == Erroneous Spaghetti Box
ESB is an Architectural Fantasy – at least as a magic bullet.
Mainstream SOA Today : it doesn’t run and it’s full of fat.
We need to think carefully, plan ahead, design interfaces wisely.
Agile Architecture:
1) Accept change as an inevitable part of the Software Process
2) The most important part of the Software Process is people – we need
to make allow the people to be effective.
Continuous Integration
Automated Testing
Refactoring – disciplined way to design and evolve the software
Behaviour Driven Development
Grow the system, incrementally. With a solid core that functions to begin
with and then add more layers of functionality deliberately over time.
Frameworks have gotten agile, too. Spring, Hibernate, Rails, etc…
Http and the web – broke some of the rules. All the links *DON’T HAVE TO WORK* – 404 errors are a good compromise
The web is great because the underlying network is so simple and dumb, but it
facilitates almost any higher level usage layered on top of.
The web allows us to do things that we never considered in advance.
Great design isn’t considering all the cases and designing for them. Great design is
when you can handle situations with your architecture that you’ve never thought of
or considered.
Guerilla SOA – just do it in the trenches but don’t bet the entire project on it. Then
with each small victory, re-prioritise and keep delivering.
Web-based Services: The Web *is* middleware. HTTP is a big, coordination framework.
The web is slim, trim middleware – not fat bloated like SOA and ESB. The web is ubiquitous!
The web is incremental and, therefore, low risk.
So, we don’t need what middleware vendors are selling us.
SQUID?!? What is it?
Squid is your ESB – a Big, Big Proxy Server.
Proprietary Middleware vs Web-centric techniques
——————————————————
Big, up-front design vs Evolutionary
Lengthy death-marches vs Constant delivery
Expensive vs Inexpensive
Risky vs Incremental
Enterprise Scale vs Internet Scale
Specialised vs Commoditised
Integration separate activity vs Integration by-product of delivering business value
Not very sensible vs Quite sensible
Take the same ideas we’ve come up with in application developement when attacking the larger
Enterprise issues.















