Bryan Brouckaert's company decided that it was time to get a new global Content Management System. Though their current CMS worked fine (minor bugs and inconveniences aside), it felt old. It was very Web One-dot-Zeroy.  After a bit of a search, they found a superb Web 2.0 CMS: slick-looking buttons, turning-gear icons, and plenty of drag-and-droppable stuff. Still better, the vendor was able to redevelop the old system's templates and migrate all of the content without a hitch. The whole migration went over surprisingly well.

That is, until they deployed the new CMS to the remote offices. And to clarify, not "remote" as in "located off the main campus" but "remote" as in "located in a basement office in the Republic of Elbonia." These are the offices where "broadband" refers to the 1/2-inch thick rubber-band and "high speed" means "more kilobits than you can count on two hands." It's for these offices that Bryan had to figure out why the new CMS didn't work.

It didn't take too long for Bryan to figure it out. Being a Web 2.0 system, the CMS used JavaScript that dynamically loaded JavaScript that dynamically loaded XML that was dynamically transformed into proprietary commands that were parsed to dynamically execute JavaScript to dynamically load content. With a packet monitor, Bryan calculated that the average page rendering downloaded between 300KB and 600KB, most of which were HTTP 304 responses indicating to the browser to use its cache. With the cache disabled, Bryan found pages would downloaded several megabytes each time they rendered even the most basic text.

Since the vendor reported that this is "by design," Bryan was stuck with figuring out a solution. He had an "aha!" moment and requisitioned a terminal services server. He then set up remote desktop clients at the remote locations and instructed the users to remote into the server to use the web application instead of using their web browsers. Expecting a negative reaction to this, Bryan was pleasantly surprised by the feedback: "Wow! This works amazingly fast!"

[Advertisement] BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how!