专利名称:一种基于动态分配及行为分析的高可用服务端许可控制模式的制作方法
技术领域:
本发明涉及应用系统软件许可控制,具体地说是一种基于分层架构的服务器应用 软件在集中许可控制模式下,仍然能够满足应用系统高可用性的基于动态分配及行为分析 的高可用服务端许可控制模式。
背景技术:
软件许可控制技术被用于软件开发商控制自己开发的软件产品可以在指软件许 可协议中指定的范围以许可协议中指定的方式运行,保护软件著作权人的权益,调整软件 在开发、传播和使用中发生的利益关系,避免软件盗版对软件开发企业收入造成严重的危 害,促进软件产业健康发展。软件许可是指软件开发商与最终用户之间的许可协议,许可控 制用于保证双方达成的条款和条件得以遵守和执行。目前软件许可的控制模式依据软件架 构的不同也分为很多类型,控制的点主要有两个,即软件许可证颁发给了哪个用户,许可 证中授权了最终用户可以如何使用软件。许可常见的应用软件控制类型主要有单机模式和服务器模式。单机模式一般指 单机运行的软件的许可控制模式,而服务器模式是指基于网络的多层架构应用软件的许可 控制模式,这类应用的特点是客户端的数量多,客户端依赖服务器端的运行,服务器端需要 不间断的运行。通常服务器端在应用服务器层会采用多应用服务器负载均衡的模式保障高 可用性,而数据库则常采用双机热备及数据库集群等方式保障高可用性。一种传统的服务 器端软件许可控制模式是采用单点服务的方式,但是这样软件许可服务的单点故障会导致 整个系统瘫痪,影响软件系统的高可用性,同时频繁的软件许可检查也会对整个系统的性 能和伸缩性。另一种常见的服务器端软件许可控制模式是不同应用服务器分别进行许可授 权,但是这种模式在为新的应用服务器硬件申请许可时,软件开发商很难界定新应用服务 器的使用者。基于以上分析,服务器端应用软件的许可控制模式最理想的是对一个最终用户颁 发一个软件许可授权,但是同时要保障其性能和高可用性。
发明内容
本发明的技术任务是针对上述现有技术的不足,提供一种基于动态分配及行为分 析的高可用服务端许可控制模式。该控制模式采用集中式的软件许可服为企业内所有同类 软件产品的应用实例提供许可授权服务,通过许可服务根据不同应用实例的需求将主许可 证动态拆分成每个实例的动态许可证,并且通过备份许可服务解决集中控制带来的单点故 障问题,备许可证依赖与主许可证的定期更新,动态许可证依赖于许可分配服务的定期更 新,动态许可证只有在预计不足时才会与许可控制服务通信请求更新,以此形成一个安全、 可靠、高效的许可控制模式,为基于多层架构的服务器端软件提供一种软件许可控制的方 法。
本发明的技术任务是按以下方式实现的基于动态分配及行为分析的高可用服务 端许可控制模式,由主许可服务、备许可服务、许可控制服务三个逻辑组成部分,其中,主许可服务为企业内的所有应用实例分配可以使用的许可数量,主许可服务关 联用户购买的软件许可证;备许可服务用作主许可服务不可访问时临时替代主许可服务,以保证主许可服 务恢复期间应用系统能够正常运行;许可控制服务部署在每台应用服务器,依据许可授权的访问数量控制当前应用 实例的客户端访问。进一步说所述主许可服务关联主许可证,所述主许可证为软件开发商根据销售合同发放的 软件许可证,包含了用户可以使用的软件系统功能特性及允许同时访问系统的客户端数 量;所述备许可服务关联备许可证,所述备许可证不需要软件开发商颁发,而是由主 许可服务依据主许可证生成的限制使用日期的临时许可证,限制日期由主许可服务定期根 据当前日期进行延期,脱离主许可服务只能在限制日期内使用;所述许可控制服务部署在每台应用服务器,负责向许可服务申请当前应用实例的 动态许可证,动态许可证中包含可以访问当前应用实例的客户端数量,同时通过访问计数 器对访问当前应用实例的客户端数量进行计数,访问控制器将当前在线客户端的数量与动 态许可证授权的终端数量进行对比,如果连接到当前应用实例的数量超过当前实例动态许 可证授权的数量,就对访问进行控制。主许可服务与备许可服务通过状态控制功能保证主备许可服务在同一时间只有 一个在提供服务备许可服务对许可分配请求状态进行记录,主许可服务在定期更新备许 可证试用期限的同时获取备许可服务的请求记录,并通过行为检测器审查备许可服务是否 被非正常使用,如果备许可服务通过主备网络临时隔离等方式非法使用,主许可服务在下 次更新备许可服务的备许可证时停用备许可服务功能。主许可服务与备许可服务通过许可分配服务实现访问许可在不同应用实例间的 分配。许可分配服务以当前连接的应用实例数量及其客户端访问数量为依据,将主许可证 拆分多个有使用期限的动态许可证,并分配给相应的实例,主许可服务的动态许可证分配 状态信息在每次变更时同步到备许可服务的许可分配服务,以便在故障转移,主备切换时, 保持原来的状态。许可控制服务定期与许可分配服务通信,以更新动态许可证的有效期,并上报当 前应用实例动态许可证的可用客户端许可数量,用于许可分配服务在接收到新的分配请求 时作为动态调整的依据。许可控制服务在发生异常时根据以下处理规则进行处理A)如果无法访问主许可服务,则尝试访问备许可服务;B)如果当前应用实例的动态许可授权的许可数量即将用完,将向许可分配服务发 起许可更新请求,许可分配服务根据所有实例的许可分配及使用状况调整应用实例的动态 许可;C)如果许可分配服务没有更多的许可数量可以分配,则不允许新的客户端连接。
本发明的基于动态分配及行为分析的高可用服务端许可控制模式实现了软件许 可证在应用实例间的动态分配,解决了传统许可证独立绑定应用服务器模式遇到的以下问 题A)在用户更换硬件时申请新许可证的合法性难以界定。B)许可证在应用服务器出现故障时无法共享给其他应用服务器的问题。C)在企业云计算及虚拟化环境中,动态创建的应用实例需要人工参与进行软件许 可授权。与现有技术相比具有以下突出的有益效果(一)在备份许可服务中使用临时许可证,临时许可证有使用截止日期,此日期由 主许可服务定期更新,备许可证脱离主许可证无法长期使用。防止备份许可证被非法再次 销售。(二)由于主备切换的依据就是主许可服务是否可以访问,采用网络隔离的方式 可以使部分应用实例只能访问主许可服务,另外的应用实例可以访问备许可服务。这样会 使可用许可访问数量翻倍。本发明通过同步备许可分配服务的活动日志,由主许可服务中 的行为检测器根据内置规则检查备份许可服务是否被非法使用,发现异常禁用备许可证的 更新,以保障备许可服务的合法使用。(三)本发明进行软件许可控制的位置在应用实例,依据许可分配服务分配的动 态许可证,在动态许可证的有效时间内,不需要频繁与主许可服务进行通信,也不依赖于主 许可服务,使应用实例在许可控制检查上的性能损耗降低,可用性提升。(四)本发明提供的许可控制模型,不依赖于任何具体的应用系统,具有较广泛的 适应性。
附图1是本发明基于动态分配及行为分析的高可用服务端许可控制模式的结构 示意图。 附图2是企业内部署架构图。
具体实施例方式参照说明书附图以具体实施方式
及实施例对本发明的基于动态分配及行为分析 的高可用服务端许可控制模式作以下详细地说明。实施方式本发明的基于动态分配及行为分析的高可用服务端许可控制模式,由主许可服 务、备许可服务、许可控制服务三个逻辑组成部分(如附图1所示)。主许可服务。主许可服务关联软件开发商根据销售合同发放的软件许可证(主许 可证),主许可证包含了用户可以使用的软件系统功能特性及允许同时访问系统的客户端数量。主许可服务通过许可分配服务根据应用实例的数量及其客户端访问数量将主许 可证进行拆分,为每个实例创建动态许可证。备许可服务。功能与主许可服务基本相同,用作主许可服务不可访问时临时替代主许可服务,以保证主许可服务恢复期间应用系统能够正常运行。备许可服务关联备许可 证,备许可证不需要软件开发商颁发,而是由主许可服务依据主许可证生成的限制使用日 期的临时许可证。限制日期由主许可服务定期根据当前日期进行延期,脱离主许可服务无 法长期使用。主许可服务的动态许可证分配状况在每次变更时同步到备许可服务的许可分配 服务,以便在主备切换时,保持原来的状态,备许可服务的许可分配服务同样可以继续动态 调整各实例的动态许可证,同样在主许可服务可用时进行恢复。主备许可服务通过状态控制功能保证主备许可服务在同一时间只有一个在提供 服务。备许可服务对许可分配请求状态进行记录,主许可服务在定期更新备许可证试用期 限的同时获取备许可服务的请求记录,并通过行为检测器审查备许可服务是否被非正常使 用,如果备许可服务通过主备网络临时隔离等方式非法使用,主许可服务在下次更新备许 可服务的备许可证时停用备许可服务功能。许可控制服务。部署在每台应用服务器,负责向许可服务申请当前应用实例的动 态许可证,动态许可证中包含可以访问当前应用实例的客户端数量,同时通过访问计数器 对访问当前应用实例的客户端数量进行计数,访问控制器将当前在线客户端的数量与动态 许可证授权的终端数量进行对比,如果连接到当前应用实例的数量超过当前实例动态许可 证授权的数量,就对访问进行控制。许可控制服务定期与许可分配服务通信,以更新动态许可证的有效期,并上报当 前应用实例动态许可证的可用客户端许可数量,用于许可分配服务在接收到新的分配请求 时作为动态调整的依据。许可控制服务在发生异常时根据处理规则进行处理A)如果无法访问主许可服务,则尝试访问备许可服务。B)如果当前应用实例的动态许可授权的许可数量即将用完,将向许可分配服务发 起许可更新请求,许可分配服务根据所有实例的许可分配及使用状况调整应用实例的动态 许可。C)如果许可分配服务没有更多的许可数量可以分配,则不允许新的客户端连接。实施例本发明的适用于多层架构应用系统的许可控制,以基于B/S架构的ERP系统为例, 企业内最常见的部署架构如图2所示,分为客户端、应用服务器、数据库服务器。客户端主 要用作展现,业务逻辑寄宿在应用服务器的应用实例中,数据持久化到数据库。最终用户通 过浏览器登录系统并使用。实施例分为以下三个过程许可申请过程、生产环境部署过程、 运行控制过程。许可申请过程,企业客户根据与ERP提供商签订的销售合同提交申请,ERP提供商 为用户颁发软件使用许可证。企业客户假设采购了财务、报销、供应链三个主要模块,每个 模块允许同时登录到系统内的在线用户数分别为财务000)、报表000)、供应链(300),试 用期限不受限制。许可描述如下Content =FI (200 | P),RPT (200 | P),DRP (300 | P) -P 代表没有时间限制为了控制许可证只能在指定的企业范围内应用,许可证需要企业进行绑定。由于 服务器硬件会变更、企业名称也可能会变更,最合适的是通过可移动的硬件进行绑定,优选的我们采用USBKEY的方式,以USBKEY芯片中的标识信息作为绑定因子(BindingKey)。因 为采用独立的可移动硬件绑定方式不受应用服务器升级及更换的影响。软件中绑定的实现 可以通过采用BindingKey作为加密密钥的一部分Licence = Sign(Encrypt(Content), BindingKey)ERP提供商以绑定因子作为加密密钥的一部分,对许可内容进行加密,然后将加密 后的数据对绑定因子进行签名,并将许可证发放给申请的企业客户。生产环境部署过程,企业用户系统管理员在部署企业内第一个应用实例的同时, 要部署软件许可服务,软件许可服务逻辑上与应用实例独立,可以与应用实例部署在同一 台应用服务器上,但是推荐部署在独立的应用服务器上。以以下部署架构为例
权利要求
1.一种基于动态分配及行为分析的高可用服务端许可控制模式,其特征在于由主许 可服务、备许可服务、许可控制服务三个逻辑组成部分,其中,主许可服务为企业内的所有应用实例分配可以使用的许可数量,主许可服务关联用 户购买的软件许可证;备许可服务用作主许可服务不可访问时临时替代主许可服务,以保证主许可服务恢 复期间应用系统能够正常运行;许可控制服务部署在每台应用服务器,依据许可授权的访问数量控制当前应用实例 的客户端访问。
2.根据权利要求1所述的基于动态分配及行为分析的高可用服务端许可控制模式,其 特征在于所述主许可服务关联主许可证,所述主许可证为软件开发商根据销售合同发放的软件 许可证,包含了用户可以使用的软件系统功能特性及允许同时访问系统的客户端数量;所述备许可服务关联备许可证,所述备许可证是由主许可服务依据主许可证生成的限 制使用日期的临时许可证,限制日期由主许可服务定期根据当前日期进行延期,脱离主许 可服务只能在限制日期内使用;所述许可控制服务负责向许可服务申请当前应用实例的动 态许可证,动态许可证中包含可以访问当前应用实例的客户端数量,同时通过访问计数器 对访问当前应用实例的客户端数量进行计数,访问控制器将当前在线客户端的数量与动态 许可证授权的终端数量进行对比,如果连接到当前应用实例的数量超过当前实例动态许可 证授权的数量,就对访问进行控制。
3.根据权利要求2所述的基于动态分配及行为分析的高可用服务端许可控制模式,其 特征在于,主许可服务与备许可服务通过状态控制功能保证主备许可服务在同一时间只有 一个在提供服务备许可服务对许可分配请求状态进行记录,主许可服务在定期更新备许 可证试用期限的同时获取备许可服务的请求记录,并通过行为检测器审查备许可服务是否 被非正常使用,如果备许可服务非法使用,主许可服务在下次更新备许可服务的备许可证 时停用备许可服务功能。
4.根据权利要求2所述的基于动态分配及行为分析的高可用服务端许可控制模式,其 特征在于,主许可服务与备许可服务通过许可分配服务根据应用实例的数量及其客户端访 问数量将主许可证进行拆分,为每个实例创建动态许可证,同时会将主许可服务的动态许 可证分配状况在每次变更时同步到备许可服务的许可分配服务。
5.根据权利要求4所述的基于动态分配及行为分析的高可用服务端许可控制模式,其 特征在于,许可控制服务定期与许可分配服务通信,以更新动态许可证的有效期,并上报当前应 用实例动态许可证的可用客户端许可数量,用于许可分配服务在接收到新的分配请求时作 为动态调整的依据。
6.根据权利要求2所述的基于动态分配及行为分析的高可用服务端许可控制模式,其 特征在于,许可控制服务在发生异常时根据以下处理规则进行处理A)如果无法访问主许可服务,则尝试访问备许可服务;B)如果当前应用实例的动态许可授权的许可数量即将用完,将向许可分配服务发起 许可更新请求,许可分配服务根据所有实例的许可分配及使用状况调整应用实例的动态许可;C)如果许可分配服务没有更多的许可数量可以分配,则不允许新的客户端连接。
全文摘要
本发明公开了一种基于动态分配及行为分析的高可用服务端许可控制模式,属于应用系统软件许可控制领域。该控制模式由主许可服务、备许可服务、许可控制服务三个逻辑组成部分,其中,主许可服务为企业内的所有应用实例分配可以使用的许可数量,主许可服务关联用户购买的软件许可证;备许可服务用作主许可服务不可访问时临时替代主许可服务,以保证主许可服务恢复期间应用系统能够正常运行;许可控制服务部署在每台应用服务器,依据许可授权的访问数量控制当前应用实例的客户端访问。与现有技术相比,本发明的许可控制模式具有安全、可靠、高效等特点。
文档编号H04L29/06GK102073814SQ20101061359
公开日2011年5月25日 申请日期2010年12月30日 优先权日2010年12月30日
发明者郑伟波 申请人:浪潮集团山东通用软件有限公司