What are the best remoting technologies for mobile applications?


What are the best remoting technologies for mobile applications?



I have a java back-end that needs to expose services to clients running in the following environments :

  • J2ME
  • Windows Mobile
  • iPhone

I am looking for the best tool for each platform.
I do not search a technology that works everywhere.
I need something "light" adapted to low speed internet access.

Right now I am using SOAP. It is verbose and not easy to parse on the mobile. The problem is that I have not seen any real alternative.

Is there a format that works "out of the box" with one of these platforms ?
I would rather not use a bloated library that will increase tremendously the download time of the application.

Everybody seems to agree on JSON. Does anyone has implemented a solution based on JSON running with Objective-C, J2ME, Windows Mobile ?

Note : so far the best solution seems to be Hessian. It works well on Windows Mobile and Objective-C/iPhone . The big problem is J2ME. The J2ME implementation of Hessian has serious limitations. It does not support complex objects. I had written another question about it.

If you have any ideas, there are very welcome.




How to intercept text from the keyboard and format it before it show in the cell?

1:



Getting an iPhone app's product name at runtime?
Hessian.


declaring global variables in iPhone project
http://hessian.caucho.com.


Where's the difference between setObject:forKey: and setValue:forKey: in NSMutableDictionary?
Implementations in multiple languages (including ObjC), super light weight, and doesn't require reliance on dom/xml parsers for translation from wire to object models.


Why is my UIImageView blurred?
Once we found Hessian, we forgot we ever knew XML..
SHowing Activity Indicator View Using Thread Shows This Error in gdb?


Unable to push notifications to iPhone in .NET - .PEM certificate problem?


What's the difference between using obj-c accessors and using dot syntax?

2:


JSON is fairly compact, and supported by most frameworks.

You can transfer data over HTTP using standard REST techniques.. There are JSON libraries for Java, Objective C, and many other languages (scroll down).

You should have no problem finding framework support on the server side, because JSON is used for web applications.. Older alternatives include plain XML and XML-RPC (like SOAP, but much simpler, and with libraries for most languages)..


3:


REST + XML or JSON would be a good alternative.

It is making big strides in the RIA world and the beauty of it is in it's simplicity.

It is very easy to use without needing any special tooling.

SOAP has it's strong points, but it works best in an environment with strong tooling support for it.

I'm guessing from your question that's not the case..


4:


Seconding JSON.

I ported the Stringtree JSON reader to J2ME.

It's a single class JSON reader that compiles into a 5KB class file, and directly maps the JSON structure into native CLDC types like Hashtable and Vector.

Now I can use the same server for both my desktop browser AJAX frontend and my J2ME client..


5:


How about plain old XML (somewhat unfortunately referred to as POX)?. Another very useful option would be JSON.

There are libraries for every single programming language out there.. Possibly, since you are working in an environment that is constrained in terms of both computing and networking resources, and with a statically typed language, Google’s protocol buffers would be preferrable for you.

(Just disregard the RPC crud in there; RPC is an attractive nuisance, not a useful technology.). The problem with your question is that you haven’t provided a whole lot of context about what kind of data this is and what your use cases are, so it’s hard to speak in anything but very vague generalities..



72 out of 100 based on 17 user ratings 692 reviews