0

我正在开发一个服务器-客户端应用程序。这是一项应该被成千上万的用户使用的服务,因此它应该可以很好地扩展。服务器端是在 Spring + JPA(Hibernate) 中完成的,它提供了大约 80 个 API 方法。将有多个客户端——GWT webapp、移动设备客户端(iOS、Android、Windows)+一个简单的桌面客户端(Eclipse RCP/待定)。

我正在考虑连接到服务器端的各种方法。我的想法是(也许还有其他更好的方法):

  1. 使用 SOAP Webservices 向所有客户端公开服务器 API
    • SOAP WS 被认为很慢,我不知道它可以处理所有的通信
    • Android 不正式支持 SOAP WS(但有一些 3rd 方库)
  2. 使用 RESTfull WS 处理通信
    • 性能优于 SOAP
    • 所有移动设备上的官方支持
    • 可能难以从非 Web 桌面客户端访问 RESTfull WS
  3. 将 REST WS 用于移动设备,将 GWT 请求工厂用于 webapp
    • Request Factory 是与 GWT 客户端通信的推荐方式(至少它是在 2009 Google I/O 上)。我想它应该比 Web 服务执行得更好?

哪种解决方案(上面列出或没有列出)性能最好并且对开发人员来说最有效率?

如果您从事过类似的项目,我很想知道您的意见:)

4

2 回答 2

2

我会投票支持在后端使用 RESTful 服务,并从您选择的前端与之交互。

这为您在服务多个客户方面提供了最大的灵活性。例如,您可以终止前端技术而无需删除任何服务器端代码,或者您可以引入新的前端而无需更改任何后端。

如果您避免尝试同时支持移动端的 REST WS 和 webapp 的 GWT 支持的服务器端类(例如 GWT-RPC),您将获得以下优势:

  • 单后端开发测试:不要小看这个!
  • 易于监控网络流量以调试任一端实际发送的内容。GWT 网络流量并不那么容易调试,我将在任何一天通过 GWT-RPC 使用 JSON。

不必担心一种技术或另一种技术无法使用您的服务:REST WS 变得如此流行,以至于有多种方法可以从任何前端使用这些服务。例如,GWT 应用程序可以使用 GWT 覆盖将 JSON 响应映射到 GWT/Java 对象,桌面客户端可以使用Apache HTTP Client

于 2012-10-31T21:36:30.937 回答
0

如果你的 web 服务是 RESTful 的,我会推荐你​​ RestyGWT

我很久以前用过它,效果很好。

于 2012-10-31T19:27:44.077 回答