Because we can – part I – the really mobile web

This is the first in a series of posts all about the amazing things you can do with Symbian devices. Among the major mobile device platforms, Symbian has a strong claim to being the most accessible in terms of functionality. It has also been the platform that device manufacturers have used to deliver some of the most feature-packed hardware. In turn, that has led to lots of curious and enthusiastic people pushing the boundaries of what mobiles can do. In many such cases, commercial or practical considerations are not at the top of a developer’s agenda, we’re just doing it because it’s cool, and because we can!

It seems almost everyone is talking about the “mobile web” these days, whether they’re optimising existing web content for mobile devices, or building cutting edge web applications (or widgets as we tend to call them). However, for almost 2 years now, some smart folks at Nokia have pushed the frontiers of the mobile web a step further by providing a mobile web server. The project, called PAMP (Personal Apache MySQL and PHP), is also open source in case you want to play with the code. At its core this project is a port of the LAMP stack, which powers about 40% of the world’s websites, to the Symbian platform and there is a great interview with the project lead describing the challenges involved and potential uses. It’s not anywhere near as difficult as you might think, since there has been ever increasing support for a Linux-like programming environment on Symbian in recent years.

Now you may well ask, “Why on earth would I want a web server on my phone?”. If you’re thinking of launching the next big online retailer then you almost certainly don’t want it on a mobile. In fact, standard web sites don’t make much sense at all on mobile devices unless you live in a country where PCs and fixed line internet aren’t available. However, what we’re really talking about here is HTTP access to a phone, and if you extend the standard web server stack slightly to include access to various phone features then all sorts of things become possible. First there’s context; you could let people access your location as you roamed around with your web server in your pocket long before Google Latitude came along. Also, this form of sharing needs no central service and leaves you in complete control of who accesses your information, with no concerns about location privacy. Similarly, since you can access features like calendar, messaging, call log, contacts and gallery via REST APIs it is possible to build mobile applications, or widgets that talk to the server. One such application that was created slightly ahead of its time was a group calendar widget, much like the O2 Joggler, only without the need for a separate device.

You can develop your own custom extensions to the mobile web server in Python. Another interesting possibility that this easily enables is setting up a remote surveillance camera (or just a webcam) instantly anywhere. I’ll leave your imaginations to mull over the endless possibilities of remote access to thousands or even millions of powerful mobile computers equipped with advanced sensor devices…

11 Comments

  1. David Durant
    Posted August 7, 2009 at 4:33 PM | Permalink

    Personally I’d far rather my data was in “the cloud” and my mobile could access than have to try grab it off my mobile via a slow connection.

    That said – what would be really nice would be have Opera Unite working inside Opera Mini on Symbian.

    Of course just a better mobile browser should be the main development target (HTML 5 support please!).

  2. Posted August 7, 2009 at 7:13 PM | Permalink

    Great! Now this is the kind of information that I like, and I’m not even a developer.

    I use the Nokia MWS application to host my personal website and have been doing so for over a year now. This. Is. Cool.

    Yes, its slower than having a largers sever farm play with things for you. But “you” own your data, and “you” manage who connects to it. So many people choose laziness over ownership today, this is a way to get it back, and have something cool in the process.

    I’d love to see what others are doing with the MWS. Personally, I’ve got a new theme on mine that I’m tweaking to make available to others. But seeing things like new applications (an RSS reader), or enhancements to the existing base applications would just be cool.

  3. Posted August 7, 2009 at 7:37 PM | Permalink

    By the way, the MWS stands up to high traffic pretty well. I hosted the 182nd Carnival of the Mobilists and the server fell only once (in the early AM). This is really a good idea for mobile-next.

  4. Mark Wilcox
    Posted August 7, 2009 at 7:51 PM | Permalink

    Hi David,

    It doesn’t have to be an either/or thing. For example, there’s a Facebook plug-in that automatically updates your status by grabbing some data off of your phone while it runs the mobile web server – no need to update it manually.

    The problem some people have with entrusting all their data to “the cloud” is privacy. Understandably, some don’t trust the likes of Google to look after all of their data and not exploit it in any way. As far as I can tell, Opera Unite another solution to that exact same problem with a very similar concept but a more polished, web 2.0 style implementation. I expect you’ll get that option too in due course.

    Your employer has already released a new version of the browser for S60 5th Edition and selected 3rd Edition FP2 phones which uses WebKit 525 – I beleive that supports some of HTML5 already. :)

    Mark

  5. mirror2image
    Posted August 8, 2009 at 8:08 AM | Permalink

    What I really would like to have is open source mobile mesh network, like in OLPC

  6. Stringer Bell
    Posted August 8, 2009 at 4:11 PM | Permalink

    This is ridiculous. None of the use cases require a full blown web server – just TCP/IP.
    If you are serving a web page, then what happens when you go on the underground? That’s not exactly having full control of who sees your data – imagine a secretary trying to manage your diary and not being able to check when you are out of signal.

    If personal web servers were all the rage, then we would be running them on our PCs.

    I agree that it is a good demo of how to port software targeted towards linux. And of course apache have modularised their sofware offering as a set of libraries and so things like XML parsers ported in the effort may be of use on other projects. But please – the use cases are tenuous at the moment.

  7. Mark Wilcox
    Posted August 8, 2009 at 4:39 PM | Permalink

    Did you miss this bit: “In many such cases, commercial or practical considerations are not at the top of a developer’s agenda, we’re just doing it because it’s cool, and because we can!”. :)

    Of course you can manage all of the use cases without a web server, the web server just makes it very easy to do a lot of them and also allows you to manage access control simply. If you’ve got a use case where you have to ensure 24/7 access to the server then it’s probably not a good solution. Then again, I can see people recycling old devices by turning them into portable web cams (plugged into a charger of course) in the future.

  8. Posted August 12, 2009 at 7:14 AM | Permalink

    I’ve played with this. There is definatley something cool waiting to be developed here. Maybe the next big thing.

  9. Posted August 21, 2009 at 8:51 AM | Permalink

    Yes. It is indeed a great idea to run a PAMP on a phone. Some of the prerequisites are

    1. Mobile phones becoming sufficiently powerful.
    2. Optimizations performed in PAMP to match the processing power requirements in mobiles.
    3. Optimizing the bandwidth requirements of data communications from the mobile.

  10. Salvador Almanza
    Posted September 7, 2009 at 7:33 PM | Permalink

    Hello,

    This may not be the proper blog to discuss this topic, but I read Mark’s paper about Symbian OS port and I decided to use this blog to post my question.

    I’m an embedded software engineer and I’m currently working in RTOS evaluation and device driver development. I want to try Symbian OS in an ARM evaluation board and do some driver development and test. However, I don’t know how feasible is doing the Symbian port to any evaluation board with ARM architecture processor or MCU and I would like to ask for opinions and directions.

    Thank you in advance and have a nice day.
    Salvador A.

  11. Mark Wilcox
    Posted September 14, 2009 at 8:25 AM | Permalink

    Hi Salvador, sorry for the delay getting back to you, I was on vacation.

    I’ll email you privately, however, in general the best place for this sort of question is our developer discussion boards.

    This forum in particular is ideal for this sort of question:
    http://developer.symbian.org/forum/forumdisplay.php?f=31