2010-11-19 104 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最重要的方面之一是租户实例安全性。您必须必须始终显示正确的数据,并且您必须必须确保对单个帐户对数据库所做的任何更改不会影响任何其他帐户。高于一切,数据库和代码库必须免受注入攻击。

你的应用程序只与最弱的组件一样强大,如果你没有妥善保护它,它会在第一个障碍时掉下来。