一种多租户模式的技术实现方法技术

技术编号:21484994 阅读:35 留言:0更新日期:2019-06-29 06:35
本发明专利技术提供一种多租户模式的技术实现方法,属于Java Web应用开发技术领域,本发明专利技术首先根据租户要求分配应用系统对应的域名,租户访问分配给自己的应用系统;其次nginx根据请求的url解析跳转到分配给租户使用的对应应用系统上;再次应用系统调用共享的核心业务服务;最后服务返回租户权限内的数据,呈现给租户。可快速响应租户个性化需求,维护和购置成本低、安全性高。

【技术实现步骤摘要】
一种多租户模式的技术实现方法
本专利技术涉及JavaWeb应用开发技术,尤其涉及一种多租户模式的技术实现方法。
技术介绍
在多租户技术中,租户(tenant)是指使用系统或电脑运算资源的客户,但在多租户技术中,租户包含在系统中可识别为指定用户的一切数据,举凡帐户与统计信息(accountingdata),用户在系统中建置的各式数据,以及用户本身的客制化应用程序环境等,都属于租户的范围,而租户所使用的则是基于供应商所开发或建置的应用系统或运算资源等,供应商所设计的应用系统会容纳数个以上的用户在同一个环境下使用,为了要让多个用户的环境能力同一个应用程序与运算环境上使用,则应用程序与运算环境必须要特别设计,除了可以让系统平台可以允许同时让多份相同的应用程序运行外,保护租户数据的隐私与安全也是多租户技术的关键之一。随着经济社会的发展和人们对信息化认识的提高,租户对系统的个性化需求越来越普遍、对系统的安全性要求越来越高;另外由于租户自身多属于中小企业,又面临着降成本、促成效的迫切需求。常见的多租户三种设计方案:一独立数据库,这种方案的用户数据隔离级别最高,安全性最好,但成本也高。二共享数据库,独立schema,这种方案为安全性要求较高的租户提供了一定程度的逻辑数据隔离,但跨租户统计数据困难。三共享数据库,共享schema,共享数据表,这种方案维护购置成本最低,允许每个数据库支持的租户数量最多,但安全性最低。
技术实现思路
为了解决以上技术问题,本专利技术提出了一种多租户模式的技术实现方法,融合了上述三种方案的优势,旨在快速响应租户个性化需求,提高系统安全性,降低租户购置成本,降低技术实现复杂度。本专利技术的目的是通过一整套完善的javaweb架构实现技术,快速响应租户个性化需求,提高系统安全性,降低租户购置成本,降低技术实现复杂度本专利技术的技术方案是:首先根据租户要求分配应用系统对应的域名,租户访问分配给自己的应用系统;其次nginx根据请求的url解析跳转到分配给租户使用的对应应用系统上;再次应用系统调用共享的核心业务服务;最后服务返回租户权限内的数据,呈现给租户。进一步的,在实现中重点包括三部分:nginx反向代理、个性化应用系统、后台服务及数据库中数据的隔离。进一步的,所述Nginx反向代理,通过配置nginx,实现nginx服务器的反向代理功能;使得不同租户通过不同的域名访问分配给自己的应用系统。Nginx服务器反向代理的实现,具体可参考Nginx官方文档,在此不再赘述。进一步的,所述个性化应用系统,采用当前javaweb成熟的mvc轻量级架构,实现租户系统功能组件化、模块化开发,可快速响应租户的个性化需求,满足租户个性化需要。个性化应用系统为租户间隔离,即每个租户私有自己的应用系统;对租户的敏感信息(手机号、邮箱、密码等),系统进行了加密处理;对特殊符号执行安全解析过滤。进一步的,所述后台服务及数据库中数据的隔离,后台服务提供根据租户标识新增、修改、删除、查询租户及其业务信息的各种服务;通用工具类中提供对租户信息的加、解密算法、危险敏感字符的过滤、权限验证方法等;数据库中租户信息及租户权限信息与业务数据scheme级别隔离;业务数据通过租户标识逻辑隔离。本专利技术的有益效果是与其他模式相比,本专利技术是一种共享数据库、共享服务、隔离应用系统的架构模式,可以快速响应租户个性化需求,提高系统安全性,降低租户购置成本和技术实现复杂度。附图说明图1是本专利技术的工作流程示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例,基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围在本技术方案设计流程中,首先根据租户要求分配应用系统对应的域名,租户访问分配给自己的应用系统;其次nginx根据请求的url解析跳转到分配给租户使用的对应应用系统上;再次应用系统调用共享的核心业务服务;最后服务返回租户权限内的数据,呈现给租户。在实现中重点包括三部分:nginx反向代理、个性化应用系统、后台服务及数据库中数据的隔离。Nginx反向代理,通过配置nginx,实现nginx服务器的反向代理功能;使得不同租户通过不同的域名访问分配给自己的应用系统。Nginx服务器反向代理的实现,具体可参考Nginx官方文档,在此不再赘述。个性化应用系统,采用当前javaweb成熟的mvc轻量级架构,实现租户系统功能组件化、模块化开发,可快速响应租户的个性化需求,满足租户个性化需要。应用系统为租户间隔离,即每个租户私有自己的应用系统;对租户的敏感信息(手机号、邮箱、密码等),系统进行了加密处理;对特殊符号执行安全解析过滤。后台服务及数据库中数据的隔离,后台服务提供根据租户标识新增、修改、删除、查询租户及其业务信息的各种服务;通用工具类中提供对租户信息的加、解密算法、危险敏感字符的过滤、权限验证方法等;数据库中租户信息及租户权限信息与业务数据scheme级别隔离;业务数据通过租户标识逻辑隔离。以租户A为例:1、租户A在浏览器地址栏输入分配的域名地址。2、通过解析配置,nginx服务器把请求转发给租户A私有的个性化系统WebServer1。3、WebServer1调用BaseServer提供的服务。4、BaseServer服务解析WebServer1传来的加密的租户A的身份标识,并返回租户A权限内的数据,最终呈现给租户A。本专利技术应用系统程序隔离,不但提升了系统安全性,也可以满足租户个性化需求;服务、数据库共享,实现数据逻辑隔离,降低租户购置成本和技术复杂度。架构通过nginx反向代理机制转到分配给各租户的应用系统。各租户系统调用的服务共享、数据库共享,且实现了数据的逻辑隔离。以上所述仅为本专利技术的较佳实施例,仅用于说明本专利技术的技术方案,并非用于限定本专利技术的保护范围。凡在本专利技术的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本专利技术的保护范围内。本文档来自技高网...

【技术保护点】
1.一种多租户模式的技术实现方法,其特征在于,首先根据租户要求分配应用系统对应的域名,租户访问分配给自己的应用系统;其次nginx根据请求的url解析跳转到分配给租户使用的对应应用系统上;再次应用系统调用共享的核心业务服务;最后服务返回租户权限内的数据,呈现给租户。

【技术特征摘要】
1.一种多租户模式的技术实现方法,其特征在于,首先根据租户要求分配应用系统对应的域名,租户访问分配给自己的应用系统;其次nginx根据请求的url解析跳转到分配给租户使用的对应应用系统上;再次应用系统调用共享的核心业务服务;最后服务返回租户权限内的数据,呈现给租户。2.根据权利要求1所述的方法,其特征在于,在实现中主要包括三部分:nginx反向代理、个性化应用系统、后台服务及数据库中数据的隔离。3.根据权利要求2所述的方法,其特征在于,所述Nginx反向代理,通过配置nginx,实现nginx服务器的反向代理功能;使得不同租户通过不同的域名访问分配给自己的应用系统。4.根据权利要求1所述的方法,其特征在于,所述个性化应用系统,采用当前javaweb的mv...

【专利技术属性】
技术研发人员:李向阳王振峰辛登全
申请(专利权)人:上海浪潮云计算服务有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1