私はAndroid用のアプリを作成します。これは、Androidデバイスにあるデータベースを外部データベースと同期します。要するに、Androidはいくつかのデータを生成し、それを独自のデータベースに保存します。Androidは、このデータをインターネット経由でHTTPサーバーに送信することがあります。このデータをXMLまたはJSONで送信する方がよいのではないかと思います。JSONはXMLよりもはるかに軽いことを知っていますが、XMLはJSONに何らかの利点がありますか?データベースを同期するのに良いことは何ですか?
4 に答える
私はjsonと言います....jsonはより軽量であり、探しているのが単にデータを渡すことである場合、jsonはより速く、より簡単な方法です。私はしばらくの間jsonとxmlの両方を使用していますが、XMLが「見栄え」が良いことを除いて、jsonよりもxmlを好む理由はまだ見つかりませんでした...
とにかく、既存の解析およびエンコードツール(JAXBなど)を使用している場合、jsonからxmlへの移行には2〜3行のコードが必要です。また、別のコードに切り替えることもできます...
これがシングルユーザーアプリケーションなのかマルチユーザーアプリケーションなのかについては、まだ述べていません。分散データの同期は、解決するのが簡単な問題ではありません。
これがシングルユーザーソリューションの場合、データベースがレプリケーションをサポートしているかどうかを調査します。データセットが小さい場合は、データベースのダンプファイルを投稿することも検討します。どちらのソリューションも、XML/JSONとの間でデータをシリアル化することによるパフォーマンスのオーバーヘッドを回避します。また、データベースタイプのサポートの煩わしさを回避します。
最後に、「レフトフィールド」ソリューションの場合、データをcouchdbに保存することを検討してみませんか?クライアントサーバーレプリケーションが組み込まれています。
- Android-Couchdb
- pouchdbと呼ばれる新しいjavascriptクライアントがあり、評価する価値があります。
JSONはXMLよりもはるかに軽量であり、私の意見では扱いやすい形式であるため、JSONをお勧めします。どちらかが仕事を成し遂げます。考慮すべき他のことは、データを傍受するためにHTTPサーバーで使用しているサービスです。あなたはあなた自身を書いていますか?あるフォーマットで他のフォーマットよりもうまく機能する可能性のある既存のフォーマットを使用しますか?
また、リモートデータベースに直接接続せず、そのように更新する理由はありますか?常に実行すると、アプリの速度が低下し、大量のデータ使用量が発生する可能性があることはわかっていますが、計画しているように控えめに実行するだけであれば、それほど大きな問題にはなりません。
非常に大きなデータセットでは、開始タグと終了タグが必要なため、XMLは少し重くなります。タグ間のデータがどれだけ大きいかという問題もあります。タグの開始と終了の間に大量のデータがある場合、これにより効果が「緩和」されます。大量のデータを処理していない場合は、クライアントとサーバーの両方でネイティブライブラリのサポートが優れている方を使用します。中小規模のデータセットの場合、違いはあまり目立たないと思います。