Tom Kyte has written a nice piece on How to scale.. Suffice to say, I agree entirely with him, as previous posts on this blog will testify, but I wanted to look at this from a different, maybe cynical, angle…
For a hardware manufacturer, doing more work in the middle tier is a dream come true. Sure, J2EE can scale well, mostly because it has to! You need a server room like a Google data-center to run the Pet Store demo application. 🙂 Encouraging companies to invest in middle-tier processing is a massive win for the hardware manufacturers, especially the Intel/AMD based guys.
From the software licensing perspective, this is a massive win also. Scale out in your middle tier and pay us lots of money for licenses. No wonder Oracle are laughing all the way to the bank. In my company, we probably pay more for our application server licenses than we do for our database licenses, yet I’ve worked on far more complicated projects that manage with a single Apache server. We’ve been encouraged to believe that if it doesn’t need 10 clustered application servers, it’s not worth having, when the reality is, it needs 10 clustered application servers because the middle tier stinks!
We seem to be a society that relies on quick fixes. If we want to lose weight we go on a fad diet, get our stomachs stapled or have cosmetic surgery. Middle-tier processing and scaling is the cosmetic surgery of the IT industry. It doesn’t matter about fixing the root cause, just brush over the surface and everybody’s happy… Right?
Wrong! Put your fat-ass application on a middle-tier diet!