用于临时重新定位可用软件许可的对等软件许可管理系统的制作方法

文档序号:6592948阅读:162来源:国知局
专利名称:用于临时重新定位可用软件许可的对等软件许可管理系统的制作方法
技术领域
本公开总体上涉及软件许可(license)管理系统,并且更具体地涉及用于临时重 新定位可用软件许可的对等软件许可管理系统。
背景技术
软件许可管理是任何商业软件产品的基本服务以确保软件产品的合法使用并且 确保软件产品的适当分布。软件许可提供器(“许可提供器”)通常位于被定位在计算机服 务器上的软件内。软件许可用户(“许可用户”)通常是被定位在计算机工作站或计算机服 务器上的软件应用。现有的软件许可管理系统基于软件提供器的能力来安全地与软件许可 用户进行通信。许可提供器具有存储在计算机服务器内的有限个软件许可(“许可”),其中将所 述许可提供器定位在所述计算机服务器上。许可提供器通常具有加密的许可文件,其包含 许可的名称以及被授权接收该许可的客户(即许可用户)的名称。当许可用户期望获得特定软件许可时,该许可用户可能试图从一个或多个许可提 供器获取许可。许可用户将许可请求发送到一个或多个许可提供器。可以满足许可用户的 请求的许可提供器(1)准许该许可用户的所请求的许可(或多个许可),(2)将所请求的许 可(或多个许可)标记为由该许可用户正在使用,以及(3)建立和保持与该许可用户的安 全通信链路。许可提供器保持与许可用户的安全通信链路直到该许可用户释放许可(或多个 许可)或与该许可用户的链路因为硬件或软件故障而失效为止,从而隐含地释放许可(或 多个许可)。被标记为正在使用的许可不能被其他许可用户使用直到该许可已被释放为止。 被释放的许可重新进入许可提供器的可用许可池中。软件许可管理系统中的加密许可文件可以被存储在硬盘驱动器或诸如通用串行 总线(USB)密钥或智能卡之类的其他存储器设备上。如先前所提到的那样,加密许可文件 包含授权许可用户的名称以及这些许可用户被授权接收的许可的名称。软件许可管理系统 能够读取加密许可文件中的授权信息并且将所请求的许可用于具有适当授权的许可用户。软件许可管理系统通常存在于远离它许可的软件应用的位置的位置处。这提供了 许可过程的更便利的集中管理。在现有软件许可管理系统中,(位于许可服务器上的)许 可提供器被定位在相对于(位于客户端服务器上的)许可用户的远程位置。
专用许可服务器在移动计算场景中无效。例如,专用许可服务器对支持软件产品 示范或训练远程非固定位置处的操作无效。在移动计算场景中提供软件许可的现有技术 方法包括提供(具有附加费用)(1)支持移动使用的短期或专用资格(entitlement),(2) 以硬件密钥形式的便携式资格,(3)临时离线独立许可,以及(4)不基于网络的节点锁定许可。期望具有一种在移动计算场景中提供软件许可资格的更有效方法。期望具有一种 有能力在移动计算场景中临时重新定位可用软件许可的软件许可管理系统。

发明内容
本发明提供一种能够临时重新定位可用软件许可的对等软件许可管理系统。本 发明包括对等软件许可管理系统,在该对等软件许可管理系统中允许将任何节点(即在其 中安装本发明的软件许可管理系统软件的任何计算机)用作许可提供器,或者用作许可用 户,或者用作许可提供器和许可用户二者。本发明的对等软件许可管理系统的任何节点具有如下能力(1)临时从另一个节 点借用软件许可,以及(2)将所借用的软件许可重新用于又一个节点,就像借用该软件许 可的节点本身是许可提供器一样。本发明的对等软件许可管理系统的每个节点作为许可用 户和许可提供器二者来运行。根据下面的附图、描述和权利要求,其他技术特征可对于本领域技术人员来说是 显而易见的。


为了更全面地理解本公开,现在结合附图参考下面的描述,其中图1说明本发明的对等软件许可管理系统的示例性第一计算机节点的示意性表 示;图2说明本发明的第一计算机节点访问来自本发明的第二计算机节点的软件许 可的示意性表示;图3说明本发明的第一计算机节点从本发明的第二计算机节点临时借用软件许 可的示意性表示;图4说明本发明的第三计算机节点访问从本发明的第一计算机节点临时借用的 软件许可的示意性表示;图5说明示出本发明的方法的有利实施例的步骤的流程图;以及图6说明示出本发明的方法的另一个有利实施例的步骤的流程图。
具体实施例方式图1到图6以及用于在本专利文件中描述本发明原理的各种实施例仅是为了举例 说明并且不应该被解释成以任何方式来限制本发明的范围。本领域技术人员将会理解本发 明的原理可以以任何类型的适当布置的设备或系统来实施。参与本发明的对等软件许可管理系统的每个计算机被称为节点。在对等系统中, 每个节点可以从其他节点接受输入连接,并且每个节点可以发起到其他节点的输出连接。这一特征使对等系统有别于客户端_服务器系统。在客户端_服务器系统中,仅客户端节 点可以发起输出连接并且仅服务器节点可以接受输入连接。图1说明本发明的对等软件许可管理系统的示例性第一计算机节点100(也被叫 做节点1)的示意性表示。第一计算机节点100代表该系统中每一个其他节点(未在图1 中示出)。如图1中所示,第一计算机节点100包括应用过程(application process) 110。 应用过程110包括至少一个程序120和许可库130。该许可库130包含一个或多个软件许 可。程序120能够通过许可应用编程接口(在图1中被叫做“许可API (Licensing API)”) 来访问许可库130。第一计算机节点100还包括被称为许可服务140或许可后台程序(daemon) 140的 连续运行的程序。许可后台程序140连接到许可库130并且与其通信。许可库130能够访 问许可后台程序140以将由程序120提出的任何许可请求传递给许可后台程序140。第一计算机节点100还包括加密许可文件150。加密许可文件150包含授权许可 用户的名称以及这些许可用户被授权接收的许可的名称。许可后台程序140连接到加密许 可文件150并且与其通信。许可后台程序140能够读取加密许可文件150中的授权信息并 且将所请求的许可用于具有适当授权的许可用户。第一计算机节点100还包括地址文件160,该地址文件160包含对等系统中远程定 位的许可节点的计算机地址。许可后台程序140连接到地址文件160并且与其通信。许可 后台程序140能够与对等系统中远程定位的节点通信。计算机节点100的标准计算机硬件(中央处理单元、存储器单元等等)和计算机 节点100的标准计算机软件(操作系统等等)连同本发明的对等软件许可管理系统的软 件(许可后台程序、许可文件、许可库等等)一起包括执行本发明功能的软件许可管理控制
O图2说明第一计算机节点100访问来自本发明的对等系统的第二计算机节点200 的软件许可的示意性表示。第二计算机节点200包括应用过程210,该应用过程210包括至 少一个程序220和许可库230。第二计算机节点200还包括其自己的许可后台程序240和 加密许可文件250。尽管未在图2中示出,但是第二计算机节点200还包括地址文件,该地 址文件包含对等系统中远程定位的许可节点的计算机地址。图2说明第一计算机节点100如何访问来自对等系统中的第二节点200的软件许 可。当至少一个程序120提出许可请求时,许可库130将该请求发送到许可后台程序140。 许可后台程序140首先尝试从其自己的加密许可文件150 (未在图2中示出)访问(或“检 查(check out)”)所请求的许可。如果所请求的许可在加密许可文件150中,则许可后台 程序140将所请求的许可从许可库130提供给程序120。如果所请求的许可没有在加密许可文件150中(即所请求的许可不是本地可用 的),则许可后台程序140将该许可请求传递给已知的远程节点(其也被称为远程主机)。 图2说明第一计算机节点100的许可后台程序140和第二计算机节点200的许可后台程序 240之间的连接和通信。许可后台程序240访问其自己的加密许可文件250以确定所请求的许可是否位 于第二计算机节点200内。如果所请求的许可位于加密许可文件250内,则许可后台程序 240将所请求的许可标记成正在使用并且准许许可请求。许可后台程序240将所请求的许
6可从许可库230提供给许可后台程序140。许可后台程序140将所请求的许可提供给许可 库130和请求程序120。如果所请求许可没有位于第二计算机节点200中的加密许可文件250内,则许可 后台程序240报告找回到第一计算机节点100中的许可后台程序140。当许可后台程序140向对等网络中的其他节点发出许可请求时,其他节点将该请 求级联(cascade)到他们本地地址列表(如果有的话)中的其他节点直到找到所请求的许 可或者许可搜索因为缺少对等网络中连接的任何节点上的所请求许可的可用性而失败为 止。在搜索所请求的许可时,将经由API链路将成功或失败报告返回到请求程序120。 (1)当请求程序120经由API链路释放许可时或者(2)当请求程序120终止时,成功访问的 许可将最终被返回到该许可所来自的远程计算机节点。将许可返回到该许可所来自的远程 计算机节点需要本地许可后台程序140跟踪该许可源自何处,并且与远程计算机节点上的 许可后台程序(例如我们本示例中的许可后台程序240)通信以将所请求的许可的最终释 放通知给远程计算机节点上的许可后台程序。在所请求的许可已释放之后,从远程计算机 节点的本地加密许可文件提供所请求的许可的该远程计算机节点上的许可后台程序将该 许可释放返回到对于后续许可合适的本地许可池中。为了防止滥用许可资格,提供所请求的许可的计算机节点的许可后台程序生成临 时“一切顺利(all is well)”信号(被称为“心跳(heartbeat)”)并且将其发送给参与许 可访问(也被称为许可“检查”)的所有其他计算机节点。如果为了某些原因,心跳信号没 有按照预期那样被确认,则该心跳信号被称为已失败。如果该心跳信号失败,则许可检查过 程所涉及的所有许可后台程序立即认为许可检查过程已失败。心跳信号的失败导致经由API链路通知请求程序(例如程序120)其已成功请求 的许可现在不可用并且先前成功的许可请求已终止。然后从许可后台程序的本地加密许可 文件提供所请求的许可的该许可后台程序将该许可释放回到对于后续许可合适的本地许 可池中。当从本地许可文件中满足许可请求时,不需要心跳信号。除了被检查之外,许可还可以被借用。借用许可要求将来自一个许可文件的许可 重新定位到另一个许可文件达预定(但有限)的时间段。计算机节点中的许可后台程序可以请求从另一个计算机节点借用一个或多个许 可。从概念上来说,许可借用过程类似于从一个节点到另一个的普通许可检查过程。但是 在借用交易(transaction)中涉及的两个节点之间不存在保持的心跳信号。这使得借用节 点可以从供体(donor)节点的网络断开并在借用节点离线(即没有连接到对等网络)时继 续使用所借用的许可。供体节点认为所借用的许可已被检查。但是借用节点认为所借用的 许可可用于由在借用节点上本地运行的程序进行检查。图3说明第一计算机节点100如何从对等系统中的第二计算机节点200临时借用 软件许可。当至少一个程序120提出许可请求时,许可库130将该请求发送到许可后台程 序140。许可后台程序140首先尝试从其自己的加密许可文件150 (未在图3中示出)访 问(或“检查”)所请求的许可。如果所请求的许可在加密许可文件150中,则许可后台程 序140将所请求的许可从许可库130提供给程序120。如果所请求的许可没有在加密许可文件150中(即所请求的许可不是本地可用的),则许可后台程序140可以发布请求来从已知的远程节点(其也被称为远程主机)之一 借用许可。图3说明第一计算机节点100的许可后台程序140和第二计算机节点200的许 可后台程序240之间的连接和通信。尽管未在图3中示出,但是第二计算机节点200包括 先前提到的地址文件,该地址文件包含对等系统中远程定位的许可节点的计算机地址。许可后台程序240访问供体许可文件270以确定所请求的许可是否是被授权当 作借用许可“借出”的许可。如果所请求的许可位于供体许可文件270内,则许可后台程序 240将该所请求的许可标记为正在使用达所请求的时间段并且准许该许可请求。许可后台 程序240将所请求的借用许可从许可库230提供给许可后台程序140。许可后台程序140 将所请求的借用许可存储在借用许可文件170中并且允许请求程序120访问所请求的借用 许可。如果所请求的借用许可没有位于供体许可文件270内,则许可后台程序240报告 找回到第一计算机节点100中的许可后台程序140。当许可后台程序140向对等网络中的其他节点发出借用许可的请求时,其他节点 将该请求级联到他们本地地址列表(如果有的话)中的其他节点直到找到所请求的许可或 者许可搜索因为缺少对等网络中连接的任何节点上的所请求许可的可用性而失败为止。如先前所提到的那样,当许可后台程序240向许可后台程序140发送借用许可时, 许可后台程序140将所借用的许可存储在借用许可文件170中。存储在第一计算机节点 100中的借用许可文件170中的所借用的许可表现为在所请求的时间段(即借用许可的“寿 命”)期间的普通本地许可。在所借用的许可被成功地存储在第一计算机节点100中的借用许可文件170中之 后,第一计算机节点100的许可后台程序140和第二计算机节点200的许可后台程序240 之间的网络连接被切断。在图3中用剪刀符号290示意性地表示所述切断。在离线(即没 有连接到对等网络)时,借用节点(在我们的本示例中第一计算机节点100)可继续使用所 借用的许可。在借用节点和供体节点连接到公共网络的任何时候,借用节点(在我们的本示例 中第一计算机节点100)可以检查返回到供体节点(在我们的本示例中第二计算机节点 200)的借用许可。检查返回到供体节点的借用许可结束借用时段。为了确保借用交易并加强借用许可的时间限制,有必要在借用借用许可时指定最 大借用时间限制。供体节点和借用节点二者独立地跟踪最大借用时间限制(也被称为“超 时”值)。如果超时值在借用许可从借用节点返回到供体节点之前期满,则将在借用者节点 上自动禁用借用许可并且将在供体节点上自动启用(即检查返回到供体节点中的)该借用 许可。在借用许可仍处于超时值内的时间期间,借用许可保持有效。此外,有效的借用 许可被认为对于来自借用节点的检查是可用的。因为网络的对等性能,不限于仅由在借用 节点上运行的程序来检查借用许可。也就是说,借用许可可以用于请求该借用许可的其他 连接节点。这意味着许可可以从供体节点(其用作许可服务器)临时重新定位到借用节点 (其随后相对于供体节点离线),并且该借用节点随后可以用作借用许可的许可服务器。图4说明第一计算机节点100如何用作借用许可的许可服务器并且将所借用的许 可用于对等系统中的第三计算机节点300。第三计算机节点300包括应用过程310,该应用过程310进一步包括至少一个程序320和许可库330。该第三计算机节点300还包括其自 己的许可后台程序340和地址文件360。尽管没有在图4中示出,但是第三计算机节点300 还包括加密许可文件。当至少一个程序320提出许可请求时,许可库330将该请求发送到许可后台程序 340。许可后台程序340首先尝试从其自己的加密许可文件(未在图4中示出)访问(或 “检查”)所请求的许可。如果所请求的许可在加密许可文件中,则许可后台程序340将所 请求的许可从许可库330提供给程序320。如果所请求的许可没有在加密许可文件中(即所请求的许可不是本地可用的), 则许可后台程序340可以发布请求来从已知的远程节点(其也被称为远程主机)之一访问 (或“检查”)许可。图4说明第三计算机节点300的许可后台程序340和第一计算机节点 100的许可后台程序140之间的连接和通信。尽管未在图4中示出,但是第一计算机节点 100包括加密许可文件150和包含对等系统中远程定位的许可节点的计算机地址的地址文 件 160。许可后台程序140访问所借用的许可文件170以确定所请求的许可是否是可用 的。如果所请求的许可位于借用许可文件170内,则许可后台程序140将该所请求的许可标 记为正在使用并且准许许可请求。许可后台程序140将所请求的许可从借用许可文件170 提供给许可后台程序340。许可后台程序340将所借用的许可提供给许可库330和请求程 序 320。如果所请求的许可没有位于借用许可文件170内,则许可后台程序140报告找回 到第三计算机节点300中的许可后台程序340。当许可后台程序340向对等网络中的其他节点发出访问许可的请求时,其他节点 将该请求级联到他们本地地址列表(如果有的话)中的其他节点直到找到所请求的许可或 者许可搜索因为缺少对等网络中连接的任何节点上的所请求许可的可用性而失败为止。如先前所提到的那样,当许可后台程序140向许可后台程序340发送借用许可时, 许可后台程序340将所借用的许可提供给程序320。第一计算机节点100是已相对于原始 供体节点(第二计算机节点200)离线的借用节点。第一计算机节点100又以这种方式用 作将先前借用的许可用于第三计算机节点300的许可服务器。图5说明示出本发明的方法的有利实施例的步骤的流程图500。在第一步骤中,提 供计算机许可节点的对等网络(步骤510)。然后,第一计算机节点100中的请求程序120 向其许可后台程序140发布许可请求(步骤520)。许可后台程序140在本地许可文件150 和本地许可库130中搜索所请求的许可,并且如果找到,则将所请求的许可发送给请求程 序120 (步骤530)。如果许可后台程序140在第一计算机节点100中没有找到所请求的许可,则许可 后台程序140向对等网络中的每个计算机节点发送许可请求,对于所述计算机节点来说该 许可后台程序140具有地址并且该许可请求通过网络节点级联(步骤540)。然后,第二计 算机节点200中的许可后台程序240确定所请求的许可处于其本地许可文件250中并且处 于其本地许可库230中(步骤550)。然后,许可后台程序240(1)将所请求的许可标记为正在使用,并且(2)准许许可 后台程序140的许可请求,并且(3)在许可准许的持续时间内将心跳信号发给许可后台程序140 (步骤560)。当(1)请求程序120释放许可,或(2)当请求程序120终止,或(3)当 心跳信号失效时,许可终止(步骤570)。当许可终止时,则许可后台程序240将该许可释放 返回到对于后续许可合适的本地许可池中(步骤580)。图6说明示出本发明的方法的另一个有利实施例的步骤的流程图600。在第一步 骤中,提供计算机许可节点的对等网络(步骤610)。然后,第一计算机节点100中的请求程 序120向其许可后台程序140发布许可请求(步骤620)。许可后台程序140在本地许可文 件150和本地许可库130中搜索所请求的许可,并且如果找到,则将所请求的许可发送给请 求程序120 (步骤630)。如果许可后台程序140没有在第一计算机节点100中找到所请求的许可,则许可 后台程序140向对等网络中的每个计算机节点发送借用请求,对于所述计算机节点来说该 许可后台程序140具有地址并且该借用请求通过网络节点级联(步骤640)。然后,第二计 算机节点200中的许可后台程序240确定所请求的许可处于其本地供体文件270中并且处 于其本地许可库230中(步骤650)。然后,许可后台程序240(1)将所请求的许可标记为在所请求的时间限制内正在 使用,并且(2)将所请求的借用许可发送到第一计算机节点100中的许可后台程序140和 借用许可文件270中(步骤660)。然后,第一计算机节点100和第二计算机节点200之间 的网络连接被切断并且该第一计算机节点100利用所借用的许可离线操作(步骤670)。当离线操作时,则第一计算机节点100随后向第三计算机节点300许可所借用的 许可(步骤680)。当原始请求时间限制期满时,所借用的许可自动终止(步骤690)。当所 借用的许可终止时,则许可后台程序240将所借用的许可释放返回到对于后续许可或后续 借用合适的本地许可池中(步骤695)。阐明遍及该专利文件使用的某些词和短语的定义是有益的。术语“应用”、“程序” 和“例程”指的是一个或多个计算机程序、指令集、过程、功能、对象、类、实例或适于以适合 的计算机语言来实施的相关数据。术语“耦合”以及其衍生词指的是两个或更多元件之间 任何直接或间接通信,而不管这些元件彼此是否是物理接触的。术语“发射”、“接收”和“通信”以及其衍生词包括直接和间接通信。术语“包括” 和“包含”以及其衍生词意味着非限制性地包括。术语“或”是包括性的,意味着和/或。短 语“与...相关联的”和“与其相关联的”以及其衍生词可意味着包括、包括在内、与...互 连、包含、包含在内、连接到或与.· ·连接、耦合到或与.· ·耦合、与.· ·通信、与.· ·协作、 交错、并置、接近、绑定到或与...绑定、具有、具有...的属性等等。术语“控制器”意味着 控制至少一个操作的任何设备、系统或其部分。控制器可以以硬件、固件、软件或其至少两 个的某种组合来实施。与任何特定控制器相关联的功能可以是集中式的或分布式的,而不 管是本地地还是远程地。尽管本公开已描述了某些实施例以及通常相关联的方法,但是这些实施例和方法 的变化和置换将对本领域技术人员来说是显而易见的。因此,示例实施例的上述描述不限 定或约束本公开。在不偏离由下述权利要求限定的本发明的精神和范围的情况下,还有可 能存在其他改变、替换和变化。
权利要求
一种用于管理软件许可的装置,包括在对等计算机网络中连接在一起的多个计算机(100、200、300),其中每个计算机是所述网络的计算机节点;其中每个计算机节点包括作为软件许可提供器和软件许可用户而运行的软件许可管理控制器。
2.根据权利要求1所述的装置,其中每个计算机节点中的软件许可管理控制器包括与 其他计算机节点中的其他许可后台程序(140)通信的许可后台程序(140)。
3.根据权利要求2所述的装置,其中第一计算机节点中的许可后台程序响应于从所述 第一计算机节点中的请求程序接收到对软件许可的请求,在所述第一计算机节点中搜索所 请求的软件许可。
4.根据权利要求3所述的装置,其中所述第一计算机节点中的许可后台程序响应于在 所述第一计算机节点中没有找到所请求的软件许可,向其他计算机节点中的其他许可后台 程序发送借用软件许可的请求。
5.根据权利要求4所述的装置,其中第二计算机节点中的许可后台程序确定所请求的 软件许可位于所述第二计算机节点中;并且将所述所请求的软件许可标记为在所请求的时 间限制内正在使用;以及将所述所请求的软件许可发送给所述第一计算机节点中的许可后 台程序。
6.根据权利要求5所述的装置,其中在所述第一计算机节点已从所述第二计算机节点 接收到所借用的软件许可之后,从所述第二计算机节点借用软件许可的第一计算机节点的 连接被从所述第二计算机节点切断。
7.一种用于管理软件许可的装置,包括在对等计算机网络中连接在一起的多个计算机(100、200、300),其中每个计算机是所 述网络的计算机节点;其中每个计算机节点包括软件许可管理控制器,该软件许可管理控制器包括与其他计 算机节点中的其他许可后台程序(140)通信的许可后台程序(140);其中第一计算机节点中的许可后台程序响应于从所述第一计算机节点中的请求程序 接收到对软件许可的请求,在所述第一计算机节点中搜索所述所请求的软件许可;以及其中响应于在所述第一计算机节点中没有找到所请求的软件许可,所述第一计算机节 点中的许可后台程序向其他计算机节点中的其他许可后台程序发送对许可所述软件许可 的请求。
8.根据权利要求7所述的装置,其中当出现下述各项之一时所请求的软件许可终止 所述第一计算机节点中的请求程序释放所述所请求的软件许可,所述第一计算机节点中的 请求程序终止操作;以及所述心跳信号失败。
9.一种用于管理软件许可的方法,包括下述步骤连接(510、610)对等计算机网络中的多个计算机,其中每个计算机是所述网络的计算 机节点;在每个计算机节点内提供软件许可管理控制器;以及操作(520-580,620-695)作为软件许可提供器和软件许可用户的所述软件许可管理 控制器。
10.根据权利要求9所述的方法,还包括步骤临时从第二计算机节点的软件许可管理控制器借用软件许可以由第一计算机节点的 软件许可管理控制器使用;以及将来自所述第一计算机节点的软件许可管理控制器的许可准许给第三计算机节点的 软件许可管理控制器以使用从所述第二计算机节点的软件许可管理控制器借用的软件许可。
全文摘要
公开了一种能够临时重新定位可用软件许可的对等软件许可管理系统。允许将该对等软件许可管理系统中的任何节点(100、200、300)(即在其中安装本发明的软件许可管理系统软件的任何计算机)用作许可提供器,或者用作许可用户,或者用作许可提供器和许可用户二者。对等软件许可管理系统的任何节点具有如下能力临时从另一个节点借用软件许可,以及将所借用的软件许可重新用于又一个节点,就像借用该软件许可的节点本身是许可提供器一样。将对等软件许可管理系统的每个节点作为许可用户和许可提供器二者来运行。
文档编号G06F21/24GK101960459SQ200980106659
公开日2011年1月26日 申请日期2009年2月10日 优先权日2008年2月28日
发明者C·D·埃利奥特, D·J·帕文, S·G·诺里斯 申请人:霍尼韦尔国际公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1