0

I'm developing a server-client application. It is a service that is supposed to be used by thousands of users so it should scale well. The server side is done in Spring + JPA(Hibernate) and it provides about 80 API methods. There will be multiple clients - GWT webapp, mobile devices clients (iOS, Android, Windows) + a simple desktop client (Eclipse RCP / To be decided).

I'm considering various ways to connect to the server side. My ideas are (maybe there are some other, better ways):

  1. Use SOAP Webservices to expose server API to all the clients
    • SOAP WS are considered to be slow and I don't know it can handle all the communication
    • Android doesn't officially support SOAP WS (bu there are some 3rd party libs)
  2. Use RESTfull WS to handle communication
    • better performance than SOAP
    • official support on all the mobile devices
    • may be difficult to access RESTfull WS from non-web, desktop client
  3. Use REST WS for mobile, GWT Request Factory for webapp
    • Request Factory is recommended way to communicate with GWT client (at least it was on 2009 Google I/O). I suppose it should perform better than Web Services?

Which solution (listed above or not) would perform best and be the most productive for developers?

If you've worked on a similar project, I'd love to know your opinion :)

4

2 に答える 2

2

バックエンドで RESTful サービスを使用し、選択したフロントエンドからそれと対話することに投票します。

これにより、複数のクライアントにサービスを提供するという点で最も柔軟性が高くなります。たとえば、サーバー側のコードを削除せずにフロント エンド テクノロジのサポートを終了したり、バック エンドを変更せずに新しいフロント エンドを導入したりできます。

モバイル用の REST WS と、Web アプリケーション用の GWT を利用したサーバー側クラス (GWT-RPC など) の両方をサポートしようとしない場合、次の利点があります。

  • 開発とテストのための単一のバックエンド: これを過小評価しないでください!
  • どちらかの端が実際に送信したものをデバッグするためのネットワーク トラフィックの監視の容易さ。GWT ネットワーク トラフィックのデバッグはそれほど簡単ではありません。私はいつでも JSON over GWT-RPC を使用します。

あるテクノロジや別のテクノロジがサービスを利用できないことを心配する必要はありません。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 に答える