2010-11-19 154 views
1

我正在開發一個用於農業數據集數據分析的Web應用程序。其實我想讓開發多租戶SaaS

應用程序成爲多租戶,我希望將這個SaaS應用程序部署在私有云(在我們的學校)。

我在編程部分有一些基本的疑問。

  1. 我是否需要在Hadoop的map/reduce功能中開發應用程序?

  2. 其次,選擇數據庫。由於數據本質上是高度結構化的(比如sql),我可以使用sql server來管理雲中的數據嗎?在這種情況下,除了IaaS設置和SaaS應用程序之外,我還需要任何中間件嗎?

  3. 我正在使用J2EE技術​​進行SaaS開發。而租戶的數量將在50以內。在數據庫方面哪種方法更好。其實安全並不是一個大問題。

  4. 您能否告訴我開發多租戶SaaS有哪些基本要求?即是否所有的應用程序,平臺和數據庫都要配置爲多租戶或者只有數據庫部分?

    我是這種技術的新手,我更願意只使用開源技術進行開發。

請給我你的建議,這可能是非常有益的進行正確的方向。

謝謝你寶貴的時間。

問候,

桑吉塔

回答

2

我需要開發在Hadoop的地圖應用/功能降低?

地圖/降低沒有關係向SaaS或多租戶


其次,數據庫的選擇。由於數據本質上是高度結構化的(比如sql),我可以使用sql server來管理雲中的數據嗎?在這種情況下,除了IaaS設置和SaaS應用程序之外,我還需要任何中間件嗎?

這主要取決於您的數據使用情況。然而,多租戶系統的主要方面之一是數據模型的擴展。在RDBMS領域有多種成熟的選擇來支持這一點。查看here瞭解更多詳情。

一般來說,NoSQL數據庫是首選,因爲它們支持更多的非結構化數據結構。


我正在使用J2EE技術​​進行SaaS開發。而租戶的數量將在50以內。在數據庫方面哪種方法更好。其實安全並不是一個大問題。

如果安全性不是很大,那麼您可以將所有客戶的數據放置在同一個單獨的數據庫模式實例中。這是最簡單的方法,但將意味着更多的DBA頭痛像歸檔/備份等等看利弊here


你能告訴我什麼是開發一個多租戶SaaS的基本要求是什麼?即是否所有的應用程序,平臺和數據庫都要配置爲多租戶或者只有數據庫部分?

品牌(客戶特定的UI主題等),工作流程,數據模型擴展和訪問控制是需要考慮的任何多租戶系統的4個主要方面。 (Source)。所以你選擇的任何設計或架構應該能夠解決這些問題。

推薦閱讀:Force.com multi-tenant architecture

0

基本SaaS應用有:

  1. 使用每多租戶實例代碼庫的單一實例
  2. 與應用
  3. 地圖的用戶實例地圖網址數據庫中的租戶到他們的應用程序實例。

如果您使用的是SQL,並且您對MSQL或Oracle沒有任何特定的技術要求,則可以使用Postgres或MySQL或您最喜歡的任何一種。他們都做同樣的事情。在構建數據時,請確保向每個表添加附加列'tenant_id'以便能夠選擇與該實例相關的內容。

如果您正在構建ACL,則需要爲系統設置ACL,併爲每個租戶設置一個通用應用程序ACL。所以當用戶登錄時,他們會看到一個控制面板,允許他們控制他們的實例。如果你只是想讓他們在沒有控制面板的情況下直接登錄他們的實例,那麼你可以拋棄一層代碼和數據庫的複雜性。

就J2EE而言,我無法幫到你。

SAAS最重要的方面之一是租戶實例安全性。您必須必須始終顯示正確的數據,並且您必須必須確保對單個帳戶對數據庫所做的任何更改不會影響任何其他帳戶。高於一切,數據庫和代碼庫必須免受注入攻擊。

你的應用程序只與最弱的組件一樣強大,如果你沒有妥善保護它,它會在第一個障礙時掉下來。