Running servers on cell phones
When I was in India, I was surprised at the number of services available on cell phones through text messaging. Say you want to know the latest cricket score, you send a text message to a special number (with a special message - like a command) and you receive back the information you wanted. Surprisingly such services are not that prevalent here in US.
For all these services, the phone acts like a client. It is the one that initiates the conversation. I was wondering if we could provide capability to run server functions in the mobile phone. On doing a google search, I did find a research project in nokia and they were successful in running a full apache web server on a mobile phone. I guess there should be some problem dealing with the heavy weight bulk transports like TCP in low bandwidth cellular networks. Also marrying the IP network with cellular is not easy; simple issue like addressing is different.
What I would like a first step, is support to run light weight servers. Something like the telnet port 13 time service you find on a unix machine. Any other phone should be able to query my phone for specific information. And initially there is no need to merge the internet world with mobile - so no need to expect direct IP connectivity from a normal computer. Of course once the system matures, it it is desirable to have it interoperable with the traditional IP network; so queries can come from normal computers.
A simple application is querying a phone for its status. Like the topic of my prior post, a caller can query a phone to know if it okay to initiate a call. This is very much like the status message you find in IMs like yahoo messenger. If you see 'I'm busy' you think twice before you send an instant message. Another possibility is querying a phone for its geographical location. A built-in GPS can serve that data. In future, there could be a lot of other data (images, video) that could be served out.
Of course all these servers running on your phone will have necessary authentication to ensure privacy. You share information only with those whom you want to.