用于处理对多租户应用的文件访问的方法和文件代理装置的制作方法

文档序号:6602088阅读:154来源:国知局
专利名称:用于处理对多租户应用的文件访问的方法和文件代理装置的制作方法
技术领域
本发明涉及多租户技术,更具体涉及一种用于处理多租户应用的文件访问的方法和装置。
背景技术
软件作为服务(SaaS-Softwareas a Service),通过多租户(MT-Multi-iTenancy) 技术,向软件的用户提供多租户应用,即在服务提供商的服务器上运行软件应用程序的单个实例,由该单个实例为多个租户(例如企业之类的组织)提供软件应用服务,由此能够降低软件应用程序的开发、部署和运行的费用。对于多租户应用来说,一个重要问题是如何在满足租户多样化的服务水平协议 (SLA-Service Level Agreements)的情况下,控制租户对文件的访问,其中涉及文件的共享、安全隔离、可升级性等方面。为了使单租户应用(或称应用程序)支持多租户模型下的操作,例如文件访问,可以修改应用的源代码。

发明内容
发明人发现,为了使单租户应用(或称应用程序)支持多租户模型下的操作而修改应用的源代码,本身就不是安全的行为,也容易留下被黑客攻击的漏洞,很难保证多租户模型下租户文件的绝对安全。为此,本发明各实施例主要目的是在不改变传统单租户应用程序原有的代码的情况下使应用对文件系统的文件操作支持多租户应用,以满足文件系统对租户之间的安全隔离、多样化的SLA和可升级性的要求。为此,本发明的总体构思是,增强用于访问文件系统的中间件,尤其是利用了 JAVA 虚拟机的代理机制,来提供传统应用根据JVM提供的文件访问接口。按照本发明的一个方面,提供一种用文件代理处理对多租户应用的文件访问请求的方法,包含由所述文件代理执行的下述步骤截获所述文件访问请求;基于预定的文件隔离模型,转换所述文件访问请求;将经过转换的文件访问请求传送到操作系统。按照本发明的另一个方面,提供一种用于处理对多租户应用的文件访问请求的文件代理装置,包含截获模块,用于截获文件访问请求;转换模块,用于基于预定的文件隔离模型,转换文件访问请求;传送模块,用于将经过转换的文件访问请求传送到操作系统。相关联地,本发明还提出一种适于多租户应用的多租户文件系统,该多租户文件系统与本发明的方法和文件代理装置结合使用,可更好地支持满足不同SLA的租户文件的隔离和访问控制。


所附权利要求中阐述了被认为是本发明的特点的创造性特征。但是,通过参照附图阅读下面对示例性实施例的详细说明可更好地理解发明本身以及其使用模式、另外的目标、特征以及优点,在附图中图IA和IB表示现有技术实现的多租户应用的文件访问的一种方式;图2表示按照本发明的一个实施例的流程图;图3A表示一个文件夹形式的文件系统;图;3B示例性地表示按照本发明实施例的一个MT文件系统;图4表示本发明方法一个实施例构造MT文件系统的流程图;图5示例性地表示访问控制列表的例子;图6示例性地表示租户与租户文件夹的映射;图7示出了按照本发明一个实施例的装置的概略框图;图8是文件代理装置示意图;以及图9是本发明另一实施方式示意图。
具体实施例方式下面参照附图来说明本发明的实施例。在下面的说明中,阐述了许多具体细节以便更全面地了解本发明。但是,对于本技术领域内的技术人员很明显,本发明的实现可不具有这些具体细节。此外,应当理解的是,本发明并不限于所介绍的特定实施例。相反,可以考虑用下面的特征和元素的任意组合来实施和实践本发明。而无论它们是否涉及不同的实施例。因此,下面的方面、特征、实施例和优点仅作说明之用而不应被看作是所附权利要求的要素或限定,除非权利要求中明确提出。图IA和IB示意性地表示传统技术实现多租户应用的文件访问的一种方式。如图 IA所示,应用程序100是一种适于单租户模型的应用的一部分应用程序,其功能是访问文件名为 “fiIeName,,的文件(“viewFile (StringfileName),,)。在单租户模型下,没有在多个租户之间隔离租户文件的问题。然而,为了支持应用程序100在多租户模型下能被多个租户使用,要在应用程序100中增加一段代码,或称MT 增强代码10a,由此把应用程序100转换成适于MT模型下的文件访问的应用程序101。MT增强代码IOa的功能,是基于按照多租户模型下的租户文件隔离模型,由文件名“filename”获得与请求文件访问的租户相关联的目标文件名,例如 “tenantTargetFiIeName”。MT增强代码100-A的逻辑,因租户文件隔离方式而异。图IB表示按照现有技术在一个服务平台上实现应用程序101的文件访问的例子。 如图IB所示,该服务平台包含Web应用服务器(WAS)和在WAS上部署的java虚拟机(JVM), 以及操作系统(OS)和文件系统(FS)。包含应用程序101的应用,部署在Web应用服务器WAS上。在这种部署下,以下列方式处理应用程序101的文件访问。111.租户(或租户的用户)发出文件访问请求,文件访问请求包含文件名。文件访问请求还可以包含其它参数,例如访问类型等。112.应用程序101向JVM发送文件访问请求,文件访问请求包含目标文件名。
如上文结合图1所述的那样,目标文件名是通过MT增强代码IOa由文件名转换而来的。113. JVM将文件访问请求传送到操作系统。114.操作系统处理文件访问请求,将处理结果返回JVM。115. JVM将处理结果返回到应用程序。图2表示按照本发明的实施例在一个服务平台上实现应用程序100的文件访问的例子。图2所示的服务平台与图1所示的基本相同,所不同的是,部署在Web应用服务器 WAS上的应用,包含的是如图IB所示的未转换前的应用100,并且在虚拟机(JVM)上部署了一个文件代理200。按照本发明的一个实施例,在这种部署下,以下列方式处理应用程序101的文件访问ο211.租户(或租户的用户)发出文件访问请求,文件访问请求包含文件名。212.应用程序100向JVM发送文件访问请求,文件访问请求包含文件名;文件代理200截获该文件访问请求,转换文件访问请求,例如将文件访问请求中的文件名转换为目标文件名。213.文件代理200将转换了的文件访问请求传送到操作系统。例如,JVM调用注入了 MT相关逻辑的文件IO实现类定义的方法,与操作系统的应用程序接口(API)交互,将文件访问请求传送到操作系统。214.操作系统处理转换了的文件访问请求,将处理结果返回JVM。215. JVM将处理结果返回到应用程序。与图IB所示的方法相比,本发明实施例的用文件代理处理对多租户应用的文件访问请求的方法的特征在于包含以下步骤截获文件访问请求;基于预定的文件隔离模型,转换文件访问请求;将经过转换的文件访问请求传送到操作系统。按照本发明的一个实施例,文件代理200部署在JVM上。在这种情况下,文件代理 200可以以下述方式来截获文件访问请求。文件代理200监测JVM是否将要加载一个文件IO实现类定义(file/10 implement class)0多租户应用是通过用java代码调用文件IO接口(file/IOinterface),向JVM发送文件访问请求的。作为对该文件访问请求的响应,JVM要加载一个文件IO实现类定义。 所属技术领域的技术人员知道,文件IO实现类定义包含方法、属性、变量等参数,JVM通过文件IO实现类定义的方法,与操作系统的应用程序接口交互,来操作文件系统。按照本发明的实施例,如果文件代理200监测到JVM将要加载文件IO实现类定义,就向JVM要加载的文件IO实现类定义的方法,注入文件访问请求转换逻辑。所述技术领域的技术人员知道,这使得注入的文件访问请求转换逻辑在底层访问之前就能够进行相关的处理。注入的文件访问请求转换逻辑,将基于预定的文件隔离模型,转换文件访问请求。转换文件访问请求的方式,因具体的实现而异,尤其与所采用的文件隔离模型有关。按照本发明的一个实施例,可以通过以下步骤获得预定的文件隔离模型识别发出文件访问请求的租户的标识;根据租户的标识,获得对应的租户元数据;从租户元数据中获得预定的文件隔离模型。例如,对于操作应用的用户,可以通过查询租户的注册信息来验证用户,在验证该用户是合法注册租户的一个用户时,获得该用户所属的注册租户的租户标识。所述技术领域的技术人员知道,通常在用户登录时验证用户,可以在登录后的用户会话期间,将登录时所获得的合法用户的租户标识保存起来。这样,无论用户在用户会话期间的任何时候发出文件访问请求,都能获得其所属租户的租户标识。按照本发明的一个实施例,文件访问请求转换逻辑基于预定的文件隔离模型,把文件访问请求中的文件名转换为目标文件名,其过程可以与图IA中的MT增强代码IOa的相同或相似。由此产生了经过转换的文件访问请求。显然,文件访问请求转换逻辑的内容不限于此。按照本发明的实施例,JVM可以通过调用注入了文件访问请求转换逻辑的文件IO 实现类定义的方法,将经过转换的文件访问请求传送到操作系统的应用程序接口。按照本发明的实施例,文件访问请求转换逻辑可以进一步根据租户元数据中的访问控制列表ACL,确定对于目标文件名指示的目标文件来说,经过转换的文件访问请求是否合乎权限。如果合乎权限,则传送经过转换的文件访问请求;否则,就不传送经过转换的文件访问请求。例如,如果文件访问请求要修改一个不允许修改的文件,例如应用级文件,则不向操作系统传送该文件访问请求。当然,所属技术领域的技术人员知道,操作系统在操作文件系统时,也可参考ACL 来确定是否接受文件访问请求。然而,在向操作系统传送文件访问请求之前进行过滤的额外好处,是潜在地节省操作系统的资源。如上文所述,如MT增强代码IOa —样,按照本发明实施例的文件代理200向JVM 要加载的文件IO实现类定义的方法注入的文件访问请求转换逻辑,与多租户应用的文件隔离模型或方式有密切的关系。下文将说明按照本发明的可以与上述用文件代理处理对多租户应用的文件访问请求的方法结合实施的文件隔离模型的例子。首先简单介绍应用的文件结构。下表是一个示例性文件系统的应用文件结构的片段。
权利要求
1.一种用文件代理处理对多租户应用的文件访问请求的方法,包含由所述文件代理执行的下述步骤截获所述文件访问请求;基于预定的文件隔离模型,转换所述文件访问请求;将经过转换的文件访问请求传送到操作系统。
2.权利要求1的方法,其中,文件代理是java虚拟机JVM上的文件代理,所述截获文件访问请求的步骤包含响应于监测到JVM要加载文件IO实现类定义,向所述要加载的文件IO实现类定义的方法注入文件访问请求转换逻辑;其中,JVM响应多租户应用通过调用文件IO接口向JVM 发送文件访问请求而要加载文件IO实现类定义。
3.权利要求2的方法,其中,由注入了文件访问请求转换逻辑的文件IO实现类定义的方法,基于预定的文件隔离模型,转换文件访问请求。
4.权利要求3的方法,其中,所述将经过转换的文件访问请求传送到操作系统的步骤包含由注入了文件访问请求转换逻辑的文件IO实现类定义的方法,将经过转换的文件访问请求传送到操作系统的应用程序接口。
5.权利要求1-4的任何之一的方法,进一步包含以下步骤识别发出文件访问请求的租户的标识;根据租户的标识,获得对应的租户元数据;从租户元数据中获得预定的文件隔离模型。
6.权利要求5的方法,其中,所述转换文件访问请求,包含基于所获得的预定的文件隔离模型,把文件访问请求中的文件名转换为目标文件名,从而得到经过转换的文件访问请求。
7.权利要求5的方法,进一步包含根据租户元数据中的访问控制列表ACL,确定对于目标文件名指示的目标文件来说,经过转换的文件访问请求是否合乎权限,并且,所述将经过转换的文件访问请求传送到操作系统的步骤,仅传送合乎权限的经过转换的文件访问请求。
8.权利要求1-4的任何之一的方法,其中,按照所述预定的文件隔离模型,多租户应用的租户有专用的文件夹,并且在多租户元数据中,包含租户文件夹的配置参数。
9.权利要求8的方法,其中,租户的专用文件夹通过下列方式建立分析多租户应用的文件系统,构建多租户应用的应用文件夹;根据租户的SLA和应用文件夹,设置租户专用的租户文件夹,将选定的文件从应用文件夹复制到租户文件夹;在多租户元数据中保存应用文件夹名以及租户与租户文件夹之间的映射关系。
10.权利要求9的方法,其中,所述选定的文件包含下列至少之一应用级文件;租户特有的文件;租户可修改的预生成文件。
11.权利要求9的方法,进一步包含在多租户元数据中保存租户文件夹的文件的访问控制列表ACL,其中规定租户对租户文件夹中的链接的应用级文件只能进行读操作。
12.权利要求9的方法,其中,所述配置参数包含以下至少之一租户文件夹的数据大小、租户文件夹的最终分配位置。
13.一种用于处理对多租户应用的文件访问请求的文件代理装置,包含截获模块,用于截获文件访问请求;转换模块,用于基于预定的文件隔离模型,转换文件访问请求;传送模块,用于将经过转换的文件访问请求传送到操作系统。
14.权利要求13的文件代理装置,其中,所述截获模块包含监测装置,用于监测JVM是否响应多租户应用通过调用文件IO接口向JVM发送文件访问请求而要加载文件IO实现类定义;注入装置,用于根据监测装置的监测结果,向所述要加载的文件IO实现类定义的方法注入文件访问请求转换逻辑。
15.权利要求14的文件代理装置,其中,转换装置通过注入了文件访问请求转换逻辑的文件IO实现类定义的方法,基于预定的文件隔离模型,转换文件访问请求。
16.权利要求15的文件代理装置,其中,传送模块包含调用模块,用于调用注入了文件访问请求转换逻辑的文件IO实现类定义的方法,将经过转换的文件访问请求传送到操作系统的应用程序接口。
17.权利要求13-16的任何之一的文件代理装置,进一步包含识别模块,用于识别发出文件访问请求的租户的标识;获取模块,用于根据租户的标识,获得对应的租户元数据,从租户元数据中获得预定的文件隔离模型。
18.权利要求17的文件代理装置,其中,转换装置进一步基于获取模块所获得的预定的文件隔离模型,把文件访问请求中的文件名转换为目标文件名,从而得到经过转换的文件访问请求。
19.权利要求17的文件代理装置,进一步包含访问控制模块,用于根据租户元数据中的访问控制列表ACL,确定对于目标文件名指示的目标文件来说,经过转换的文件访问请求是否合乎权限,并且,所述传送模块仅传送合乎权限的经过转换的文件访问请求。
20.权利要求13-16的任何之一的文件代理装置,其中,按照预定的文件隔离模型,多租户应用的租户有专用的文件夹,并且在多租户元数据中,包含租户文件夹的配置参数。
21.权利要求20的文件代理装置,其中,租户的专用文件夹通过下列方式建立分析多租户应用的文件系统,构建多租户应用的应用文件夹;根据租户的SLA和应用文件夹,设置租户专用的租户文件夹,将选定的文件从应用文件夹复制到租户文件夹;在多租户元数据中保存应用文件夹名以及租户与租户文件夹之间的映射关系。
全文摘要
本发明涉及多租户技术。公开了提供一种用文件代理处理对多租户应用的文件访问请求的方法以及响应的文件代理装置,该方法包含截获文件访问请求;基于预定的文件隔离模型,转换文件访问请求;以及将经过转换的文件访问请求传送到操作系统。利用本发明,可以减少为了使单租户应用支持多租户模型下的操作而修改应用的源代码的需要。本发明还提出一种适于多租户应用的多租户文件系统,本发明的方法和文件代理装置与该多租户文件系统相关联地使用,可更好地支持满足不同SLA的租户文件的隔离和访问控制。
文档编号G06F21/22GK102236762SQ20101016870
公开日2011年11月9日 申请日期2010年4月30日 优先权日2010年4月30日
发明者安文豪, 王志虎, 郭常杰, 马哲, 高波 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1