0

私は、複数の卸売業者のバックエンドシステムへのインターフェイスの仕様を調査しているプロジェクトに取り組んでいます。これが私たちが取り組んでいるものです、

  1. 各卸売業者には、10,000以上の複数の製品があります。また、各卸売業者は製品の価格をカスタマイズしています。
  2. アクセスされる卸売業者のリストは今後も増え続けるため、システムから数千の卸売業者にアクセスできる可能性があります。
  3. 卸売業者は地理的に分散しています。
  4. このシステムへのインターフェースにより、ユーザーは希望する卸売業者を選択し、製品を閲覧することができます。
  5. 製品価格の更新は、リアルタイムでサイトに反映される必要があります。したがって、卸売業者が価格を更新した場合、サイトですぐに利用できるようになります。
  6. システムはデータベースに依存しない必要があります。
  7. このシステムは、卸売業者側で簡単にセットアップでき、日常業務への影響を最小限に抑える必要があります。

当初は、卸売業者ごとにデータベースを作成することを考えていましたが、将来的には数千の卸売業者が存在する可能性があるため、パフォーマンスとストレージに関してはこれが最良のオプションです。データをローカルに保存するのではなく、卸売業者のデータベースに直接クエリを実行する方がよいでしょうか。これを実行しても、データベースにとらわれないままでいられますか?そのような実装に最適なテクノロジースタックは何でしょうか?ある種のORMツールが必要です。

Javaベースのフレームワークとテクノロジーが推奨されます。

ありがとう。

4

1 に答える 1

0

データベースを切り替えることができるソフトウェアを作成したい場合は、Hibernate(または.Netを使用している場合はNHibernate )を使用することをお勧めします。

Hibernateは特定のデータベースに依存しないORMであり、これによりDBを非常に簡単に切り替えることができます。これは、大規模なアプリケーションですでに証明されており、Springフレームワークに十分に統合されています(ただし、Springフレームワークなしでも使用できます)。( .Netを使用する場合、 Spring.netは同等です)

Springは、大規模でスケーラブルなアプリケーション(IoC-Container、データベースアクセス層、トランザクション管理、AOPのサポートなどを含む)を構築するための優れたテクノロジースタックです。

Wikiはあなたに短い概要を与えます:

http://en.wikipedia.org/wiki/Hibernate_(Java

http://en.wikipedia.org/wiki/Spring_Framework

データをローカルに保存するのではなく、卸売業者のデータベースに直接クエリを実行する方がよいでしょうか。

これは、リモートデータにアクセスするための可用性と遅延によって異なります。データベース自体には、複数のサーバーインスタンスを介してデータベースの同期を維持するためのいくつかの可能性があります。卸売業者のデータベースが(部分的に)オフラインになった場合にどうなるか、またはどうなるかを自問してください。たぶん、すべてのデータを複製する必要はありません。

これを実行しても、データベースにとらわれないままでいられますか?

はい、ORM(N)Hibernateに関連する私の回答を参照してください。

そのような実装に最適なテクノロジースタックは何でしょうか?

「最良」は要件によって異なります。私は春が好きです。.Netを使用する場合は、組み込みのADO.NETEntityFrameworkも適している可能性があります。

于 2012-12-19T15:54:39.337 に答える