控制并发用户数的方法及系统的制作方法

文档序号:6466931阅读:188来源:国知局

专利名称::控制并发用户数的方法及系统的制作方法
技术领域
:本发明涉及软件安全
技术领域
,尤其涉及一种控制并发用户数的方法及系统。
背景技术
:为了防止软件系统的盗版,软件供应商会采取各种措施来限制某客户的许可并发用户数量。比如通过软件序列号,制作与机器特征相匹配的许可文件(license),或者提供一种专用的物理硬件一软件狗,等等。对于大型的软件系统,仅仅判断是否有许可使用权是远远不够的,还需要设置许可的用户数量,许可用户越多,软件的价钱越昂贵。对于基于网络服务器的企业级软件,通常需要通过考察并发在线用户数来确定需要许可的用户数量。另外一方面,还需要设置许可的具体功能,功能越多,软件的价钱越昂贵。最终用户通过选取不同的功能模块,及对应的并发用户数,既满足功能够用而又不贵,达到量身定祐支的效果。大型软件系统可能有数千个功能点,软件开发商通常将一系列完成某一特定业务的功能组合起来,称之为模块。这样一来,销售和维护环节只需要考虑少则几个,多则几十、上百个的模块。对于几个模块的小系统而言,问题比较简单,对于100个模块左右的大型软件系统,销售和维护起来就比较麻烦。软件的购买通常是IT部门,软件的使用可能是整个企业,对于成长型企业,要确定并发用户数存在一定难度,何况要确定某个模块,例如财务部门成^fe算模块,在现在或者不远的将来会有多少并发用户数?这就更困难了。事实上,过于精细的模块划分和严格的并发控制造成企业用户经常需要增加许可才能满足实际需要,甚至可能激化开发商和企业用户之间的矛盾。综合考虑,现有技术中存在以下缺陷现有软件能够实现控制总并发用户,随着软件规模的扩大,不能具体到模块,对于只使用一小部分功能模块的用户,和使用全部功能的用户,不能体现其价格差异;并且只控制总并发用户,还会导致软件供应商无法跟踪某些新功能受市场欢迎的程度及其量化价值。如果将并发用户控制到模块,将增大许可权限的决策难度,造成成长型企业用户经常需要增加和调整使用许可来适应企业的实际需要。
发明内容为了解决软件供应商实现精细化管理和软件用户要求许可控制灵活性之间的矛盾,本发明提供一种控制并发用户数的方法,包括以下步骤Sl:设置软件系统的层次,以及各层次间的对应关系;S2:根据步骤S1中设置的对应关系逐层设定许可信息;S3:接收登录请求,根据当前系统使用信息和已设置的许可信息判断软件系统当前的即时并发用户数,从而确定能否登录;S4:登录后更新系统使用信息。优选的,所述软件系统使用许可分为总站点数、分组和子系统三个层次;在设定许可信息和处理登录请求的过程中,并发用户只考查到分组,具体子系统的许可只用来考查是否允许使用此功能。其中,许可信息采用文本文件格式加密存储为许可文件,许可文件至少包含软件序列号、机器特征码、许可数量清单和验证码。相应的,本发明还提供一种控制并发用户数的系统,包括分层设置单元,用于设置软件系统的层次,以及各层次间的对应关系;许可信息设定单元,用于根据层次间的对应关系逐层设定许可信息;其特征在于该系统还包括登录判断单元,用于根据设定的许可信息和当前系统使用信息判断软件系统当前的即时并发用户数,从而确定能否登录;和信息更新单元,用于在登录后更新系统使用信息。其中在分层设置单元中,软件系统使用许可被分为总站点数、分组和子系统三个层次。优选的,登录判断单元包括总站点数判断单元,用于判断软件系统是否具有空闲可用站点;分组判断单元,用于判断待登录子系统所属分组是否具有空闲可用站点;子系统判断单元,用于判断待登录子系统是否可用。相对于现有技术,本发明的优点如下1)按模块的细分,使用户能够有更多的选择,不必花多余的钱买不需要的模块;2)按模块的销售,使软件供应商实现了的精细化管理,是比较大型的软件的必然选择;3)并发用户控制到分组,很好的解决了软件供应商和用户之间严格控制与灵活开放的矛盾。图1是本发明实施例的分组并发用户控制流程图;图2是本发明根据并发用户数判断逻辑对登录请求进行处理的一种实施方式的流程图3是本发明根据并发用户数判断逻辑对登录请求进行处理的另一种实施方式的流程图。具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。为了解决现有技术中软件开发商和企业用户之间存在的上述问题,本发明提供一种控制并发用户数的方法,包括以下步骤Sl:设置软件系统的层次,以及各层次间的对应关系;S2:根据步骤S1中设置的对应关系逐层设定许可信息;S3:接收登录请求,根据当前系统使用信息和已设置的许可信息判断软件系统当前的即时并发用户数,从而确定能否登录;S4:登录后更新系统使用信息。相应地,本发明还提供一种控制并发用户数的系统,包括分层设置单元、许可信息设定单元、登录判断单元和信息更新单元。其中,分层设置单元,用于设置软件系统的层次,以及层次间的对应关系;许可信息设定单元,用于根据层次间的对应关系逐层设定许可信息;登录判断单元,用于接收登录请求,根据设定的许可信息和当前系统使用信息判断软件系统当前的即时并发用户数,从而确定能否登录;信息更新单元,用于在登录后更新系统使用1§息。本发明的一个优选实施例,在分层设置单元中将所述软件系统的使用许可分为三个层次总站点数、分组和子系统。其中,总站点数表示一个软件系统被许可访问的并发用户总数;模块作为本发明表述中软件系统的最小功能表示单位,也被称之为子系统;属于同一业务领域的子系统可以划分为一个分组,没有业务关联的子系统,作为独立分组构成单模块分组。总站点数、分组和子系统这三层是自上而下、逐层分解的关系,在软件系统使用过程中,并发用户只考查到分组,具体子系统的许可只用来考查是否允许使用此功能。并且本发明将分层关系进行加密,使之对用户不可见,最大限度地避免了被非法修改,从而保证软件系统许可的安全性和稳定性。图l是本发明分组并发用户控制流程图,如图l的步骤a所示,为了方便营销过程中对软件实施分层许可的控制,软件开发商在软件系统的开发环节就要预先设置软件模块即子系统与分组的对应关系。软件系统整体开发完成后,进入营销环节,就可以根据具体用户的使用需求逐层设定许可信息,制作/安装用户许可(license)文件,如图1的步骤b所示。根据子系统与分组的对应关系,许可文件能够针对不同客户的需求设定包含总站点数、分组和子系统三个层次的许可内容。在本发明的一个优选实施例中,许可文件采用文本文件格式存储,至少应包含如下内容软件序列号许可文件的唯一性标识;机器特征码用户服务器硬件特征,可以是硬盘,也可以是网卡,或多种硬件特征的组合;许可文件与该机器特征码的绑定能够从技术上避免许可文件的非法复制;许可数量清单详细表示一个许可文件中三个层次的具体许可数量;验证码以上信息的组合验证,如果许可文件的一部分被非法修改,将不能够被验证通过。此外,根据许可安全性要求的级别,许可文件还可以包括如下如用户名称、失效日期等其它涉及软件安全的信息用户名称许可文件的授权用户,显示在程序主界面,防止用户之间非授权使用;失效日期临时许可文件用,过失效日期后许可文件不再可用。下表1是一个许可文件的许可数量清单的示例,从中也可以看出其中子系统与分组的对应关系。<table>tableseeoriginaldocumentpage8</column></row><table>表l表1所示的软件系统被许可访问的并发用户总数即总站点数为5,其下辖多个分组Gl分组、G2分组和单模块分组,每一分组又包含至少一个子系统;其中Gl分组包括Ml、M2两个子系统,G2分组包括M3、M4和M5三个子系统,单模块分组中具有两个作为独立分组的独立功能模块,即M6和M7两个子系统。在表1中,对于Gl分组来说,其享有在该软件系统许可的5个总站点中的两个可用站点许可使用权,并且都已经;故占用;该G1分组下辖的M1、M2两个子系统均享有该分组两个可用站点的使用许可,并且都在使用。对于G2分组来说,在该软件系统许可的5个总站点中也有两个可用站点,并且只用一个许可被占用;该G2分组下辖的M3、M4、M5三个子系统中,M3子系统享有该分组两个可用站点的使用许可,并且正在使用G2分组中那个正在被使用的站点;M4子系统享有该分组两个可用站点的使用许可,但没有使用;M5子系统没有获得使用许可。由于并发用户只考查到分组,具体子系统的许可只用来考查是否允许使用此功能,因此在单才莫块分组中作为独立分组的M6和M7两个子系统而言,不同于其他分组中的子系统只是设定了是否允许使用的许可,而是设定并发用户数的许可。M6子系统被许可的可用站点数为1,目前没有使用;M7子系统也享有一个该软件系统i午可的5个总站点中的一个可用站点的许可4吏用权,并且正在使用。为避免非法修改,整个许可文件内容还需要进行加密,如采用BASE64方式进行加密。以加密文本文件的方式保存许可文件,可以方便从网上直接下载。另外,为防止黑客修改许可文件,所采用的加密算法需要高度保密,并且不定期变换。在软件系统经过许可进入用户使用环节后,就相应在预先制作/安装的许可文件的许可范围内运行该软件系统。在系统运行时,根据许可文件的记录信息,除了需要通过软件序列号、用户名称等安全信息的验证外,系统还禁止使用无许可的站点、禁止超过分组并发站点数、禁止超过总站点数使用,因此在具体功能模块的使用过程中要判断某一试图登录的工作站是否被允许,就需要先根据预先制作/安装的许可文件和当前系统使用信息对系统进行即时并发用户数的判断,如图l的步骤c所示。为了能够高效运行软件系统的各个功能模块,用户需要频繁地登录和退出,以便及时释放系统资源,由此产生的相关信息称为系统使用信息。系统使用信息是一个流水帐式的记录,作为用于判断后续用户是否允许登录的重要信息,系统使用信息至少应当包含以下内容使用子系统、工作站、登录时间以及系统状态,此外,还可以根据需要选择记录进程号(进程ID)、用户名等系统使用信息。在系统初始化阶段,系统使用信息清空。在一个合法用户需要登录使用某一子系统时,需要结合当前系统使用信息中的使用子系统、工作站、登录时间等信息进行软件系统各层次并发用户数的判断分析,来确定该用户能否登录所述子系统。在许可软件系统使用过程中,为了增强控制的精细程度,可以记录进程号以防止多个机器用同一工作站名称登录,或者同一台机器多次通过终端服务器登录,如果"工作站+进程号"不同,则认为是不同的机器,累加到该模块的已使用站点数中,该模块的已使用站点数再累加到分组的已使用站点数中,最后将分组的已使用站点数累加到总站点数中的已用站点数中;分别将各层次的已用站点数与可用站点数相比较,如果均不超过可用站点数,则该机器能够登录。表2是某一时间段下系统使用信息的示例<table>tableseeoriginaldocumentpage10</column></row><table>表2在表2所示的这一时间段中,工作站COMPUTER1分别登录了Ml、M2和M3子系统,工作站COMPUTER2登录了M2和M7子系统。由于工作站COMPUTER1登录Ml和M2子系统的进程号相同,因此对于Gl分组来说,工作站COMPUTER1只占用了一个可用站点;另一可用站点^皮登录M2子系统的COMPUTER2占用,因此,在这一时间萃殳Gl分组的两个可用站点均被占用。对于G2分组来说,在表2所示的这一时间段中,只有工作站COMPUTER1登录了M3子系统,因此其两个可用站点中只有一个被占用。对于单模块分组中的M7子系统来说,工作站C0MPUTER2在表2所示的这一时间段中登录,因此其仅有的一个可用站点已经被占用。下面以暂时没有登录系统的工作站COMPUTER3为例结合表1和表2进一步说明应对登录请求的并发用户数判断逻辑。(a)禁止^f吏用无许可的站点如果COMPUTER3要登录M5子系统,则是不允许的。因为根据表1所示G2分组中的M5子系统无使用许可。(b)禁止超过分组并发站点数如果COMPUTER3要登录Ml子系统,则是不允许的。因为在这一时间段Gl分组的两个可用站点均被占用,已无空闲可用站点,如果允许COMPUTER3登录Ml子系统,则Gl分组将为站点数3,将超过许可文件所许可的Gl分组并发站点数2。(c)禁止超过总站点数由于G2分组中还空闲一个可用站点,因此COMPUTER3能够被允许登录M3子系统。但如果COMPUTER3登录M3子系统后,再登录M6系统,是不允许的,因为在表2所示的这一时间段,5个被许可的可用站点已经被占用了4个,在COMPUTER3登录M3子系统之后,5个被许可的可用站点就全部被占用了,对于该软件系统来说已无空闲可用站点,如果允许COMPUTER3再登录M6子系统,则总站点数将为6,超过许可文件所许可的总站点数5。此外,并发站点数在许可数量内能够任意使用。如果COMPUTER3要登录M3子系统,则是允许的,因为从表2来看,该时间段内只有工作站COMPUTER!登录了M3子系统,而G2分组站点被许可的并发站点数为2,COMPUTER3的登录不会超过G2分组站点被许可的并发站点数。图2是本发明根据并发用户数判断逻辑对登录请求进行处理的一种实施方式的流程图,如图2所示,在以上判断逻辑的基础上,对一个工作站登录请求的处理步骤如下S31:首先判断系统是否具有空闲可用站点;如果有,进入下一步骤S32继续判断待登录子系统是否属于单模块分组,否则禁止登录;如果待登录子系统属于单模块分组,则进入步骤S331继续判断待登录子系统是否具有空闲可用站点,如果有,则允许该工作站的登录请求,否则禁止登录;如果待登录子系统不属于单模块分组,则进入步骤S332判断其所属分组是否具有空闲可用站点,如果没有,则禁止登录;如果有,则进入步骤S34继续判断待登录子系统是否具有使用许可;如果待登录子系统具有使用许可,则允许登录;否则禁止登录。图3是本发明根据并发用户数判断逻辑对登录请求进行处理的另一种实施方式的流程图,与图2所示的自上而下的判断方式不同,图3采用了/人待登录子系统开始的自下而上的判断方式,但判断逻辑与图2类似,在此不再另行说明。此外,对本领域技术人员来说,在上述判断逻辑的指引下,适当的调整对某一层次许可权限的判断顺序也能够实现最终的控制目的,这些不同方案也应该涵盖在在本发明的精神和原则之内。为了实现上述工作流程,在本发明提供的控制并发用户数的系统中,登录判断单元还包括总站点数判断单元,用于判断软件系统是否具有空闲可用站点;分组判断单元,用于判断待登录子系统所属分组是否具有空闲可用站点;子系统判断单元,用于判断待登录子系统是否可用。由于作为独立分组构成单才莫块分组的子系统的特殊性,本发明在子系统判断单元中还设置了子系统属性判断单元,用于判定该待登录子系统是否属于单才莫块分组。在本实施例中,系统使用信息某一时间段存储的信息量预计为1000条,最大不超过5万条,因此可以是一个小型的数据库,系统使用信息可以记录在一个Access文件中进行保存。为防止非法增加、修改、删除系统使用信息,该Access文件可以釆用工作组文件或者其他方式进4亍加密,其用户名和密码需要不定期更换,此外该Access文件的读写梯:作也要以独占的方式进行。在获得登录许可正常登录后,软件系统按照操作运行相应的功能模块,并更新系统使用信息,记录此次登录信息,如步骤e所示,此时就完成了一个针对该用户登录软件系统某一子系统的控制流程。当用户退出该模块后清除该记录。在本发明的另一优选实施方式中,将软件系统的状态分为正式版、演示版两种。其中正式版为按照客户需求制作/安装了用户许可文件的客户正式使用版本;演示版是为了售前推广和售后服务环节而特定的仅对部分通用姓功能模块进行了许可设置的试用版本,演示版中能够使用的功能模块较正式版有更多比如试用期、数据量等的限制,但也能进入某些子系统,实现部分软件功能。如果经过步骤c对即时并发用户数的判断没有获得登录许可,则该机器转入对演示版的判断,如步骤d所示。在满足如不超过三个月的试用期、业务数据不超过规定数量等能够使演示版正常运行的条件下,可以进入演示版,正常演示完毕后进入步骤e记录软件系统通过演示版提供的子系统所^使用的如表2所示格式的系统使用信息;否则结束登录操作。相应的,本发明提供的控制并发用户数的系统中还可以包括演示版运行单元,用于实现软件系统在售前推广和售后^^务环节的展示。此外,对于演示版的判断,也可以根据具体的业务系统制定不同的判断逻辑,比如相应正式版的许可方式、业务数据量的大小、使用日期、关4定操作次数等等。对于许可信息来说,可以采用前述许可文件的方式存储于软件系统中,也可以采用如串口卡、USB卡等硬件来存储,虽然采用不同的存储介质,但许可的基本策略相同,在此不再赘述。本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称的存储介质,如ROM/RAM、磁碟、光盘等。以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。权利要求1.一种控制并发用户数的方法,其特征在于该方法包括以下步骤S1设置软件系统的层次,以及各层次间的对应关系;S2根据步骤S1中设置的对应关系逐层设定许可信息;S3接收登录请求,根据当前系统使用信息和已设置的许可信息判断软件系统当前的即时并发用户数,从而确定能否登录;S4登录后更新系统使用信息。2、根据权利要求1所述的方法,其特征在于在步骤S1中所述软件系统的层次包括总站点数、分组和子系统三个层次。3、根据权利要求2所述的方法,其特征在于在步骤S2设定许可信息和步骤S3处理登录请求的过程中,所述并发用户数只考查到分组,具体子系统的许可只用来考查是否允许使用此功能。4、根据权利要求2所述的方法,其特征在于进一步包括对所述软件系统的层次及各层次间的对应关系进行加密的步骤。5、根据权利要求4所述的方法,其特征在于所述许可信息采用文本文件格式存储为许可文件,所述许可文件至少包含软件序列号、机器特征码、许可数量清单和验证码。6、根据权利要求2所述的方法,其特征在于,在步骤S3中确定用户能否登录的判断逻辑如下(a)禁止使用无许可的站点;(b)禁止超过分组并发站点数;(c)禁止超过总站点数。7、根据权利要求2所述的方法,其特征在于在步骤S3中至少要进行如下之一的判断判断软件系统是否具有空闲可用站点;判断待登录子系统是否属于单模块分组;判断待登录子系统是否具有空闲可用站点;判断待登录子系统所属分组是否具有空闲可用站点;判断待登录子系统是否具有使用许可。8、根据权利要求2所述的方法,其特征在于所述系统使用信息包含使用子系统、工作站、登录时间以及系统状态。9、根据权利要求8所述的方法,其特征在于,所述系统使用信息还包括进程号。10、根据权利要求2所述的方法,其特征在于所述软件系统具有正式版、演示版两种状态;如果在步骤S3中经过对即时并发用户数的判断后没有获得登录许可,则转入对演示版的判断,如果演示版能够正常运行,则可以进入演示版,正常演示完毕后记录软件系统通过演示版提供的子系统所使用的系统使用信息;否则结束登录操作。11、一种控制并发用户数的系统,包括分层设置单元,用于设置软件系统的层次,以及各层次间的对应关系;许可信息设定单元,用于根据层次间的对应关系逐层设定许可信息;其特征在于该系统还包括登录判断单元,用于根据设定的许可信息和当前系统使用信息判断软件系统当前的即时并发用户数,从而确定能否登录;和信息更新单元,用于在登录后更新系统使用信息。12、如权利要求11所述的控制并发用户数的系统,其特征在于在所述分层设置单元中,软件系统使用许可被分为总站点数、分组和子系统三个层次。13、如权利要求12所述的控制并发用户数的系统,其特征在于所述登录判断单元包括总站点数判断单元,用于判断软件系统是否具有空闲可用站点;分组判断单元,用于判断待登录子系统所属分组是否具有空闲可用站点;子系统判断单元,用于判断待登录子系统是否可用。14、如权利要求13所述的控制并发用户数的系统,其特征在于,在所述子系统判断单元中还具有子系统属性判断单元,用于判定该待登录子系统是否属于单模块分组。15、如权利要求11~14中任一项所述的控制并发用户数的系统,其特征在于该控制系统还包括演示版运行单元。全文摘要本发明公开了一种控制并发用户数的方法及系统,其中的方法包括以下步骤S1设置软件系统的层次,以及各层次间的对应关系;S2根据步骤S1中设置的对应关系逐层设定许可信息;S3接收登录请求,根据当前系统使用信息和已设置的许可信息判断软件系统当前的即时并发用户数,从而确定能否登录;S4登录后更新系统使用信息。本发明针对软件系统在现有总并发用户判断上的不足,提出了分组并发策略,使用户不必购买不需要的模块,也使软件供应商实现了精细化管理,有效解决了用户和软件供应商之间的矛盾。文档编号G06F21/00GK101369303SQ20081016189公开日2009年2月18日申请日期2008年10月13日优先权日2008年10月13日发明者王术全申请人:金蝶软件(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1