tamberg's Blog

2011-10-12 by tamberg

Pre RHoK #4 Braindump

Today techup.ch, my favorite meetup portal, announced the Swiss RHoK #4 which will be held on Dec. 3rd and 4th in Zürich. From browsing the RHoK problem list it seems that at least two problem solutions require sending or receiving text messages from a Web server. One application provides local bus information to passengers in Bangalore, a second would enable the self-reading of water meters in Nairobi.

There are existing commercial SMS services providing convenient and flexible Web APIs at an affordable price, but it's not clear if they serve the above regions. And in any case, it would be even better to get the same flexibility in a vendor independent way, thus maximizing ownership and self-determination. I am quite sure that such a system can be implemented with existing open source software and readily available hardware components, and still be operated at low cost.

Given the task to provide a Web API for sending and receiving SMS, the basic idea would be to take a smartphone, insert a local SIM card, and run a small Web server on it that provides the API using open standards. This approach decouples the Web application from the SMS service. Web application developers will be more familiar with sending a simple HTTP request containing JSON than talking to a smartphone via USB in a proprietary protocol. But now there is a new challenge: In order to be accessible from the outside, the smartphone needs a well-known, static IP address. And if the traffic amounts to more than a few messages, a single smartphone might not be enough.

Enter Yaler, the project we've been working on for quite some time now. Many of the demos I'm doing involve Yaler, and one might argue that my proposal is driven by the urge to use this technology, but I try to make sure to only use it if there is a real advantage to the project. Through Yaler, the SMS Web service is accessible on the smartphone itself, without additional server software, except for the Yaler code which can be hosted almost everywhere, as it only requires Java. Further – because the SMS service is stateless – multiple smartphones could be pooled together under a single service URL. And because the solution is based on open standards, there is no limitation on which phone OS could be used to implement an SMS Web service provider, so even smartphones declared to be "out of fashion" and destined for the landfill could still serve a honorable purpose. What do you think, could that work?