设为首页 加入收藏

TOP

将您的 web 应用程序转化为多租户 SaaS 解决方案(三)
2011-03-22 12:48:25 】 浏览:4243
Tags:web 应用程序 化为 租户 SaaS 解决方案
响对数据库的选择。例如,可能会选择 DB2,因为它能够运行在广泛的操作系统上,提供纵向可扩展性,以及它可以灵活地选择通过多实例集群和冗余实现可扩展性。例如,可以在云中建立一个 DB2 HADR(高可用性灾难恢复)集群。

应用服务器考虑

和选择其他技术堆栈一样,选择应用服务器也是一项与 SaaS 应用程序开发人员有关的决策,因为最终用户交互只通过浏览器完成。但是,出于许多应用程序设计方面的考虑,应用服务器的选择存在很重要的差别,对 SaaS 环境的特殊要求也会影响它的选择。

使用了特殊特性或 WebSphere® 之类的应用服务器的插件(add-on)组件的应用程序将需要在云中使用这种应用服务器。

选择应用服务器的基本原则通常是在应用程序生命周期的早期作出的,因为应用程序可能会因为某些特性而受益,或者某些第三方插件或集成功能对于应用程序来说非常重要。有些时候,可能仅仅是因为组织的专有技术和内部标准要求在技术堆栈中使用特定的组件。

在选择和配置用于 SaaS/云环境的技术堆栈时,决策点包括平衡技术和经济方面的力量,从而实现一个较好的结果。

 


灵活性是技术演化的关键

在 SaaS 架构中,拥有对将要使用的技术堆栈作出决策和权衡的能力,以及在稍后的阶段重新审视这些决策的能力是非常宝贵的。随着技术的不断变化,领先的云提供商将并入新的中间件应用程序和功能,能够为您的 SaaS 应用程序采用这些应用程序和功能的能力也是一种优势。

强制您作出选择并使您锁定到某种特定的技术堆栈,这种 SaaS 应用程序架构将不利于 SaaS 应用程序的未来演变和适应能力。面向服务架构的核心概念十分适合于提供 SaaS 应用程序所需的敏捷性和灵活性。降低耦合程度将提供灵活性,而这种灵活性使实现战略战术演变成为可能。

在本文的其余部分中,我们将使用 Corent 的多租户服务器(Multi-Tenant Server™)提供一个示例,演示如何通过最少的步骤将一个 Java™ 开源记账 web 应用程序转换为一个多租户 SaaS 应用程序。

 


使用 Corent 的多租户服务器自动转换为 SaaS 应用程序

云提供商提供了一系列广泛的功能,可以容纳几乎任何 web 应用程序。要将这种应用程序完全转换为一个多租户 SaaS 应用程序,通常需要对应用程序代码作出大量修改,并重新设计和配置数据库。

Corent 的多租户服务器使 ISV 能够采用一种不同的方法,使用中间件层提供关键的多租户特性(从而保护对现有代码的投资)。我将描述如何通过 4 个步骤将一个典型的单租户应用程序转换为一个多租户 SaaS 应用程序。我们将要转换的应用程序就是 jBilling,这是一个流行的开源 Java web 应用程序。

步骤 1. 将数据库模式转换为一个抽象模型

web 应用程序的典型堆栈如图 1 所示;应用程序与数据库通信,通常通过 Hibernate 这样的数据持久化层完成。


图 1. 云中的典型 web 应用程序堆栈
云中的典型 web 应用程序堆栈  

要将应用程序转换为多租户应用程序,必须重新设计数据库以添加更多的字段来管理租户身份识别数据,在根据租户进行数据过滤时需要用到这些数据。

SaaS-Factory™ 应用程序用于读取现有应用程序数据库的模式。随后,它将为这个数据库创建一个模型,该模型稍后用来在 MySQL 中生成一个新的数据库,该数据库在表中新增了 TenantID

 字段。此时,用于多租户服务器的几个额外的表(包括租户信息表)就创建好了。

图 2. 创建 MetaModel 数据库模式
创建 MetaModel 数据库模式 

由于 MetaModel 数据库看上去与原始应用程序完全相同,具有相同的表和字段,因此原始应用程序可以继续与 MetaModel 数据库交互,就好象和此前的 MySQL 数据库交互一样。隐藏在模型下的真正的数据库可以用多租户应用程序所需的 TenantID

 字段生成。

MetaModel 数据库仅仅是一种抽象,并没有实际保存任何数据:它只是一个模型。因此,在生成真正的数据库时,没有理由不可以在任何受支持的关系数据库管理系统(RDBMS)中生成。在 ISV 希望通过选择不同的 RDBMS(比如 DB2)而修改技术堆栈,以利用某些特性或为应用程序实现更好的性能时,这种抽象性就可以派上用场。

步骤 2. 扩展用户身份验证流程

任何多租户 SaaS 应用程序必须能够为通过身份验证的用户管理必要的会话信息,从而建立用户所属的租户。应用程序可以采用多种方法进行身份验证;因此,对于进行转换的任何应用程序,必须进行分析并理解其身份验证方法。

Corent 的多租户服务器

Corent 的多租户服务器使我们的客户能够将现有的单租户 web 应用程序快速转换为完整的多租户 SaaS 解决方案,并且可以与云兼容,不需要重写应用程序。Corent 提供了效率最高、最经济有效的多租户方法。这种实现多租户的插件式中间件解决方案具有安全性、可扩展性,可以极大地降低服务交付的成本。

您可以灵活地选择自己喜爱的技术堆栈,自主选择要使用的操作系统、数据库和应用程序。借助多租户服务器的灵活架构,您可以自己决定如何部署您的 SaaS 应用程序,自己构建或是在任何云中构建。这使得 SaaS 应用程序可以部署为公共服务或私有 SaaS™,后者为一个有限的群体提供服务,比如一个大型企业,其中的各个部门就是租户。

多租户服务器附带了 SaaS-Cockpit™,支持您配置、管理和监视您的 SaaS 用户,还提供了 SaaS-Factory™,支持对 SaaS 应用程序进行基于租户的自定义和增强。通过使用 Corent 的全套解决方案,大大提高了将应用程序转换为 SaaS 的速度。

Corent 和 IBM® 目前都提供了有限的、符合要求的产品,提供免费的、概念验证的转换,将把 ISV 的 web 应用程序转换为一个运行在 IBM SBDT 云中的多租户 SaaS 解决方案,并允许 ISV 试运行最终的 SaaS 解决方案。

步骤 1 向您展示了如何建立一个多租户表以及添加一个用户表,从而在应用程序数据中维护这种关系。我们的目标是实现一种方法来扩展应用程序的用户身份验证流程,从而使用户在登录后即可与对应的租户匹配,而 TenantID

 则成为会话信息的一部分。

可以通过许多方式实现这一点;这取决于应用程序的实现。如果使用 Tomcat 作为应用程序 servlet 容器,那么可以利用容器托管式身份验证来发起一条业务规则,该业务规则运行在多租户服务器之上,用于查找与用户关联的 T

首页 上一页 1 2 3 4 5 下一页 尾页 3/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇云计算成功的秘密:灵活的容量规划 下一篇用 MapReduce 解决与云计算相关的..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目