Because we can: MySQL talks with Johan Wikman, Father of MySQL on Symbian/S60. (part 3 of 3)
By Henrik Ingo on Oct 29, 2008
Q: So what are some applications or prototypes you are actually working on? Which do you see as the most interesting ones? Can I do something useful with this today already?
In general, what I find most interesting are the use-cases that utilize the aspects that make a web-server on a mobile personal device unique. Use-cases that take advantage of the fact that the context - location, surrounding devices and people, etc. - constantly changes, and the fact that the web-site "administrator" is always there.
And I get all worked up when I think on the implications - even if I obviously don't know what they all might be - if all mobile phones were equipped with a globally accessible web-server (I ignore all technical challenges). For instance, we already have an implementation of "linking by proximity". That is, having reached one mobile web server, you can reach other mobile web servers in the proximity of the first. The servers are related because they happen to be in the same place. A completely new way for linking sites, which I think is very cool, but it does not work before the likelyhood that two mobile web servers accidentally are in the proximity of each other is significantly greater than zero:)
I am also really excited about the idea of building social networks - similar to Facebook, for instance - without any kind of centralized server. The devices just talk to each other directly and events and notifications are routed following the social network. That is, they reach people important to you, before they reach people you saw last time in school 25 years ago. But it's a long way before anything like that can be realized.
Q: You make a strong case, I have to admit!
And yes, you can already do useful things with this:) Just install the version available from Nokia Beta Labs and you'll get some ready-to-use web-applications.
Q: Thinking "outside the box", there are of course some use cases where you discard the traditional notion of a phone, where this could be interesting. For instance, with this software you could just leave your phone at some place, your summer cottage in Nagu for instance, go home and point your browser to that phone, and you have an instant surveillance camera! Is there any research in this direction, or are you really working mostly on the assumption that people want to have a web server in their pocket?
If you by "web server" think of, say, Amazon, then no, that's not what you want to have in your pocket. In fact, in the beginning we actually stopped talking for a while about "web server on your mobile" because far too many made that Amazon association, and talked about "HTTP access to your mobile phone from the Internet" instead. Same thing, but the latter does not give the same associations as the former:)
A good litmus test for the feasibility of running a particular web application or service on your mobile is "so why don't you upload the data to a regular server and share it from there"? If you don't have a good answer to that question, then perhaps you should not try hosting it on your mobile.
Your instant surveillance camera case above is one that would be hard to replicate using a regular server. With the mobile web server it's trivial to do that; it's just a few lines of Python or PHP code. And it actually illustrates one of the interesting aspects of having a website on a mobile device - the web server moves, and hence the content it returns may depend on the location and other context of the device. But this is a little contrived usecase - how often do you really need a surveillance camera and when you do, would you want to leave your mobile behind:) Incidentally, this exists already, so all you need to get this functionality is to install the system on your mobile.
Q: So you proved that a) it has already been done and b) still it's maybe not useful... perhaps I need to come up with a better idea :-)
A more interesting alternative is to involve the phone owner in the scenario. You know your spouse is in Paris and you wonder what she is up to, so you browse to her mobile site, click on a link that causes the phone to beep and display a message "Henrik would like to know what you are up to!" at which point she takes a picture. The page you get contains a map with her location, the image she just took and perhaps clickable icons representing other mobile web sites in her proximity.
There are a couple of interesting points in this scenario; part of the content was generated interactively, it was generated on demand, and the content did not exist before it was asked for and will not continue to exist after it has been returned. Further, it illustrates the personal touch of it all. The whole scenario doesn't really make sense unless the one browsing knows the owner of the mobile web server.
This last point is quite relevant really, because it means that scenarios that on first thought might not make sense, actually may do. For instance, one obvious web application is a dynamic gallery of the images you have on the phone. A counter argument for that idea is: "why don't you simply upload the images to some image-sharing site. The mobile will never be able to handle the load". Well, that's very true, if the intention is to share the images with the world. However, what if the only one consuming those images is your spouse for whom you take pictures when you are on your businesstrip? In this case the load is not a problem and you do not need to create an account on any 3rd-party site, thus leaving the images firmly in your control.
And you should not make the mistake of assuming that having a web-server on a mobile necessarily means that it must expose a "regular" web-site. For instance, it would be trivial to provide SMS and MMS kind of functionality using a mobile web server, in which case the functionality would also become a seamless part of the web.
Further, the situation is not either/or as you could easily utilize the mobile web server for providing real-time data that is mashed up with other data on a regular site. An example of this is the Facebook integration we have made. Using data fetched from the mobile, we can display in Facebook a map-view that shows your current location. And from within Facebook you can type a message that is delivered directly to the inbox of your mobile. That is, you can be present on the social network without actually being logged on.
And now I've only covered the what happens when you put a web-server on a personal mobile device. The way you use a mobile phone also changes once there is http access to it. For instance, it is trivial to create a web-interface to all core applications of the phone, so that whenever you are next to a PC - any PC, not just your own - you can use the big screen and proper keyboard of the PC for reading and sending SMSs, managing your contacts, interacting with the calendar, etc.
Q: You know I'm a big fan of using real keyboards! In fact this was my first thought on how to use this.
And with the added bonus of being able to do that from the office when you have forgotten your phone at home. Not for making phone calls obviously, but you will be aware if someone tries to call you and be able to send him or her an SMS telling on which number you can be reached.
Q: Amazing, hadn't thought of it that way. Since I work from a home office I guess it is unlikely to happen to me, but in my previous career I did feel really lost when I had forgotten my phone at home.
Q: Is there some other question I should have asked but didn't?
Q: Where can I download this thing?
The consumer oriented version - MWS - is available at http://mymobilesite.net. The entrypoint for our experimental PAMP stack that then provides you with PHP and MySQL is http://wiki.opensource.nokia.com/projects/PAMP. PAMP can be used stand-alone or be installed on top of MWS.
Q: It was also a surprise to hear that suddenly the whole Symbian platform is going to be Open Source. What do you think this tells us about where the world is going and where the telecom world is going? Or even just where Nokia is going?
I can't speak for Nokia, but in my opinion it tells that there in general are fewer and fewer reasons for keeping code closed, if there ever were any good ones.
Open sourcing something is surely no guarantee that a vibrant development community will appear, but not doing it is a sure guarantee that it will not happen.
One thing that open sourcing always brings is ease of communication. It is so much easier to communicate and share ideas etc. if you don't have to think about NDAs and the like, but can in all fora speak openly about issues related to the code.
The open sourcing of Symbian touches my work rather closely actually. Since I have been working with open source software, I have paid great care to only use public Symbian/S60 information. For instance, I only use the public SDKs and never internal ones where I would have had access to all the source. This in order reduce the risk that Nokia or Symbian IPR would "leak" via me into the open source. Obviously this has caused problems at times when something have not worked and a peek at the source immediately would have revealed the problem. Now that issue is about to disappear.
Q: I hear you there! When I was working on S60 projects myself, it was
the first time I really understood the value of having source code available. It is not that you'd want to touch the source code - mostly you don't, but you often do want to read it! (Especially with the S60 documentation we had few years back :-)
Exactly, without the source it might takes days or weeks to figure out the cause of a problem and the workaround for it, with the source at hand it might take 15 minutes.
Q: Final question: As most employees of Nokia Research Center I see you have patents or patent applications pending. What would be your opinion on software patents? And is there a way to answer this question that will satisfy both yourself, your employer and the MySQL community?
First, I must stress that I am not a lawyer, that I really don't know too much about software patents and patents in general, and that I here especially speak for myself.
In my opinion, a large number of software patents are bogus, in the sense that they describe a solution that any engineer, when given the same problem, would come up with. In other words, the novelty and the non-obviousness that should be there, is not there.
Furthermore, often software patents seem to be the patenting of an idea. That is, there is not really any significant investment behind it. If you invest a great deal into the research of something and come up with a novel result, then I think it is right that you can protect that result so that somebody else simply can't go ahead and use the result for reaping the harvest of your investment. But if it's just a bright idea that anyone could have had, then the protection in terms of a patent should not be there. In any case, given the pace of the software industry, at least the lifetime of a software patents should be significantly shortened.
Generally speaking I don't think software patents work and that it would be in the interest of everyone if they simply were abandoned. However, from a practical perspective software patents are a fact of life and there are patent sharks and others out there that are more than willing to go after companies who don't play the patent game. So until the global rules are changed, unilateral disarmament would not be without significant risk.
Q: Johan, thanks for a very interesting chat on an interesting technical topic!
Thank you Henrik for interesting questions!