Archive for November, 2005

AJAX Performance

Tuesday, November 29th, 2005

AJAX is the new pink. In fact, Web 2.0 could be the internet revolution that makes even Bill Gates wonder about the future of software. The enhanced usability in AJAX implies a couple of things for web applications:

  • Some of the controller logic is moved from the server to the client. Less CPU cycles on the server per page, more on the client.
  • Clients make more frequent requests to the server, but with significantly smaller payloads. The business logic on the server is broken up into smaller, more self-contained XML services (SOAP, REST). In essence, same aggregate CPU, more I/O.

Add to that a higher level of concurrency. More frequent, less expensive requests, same user, results in higher transaction rates, which will require more concurrent threads. More threads will consume more resources, both CPU and I/O.

During a simple AJAX revamping exercise, for the same amount of functionality, user CPU time is likely to be reduced on the server, and network I/O to go up. The extreme case with an AJAX MVC, and the server providing only web services, will actually reduce the CPU requirements on the server.

However, there are a few catches software architects should really start to consider:

  1. AJAX will increase bandwidth requirements on the server, and reduce the ability to scale up hardware to CPU saturation, increasing the average hardware cost per CPU cycle. In other words, AJAX is not a server efficient technology unless you revisit the data going back and forth.
  2. Once the AJAX-night fever comes down, a next wave of web design will start to put more emphasis on orchestration and collaboration. Web services transaction management will start to be more mainstream due to additional client requirements, and stateful web services will appear (sadly?).
  3. Current server tuning rules will no longer apply, given to changes in usage patterns. Multi-core architectures, such as Niagara and Power5 will be best placed to serve the increase in threading. Niagara being a lower power, high bandwidth chip, but not necessarily a fast CPU, will be one of the best architectures to run AJAXed applications.

SOAP and RMI

Thursday, November 3rd, 2005

Latest benchmark results on WebSphere 6.0.1 seem to indicate that SOAP/HTTP outperforms RMI/IIOP. Interesting, it makes me wonder if the reason comes down to IBM abandoning CORBA and placing the best developers on the SOA field. Otherwise there is really no other explanation I can think of. I’ll have to instrument some code to understand the why.

First Entry

Tuesday, November 1st, 2005

Not the first blog, and likely not the last one. Too many tasks, and short of time. Priorities change. And here I am on a new blog, tired of running my own. I don’t like the chores blogging, and I hate the whole ‘hoo, haa, I got trizillion hits’.

Anyway, to the point, the objective of this blog is to prepare short articles for my forthcoming book on performance analysis for web applications.

And who am I you may wonder? I usually get referred as being a ‘technical architect’, some call me a ‘performance architect’. On my title now it says ‘enterprise architect - operational engineering’. Ney. Software and systems are nowhere close to been at the level of maturity of engineering, including the ‘real’ architecture, so I would hardly classify myself as an ‘architect’ anyway. I like drawing and painting though, and I am pretty decent, I think.

Some people call me a technical troubleshooter. I like this description much better.

A highly technology focused critical entrepreneur, I have been building software and systems for the last 22 years, only the last 8 doing it full time. It all started with a good old Sinclair Spectrum48 my dad bought me when I was in my early teens. It had a built-in BASIC interpreter and 48k of memory. The key thing to do with it was to play. And games, well, were not that good to be honest. So I quickly got tired of playing, it was not creative, it was not very stimulating.

So I started doing PEEK and POKE. Wow, what a difference it made. Now the little computer had become creative. And I got hooked to it. I evolved to an x286, where I learnt FORTRAN, PASCAL, C and C++. I wrote graphic libraries, windowing toolkits, learnt OOP, all in the late 80s and beginning of the 90s. It was wonderful. There was always so much one could learn. So much I could learn. At the time I was at School in Madrid, Spain, studying ‘Caminos’, a hybrid between civil engineering, applied mathematics and solid mechanics. School was tough, mentally exhausting for 6 years, and I found on programming, along with playing music, a great way to relax with my creative side of the brain. And then one day, like everybody else, I got my degree. Faced with the duty of earning my bread, I started working for Andersen Consulting. I did not really like the idea of doing too much of ‘civil engineering’ for various reasons, so I decided to try with Andersen as I could have the chance to do some programming on a ‘business’ context.

I learned a lot during the time I stayed with Andersen Consulting, but I decided to take a break from corporate life, and go back to school to do something with scientific software. That was also fun. My time at MIT was fun. I enjoyed it a lot, and learned a lot by working on MIT’s microscopic traffic simulators (MITSIM and DynaMIT). I learned CORBA, PVM, EJBs, component-orientation, layered architectures, and real-time simulation.

But I happened to get my degree, and started working. Back to Andersen Consulting, later morphed into Accenture, I have worked over the last 6 years building high performing transactional web applications on J2EE for Financial Services clients. I have done a bit of everything over the course of the last 6 years, ranging from low level kernel programming to business development. On the side I have always maintained contact with the open source community, and I maintain (somehow) caffeine, a hosted Java Virtual Machine (JVM) for the .NET runtime.

Nowadays I live in Kent, UK with my wife Reeta and daughter Anaïs.