Can JEE Scale with the Long Tail?

January 24th, 2007
by Jeremy Thomas

I wrote a post a few weeks ago about styling JEE (aka J2EE, some people can’t shake the “2″ even though we’re up to Java version 5 now) applications to give them a web 2.0 look and feel. Since then I got to thinking about JEE and whether or not it’s really relevant to the Web 2.0 world.

The issue is scalability.

I’ve spent the better part of my career with my head down, headphones on, techno music thumping, banging out J2EE-based (and some .NET) EAI solutions for large enterprises. These applications, at best, were scoped to target a user base of 10,000, and we never expected to have more than a couple hundred concurrent web-based user sessions.

Contrast that to google.com which deals with a couple million concurrent user sessions. And I know google.com is not JEE-based. It’s likely built with a light-weight scripting language (probably Pearl or Python give my experience with Google and their enterprise applications) with a lot of load-balanced servers behind it.

I haven’t done any official research, but in my experience most of the web 2.0 sites I’ve come across have not been JEE-based either. Most seem to run PHP (digg.com). Some seem to run Ruby on Rails. There’s one web 2.0 site that I know of that’s run on the JEE platform, and that’s zoho.com (the “.do” at the end of some of the links on zoho.com, i.e. http://wiki.zoho.com/jsp/ wikilogin.jsp?targetURL=%2Fregister.do, is a “verb” in Struts, an opensource JEE model view controller from Apache).

The question is, can JEE scale with the Long Tail? With internet access being nearly ubiquitous, websites will potentially have to handle hundreds of thousands of simultaneous transactions. Is JEE, a framework that’s great for the enterprise where there are a relatively small amount of simultaneous transactions, appropriate for coping with world-wide scale?

I hope so. But maybe lighter-weight, narrow-purposed scripting languages are more ideal.

Anyway, if you have experience with JEE dealing with “internet-sized” volumes, or if you know of any other JEE-based web 2.0 sites, please let me know.

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • BlinkList
  • digg
  • Reddit

3 Responses to “Can JEE Scale with the Long Tail?”

  1. John Karma Says:

    It is NOT the language that makes a systems scalable, it’s the architecture of the overall system. If your applications are written in a way that doesn’t take (horizontal) scaling into account, then it doesn’t matter if you write your system in Assembly, you’re not going to scale, period.

    It always amuses me when people cite Google to justify a LAMP / Web 2.0 architecture. At Google, any performance /scalability problems are handled mainly by throwing more hardware. Google has hundreds of thousands of servers and would scale in any programming language. BTW, Google uses Java, just not J2EE. So does Amazon. As for J2EE as a whole stack, the eBay architecture have been using it since 2002.

    You can always find examples that suit you. Which kind of brings me back to my first point.

    I have nothing against “lighter-weight,narrow-purposed scripting language”. They all have their uses. But to actually suggest that you need to replace JEE to be able to handle large amounts of transactions is just plain wrong. I’ve been working 10+ years in Web Banking environments based on JEE and able to handle hundreds of transactions per seconds.

    So, can JEE scale? Yes it can. So can an architecture based on C++, or Python.

  2. John Karma Says:

    Correction:

    I’ve been working 10+ years in Web Banking environments based on JEE and able to handle hundred of THOUSANDS of transactions per seconds.

  3. Jeremy Thomas Says:

    Hey John,

    You make a good point. I think JEE can scale too, and I agree with what you said on scaling.

    I didn’t realize eBay or Amazon ran on Java either, so that’s encouraging news.

Leave a Reply