[发明专利]用于在JVM中支持多租户隔离/多租户定制的系统和方法无效
申请号: | 200810134398.2 | 申请日: | 2008-07-30 |
公开(公告)号: | CN101639770A | 公开(公告)日: | 2010-02-03 |
发明(设计)人: | 高波;郭常杰;王芝虎;孙伟;黄莹;安文豪;刘天成 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京市金杜律师事务所 | 代理人: | 王茂华 |
地址: | 美国纽*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 jvm 支持 租户 隔离 定制 系统 方法 | ||
1.一种用于在JAVA虚拟机JVM中支持多租户隔离和/或多租户定制的系统,包括:
确定器,用于确定应用程序的哪些类需要进行隔离和/或哪些类需要被定制;
桩产生器,用于为隔离类和/或定制类产生桩;
租户公用类加载器,用于加载所述桩和不需要进行隔离的类和没有被定制的类,以及
租户特定类加载器,用于加载隔离类和/或定制类;
字节码转换器,用于转换引用被隔离类和/或被定制类的类的字节码,使其变成引用隔离类和/或定制类的桩;
其中在需要时,通过租户公用类加载器创建所述桩的实例和不需要进行隔离的类和没有被定制的类的实例,以及通过租户特定类加载器创建隔离类和/或定制类的实例;
其中通过所述桩和/或所述桩的实例,可以实现与租户特定类加载器加载的类和/或其实例通信。
2.根据权利要求1所述的系统,其中租户公用类加载器包括应用类加载器。
3.根据权利要求1所述的系统,其中被隔离的类包括静态变量,以及所述字节码转换器将引用静态变量的类的字节码中的getstatic或putstatic指令转换成invokestatic指令,该invokestatic指令调用所述桩中的静态方法来操作静态变量。
4.根据权利要求1所述的系统,其中当应用程序被编写完成后,确定器就进行应用程序的哪些类需要进行隔离的确定。
5.根据权利要求1所述的系统,还包括:
租户身份识别器,用于识别租户身份;
其中所述确定器根据租户身份,确定应用程序的哪些类需要被定制。
6.根据权利要求1所述的系统,其中对于类加载器层次结构中的每一层中的租户公用类加载器,都有相应的租户特定类加载器。
7.一种用于在JAVA虚拟机JVM中支持多租户隔离和/或多租户定制的方法,包括步骤:
确定多租户应用程序的哪些类需要进行隔离和/或哪些类需要被定制;
为隔离类和/或定制类产生桩;
由租户公用类加载器加载所述桩和不需要进行隔离的类和没有被定制的类,以及由租户特定类加载器加载隔离类和/或定制类;
转换引用被隔离类和/或被定制类的类的字节码,使其变成引用隔离类和/或定制类的桩;
其中,在需要时,通过租户公用类加载器创建所述桩的实例和不需要进行隔离的类和没有被定制的类的实例,以及通过租户特定类加载器创建隔离类和/或定制类的实例;
其中通过所述桩和/或所述桩的实例,可以实现与由租户特定类加载器加载的类和/或其实例通信。
8.根据权利要求7所述的方法,其中租户公用类加载器包括应用类加载器。
9.根据权利要求7所述的方法,其中被隔离的类包括静态变量,并且转换引用被隔离类和/或被定制类的类的字节码,使其变成引用隔离类和/或定制类的桩包括:
将引用静态变量的类的字节码中的getstatic或putstatic指令转换成invokestatic指令,该invokestatic指令调用所述桩中的静态方法来操作静态变量。
10.根据权利要求7所述的方法,其中当应用程序被编写完成后,就进行应用程序的哪些类需要进行隔离的确定。
11.根据权利要求7所述的方法,还包括:
识别租户身份;
其中所述确定步骤根据租户身份,确定应用程序的哪些类需要被定制。
12.根据权利要求7所述的方法,其中对于类加载器层次结构中的每一层中的租户公用类加载器,都有相应的租户特定类加载器。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810134398.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:输液速度与温度双控器
- 下一篇:吸尘器扁吸