-
Where am I - positioning for mobile applications
Posted on November 4th, 2008 1 commentI am currently working on Location Based Services (LBS) and have spent some time trying to get decent positioning for my mobile phone application. Since GPS tends to fail indoors (where most users are most of the time) and is really too slow, some other ways of positioning are needed. There is plenty of research on GSM and UMTS positioning concepts - a good overview are the slides of Shu Wang et al. - but the question remains: Which LoCation Services (LCS) are available for application developers right now?
Until the mobile network operators make available network-based positioning techniques, only mobile-based and mobile-assisted positioning methods are available. Proximity sensing is a common technology for locating mobile devices. Mobile phones can use radio beacons like GSM cells and WLANs. Cellids and BSSIDs are unique identifiers which can be mapped to spatial positions.
The market for LBS is huge with new players showing up daily. Several companies provide commercial LCS to support this development, e.g. Navizon, or Skyhook Wireless, who are also the location service behind Apple’s iPhone, loki.com and the Firefox project Geode. Both use central databases, mapping cellids and WLAN BSSIDs, and proprietary client software on the mobile device. Especially Skyhook Wireless seems to provide great coverage and accuracy, but developers need to license and integrate their black-box software.
Yahoo’s take on LBS is called Fire Eagle and is centered on Yahoo’s users. Software using the API can update or query the location of a single user, but this is not of much help if you want to develop applications for a more general audience.
If you don’t need street-level accuracy and want to stay in control of your client software on the mobile device, cellid-based positioning with a web service is a good choice. Opencellid.org provides an open database for mapping cellids and a well documented API, a good introduction and tutorial can be found on mobiforge.
Placelab.org is an older research project, based on Jeffrey Hightower’s Location Stack, and sponsored by intel, which offers GPL software and various ways of interoperability. Their open beacon database is continued on wigle.net.
Another web service for mapping cell ids is the (hidden) Google API, which is used by the Google Maps “My location” feature. The accuracy is sufficient for neighbourhood level and integration into own applications is straight-forward. Code examples can be found here and here.
Some clever people have also found out how to use the skyhook API without their software, you can find some code here.
-
Accada is now Fosstrak
Posted on August 14th, 2008 No commentsThe Accada plateform is now Fosstrak. The name of this prototyping platform implementing a number of the EPC (Electronic Product Code) standards has been changed after a trademark dispute.
Fosstrak is a very valuable tool for the research community working on the Internet of Things since it is the first and only attempt to provide an open-source implementation of the standardized Internet of Things known as the EPC network.
-
IPhone, Android and Symbian: Which one shall we embrace?
Posted on July 18th, 2008 No commentsThere used to be a time when mobile developers could pick between Java Mobile and … Java Mobile. Then the Symbian development was opened to the community outside Nokia employees.
Lately the iPhone and its (not tremendously open, to say it in a nice way) SDK came into the picture. I the mean time the Open Set Alliance (pushed by Google and others, but by Google mainly ;-)) joined the trend and announced Android.
For developers this means a lot more choice. Freedom has its limits and whenever I need to decide on which platform to develop what prototype I end up flipping coins.
In http://radar.oreilly.com/2008/07/interest-in-the-iphone-android.html there is an interesting survey with some data about the actual choices of the majority.
To wrap up, Android used to win but since there are now phones on which the iPhone platform runs the trend is getting reversed and the iPhone platform is growing stronger. Guess what the trend is going to be when Android devices will be delivered…
As for Symbian it faces the natural decrease in interest that dominant companies face when real challengers are entering the scene.
What a joy to be a mobile developer lately
-
Deploying Java Mobile applications over bluetooth: invalid jar file error
Posted on April 30th, 2008 No commentsOne easy way to deploy a Java Mobile application on a mobile phone is to send it from your development machine to your phone as a bluetooth message.
To do this right click (on Windows) on the jar file of your application and do “send to” “bluetooth”. Now, do the same with the jad file. Eventually, simply open the attachement of the message on your mobile phone which is going to prompt you for installing the attached software.If you get an “invalid jar file error!” when trying to install the application it could well be because you sent just the jar file and not the jad. On the Nokia E61i with EPC RFID readers we are testing both the jar and the jad file need to be in the inbox (in separated or the same message) of your mobile phone in order to install the application.
-
Developing on the iPhone
Posted on March 10th, 2008 No commentsThings are moving lately on the iPhone plateform. First of all Apple eventually made their iPhone SDK (Software Development Kit) publicly available (http://developer.apple.com/iphone/program/). Then it was Sun’s turn to announce their work on a JVM for the iPhone, meaning Java apps will soon be able to run on the iPhone as well (http://www.infoworld.com/article/08/03/07/sun-iphone-java_1.html)
A load of good news! -
Making BPEL Pervasive Compliant
Posted on March 5th, 2008 No commentsIn their article “Extending BPEL for Interoperable Pervasive Computing” Hackmann, Gill and Roman present a quite nice extension of BPEL in order to make it pervasive compliant.
They propose to extend the language mainly by creating group of partners. Usually, partners (i.e. remote hosts or services in the BPEL language) cannot be expressed as groups but are rather single remote hosts, known at design-time, which are used to model the workflow.
By introducing the notion of groups and the fact that they can be bound to multiple incoming end points Hackmann et al. introduce the ability to decide on end-points at run-time rather than at design-time.
Furthermore, their extension supports multicasting (to groups) and allows for processes to receive an arbitrary number of messages over a group of partners. This latter extension simulates a publish-and-subscribe behaviour, somethings highly needed in pervasive applications but not yet available in WS-BPEL (1.1, apparently somewhat available in 2.0).More info on Sliver: http://mobilab.cse.wustl.edu/projects/sliver/
-
Obfuscation Level and Security Exceptions
Posted on February 13th, 2008 No commentsObfuscation of Java code is primarly meant to (automatically) modify the code at build time so that it becomes (very) unclear when un-compiled.
However, another side-effect of obfuscation is rather interesting: it diminishes the size of the application and thus the memory footprint of the app. This is rather interesting for the mobile platform where the consumption of memory is still an issue.
Eventually, a last side-effect of obfuscation is that it “fools” the security manager of some mobile phones. Thus, if you have some problems to sign you mobile application (or/and get Security Exception at install time), try first setting the obfuscation level to the maximum (in Netbeans 6.0: Project Properties->Build->Obfuscation level). This worked for me several times, don’t ask me why!
-
Cannot Create Class in System Package: Java Mobile
Posted on February 8th, 2008 No commentsThe exception:
cannot create class in system package
bugged me for a couple of hours today. Why talking about it here and not in my Logbook blog (http://blog.guinard.org/index.php?blog=2)? Well because this is a really mobile platform related exception!
In fact it appears whenever one is trying to access an optional feature of the Java Mobile platform. I.e. a feature which is not required by all the devices implementing the Java Mobile stack. In my case I was trying accessing a component of the Java contactless API (which is used for NFC readers on mobile phones) on the default emulator phone shipped with Netbeans 6.0, which does not offer NFC functionalities.
http://forum.java.sun.com/thread.jspa?threadID=634753&messageID=3764204
-
What is JSR 248?
Posted on February 6th, 2008 No commentsThe JSR 248 is a mobile service architecture specification which aims at defining the next steps in the evolution of the Java platform for mobile CLDC (Connected Limited Devices Configuration) devices.
It basically selects a number of OPTIONAL standards (JSRs) that might be embedded on the mobile CLDC devices from now on. -
Impact of RF Exposure on Children?
Posted on January 21st, 2008 No commentsVery few studies exist on the impact of RF (Radio Frequency) energy on the body in the long-term. We tested the direct impact of RF on humans quite a lot but what about its impact in the long run. Children are more and more exposed to these technologies. Today’s children come in to a world surrounded by RF fields (WiFi, Cellphones, RFID readers, etc.), thus it is of the principal importance for independant researchers to address this question and come up with reliable studies:

