CN1664742B - 一种对代码的执行进行计量的方法及设备 - Google Patents
一种对代码的执行进行计量的方法及设备 Download PDFInfo
- Publication number
- CN1664742B CN1664742B CN2005100531213A CN200510053121A CN1664742B CN 1664742 B CN1664742 B CN 1664742B CN 2005100531213 A CN2005100531213 A CN 2005100531213A CN 200510053121 A CN200510053121 A CN 200510053121A CN 1664742 B CN1664742 B CN 1664742B
- Authority
- CN
- China
- Prior art keywords
- operation time
- time domain
- protected service
- service
- equipment
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000004458 analytical method Methods 0.000 claims abstract description 13
- 230000000977 initiatory effect Effects 0.000 claims 2
- 230000004044 response Effects 0.000 abstract description 2
- 230000015654 memory Effects 0.000 description 14
- 238000003860 storage Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 230000001413 cellular effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 239000012141 concentrate Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F16—ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
- F16L—PIPES; JOINTS OR FITTINGS FOR PIPES; SUPPORTS FOR PIPES, CABLES OR PROTECTIVE TUBING; MEANS FOR THERMAL INSULATION IN GENERAL
- F16L55/00—Devices or appurtenances for use in, or in connection with, pipes or pipe systems
- F16L55/26—Pigs or moles, i.e. devices movable in a pipe or conduit with or without self-contained propulsion means
- F16L55/28—Constructional aspects
- F16L55/30—Constructional aspects of the propulsion means, e.g. towed by cables
- F16L55/32—Constructional aspects of the propulsion means, e.g. towed by cables being self-contained
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J19/00—Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
- B25J19/02—Sensing devices
- B25J19/021—Optical sensing devices
- B25J19/023—Optical sensing devices including video camera means
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J5/00—Manipulators mounted on wheels or on carriages
- B25J5/007—Manipulators mounted on wheels or on carriages mounted on wheels
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F16—ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
- F16L—PIPES; JOINTS OR FITTINGS FOR PIPES; SUPPORTS FOR PIPES, CABLES OR PROTECTIVE TUBING; MEANS FOR THERMAL INSULATION IN GENERAL
- F16L2101/00—Uses or applications of pigs or moles
- F16L2101/30—Inspecting, measuring or testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2135—Metering
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Mechanical Engineering (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Technology Law (AREA)
- Chemical & Material Sciences (AREA)
- Combustion & Propulsion (AREA)
- Robotics (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
Abstract
描述了在运行时对代码的执行进行计量的系统和方法。根据一种实现,接收一个请求执行一个受保护服务的调用。作为响应,请求对执行的准许。分析对准许的请求。对准许的授权与否是以该分析为基础的。
Description
(1)技术领域
本发明一般地涉及代码的计量执行。
(2)背景技术
数字权利管理广泛地集中在对“内容”的保护上,如对音乐、运动图像和其它版权所有的基于数据的材料的保护。特别地,已经研究了各种加密策略,用来保护此类材料不被复制和另作它用,侵犯内容提供者和内容消费者之间的许可协议。
可执行软件代码通常遵循的一个不同的模式,其中消费者购买软件(或者是装在“紧缩包”里的,或者是下载的)、在计算机系统上安装软件、同意许可协议。在这一点上,传统的系统和方法允许消费者随心所欲地执行所购买软件中包含的代码的任何部分(与许可协议相一致,许可协议通常规定了可以安装软件的计算机数目)。
作出软件购买决定时,以上所述的可执行软件的当前许可模式给消费者提供了一个“所有或全无”的选择,即,要么付出全部的价钱,获得全部的利益,要么不付钱,放弃获益。如此,购买分析通常涉及一个关于消费者是否预料超过使用门限水平的决定。如果是,就进行购买;否则就放弃购买。在一些情况下,这个模式对软件制造商而言可能并不令人满意,因为当消费者预计到他们对一个软件产品的使用率低时,就会拒绝购买,这样销售就失去了。同样,这个模式也不能令消费者满意,因为他们可能错误地估计对一个软件产品的需求。这样的错误估计可能导致购买了很少用到的软件,或者没能满足那些比所预计的要大的需求。此外,即使消费者能正确地估计到使用率低而放弃购买,仍然会有所不满,因为用户对软件产品的需求未得到满足。
因此,需要有对软件代码进行许可操作的备选技术。
(3)发明内容
描述在运行时计量代码的执行的系统和方法。根据一种实现,接收请求执 行一个受保护的服务的调用。作为响应,请求得到对执行的准许。对准许的请求进行分析。根据分析了授权准许。
(4)附图说明
参照附图对本发明进行详细描述。附图中,附图标记最左边的数字标识该附图标记首次出现的附图编号。在不同图中使用相同的附图标记表示是相似的或相同的项目。
图1所示是代码执行设备的一个例子,其中示出了一个示例性的应用程序或应用程序库、多个受保护服务和一个计量引擎。
图2所示是代码执行设备的第二个例子,其中,一个复合结构把代码执行设备和计量引擎分隔开来。
图3是一流程图,其描述计量代码执行的一个示例性的实现,尤其显示了用于计量受保护服务的执行的一种方法。
图4是一个示例性的代码执行设备,其中可以实现代码的计量执行。
(5)具体实施方式
纵览
下面的讨论集中在代码计量执行的系统和方法上。此类系统和方法能适应任何代码执行设备,比如计算机系统、蜂窝式移动电话和其它许多设备。根据一种实现,一个应用程序——或以库的形式组织起来的多个应用程序——被配置成发出调用一个或多个受保护服务的操作的调用,这些受保护的服务也可以配置成一个库。受保护服务可以表示由于诸如与计帐、软件许可协议、安全、儿童保护或其它目的相关的原因,而希望其操作和功能性受到控制的可执行代码。因为可以单独控制每个受保护服务的执行,所以对可执行代码的许可可以成为“颗粒”,即,可以对可执行代码的小功能块进行许可,从而提供一种对更大的代码块进行许可的可选方案。这可以提供一种供厂商使用的有价值的销售工具,因为这样的工具将允许用户仅对他们希望执行的代码进行许可。
一旦被应用程序调用,受保护服务就访问计量引擎以执行一种分析,确定调用受保护服务的应用程序是否得到了这样做的准许。准许权限通常由一个服务合同管辖,根据计量数据进行评估。例如,服务合同可以允许应用程序对受保护服务的进行一定数量的调用,或许是一个时间的函数。这种情况下,先前 对受保护服务的调用的历史,也许还有先前调用的次数,将包含在计量数据中。计量引擎对服务合同和计量数据的分析产生一个允许或拒绝应用程序执行受保护服务的请求的决定。若允许,受保护服务就执行,并给应用程序返回一个结果。
示例性装置
图1示出代码执行设备100的例子,该设备可以是计算机系统、蜂窝式移动电话、PDA、娱乐设备(例如顶置盒、电缆箱、数字音频播放器、DVD等)或其它能够执行软件的设备。应用程序102或应用程序102(1)至102(N)的库被配置成在设备100上运行。(诸)应用程序可以是任何类型的软件。可能的应用程序的例子包括被配置成在工作站上运行的办公应用软件或者被配置成在蜂窝式移动电话上运行的文本消息应用程序。一个示例性的应用程序102(1)至102(N)的库可以包括,例如,与诸如办公应用套件等较大的程序相关联的多个功能块。
(诸)应用程序102被配置成向一个或多个受保护的服务106(1)至106(J)发出调用。正如下面将要更充分地展开的那样,受保护服务之所以“保护”是因为它们受计量代码执行的支配。受保护服务是可执行的软件例程,它们可以被配置成用于几乎所有目的。例如,当代码执行设备100是蜂窝式移动电话,受保护服务可支持要计量其操作的特征(feature)。在这样的环境中,受保护的服务可以支持诸如发送文本消息、方便呼叫转移设置或其它希望对其执行进行计量的功能性的特征。在另一个例子中,当代码执行设备100是工作站,受保护服务可支持其操作要计量的办公应用套件的增强特征。在这样的环境中,受保护服务可支持那些可能常用也可能不常用的特征。例如,受保护服务可支持诸如创建pdf文件、外文拼写检查操作或其它希望要计量其执行的功能行的特征。
一旦被应用程序102调用,每个受保护服务106都被配置成调用一计量引擎108。计量引擎108作出应用程序102或紧接着的的调用者(例如,可能位于一个堆栈内)是否获得了执行受保护服务106的准许的判定。从受保护服务到计量引擎108的调用通常是用安全传输层110实现的。安全传输层可以利用强加密、安全套接字或用于安全通信的任何传统的或新开发的策略。
注意,在一个实现中,应用程序102和受保护服务106可以位于单个运行 时区域内。或者,应用程序102和受保护服务106可以分别在分离的运行时区域103和105内运行,其中位于运行时区域内的存储器以104为分界线。类似地,尽管计量引擎108可以在存储器中以112为分界线的一个独立的运行时区域107运行,或在一个独立的机器或设备上运行,在一些实现中,计量引擎108可以在与应用程序102和/或受保护服务106的运行时区域相同的运行时区域内运行。
在典型的计量引擎108内的结构可见于图1。实施引擎114被配置成用安全的方式与当应用程序102请求对执行的准许时调用的受保护服务106通信。实施引擎114被另外配置成与计量数据116的安全存储器以及一个或多个服务合同118(1)-118(K)通信。
计量数据116的安全存储器被配置成包含与一个或多个受保护服务的使用有关的数据。例如,计量数据116可包括关于任何受保护服务已被调用的总次数、进行每次调用的应用程序以及调用的时刻的信息。这样的数据在一些场合中是有用的,例如代码执行设备100是蜂窝式移动电话,而有关受保护服务106可以被配置成提供文本消息服务。在这个例子中,计量数据116可包括关于过去的文本消息的数量和时刻的信息。在许多情形中,这样的信息对于判断是否允许另外再执行受保护服务106是有用的。
一个或多个服务合同118(1)-118(K)可包含在计量引擎108内。服务合同118包括管辖一个或多个受保护服务106的规则。例如,服务合同118内的规则可以指明受保护服务106可以被执行的最多次数,或者在一定时间段内该服务可以被执行的最大次数。或者,服务合同118内的规则可以强加一个日期,在此日期之后,受保护服务的执行不再被允许。正如能被读者所容易地理解的那样,在服务合同中可以包含任何数量和类型的规则。
取决于实现的不同,可以有一个或多个服务合同118。在计量引擎108被配置在蜂窝式移动电话内的实现中,可以有单个服务合同118管辖一个或多个受保护服务。在计量引擎108被配置在计算机中使用的另一种实现中,可以有多个服务合同118(1)-118(K)来提供管辖更复杂的一组受保护服务106(1)-106(J)的规则。
图1可以解释为有或没有以102、104为分界的独立的运行时区域103、105和107。在一个实施例,应用程序102、受保护服务106和计量引擎108中的一个或多个可以运行在独立的运行时环境中,例如通过使用受保护的存储器区 域103、105、107。在另一个实施例中,可以合并一个或多个运行时环境103、105、107。此外,软件102、106和108中的一部分或全部可以是一个受控代码环境的一个部分,并包含在该受控代码环境中。受控代码环境的一个例子是出自微软公司的.NET软件技术。
图1的代码执行设备100可以是单片集成电路(monolithic),如图所示,并因此包含了计量引擎108。或者,代码执行设备是复合式的,如图2所示。在图2的实现中,代码执行设备200与一个包含计量引擎108的远程设备202通信。在这个例子中,如所希望,代码执行设备200与计量引擎108之间的通信可以通过因特网或其它系统和方法进行。
示例性方法
图3是一个描述受保护设备的计量执行的一个示例性过程300的流程图。所描述过程的要素可以由任何适当的方式完成,包括,例如,由专用集成电路上的硬件逻辑块,或者由形成在处理器可读介质上的处理器可读取指令的执行来完成。
此处用到的“处理器可读介质”可以是能包括、存储、通信、传播或传送指令以供处理器使用或执行的任意手段。处理器可读介质可以是但不限于电、磁、光、电磁、红外或半导体的系统、装置、设备或传播介质。其中,处理器可读介质的更具体的例子包括具有一根或多根电线的电气连接、可移动的计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪速存储器)、光纤、可重写光盘(CD-RW)、可移动的只读光盘(CDROM)等等。
再次参照图3,过程300可以在许多不同的计算环境中实现,但出于讨论目的,将参照图1的代码执行设备100加以解释。在块302,应用程序102判定需要用到包含在一个或多个受保护服务106中的功能性。因此,该应用做出调用,请求执行受保护服务,该调用被受保护服务106接收。
在块304,在受保护服务106和计量引擎108之间通常开设一个安全连接或通信通道。如同所讨论的那样,计量引擎108可以包含在与受保护服务106相同的代码执行设备100上。或者,计量引擎可以远程放置。如果是这样的话,安全通信通道就可以通过因特网或其它网络进行。
在块306,从受保护服务发送一个消息到计量引擎。如果在块304在开设 安全连接或通道,通常不需要加密。然而,如果不能获得安全连接或通道,消息通常要经过加密,例如应用Pretty Good Privacy(极好保密)加密法或其它的加密方法。在块308,由计量引擎接收请求准许执行受保护服务的消息。
在块310,基于对服务合同118以及从计量数据116的安全存储器得到的数据的分析,由计量引擎108确定对使用受保护服务的准许。服务合同包括一个或多个管辖受保护服务106操作的规则。规则的例子包括对超过一设定次数或者超过某个日期后使用受保护服务的限制。可以设想各种各样的规则。
在作出允许或拒绝使用受保护服务的判定时,计量引擎108通常访问计量数据116的安全存储器,其提供服务合同118所包含的规则可以适用的信息。在块312,更新计量数据116,以反映受保护服务发出的调用。例如,当服务合同118里的规则指定了允许受保护服务执行的次数,则更新计量数据116,以反映受保护服务增加的一次执行。
在块314,当计量引擎所进行的分析表明执行受保护服务的准许已适当地授予,则由计量引擎发布一个许可代码;或者,可以发布一个拒绝代码。相应地,受保护服务106被执行(块316)。在块318,受保护服务于是就可以给发出调用的应用102返回其运行结果。
或者,当计量引擎所进行的分析导致拒绝对受保护服务的使用,就指示受保护服务给发出调用的应用程序102返回无法执行的通知(块320)。
尽管已经通过流程图以及与流程图各块相关联的文本的方式揭示出一个或多个方法,但应该理解,这些块并不必然要按照上面提出的顺序执行,其它顺序也可以产生类似的有益效果。而且,这些方法不是排他的,可以单独执行或相互组合起来执行。
示例性的代码执行设备
图4是代码执行系统100的一个例子,其中可以实现代码的计量执行。任何类型的代码执行设备都可以利用代码的计量执行;然而,为了图4中例子的目的,代码执行系统100已被配置成计算机工作站,其中代码的执行可以计量。
代码执行系统100包括一个计算机402形式的通用计算系统。计算机402的组件可以包括但不限于:一个或多个处理器或处理单元404、系统存储器406、将包括处理器404在内的不同系统组件连接到系统内存406的系统总线408。系统总线408代表任意的几种类型总线结构中的一个或多个,包括存储器总线 或存储器控制器、外围设备总线、外设部件互连(PCI)总线、加速图形接口以及使用各种总线架构中的任何架构的处理器或本地总线。
计算机402通常包括各种计算机可读介质。这样的介质可以是能够由计算机402访问的任何可用介质,包括易失和非易失性的介质、可移动和不可移动的介质。系统存储器406包括易失性介质形式的计算机可读介质,比如随机存取存储器(RAM)410,和/或非易失性介质,例如只读存储器(ROM)412。基本输入/输出系统(BIOS)414存储在ROM412中,它包含帮助在计算机402内的部件之间传输信息的基本例程,比如在启动过程中。RAM410通常包含由处理单元404可以即时存储的和/或目前在操作的数据和/或程序模块
计算机402也可以包括其它可移动/不可移动、易失/非易失性的计算机存储介质。作为例子,图4例示了从不可移动的非易失性磁介质中读取和向其中写入的硬盘驱动器416(未示出)、从可移动的非易失性磁盘(例如,一个“软盘”)中读取和向其中写入的磁盘驱动器418、以及从诸如CD-ROM、DVD-ROM、或其它光介质那样的可移动的非易失性光盘424中读取和/或向其中写入的光盘驱动器422。硬盘驱动器416、磁盘驱动器418和光盘驱动器422各自通过一个或多个数据介质接口425连接到系统总线408。或者,硬盘驱动器416、磁盘驱动器418和光盘驱动器422可以通过SCSI接口(未示出)连接到系统总线408。
磁盘驱动器及其相关联的计算机可读介质为计算机402提供了计算机可读的指令、数据结构、程序模块和其它数据的非易失性存储。尽管例子例示了硬盘416、可移动磁盘402和可移动光盘424,也需要认识到,其它类型的可以存储计算机可访问数据的计算机可读介质,诸如磁带盒或其它磁存储设备、闪速存储卡、CD-ROM、数字通用盘(DVD)或其它光存储器、随机存取存储器(RAM)、只读存储器(ROM)、电可擦可编程序只读存储器(EEPROM)以及类似设备,也可以用来实现示例性的计算系统和环境。
任何数量的程序模块可以存储在硬盘416、磁盘402、光盘424、ROM412和/或RAM410中,包括-作为例子-操作系统426、一个或多个应用程序428、其它程序模块430和程序数据432。此类操作系统426、一个或多个应用程序428、其它程序模块430和程序数据432(或它们的某种组合)中的每一个可以包括一个用于用户网络访问信息的超高速缓存模式的具体实施。
计算机402可包括被标识成通信媒质的各种计算机/处理器可读取介质。通 信媒质一般以已调制的数据信号诸如载波或者其它传输机制的形式包含计算机可读指令、数据结构、程序模块或其它数据,并包括任意信息传递媒质。术语“已调制的数据信号”是指以在该信号中编码信息的方式来设置或改变其一个或多个特性的信号。作为例子而非限制,通信媒质包括有线介质,诸如有线网络或有线直接连接,以及无线介质,比如声音、射频、红外和其它无线介质。以上任何一个的组合也应当被包括在计算机可读介质的范围之内。
用户可以通过输入设备往计算机系统402里输入命令和信息,例如通过键盘434和定位设备436(例如,“鼠标”)。其它输入设备438(未示出)可包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、串行端口、扫描仪和/或类似的设备。这些和其它输入设备通过耦合到系统总线408的输入/输出接口440连接到处理单元404,但可以通过其它接口和总线结构连接,诸如并行端口、游戏端口或通用串行总线(USB)。
监视器442或其它类型的显示设备也可以经过接口诸如视频适配器444,连接到系统总线408上。除了监视器442之外,其它外围输出设备可以包括各种可通过输入/输出接口440连接到计算机402的组件,诸如扬声器(未示出)和打印机446。
计算机402可以工作在使用到一个或多个远程计算机如远程计算设备448的逻辑连接的网络化环境中。作为例子,远程计算设备448可以是个人计算机、便携式计算机、服务器、路由器、网络计算机、对等设备或其它公共网络节点和类似设备。远程计算设备448例示为一个便携式计算机,其可包括与计算机系统402相关来描述的许多或所有的要素和特征。
计算机402和远程计算机448之间的逻辑连接被描述为局域网(LAN)450和通用广域网(WAN)452。这种网络环境常见于办公室、企业范围的计算机网络、企业内部互联网和因特网。当在LAN网络环境中实现时,计算机402通过网络接口或适配器454连接到局域网450上。当在WAN网络环境中实现时,计算机402通常包括调制解调器456或其它用于在广域网452上建立通信的装置。可以内置于或外置于计算机的调制解调器456可以通过输入/输出接口440或其它适当的机制连接到系统总线408。应该明白,例示的网络连接是示例性的,也可以使用在计算机402和448之间建立通信链路的其它手段。
在网络化的环境中,比如用计算环境400所例示的,与计算机402相关所描述的程序模块或其一部分,可以存储在一个远程存储设备内。作为例子,远 程应用程序458驻留于远程计算机448的存储设备上。尽管认识到了应用程序和其它可执行的程序组件,比如操作系统,在不同的时刻驻留于计算机系统402的不同存储组件中,,由计算机的数据处理器执行,但为了进行阐述,此类程序和组件被例示成离散的块。
结论
虽然已经用结构特征和/或方法动作特异性的语言对本发明进行了描述,但应该明白,由所附权利要求书定义的本发明,并非仅仅局限于所描述的具体特征或动作。相反,具体的特征和动作只是作为实现所要求的发明的示例性形式而揭示的。
Claims (15)
1.一种对代码的执行进行计量的方法,其特征在于,它包括:
在一运行时区域内接收一请求执行一个受保护服务的调用;
请求对执行的准许;
在与第一运行时区域分离的第二运行时区域内通过考虑计量数据来分析一服务合同而分析对准许的请求,所述服务合同提供管辖受保护服务操作的规则,而所述计量数据提供反映受保护服务的过往操作的历史数据;以及
将准许状态以所述分析为基础,
其中请求对执行的准许包括在受保护服务和被配置成执行所述分析的计量引擎之间开设一个安全连接。
2.如权利要求1所述的方法,其特征在于,所述第一和第二运行时区域驻留于存储器的不同分区。
3.如权利要求1所述的方法,其特征在于,所述第一运行时区域驻留于第一计算设备,而第二运行时区域驻留于第二计算设备。
4.如权利要求1所述的方法,其特征在于,另外包括更新计量数据以反映所述分析。
5.如权利要求1所述的方法,其特征在于,所述请求准许包括从位于第一运行时区域内的受保护服务发送经过加密的消息到位于第二运行时区域内的计量引擎。
6.如权利要求1所述的方法,其特征在于,给出了准许,还包括:
执行受保护服务;以及
向发起调用的应用程序返回执行的结果。
7.如权利要求1所述的方法,其特征在于,没有给出准许,还包括:向发起调用的应用程序返回无法执行受保护服务的通知。
8.一种对代码的执行进行计量的设备,包括:
用于在一运行时区域内接收一请求执行一个受保护服务的调用的装置;
用于请求对执行的准许的装置;以及
用于在与第一运行时区域分离的第二运行时区域内通过考虑计量数据来分析一服务合同而分析对准许的请求的装置,所述服务合同提供管辖受保护服务操作的规则,而所述计量数据提供反映受保护服务的过往操作的历史数据;以及
用于将准许状态以所述分析为基础的装置,
其中用于请求对执行的准许的装置包括用于在受保护服务和被配置成执行所述分析的计量引擎之间开设一安全连接的装置。
9.如权利要求8所述的设备,其特征在于,所述第一和第二运行时区域驻留于存储器的不同分区。
10.如权利要求8所述的设备,其特征在于,所述第一运行时区域驻留于第一计算设备,而第二运行时区域驻留于第二计算设备。
11.如权利要求8所述的设备,其特征在于,另外包括:
用于更新所述计量数据以反映所述分析的装置。
12.如权利要求8所述的设备,其特征在于,所述对代码执行的计量是在受控代码环境下完成的。
13.如权利要求8所述的设备,如果给出了准许,还包括:
用于执行受保护服务的装置;以及
用于向应用程序返回执行结果的装置。
14.如权利要求8所述的设备,如果没有给出准许,还包括用于向应用程序返回无法执行的通知的装置。
15.如权利要求8所述的设备,所述用于请求准许的装置包括用于从位于第一运行时区域内的受保护服务发送经过加密的消息到位于第二运行时区域内的计量引擎的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/791,208 | 2004-03-01 | ||
US10/791,208 US7500108B2 (en) | 2004-03-01 | 2004-03-01 | Metered execution of code |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1664742A CN1664742A (zh) | 2005-09-07 |
CN1664742B true CN1664742B (zh) | 2012-02-01 |
Family
ID=34750583
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005100531213A Expired - Fee Related CN1664742B (zh) | 2004-03-01 | 2005-02-28 | 一种对代码的执行进行计量的方法及设备 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7500108B2 (zh) |
EP (1) | EP1571526A1 (zh) |
JP (2) | JP2005259126A (zh) |
KR (1) | KR20060043336A (zh) |
CN (1) | CN1664742B (zh) |
ES (1) | ES2326398B1 (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1745342A2 (en) * | 2004-04-19 | 2007-01-24 | Securewave S.A. | On-line centralized and local authorization of executable files |
JP4440825B2 (ja) * | 2005-05-17 | 2010-03-24 | 株式会社バンダイナムコゲームス | ゲームプログラム記録媒体 |
US8214296B2 (en) * | 2006-02-14 | 2012-07-03 | Microsoft Corporation | Disaggregated secure execution environment |
EP1901190A1 (en) | 2006-09-15 | 2008-03-19 | Sony DADC Austria AG | Method and system for managing access to add-on data files |
EP2078273A1 (en) * | 2006-11-02 | 2009-07-15 | International Business Machines Corporation | A method, system and computer program for metering usage of software products with a dynamically optimised license use |
US20080196093A1 (en) * | 2007-02-08 | 2008-08-14 | Dlb Finance & Consultancy B.V. | Method and system for reducing the proliferation of electronic messages |
US20080250250A1 (en) * | 2007-04-04 | 2008-10-09 | Microsoft Corporation | Method and Apparatus for Using USB Flash Devices and Other Portable Storage as a Means to Access Prepaid Computing |
US20090158403A1 (en) * | 2007-12-14 | 2009-06-18 | Dirk Leonard Benschop | Method and system for permitting or denying service |
US8239921B2 (en) | 2008-01-03 | 2012-08-07 | Dlb Finance & Consultancy B.V. | System and method of retrieving a service contact identifier |
US8463921B2 (en) * | 2008-01-17 | 2013-06-11 | Scipioo Holding B.V. | Method and system for controlling a computer application program |
WO2009105702A2 (en) * | 2008-02-22 | 2009-08-27 | Etchegoyen Craig S | License auditing for distributed applications |
US9355224B1 (en) * | 2008-05-16 | 2016-05-31 | Kaspersky Lab, Zao | System and method for dynamic adjustment of expiration date for authorization key for antivirus products |
US8190673B2 (en) * | 2008-07-30 | 2012-05-29 | Microsoft Corporation | Enforcement of object permissions in enterprise resource planning software |
EP2338244B1 (en) * | 2008-09-12 | 2021-06-16 | Assa Abloy Ab | Use of a secure element for writing to and reading from machine readable credentials |
EP2406749B1 (en) * | 2009-03-13 | 2018-06-13 | Assa Abloy Ab | Transfer device for sensitive material such as a cryptographic key |
EP2228746A1 (en) * | 2009-03-13 | 2010-09-15 | Assa Abloy Ab | Realization of access control conditions as boolean expressions in credential authentications |
US20100235900A1 (en) * | 2009-03-13 | 2010-09-16 | Assa Abloy Ab | Efficient two-factor authentication |
US9032058B2 (en) * | 2009-03-13 | 2015-05-12 | Assa Abloy Ab | Use of SNMP for management of small footprint devices |
US8806190B1 (en) | 2010-04-19 | 2014-08-12 | Amaani Munshi | Method of transmission of encrypted documents from an email application |
JP5812250B2 (ja) * | 2011-03-30 | 2015-11-11 | Toto株式会社 | 衛生洗浄装置 |
KR101624606B1 (ko) * | 2015-08-19 | 2016-05-27 | 숭실대학교 산학협력단 | 원격 코드 실행을 이용한 실행 무결성 검증 시스템 및 그 방법 |
US11630137B2 (en) * | 2020-06-29 | 2023-04-18 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Reliable hardware metering |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0715246A1 (en) * | 1994-11-23 | 1996-06-05 | Xerox Corporation | System for controlling the distribution and use of composite digital works |
US5970145A (en) * | 1995-10-26 | 1999-10-19 | Sun Microsystems, Inc. | System and method for protecting use of dynamically linked executable modules |
US6141754A (en) * | 1997-11-28 | 2000-10-31 | International Business Machines Corporation | Integrated method and system for controlling information access and distribution |
Family Cites Families (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4953209A (en) | 1988-10-31 | 1990-08-28 | International Business Machines Corp. | Self-verifying receipt and acceptance system for electronically delivered data objects |
US4941175A (en) | 1989-02-24 | 1990-07-10 | International Business Machines Corporation | Tamper-resistant method for authorizing access to data between a host and a predetermined number of attached workstations |
JPH0799497B2 (ja) | 1990-12-14 | 1995-10-25 | インターナショナル・ビジネス・マシーンズ・コーポレイション | ソフトウェアの使用を管理するための装置及び方法 |
US5940504A (en) * | 1991-07-01 | 1999-08-17 | Infologic Software, Inc. | Licensing management system and method in which datagrams including an address of a licensee and indicative of use of a licensed product are sent from the licensee's site |
WO1993011480A1 (en) | 1991-11-27 | 1993-06-10 | Intergraph Corporation | System and method for network license administration |
US5319705A (en) | 1992-10-21 | 1994-06-07 | International Business Machines Corporation | Method and system for multimedia access control enablement |
US5450593A (en) | 1992-12-18 | 1995-09-12 | International Business Machines Corp. | Method and system for controlling access to objects in a data processing system based on temporal constraints |
JPH07230380A (ja) | 1994-02-15 | 1995-08-29 | Internatl Business Mach Corp <Ibm> | 適用業務プログラムの利用管理方法およびシステム |
US5598470A (en) | 1994-04-25 | 1997-01-28 | International Business Machines Corporation | Method and apparatus for enabling trial period use of software products: Method and apparatus for utilizing a decryption block |
US5564038A (en) | 1994-05-20 | 1996-10-08 | International Business Machines Corporation | Method and apparatus for providing a trial period for a software license product using a date stamp and designated test period |
US5652868A (en) | 1994-09-27 | 1997-07-29 | International Business Machines Corporation | Data processor having BIOS decryption of emulated media images |
DE69521977T2 (de) | 1994-12-13 | 2002-04-04 | International Business Machines Corp., Armonk | Verfahren und System zur gesicherten Programmenverteilung |
US5673317A (en) | 1995-03-22 | 1997-09-30 | Ora Electronics, Inc. | System and method for preventing unauthorized programming of wireless network access devices |
US5758068A (en) | 1995-09-19 | 1998-05-26 | International Business Machines Corporation | Method and apparatus for software license management |
US5692047A (en) | 1995-12-08 | 1997-11-25 | Sun Microsystems, Inc. | System and method for executing verifiable programs with facility for using non-verifiable programs from trusted sources |
US5752041A (en) | 1995-12-15 | 1998-05-12 | International Business Machines Corporation | Method and system for licensing program management within a distributed data processing system |
EP0880840A4 (en) * | 1996-01-11 | 2002-10-23 | Mrj Inc | DEVICE FOR CONTROLLING ACCESS AND DISTRIBUTION OF DIGITAL PROPERTY |
US5790664A (en) * | 1996-02-26 | 1998-08-04 | Network Engineering Software, Inc. | Automated system for management of licensed software |
JP3617882B2 (ja) | 1996-03-08 | 2005-02-09 | 株式会社東芝 | セキュリティ装置及びセキュリティ実現方法 |
US6138238A (en) | 1997-12-11 | 2000-10-24 | Sun Microsystems, Inc. | Stack-based access control using code and executor identifiers |
JP3937475B2 (ja) | 1996-06-14 | 2007-06-27 | キヤノン株式会社 | アクセス制御システムおよびその方法 |
US5754763A (en) | 1996-10-01 | 1998-05-19 | International Business Machines Corporation | Software auditing mechanism for a distributed computer enterprise environment |
US5925127A (en) * | 1997-04-09 | 1999-07-20 | Microsoft Corporation | Method and system for monitoring the use of rented software |
US6112192A (en) | 1997-05-09 | 2000-08-29 | International Business Machines Corp. | Method for providing individually customized content in a network |
US6078909A (en) | 1997-11-19 | 2000-06-20 | International Business Machines Corporation | Method and apparatus for licensing computer programs using a DSA signature |
US6253370B1 (en) | 1997-12-01 | 2001-06-26 | Compaq Computer Corporation | Method and apparatus for annotating a computer program to facilitate subsequent processing of the program |
US6134659A (en) | 1998-01-07 | 2000-10-17 | Sprong; Katherine A. | Controlled usage software |
US6202207B1 (en) | 1998-01-28 | 2001-03-13 | International Business Machines Corporation | Method and a mechanism for synchronized updating of interoperating software |
GB2333864B (en) | 1998-01-28 | 2003-05-07 | Ibm | Distribution of software updates via a computer network |
US6289461B1 (en) | 1998-06-09 | 2001-09-11 | Placeware, Inc. | Bi-directional process-to-process byte stream protocol |
US6226618B1 (en) | 1998-08-13 | 2001-05-01 | International Business Machines Corporation | Electronic content delivery system |
US6611812B2 (en) | 1998-08-13 | 2003-08-26 | International Business Machines Corporation | Secure electronic content distribution on CDS and DVDs |
JP2002189590A (ja) * | 1998-12-28 | 2002-07-05 | Hiroyuki Ueno | ソフトウェアライセンス発行制御装置 |
US6463538B1 (en) | 1998-12-30 | 2002-10-08 | Rainbow Technologies, Inc. | Method of software protection using a random code generator |
GB2346989A (en) | 1999-02-19 | 2000-08-23 | Ibm | Software licence management system uses clustered licence servers |
US6587947B1 (en) | 1999-04-01 | 2003-07-01 | Intel Corporation | System and method for verification of off-chip processor code |
US6594761B1 (en) * | 1999-06-09 | 2003-07-15 | Cloakware Corporation | Tamper resistant software encoding |
EP1109099A1 (en) | 1999-12-17 | 2001-06-20 | Alcatel | Using secured calls in object-oriented software applications |
US20010034839A1 (en) | 1999-12-24 | 2001-10-25 | Guenter Karjoth | Method and apparatus for secure transmission of data and applications |
DE10002203B4 (de) | 2000-01-19 | 2009-12-10 | Robert Bosch Gmbh | Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation von in einer Speicheranordnung des Mikrorechner-Systems gespeicherten Daten |
JP2001229123A (ja) * | 2000-02-17 | 2001-08-24 | Fujitsu Ltd | サービス提供装置および記録媒体 |
WO2001071523A1 (en) | 2000-03-20 | 2001-09-27 | Hotlens.Com Inc. | Transparent user and session management for web applications |
JP4186381B2 (ja) | 2000-05-10 | 2008-11-26 | 日本電気株式会社 | プログラムを格納する記録媒体及びその実行方法 |
WO2001086372A2 (en) | 2000-05-12 | 2001-11-15 | Xtreamlok Pty. Ltd. | Information security method and system |
US7162735B2 (en) | 2000-07-18 | 2007-01-09 | Simplex Major Sdn.Bhd | Digital data protection arrangement |
JP2002132818A (ja) | 2000-10-26 | 2002-05-10 | Seiko Epson Corp | サービス提供システム、サービス提供端末、クライアント端末及び記憶媒体 |
WO2002065285A1 (en) | 2001-02-14 | 2002-08-22 | Invicta Networks, Inc. | Systems and methods for creating a code inspection system |
DE10108107A1 (de) | 2001-02-21 | 2002-08-29 | Philips Corp Intellectual Pty | Schaltungsanordnung sowie Verfahren zum Erkennen einer Zugriffsverletzung bei einer Mikrokontrolleranordnung |
US20020144124A1 (en) | 2001-03-12 | 2002-10-03 | Remer Eric B. | Method and apparatus to monitor use of a program |
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 |
US20030084325A1 (en) | 2001-11-01 | 2003-05-01 | International Business Machines Corporation | Method and apparatus for implementing permission based access control through permission type inheritance |
US8387111B2 (en) | 2001-11-01 | 2013-02-26 | International Business Machines Corporation | Type independent permission based access control |
US20030135741A1 (en) * | 2001-12-04 | 2003-07-17 | Applied Logical Systems, Llc | Almost independent logically integrated license enforcement framework |
US20030200267A1 (en) | 2002-04-22 | 2003-10-23 | Garrigues James F. | Email management system |
US7086088B2 (en) | 2002-05-15 | 2006-08-01 | Nokia, Inc. | Preventing stack buffer overflow attacks |
US7203833B1 (en) * | 2002-12-23 | 2007-04-10 | Microsoft Corporation | History based rights computation for managed code |
-
2004
- 2004-03-01 US US10/791,208 patent/US7500108B2/en active Active
-
2005
- 2005-02-22 JP JP2005045646A patent/JP2005259126A/ja active Pending
- 2005-02-25 EP EP05101437A patent/EP1571526A1/en not_active Ceased
- 2005-02-28 ES ES200500450A patent/ES2326398B1/es active Active
- 2005-02-28 CN CN2005100531213A patent/CN1664742B/zh not_active Expired - Fee Related
- 2005-03-02 KR KR1020050017353A patent/KR20060043336A/ko not_active Application Discontinuation
-
2012
- 2012-03-19 JP JP2012062454A patent/JP2012150829A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0715246A1 (en) * | 1994-11-23 | 1996-06-05 | Xerox Corporation | System for controlling the distribution and use of composite digital works |
US5970145A (en) * | 1995-10-26 | 1999-10-19 | Sun Microsystems, Inc. | System and method for protecting use of dynamically linked executable modules |
US6141754A (en) * | 1997-11-28 | 2000-10-31 | International Business Machines Corporation | Integrated method and system for controlling information access and distribution |
Also Published As
Publication number | Publication date |
---|---|
KR20060043336A (ko) | 2006-05-15 |
JP2012150829A (ja) | 2012-08-09 |
ES2326398B1 (es) | 2010-07-14 |
JP2005259126A (ja) | 2005-09-22 |
CN1664742A (zh) | 2005-09-07 |
US7500108B2 (en) | 2009-03-03 |
EP1571526A1 (en) | 2005-09-07 |
US20050193213A1 (en) | 2005-09-01 |
ES2326398A1 (es) | 2009-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1664742B (zh) | 一种对代码的执行进行计量的方法及设备 | |
CN101263489B (zh) | 阻止批量许可环境中的盗版的方法 | |
CN103548320B (zh) | 不安全应用在装置上的安全执行 | |
CA2533076C (en) | Flexible licensing architecture for licensing digital application | |
CN102737200B (zh) | 使用数字许可证的软件激活 | |
CN100407087C (zh) | 在多用户许可环境中制止软件盗版的系统与方法 | |
CN103038775B (zh) | 电子证书管理 | |
CN101415001B (zh) | 使用安全注解的组合应用 | |
CN1333314C (zh) | 软件执行控制系统 | |
US20060282899A1 (en) | System and method for delivery of a modular operating system | |
CN103597489A (zh) | 数据保管者和监管系统 | |
CN105683988A (zh) | 管理软件补救 | |
CN101156166A (zh) | 使用机器属性来制止企业环境中的软件盗版的系统和方法 | |
CN101167072A (zh) | 软件许可/商业数字分发策略的补充信任模型 | |
WO2007101166A2 (en) | Methods and apparatus for protected distribution of applications and media content | |
CN101248428A (zh) | 根据许可证改变产品行为 | |
CN103733202A (zh) | 应用内许可的装置和方法 | |
CN101548284A (zh) | 软件许可证中的条件策略 | |
CN102790754B (zh) | 用户登录方法和系统 | |
CN101167296B (zh) | 受保护计算环境的可更新和可个性化元件 | |
CN105324774B (zh) | 许可程序的装置、程序交易装置及其许可程序的方法 | |
EP1466227B1 (en) | System and method for platform activation | |
Feijs et al. | Internet control and monitoring: options and complications | |
Chuang et al. | An inter-store transaction mechanism to distribute mobile applications | |
KR100818844B1 (ko) | 온라인 소프트웨어 재가공 판매 방법 |
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 | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150506 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20150506 Address after: Washington State Patentee after: MICROSOFT TECHNOLOGY LICENSING, LLC Address before: Washington State Patentee before: Microsoft Corp. |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120201 |