移动应用程序的最佳远程技术是什么?

3
我有一个Java后端需要向以下环境中的客户端公开服务:
- J2ME - Windows Mobile - iPhone 我正在寻找每个平台的最佳工具。我不在寻找适用于所有地方的技术。我需要一些“轻量级”的东西,适用于低速互联网访问。
目前我正在使用SOAP。它冗长且在移动设备上不易解析。问题在于我没有看到任何真正的替代方案。
是否有一种格式可以在这些平台之一上“开箱即用”?我宁愿不使用庞大的库,因为这会极大地增加应用程序的下载时间。
似乎每个人都同意JSON。是否有人已经基于JSON实现了运行于Objective-C、J2ME、Windows Mobile的解决方案?
注:到目前为止,最好的解决方案似乎是Hessian。它在Windows Mobile和Objective-C/iPhone上运作良好。问题在于J2ME。Hessian的J2ME实现有严重的限制。它不支持复杂对象。我已经写了另一个问题来询问此事。
如果您有任何想法,非常欢迎。
5个回答

9

JSON是相当紧凑的,大多数框架都支持它。您可以使用标准REST技术通过HTTP传输数据。

JavaObjective C许多其他语言(向下滚动)的JSON库。由于JSON用于Web应用程序,因此在服务器端应该没有找到框架支持的问题。

旧的替代方案包括纯XML和XML-RPC(类似于SOAP,但更简单,并且有大多数语言的库)。


嗯...有没有一种简单的方法可以在J2ME/WindowsMobile/Cocoa中解析JSON? - Alexandre Victoor
Java和Object C版本将在J2ME和Cocoa上运行。您在Windows Mobile中使用哪种语言?在JSON网站上有半打基于C ++的框架,列在页面底部。 - emk

5

Hessian. http://hessian.caucho.com。它是一种超轻量级的多语言实现方式,包括ObjC。对于将数据从线路转换为对象模型无需依赖于dom/xml解析器。我们发现Hessian后,就忘了XML曾经存在过。


我同意Hessian是一个很棒的产品。但它真的适用于这里吗?你在J2ME环境中尝试过Hessian吗?iPhone或Windows Mobile呢? - Alexandre Victoor
谢谢您的回复。我刚刚看到在ObjectiveC中有iPhone的实现,并且在Hessian在线文档中提到了j2me。 - Alexandre Victoor

2

REST + XML或JSON是一个不错的替代方案。在RIA领域,它正在取得重大进展,其美妙之处在于其简单性。使用起来非常容易,无需任何特殊工具。SOAP也有其优点,但在需要强大工具支持的环境中才能发挥最佳作用。从你的问题中我猜想这并不是你的情况。


2
支持 JSON。我将 Stringtree JSON 解析器移植到了 J2ME 平台。它是一个单一的类,解析 JSON 数据生成的类文件大小只有 5KB,并且可以直接将 JSON 结构映射成 CLDC 类型,如 Hashtable 和 Vector。现在,我可以在我的桌面浏览器 AJAX 前端和 J2ME 客户端上使用相同的服务器了。

1

XML(有点不幸的是,被称为POX)怎么样?

另一个非常有用的选项是JSON。每种编程语言都有相应的库。

可能,由于您在计算和网络资源方面受到限制,并且使用静态类型语言,Google的协议缓冲区对您来说更可取。(只需忽略其中的RPC crud;RPC是一种有吸引力的诱因,而不是一种有用的技术。)

你问题的问题在于你没有提供关于这种数据和你的用例的整体背景,所以很难除了非常模糊的概括之外说出什么。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接