[发明专利]用于在JVM中支持多租户隔离/多租户定制的系统和方法无效
申请号: | 200810134398.2 | 申请日: | 2008-07-30 |
公开(公告)号: | CN101639770A | 公开(公告)日: | 2010-02-03 |
发明(设计)人: | 高波;郭常杰;王芝虎;孙伟;黄莹;安文豪;刘天成 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京市金杜律师事务所 | 代理人: | 王茂华 |
地址: | 美国纽*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 jvm 支持 租户 隔离 定制 系统 方法 | ||
技术领域
本发明涉及计算机领域,更具体地,本发明涉及用于在JVM中支持多租户隔离和/或多租户定制的系统和方法。
背景技术
SaaS(Software-as-a-Service:软件即服务)服务通常基于单个应用程序实例为成百上千的不同客户(又称租户,其中每个租户又有很多用户)提供服务。这就要求系统能够支持不同租户之间数据的隔离,从而保证每个租户的数据的安全与隐私,以及各个租户对诸如界面、业务逻辑等的个性化需求。
例如,在用JAVA语言编写的web应用程序中通常通过一个静态变量来记录在一个时间周期期间的站点访问量。在多租户环境中,在每个租户希望看到其自己的用户对于站点的访问量的情况下,如果仍然使用传统的静态变量或单态模式来记录在一个时间周期期间的站点访问量,将会出现冲突。
考虑下面的代码,即在支持多租户的一个web应用程序中,采用静态变量counter来记录在一个时间周期期间的站点访问量:
Class SiteCounter{
public static int counter=0;
//一些其他逻辑
...
}
租户1的用户Bob访问该站点将使静态变量counter的值变成1。
租户2的用户Ted查看站点访问量将得到静态变量counter的值,现在的值是2,包括Ted他自己的对站点的访问次数。然而,实际上,对于租户2来说,只有1次站点访问。也就是说,在这种情况下,不同租户之间的数据没有被隔离。
再考虑如下的代码,即在支持多租户的一个web应用程序中,使用单态模式来记录在一个时间周期期间的站点访问量(在http://en.wikipedia.org/wiki/Singleton_pattern中有关于单态模式的介绍):
Class SiteCounter{
private int counter=0;
private static SiteCounter_instance=null;
private SiteCounter(){
}
public static synchronized SiteCounter getInstance(){
if(_instance==null)
_instance=new SiteCounter();
return_instance;
}
public void addCounter(){
counter++;
}
public int getCounter(){
return counter;
}
}
租户1的用户Bob访问站点将调用SiteCounter.getInstance.addCounter(),因此变量counter的值现在变为1。租户2的用户Ted查看站点访问量将调用SiteCounter.getInstance.getCounter(),变量counter现在具有值2,包括Ted自己的对站点的访问次数。然而,实际上,对于租户2来说,只有1次站点访问。也就是说,在这种情况下,不同租户之间的数据也没有被隔离。
当前,对于上述问题的一种解决方案是为每个租户安装专用应用拷贝,然而这种方案的性能和可扩展性差,很难支持大量的租户。
另一种解决方案是在应用层采用隔离和定制机制,例如,在应用程序中对需要隔离的变量使用集合对象(Collection Object)(例如Map)来为每个租户分配一个特定值,来纪录每个租户的变量的值;对需要定制的类,使用工厂模式和配置文件来动态加载租户特定的类实现。这种方案要求开发人员注意多租户实现的细节,因此极大地增加了应用程序开发人员的负担。对于租户的特定定制要求,如果在开发时没有考虑到,可能需要修改并且重新安装应用程序,具有扩展性问题。
发明内容
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810134398.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:输液速度与温度双控器
- 下一篇:吸尘器扁吸