Monday

Mobile Web Server

Johan Wikman -- contact
Ferenc Dósa Rácz
Overview
Background

For quite some time it has been possible to access the Internet using mobile phones, although the role of the phone has strictly been that of a client. Considering that modern phones have processing power and memory on par with and even exceeding that of servers of the early web, there really is no reason anymore why webservers could not reside on mobile phones and why people could not create and maintain their own personal mobile websites.
Goals

A desire to show in practice that personal mobile websites are feasible triggered the birth of the project that started in the beginning of 2004. The primary goals were to bring a full-fledged webserver to S60 and to make a webserver running on a mobile phone accessible from the Internet using any web browser.
Apache

In order to show that modern phones really are quite capable we decided, rather than writing a small webserver from scratch, to port Apache httpd, the most widely used webserver in the world. This was not an obvious choise; not only is Apache typically used on rather big computers but also the S60/Symbian platform is quite different from pretty much everything else.

Fortunately, Symbian does have a so-called Posix layer that provides a fair amount of typical Unix functionality. Consequently, the Symbian port of Apache is based on the Unix version and although there certainly were a few hurdles along the road, the porting of Apache still proved to be more straightforward that what was initially anticipated.

We have also ported mod_python and integrated it with Python for S60 so we can now create content using both Python scripts and PSP (Python Server Pages), which is a great deal more convenent for experimentation compared with writing custom Apache modules in C/C++.
Access from the Internet

Being able to run Apache on a mobile phone is rather interesting in itself but still not much more than a quirk unless it can be accessed from a browser outside the device itself. Our target was to make it possible to access a webserver running on a mobile phone, equipped with a standard operator SIM, from any browser on the Internet, at any time.

Initially we utilized a Bluetooth PAN network but although that already is useful - it provides for the possibility of accessing functionality on the phone using a big screen and proper keyboard - it is quite limited compared with what access over the cellular network would imply.

Providing access to a mobile phone from the Internet is not straightforward, as operators typically employ firewalls that prevent access from the Internet to phones inside that firewall. By implementing a custom gateway we could circumvent that limitation and we are now able to provide a webserver on a mobile phone with a global URL than can be accessed from any browser. In a sense, the mobile phone has now finally become a full member of the Internet.
Content

As a mobile phone contains quite a lot of personal data it is easy to semi-automatically generate a personal home page. And contrary to websites in general, a website on a mobile phone always has its "administrator" nearby and he or she can even participate in the content generation. For instance, we have created a web-application that prompts the phone owner to take a picture, which subsequently is returned as a JPG. That is, on a personal device the website can be interactive.

Further, that a website becomes mobile implies that certain properties of websites that hitherto have been mostly meaningless now need to be taken into account. As long as a website resides on a stationary server the physical location of that server lacks meaning, because it will never change. With a mobile website it does change and it is meaningful as the content that is shared may depend upon the current location and context. For instance, if you browse to a mobile website and ask the "administrator" to take a picture, the image you get depends upon the location of the website. Current search engines that update their indexes rather rarely may need modifications to be able to cope with the dynamism introduced by mobile websites.
Implications

We believe that being able to run a globally accessible personal website on your mobile phone has the potential of changing the Internet landscape. If every mobile phone or even every smartphone initially, is equipped with a webserver then very quickly most websites will reside on mobile phones. That is bound to have some impact not only on how mobile phones are perceived but also on how the web evolves.

The software has been open sourced and is available for download.
courtsy:research.nokia.com

No comments:

Django URLs

In Django, the urls.py file is where you define the URL patterns for your web application. There are several ways to write the urls.py fil...