Finnish cellular manufacturing giant Nokia has been experimenting internally with a cell phone based port of the popular Apache open source web server. Being both a technologist and a gadget buff, this naturally piqued my curiosity. However, this is a road frought with challenges. Of course, it sounds like really cool stuff, and I suppose from a purely hackeristic standpoint, it is. But I don’t think it will prove to be a viable solution for a wealth of reasons.
First and foremost, there is the obvious issue of bandwidth. Obviously, running a web server over a Bluetooth network is a moot point, given that any clients making web requests would need to be within 10 feet of the web server. Even if both devices were running “high-powered” Bluetooth connections, the range would be around 100 feet – still not viable. Wi-Fi connections partially solve the connectivity issue, at least as far as “range” goes. However, Wi-Fi connections over a cell phone (at best) cap out at around 500kbps (kilobits per second). That’s pretty measly when compared to what you’d get in a data center running at 54mbps (megabits per second) or higher. So the bandwidth for anything other than low-traffic installations is simply not there.
Second, there exists the second obvious issue, which is availability. I live in metro Atlanta where cell connectivity is considered to be pretty advanced. However, there isn’t a day that goes by where I don’t lose cell phone connections due to dead spots or interference. Imagine someone standing in your data center randomly pulling the plug on your servers, making all of your clients lose connectivity. That’s basically the situation we’d have with running cell phone based web servers, as your “web server” would move around among the jurisdiction of various cell towers.
Third, one must consider the issue of security. How will firewalling work? What sort of “phone” exploits would this open up? Can you imagine cell phone based worms that spread via HTTP requests to ill-behaved CGI scripts? And what if that worm decided to “harvest” all of your phone/PDA data, such as names, numbers, appointments, etc., and emailed those to some arbitrary source? Pandora’s box comes to mind. Frankly, I think if you run a web server on your cell phone, you should no longer be allowed to call it a cell phone. You should simply refer to it as your Pandora’s Box.
Fourth, we must examine content. Most useful content that exists on the web is the result of a complicated dance involving application servers, content management systems, database systems, and other components. Static content is becoming hard to find on the web. Porting Apache to a cell phone would merely allow you to serve static content. To get to the dynamic stage, you’d also need to port things such as MySQL/Oracle/Postgres, PHP/.NET/ASP/Perl/Ruby, and a host of other tools. Not gonna happen.
Next, we would be remiss not to examine computing capability. The PDA functionality in newer cell phones already pushes the limit of most cell based processors. Palm’s new Treo 700w smartphone, one of the more advanced phones on the market, is equipped with an Intel® XScale™ 312MHz processor. The last time I had a “server” that ran anywhere near that speed was an old IBM 386 MHz PC, which really struggled to run a single line dialup bulletin board system. Apache has a relatively large footprint, especially when you start getting into the realm of compiling in additional functionality (see content above). The horsepower just isn’t there.
In 2004, an estimated 715 million cell phones were shipped to consumers. That number is clearly higher now. I’m not even going to get into what ramifications this would have on IP addresses and namespaces. Even with the advent of IPv6, which could easily support it, the logistics behind it would be staggering.
Finally and far more importantly, why? Why on god’s green earth would you want to run a web server from your cell phone? Cell phones, by their very nature, are mobile devices. They are ideally suited to be clients, not servers. Cell phone based web servers, IMHO, do not solve any known enterprise problem, and offers very little in the way of innovation. I’m sure if we worked hard enough, we could probably port Eric Allman’s wonderfully arcane and useful sendmail to cell phones. But that would also be pointless.
The world is full of really hip software ports. Some are actually quite useful. For instance, being able to edit Excel, Word, and Powerpoint documents on my Treo 650. That’s useful. Being able to use my cell phone to establish an SSH connection to a remote server and being able to work on it – another useful software port.
Then there are the pointless ports. From Linux running on the XBox to most everything you’d want to put on an iPod. Running an Apache web server on my cell phone ranks right up there. Cool? Yes. But pointless all the same.
To be more than just “cool”, a port needs to have (a) a viable use, (b) a sustainable environment (in this case, bandwidth and availability), and (c) demand. Running an Apache web server on my cell phone offers none of the above.
I suppose that in 20 years, when the data center is a thing of the past, and even the most transaction-heavy web sites are being easily facilitated by the latest and greatest in mobile devices, I will eat my words. But for now, I think I’ll stick to my 2U rack mounts …