IP Library Granted Patent US 7,661,147
Granted Patent B2
US 7,661,147 · App. 12/018,232 · Granted Feb 9, 2010

System for controlling use of digitally encoded products

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,661,147
App. No.
12/018,232
Granted
Feb 9, 2010
Kind
B2
Abstract

A method ( 300 ) and system for controlling use of software programs on multiple workstations of a network. An agent running on each workstation detects ( 306 ) any new process (using a kernel hooking technique), which is started in response to the request of execution of a program ( 397 ). The process is suspended ( 308 ) and an authorization to run the program is requested ( 334 ) to an associated metering server. The metering server compares ( 380 ) the current usage of the product with the respective authorized conditions of use, and answers ( 382 ) the agent granting or denying the authorization to run. The process is accordingly resumed ( 312 ), in order to enable the program to start, or aborted ( 315 ), so as to prevent execution of the program. In any case, the program is not stopped (but it is prevented from starting); this avoids killing the program while it is performing potentially risky operations.

Claims (34)

1. A data processing system for controlling use of digitally encoded products, the data processing system comprising:

a processor;

a computer readable medium storing instructions which, when executed by the processor, causes the processor to perform the method of:

requesting execution of a digitally encoded product on a computer;

intercepting the execution request before starting of execution of the product;

determining whether the product is included in a control memory structure of the computer indicative of products to be controlled;

responsive to determining that the product is included in the control memory structure:

verifying compliance of the execution request with authorized conditions of use of the product, wherein verifying compliance of the execution request includes:

sending a request message indicative of the execution request from the computer to a metering server associated with a plurality of computers;

granting or denying an authorization to run the product by the metering server according to a comparison between licensing information indicative of the authorized conditions of use for all the associated computers and a metering memory structure indicative of the authorizations to run currently granted by the metering server;

sending a corresponding response message from the metering server to the computer; and

adding the product to the metering memory structure when the authorization to run has been granted; and

enabling or preventing staffing of the product according to the result of the verification; and

responsive to determining that the product is not included in the control memory structure:

enabling starting of the product;

adding an indication of the product to a log stored on the computer;

periodically transmitting the log to the associated metering server; and

updating the control memory structure and the licensing information according to the log.

2. A computer program product stored on a computer readable medium for controlling use of digitally encoded products, the computer program product comprising instructions for performing the method of:

requesting execution of a digitally encoded product on a computer;

intercepting the execution request before starting of execution of the product;

determining whether the product is included in a control memory structure of the computer indicative of products to be controlled;

responsive to determining that the product is included in the control memory structure:

verifying compliance of the execution request with authorized conditions of use of the product; wherein verifying compliance of the execution request includes:

sending a request message indicative of the execution request from the computer to a metering server associated with a plurality of computers;

granting or denying an authorization to run the product by the metering server according to a comparison between licensing information indicative of the authorized conditions of use for all the associated computers and a metering memory structure indicative of the authorizations to run currently granted by the metering server;

sending a corresponding response message from the metering server to the computer; and

adding the product to the metering memory structure when the authorization to run has been granted; and

enabling or preventing staffing of execution of the product according to the result of the verification; and

responsive to determining that the product is not included in the control memory structure:

enabling starting of the product;

adding an indication of the product to a log stored on the computer;

periodically transmitting the log to the associated metering server; and

updating control memory structure and the licensing information according to the log.

Assignments (1)
CHANGE OF NAME Recorded Dec 20, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058553/0802 →