2

しばらくの間、Spring、Hibernate、および RDBMS を使用して Java バックエンドを構築しています。また、定期的に iOS および Android 用のモバイル アプリケーションに取り組んでいます。

したがって、このタスクに使用するテクノロジーの完全なスタックがありますが、要件により適した、より高度なものを探しています。私はそれについていくつか考えていましたが、まず現在のシステムがどのように機能するかを説明し、次に将来のシステムをどのようにしたいかを説明した方がよいでしょう。

現在使用中

  • すべてをつなぐSpring Framework
  • 永続性のためにエンティティ Bean で休止状態にする
  • MySQL または RDBMS としてのその他
  • Dozer で作成された DTO オブジェクト
  • サービスを公開するための RESTful API
  • DTO は JSON 形式で転送されます

このセットアップは機能します。しかし、それはあまりにも多くの仕事であり、他のテクノロジーを使えばもっと簡単に生活できるのではないかと感じています.

私が探しているもの

モバイル サイトでは、簡単にキャッシュできる現在の画面のデータを受け取りたいと考えています。JSON は既にシリアル化されているものであり、別のデータベースを使用しなくても、モバイル アプリケーションのディスクに簡単に保存できます。問題は、エンティティ Bean、DTO、Dozer を使用してデータを変換せずに、データをバックエンドに保存して、より簡単に受信できるようにするにはどうすればよいかということです。すでに JSON を提供している別のデータベース ソリューションはありませんか? たとえば、OrientDB や Neo4J などのグラフ データベースはどうでしょうか。

私は間違いなく Java と Spring を使いたいと思っています。また、Hibernate、RDBMS、エンティティ Bean、および DTO の代替品を受け入れる用意があります。

あなたの答えを楽しみにしています!

4

3 に答える 3

3
  1. あなたの現在の設計 (このセットアップは機能します) には、優れたシステムに必要な機能があります。階層化された適切な関心事の分離
  2. あなたの要件を正しく理解していれば、私の最終データ形式が JSON の場合、データを JSON 形式で保存して、中間層で多くの配管コード/労力を取り除くのはなぜですか。
  3. これにより、ストレージからデータを直接取得して、要求元のクライアントに渡すことができます。これらは一言で言えばあなたの要件です。間違っている場合は修正してください。
  4. 現在、JSON はテキスト表記が多く、ストレージ形式が少なくなっています。Jason は一般に、Javascript を使用して画面に簡単にレンダリングできるため、MVC アーキテクチャのビュー層で使用されます。
  5. JSON を直接配信する NoSQL DB を使用するというあなたの推論は、エンド クライアントがモバイル アプリになることを考えると信頼できます。
  6. 全体的なアーキテクチャは良好で、モバイル アクセス用に高度に最適化されています。
  7. NoSQL JSON ストレージに対応するようになりました。JSON インターフェースをサポートするドキュメント ストア NoSQL DB は次のとおりです。

    私。CouchDB

    ii. JasDB

    iii. スキーマフリーDB

8.ニーズに合わせてこれらのいずれかを評価できます。

于 2012-09-21T09:22:32.677 に答える
0

(完全な開示 - 私は BaaS プロバイダーである Kinvey のエンジニアです)

検討できるオプションの 1 つは、サービスとしてのバックエンドを使用することです。ほとんどの BaaS プロバイダーは、JSON を使用してネットワーク経由でデータを転送します。これは、要件と互換性があるように思えます。

さらに、通常、多くの一般的なモバイル アプリ機能が組み込まれています (つまり、プッシュ通知、ファイル ストレージと CDN インフラストラクチャ、ユーザー管理など)。これは、それぞれ独自のバックエンドを持つ複数のアプリを構築している場合に特に役立ちます。毎回車輪を再発明するのではなく、新しいバックエンドをスピンアップするだけです。

最後にもう 1 つ重要な注意点として、価格設定があります。ユースケースによって大きく異なりますが、私が見た限りでは、BaaS プロバイダーは通常、AWS や他のクラウド プロバイダーで独自のソリューションを展開するよりも大幅に安価です。特に、ほとんどのプロバイダーが無料利用枠を提供しているためです。

于 2012-09-21T13:53:56.523 に答える
0

この質問は少し古いですが、おそらくRDBMSの簡単な代替手段であるMongoDBです。これは、ドキュメント レベルのロックを備えたドキュメント データベースです。それは本当にうまくスケールします。

要点:ドキュメント ストレージとして JSON を使用します(実際にはバイナリ JSON 別名 BSON ですが、これは単なるスーパーセットです)。ドキュメントをデータベースに挿入するのは簡単です

db.collection.insert(JSON);

mongo シェルと

DBObject bson = (DBObject) JSON.parse(JSONstr);
collection.insert(bson);

Java ドライバーで。

于 2015-09-20T11:36:25.030 に答える