1

農業データセットのデータ分析用の Web アプリケーションを開発しています。実は私が作りたいのは

アプリケーションをマルチ テナントにする必要があり、その SaaS アプリケーションをプライベート クラウド (学校内) にデプロイしたいと考えています。

プログラミングの部分でいくつかの基本的な疑問がありました。

  1. Hadoop の map/reduce 機能でアプリケーションを開発する必要がありますか?

  2. 第二に、データベースの選択。データは本質的に高度に構造化されているため (SQL など)、SQL サーバーを使用してクラウド内のデータを管理できますか? その場合、IaaS セットアップと SaaS アプリケーションに加えて、ミドルウェアが必要ですか?

  3. SaaS 開発に J2EE テクノロジを使用しています。また、テナント数は 50 以内になります。データベースの面でどちらのアプローチが優れていますか。実際、セキュリティはここでは大きな問題ではありません。

  4. マルチテナント SaaS を開発するための基本的な要件を教えてください。つまり、すべてのアプリケーション、プラットフォーム、およびデータベースをマルチテナンシー用に構成するか、それともデータベース部分のみを構成するか?

    私はこのテクノロジに慣れていないため、開発にはオープン ソース テクノロジのみを使用することを好みました。

正しい方向に進むために非常に役立つ可能性のある提案を教えてください.

貴重な時間をありがとうございました。

よろしく、

サンギタ

4

2 に答える 2

2

Hadoop の map/reduce 機能でアプリケーションを開発する必要がありますか?

map/reduce は SaaS やマルチテナンシーとは関係ありません


第二に、データベースの選択。データは本質的に高度に構造化されているため (SQL など)、SQL サーバーを使用してクラウド内のデータを管理できますか? その場合、IaaS セットアップと SaaS アプリケーションに加えて、ミドルウェアが必要ですか?

これは主にデータ使用量に依存します。ただし、マルチテナント システムの主な側面の 1 つは、データ モデルの拡張です。RDBMS の世界では、これをサポートする複数の確立されたオプションがあります。詳しくはこちらをご覧ください。

一般に、非構造化データ構造をサポートする NoSQL データベースが好まれます。


SaaS 開発に J2EE テクノロジを使用しています。また、テナント数は 50 以内になります。データベースの面でどちらのアプローチが優れていますか。実際、セキュリティはここでは大きな問題ではありません。

セキュリティが重要でない場合は、すべての顧客のデータを同じ単一のデータベース スキーマ インスタンスに配置できます。これは最も単純なアプローチですが、アーカイブ/バックアップなどの DBA の頭痛の種が増えることを意味します。ここで長所と短所を見てください。


マルチテナント SaaS を開発するための基本的な要件を教えてください。つまり、すべてのアプリケーション、プラットフォーム、およびデータベースをマルチテナンシー用に構成するか、それともデータベース部分のみを構成するか?

ブランディング (顧客固有の UI テーマなど)、ワークフロー、データ モデルの拡張、およびアクセス制御は、マルチテナント システムで考慮する必要がある 4 つの主要な側面です。(ソース)。したがって、選択した設計またはアーキテクチャは、これらの側面に対処できる必要があります。

推奨資料: Force.com マルチテナント アーキテクチャ

于 2010-11-19T03:17:15.147 に答える
0

基本的な SAAS アプリケーションは、次のことを行う必要があります。

  1. 多くのテナント インスタンスごとに 1 つのコード ベース インスタンスを使用する
  2. URL をアプリケーションのユーザー インスタンスにマップする
  3. データベース内のテナントをアプリケーション インスタンスにマップします。

SQL を使用していて、MSQL または Oracle に特定の技術要件がない場合は、Postgres または MySQL のいずれか、または最も使い慣れている方を使用できます。彼らは皆同じ​​ことをします。データを作成するときは、各テーブルに追加の列「tenant_id」を追加して、そのインスタンスに関連するコンテンツを選択できるようにしてください。

ACL を構築している場合は、システム用の ACL と各テナント用の汎用アプリケーション ACL をセットアップする必要があります。そのため、ユーザーがログインすると、インスタンスを制御できるコントロール パネルが表示されます。コントロール パネルを使用せずにインスタンスに直接ログインさせたい場合は、コードのレイヤーとデータベースの複雑さを捨てることができます。

J2EE に関する限り、私はあなたを助けることはできません。

SAAS の最も重要な側面の 1 つは、テナント インスタンスのセキュリティです。常に正しいデータを表示する必要があり、単一のアカウントのデータベースに加えられた変更が他のアカウントに影響を与えないようにする必要があります何よりも、データベースとコード ベースをインジェクション攻撃から保護する必要があります。

アプリケーションの強度は、最も弱いコンポーネントと同じくらいであり、適切に保護しないと、最初のハードルで失敗します。

于 2013-09-13T13:19:28.480 に答える