CN100442302C - 利用快速运行时间识别计量软件产品的使用的方法和*** - Google Patents

利用快速运行时间识别计量软件产品的使用的方法和*** Download PDF

Info

Publication number
CN100442302C
CN100442302C CNB2005101272837A CN200510127283A CN100442302C CN 100442302 C CN100442302 C CN 100442302C CN B2005101272837 A CNB2005101272837 A CN B2005101272837A CN 200510127283 A CN200510127283 A CN 200510127283A CN 100442302 C CN100442302 C CN 100442302C
Authority
CN
China
Prior art keywords
module
path
operation module
product
global dictionary
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
Application number
CNB2005101272837A
Other languages
English (en)
Other versions
CN1794259A (zh
Inventor
伯纳多·帕斯托里尔利
玛丽亚·G.·米科尼
马可·梅切利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1794259A publication Critical patent/CN1794259A/zh
Application granted granted Critical
Publication of CN100442302C publication Critical patent/CN100442302C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2135Metering

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • General Physics & Mathematics (AREA)
  • Game Theory and Decision Science (AREA)
  • Multimedia (AREA)
  • Tourism & Hospitality (AREA)
  • Operations Research (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Educational Administration (AREA)
  • Quality & Reliability (AREA)
  • Development Economics (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

提出一种计量数据处理***中软件产品的使用的方法(300)。利用对应的可执行模块(340)的多个属性,在全局目录(325)中识别要计量的产品;这些属性的核实要求通过模块的路径访问所述模块,在运行时间,所述路径是不可得到的(因为由于性能的原因,模块直接由对应的位置识别)。本发明的解决方案以创建局部目录(350)的思想为基础,所述局部目录(350)使安装在***上(包括在全局目录中)的每个模块的路径与其位置相关联。定期根据在***上执行的过程的列表,检测(365)运行模块的位置。这样,通过局部目录(而不必扫描***),能够很快地获得(355)与每个运行模块的位置对应的路径。现在能够访问(360)运行模块,以便抽取它的识别全局目录中的对应产品所需的属性。

Description

利用快速运行时间识别计量软件产品的使用的方法和***
技术领域
本发明涉及数据处理领域。更具体地说,本发明涉及数据处理***中软件产品使用的计量(meter)。特别地,本发明目的在于简化***上使用中的产品的运行时间识别(run-time identification)。
背景技术
软件产品(例如计算机程序)可被完美地复制无限份。这是希望保护他们的知识产权的产品发行人的主要关心的事;实际上,发行人一般接收每件产品的许可使用的特许费,从而产品的任何未计入的使用或分发导致未支付的特许费。随着因特网的普及,过去几年中该问题已被恶化,因特网进一步简化了这种产品的无控分发。
避免软件产品的未计入使用的最简单方式在于防止擅自复制和传播。例如,一些产品嵌入限制可产生的副本的数目或者在经过预定的一段时间之后,禁止该产品的运行的控制代码。另一种技术包括要求拥有运行该产品的软件或硬件密钥。一种不同的解决方案包括提交每个产品,以便调用许可管理***,许可管理***核实产品的使用是否被授权,随后据此允许产品启动或者迫使其停止。
但是,上述技术侵入性较大,因为它们要求发行人修改每个产品。此外,这些解决方案并不具有通用性,在计量现有产品的使用方面完全无效。
一种不同的方法基于软件目录的使用。软件目录列举(要被计量的)关心的所有产品;每个产品与一个或多个可执行模块相关,当运行时,所述一个或多个可执行模块指示产品的使用。这种情况下,在后台工作的许可代理检测正在运行的模块;许可代理随后通过软件目录识别使用中的对应产品。许可代理随后中关闭与未被准许运行的产品对应的任何过程(以便停止其执行),并使该产品不能再次启动。另一方面,如WO-A-03038570中所述,许可代理检测响应产品的执行请求而启动的任何新过程(例如,利用内核挂断技术)。过程被暂停以便核实运行对应产品的授权。这种情况下,如果被给予授权,那么恢复该过程,以使该产品能够启动;否则,过程被异常中断,以便防止产品的使用(从而避免在过程正在执行有潜在危险的操作时,关闭该过程)。
一般来说,依据多个属性(例如其名称、大小和检查和)在软件目录中识别每个模块。这样,能够高度准确地识别使用中的产品(大大降低误识别的概率)。此外,多个属性允许区分相同产品的不同版本(它们一般基于具有同样名称的模块)。
上述解决方案的问题在于许可代理必须访问在***上运行的每个模块,以便取回其属性(例如,打开模块,并计算必需的信息)。该操作需要知道运行模块的完整路径,以便通过每个文件***的典型树形结构,到达运行模块。然而,由于性能的原因,在多数操作***中,通过对应的位置识别运行模块;位置直接指向运行模块,而不必遍历整个树形结构。但是,这种情况下,不能直接地从其位置得到运行模块的路径(因为通常不能从运行模块到其根节点反向遍历树形结构)。
于是,许可代理必须扫描整个树形结构,以识别与每个运行模块的位置相关联的路径(以便访问该运行模块,取回所需的属性)。该过程非常费时,并且浪费大量的***资源。
当许可代理定期检测运行模块时,上述缺陷尤其严重。事实上,这种情况下,不能高度准确地(关于运行模块的授权)对其进行核实。这对计量使用中的产品的过程的准确性存在不利影响。
发明内容
根据本发明,提出使位置与路径相关联,以便实现对应模块的快速运行时间识别的思想。
具体地说,本发明的一方面提供一种计量数据处理***中的软件产品的使用的方法。该方法从提供全局目录开始;全局目录使要计量的每个产品与一个或多个可执行模块相关联,当运行时,所述一个或多个可执行模块指示所述产品的使用。产生使路径(用于访问包括在全局目录中的安装于***上的每个模块)与位置(用于识别运行时的模块)的局部目录(local catalogue)。该方法随后包含检测在***上运行的每个模块的位置的步骤。现在根据局部目录确定与每个运行模块的位置相关的路径。通过对应的路径,可访问每个运行模块,以便根据全局目录,识别与运行模块相关的产品。
这样,可直接访问每个运行模块(而不需要扫描***,取回(retrieve)与对应位置相关联的路径)。从而该过程(process)很快,并且不浪费大量的***资源。
在不有损其通用性的情况下,提出的解决方案允许频繁地定期(关于运行模块的授权)核实运行模块,而不会不利地影响***的性能。这大大提高了计量正在使用的产品的过程的准确性。
下面描述的本发明的不同实施例提供另外的优点。
例如,当定期确定在***上执行的过程的列表,以便确定运行模块的位置时,本发明的解决方案特别有利。
事实上,这种情况下,没有备选技术可用于取回对应的路径(除了扫描***之外)。
提出的解决方案专用于其中利用一个或多个属性,在全局目录中定义每个模块的应用。
这允许直接取回每个运行模块的属性(用于识别每个运行模块)。
在本发明的一个优选实施例中,通过扫描***的大容量存储器(用于检测每个安装模块的路径和位置),创建局部目录;如果安装的模块包括在全局目录中,那么随后把该信息加入到局部目录中。
可离线进行提出的过程。
作为另一改进,每当运行模块的位置未包括在局部目录中时,扫描大容量存储器(mass memory),检测对应的路径;如果运行模块被包括在全局目录中,那么把其路径和位置加入到局部目录中。
这使得能够在运行时间,关于创建局部目录之后安装的任何模块,更新局部目录。
一种进一步改进该解决方案的另一方式是(关于运行模块的位置),确定与从局部目录抽取的路径相关联的实际位置,以便核实这种关联是否仍然有效。
这种附加特征提高了识别的准确性(因为它避免了在创建局部目录之后,运行模块已被移动时的错误结论);在不显著影响性能的情况下获得该结果(因为根据路径确定位置的操作很快)。
有利的是,如果关联不再有效,那么从局部目录中除去信息;随后扫描大容量存储器,以便检测与运行模块的位置相关联的路径,并把其路径和位置加入到局部目录中(如果运行模块包括在全局目录内的话)。
这允许使局部目录始终保持最新(即使任何运行模块已被移动)。
本发明的另一方面提供一种执行上述方法的计算机程序。
本发明的另一方面提供一种包含该计算机程序的计算机产品。
本发明的另一方面提供对应的数据处理***。
在附加的权利要求中陈述了本发明的特征。但是,结合附图,参考下面只是作为非限制性指示给出的详细说明,将更好地理解发明本身,及其其它特征和优点。
附图说明
图1a是其中适用根据本发明的实施例的解决方案的数据处理***的示意方框图;
图1b表示该***的类属工作站的功能块;
图2举例表示工作站的例证文件***的结构;
图3描述可被用于实践根据本发明的实施例的解决方案的主要软件组件;
图4a-4d描述与根据本发明的实施例的解决方案的例证实现相关联的动作流程。
具体实施方式
参见图1a,图中描述了具有分布式体系结构的数据处理***100。***100包括多个工作站(WS)105w,所述多个工作站105w被分成多个组;一个特许服务器105s与每组工作站105w相关联。特许服务器105s和对应的工作站105w通过网络110(例如LAN)相互连接。不同的特许服务器105s通过一个不同的网络120(例如,基于因特网的网络)与远程管理服务器115通信;管理服务器115实现中央储存库,在所述中央储存库中,收集和管理***100的使用、采购和库存数据。
如图1b中所示,类属工作站105w由并行与***总线153连接的几个单元形成。具体地说,微处理器(μP)156控制工作站105w的操作;RAM 159被微处理器156直接用作工作存储器,ROM 162保存工作站105w的基本自引导代码。***单元在局部总线165周围被群集(利用相应的接口)。具体地说,大容量存储器由硬盘168和读取CD-ROM 174的驱动器171组成。此外,工作站105w包括输入装置177(例如键盘和鼠标),和输出装置180(例如,监视器和打印机)。网络接口卡(NIC)183被用于连接工作站105w与网络。桥接器186使***总线153与局部总线165连接。微处理器156和桥接器186能够起请求访问***总线153,以便传送信息的主代理的作用。判优器189管理对***总线153的互斥访问的批准。
现在参见图2,上述工作站的操作***一般实现具有分层结构的文件***。特别地,文件***被组织成树形结构200,从定义(物理或逻辑)设备的根节点205开始,也称为根目录。每个中站节点210(具有一个或多个从属于其的子节点)定义子目录。叶节点(不具有从属于其的任何子节点)或者是空的子目录或者是文件215。
根目录205和每个子目录210包括指向对应子节点(由子目录210或文件215构成)的一个或多个正向指针220;每个子目录210还包括指向其父节点(即,另一子目录210或根目录205)的反向指针222。指针220允许从上到下(从根目录205到任何所需的文件215)遍历树形结构200。特别地,借助始于根目录205,并通过介入的子目录(如果有的话)到达文件215的对应路径,访问每个文件215。例如,在从属于根目录i°MyRoot的子目录i°MyDir中列举的称为i°MyFile的文件由路径i°MyRoot\MyDir\MyFile识别。
由于性能的原因,工作站的操作***借助另一指针225(代替其路径)内部识别每个文件215。指针225定义硬盘上文件215的(逻辑)位置;这样,操作***能够直接访问文件215,而不必经过整个树形结构200。例如,位置可由识别逻辑磁盘的数字(也称为文件***ID)和文件***唯一的数字(也称为i-node)组成。应注意文件215不包括指向对应父节点的反向指针;于是,不能从任何文件215到根目录205地穿过树形结构200。每个文件215的位置225不能被用于获得其路径;从而,对(调用其服务的任何应用)从操作***外部访问文件215来说,位置225不起作用。
参见图3,用附图标记300整体表示可用于实践(根据本发明一个实施例的)方法的主要软件组件。信息(程序和数据)一般保存在硬盘上,当程序运行时,被载入(至少部分地)对应的工作存储区中。程序最初从CD-ROM安装到硬盘上。
具体考虑类属许可服务器105s,对应的管理器305控制相关的工作站。许可管理器305访问授权目录310,授权目录310包含和不同软件产品的授权的使用条件有关的信息;例如,授权目录310规定每个软件产品可在其上运行的工作站的工作存储区的最大处理能力或最大容量,产品的许可证的数目(定义允许同时运行的软件产品的实例的最大数目)等等。许可管理器305还控制运行表315中信息的输入,运行表315列举在工作站上同时使用的产品。另外,许可管理器305从对应的工作站收集信息(例如,和安装的程序,使用未授权或未知产品的任何尝试等有关的信息);该信息被保存在对应的日志320中。
许可服务器105s还保存全局软件目录325,全局软件目录325被分发给所有相关工作站(例如,定期地或者当其发生任何变化时)。全局目录325列举***中所有要被计量的已知产品。每个产品由签名识别,所述签名由一个或多个可执行的模块组成,当运行时,所述一个或多个可执行模块指示产品的使用。在全局目录325中利用多个属性指定每个模块;一般地,用其名称、大小和检查和来识别模块(以便提高识别的准确性)。
现在研究类属工作站105w,操作***330提供一个软件平台,任何应用可在该软件平台上运行。特别地,许可工具335被用于控制任何软件产品340的使用。具体地说,许可工具335包括从许可服务器105s接收的全局目录325。扫描器345访问全局目录325。模块345(通过操作***330提供的对应服务)扫描工作站105w的大容量存储器,以便检测安装在工作站105w上的每个模块的路径和位置。扫描器345产生局部目录350,局部目录350包括包含在全局目录中的每个安装模块的一个条目;该条目使安装模块的路径与对应的位置相关联。为此,局部目录350最好由把路径保存为数据,并使用位置作为关键字的散列表组成;这样,通过简单地访问由位置的散列值(使用用于***路径的相同散列函数来计算)寻址的条目,能够很快地抽取与每个位置相关联的路径。
这样获得的局部目录350由处理程序(handler)355保持。在后台持续运行的计量代理360(通过处理程序355)访问局部目录350,以及全局目录325。计量代理360与监视器365通过界面连接。监视器365询问操作***330,以便获得正在工作站105w上执行的过程的列表;对于每个过程,监视器365取回正在运行的对应模块的位置(在***作***330内部保存的情况下,该信息立即可用)。运行模块的位置随后被传送给计量代理360。计量代理360再(利用局部目录350)确定与每个运行模块的位置相关的路径。这样,计量代理360能够访问每个运行模块,以便(借助全局目录325)识别对应的产品340。这样获得的信息由计量代理360传送给许可管理器305。许可管理器305(利用授权目录310和运行表315)批准或拒绝使用每个产品的授权。
该操作的结果被保存在日志320中,并被返回给计量代理360(如果需要的话,更新运行表315);计量代理360随后据此控制产品340的执行。
现在考虑图4a-4d,图中用方法400表示在上述***中实现的计量方法的逻辑流程图。该方法始于扫描器的泳道(swim-lane)中的黑色开始圆402。延缓到方框404,通过载入全局目录,启动工作站的大容量存储器的扫描;例如,每当从许可服务器下载新的全局目录,或者预定的超时期满(例如每周)时,进行该操作。该方法随后进行到方框406,从上到下(从根目录开始)遍历文件***的整个树形结构;每当到达一个叶节点并且发现一个可执行模块时,在方框408进行测试,以核实该模块是否包括在全局目录中;最好,通过简单地搜索具有相同名称的模块(而不考虑其属性),执行该操作。如果这样的话,那么在方框410确定安装的模块的位置,并且关于安装模块的路径和位置的条目被加入到新版本的局部目录中。流程随后转到方框412;如果安装模块未包括在全局目录中,那么直接从方框408转到方框412。在方框412,所述方法核实大容量存储器的扫描是否已结束(即,已遍历树形结构的所有分支,从而到达其每个叶节点)。如果不是,那么流程返回方框406,继续大容量存储器的扫描。相反,用获得的新版本局部目录替换局部目录(如果有的话)。
同时(完全同步地),每个预定的超时期满(例如每分钟)时,计量代理进入方框416;在该阶段,确定正在工作站上执行的过程的列表。随后对每个过程执行一个循环(从第一个过程开始);所述循环开始于方框418,在方框418中,获得与该过程相关联的运行模块的位置。计量代理随后在方框420核实运行模块的位置是否包含在局部目录中(即,对于对应的散列值,存在一个条目)。如果核实结果是否定的,那么执行方框422-428,否则执行方框430-445;在这两种情况下,该方法随后都转到方框446。
现在考虑方框422,当运行模块未包括在局部目录中时,到达方框422;例如,如果在局部目录的最新更新之后,把运行模块安装在工作站上,那么会发生这种情况。在该阶段中,扫描大容量存储器,直到找到该运行模块为止(从而获得对应的路径)。现在在方框424进行测试,以核实运行模块是否包括在全局目录中(只根据其名称和/或任何其它属性)。如果是,那么在方框426,把关于该运行模块的路径和位置的条目加入到局部目录中。相反,在方框428,把运行模块设置成未知模块;最好,在该阶段中,可从运行模块的位置获得的任何信息(例如名称,有时还有其大小)和(未知的)运行模块的位置一起被保存,以便简化其识别(例如由管理人员识别)。这两种情况下,流程随后都转到方框446。
参见方框43(运行模块包含在局部目录中),从局部目录抽取与运行模块的位置对应的路径。转到方框432,计量代理访问与抽取的路径对应的模块,以便确定其位置(很快的操作)。随后在方框434,比较确定的位置与运行模块的位置。如果比较的结果是否定的,那么执行方框436-444,否则执行方框445;在这两种情况下,该方法随后转到方框446。
现在考虑方框436,当与局部目录中的运行模块的位置相关的路径不再有效时,到达方框436;例如,如果在局部目录的最后更新之后,运行模块已被移动,那么会发生这种情况。这种情况下,在方框436,把关于运行模块的位置的无效条目从局部目录中除去。该方法随后转到方框438,扫描大容量存储器,直到找到该运行模块为止(从而获得对应的路径)。随后在方框444进行测试,以便核实该运行模块是否包含在全局目录中。如果是,那么在方框442,把关于该运行模块的路径和位置的条目加入到局部目录中。相反,在方框444,把该运行模块设置成未知模块(连同可获得的任何相关信息),因为其使用不再被计量。在这两种情况下,流程随后都转到方框446。
参见方框445(与运行模块的位置相关的路径仍然有效),该路径被接受为访问该运行模块的正确路径。所述方法随后转到方框446。
从而,局部目录被自动更新,以反映任何新产品的安装(方框426),或者与已安装的任何产品相关的模块的移动(方框436和442)。总之,这些事件不太频繁(尤其是模块的移动),从而大容量存储器的对应(慢速)扫描将很少发生。应注意上述算法不能从局部目录中除去与已被卸载的任何产品对应的条目(因为它们的模块不再运行);但是,当重新产生局部目录(方框414)时,该陈旧信息被定期除去。
现在考虑方框446,现在可通过这样获得的路径访问运行模块(假定它不是未知的模块);这样,能够抽取在全局目录中指定的运行模块的每种属性(讨论中的例子中的模块的大小和检查和)。随后在方框448,比较抽取的属性与在全局目录中关于具有相同名称(由于上述逻辑流程的结果,总是可以获得该名称)的模块(或多个模块)指定的对应值。如果运行模块的属性与在全局目录中指示的属性相符,那么在方框450识别对应的产品。相反,在方框452,把该产品设置成未知产品(连同任何可用信息)。随后在方框453进行测试,核实所有的过程是否已被分析。如果否,那么该方法返回方框418,对下一过程的运行模块重复相同的操作。
一旦所有的运行模块已被处理,那么在方框454,把这样获得的信息通知许可管理器。作为响应,在方框456,许可管理器核实工作站上的每个被识别产品的执行是否遵守保存在授权目录中的使用条件(例如,运行环境是否满足授权的配置,已运行的产品的实例的数目是否未达到许可的最大值);相反,任何未知产品被默认为未经授权(或者提示管理人员定义运行时间时该未知产品的授权)。在方框458记录核实结果;同时,任何批准的授权也被加入到运行表中。在该阶段中,还可向管理人员通知任何关键条件(例如,当任何产品的可用许可证的数目低于某一阈值时,或者当许可服务器已用完特定产品的许可证时)。随后在方框460,把对应的响应返回给计量代理。
随后对每个过程执行一个循环(从第一个过程开始);该循环始于方框461,在方框461中,检查要运行的对应授权。如果授权未被批准(方框464),那么在方框466关闭该过程(从而停止对应产品的执行);相反,不执行任何操作(从而程序的执行可以继续)。总之,随后在方框468进行测试,以核实所有过程是否已被检查。如果不是,那么该方法返回方框461,对下一过程重复相同的操作。相反,流程返回等待方框416。
自然地,为了满足局部的特定要求,本领域的技术人员可对上述解决方案进行许多修改和变更。特别地,虽然参考其优选实施例较详细地说明了本发明,不过要明白形式和细节方面的各种省略、替换和改变以及其它实施例都是可能的;此外,明确地预期结合本发明的任何公开实施例描述的具体元件和/或方法步骤可作为设计选择的一般物件包含在任何其它实施例中。
例如,预期提出的解决方案在不同于许可管理的语境中的使用。特别地,关于产品检测的信息可以只被用于报告(而不存在它们的授权的任何核实)。另一方面,产品总是被允许运行(例如,只记录它其使用未被授权时的例外)。
总之,本发明的方法可被用于计量任何类型的软件产品(例如视频游戏、多媒体作品等)。
类似的考虑适用于具有不同结构或者基于等同部件的***;同样地,每个工作站可具有另一结构,或者它可被任何数据处理实体(例如PDA、移动电话机等)替代。此外,本发明的解决方案还适合于在工作站的控制被分散的***中使用,或者甚至在独立的计算机中使用。
应注意本发明的原理并不局限于上面规定的路径和位置,相反本发明的原理更一般地适用于(任何文件***中)用于访问模块以及当运行时,用于所述模块的识别的任何等同要素。
即使在上面的说明中,引用了全局目录和局部目录,不过这并不是对本发明的限制;事实上,本发明的解决方案适合于由任何其它结构实现,甚至由单一目录构成(例如,通过把路径加入到全局目录的相关条目中)。
总之,可考虑等同的可执行模块(例如DLL);此外,可利用不同的属性(例如它们的创建日期)在全局目录中识别模块。
另一方面,使用任何其它技术来扫描***的大容量存储器(当需要时)在本发明的范围内(例如,比较所有属性,而不仅仅是比较相关模块的名称)。
如果按照不同的方式构成实现上述解决方案的程序,或者如果提供另外的功能块或函数,那么类似的考虑事项也是适用的;同样地,不同的存储器结构可以是不同的类型,或者可用等同的实体替代(不一定由物理存储介质组成)。此外,提出的解决方案可实现等同的方法(例如,具有类似或者另外的步骤)。
总之,能够把程序分布在任何其它的计算机可读介质中(例如DVD)。
此外,对于本领域的技术人员来说,提供其它优点的附加特征显然并不是实现本发明所必不可少的,它们可被省略或者用不同的特征替代。
例如,提出的解决方案还适合于当在运行时间中途截止每个模块的起动时被应用(即使在这种情况下,备选技术也可用于获得运行模块的路径)。
在本发明的一个备选实施例中,产品的名称被直接保存在局部目录中(从而它们可被识别,而不必在运行时间物理访问全局目录)。
在不脱离本发明的原理的情况下,能够递增地创建局部目录。例如,在最初的工作站上提供一个空的局部目录,每当安装一个产品时,***一个新的条目(假定通知机构就位);于是,任何运行模块的位置将总是被包括在局部目录中。
但是,并不排除每当在局部目录中找不到产品时,简单地把该产品设置成未知产品的简化实现。
另外,每当与局部目录中的运行模块的位置相关的路径不再有效时,产品也可被设置成未知产品。
另一方面,当上述通知机构就位时,能够响应任何变化(例如,每个模块的删除或移动),更新局部目录。这样,局部目录中的任何关联将始终有效;于是,能够避免运行时间时,大容量存储器的任何(慢速)扫描。
在不脱离本发明的原理的情况下,还可不经任何核实地接受从局部目录抽取的路径(认为模块很少被移动,从而在多数实际情况下,具有无效关联的概率是可以忽略的)。
如果程序被预先加载到硬盘上,通过网络被发送给计算机,被广播,或者更一般地,以可直接载入计算机的工作存储区中的任何其它形式提供,那么类似的考虑事项也适用。
最后,根据本发明的方法由硬件结构(例如,半导体材料的集成芯片),或者由软件和硬件的组合物实现。

Claims (8)

1、一种计量数据处理***中软件产品的使用的方法(400),所述方法包括下述步骤:
提供使每个要计量的产品与至少一个可执行模块相关联的全局目录,当运行时,所述至少一个可执行模块指示所述产品的使用,
创建(406-414)局部目录,所述局部目录使访问包含在全局目录中的安装在***上的每个模块的路径与识别运行时的模块的位置相关联,
检测(416-418)正在***上运行的每个模块的位置,
根据局部目录,确定(420-445)与每个运行模块的位置相关联的路径,和
通过对应的路径访问(446-452)每个运行模块,以便根据全局目录识别与运行模块相关联的产品。
2、按照权利要求1所述的方法(400),其中检测(416-418)每个运行模块的位置的步骤包括:
定期确定(416)在***上执行的过程的列表,每个过程与对应运行模块的位置相关联,和
获得(418)与每个过程相关联的运行模块的位置。
3、按照权利要求1或2所述的方法(400),其中利用至少一个属性在全局目录中定义每个模块,访问(446-452)每个运行模块以便识别与运行模块相关联的产品的步骤包括:
取回(446)运行模块的至少一个属性,和
搜索(448-452)和全局目录中的运行模块的至少一个属性相匹配的产品。
4、按照权利要求1或2所述的方法(400),其中创建(406-414)局部目录的步骤包括:
扫描(406)***的大容量存储器,以便检测每个安装模块的路径和位置,
核实(408)每个安装模块是否包括在全局目录中,和
响应安装模块包括在全局目录中的肯定核实,把每个安装模块的路径和位置加入(410)局部目录中。
5、按照权利要求4所述的方法(400),其中确定(420-445)与每个运行模块的位置相关联的路径的步骤包括:
核实(420)运行模块的位置是否包括在局部目录中,
响应运行模块的位置包括在局部目录中的否定核实,扫描(422)大容量存储器,以便检测与运行模块的位置相关联的路径,
核实(424)运行模块是否包括在全局目录中,和
响应运行模块包括在全局目录中的肯定核实,把运行模块的路径和位置加入(426)局部目录中。
6、按照权利要求5所述的方法(400),其中确定(420-445)与每个运行模块的位置相关联的路径的步骤还包括:
响应运行模块的位置包括在局部目录中的肯定核实,从局部目录中抽取(430)与运行模块的位置对应的路径,
确定(432)通过抽取的路径访问的模块的位置,
比较(434)确定的位置与运行模块的位置是否相等,和
响应肯定的比较结果,使抽取的路径与运行模块的位置相关联(445)。
7、按照权利要求6所述的方法(400),其中确定(420-445)与每个运行模块的位置相关联的路径的步骤还包括:
响应否定的比较结果,从局部目录中除去(436)具有对应路径的运行模块的位置,
扫描(438)大容量存储器,以便检测与运行模块的位置相关联的路径,
核实(440)运行模块是否包括在全局目录中,和
响应运行模块包括在全局目录中的肯定核实,把运行模块的路径和位置加入(442)局部目录中。
8、一种数据处理***(105w),它包括计量***中的软件产品的使用的装置(335),所述计量装置包括:
使每个要计量的产品与至少一个可执行模块相关联的全局目录(325),当运行时,所述至少一个可执行模块指示所述产品的使用,
创建局部目录(350)的装置(345),所述局部目录使访问包含在全局目录中的安装在***上的每个模块的路径与识别运行时的模块的位置相关联,
检测正在***上运行的每个模块(340)的位置的装置(365),
根据局部目录,确定与每个运行模块的位置相关联的路径的装置(355),和
通过对应的路径访问每个运行模块,以便根据全局目录识别与运行模块相关联的产品的装置(360)。
CNB2005101272837A 2004-12-21 2005-12-05 利用快速运行时间识别计量软件产品的使用的方法和*** Expired - Fee Related CN100442302C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP04106799 2004-12-21
EP04106799.2 2004-12-21

Publications (2)

Publication Number Publication Date
CN1794259A CN1794259A (zh) 2006-06-28
CN100442302C true CN100442302C (zh) 2008-12-10

Family

ID=36597262

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005101272837A Expired - Fee Related CN100442302C (zh) 2004-12-21 2005-12-05 利用快速运行时间识别计量软件产品的使用的方法和***

Country Status (2)

Country Link
US (1) US20060136255A1 (zh)
CN (1) CN100442302C (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070038572A1 (en) * 2005-08-09 2007-02-15 International Business Machines Corporation Method, system and computer program for metering software usage

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0336552A2 (en) * 1988-04-08 1989-10-11 International Business Machines Corporation Identifying program units in an operating environment in a computer
CN1259813A (zh) * 1998-11-27 2000-07-12 深圳市中兴通讯股份有限公司 可远程下载运行软件的智能数据监控通讯设备及方法
US20020138788A1 (en) * 2000-12-21 2002-09-26 Britt Yenne Computer software run-time analysis systems and methods
WO2003104974A2 (en) * 2002-06-07 2003-12-18 Sun Microsystems, Inc. Using short references to access program elements in a large address space
US20040103391A1 (en) * 2002-11-27 2004-05-27 Gansha Wu Software object type identification apparatus and methods
CN1512713A (zh) * 2002-12-28 2004-07-14 鸿富锦精密工业(深圳)有限公司 网络设备事件显示***及方法
CN1547356A (zh) * 2003-12-10 2004-11-17 中国科学院计算技术研究所 一种面向网格的监控***及方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003038570A2 (en) * 2001-10-30 2003-05-08 International Business Machines Corporation A computer-implemented method and system for controlling use of digitally encoded products
US7191411B2 (en) * 2002-06-06 2007-03-13 Moehrle Armin E Active path menu navigation system
US7860032B2 (en) * 2003-08-08 2010-12-28 Qualcomm Incorporated Apparatus and method for efficiently running applications on a wireless communication device

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0336552A2 (en) * 1988-04-08 1989-10-11 International Business Machines Corporation Identifying program units in an operating environment in a computer
CN1259813A (zh) * 1998-11-27 2000-07-12 深圳市中兴通讯股份有限公司 可远程下载运行软件的智能数据监控通讯设备及方法
US20020138788A1 (en) * 2000-12-21 2002-09-26 Britt Yenne Computer software run-time analysis systems and methods
WO2003104974A2 (en) * 2002-06-07 2003-12-18 Sun Microsystems, Inc. Using short references to access program elements in a large address space
US20040103391A1 (en) * 2002-11-27 2004-05-27 Gansha Wu Software object type identification apparatus and methods
CN1512713A (zh) * 2002-12-28 2004-07-14 鸿富锦精密工业(深圳)有限公司 网络设备事件显示***及方法
CN1547356A (zh) * 2003-12-10 2004-11-17 中国科学院计算技术研究所 一种面向网格的监控***及方法

Also Published As

Publication number Publication date
CN1794259A (zh) 2006-06-28
US20060136255A1 (en) 2006-06-22

Similar Documents

Publication Publication Date Title
CN100456254C (zh) 在***崩溃时提取日志和追踪缓冲器的方法和***
Tu et al. Speedy transactions in multicore in-memory databases
CN100576208C (zh) 用于提供对关系数据库表的高性能数据修改的方法和***
KR101470713B1 (ko) 버퍼링된 저장을 이용하여 트랜잭션들을 가속화하기 위한 메커니즘들
US8271470B2 (en) Auto-activation of fonts
CN101542446B (zh) 用于***分析和管理的方法和装置
US8078653B1 (en) Process for fast file system crawling to support incremental file system differencing
US20110320496A1 (en) Concurrency control for confluent trees
CN1155121A (zh) 用于具有多线索环境的计算***的最大并行查找高速缓冲存贮器
CN106250769A (zh) 一种多级过滤的源代码数据检测方法及装置
US20120036497A1 (en) Integrity check while committing changes from an integrated development environment to a source code control system
CN101548267A (zh) 管理和组织软件包安装的方法和***
CN106354732B (zh) 一种支持并发协同的离线数据版本冲突解决方法
US8381300B2 (en) Offline extraction of configuration data
KR100788440B1 (ko) 도용 패턴에 기반한 복사 감지시스템
US20080005077A1 (en) Encoded version columns optimized for current version access
JP2010198135A (ja) データベースを検索するためのデータ構造、並びにそのコンピュータ・システム、方法及びコンピュータ・プログラム
JP2008186356A (ja) ドキュメントの整合性検査支援システムおよび方法、ならびにそのプログラム
CN100442302C (zh) 利用快速运行时间识别计量软件产品的使用的方法和***
CN113056734A (zh) 管理共享数据库的***和方法
US7752181B2 (en) System and method for performing a data uniqueness check in a sorted data set
CN114398069A (zh) 一种基于交叉指纹分析的公共组件库精确版本识别方法及***
CN101116062A (zh) 用于实现组合式数据/相关性高速缓存的方法和装置
Mammarella et al. Modular data storage with Anvil
Li et al. PEPX: a query-friendly probabilistic XML database

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20081210

Termination date: 20100105