首页 / 专利库 / 电气和电子设备 / 间歇模式 / 以断开或间歇连接的模式运行的软件许可证管理系统

以断开或间歇连接的模式运行的软件许可证管理系统

阅读:810发布:2020-05-12

专利汇可以提供以断开或间歇连接的模式运行的软件许可证管理系统专利检索,专利查询,专利分析的服务。并且公开了一种能够以断开或间歇连接的模式操作的 计算机网络 的 软件 许可 证管理系统。该系统能够以三种模式之一从计算机 节点 (100、200、300)借用软件许可证。三种模式包括故障容忍模式、服务许可模式、以及正常联机模式。当发生网络不稳定时,执行逻辑层软件模 块 (740)咨询规则集以确定是否自动启动使用故障容忍模式或使用服务许可模式的短期软件许可证借用。自动短期软件许可证借用只要需要就继续并且然后恢复软件许可证借用的正常联机模式。,下面是以断开或间歇连接的模式运行的软件许可证管理系统专利的具体信息内容。

1.一种用于管理软件许可证的装置,包括:
多个计算机(100、200、300),被一起连接在对等计算机网络中,其中每个计算机是网络的计算机节点
其中每个计算机节点包括以下列之一操作(800)的软件许可证管理控制器
许可证借用的故障容忍操作模式,许可证借用的服务许可操作模式,以及许可证借用的正常联机操作模式。
2.如权利要求1所述的装置,其中软件许可证管理控制器包括:
许可证借用机构(720);
通信链路测试机构(730),测试许可证消费者和许可证提供商之间的通信链路;以及
执行逻辑层软件模(740)。
3.如权利要求2所述的装置,其中许可证借用机构给随后相对于许可证提供商变成脱机的许可证消费者临时许可软件应用(120)的操作。
4.如权利要求2所述的装置,其中执行逻辑层软件模块包括:
故障容忍规则集;
服务许可规则集;以及
网络中断历史。
5.如权利要求4所述的装置,其中每个计算机节点中的执行逻辑层软件模块采用通信链路测试机构来监视网络的性能;
响应于已发生了网络中断的确定,执行逻辑层软件模块从许可证借用的正常联机操作模式改变到以下之一:许可证借用的故障容忍操作模式和许可证借用的服务许可操作模式。
6.一种用于管理软件许可证的方法,包括以下步骤:
把多个计算机(100、200、300)连接(510、610)在对等计算机网络中,其中每个计算机是网络的计算机节点;
在每个计算机节点内提供软件许可证管理控制器;以及
以下列之一操作(800)软件许可证管理控制器:许可证借用的故障容忍操作模式,许可证借用的服务许可操作模式,以及许可证借用的正常联机操作模式。
7.如权利要求6所述的方法,其中提供软件许可证管理控制器的步骤包括以下步骤:
提供许可证借用机构(720);
提供测试许可证消费者和许可证提供商之间的通信链路的通信链路测试机构(730);
以及
提供执行逻辑层软件模块(740)。
8.如权利要求7所述的方法,还包括以下步骤:
使用(520-580、620-695)许可证借用机构来给随后相对于许可证提供商变成脱机的许可证消费者临时许可软件应用(120)的操作。
9.如权利要求7所述的方法,其中提供执行逻辑层软件模块的步骤包括以下步骤:
提供故障容忍规则集;
提供服务许可规则集;以及
提供网络中断历史。
10.如权利要求7所述的方法,还包括以下步骤:
执行逻辑层软件模块接收来自服务许可规则集的数据和来自网络中断历史的数据;
以及
响应于从故障容忍规则集和网络中断历史中接收的数据,执行逻辑层软件模块选择许可证借用的服务许可操作模式。

说明书全文

以断开或间歇连接的模式运行的软件许可证管理系统

[0001] 相关申请
[0002] 本专利申请涉及由相同发明人做出的在此与美国专利申请序列号[案件号H0017067]同一日期提交的题为“Peer to Peer Software License Management System For Temporarily Relocating Available Software Licenses”的另一专利申请。 该相关专利申请转让给本专利申请的受让人。 该相关专利申请的公开内容由此通过引用并入本申请,犹如在本文中被完全阐述那样。

技术领域

[0003] 本公开内容大体上涉及软件许可证(license)管理系统并且更具体地涉及以断开或间歇连接的模式运行的软件许可证管理系统。

背景技术

[0004] 软件许可证管理是任何商业软件产品的基本服务以确保软件产品的合法使用和确保软件产品的适当分发。软件许可证提供商(“许可证提供商(license providers)”)典型地位于定位在计算机服务器上的软件内。 软件许可证消费者(“许可证消费者(license consumers)”)典型地是位于计算机工作站或计算机服务器上的软件应用。现有的软件许可证管理系统是基于软件提供商与软件许可证消费者安全地通信的能
[0005] 许可证提供商具有存储在许可证提供商所位于的计算机服务器内的有限数量的软件许可证( “许可证”)。 许可证提供商典型地具有加密的许可证文件,其包含许可证的名称和被授权接收许可证的客户(即,许可证消费者)的名称。
[0006] 当许可证消费者期望获取特定软件许可证时,许可证消费者可以尝试从一个或多个许可证提供商中取得许可证。 许可证消费者向一个或多个许可证提供商发生许可证请求。 可以满足许可证消费者的请求的许可证提供商(1)给许可证消费者许可所请求的许可证(或多个许可证),(2)把所请求的许可证(或多个许可证)标记为正被许可证消费者在使用,并且(3)建立和维持与许可证消费者的安全通信链路。
[0007] 许可证提供商维持与许可证消费者的安全通信链路直到许可证消费者释放许可证(或多个许可证)或者与许可证消费者的链路由于硬件或软件故障而失效,从而隐含地释放许可证(或多个许可证)。被标记为在使用的许可证不可用于其他许可证消费者直到释放了许可证为止。 被释放的许可证重新进入许可证提供商的可用许可证池。
[0008] 软件许可证管理系统中的加密许可证文件可以存储在盘驱动器或其他存储器设备(诸如通用串行总线(USB)密钥或智能卡)上。 如先前所提及的,加密的许可证文件包含被授权许可证消费者的名称以及授权他们接收的许可证的名称。 软件许可证管理系统能够读取加密许可证文件中的授权信息并且给具有适当授权的许可证消费者供应所请求的许可证。
[0009] 软件许可证管理系统典型地驻留在远离其许可的软件应用位置的位置。 这提供对许可过程的更便捷的集中管理。 在现有的软件许可证管理系统中,(位于许可证服务器上的)许可证提供商位于相对于(位于客户机服务器上的)许可证消费者的远程位置。
[0010] 专用许可证服务器在移动计算情形下不是高效的。 例如,专用许可证服务器在远程非固定位置处支持软件产品演示或训练操作方面不是高效的。 在移动计算情形中提供软件许可证的现有技术方法包括(以附加费为代价)提供(1)支持移动使用的短期或专用权利(entitlement)、(2)以硬件密钥形式的便携式权利、(3)临时脱机独立式许可证、以及(4)不是基于网络的节点定许可证。
[0011] 互联网协议和技术以及其到新的软件产品类的应用的成功给现有的软件许可管理系统造成问题。 这是因为基于互联网协议和技术的系统要求许可证提供商和许可证消费者之间的频繁且持续的通信。 在没有连续断言(assertion)来自许可证消费者的需要的情况下,(1)不可能确保许可证消费者对软件许可证的权利是真实的以及(2)不可能保证许可证提供商的软件许可证池准确地反映许可证可用性。
[0012] 基于互联网协议和技术的软件产品没有且不能维持许可证提供商和许可证消费者之间的连续连接。Web服务架构是这种特征的良好示例。Web服务充当自主代理,从其中软件应用被构成并通过各个消息被连接。 各个web服务可能需要被许可。 然而,每当需要web服务时就向许可证提供商请求许可证既不实际也不高效。 另一方面,对于web服务持有许可证比所需的更长是不公平的或不适当的。 允许web服务持有许可证比所需的更长将很可能限制另一合法使用该许可证。
[0013] 期望的将是是具有一种在以断开或间歇连接的模式运行的软件许可证管理系统中提供软件许可证权利的更高效方法。 期望的将是具有一种软件许可证管理系统,其具有解决在基于互联网协议和技术的软件系统中由于许可证提供商和许可证消费者之间的间歇通信所引起的问题的能力。

发明内容

[0014] 本发明包括软件许可证管理系统,其包括:(1)许可证借用机构,其能够给随后相对于许可证提供商变成脱机的许可证消费者临时许可软件的操作;以及(2)用于测试许可证消费者(客户机服务器)和许可证提供商(许可证服务器)之间的通信链路的机构;以及(3)执行逻辑层软件模,其位于许可证消费者(客户机服务器)上。
[0015] 执行逻辑层软件模块包括故障容忍(fault tolerance)规则集、及服务许可规则集、最近发生的网络中断历史、以及用户接口模块。 当发生网络中断时,执行逻辑层咨询故障容忍规则以确定是否自动启动使用故障容忍操作模式的短期许可证借用。 如果使用故障容忍操作模式,短期软件许可证借用只要需要就继续。 然后恢复许可证借用的正常联机模式。
[0016] 如果故障容忍操作模式基于故障容忍规则的应用是不适当的,则执行逻辑层然后咨询服务许可规则以确定是否自动启动使用服务许可操作模式的短期许可证借用。 如果使用服务许可操作模式,则短期许可证借用只要需要就继续。 然后恢复许可证借用的正常联机模式。
[0017] 根据以下的附图说明书权利要求书,其他技术特征对本领域的一位技术人员可能是容易显而易见的。

附图说明

[0018] 为了更完整地理解本公开内容,现在参考结合附图进行的以下描述,其中:
[0019] 图1图解本发明的对等(peer to peer)软件许可证管理系统的示例性第一计算机节点的示意图;
[0020] 图2图解本发明的第一计算机节点从本发明的第二计算机节点访问软件许可证的示意图;
[0021] 图3图解本发明的第一计算机节点从本发明的第二计算机节点临时借用软件许可证的示意图;
[0022] 图4图解本发明的第三计算机节点访问从本发明的第一计算机节点临时借用的软件许可证的示意图;
[0023] 图5图解示出本发明的方法的有利实施例的步骤的流程图
[0024] 图6图解示出本发明的方法的另一个有利实施例的步骤的流程图;
[0025] 图7图解依据本发明原理的示例性软件模块的示意图;以及
[0026] 图8图解示出本发明的方法的另一个有利实施例的步骤的流程图。

具体实施方式

[0027] 在本专利文档中用于描述本发明原理的各个实施例和图1到8仅作为例证并且不应当以任何方式解释为限制本发明的范围。 本领域的技术人员会理解本发明的原理可以被实施在任何类型的合适布置的设备或系统中。
[0028] 参与本发明的对等软件许可证管理系统的每个计算机被称为节点。 在对等系统中,每个节点可以从其他节点接受输入连接并且每个节点可以发起到其他节点的输出连接。 这种特征区分对等系统与客户机-服务器系统。在客户机-服务器系统中,仅客户机节点可以发起输出连接并且仅服务器节点可以接受输入连接。
[0029] 图1图解本发明的对等软件许可证管理系统的示例性第一计算机节点100(也被指定为节点1)的示意图。 第一计算机节点100表示系统中的每个其他节点(在图1中未示出)。 如图1所示,第一计算机节点100包括应用过程110。 应用过程110包括至少一个程序120和许可库130。 许可库130包含一个或多个软件许可证。 程序120能够通过许可应用编程接口(在图1中被指定为“许可API”)访问许可库130。
[0030] 每个计算机节点100也包括被称为许可证服务140或许可证守护程序(daemon)140的连续运行程序。 许可证守护程序140连接到并且与许可库130通信。 许可库130能够访问许可证守护程序140以把由程序120做出的任何许可证请求传递给许可证守护程序140。
[0031] 第一计算机节点100也包括加密的许可证文件150。加密的许可证文件150包含被授权许可证消费者的名称以及授权他们接收的许可证的名称。 许可证守护程序140连接到并且与加密的许可证文件150通信。 许可证守护程序140能够读取加密的许可证文件150中的授权信息并且给具有适当授权的许可证消费者供应所请求的许可证。
[0032] 第一计算机节点100也包括地址文件160,该地址文件160包含对等系统中的远程定位许可节点的计算机地址。 许可证守护程序140连接到并且与地址文件160通信。许可证守护程序140能够与对等系统中的远程定位节点通信。
[0033] 计算机节点100的标准计算机硬件(中央处理单元、存储器单元等等)和计算机节点100的标准计算机软件(操作系统等等)以及本发明的对等软件许可证管理系统的软件(许可证守护程序、许可证文件、许可库等等)包括执行本发明的功能的软件许可证管理控制器
[0034] 图2图解第一计算机节点100从本发明的对等系统的第二计算机节点200访问软件许可证的示意图。第二计算机节点200包括应用过程210,该应用过程210包括至少一个程序220和许可库230。第二计算机节点200也包括其自己的许可证守护程序240和加密的许可证文件250。尽管在图2中未示出,第二计算机节点200也包括地址文件,该地址文件包含对等系统中的远程定位许可节点的计算机地址。
[0035] 图2图解第一计算机节点100如何可以从对等系统的第二计算机节点200访问软件许可证。 当至少一个程序120做出许可证请求时,许可库130把该请求发送到许可证守护程序140。 许可证守护程序140首先尝试从其自己的加密许可证文件150(在图2中未示出)中访问(或“检查(check out)”)所请求的许可证。 如果所请求的许可证在加密许可证文件150中,则许可证守护程序140从许可库130把所请求的许可证提供给程序120。
[0036] 如果所请求的许可证不在加密许可证文件150中(即,所请求的许可证不可本地获得),则许可证守护程序140把许可证请求传到已知的远程节点(其也被称为远程主机)。图2图解第一计算机节点100的许可证守护程序140和第二计算机节点200的许可证守护程序240之间的连接和通信。
[0037] 许可证守护程序240访问其自己的加密许可证文件250以确定所请求的许可证是否位于第二计算机节点200内。 如果所请求的许可证位于加密许可证文件250内,则许可证守护程序240把所请求的许可证标记为在使用并且准许许可证请求。 许可证守护程序240从许可库230把所请求的许可证提供给许可证守护程序140。 许可证守护程序140把所请求的许可证提供给许可库130并且提供给请求程序120。
[0038] 如果所请求的许可证不位于第二计算机节点200中的加密许可证文件250内,则许可证守护程序240把该调查结果汇报回到第一计算机节点100中的许可证守护程序140。
[0039] 当许可证守护程序140向对等网络中的其他节点发出许可证请求时,其他节点将把该请求级联(cascade)到其本地地址列表中的其他节点(如果有的话)直到所请求的许可证被找出或者许可证搜索由于在连接在对等网络中的任何节点上缺乏所请求许可证的可用性而失败为止。
[0040] 在搜索所请求的许可证中,成功或失败将经由API链路汇报回到请求程序120。成功访问的许可证将(1)在请求程序120经由API链路释放许可证时或者(2)在请求程序
120终止时最终返还给许可证来自的远程计算机节点。把许可证返还给许可证来自的远程计算机节点要求本地许可证守护程序140跟踪许可证源自何处并且与远程计算机节点上的许可证守护程序(例如,在我们的当前示例中为许可证守护程序240)通信以向远程计算机节点上的许可证守护程序告知所请求的许可证的最终释放。 在释放了所请求的许可证后,从其本地加密许可证文件提供所请求的许可证的远程计算机节点上的许可证守护程序把许可证释放回到适合于后续许可证的许可证的本地池中。
[0041] 为了防止许可证权利的滥用,提供所请求的许可证的计算机节点的许可证守护程序生成并发送不时的“一切安好(all is well)”信号(被称为“心跳(heartbeat)”)到正在参与许可证访问(也被称为许可证“检查”)的所有其他计算机节点。 如果由于某种原因心跳信号不如预期的那样被应答,则心跳信号被说成失败。 如果心跳信号失败,则在许可证检查过程中涉及的所有许可证守护程序立即认为许可证检查过程失败。
[0042] 心跳信号的失败导致经由API链路告知请求程序(例如,程序120)其已成功请求的许可证现在不可用并且先前成功的许可证请求终止了。 从其本地加密许可证文件提供所请求许可证的许可证守护程序然后把许可证释放回到适合于后续许可证的许可证的本地池中。 当从本地许可证文件中满足许可证请求时,不需要心跳信号。
[0043] 除了被检查,许可证也可以被借用。 借用许可证需要在预定的(但有限的)时间段内将许可证从一个许可证文件重定位到另一个许可证文件。
[0044] 计算机节点中的许可证守护程序可以请求从另一个计算机节点借用一个或多个许可证。许可证借用过程概念上类似于从一个节点到另一个的正常许可证检查过程。但是在借用事务(transaction)中涉及的两个节点之间没有维持心跳信号。 这使得借用节点可以从施主节点的网络断开并且在借用节点脱机(即,不连接到对等网络)时继续使用借用的许可证。施主节点认为已经检查了借用的许可证。但是借用节点认为借用的许可证可供正在借用节点上本地运行的程序检查。
[0045] 图3图解第一计算机节点100如何可以从对等系统的第二计算机节点200临时借用软件许可证。 当至少一个程序120做出许可证请求时,许可库130把该请求发送到许可证守护程序140。 许可证守护程序140首先尝试从其自己的加密许可证文件150(在图3中未示出)中访问(或“检查”)所请求的许可证。 如果所请求的许可证在加密许可证文件150中,则许可证守护程序140从许可库130把所请求的许可证提供给程序120。
[0046] 如果所请求的许可证不在加密许可证文件150中(即,所请求的许可证不可本地获得),则许可证守护程序140可以发布从已知的远程节点(其也被称为远程主机)之一中借用许可证的请求。 图3图解第一计算机节点100的许可证守护程序140和第二计算机节点200的许可证守护程序240之间的连接和通信。 尽管在图3中未示出,第二计算机节点200包括先前提及的地址文件,其包含对等系统中的远程定位许可节点的计算机地址。
[0047] 许可证守护程序240访问施主许可证文件270以确定所请求的许可证是否是被授权借出作为借用许可证的许可证。 如果所请求的许可证位于施主许可证文件270内,则许可证守护程序240把所请求的许可证标记为对于所请求的时间段在使用并且准许许可证请求。 许可证守护程序240从许可库230把所请求的借用许可证提供给许可证守护程序140。许可证守护程序140把所请求的借用许可证存储在借用的许可证文件170中并且允许请求程序120访问所请求的借用许可证。
[0048] 如果所请求的借用许可证不位于施主许可证文件270内,则许可证守护程序240把该调查结果汇报回到第一计算机节点100中的许可证守护程序140。
[0049] 当许可证守护程序140向对等网络中的其他节点发出借用许可证的请求时,其他节点将把该请求级联到其本地地址列表中的其他节点(如果有的话)直到所请求的许可证被找出或者许可证搜索由于在连接在对等网络中的任何节点上缺乏所请求许可证的可用性而失败为止。
[0050] 如先前提及的,当许可证守护程序240把借用的许可证发送到许可证守护程序140时,许可证守护程序140把借用的许可证存储在借用的许可证文件170中。存储在第一计算机节点100中的借用许可证文件170中的借用许可证在所请求的时间段(即,借用许可证的“寿命”)期间作为正常的本地许可证。
[0051] 在借用的许可证被成功地存储在第一计算机节点100中的借用许可证文件170中后,第一计算机节点100的许可证守护程序140和第二计算机节点200的许可证守护程序240之间的网络连接被切断。 该切断在图3中用剪刀符号290示意性地表示。 借用节点(在我们的当前示例中为第一计算机节点100)可以在脱机(即,不连接到对等网络)时继续使用借用的许可证。
[0052] 借用节点(在我们的当前示例中为第一计算机节点100)可以在借用节点和施主节点连接在共同网络上的任何时间时检查借用许可证回到施主节点(在我们的当前示例中为第二计算机节点200)中。 检查借用许可证回到施主节点中就结束借用的时段。
[0053] 为保障借用事务并且强制借用许可证的时限,必要的是在借用的许可证被借用的时候规定最大借用时限。 最大借用时限(也被称为“超时”值)由施主节点和借用节点两者独立地跟踪。 如果在借用的许可证从借用节点返还给施主节点之前超时值期满,则借用的许可证将在借用人节点上被自动禁用并且将在施主节点上被自动启用(即,检查回到施主节点中)。
[0054] 在借用的许可证仍在超时值内的时间期间,借用的许可证保持有效。 而且,有效的借用许可证被认为可用于从借用节点进行检查。 由于网络的对等性能,借用的许可证不限于仅由运行在借用节点上的程序检查。 即,借用的许可证可以被供应给其他请求它的连接节点。 这意味着许可证可以从(充当许可证服务器的)施主节点临时重定位到(随后相对于施主节点脱机的)借用节点并且借用节点可以随后充当借用许可证的许可证服务器。
[0055] 图4图解第一计算机节点100如何可以充当借用许可证的许可证服务器并且把借用许可证供应给对等系统中的第三计算机节点300。 第三计算机节点300包括应用过程310,该应用过程310还包括至少一个程序320和许可库330。 第三计算机节点300也包括其自己的许可证守护程序340和地址文件360。尽管在图4中未示出,第三计算机节点
300也包括加密的许可证文件。
[0056] 当至少一个程序320做出许可证请求时,许可库330把该请求发送到许可证守护程序340。 许可证守护程序340首先尝试从其自己的加密许可证文件(在图4中未示出)中访问(或“检查”)所请求的许可证。 如果所请求的许可证在加密许可证文件中,则许可证守护程序340从许可库330把所请求的许可证提供给程序320。
[0057] 如果所请求的许可证不在加密许可证文件中(即,所请求的许可证不可本地获得),则许可证守护程序340可以发布从已知的远程节点(其也被称为远程主机)之一中访问(或“检查”)许可证的请求。 图4图解第三计算机节点300的许可证守护程序340和第一计算机节点100的许可证守护程序140之间的连接和通信。尽管在图4中未示出,第一计算机节点100包括加密的许可证文件150和地址文件160,该地址文件160包含对等系统中的远程定位许可节点的计算机地址。
[0058] 许可证守护程序140访问借用的许可证文件170以确定所请求的许可证是否可用。 如果所请求的许可证位于借用的许可证文件170内,则许可证守护程序140把所请求的许可证标记为在使用并且准许许可证请求。 许可证守护程序140从借用的许可证文件170中把所请求的许可证提供给许可证守护程序340。许可证守护程序340把借用的许可证提供给许可库330并且提供给请求程序320。
[0059] 如果所请求的许可证不位于借用的许可证文件170内,则许可证守护程序140把该调查结果汇报回到第三计算机节点300中的许可证守护程序340。
[0060] 当许可证守护程序340向对等网络中的其他节点发出访问许可证的请求时,其他节点将把该请求级联到其本地地址列表中的其他节点(如果有的话)直到所请求的许可证被找出或者许可证搜索由于在连接在对等网络中的任何节点上缺乏所请求许可证的可用性而失败为止。
[0061] 如先前提及的,当许可证守护程序140把借用的许可证发送到许可证守护程序340时,许可证守护程序340把借用的许可证提供给程序320。 第一计算机节点100是相对于原始施主节点(第二计算机节点200)变成脱机的借用节点。 以此方式,第一计算机节点100进而充当把先前借用的许可证供应给第三计算机节点300的许可证服务器。
[0062] 图5图解示出本发明的方法的有利实施例的步骤的流程图500。在第一步骤中,提供计算机许可节点的对等网络(步骤510)。 然后,第一计算机节点100中的请求程序120向其许可证守护程序140发布许可证请求(步骤520)。 许可证守护程序140在本地许可证文件150中和在本地许可库130中搜索请求的许可证,并且如果找到的话则把请求的许可证发送到请求程序120(步骤530)。
[0063] 如果许可证守护程序140在第一计算机节点100中没有找到所请求的许可证,则许可证守护程序140把许可证请求发送到许可证守护程序140具有其地址的对等网络中的每个计算机节点并且许可证请求通过网络节点级联(步骤540)。 然后,第二计算机节点200中的许可证守护程序240确定所请求的许可证在其本地许可证文件250中并且在其本地许可库230中(步骤550)。
[0064] 然后,许可证守护程序240(1)把所请求的许可证标记为正在使用并且(2)向许可证守护程序140准许许可证请求并且(3)向许可证守护程序140发出心跳信号达许可证准许的持续时间(步骤560)。 许可证(1)在请求程序120释放许可证时或者(2)在请求程序120终止时或者(3)在心跳信号失败时终止(步骤570)。 当许可证终止时,则许可证守护程序240把许可证释放回到适合于后续许可证的许可证的本地池中(步骤580)。
[0065] 图6图解示出本发明的方法的另一个有利实施例的步骤的流程图600。在第一步骤中,提供计算机许可节点的对等网络(步骤610)。 然后,第一计算机节点100中的请求程序120向其许可证守护程序140发布许可证请求(步骤620)。 许可证守护程序140在本地许可证文件150中和在本地许可库130中搜索请求的许可证,并且如果找到的话则把请求的许可证发送到请求程序120(步骤630)。
[0066] 如果许可证守护程序140在第一计算机节点100中没有找到所请求的许可证,则许可证守护程序140把借用请求发送到许可证守护程序140具有其地址的对等网络中的每个计算机节点并且借用请求级联网络节点通过(步骤640)。 然后,第二计算机节点200中的许可证守护程序240确定所请求的许可证在其本地施主文件270中并且在其本地许可库230中(步骤650)
[0067] 然后,许可证守护程序240(1)把所请求的许可证标记为对于所请求的时限正在使用并且(2)向许可证守护程序140和第一计算机节点100中的借用许可证文件270发送所请求的借用许可证(步骤660)。 第一计算机节点100和第二计算机节点200之间的网络连接然后被切断并且第一计算机节点100用借用的许可证脱机操作(步骤670)。
[0068] 在脱机操作时,第一计算机节点100然后把借用的许可证许可给第三计算机节点300(步骤680)。 当原始的请求时限期满时,借用的许可证自动终止(步骤690)。 当借用的许可证终止时,则许可证守护程序240把借用的许可证释放回到适合于后续许可证或后续借用的许可证的本地池中(步骤695)。
[0069] 假定借用的许可证在许可证的整个持续时间中被认为在使用,则借用许可证的相对成本很高。 即使当客户机服务器从网络断开时许可证消费者的客户机服务器上的被许可软件可能不处于连续使用,情况也是如此。 由于这种原因,许可证借用正常不是自动化的,因为许可证借用减少了客户权利而没有准确且公平地反映实际的许可证使用。
[0070] 本发明采用一种监视网络性能并且响应于所监视的网络性能平自动地借用和返还短期许可证而不用用户交互或知识的机构。本发明的机构具有两个目的。第一目的是确保在网络不稳定的时段期间执行软件的连续许可。 第二目的是在以断开或间歇连接的模式运行的系统(诸如web服务)中实现高度周期性软件执行的高效许可。
[0071] 每个借用许可证的持续时间是自适应的且短暂的以便尽可能差不多适合实际使用。 这确保公平性并且避免许可证借用的正常模式的高成本的缺点。
[0072] 本发明监视由于网络中断而丢失的许可证的最近历史。 响应于网络的性能,本发明改变许可证借用过程的操作模式。 在许可证借用过程的“故障容忍”操作模式中,本发明切换到短期许可证借用以代替许可证借用的正常联机模式。 在许可证借用过程的“服务许可”操作模式中,本发明切换到借用许可证犹如进行短时间段的脱机使用。 在服务许可操作模式中,短时间段的长度被选择成覆盖web服务的典型间歇使用的可能时段。
[0073] 故障容忍操作模式和服务许可操作模式是相互排斥的操作模式。 本发明以许可证借用操作的两种模式的任一种运行(另外能够以联机许可证借用的正常操作模式运行)。 即,存在相互三种相互排斥的操作模式。 第一是许可证借用的“故障容忍”操作模式。 第二是许可证借用的“服务许可”操作模式。 第三是联机许可证借用的正常模式。
[0074] 本发明的软件许可证管理系统包括:(1)许可证借用机构,其能够给随后相对于许可证提供商变成脱机的许可证消费者临时许可软件的操作;(2)用于测试许可证消费者(客户机服务器)和许可证提供商(许可证服务器)之间的通信链路的机构;以及(3)执行逻辑层软件模块,其位于许可证消费者(客户机服务器)上。下面将更全面地描述执行逻辑层软件模块的操作。
[0075] 图7图解依据本发明原理的示例性软件模块的示意图。在图7中表示的示例性软件模块位于计算机节点100内。计算机节点100包括包含示例性软件模块的存储器710。
[0076] 在本文档中先前描述的许可证借用软件用参考数字720指定。 用于测试许可证消费者(客户机服务器)和许可证提供商(许可证服务器)之间的通信链路的机构包括用参考数字730指定的通信链路测试模块。 执行逻辑层软件模块用参考数字740指定。 计算机节点100的操作系统软件用参考数字750指定。
[0077] 执行逻辑层软件模块740包括故障容忍规则集760、及服务许可规则集770、网络中断历史780以及用户接口模块790。 下面也将更全面地描述各个模块。
[0078] 计算机节点100的标准计算机硬件(中央处理单元、存储器单元等等)和计算机节点100的标准计算机软件(操作系统软件750等等)以及本发明的软件许可证管理系统的软件模块(许可证借用软件720、通信链路测试模块730、执行逻辑层软件740等等)包括执行本发明的功能的软件许可证管理控制器。
[0079] 执行逻辑层软件模块740采用通信链路测试模块730来监视许可证消费者(这里,计算机节点100)和许可证提供商(在图7中未示出)之间的链路的网络性能水平。为表述方便起见,执行逻辑层软件模块740有时将使用字母ELL来指代。字母ELL代表和表示“执行逻辑层”。 ELL可以被实施为现有软件许可管理器的附件。 可选地,ELL可以被实施为软件许可管理器的集成部件。
[0080] 当网络中断发生时,ELL把网络中断记录在网络中断历史780中。 当网络中断发生时,软件许可管理器使ELL应用故障容忍规则760(下面被描述)并且应用服务许可规则770(下面被描述)以确定响应于网络中断而启动哪个许可证借用操作模式。
[0081] 如果满足故障容忍规则760的规定,则ELL启用故障容忍操作模式。 然后ELL将自动执行软件许可证的短期借用以代替正常的联机许可证借用操作模式。 这将确保在网络不稳定时段期间执行软件的连续许可并且提供必要的故障容忍。
[0082] 在故障容忍操作模式是有效的时,ELL继续监视网络性能水平。 当ELL确定不再需要故障容忍操作模式时,ELL启用正常操作模式。 软件许可证管理器然后恢复正常的联机许可证借用模式。
[0083] 如果不满足故障容忍规则760的规定但满足服务许可规则770的规定,则ELL启用服务许可操作模式。 然后ELL将自动借用许可证犹如进行短时间段的脱机使用。 在服务许可操作模式中,短时间段的长度被选择成覆盖web服务的典型间歇使用的可能时段。服务许可操作模式被用来代替正常的联机许可证借用操作模式。 这将确保在以断开或间歇连接的模式运行的系统(诸如web服务)中高度周期性软件执行的高效许可。
[0084] 在服务许可操作模式是有效的时,ELL继续监视网络性能水平。 当ELL确定不再需要服务许可操作模式时,ELL启用正常操作模式。 软件许可证管理器然后恢复正常的联机许可证借用模式。
[0085] 当在ELL的控制下借用短期许可证时,ELL独立地监视网络并且跟踪剩余的许可证超时值以便更新短期许可证或者返还它们并且恢复正常的联机许可证借用模式。ELL独立于软件许可证管理器做出其决定。 即,软件许可证管理器不知道就短期许可证借用操作而言被ELL做出并实施的决定。 软件许可证管理器简单地对借用或返还许可证的应用编程接口(API)调用做出响应,犹如用户通过软件许可证管理器图形用户接口(GUI)正在指令它。
[0086] 故障容忍规则760确定ELL何时将启动和停止自动化的短期许可证借用操作来代替正常的联机网络许可证借用操作。故障容忍规则760包括以下:(1)最近网络停机的平均持续时间的规定值以便有资格故障容忍操作(大约零点几秒的小型停机将被忽略),(2)对于故障容忍操作要考虑的、过去停机事件的时间窗口的规定值,(3)自动借用(短期)许可证的持续时间的规定值,(4)在自动借用期间网络探测之间的时间的规定值以测试连接是否稳定并且可以终止自动借用,以及(5)是向用户通知自动借用的开始和终止还是悄悄地操作而不向用户通知自动借用操作的状态。
[0087] 服务许可规则770确定ELL何时将启动和停止自动化的服务许可借用操作来代替正常的联机网络许可证借用操作。 服务许可规则770包括以下:(1)到被许可web服务的最近网络连接(服务调用)之间的平均时间的规定值,(2)在计算web服务调用之间的平均时间中有资格包括的、过去连接的时间窗口的规定值,(3)当在规定的时间窗口中不存在足够数据来计算持续时间时,自动借用(短期)许可证的持续时间的规定初始值,以及(4)是启用还是抑制执行逻辑层(E LL)的操作。
[0088] 执行逻辑层(ELL)作为规则集对终端用户可见。执行逻辑层(ELL)因此通过用户接口模块790由终端用户可定制。
[0089] 图8图解示出本发明的方法的有利实施例的步骤的流程图800。在该方法的第一步骤中,软件许可证管理器以正常的联机许可证借用模式操作(步骤810)。 执行逻辑层(ELL)监视网络性能(步骤815)。 ELL确定网络中断是否发生(步骤820)。 如果没有发生网络中断,则控制回到步骤810并且软件许可证管理器继续以正常的操作模式操作(步骤810)。
[0090] 如果发生网络中断,则软件许可证管理器使ELL开始可选的许可证借用操作。ELL使用故障容忍规则760来确定是否要求故障容忍模式(判定步骤825)。 如果要求故障容忍模式,则ELL启用故障容忍模式(步骤830)。 然后,ELL执行短期许可证借用来代替正常的联机许可(步骤840)。
[0091] ELL监视网络性能以确定是否仍然需要短期许可证借用(判定步骤840)。 如果仍然需要短期许可证借用,则控制回到步骤835。如果不再需要短期许可证借用,则控制回到步骤865,其中ELL启用正常的操作模式(步骤865)。 控制然后回到步骤810。
[0092] 如果在步骤825不要求故障容忍模式,则ELL使用服务许可规则770来确定是否要求服务许可模式(判定步骤845)。 如果要求服务许可模式,则ELL启用服务许可模式(步骤850)。 然后,ELL执行短期许可证借用,犹如进行短时间段的脱机使用(步骤855)。 在服务许可操作模式中,短时间段的长度被选择成覆盖web服务的典型间歇使用的可能时段。
[0093] ELL监视网络性能以确定是否仍然需要使用服务操作模式的短期许可证借用(判定步骤860)。 如果仍然需要短期许可证借用,则控制回到步骤855。 如果不再需要短期许可证借用,则控制回到步骤865,其中ELL启用正常的操作模式(步骤865)。 控制然后回到步骤810。
[0094] 阐述在整个本专利文档中使用的某些单词和短语的定义可能是有利的。 术语“应用”、“程序”和“例程”指代一个或多个计算机程序、指令集、过程、功能、对象、类、实例或者适于以合适的计算机语言实施的相关数据。 术语“耦合”以及其派生词指代两个或更多元件之间的任何直接或间接通信,不管那些元件是否彼此物理接触
[0095] 术语“传输”、“接收”和“通信”以及其派生词涵盖直接和间接通信二者。术语“包含”和“包括”以及其派生词意指包含而不限制。 术语“或”是包含的,意指和/或。 短语“与...相关联”和“与其相关联”以及其派生词可以意指包含、包含在...内、与...互连、含有、在...内含有、连接到或与...连接、耦合到或与...耦合、与...可通信、与...协作、交织、并列、邻近、绑定到或与...绑定、具有、具有...属性、等等。 术语“控制器”意指控制至少一个操作的任何设备、系统或其部分。 控制器可以以硬件、固件、软件或其至少两个的某种组合来实施。 与任何特定控制器相关联的功能可以被本地或远程地集中或分布。
[0096] 虽然本公开内容描述了某些实施例以及一般相关方法,但是对本领域的技术人员将显而易见这些实施例的更改和置换。 因而,示例实施例的上面描述不限定或约束本公开内容。 在不偏离由所附权利要求书限定的发明的精神和范围的情况下,其他变化、替换和更改是可能的。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈