CN103220355B - 内容分发网络中的多用户配置方法 - Google Patents
内容分发网络中的多用户配置方法 Download PDFInfo
- Publication number
- CN103220355B CN103220355B CN201310139161.4A CN201310139161A CN103220355B CN 103220355 B CN103220355 B CN 103220355B CN 201310139161 A CN201310139161 A CN 201310139161A CN 103220355 B CN103220355 B CN 103220355B
- Authority
- CN
- China
- Prior art keywords
- user
- configuration
- configuring
- higher level
- item
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种内容分发网络中的多用户配置方法,包括:读取配置文件;对所述配置文件进行解析,为所述配置文件中的每一用户分别创建用户配置,并将所述配置文件中各用户名下的配置项保存在对应用户的用户配置中。本发明按照用户来组织和使用配置项,避免了不同用户配置的相互影响,提高了配置文件加载和配置项查找的效率。
Description
技术领域
本发明涉及多用户的配置文件加载技术,尤其涉及一种内容分发网络中的多用户配置方法。
背景技术
在软件中加载多个用户的配置是服务器软件常用的一种技术。通过加载多个用户的配置,可以让一个软件同时为多个用户提供不同的服务功能,更有效地利用硬件和软件资源。
现有技术通常采用配置项列表的方式来实现不同用户的不同配置:每个配置项允许配置多次,并在每次配置时加上匹配条件;当使用到该配置项时,顺序遍历或以其他方式遍历该配置项的配置列表,并检查列表中每一个配置项的匹配条件,找到与处理任务相匹配的配置。
现有技术的配置方式虽然简单易操作,但是也存在着很多问题:
1.相同的条件匹配会重复执行
有些功能需要配置多个配置项才能正常工作,当需要为某个用户开启该功能时,就需要为这些功能的多个配置项分别配置相同的匹配规则;并且一个客户开启多个功能项时,这些功能项也要配置相同的匹配规则,每个配置项都需要单独匹配,同一个配置规则会重复匹配。
2.配置项的匹配方式效率低下
如果有多个客户需要使用同一功能,则需要在该配置项的匹配条件中为每个客户增加一条匹配规则,最常见的是规则表达式匹配。检查某个配置项的匹配条件需要尝试所有规则表达式,当客户数量非常巨大时(如几千或几万个),每个配置项中都包含数量巨大的匹配规则,检查这些规则将变成软件运行的瓶颈。
3.单个用户的配置影响其他用户的配置。
每个配置项都关系到多个用户,现有技术中的配置文件是以“配置项”来组织的,当增加一个用户或原有用户的配置变更时,需要重新加载所有用户的配置,加大了更新配置的风险。
由上,现有技术中的配置方式以及配置文件在实际使用时,不同用户的配置内容仍然会相互影响,当服务的用户不断增加时,执行效率会变得越来越低。
发明内容
本发明要解决的技术问题是提供一种内容分发网络中的多用户配置方法,按照用户来组织和使用配置项,避免了不同用户配置的相互影响,提高了配置文件加载和配置项查找的效率。
为解决上述技术问题,本发明提供了一种内容分发网络中的多用户配置方法,包括:
读取配置文件;
对所述配置文件进行解析,为所述配置文件中的每一用户分别创建用户配置,并将所述配置文件中各用户名下的配置项保存在对应用户的用户配置中。
根据本发明的一个实施例,该方法还包括:
逐个读取所述用户配置;
查询是否存在当前用户的上级配置,该上级配置包含该当前用户所属的用户组的公共配置信息;
如果存在,则将查询到的上级配置设置在该当前用户的用户配置中。
根据本发明的一个实施例,该方法还包括:如果不存在当前用户的上级配置,则在该当前用户的用户配置内将该当前用户的上级配置设置为空,或者该当前用户的用户配置内将该当前用户的上级配置设置为预设的全局默认配置。
根据本发明的一个实施例,该方法还包括:在所述用户配置创建完成后将其插入全局表。
根据本发明的一个实施例,所述全局表采用哈希表的方式存储不同用户的用户配置,所述哈希表的关键字为每一用户的用户名。
根据本发明的一个实施例,该方法还包括:
在进行用户识别时,根据指定用户的用户名在所述全局表中查询对应的用户配置;
在查询到的用户配置中查询指定的配置项是否存在;
如果所述查询到的用户配置中存在该指定的配置项,则返回所述指定的配置项的值。
根据本发明的一个实施例,该方法还包括:
如果所述查询到的用户配置中不存在该指定的配置项,则查找该指定用户的上级配置是否存在;
如果所述指定用户的上级配置存在,则返回将该上级配置中的该指定的配置项的值。
根据本发明的一个实施例,该方法还包括:如果所述指定用户的上级配置不存在,则该指定的配置项的值返回为空。
根据本发明的一个实施例,每一用户的用户配置分别存储于不同文件中。
与现有技术相比,本发明具有以下优点:
本发明实施例的多用户配置方法中,为每一用户创建独立的用户配置结构,与该用户相关的配置项都保存在该用户的用户配置中,这不仅方便了配置项的管理,也加快了配置项的查找。在处理任务过程中,只需要在任务开始时根据任务所属的用户查找匹配的用户配置结构,则该任务的全部配置项都在该用户配置结构中,获取每个配置项时无需再做条件匹配。
进一步而言,本发明实施例的多用户配置方法中,将用户配置结构保存在采用哈希表结构的全局表中,采用每个用户的用户名作为哈希表的关键字,在匹配时就不需要查找所有的匹配条件,只需要做一次哈希查找就可以找到对应的用户配置,使得查找时间几乎与用户数目无关,不会因为用户数量的增加而影响匹配速度。
此外,本发明实施例的多用户配置方法还实现了嵌套配置,在识别用户时,如果该用户的用户配置中存在指定配置项则使用该指定配置项,如果不存在则使用该用户所属的用户组的公共配置信息。
附图说明
图1是本发明实施例的内容分发网络中的多用户配置方法的流程示意图;
图2是本发明实施例的多用户配置方法中创建用户配置的流程图;
图3是本发明实施例的多用户配置方法中嵌套配置初始化流程图;
图4是本发明实施例的多用户配置方法中的用户配置的结构示意图;
图5是本发明实施例的多用户配置方法中的用户配置在用于用户识别时的流程图。
具体实施方式
下面结合具体实施例和附图对本发明作进一步说明,但不应以此限制本发明的保护范围。
参考图1,本实施例在内容分发网络中的多用户配置方法包括如下步骤:
步骤S11,读取配置文件;
步骤S12,对所述配置文件进行解析,为所述配置文件中的每一用户分别创建用户配置,并将所述配置文件中各用户名下的配置项保存在对应用户的用户配置中;
步骤S13,对生成的用户配置进行初始化,设置各个用户和用户组之间的包含关系;
步骤S14,采用所述用户配置对用户进行识别。
其中,步骤S11中的配置文件指的是原始的配置文件,其可以是如背景技术所述的以配置项来组织的配置文件,例如是以配置项为索引而建立的配置文件,或者也可以现有技术中其他任意形式的配置文件。
下面对各个上述各个步骤进行详细说明。
参考图2,图2示出了配置文件的加载以及用户配置的生成过程。
在S21处,创建用户配置。进一步而言,在读取原始的配置文件时,对该配置文件进行解析,当配置文件出现某个用户名时,为该用户名创建一个用户配置,刚开始创建的用户配置可以是一个空的用户配置。
在S22处,读取配置项。进一步而言,在为一个用户名创建用户配置后,读取并解析该用户名下的配置项,将对应于该用户名的各个配置项的值保存在先前创建的用户配置中,例如可以在创建的用户配置中标记该配置项存在。
在S23处,继续读取配置文件,查找是否有该用户的其他配置,如果有,则转回S22,如果没有,则当前用户名的用户配置创建完成,前进至S24。
在S24处,查找全局表,在全局表中查询是否已存在该用户的用户配置,如果存在,则前进至S25,删除旧用户,也就是删除该用户的旧的用户配置,并前进至S26,将新创建的该用户的用户配置插入全局表中。
如果在S24处,全局表中不存在该用户的用户配置,则将其插入至全局表中。
当加载原始的配置文件后,其中全部用户的用户配置都创建完成后,全局表中存储有以用户为索引的多个用户配置。之后对全局表中的各个配置文件进行初始化以支持嵌套配置,如图3所示。
在S31处,读取用户配置。进一步而言,读取一个未初始化的用户配置。
在S32处,查找上级配置。进一步而言,在全局表中查找当前用户的上级配置,该上级配置中包含有当前用户所述的用户组的公共配置信息。
如果当前用户存在上级配置,则前进至S33,将查询到的上级配置设置在当前用户的用户配置中,例如可以设置指针,将相应的配置项指向上级配置。
如果在全局表中未找到当前用户的上级配置,则前进至S34,将当前用户的上级配置设置为空。或者,在一个优选的实施例中,可以定义一个全局默认配置,当某个用户没有上级配置时,将该全局默认配置设置为该用户的上级配置。
在S35处,判断是否所有用户都完成设置,如果否的话,返回S31,对下一个用户配置进行初始化;如果是的话,则前进至S36,结束初始化过程。
在创建用户配置以及对各个用户配置进行初始化后,多个用户配置的组织结构如图4所示。
全局表41包含全部用户以及用户组的配置,进一步而言,各个用户的配置指的是用户配置,而用户组的配置指的是上级配置。
每个用户或者用户组的配置可以包含多个配置项以及上级指针,每个配置项可以设置一个标志以标识其是否存在。初始化结束后,全局表以及每个用户配置的上级配置都正确设置。
例如,用户1的用户配置42包含配置项1、配置项2......以及上一级指针,该上一级指针指向的上级配置为用户组1的配置40;用户2的用户配置43包含配置项1、配置项2......上一级以及上一级指针,该上一级指针指向的上级配置为用户组1的配置40,也即用户1和用户2同样都属于用户组1。
优选地,各个用户的用户配置可以分别存储在各个不同的单独文件中,这样可以单独加载、重载或卸载某个用户的用户配置,而不会影响到其他用户配置的使用。
在任务开始时,可以通过全局表41查找该任务对应的用户配置结构,由于全局表41是以用户名为索引来组织多个用户配置的,因而无需对每个配置项都做条件匹配,加快了用户配置过程。在使用配置项时,可以从找到的用户配置中获取该配置项,如果找到的用户配置中没有该配置项,则可以通过上级指针找到该用户的上级配置,从而在其上级配置中查找该配置项。
另外,为了加快全局表的查找速度,优选地,全局表41可以采用哈希表的方式存储不同用户的用户配置,哈希表的关键字是每个用户的用户名。哈希表是根据关键字访问对应记录的一种通用数据结构,通过将不同的关键字映射为不同的哈希值,按哈希值存储在散列表的对应位置中,在查找某个关键字时,将查询的关键字转化为哈希值,就能找到目标记录对应的散列地址。用哈希表来替代传统的规则匹配列表,在匹配时就不需要检查所有的匹配条件,只需要做一次哈希查找就可以找到对应的配置项,使查找时间与用户数目无关,不会因为客户数量的增加而影响匹配速度。
在用户配置创建以及初始化结束后,可以采用生成的全局表、用户配置来对用户进行识别,其具体过程如图5所示。
在S51处,查找用户配置。进一步而言,根据任务运行时的用户名在全局表中查找对应的用户配置。
在S52处,取出用户配置信息。其中,用户配置信息包括用户配置中的各个配置项、指示上级配置的上级指针等。
在S53处,查询配置项是否存在。进一步而言,在找到的用户配置中查询指定的配置项是否存在,如果存在,则前进至S54,读取该指定的配置项,将该配置项的值返回。
如果不存在,则转向S55,查看该用户是否存在上级配置,如果有,则转回S52,将上级配置中的用户配置信息读出,其中包含有当前用户所述的用户组的公共配置项的设置。
如果该用户没有上级配置,则前进至S56,该指定的配置项没有值,返回为空。在使用全局默认配置的情况下,该用户的上级配置为全局默认配置,因此可以在全局默认配置中查找该指定的配置项,并将该配置项的值返回。
之后,可以继续读取该用户的其他配置项,具体过程为重复S52至S56。
需要说明的是,用户组是一个特殊的用户名,其代表多个用户的集合,用户组内多个用户的公共配置,可以仅配置在用户组配置中,而不需要对每个用户进行单独配置。用户组的关系可以多层嵌套,例如用户组name1包含用户1和用户2;用户组name2包含用户3和用户4;用户组name3包含用户组name1和用户组name2。在识别用户时,对于某个指定的配置项,如果当前用户的用户配置中存在,则使用该用户配置中的值,没有的话则使用该用户所属的用户组的配置的值,多层嵌套的情况以最小粒度的配置为准,也即优先采用用户配置,进而是较低级的用户组的配置,之后是较高级的用户组的配置。
综上,本实施例的多用户配置方法中,按用户来组织配置,每个用户使用一个独立的用户配置结构,所有与该用户相关的配置项都保存在该用户的用户配置结构中。为每个用户创建一个用户配置结构,不同用户的用户配置结构中相同的配置项的值可以是不一样的。每个用户配置结构匹配一个用户,用户配置结构中的每个配置项不再需要单独的匹配条件,这不仅方便了配置项的管理,也加快了配置的查找。在处理一个任务过程中,只需要在任务开始时根据任务所属的用户找到匹配的用户配置结构,则该任务的所有配置项都在该结构中,获取每个配置项时不再需要做条件匹配。
本发明虽然以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以做出可能的变动和修改,因此本发明的保护范围应当以本发明权利要求所界定的范围为准。
Claims (8)
1.一种内容分发网络中的多用户配置方法,其特征在于,包括:
读取原始的配置文件,所述原始的配置文件是以配置项组织的配置文件;
对所述原始的配置文件进行解析,为所述原始的配置文件中的每一用户分别创建用户配置,并将所述原始的配置文件中各用户名下的配置项保存在对应用户的用户配置中;
逐个读取所述用户配置;
查询是否存在当前用户的上级配置,该上级配置包含该当前用户所属的用户组的公共配置信息;
如果存在,则将查询到的上级配置设置在该当前用户的用户配置中。
2.根据权利要求1所述的多用户配置方法,其特征在于,还包括:
如果不存在当前用户的上级配置,则在该当前用户的用户配置内将该当前用户的上级配置设置为空,或者该当前用户的用户配置内将该当前用户的上级配置设置为预设的全局默认配置。
3.根据权利要求1所述的多用户配置方法,其特征在于,还包括:在所述用户配置创建完成后将其插入全局表。
4.根据权利要求3所述的多用户配置方法,其特征在于,所述全局表采用哈希表的方式存储不同用户的用户配置,所述哈希表的关键字为每一用户的用户名。
5.根据权利要求3所述的多用户配置方法,其特征在于,还包括:
在进行用户识别时,根据指定用户的用户名在所述全局表中查询对应的用户配置;
在查询到的用户配置中查询指定的配置项是否存在;
如果所述查询到的用户配置中存在该指定的配置项,则返回所述指定的配置项的值。
6.根据权利要求5所述的多用户配置方法,其特征在于,还包括:
如果所述查询到的用户配置中不存在该指定的配置项,则查找该指定用户的上级配置是否存在;
如果所述指定用户的上级配置存在,则返回将该上级配置中的该指定的配置项的值。
7.根据权利要求6所述的多用户配置方法,其特征在于,还包括:
如果所述指定用户的上级配置不存在,则该指定的配置项的值返回为空。
8.根据权利要求1所述的多用户配置方法,其特征在于,每一用户的用户配置分别存储于不同文件中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310139161.4A CN103220355B (zh) | 2013-04-19 | 2013-04-19 | 内容分发网络中的多用户配置方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310139161.4A CN103220355B (zh) | 2013-04-19 | 2013-04-19 | 内容分发网络中的多用户配置方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103220355A CN103220355A (zh) | 2013-07-24 |
CN103220355B true CN103220355B (zh) | 2017-03-15 |
Family
ID=48817806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310139161.4A Expired - Fee Related CN103220355B (zh) | 2013-04-19 | 2013-04-19 | 内容分发网络中的多用户配置方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103220355B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106202190A (zh) * | 2016-06-27 | 2016-12-07 | 乐视控股(北京)有限公司 | 一种浏览器账号信息存储方法及移动终端 |
CN110134453B (zh) * | 2018-02-09 | 2022-07-08 | 网宿科技股份有限公司 | 服务器配置重载方法及服务器 |
CN110661892B (zh) * | 2018-06-28 | 2022-06-28 | 贵州白山云科技股份有限公司 | 一种域名配置信息处理方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101060526A (zh) * | 2006-06-20 | 2007-10-24 | 华为技术有限公司 | 网络注册用户信息匹配方法及下一代网络设备 |
CN101267439A (zh) * | 2008-04-28 | 2008-09-17 | 中国人民解放军信息工程大学 | 介质访问控制协议生成方法、节点通信方法、装置及系统 |
CN101527137A (zh) * | 2008-03-06 | 2009-09-09 | 海尔集团公司 | 屏幕显示的调整方法及装置 |
CN101702793A (zh) * | 2009-11-10 | 2010-05-05 | 中兴通讯股份有限公司 | Cdma网络中ussd业务的实现方法、系统及设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5094943B2 (ja) * | 2010-10-26 | 2012-12-12 | シャープ株式会社 | 情報処理システムおよびプロファイルの管理方法 |
WO2012155937A1 (en) * | 2011-05-18 | 2012-11-22 | Telefonaktiebolaget L M Ericsson (Publ) | Smartphone apps in a cloud |
CN102917348A (zh) * | 2012-10-30 | 2013-02-06 | 广东欧珀移动通信有限公司 | 一种多用户智能手机及其登录方法 |
-
2013
- 2013-04-19 CN CN201310139161.4A patent/CN103220355B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101060526A (zh) * | 2006-06-20 | 2007-10-24 | 华为技术有限公司 | 网络注册用户信息匹配方法及下一代网络设备 |
CN101527137A (zh) * | 2008-03-06 | 2009-09-09 | 海尔集团公司 | 屏幕显示的调整方法及装置 |
CN101267439A (zh) * | 2008-04-28 | 2008-09-17 | 中国人民解放军信息工程大学 | 介质访问控制协议生成方法、节点通信方法、装置及系统 |
CN101702793A (zh) * | 2009-11-10 | 2010-05-05 | 中兴通讯股份有限公司 | Cdma网络中ussd业务的实现方法、系统及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103220355A (zh) | 2013-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8880502B2 (en) | Searching a range in a set of values in a network with distributed storage entities | |
US8117215B2 (en) | Distributing content indices | |
US9009324B2 (en) | Managing and reconciling information technology assets in a configuration database | |
CN101313495B (zh) | 数据同步方法、系统及装置 | |
US8666953B2 (en) | Multi-level version format | |
EP2570936A1 (en) | Information retrieval device, information retrieval method, computer program, and data structure | |
US20090024654A1 (en) | Multi-value property storage and query support | |
CN107247778A (zh) | 用于实施可扩展数据存储服务的系统和方法 | |
CN106815267A (zh) | 数据存储方法和装置 | |
US20200042510A1 (en) | Method and device for correlating multiple tables in a database environment | |
US20090182855A1 (en) | Method using a hashing mechanism to select data entries in a directory for use with requested operations | |
US10949385B2 (en) | Hybrid metadata and folder based file access | |
CN105335402A (zh) | 基于静态Cache的搜索方法、索引数据生成方法以及装置 | |
US11599396B2 (en) | Resegmenting chunks of data based on source type to facilitate load balancing | |
CN105447166A (zh) | 一种基于关键字查找信息的方法及系统 | |
CN106649602A (zh) | 业务对象数据处理方法、装置和服务器 | |
CN107085613A (zh) | 入库文件的过滤方法和装置 | |
CN102521375A (zh) | 一种目录服务数据检索方法及系统 | |
CN103220355B (zh) | 内容分发网络中的多用户配置方法 | |
CN105373376A (zh) | 用于配置软件应用的方法和装置 | |
CN107239568B (zh) | 分布式索引实现方法及装置 | |
US7409380B1 (en) | Facilitated reuse of K locations in a knowledge store | |
CN101374307A (zh) | 一种移动设备中更新数字内容信息的方法及装置 | |
CN113449003B (zh) | 信息查询的方法、装置、电子设备及介质 | |
US7536398B2 (en) | On-line organization of data sets |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170315 |