In the last week or so, there have been a lot of ‘client’ announcements: from Asus’s new Eee PCs, Amazon’s new Kindle to this pronouncement that our cars are one step closer to being network nodes.  Interestingly, the Eee PC’s and Kindle both incorporate integrated 3G services in addition to or instead of simple WiFi.  Add to that the myriad of new mobile devices spurred by the iPhone (Android phones, new Blackberry phones, etc.) and it’s increasingly clear that what was once a unifying technology (i.e. the world wide web) is now becoming increasingly splintered as the number of devices—and their myriad capabilities and unique functions—is making it harder and harder to provide the rich user experience with a single batch of uniform content.  Originally, one of the great things about HTML was that we could all share the same information, the same experience, regardless of our personal choice of computer or OS; now, we are actively trying to make the content dynamically morph to fit the numerous clients and connectivity, providing unique experiences instead of the same one.

A great example would be my online banking experience.  I was thrilled when my bank started offering online banking (as I’m sure many of us were), but was even more thrilled when they enabled their ‘mobile’ version of online banking.  My daughter was even more thrilled—as it was that much easier for me to transfer money into her account when she came up a little short.  Imagine my thrill, however, when I logged into my mobile banking application the other day and noticed that they now had an iPhone specific online banking application that looked and acted much like a local app instead of a web-based one.  NFL.com also has a similar iPhone specific experience that makes it very easy for me to navigate game day statistics of other games whilst watching my MN Vikings. So, I get nearly the same functionality, but a more device personalized version depending on how I access the application  OR if you us the same bank or nfl.com, but don’t use an iPhone, you get the same functionality I do—but personalized to the device *you* are using.

There’s been a lot of talk about the death of “load balancers”, but this is just one more example of—maybe not how load-balancers have evolved to become application delivery controllers, but just maybe, how load balancer have almost ALWAYS been more than just load balancers; maybe they were application delivery controllers all along but we are just finally getting to the point where we actually need them to be.  This notion of ‘application switching’ isn’t all that complicated, nor is it all that new.  The mechanism used to determine what device I’m using (HTTP User Agent) is almost identical to the mechanism (HTTP Accept Language) that we used many years ago for auto-determining a users preferred language and redirecting them to the appropriate site.  For example, in Canada, I once did an install where we used the HTTP Accept Language to automatically deliver users to either a French or English website based solely on the users preference.  This allowed the client to properly offer both French and English versions but automatically selecting the correct site that the individual wanted.  Two users, same site, different preferences—each server exactly what the content they wanted without any knowledge about what was going on to make it happen.  Just like using the User Agent to deliver an iPhone experience when I use my phone and a desktop experience when I use my browser.

Isn’t that what application delivery is all about?  The user just wants an application—heck, they may not even realize that you automatically formatted the content to make it more usable on their device du jour, or that they are getting Spanish content instead of English without even doing anything.  It’s rarely been about ‘load’ distribution, but more about uptime, availability, performance (why would you want more than one application server if not for improved performance); for at least a decade it’s been about server offload of SSL, compression, rate-shaping AND dynamic, intelligent application switching to deliver the right application, for the right device, to the right user. 

 

Maybe load-balancers aren’t dead—they were just a figment of our imagination; and now it’s time we woke up.  The web might be getting easier for the users—but it’s getting more complicated for those of us who have to build the ecosystem that holds the clouds.

 

Follow me on Twitter Subscribe Bookmark and Share Add to Technorati Favorites