一种将已有Web应用转化为SaaS多租户应用的方法和装置的制作方法

文档序号:7896785阅读:245来源:国知局
专利名称:一种将已有Web应用转化为SaaS多租户应用的方法和装置的制作方法
技术领域
本发明涉及一种MaS多租户技术领域,尤其涉及一种将已有Web应用转化为MaS 多租户应用的方法和装置。
背景技术
SaaS(Software-as-a-Service软件即服务)是基于互联网提供软件服务的软件应用模式。SaaS应用与传统的Web应用存在本质不同,传统Web应用在部署之后只为一家用户企业服务,而^aS应用是为成百上千的不同客户提供服务。多租户指的是软件架构体系中的一种模式,MaS应用在多租户架构下,以一份应用软件实例同时服务于多家客户或组织(即所谓的租户),节约了服务器资源,降低了运营成本。为了满足不同租户的需求,MaS 应用必须可以安全地隔离各个用户不同的应用实例(如应用进程)和应用数据甚至配置数据,保证每个用户的安全与隐私,以及各个租户对诸如界面、业务逻辑等的个性化需求。随着^aS技术的发展,传统的Web应用软件提供商希望有一种简单的方法使得他们的Web应用转化为MaS应用。但是,现有公布的MaS方式往往要求传统Web应用开发商重新做代码级的修改以便在应用的应用逻辑、租户配置、租户数据存取、租户上线等方面做出修改。这往往意味着要求传统Web应用开发商要重新开发应用、重新测试。所以,传统Web应用开发商迫切需要一种技术能够提供中间件和平台级的能力帮助他们解决Web应用转化为应用的问题。中国专利公开号CN102135883,
公开日2011年7月27日,发明的名称为一种支持MaS应用生成与部署的方法和装置,该申请案公开了一种支持MaS应用生成与部署的方法和装置,它包括以下步骤A、独立软件开发商经过注册获得MaS应用生成与部署装置的开发授权,成为正式开发用户;B、独立软件开发商通过ISV门户单元下载生成及测试工具集并将工具集集成到其本地生成环境中,使得本地生成环境成为快速生成MaS应用的 MaS应用描述生成装置;C、独立软件开发商利用MaS应用描述生成装置进行应用生成,并将应用的描述上传到^aS应用部署装置中;D、SaaS应用部署装置将ISV生成的应用添加底层实现,将其部署成支持多租户及个性化定制的&iaS应用;E、租户对发布的^aS应用进行试用、租赁、定制。其不足之处在于,该方法和装置不能解决传统Web应用开发商为实现 SaaS应用而重新开发应用、重新测试的问题。

发明内容
本发明的目的是克服传统应用开发商为实现MaS应用而重新开发应用、重新测试的问题,提供了一种无需重新开发应用、重新测试,就能够将已有Web应用转化为^aS多租户应用的方法和装置。为了解决上述问题,本发明采用以下技术方案予以实现
一种将已有Web应用转化为MaS多租户应用的装置,包括隔离模块,用于在Web应用中设置隔离点,隔离Web应用中不同租户所定制的不同的Web应用对象,建立相应的隔离
3Web应用对象分区和无需隔离的共享Web应用对象分区;租户一分区映射表,用于管理运行时租户与其对应的隔离Web应用对象分区之间的关系;租户上线管理器,用于为新租户建立保存租户信息的租户分区,并在租户一分区映射表里注册新租户与其对应的隔离Web 应用对象分区之间关系的表组;租户上下文绑定模块,用于将一个请求绑定到一个租户, 建立描述租户信息的租户上下文;租户请求路由器,从租户上下文中取得租户信息,通过查询租户一分区映射表,将所述请求转发在到正确的Web应用对象分区里进行处理。在本技术方案中,对于租户发出的请求,租户请求路由器查询租户一分区映射表中该租户与其对应的隔离Web应用对象分区之间关系的表组,若没有查到处理所述请求的Web应用对象分区,则将所述请求转发到没有隔离的共享Web应用对象分区进行处理,从而实现一个应用实例同时服务多个租户的要求;若查到处理所述请求的Web应用对象分区,则将所述请求转发到相应的隔离Web应用对象分区进行处理,从而保证每个用户的安全与隐私,以及各个租户对诸如界面、业务逻辑等的个性化需求。通过在已有Web应用上增加一个由这些装置构成的中间层,就可以将已有Web应用转化为多租户应用,使开发商不用为实现 SaaS应用而重新开发应用、重新测试。作为优选,所述Web应用对象包括全局Java对象、容器管理对象、从Web应用服务器调用的外部资源、用户界面、高级的应用程序逻辑。通过对这些Web应用要素的隔离,保证每个用户的安全与隐私,以及各个租户对诸如界面、业务逻辑等的个性化需求。作为优选,所述租户分区是内存中保存实时状态、应用数据、外部资源的一个逻辑隔离空间,便于应用服务器对租户进行管理。作为优选,所述租户上下文包括租户的唯一识别符tenantID,用于确定租户的身份,根据租户的身份确定哪些Web应用需要被定制。作为优选,所述租户上下文绑定模块包括用于截获请求的Java过滤器,以便租户上下文绑定模块将截获的请求绑定到租户。一种将已有Web应用转化为MaS多租户应用的方法,包括以下步骤
A、建立应用元数据,描述在Web应用中需要隔离的不同租户所定制的不同的Web应用对象的信息;
B、基于所述应用元数据的信息,在所述Web应用中设置隔离点,隔离不同租户定制的不同Web应用对象;
C、对所述不同租户定制的不同Web应用对象建立相应的隔离Web应用对象分区,并建立相应的租户一分区映射表,对各个租户共享的Web应用对象建立无需隔离的共享Web应用对象分区;
D、新租户上线时,为新租户建立保存租户信息的租户分区,并在所述租户一分区映射表里注册新租户与其对应的隔离Web应用对象分区之间关系的表组;
E、当不同租户发出应用请求时,租户上下文绑定模块截获应用请求,将应用请求绑定到相应的租户,构造描述租户信息的租户上下文;
F、租户请求路由器从所述租户上下文中取得当前租户信息,查询当前租户在所述租户一分区映射表中的表组若没有查到处理所述请求的Web应用对象分区,则将所述请求转发到没有隔离的共享Web应用对象分区进行处理,从而实现一个应用实例同时服务多个租户的要求;若查到处理所述请求的Web应用对象分区,则将所述请求转发到相应的隔离
4Web应用对象分区进行处理,从而保证每个用户的安全与隐私,以及各个租户对诸如界面、 业务逻辑等的个性化需求。通过上述步骤,无需对已有Web应用进行代码级的修改,就可以将Web应用转化为MaS多租户应用。本发明的有益效果是能够快速的将已有Web应用转化为&iaS多租户应用,无需对已有的Web应用进行代码级的修改、重新开发应用、重新测试。


图1是本发明一种将已有Web应用转化为MaS多租户应用的装置的一种结构示意框图。图中1、隔离模块,2、租户一分区映射表,3、租户上线管理器,4、租户上下文绑定模块,5、租户请求路由器。
具体实施例方式下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。实施例本实施例的一种将已有Web应用转化为MaS多租户应用的装置,包括隔离模块1,用于在Web应用中设置隔离点,隔离Web应用中不同租户所定制的不同的Web应用对象,建立相应的隔离Web应用对象分区和无需隔离的共享Web应用对象分区,Web应用对象包括全局Java对象(static field、singleton object)、容器管理对象(servlet、 JSP、EJB3、JPA)、从Web应用服务器调用的外部资源(数据库访问、LDAP访问、本地和远程文件系统访问)、用户界面(利用样式表、界面上的图片)、高级的应用程序逻辑(体现不同租户逻辑的程序片段、配置项);租户一分区映射表2,用于管理运行时租户与其对应的隔离 Web应用对象分区之间的关系;租户上线管理器3,用于为新租户建立保存租户信息的租户分区,并在租户一分区映射表2里注册新租户与其对应的隔离Web应用对象分区之间关系的表组,当中断一个租户的服务时,销毁租户分区、并将注册的表组从租户一分区映射表2 中移除,租户分区是内存中保存实时状态、应用数据、外部资源的一个逻辑隔离空间;租户上下文绑定模块4,用于将一个请求绑定到一个租户,建立描述租户信息且拥有唯一识别符 tenantID的租户上下文,当请求完成时,解除绑定,以便租户能够绑定新请求,租户上下文绑定模块4包括用于截获请求的Java过滤器;租户请求路由器5,从租户上下文中取得租户信息,通过查询租户一分区映射表2,将请求转发在到正确的Web应用对象分区里进行处理。首先,建立应用元数据,描述在Web应用中需要隔离的不同租户所定制的不同的 Web应用对象的信息。隔离模块1基于应用元数据的信息,通过修改该Web应用的配置项, 在该Web应用中设置隔离点,隔离不同租户定制的不同Web应用对象,建立相应的隔离Web 应用对象分区,并建立相应的租户一分区映射表2,对各个租户共享的Web应用对象建立无需隔离的共享Web应用对象分区。当新租户上线时,租户上线管理器3赋予其唯一的识别符 tenantID,并为新租户建立保存租户信息的租户分区,并在租户一分区映射表2里注册新租户的唯一识别符tenantID与其对应的隔离Web应用对象分区之间关系的表组。新租户发出应用请求,租户上下文绑定模块4通过Java过滤器截获应用请求,将应用请求绑定到该租户,构造描述租户信息的租户上下文。租户请求路由器5从租户上下文中取得tenantID和应用请求,查询当前租户在租户一分区映射表2中的表组若没有查到处理该应用请求的Web应用对象分区,则将该应用请求转发到没有隔离的共享Web应用对象分区进行处理; 若查到处理该应用请求的Web应用对象分区,则将该应用请求转发到相应的隔离Web应用对象分区进行处理,当请求完成时,解除绑定,以便租户能够绑定新请求。从而无需对已有的Web应用进行代码级的修改、重新开发应用、重新测试,就能将已有Web应用转化为MaS 多租户应用。
权利要求
1.一种将已有Web应用转化为MaS多租户应用的装置,其特征在于包括隔离模块(1),用于在Web应用中设置隔离点,隔离Web应用中不同租户所定制的不同的Web应用对象,建立相应的隔离Web应用对象分区和无需隔离的共享Web应用对象分区;租户一分区映射表(2),用于管理运行时租户与其对应的隔离Web应用对象分区之间的关系;租户上线管理器(3),用于为新租户建立保存租户信息的租户分区,并在租户一分区映射表(2)里注册新租户与其对应的隔离Web应用对象分区之间关系的表组;租户上下文绑定模块(4),用于将一个请求绑定到一个租户,建立描述租户信息的租户上下文;租户请求路由器(5),从租户上下文中取得租户信息,通过查询租户一分区映射表 (2),将所述请求转发在到正确的Web应用对象分区里进行处理。
2.根据权利要求1所述的一种将已有Web应用转化为^aS多租户应用的装置,其特征在于所述Web应用对象包括全局Java对象、容器管理对象、从Web应用服务器调用的外部资源、用户界面、高级的应用程序逻辑。
3.根据权利要求1所述的一种将已有Web应用转化为^aS多租户应用的装置,其特征在于所述租户分区是内存中保存实时状态、应用数据、外部资源的一个逻辑隔离空间。
4.根据权利要求1所述的一种将已有Web应用转化为^aS多租户应用的装置,其特征在于所述租户上下文包括租户的唯一识别符tenantID。
5.根据权利要求1或2或3或4所述的一种将已有Web应用转化为MaS多租户应用的装置,其特征在于所述租户上下文绑定模块包括用于截获请求的Java过滤器。
6.一种将已有Web应用转化为MaS多租户应用的方法,其特征在于,包括以下步骤A、建立应用元数据,描述在Web应用中需要隔离的不同租户所定制的不同的Web应用对象的信息;B、基于所述应用元数据的信息,在所述Web应用中设置隔离点,隔离不同租户定制的不同Web应用对象;C、对所述不同租户定制的不同Web应用对象建立相应的隔离Web应用对象分区,并建立相应的租户一分区映射表(2),对各个租户共享的Web应用对象建立无需隔离的共享Web 应用对象分区;D、新租户上线时,为新租户建立保存租户信息的租户分区,并在所述租户一分区映射表(2)里注册新租户与其对应的隔离Web应用对象分区之间关系的表组;E、当不同租户发出应用请求时,租户上下文绑定模块(4)截获应用请求,将应用请求绑定到相应的租户,构造描述租户信息的租户上下文;F、租户请求路由器(5)从所述租户上下文中取得当前租户信息,查询当前租户在所述租户一分区映射表(2)中的表组若没有查到处理所述请求的Web应用对象分区,则将所述请求转发到没有隔离的共享Web应用对象分区进行处理;若查到处理所述请求的Web应用对象分区,则将所述请求转发到相应的隔离Web应用对象分区进行处理。
全文摘要
本发明公开了一种将已有Web应用转化为SaaS多租户应用的方法和装置。该装置包括隔离模块,用于在Web应用中设置隔离点,建立Web应用对象分区;租户—分区映射表,用于管理租户与其对应Web应用对象分区的关系;租户上线管理器,用于为新租户建立租户分区,并在租户—分区映射表里注册新分区;租户上下文绑定模块,用于将一个请求绑定到一个租户,建立租户上下文;租户请求路由器,从租户上下文中取得租户信息,通过查询租户—分区映射表,将请求转发在到正确的分区里进行处理。本发明通过在已有Web应用上增加了一个中间层,无需对已有的Web应用进行代码级的修改,就能把Web应用转化为SaaS多租户应用。
文档编号H04L29/08GK102333115SQ20111025584
公开日2012年1月25日 申请日期2011年9月1日 优先权日2011年9月1日
发明者冯望瑜, 张铁柱, 杨弋 申请人:杭州湾云计算技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1