2010-11-25 5 views
10

Googleにはモバイルアプリ用のデータを提供するサーバーアプリケーション(Javaで実装)があります。アプリはAndroidとiOS用に作成されます。AndroidとiOSで使用する最も優れたサーバークライアント通信プロトコルは何ですか?

この目的で最も優れたプロトコル/ライブラリはどれですか?プロトコルのオーバーヘッドはできるだけ小さくする必要があります。

ありがとうございました。

編集:リクエスト - >応答szenarioでなければなりません。失われたデータは受け入れられません。答えには、長いデータリストが含まれていて、オーバーヘッドが少なくて済みます。

クライアントは、データ(指定されたキーといくつかの定義済みのパラメータ)を要求する必要があります。 "拡張子yのフォルダxからすべてのファイルを私に渡してください"。サーバーはリストに応答します。

最初のアイデアはXMLRPCを使用していましたが、生成された応答が大きすぎます。

+1

何のために最適ですか?データの各ビットを配信する必要がありますか、データを失われていませんか(例:VoIP)。完全性と機密性の保証が必要ですか?小さな待ち時間が必要ですか?変数が多すぎるIMO。 – Piskvor

+0

また、何を転送していますか? 5つのメッセージタイプがありますか? 10? 50?メッセージは単純か複雑か? –

+1

@Omry&@piskvorを使って効率的にストリーミングしたり、100%のストリーミングがあってもHTTP以外のものを選ぶのが早すぎる場合は時期尚早の最適化です。特にそれが要求/応答パターンのように曖昧に見える場合は – tobyodavies

答えて

13

ほとんどのアプリケーションでは、HTTP(S)が使用するのに最適なプロトコルです。オーバーヘッド(つまりヘッダー)はかなり小さく、転送はgzipできます。接続はSSLで保護できます。また、ポート80(HTTP)とポート443(HTTPS)は99%のケースで開かれます。他のポートはありません。たとえば、余分な費用を支払わない限り、他のすべてのポートをブロックするキャリアもあります。実装用として


、私はJSON形式を使用してRESTful web serviceを示唆しています。 JSONは標準化されており、オーバーヘッドが少なく、あらゆる言語での作業に適したライブラリがあります(org.json、Androidにバンドルされていますが、他のアプリケーションでもスタンドアロンとしてdownloaded)。あまりにも、この質問をチェックアウト:

+0

に向かっていますが、私はHTTPが選択のプロトコルだと思います。依然として必要なのは、すぐに使えるライブラリの推奨事項であり、これは推奨可能であり、依然として要件を満たしています。 – gamma

+1

"フォーマットに関しては、RESTのようなAPIでJSONをお勧めします。" それは私だけですか、この文は本当にナンセンスですか? – Serguei

+0

@Serguei RESTは、リソースが配置されアクセスされる方法(HTTP GET/POST/PUT/DELETEを使用し、各リソースにURL(Unique Resource Locator)を与える方法)を指します。 JSONは、リソースを記述するために使用される実際の形式を指します。 [ここ](http://en.wikipedia.org/wiki/Representational_State_Transfer#RESTful_web_services)を参照してください。そうではありません、ナンセンスではありません。 – Felix

3

使用ジャクソンパーサまたはその代わりにJSONパーサのGsonパーサ。

1. JacksonはJSONより2倍高速で、複雑で非常に大きなJSONを解析するのに適しています。

2. Gsonは、JSONよりも競争力があります。

0

私の意見では、ドキュメント指向の構造に基づいたREST/SOAP Webサービスを使用する必要があります。これはLargeレスポンスで役立ちます。

この目的のためにApache SOLRを整数で表すこともできます。これは、大規模データセットのインデックス作成に使用され、さらに高速であり、RESTも有効です。SOLRコアのデータをインデックス化してから、 、Android、PHPなどのように、ドキュメントはすでに処理されており、クライアントに必要なフィルタやその他のものを追加するだけで済みます。

この問題について他のご支援が必要な場合はお知らせください。

関連する問題