一种组件化产品中租户隔离的方法及终端与流程

文档序号:23724124发布日期:2021-01-26 14:39阅读:55来源:国知局
一种组件化产品中租户隔离的方法及终端与流程

[0001]
本发明涉及组件化开发领域,尤其涉及一种组件化产品中租户隔离的方法及终端。


背景技术:

[0002]
组件化是现在软件开发的一种发展趋势,像乐高一样把一个一个的组件快速拼装成产品,能够快速实现给客户演示或进行低成本的试错;在组件化技术中,租户是组件数据隔离的基础;应同一个组件可能会在不同产品的构造中被使用,当一个一个组件组装在一起工作时,需要保证在一个产品中,各组件访问的数据都是基于该产品进行访问的;特别的,在一些网络教育服务中需要更加复杂的租户隔离方案;如同一产品通用一套的访问客户端(即包含web站点、android、ios等各端),为每个学校乃至班级都开通一个社区,每个社区的数据都是按社区的租户数据隔离,这里的社区就相当于一个小产品了。
[0003]
常用的租户隔离方法,需要在每个组件申请租户时,都分配一个独立的租户标识,那么它在组件化开发中使用时带来的问题在于:产品中组件租户识别困难,往往一产品使用的组件很多,此时产品难以获取每个组件的租户标识且效率低下;产品中组件间切换困难,用户在产品中从组件a切换组件b时,难以知道组件b的租户标识,切换过程耗时长;产品中组件存在多租户时,难于确认正确的租户,当用户在产品中从组件a切换到组件b时,如果组件b在该产品中存在多个租户,现有方式无法自动根据上下文推测组件b应该使用的租户标识,租户标识获取错误可能导致数据泄露。


技术实现要素:

[0004]
本发明所要解决的技术问题是:提供一种件化产品中租户隔离的方法及终端,解决组件化开发中租户隔离的问题。
[0005]
为了解决上述技术问题,本发明采用的一种技术方案为:
[0006]
一种组件化产品中租户隔离的方法,包括步骤;
[0007]
s1、获取产品中所有预设的业务,为每个所述业务分配业务标识;
[0008]
s2、获取所述业务对应的组件列表,根据所述业务标识为所述组件列表中每一组件开通租户;
[0009]
s3、将所述业务标识固化在所述产品中。
[0010]
为了解决上述技术问题,本发明采用的另一种技术方案为:
[0011]
一种组件化产品中租户隔离的终端,包括存储器、处理器及存储在存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
[0012]
s1、获取产品中所有预设的业务,为每个所述业务分配业务标识;
[0013]
s2、获取所述业务对应的组件列表,根据所述业务标识为所述组件列表中每一组件开通租户;
[0014]
s3、将所述业务标识固化在所述产品中。
[0015]
本发明的有益效果在于:为产品中所有预设的业务分配业务标识,以业务标识开通租户并将业务标识固化在产品中,在访问不同组件时根据业务标识进行访问,对于相同的业务,在业务内进行切换组件时无需重新获取标识,并且业务标识直接对应租户,能够同时完成对不同租户的隔离,提高组件开发中进行租户隔离后组件之间的访问效率。
附图说明
[0016]
图1为本发明实施例的一种组件化产品中租户隔离的方法的步骤流程图;
[0017]
图2为本发明实施例的一种组件化产品中租户隔离的终端的结构示意图;
[0018]
图3为本发明实施例的一种组件化产品中租户隔离的方法的访问结构示意图;
[0019]
图4为本发明实施例的一种组件化产品的结构示意图;
[0020]
图5为本发明实施例的一种组件化产品的管理模块示意图。
[0021]
标号说明:
[0022]
1、一种组件化产品中租户隔离的终端;2、处理器;3、存储器。
具体实施方式
[0023]
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
[0024]
请参照图1及图3至图5,一种组件化产品中租户隔离的方法,包括步骤;
[0025]
s1、获取产品中所有预设的业务,为每个所述业务分配业务标识;
[0026]
s2、获取所述业务对应的组件列表,根据所述业务标识为所述组件列表中每一组件开通租户;
[0027]
s3、将所述业务标识固化在所述产品中。
[0028]
从上述描述可知,本发明的有益效果在于:为产品中所有预设的业务分配业务标识,以业务标识开通租户并将业务标识固化在产品中,在访问不同组件时根据业务标识进行访问,对于相同的业务,在业务内进行切换组件时无需重新获取标识,并且业务标识直接对应租户,能够同时完成对不同租户的隔离,提高组件开发中进行租户隔离后组件之间的访问效率。
[0029]
进一步的,所述s1具体为:
[0030]
获取产品中所有预设的业务,将所述产品的产品标识作为所述业务中的主业务的主业务标识,将所述产品标识与预设的字符串组合作为所述业务中的子业务的子业务标识,所述主业务为公共使用业务,所述子业务为部分用户使用业务。
[0031]
由上述描述可知,将产品的产品标识作为主业务的业务标识,将产品标识与预设字符串组合作为子业务的业务标识,主业务为公共使用业务,子业务为部分用户使用业务,业务标识中都附带产品的产品标识,能够区分出不同产品,访问公共使用业务无需验证租户,加快了访问效率。
[0032]
进一步的,所述s3具体为:
[0033]
将所述业务标识设置在所述产品入口处;
[0034]
和/或
[0035]
将所述业务标识设置在所述业务入口处。
[0036]
由上述描述可知,固化业务标识,将业务标识设置在产品入口处或业务入口处,在用户访问相应产品或业务时能够容易获取到相应业务标识,无需发送相应请求数据进行业务标识的获取,提高了访问效率。
[0037]
进一步的,所述s3之后,还包括:
[0038]
接收访问请求,所述访问请求包括所述业务标识;
[0039]
根据所述业务标识访问相应组件,并返回执行结果。
[0040]
由上述描述可知,获取产品入口或业务入口处的业务标识后,在访问请求中加入业务标识,因租户是根据业务标识开通,故能够直接获取到相应租户的数据访问相应组件。
[0041]
进一步的,所述子业务标识包括组织子业务标识及社区子业务标识;
[0042]
所述组织子业务标识为所述产品标识与组织名的组合;
[0043]
所述社区子业务标识为所述产品标识与随机生成的字符串的组合。
[0044]
由上述描述可知,设置组织子业务标识及社区子业务标识,能够根据不同团体的需要为其设置相应的子业务,针对性强,在共享系统的同时为不同租户实现了一定程度上的个性化定制。
[0045]
请参照图2,一种组件化产品中租户隔离的终端,包括存储器、处理器及存储在存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
[0046]
s1、获取产品中所有预设的业务,为每个所述业务分配业务标识;
[0047]
s2、获取所述业务对应的组件列表,根据所述业务标识为所述组件列表中每一组件开通租户;
[0048]
s3、将所述业务标识固化在所述产品中。
[0049]
本发明的有益效果在于:为产品中所有预设的业务分配业务标识,以业务标识开通租户并将业务标识固化在产品中,在访问不同组件时根据业务标识进行访问,对于相同的业务,在业务内进行切换组件时无需重新获取标识,并且业务标识直接对应租户,能够同时完成对不同租户的隔离,提高组件开发中进行租户隔离后组件之间的访问效率。
[0050]
进一步的,所述s1具体为:
[0051]
获取产品中所有预设的业务,将所述产品的产品标识作为所述业务中的主业务的主业务标识,将所述产品标识与预设的字符串组合作为所述业务中的子业务的子业务标识,所述主业务为公共使用业务,所述子业务为部分用户使用业务。
[0052]
由上述描述可知,将产品的产品标识作为主业务的业务标识,将产品标识与预设字符串组合作为子业务的业务标识,主业务为公共使用业务,子业务为部分用户使用业务,业务标识中都附带产品的产品标识,能够区分出不同产品,访问公共使用业务无需验证租户,加快了访问效率。
[0053]
进一步的,所述s3具体为:
[0054]
将所述业务标识设置在所述产品入口处;
[0055]
和/或
[0056]
将所述业务标识设置在所述业务入口处。
[0057]
由上述描述可知,固化业务标识,将业务标识设置在产品入口处或业务入口处,在用户访问相应产品或业务时能够容易获取到相应业务标识,无需发送相应请求数据进行业
务标识的获取,提高了访问效率。
[0058]
进一步的,所述s3之后,还包括:
[0059]
接收访问请求,所述访问请求包括所述业务标识;
[0060]
根据所述业务标识访问相应组件,并返回执行结果。
[0061]
由上述描述可知,获取产品入口或业务入口处的业务标识后,在访问请求中加入业务标识,因租户是根据业务标识开通,故能够直接获取到相应租户的数据访问相应组件。
[0062]
进一步的,所述子业务标识包括组织子业务标识及社区子业务标识;
[0063]
所述组织子业务标识为所述产品标识与组织名的组合;
[0064]
所述社区子业务标识为所述产品标识与随机生成的字符串的组合。
[0065]
由上述描述可知,设置组织子业务标识及社区子业务标识,能够根据不同团体的需要为其设置相应的子业务,针对性强,在共享系统的同时为不同租户实现了一定程度上的个性化定制。
[0066]
请参照图1,本发明的实施例一为:
[0067]
从产品角度来说,一个产品可能有一类的业务,也可以有多类的业务。这里的业务应该是有多个组件组装起来的有机体;从组件来说,每有一个业务使用组件,就要为这个业务开一个“租户”,表示为产品的业务中在该组件下独立单元,以与其它产品产生逻辑上的隔离,不相互影响;
[0068]
一种组件化产品中租户隔离的方法,包括步骤:
[0069]
s1、获取产品中所有预设的业务,为每个所述业务分配业务标识;
[0070]
具体为:
[0071]
获取产品中所有预设的业务,将所述产品的产品标识作为所述业务中的主业务的主业务标识,将所述产品标识与预设的字符串组合作为所述业务中的子业务的子业务标识,所述主业务为公共使用业务,所述子业务为部分用户使用业务;
[0072]
其中,子业务标识包括组织子业务标识及社区子业务标识;
[0073]
所述组织子业务标识为所述产品标识与组织名的组合;
[0074]
所述社区子业务标识为所述产品标识与随机生成的字符串的组合;
[0075]
s2、获取所述业务对应的组件列表,根据所述业务标识为所述组件列表中每一组件开通租户;
[0076]
s3、将所述业务标识固化在所述产品中;
[0077]
具体为:
[0078]
将所述业务标识设置在所述产品入口处,和/或,将所述业务标识设置在所述业务入口处;
[0079]
s4、接收访问请求,所述访问请求包括所述业务标识;
[0080]
根据所述业务标识访问相应组件,并返回执行结果。
[0081]
请参照图3至图5,本发明的实施例二为:
[0082]
将上述的一种组件化产品中租户隔离的方法应用于实际场景中:
[0083]
创建产品,为产品分配产品标识app-id;为产品做业务规划,为每个业务分配业务标识app-biz,并维护业务中的组件列表数据;
[0084]
具体的,若该产品中只包含一个业务,则产品中组件只需开启一个租户,此时使用
产品标识作为业务标识;
[0085]
若该产品中包含有多个业务,则使用产品标识作为产品中主业务(公共使用业务)的主业务标识,根据主业务标识开通租户;为每个子业务设置子业务标识,根据子业务标识开通租户;
[0086]
具体的,开通租户的过程为:将业务标识作为组件中此业务的租户标识,若此组件中有固有的租户标识生成方法,则建立租户标识与业务标识的关联关系;
[0087]
其中子业务包括根据组织设置的组织子业务及根据社区设置的子社区业务,若为根据组织设置的子业务,则子业务标识为产品标识+组织标识(app-id+org-id);若为根据社区设置的子业务,则子业务标识为产品标识+随机码(app-id+biz-code);
[0088]
在组装产品时,可在产品入口中固化业务标识,和/或,在子业务的入口中固化业务标识;
[0089]
在一种可选的实施方式中,还可在产品的上下文中固化业务标识,产品上下文用于保存产品的业务数据,如产品有多少类的业务,每个业务的显示名称、子业务标识等;
[0090]
产品入口是指产品的访问首页,如果是web站点,就是站点首页,如果移动端,就是移动端首屏;产品入口可以固化业务标识,使用户进入产品时,能知道默认进入的业务,或者说,选择一个子业务标识,从而让系统知道当前的组件应该进入哪个租户;产品的上下文,可以让用户进入子业务时,有个可选列表;比如,一产品,访问其web站点,此时就知道是访问主业务;同时其还设置有个社区列表页,其显示的数据就是从产品上下文中获取社区子业务标识,然后可以选择其中的一个社区进行访问,其处理过程是通过业务标识切换实现组件的租户切换;
[0091]
请参照图4,在一种可选的实施方式中,在服务端设置产品管理和租户管理模块,产品管理模块维护产品的基础信息,如产品名称、描述等,能够进行产品信息的查询,并在创建产品是生成产品标识;租户管理模块维护产品中的业务信息,以及每个业务所对应的组件列表数据,在创建业务时,生成业务标识并开通业务下所有组件的租户,并且能够进行业务信息及组件信息的查询;
[0092]
请参照图3,在一种可选的实施方式中,当用户通过终端以某一组织成员登录时,即默认访问组织子业务,获取相应业务标识;当用户通过终端进入社区时,可获取社区入口预先设置的业务标识,终端在向服务端发送请求时,在请求头中添加所获取的业务标识,具体的,通过tenant在请求头中加入业务标识app-biz;
[0093]
请参照图5,在一种可选的实施方式中,在终端中设置产品管理模块,通过业务管理管理产品中的各个业务、在使用同一产品的过程中进行业务切换时变更当前使用的业务标识;上下文管理存储产品的产品标识及其对应的业务标识;当用户通过终端访问产品时,默认获取主业务标识,根据主业务标识发送访问请求,使用子业务时,其对应的组件可从业务管理中获取业务标识,并在向服务端发送的http请求的请求头中带上业务标识;如进入社区时,社区的入口透过业务管理切换当前的业务标识为社区子业务标识,将社区子业务标识带入请求头中,在切换或者退出社区时,也通过业务管理切换当前业务标识;
[0094]
接收访问请求时,通过获取访问请求中的业务标识判断相应权限并执行访问请求中相应操作,返回操作结果。
[0095]
请参照图2,本发明的实施例三为:
[0096]
一种组件化产品中租户隔离的终端1,包括处理器2、存储器3及存储在存储器3上并可在所述处理器2上运行的计算机程序,所述处理器2执行所述计算机程序时实现实施例一或实施例二中的各个步骤。
[0097]
综上所述,本发明提供了一种组件化产品中租户隔离的方法及终端,获取产品中所有预设的业务,为每个业务分配业务标识,并根据业务标识为产品中业务对应的组件列表中的每一组件开通租户,最后将业务标识固化在产品中,并且业务标识与产品标识相关,用户使用产品中不同业务时,可容易地获取到固化在产品中的业务标识,在访问请求中添加业务标识进行对服务器的访问,通过业务标识来标识租户,在使用同一业务下的不同组件时无需重复获取相应标识,大大提高了访问的效率,并且使组件的切换过程对用户无感,用户无需多次重复进行身份认证,最终实现在组件化开发中对租户隔离的统一管理,无需标识产品中每个组建的租户标识;并且用户在同一个产品的不同业务之间进行切换时,能够自动获取业务入口固化的业务标识,在访问请求的请求头中带上业务标识,实现切换业务时对用户的无感,提升了组件化系统中实现的租户隔离的体验感。
[0098]
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1