多租户Java虚拟机的设计与实现
发布时间:2019-03-30 15:27
【摘要】:多租户技术,让一个软件实例同时服务于不同的组织,在云计算环境中被广泛运用,极大的节约了基础设施资源。但是,云计算环境中使用最广的Java语言却没有提供相应的多租户功能。为此,云服务提供商不得不对自己的应用服务器进行虚拟化,以此来提供多租户功能。但是这也使得用户必须修改应用来适应各个云服务提供商的多租户技术,增加了工作量,也使得同一个应用无法在不同的云计算平台上使用。因此,为标准Java虚拟机(JVM)添加多租户功能已经变得尤为迫切,让任何Java应用可以不做任何修改,直接实现多租户的功能。 本文针对JSR121和JSR284规范,设计和实现了支持多租户功能的JVM,可以在同一个JVM实例上同时运行不同的Java应用,同时为不同的租户服务。多租户JVM提供了支持多租户的类初始化机制和类加载器,实现了不同Java应用之间的数据共享与隔离。既可以让同时运行的应用之间共享整个JVM的基础设施资源,又可以让每个应用保持自己的私有数据集的独立性,应用之间互不影响,行为和使用一个专用的JVM完全一样。同时,多租户JVM保证了租户应用的可靠退出,避免了一个租户应用的异常影响了其它租户应用的正常运行。另外,多租户JVM提供了一套Java层面的资源管理接口,实现了JVM对系统资源的管理,让JVM对运行在其上面的多租户应用进行资源方面的隔离成为可能,避免资源被某个租户独占。 多租户JVM让所有租户应用共享整个JVM基础设施资源,实验表明,根据应用的规模,多租户JVM平均可以减少63.94%的应用启动时间以及44.7%的内存消耗。对于云服务提供商而言,多租户JVM减少资源消耗,提高了应用密度,非常适合在云计算的多租户环境中使用。
[Abstract]:Multi-tenancy technology, which makes a software instance serve different organizations at the same time, is widely used in cloud computing environment, which greatly saves infrastructure resources. However, the most widely used Java language in cloud computing environment does not provide the corresponding multi-tenancy function. To this end, cloud service providers have to virtualize their application servers to provide multi-tenant capabilities. But it also makes users have to modify the application to adapt to the multi-tenant technology of various cloud service providers, increase the workload, and make the same application can not be used on different cloud computing platforms. Therefore, adding the multi-tenancy function to the standard Java virtual machine (JVM) has become especially urgent, so that any Java application can implement the multi-tenancy function directly without any modification. In this paper, according to JSR121 and JSR284 specifications, we design and implement JVM, which supports multi-tenancy function and can run different Java applications on the same JVM instance at the same time, and serve different tenants at the same time. Multi-tenant JVM provides a class initialization mechanism and class loader to support multi-tenancy, and realizes data sharing and isolation among different Java applications. It not only allows simultaneous applications to share the infrastructure resources of the entire JVM, but also allows each application to maintain the independence of its own private data set, with no influence between applications, and behaves exactly the same as using a dedicated JVM. At the same time, multi-tenant JVM ensures the reliable exit of tenant application and avoids the anomaly of one tenant application affecting the normal operation of other tenant applications. In addition, multi-tenant JVM provides a set of Java-level resource management interface, which realizes the management of system resources by JVM, and makes it possible for JVM to isolate the resources of multi-tenant applications running on it, so as to avoid the resources being monopolized by a certain tenant. Multi-tenant JVM allows all tenant applications to share the entire JVM infrastructure resources. Experiments show that multi-tenant JVM can reduce the application startup time and memory consumption by 63.94% and 44.7% on average according to the application size. For cloud service providers, multi-tenant JVM reduces resource consumption and increases application density, making it ideal for use in multi-tenant environments in cloud computing.
【学位授予单位】:南京大学
【学位级别】:硕士
【学位授予年份】:2013
【分类号】:TP302
本文编号:2450204
[Abstract]:Multi-tenancy technology, which makes a software instance serve different organizations at the same time, is widely used in cloud computing environment, which greatly saves infrastructure resources. However, the most widely used Java language in cloud computing environment does not provide the corresponding multi-tenancy function. To this end, cloud service providers have to virtualize their application servers to provide multi-tenant capabilities. But it also makes users have to modify the application to adapt to the multi-tenant technology of various cloud service providers, increase the workload, and make the same application can not be used on different cloud computing platforms. Therefore, adding the multi-tenancy function to the standard Java virtual machine (JVM) has become especially urgent, so that any Java application can implement the multi-tenancy function directly without any modification. In this paper, according to JSR121 and JSR284 specifications, we design and implement JVM, which supports multi-tenancy function and can run different Java applications on the same JVM instance at the same time, and serve different tenants at the same time. Multi-tenant JVM provides a class initialization mechanism and class loader to support multi-tenancy, and realizes data sharing and isolation among different Java applications. It not only allows simultaneous applications to share the infrastructure resources of the entire JVM, but also allows each application to maintain the independence of its own private data set, with no influence between applications, and behaves exactly the same as using a dedicated JVM. At the same time, multi-tenant JVM ensures the reliable exit of tenant application and avoids the anomaly of one tenant application affecting the normal operation of other tenant applications. In addition, multi-tenant JVM provides a set of Java-level resource management interface, which realizes the management of system resources by JVM, and makes it possible for JVM to isolate the resources of multi-tenant applications running on it, so as to avoid the resources being monopolized by a certain tenant. Multi-tenant JVM allows all tenant applications to share the entire JVM infrastructure resources. Experiments show that multi-tenant JVM can reduce the application startup time and memory consumption by 63.94% and 44.7% on average according to the application size. For cloud service providers, multi-tenant JVM reduces resource consumption and increases application density, making it ideal for use in multi-tenant environments in cloud computing.
【学位授予单位】:南京大学
【学位级别】:硕士
【学位授予年份】:2013
【分类号】:TP302
【共引文献】
相关硕士学位论文 前3条
1 李化;智能移动服务开发方法的应用研究[D];北京工业大学;2013年
2 乔秀明;基于BIRIS-SSP的车辆服务平台[D];哈尔滨工业大学;2012年
3 黎细亮;基于WEB2.0的SaaS软件托管平台的设计与实现[D];电子科技大学;2013年
,本文编号:2450204
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2450204.html