I've been looking at a preview version of Nokia's forthcoming Mobile Web Server (MWS). Web servers are the software behind web sites, responsible for serving up images and graphics, running scripts (like forums or other dynamic pages) - they provide a mechanism for clients (browsers) to connect to the server and retrieve this information.
MWS consists of two components, a Web server powered by Apache (effectively it is a port of the Apache Web server to S60; it is a further development on Nokia’s Raccoon project) and a connectivity/gateway component which provides a way for an Internet browser to connect to the server that is running on the phone.
Normal Web servers are on an always-on consistent connection (in technical terms it has an unchanging 'static' IP address), this is not true of a mobile device (like your PC it is normally a client device). The gateway component is therefore necessary because it provides a consistent way to access the server - remember that a mobile device has limited power and limited connectivity and thus may not always be available or connected in the same way.
MWS, in its default install, comes with a default pre-configured web site which has a number of functions, including a guestbook, a blog, the ability to send SMS messages to the phone, share Calendar information, view contact information and access the phone's camera. You can of course create your own pages and host your own files by adding files to the appropriate folder (see example below).
It is also possible to add additional modules (used to extend sever functionality) to the web server. The default modules included are mod_python, mod_auth, mod_auth_basic and mod_auth_file. The mod_python module (relying on the PyS60 project) adds a scripting language to the server which allows you to create dynamic pages (and this is used in the pre-configured web site). You can also use Python, and the APIs provided by the PyS60 project, to access a number of the phone’s functions and data stores, allowing you to create a deep level of integration with the phone.
There are several layers of authentication built into MWS. Clearly this is very important, as potentially sensitive data can be exposed. You can limit overall access using content filtering in the MWS’ settings, but you can also set up more specific access rights using the 'Users' section of the S60 software.
In the 'Folder access' section you can control access to your custom created folders for specific users. In both cases, user information can be drawn from existing contacts in your phone and, optionally, invitations can be sent using SMS.
The default site lets you control which users have access to different parts of the default site via access controls built into the pages (e.g. 'Anonymous' can view the blog, but cannot comment).
Here is a quick run through of some of the functions and features on the default site:
'Blog' lets you host a simple weblog, with support for categories and comments. However, as well as the ability to create a new blog entry through the web page, MWS lets you create new blog entries from within the Messaging and Gallery applications:
'Camera' lets you take snapshots from the phone’s camera. This takes a few seconds to kick in and on the N95 at least you need to leave the shutter of the main camera open for this to work.
'Gallery' lets you view pictures stored on your phone. You can create albums and move pictures into these albums and then make these publicly viewable.
'Guestbook' allows your visitors to leave a message, as a sign of their visit.
'Messaging' lets your users send you an SMS (which appears in the Messaging Inbox) or an Instant Message (which pops up on screen).
'Calendar' lets you view your appointments, anniversaries and to do entries in day, week and month view. You can also add new entries or edit existing ones. Calendar is one of the most fully realized elements and could be genuinely useful for some users.
'Send SMS' lets you send an SMS to any number. The phone the server is running on is used to send the SMS message.
The 'Phone log' lets you see recent missed calls, recently received calls and recently dialled numbers.
'Contacts' lets you browse the contacts stored on your phone and send them SMS messages.
You can view my default mobile web site at http://rafe.mymobilesite.net and you can view my custom site at http://rafe.mymobilesite.net/myfirstwebsite/. You will only be able to see the access allowed to anonymous users, so some of the features described above may not be accessible. Please note the server may not be running, in which case you will have to make do with the screenshots shown above.
MWS, in its current form, is part useful and part interesting concept. The current default install of MWS offers some useful functional features - sharing pictures, creating a blog (particularly well integrated into the phone), accessing your contacts remotely, sharing calendar information, and so on. However, the current implementation is limited in scope; in truth, the end effect of most of the features can more easily be done on other ways. Current mobile technology itself provides limits; in the real world, bandwidth is limited (and may be costly) and there is a battery price to pay for a constantly running server. Overall, this means that the current implementation, while solid, is not going to attract much interest outside of power users and technology enthusiasts.
But the surface features are not the point; MWS is a glimpse into the future. It allows you to have much more than the traditional client experience (browser) - the server experience means that a greater level of interaction and integration with the phone is possible.
It is a mistake to look at MWS as if it were another application or service. Instead it should be viewed as an enabling technology - no different to Java ME, Flash Lite or Widgets. Because the real potential of MWS lies in what other people might build on top of it.
What comes next?
You can already access the Internet from your device as a client via web browsers, but this is largely one way. But adding a way to access your phone, its content and its features from any web enabled device opens up a host of new possibilities.
Mobile phones have some interesting technology on board. Features such as cameras, microphones, network connectivity (which GSM cell) and GPS could all act as sensors. Data stored on the phone such as photos, text messages and calendar entries can have relevance outside the handset. While much of this data and information can be shared using existing applications (GooSync and other push/sync solutions, Shozu for photos, GPS trackers, etc.), using a server framework allows for much greater flexibility and potentially opens up a standard way of remotely addressing the phone.
It is also possible to see a new class of applications running in the browser. In the last few years we’ve seen the rise of web based applications running on remote servers. These have always been somewhat limited on mobile devices because of latency and connection issues, but a local server could solve many of these problems. How about having a personal Wiki running on your phone or a Basecamp-like project management system? While these would mainly run in local mode, as a bonus these applications could also selectively be accessed by other web enabled devices. It doesn’t even have to be a full version of the web application; it could just be a limited client with fewer features which allows you to access your data when there’s no connection available. Or it could be part of an enabler for an offline experience, in the same way Google Gears is.
MWS technology could also help overcome some of the fundamental limitations of the mobile device. The screen size and data input in mobile devices is limited by their need for mobility. With a server running on the phone, it would be possible to use any Internet-enabled device to address your phone. For example, when you are sitting at a PC why not use it to edit and view your contact information? After all, it has a bigger screen and a full sized keyboard. All you would need to do is build a mini web application to do this and have it running on your phone. At the moment you can do this using PC Suite of course, but this is limited to your own PC and it is difficult to extend the functionality.
It is worth pointing out that much of the above is ‘blue sky thinking’; a web server running on your phone may not be the best solution for some of the areas outlined above, but there is undoubted potential. It is an area I will be watching with great interest over the next few years.
Rafe Blandford, 18 June 2007