基于saas服务的多租户无感传参系统的制作方法
未命名
07-22
阅读:72
评论:0

技术领域:
:,具体涉及基于saas服务的多租户无感传参系统。
背景技术:
::2.saas,软件即服务,是一种通过internet提供软件的模式:客户根据自己实际需求,通过互联网向厂商定购所需的应用软件服务,按定购的服务多少和时间长短向厂商支付费用,并通过互联网获得厂商提供的服务。从而使客户不用再购买软件,而改用向提供商租用基于web-base的软件,来管理企业经营活动,且无需对软件进行维护,由服务提供商全权管理和维护软件,软件厂商在向客户提供互联网应用的同时,也提供软件的离线操作和本地数据存储,让用户随时随地都可以使用其定购的软件和服务。3.而因为这种saas服务分为多个不同的租户,在服务提供商进行管理维护时,需要将各租户之间的数据进行区分隔离,以保证数据的安全性。而现在对租户数据的隔离一般都依赖于租户标识码,开发者在对软件进行维护或管理时,在获取数据前都需要传入租户标识,以区分数据信息,防止数据混乱,导致开发者需要时刻关注租户标识,造成编码时大量的重复工作,同时也很容易遗漏,造成租户间数据错乱的问题。4.因此,针对在saas服务开发过程中需要重复传入租户标识,且很容易出错的问题,现在需要提供基于saas服务的多租户无感传参系统。技术实现要素:5.本发明意在提供基于saas服务的多租户无感传参系统,解决在saas服务中需要重复传入租户标识且容易出错的问题。6.为达到上述目的,本发明采用如下技术方案:7.本发明用于提供一种在saas服务中自动对租户标识进行识别,并根据开发操作自动填充的传参系统,具体为基于saas服务的多租户无感传参系统,具体包括登录模块,用于确定登录用户的租户标识,并将租户标识提取存储,所述租户标识存储于session中;识别模块,用于在与db进行交互时,自动识别存储在session中的租户标识的table,并判定table是否需要进行租户识别鉴定,并将需要鉴定的租户标识形成标记;拦截模块,用于根据标记拦截租户标识,并对拦截的租户标识按照设定的属性进行填充,并完成隐式修改;配置模块,用于对不需要鉴定的租户标识进行配置;异常模块,用于检测未配置的租户标识,并发出异常提示。8.本方案的原理及优点是:在saas服务的应用中,由于为多租户模式,各租户之间的数据需要隔离,而隔离都依赖于租户标识,因此在开发时,为避免数据混乱,也需要将租户数据隔离处理,导致在开发时租户数据与租户标识需要作为一个整体,以此实现租户数据隔离。但本技术克服技术偏见,将租户标识单独识别处理,通过用户登录自动确定用户所属的租户标识,并将租户标识进行存储,然后在存储的租户标识中进行操作,保证租户标识数据的稳定性,避免数据丢失。同时通过对租户标识进行鉴定识别,并根据识别结果进行有效拦截,从而隔离大部分需要鉴定的租户标识,并对该部分租户标识进行自动填充和修改,从而使开发者不用再额外关注这部分租户标识,极大降低开发者的重复工作量,而只需要对少量不需要鉴定的租户标识进行配置,极大降低操作难度,保证开发过程中数据稳定性,确保数据隔离的安全性,实现开发无感知租户的效果。9.优选的,作为一种改进,所述拦截模块为db拦截器模块;所述设定的属性为根据开发操作的db类型以及table,对租户标识进行填充。10.优选的,作为一种改进,所述db类型为mysql;所述table为具体数据库表名称。11.优选的,作为一种改进,所述填充方式为在租户标识前添加enterprisecode标识,并对sql进行隐式修改。通过直接在租户标识前添加企业代码标识,便于快速对租户进行区分,且不会存在租户重复等问题,保证租户数据的唯一性和安全性。12.优选的,作为一种改进,所述配置模块包括table配置子模块和db接口配置子模块;所述table配置子模块用于对不需要鉴定的table进行配置;所述db接口配置子模块用于对不需要鉴定的db接口进行配置。通过不同的子模块分别对需要鉴定和不需要鉴定的信息进行配置,分类处理避免出现数据混乱或数据交叉,导致数据准确性,同时将同类数据批量处理,也能够提高处理效率。13.优选的,作为一种改进,所述table配置子模块用于对需要进行租户鉴定的数据库表名称进行配置,配置方式包括通过配置文件进行配置;所述db接口配置子模块用于在与数据库进行交互时,对不必区分租户的操作进行配置。对不需要鉴定租户的操作类型统一处理,进而避免反复关注租户标识,有效防止操作错误,提高开发效率。14.优选的,作为一种改进,所述异常模块包括table异常检测子模块和db接口异常检测子模块。所述异常提示为根据异常内容分别弹出提示框。15.本方案通过用户登录确定用户所属租户,存储于session中,在进行与db交互时,自动识别table是否需要进行租户识别,如果需要则通过db拦截器隐式修改sql,使开发无感知租户这个概率。在新增数据时也会自动携带相应的租户标识,从而使开发者在开发过程中不必过度关注租户标识的问题,减少编码的重复工作量,避免造成租户之间数据混乱或数据错误的问题。而一般在saas服务中,都是分为不同租户的,而租户之间的数据都是独立的,因此需要将租户数据进行隔离,而隔离方式都依赖租户标识,导致开发者在获取任何数据的前提下都会将租户数据和租户标识作为一个整体处理,从而导致对租户标识的反复操作,但本技术将租户标识与租户数据分开,将租户标识作为单独对象处理,自动识别租户标识并将租户标识分类处理,即减少了开发者的重复工作量,降低对租户标识的过度关注,同时又进一步保证开发过程中数据的准确性,极大提升开发效率。附图说明16.图1为本发明实施例的结构示意图。具体实施方式17.下面通过具体实施方式进一步详细说明:18.名词解释,saas:software-as-a-service(软件即服务)的简称;19.无感传参:无感知参数传递的简称;20.session:session_cache_limiter,是session在客户端的缓存方式,有nocache,private,private_no_expire,public几种;21.db:数据库存储;22.table:一个数据库控件,主要用于在web页面上创建表格;23.sql:sql语言,是结构化查询语言(structuredquerylanguage)的简称;24.enterprisecode:企业代码。25.实施例基本如附图1所示:基于saas服务的多租户无感传参系统,用于在与db交互时,自动识别租户标识,并对需要进行鉴定的租户标识进行自动拦截,完成对租户标识的自动填充,从而自动隔离需要鉴定的租户标识,减少开发者对租户标识的重复工作量,降低数据错误率。具体包括登录模块,通过用户登录确定用户所属租户,从而获得登录用户的租户标识,并将租户标识存储于session中;识别模块,用于在进行与db交互时,自动对存储于所述session中的租户标识进行识别,本实施例中,将自动识别table是否需要进行租户识别鉴定,具体实现方案为获取本次执行的sql语句并解析出对应table数据库表名称,最终与配置的表名称对比得到最终结果,并对需要进行鉴定的租户标识进行标记,形成鉴定标记。26.具体的,当所述识别模块将需要鉴定的租户标识标记后,拦截模块将根据鉴定标记在与数据库进行交互时对租户标识进行拦截,本实施例中,将通过db拦截器模块对具有鉴定标记的租户标识进行拦截,同时,所述拦截模块还根据开发操作的db类型以及table,对拦截的租户标识进行填充。27.具体的,本实施例中,所述拦截模块根据用户操作的db类型及具体操作数据库的table名称,采用控制层无感知添加方式在租户标识前添加enterprisecode进行填充,同时采用系统自动替换方式对sql进行隐式修改,其中隐式表示非用户操作,而是我们系统提供的额外操作。28.具体的,当对需要鉴定的租户标识完成自动填充后,开发者将不再需要额外关注该类租户标识,从而实现开发无感知租户的效果。同时,配置模块将对session中不需要鉴定的租户标识进行配置;本实施例中,所述配置模块包括table配置子模块和db接口配置子模块。29.具体的,所述table配置子模块用于对不需要鉴定的table进行配置,采用逐一对比方式在项目的配置文件中进行对不需要校验的表名称进行配置。由于本实施例中,所采用的系统为saas服务系统,本就是多租户体系,因此系统中不需要校验的table相对较少,为了在配置时极大降低开发者的工作量,所以采用对不需要鉴定的table进行配置,这样将有效避免因配置数量过多造成开发者遗漏的情况,保证配置操作的精准性。30.具体的,所述db接口配置子模块用于对不需要鉴定的db接口进行配置,开发者在开发时,采用开发者自行确认的方式在项目的配置文件中对不需要校验租户标识的接口信息进行配置。在与数据库进行交互的时候,某些操作类型是不必区分租户的,例如:新增数据,此时将采用db接口配置子模块进行配置。31.具体的,还包括异常模块,用于检测未配置的租户标识,并发出异常提示。本实施例中,当开发者在开发过程中忘记或遗漏了需要配置的table或db接口,所述异常模块将采用解析sql语句,根据具体db接口和table名称进行逐一对比方式进行自动校验,并通过弹出提示框的形式对异常内容进行提示,便于及时提醒开发者对异常情况进行处理,同时,由于需要配置的table或db接口数量较少,异常提醒也不会过多影响开发者的开发工作,进而确保开发过程的顺畅和稳定,极大降低错误率,且有效提高开发效率。32.本实施例中,通过登录模块自动提取对应的租户标识,并将租户标识存储于session中,保证开发者在web页之间跳转时,租户标识不会丢失,确保数据的稳定性。同时,在session中将需要鉴定的租户标识自动识别提取,并通过db拦截器进行拦截,从而隔离了大部分需要鉴定的租户标识,并自动完成对租户标识的填充,以完成后端的隐式修改过程,从而使开发者在开发过程中不再需要关注需要鉴定的租户标识,极大减少了开发者的重复工作量,实现无感知开发的效果。同时开发者只需要对不需要鉴定的租户标识进行配置,针对少量的租户标识进行配置,减少错误率,极大提高开发效率,保证数据稳定性,有效减少数据混乱的情况。且在需要配置的数据较少的情况下,若出现异常情况时,也能够及时发出提示,及时有效的进行针对性处理,降低数据量大带来的操作难度,更便于操作,同时也确保了数据隔离的安全性。33.以上所述的仅是本发明的实施例,方案中公知的具体技术方案和/或特性等常识在此未作过多描述。应当指出,对于本领域的技术人员来说,在不脱离本发明技术方案的前提下,还可以作出若干变形和改进,这些也应该视为本发明的保护范围,这些都不会影响本发明实施的效果和专利的实用性。本技术要求的保护范围应当以其权利要求的内容为准,说明书中的具体实施方式等记载可以用于解释权利要求的内容。当前第1页12当前第1页12
技术特征:
1.基于saas服务的多租户无感传参系统,其特征在于,包括登录模块,用于确定登录用户的租户标识,并将租户标识提取存储,所述租户标识存储于session中;识别模块,用于在与db进行交互时,自动识别存储在session中的租户标识的table,并判定table是否需要进行租户识别鉴定,并将需要鉴定的租户标识形成标记;拦截模块,用于根据标记拦截租户标识,并对拦截的租户标识按照设定的属性进行填充,并完成隐式修改;配置模块,用于对不需要鉴定的租户标识进行配置;异常模块,用于检测未配置的租户标识,并发出异常提示。2.根据权利要求1所述的基于saas服务的多租户无感传参系统,其特征在于:所述拦截模块为db拦截器模块;设定的属性为根据开发操作的db类型以及table,对租户标识进行填充。3.根据权利要求2所述的基于saas服务的多租户无感传参系统,其特征在于:所述db类型为mysql;所述table为具体数据库表名称。4.根据权利要求3所述的基于saas服务的多租户无感传参系统,其特征在于:所述填充方式为在租户标识前添加enterprisecode标识,并对sql进行隐式修改。5.根据权利要求4所述的基于saas服务的多租户无感传参系统,其特征在于:所述配置模块包括table配置子模块和db接口配置子模块;所述table配置子模块用于对不需要鉴定的table进行配置;所述db接口配置子模块用于对不需要鉴定的db接口进行配置。6.根据权利要求5所述的基于saas服务的多租户无感传参系统,其特征在于:所述table配置子模块用于对需要进行租户鉴定的数据库表名称进行配置,配置方式包括通过配置文件进行配置;所述db接口配置子模块用于在与数据库进行交互时,对不必区分租户的操作进行配置。7.根据权利要求6所述的基于saas服务的多租户无感传参系统,其特征在于:所述异常模块包括table异常检测子模块和db接口异常检测子模块。8.根据权利要求7所述的基于saas服务的多租户无感传参系统,其特征在于:所述异常提示为根据异常内容分别弹出提示框。
技术总结
本发明涉及无感传参技术领域,公开了基于saas服务的多租户无感传参系统,包括登录模块,用于确定登录用户的租户标识,并将租户标识提取存储;识别模块,用于对存储的租户标识进行鉴定判定,并将需要鉴定的租户标识形成标记;拦截模块,用于根据标记拦截租户标识,并对拦截的租户标识按照设定的属性进行填充,并完成隐式修改;配置模块,用于对不需要鉴定的租户标识进行配置;异常模块,用于检测未配置的租户标识,并发出异常提示。本申请自动识别并存储租户标识,并对需要鉴定的租户标识进行拦截,自动进行填充和修改,实现开发无感知租户的效果,极大减少开发过程中的重复工作量,有效确保数据稳定性和安全性。效确保数据稳定性和安全性。效确保数据稳定性和安全性。
技术研发人员:陈孟 许楠
受保护的技术使用者:重庆天智慧启科技有限公司
技术研发日:2023.04.23
技术公布日:2023/7/20
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/