2010-11-19 20 views
1

私は、農業データセットのデータ分析用Webアプリケーションを開発しています。実際にはマルチテナントSaaSの開発

アプリケーションをマルチテナントにしたいと思っています。そのSaaSアプリケーションをプライベートクラウド(本校)に導入したいと考えています。

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

  1. 私はHadoopのマップ/削減機能でアプリケーションを開発する必要がありますか?

  2. 第2に、データベースの選択。データは(SQLのような)性質上非常に構造的なので、SQL Serverを使用してクラウド内のデータを管理できますか? IaaSのセットアップとSaaSアプリケーションに加えて、ミドルウェアが必要ですか?

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

  4. マルチテナントSaaSを開発するための基本的な要件は何ですか?すべてのアプリケーション、プラットフォーム、およびデータベースをマルチテナント用に構成するかどうか、またはデータベース部分のみを構成するかどうか。

    私はこの技術に慣れていないため、開発にオープンソース技術のみを使用することをお勧めしました。

正しい方向に進むことが非常に助かります。

ありがとうございます。

よろしく、

サンギータ

答えて

2

は、私は/機能性を減らすのHadoopのマップでアプリケーションを開発する必要がありますか?

マップ/削減第二のSaaSまたはマルチテナント


とは関係データベースの選択を持っていません。データは(SQLのような)性質上非常に構造的なので、SQL Serverを使用してクラウド内のデータを管理できますか? IaaSのセットアップとSaaSアプリケーションに加えて、ミドルウェアが必要ですか?

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

通常、より多くの非構造化データ構造をサポートするため、NoSQLデータベースが優先されます。


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

セキュリティが重要でない場合は、同じsinglee dbスキーマインスタンス内のすべての顧客のデータを同じ場所に配置できます。これは最も簡単な方法ですが、アーカイブ/バックアップなどのようなより多くのDBAの頭痛は、長所と短所here


を見て意味するだろう、あなたはマルチテナント型のSaaSを開発するための基本的な要件は何を教えていただけますか?すべてのアプリケーション、プラットフォーム、およびデータベースをマルチテナント用に構成するかどうか、またはデータベース部分のみを構成するかどうか。

ブランディング(顧客固有のUIテーマなど)、ワークフロー、データモデル拡張、アクセス制御は、マルチテナントシステムで考慮する必要のある4つの主要な側面です。 (Source)。だからあなたが選んだデザインやアーキテクチャは、これらの面に対処できるはずです。

候補]読書:Force.com multi-tenant architecture

0

基本的なSaaSアプリケーションがしています

  1. は多くのテナントインスタンスアプリケーション
  2. 地図のユーザーインスタンスと
  3. 地図のURLごとのコードベースの単一のインスタンスを使用しますデータベースのテナントをアプリケーションインスタンスに追加します。

MSQLまたはOracleに特定のテクノロジ要件がない場合は、PostgresまたはMySQLなどを使用することができます。彼らはすべて同じことをする。データを構築するときは、各インスタンスに関連するコンテンツを選択できるように、各テーブルに「tenant_id」列を追加する必要があります。

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

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

SAASの最も重要な側面の1つは、テナントインスタンスのセキュリティです。 は常に正しいデータを表示する必要があります。でなければなりません。単一のアカウントのデータベースに対する変更が他のアカウントに影響しないようにする必要があります。とりわけ、データベースとコードベースを注射攻撃から保護する必要があります。

あなたのアプリケーションは、最も弱いコンポーネントと同じくらい強く、正しく固定しないと、最初のハードルで落ちます。

関連する問題