Skip to main content

Full text of "USPTO Patents Application 09870801"

See other formats


WORLD INTELLECTUAL PROPER1Y ORGANIZATION 
International Bureau 



per 

INTERNATIONAL APPLICATION PUBLISHED UNDER THE PATENT COOPERATION TREATY (PCI) 


(51) International Patent Classification 5 
G06T 11/34, H04L 9/00 


Al 


(11) International Publication Number: . WO 93/01550 
(43) International Publication Date: 21 January 1993 (21.01.93) 


(21) International Application Number: PCT/US92/05387 

(22) International Filing Date: 30 June 1992 (30.06.92) 


(30) Priority data: 
724,180 
907,934 


1 July 1991 (01.07.91) U$ 
29 June 1992 (29.06.92) US 


(71) Applicant: INFOLOGIC SOFTWARE, INC. [US/US]; 

1223 Peoples Avenue, Suite 5405, Troy, NY 12180 (US). 

(72) Inventor: GRISWOLD, Gary, N. ; 1937 Regent Street, 

Schenectady, NY 12309 (US). 

(74) Agents: LAZAR, Dale, S. et al.; Cushman, Darby & Cush- 
man, Ninth Floor, 1100 New York Avenue, N.W., Wash- 
ington, DC 20005-3918 (US). 


(81) Designated States: AT, AU, BB, BG, BR, CA, CH, CS, 
DE, DK, ES, H, GB, HU, JP, KP, LK, LU, MG, 
MN, MW, NL, NO, PL> RO, RU, SD, SE, European pa- 
tent (AT, BE, CH, DE, DK, ES, FR, GB, GR, IT, LU, 
MC, NL, SE), OAPI patent (BF, BJ, CF, CG, CI, CM, 
GA, GN, ML, MR, SN, TD, TG). 


Published 

With international search report 


(54) Title: LICENSE MANAGEMENT SYSTEM AND METHOD 


At Licensee's Siti 


Check Moot tor 


1A ■ 
Executable I 
Portion | 


IB Data 

Portion 


On Communications 
Network 


aiicHue 
Datagram 


At Licensor's Site 


Canlro) Syaiein 


SUcean 


• History of 

License 
Datagrams 


(57) Abstract 

A license management system and method for recording (6) the use of licensed product (1), and for controlling (4) its use. 
A licensed product invokes a license check monitor (2) at regular time intervals. The monitor generates request datagrams (3) 
which identifiy the licensee and the product and sends the request datagrams over a communications facility to a license control 
system (4). The license control system maintains a record (6) of the received datagrams, and compares the received datagrams to 
data stored in its licensee database (5). Consequently, the license control system (4) transmits reply datagrams with either a denial 
or an approval message. The monitor (2) generates its own denial message if its request datagrams are unanswered after a prede- 
termined interval of time. The datagrams are counted at the control system to provide billing information. 


FOR THE PURPOSES OF INFORMATION ONLY 


Codes used to identify Slates party ro ihe PCI" on Ihe fiont pages of pamphlets publishing international 
applications under (he PCI'. 


AT Austria 

AU Australia 

BB BarhodcB 

BE Belgium 

BF Burkina h«ou 

BC Bulgaria 

BJ Benin 

BR Brazil 

CA ( 'anada 

CF Central African Re|Kiblic 

CC Congo 

CH SwiUcfland 

CI C6ted*lvuirc 

CM Cameroon 

CS OechoslovnLta 

DE Germany 

DK Denmark 

ES Spain 


Kl I* inland 

FR Wancc 

CA Gabon 

CB United Kingdom 

CN Guinea 

CR Greece 

HU Hungary 

IE Ireland 

IT Italy 

JP Japan 

Kl* Democratic People's Republic 

of Korea 

KK Republic or Korea 

LI I iechtenstein 

LK Sri UnLa 

LU Luxembourg 

MC Monaco 

MC Madagascar 


Ml 

Mali 

MN 

Mongolia 

MR 

Mauritania 

MW 

Malawi 

Nl. 

Netherlands 

NO 

Norway 

PL 

Poland 

RO 

Romania 

RU 

Russian Federation 

SO 

Sudan 

SE 

Sweden 

SN 

Senegal 

su 

Soviet Union 

TD 

Chad 

TC 

Togo 

US 

United Slates of America 


- 1 - 

LICENSE MANAGEMENT SYSTEM AND METHOD 


BACKGROUND 

fimW »-hA Invention 

The present invention generally relates to 
5 systems for managing licenses of products such as 
computer software, video games, CD-ROM information, 
movies and other video products, music and other audio 
products, multimedia products, and other systems for 
up-to-date recording of actual usage of such a 
10 licensed product to enable efficient billing therefor. 


pescrintion of Related Art 

Licenses for information products such as 

computer software, music, video products and the like 

usually provide licensees with limited rights. The 
15 licenses may restrict sites of use, duration of use, 

or number of concurrent uses of the products. The 

licenses also may limit the use of the products 

depending on currentness of licensee's payments. 

However, enforcing the conditions of the licenses is 
20 difficult, because, in general, the licensed products 

may be easily copied or "pirated" and used without the 

licensor's knowledge. 

Compliance with limited license rights has been 

encouraged with copy protection. Known methods of 
25 computer software copy protection include putting a 


SUBSTITUTE SHEET 


WO 93/01550 


- 2 - 


PCT/US92/05387 


physical hole or mark on. the diskette containing a 
product, or placing data on the diskette in a location 
where no data is expected. A disk with an illegally 
copied software product usually would not contain the 
5 Barks. At the beginning of its operation, a copy- 
protected, but illegally copied software product would 
search its own diskette for the marks. Upon failing 
to detect the marks, the software would abort from its 
normal procedures. 

10 Most software products sold today do not have 

such copy protection, partly because copy protection 
renders legitimate duplication of copy protected 
software difficult, but not impossible. Copy 
protection frustrates the making of legitimate copies, 

15 while not eliminating unauthorized copying. Many 
software publishers have experienced higher sales by 
eliminating copy protection schemes. 

Another method for enforcing limited licensing 
rights of computer software is described in U.S. 

20 patent No. 4,932,054 to Chou. Chou describes a "coded 
filter" hardware device which is plugged into a port 
of a computer. The "coded filter" outputs an 
authorization control code when a predetermined 
control code is sent to it. The licensed software 

25 functions properly only if the "coded filter" 
transmits the correct authorization control code to 

the software. 

While devices such as described by Chou have 
existed for several years, they have not been well 
30 accepted by the market. Since the device is attached 
to the outside of a computer, it can easily be lost or 
stolen, preventing the use of licensed software. In 
addition, if a licensee purchased a number of software 


WO 93/01550 


- 3 - 


PCT/US92/05387 


products, each of which used Chou's protection scheme, 
the licensee would collect a stack of "coded filters." 

Hershey, in U.S. patent No. 4,924,378, describes 
a method for limiting the number of concurrent uses of 
5 a licensed software product. Each workstation of a 
network has a license storage area in its local 
memory. License Management System (IMS) daemons are 
provided in the network in a number corresponding to 
the permissible number of concurrent uses of the 
10 software product. To use the software, a work station 
stores a daemon in its license storage area. If all 
daemons are in use, no further work stations may use 

the software. 

Robert et al., in U.S. patent No. 4,937,863, 

15 describe a similar invention. This invention includes 
a license management facility which accesses a 
database of license information related to licensed 
computer software programs. When a user attempts to 
use a licensed program, the license management 

20 facility first checks the database. Access to the 
licensed product is prevented if licensing conditions 
related to the product are not satisfied (e.g., 
expiration of licensing dates, etc). 

While the Robert et al. and Hershey patents show 

25 effective techniques for controlling licensed computer 
software, each also reveals components that cannot be 
easily managed by an average user. A .system manager, 
or someone with special access privileges to the 
internals of a machine, must install the licensed 

30 software. This hinders the distribution of the 
software. 

Licensable products other than computer software 
have not generally been copy-protected. Tor example, 


WO 93/01550 


- 4 - 


PCT/US92/05387 


10 


15 


video tapes can be easily copied by anyone with two 
VCR machines, and audio tapes and music CDs can be 
easily copied to tape. Computer CD-ROMs can be copied 
to magnetic disk; however, their large information 
storage capacity relative to that of magnetic disks 
makes this a very expensive proposition. The 
introduction of digital audio tape is being delayed, 
because some view its ability to easily produce very 
high quality copies as a threat to music royalties. 

Hellman, in U.S. patent No. 4,658,093, describes 
means to bill by usage. This is accomplished via 
communication of an encrypted authorization code from 
a licensor to a base unit at the licensee's site. The 
encrypted authorization code contains information 
related to an identification of the base unit, a 
number of uses requested, and a random or non- 
repeating number; however, implementation of Bellman's 
scheme requires a "base unit", such as a computer, 
video game unit, record player, video recorder, or 
video disk player, with a unique identification 
number. The requirement is difficult to satisfy, 
because, at the present, only a fraction of such 
systems on the market have an internally readable 
serial number for identification. In addition, 
vendors of these systems provide no guarantees for the 
uniqueness of any given device's serial number. 
Furthermore, an internal serial number can change when 
hardware maintenance is performed on the device. 
Also, Hellman 's approach requires that an identical 
30 copy of each software product be stored at the 
authorization site. These copies are used in the 
generation of unique keys. The unstated assumption 
that all copies of a specific version of a software 


20 


25 


- 5 - 


product are identical is unrealistic. Minor bug fixes 
to software are often made without generating a new 
version of the product. Also, some software products, 
such as those which run on Macintosh computers, are 
5 self-modifying. 

While Bellman's invention counts each use of the 
software, it does not monitor the duration of use. 
Thus, Hellman's system would not be able to bill for 
extensive use of licensed software if the software 

10 were continuously operated. Finally, while Hellman 
suggests the inclusion of an automated communication 
system as part of his invention, he does not disclose 
how this communication system could be implemented. 
Instead, he mentions non-automated use of telephone 

15 and mail. In summary, Hellman's patent is an 
interesting discussion of cryptographic techniques, 
but it does not provide a practical, real-world 
implementation of those techniques. 

Shear, in U.S. Patent No. 4,977,594, describes a 

20 system and method to meter usage of distributed 
databases such as CD-ROM systems. The method 
describes a hardware module which must be part of the 
computer used to access the distributed database. 
This module retains records of the information viewed. 

25 Once the module storage is filled, the module must be 
removed and delivered to someone who will charge for 
the usage recorded therein and set the module back to 
zero usage. Like Hellman's method, this method 
requires a hardware module which must be incorporated 

30 within the computer so the system can control user 
access. Wo database publisher will be able to use 
this method until there are a very large number of 
units containing such modules. Hardware manufacturers 


WO 93/01550 


- 6 - 


PCT/US92/05387 


10 


15 


20 


25 


30 


will be hesitant to include the module in the design 
of their computers until there is sufficient demand 
from customers or publishers for this system. The 
method and apparatus according to the present 
invention can be implemented entirely in software and 
hence does not require special, dedicated computer 
subsystems . 

enuMWY QP THF TWVENTIOH 

It is an object of the present invention to 
provide a license management system and method which 
can ensure that a licensed product is used only on 
machines under which it is licensed. 

It is another object of the present invention to 
provide a license management system and method which 
nay terminate access to a licensed product once its 

license has expired. 

It is yet another object of the present invention 
to provide a license management system and method 
which may terminate access to a licensed product when 
payment for a license is overdue. 

It is a further object of the present invention to 
provide a license management system and method which 
can limit the number of concurrent uses of a licensed 
product. 

It is yet another object of the present invention 
to provide a license management system and method 
which can bill licensees for the duration of actual 
usage of a licensed product. 

The present invention provides an advantageous 
feature of quickly, and effectively implementing 
license agreements between a licensor and licensee. 


WO 93/01550 


PCT/US92/05387 

- 7 - 


The present invention provides another 
advantageous feature of allowing logic used to control 
licenses to be easily changed. 

The present invention provides yet another 
5 advantageous feature of detecting, at the licensors 
site, many types of attempts to alter the license 
management system. 

The present invention provides a further 
advantageous feature of permitting anyone without 
10 special access privileges to install a licensed 
product. 

In the present invention, a licensed product 
generates request "datagrams, " messages transmitted 
over a communications network. The request datagrams 

15 are sent to the licensor's site. At the licensors 
site the datagram is compared to information stored in 
a license database. After the comparison, a reply 
datagram is sent to the licensee. Upon receiving the 
reply datagram, the licensed product reacts in 

20 accordance with the instructions therewithin. For 
example if a reply datagram contained a "denial," the 
licensed product would display an appropriate message 
to the user and then suspend further execution of its 
programs. 

25 In the present invention, the licensed product 

is implemented on a network node attached to a 
communications network that includes the licensor. 
The network node may be a computer, a CD-ROM player, 
a tele-computer or other multimedia machine, or any 

30 other appropriate device. The node may also be an 
intelligent type of consumer electronic device used 
for presenting information, such as an intelligent 
television, VCR, videodisk player, music CD player, 


WO 93/01550 


PCT/US92/05387 

- 8 - 


10 


audio tape player, telephone or other similar device. 
Further, the communications network may be any two- 
way network such as a computer network, telephone 
network, a cellular telephone network or other 
wireless network, a two-way cable TV network, or any 
other equivalent system. 

Should the user detach the node from the network, 
the licensed product will fail to receive reply 
datagrams. Upon several failures to receive reply 
datagrams, the licensed product will generate its own 
denial. 

After a request datagram has been sent out, a 
user may be permitted to use the licensed product for 
a limited duration. This feature may be necessary 
15 because of the delays in network communications. When 
networks are sufficiently fast, use of a licensed 
product can be postponed until the reply datagram is 
received . 

In the preferred embodiment of the present 
invention, licensees' network addresses are used to 
identify the licensees. Other embodiments may use a 
licensed product serial number or hardware serial 
numbers for the identification. 

A licensed product as in the present invention 
generates a request datagram after each period of 
product use. The number of request datagrams received 
by the licensor can be used to bill the licensee. For 
example, if datagrams are sent after every hour of 
product use, the licensee will be billed for the 
amount equal to the number of request datagrams 
received by the licensor multiplied by the hourly 
rate. 


20 


25 


30 


WO 93/01550 


. 9 - 


The embodiments of the present invention may 
incorporate a query system at a licensor's site for 
reporting on problem datagrams. This would allow the 
licensors to take appropriate actions in accordance 
5 with problems associated with each datagram. 

BRIEF DESCRIPTION OF T HE DRAWINGS 

These and other objects and advantages of this 
invention will become more apparent and more readily 
appreciated from the following detailed description 
10 of the presently preferred exemplary embodiment of the 
invention, taken in conjunction with the accompanying 
drawings, of which: 

FIGURE 1 is a general block diagram of the 
preferred exemplary embodiment of the present 

15 invention; 

FIGURE 2 shows representative diagrams of the 
contents and formats of data at licensee's site, 
contained in datagrams, and at licensor's site; 

FIGURE 3 illustrates a sequence of representative 
20 operations executed at the licensee's site and at the 
licensor's site, together with required inputs for the 
execution of the operations and with outputs produced 
therefrom; 

FIGURE 4 illustrates a sequence of representative 
25 operations to send a request datagram, together with 
required inputs for the execution of the operations 
and with outputs produced therefrom; 

FIGURE 5 illustrates a sequence of representative 
operations when a reply datagram is overdue, together 
30 with required inputs for the execution of the 
operations and with outputs produced therefrom; 


PCT/US92/05387 

WO 93/01550 

- 10 - 


10 


15 


20 


25 


30 


FIGURE 6 shows a sequence of representative 
operations to process a reply datagram, «"* 
required inputs for the execution of the operations 
and with outputs produced therefrom; 

FIGURE 7 shows a sequence of representative 
operations to generate an authorization code, together 
with required inputs for the execution of the 
operations and with outputs produced therefrom; and 

FIGURE 8 shows a sequence of representative 
operations to send a reply datagram, together with 
required inputs for the execution of the operations 
and with outputs produced therefrom. 

As shown in FIGURE 1, a licensed product 1 is 
located at a licensee's site. Product 1 may include 
a data portion IB and a functional portion 1A such as 
computer software product or any other kind of 
information product used to control use of data 
portion IB. If data portion IB is CD-ROM database 
information, functional portion 1A should enable the 
licensee to search indexes and display text. If data 
portion IB is video information, functional portion 1A 
should control the display of the video information. 
For audio information, functional portion 1A should 
play the audio information. If data portion IB is an 
Lctronic book, functional portion 1A should display 
and turn pages, thm above examples show some of the 
ways functional portion 1A can control data portion 
IB; however, they are hardly exhaustive. 

By including in product 1 both information and 
software which controls the information, product 1 is 


WO 93/01550 


- 11 - 


PCT/US92/05387 


an executable product. Non-software information in 
product 1 is preferably encrypted so that it cannot 
be easily extracted , from the product. 

License check monitor 2 sends license datagrams 
5 3 to the licensor and also receives license datagrams 
3 from the licensor. License check monitor 2 also 
prevents further use of product 1 when a datagram 3 
containing a "denial" message is received. 

License datagrams 3 are messages that describe 

10 information related to the use of licensed product 1. 
Datagrams 3 are sent over a communications network 
between the licensee and licensor. Initially, the 
licensee sends a request datagram 3 over the network 
to the licensor. The licensor then returns a reply 

15 datagram containing either an approval or denial. It 
is also possible to implement the present invention by 
having the licensor transmit a reply datagram only for 
approvals. 

At the licensors site, license control system 4 
20 makes licensing decisions by comparing request 
datagram 3 with license records 5. After the 
comparison, control system A stores information 
related to request datagram 3 into history of license 
datagram record 6. It is noted that request datagrams 
25 3 are periodically sent while product 1 is in use. 
Thus, the history of license datagrams in record 6 
provides means for measuring the duration of use of 
product 1. 

Representations of data and records stored at the 
30 licensee's site, contained in datagrams, and stored at 
the licensors site are illustrated in FIGURE 2. At 
the licensee's site, network service 7, which handles 
delivery and transmission of datagrams 3, supplies 


PCT/US92/05387 

WO 93/01550 

- 12 - 


network address 8. It is by this address that license 
control system 4 identifies a location of use of 

^Ucensed product record 9 is contained within 
5 monitor 2. Within the license product record 9 is an 
identification record 10, which contains the following 
two items: licensor's network address 11, and product 
aodel number 12 that identifies product l. When a 
licensor has only one product, or uses different 
10 licensor network addresses 11 for each product, 
product model number 12 may not be needed. 

Datagram sent record 13 stores information about 
the last sent datagram 3. It includes a datagram 
number 14, which uniquely identifies the last 
15 transmitted datagram 3, and the date and time 15 when 
the last datagram 3 was sent from the licensee's site. 

Licensed product record 9 also contains control 
parameters record 16, which is used for controlling 
the timing of key events in the communication of 
20 license check monitor 2 with license control system 
4. send interval 17 specifies a time interval between 
each transmission of a new datagram 3 from the 
licensee to the licensor. 

wait interval 18 is the length of time that 
25 monitor 2 waits to receive a reply datagram 3 before 
resending the same request datagram 3. The duration 
of this interval depends on the speed of the 
communications network being used to deliver datagrams 

30 ^ Disconnect allowed interval 19 is the duration 
of time that monitor 2 allows product 1 to be used 
without a reply datagram 3 from the licensor. The 
duration of this interval depends on the reliability 


WO 93/01550 


- 13 - 


PCT/US92/05387 


of the communications network* The interval must be 
long enough to take into consideration network 
downtime. For example, suppose a message was sent 
from the licensor and the network went down just 
5 afterwards. Disconnect allowed interval 19 should be 
long enough to allow the network to resume its normal 
operation and successfully deliver datagrams 3 from 
the licensor; otherwise, the licensee would be forced 
to stop using product 1 until the network was 
10 operational. 

License datagram 3 contains header 20. Header 

20 is used during execution of low level communication 
protocols within the network. Source network address 

21 is the network address from where datagram 3 is 
15 sent. Destination network address 22 is the network 

address to where datagram 3 is sent. Additional data 
may be included in header 20 if required by low level 
protocols used in delivering datagrams 3. 

Data 23, a part of datagram 3, conveys a message, 

20 and contains a number of fields. Product model number 
24 and datagram number 25 identify product 1 and 
datagram 3, respectively. It is noted that 
retransmitted datagrams have an identical datagram 
number. Duplicate datagrams must be identified at a 

25 licensor's site so that they do not all contribute in 
billing a licensee. 

Each datagram number 25 is unique for each 
request datagram 3 transmitted from the licensee, 
except for retransmitted datagrams. This allows a 

30 reply datagram 3 received by a licensee to be verified 
as an actual reply to a request datagram 3 from that 
licensee, as explained below. 


WO 93/01550 


14 


PCT/US92/05387 


10 


15 


20 


25 


30 


Number of processes running 26 is the number of 
concurrent uses of product 1 at the time datagram 3 
is sent. Authorization code 27 is used on reply 
datagrams 3 to indicate an approval or a denial. 
Message text 28 contains a message which will be 
displayed to the user upon a denial. 

License database 29 at the licensor's site holds 
records of information about customers, licenses, and 
license usage. The types of information within 
license database 29 of the present embodiment are 
shown in FIGURE 2. However, a specific license 
management system may require its license database to 
hold types of information other than those in FIGURE 
2. For example, licensee name and address may be 
incorporated as a part of a license database 29. 

License record 5 contains information on 
licenses. Licensee network address 30 identifies a 
precise network node which is licensed to use product 
1 If request datagrams are received which do not 
originate from known licensee network addresses 30, 
reply datagrams containing denial messages are 
transmitted. Product model number 31 is the model 
number of a licensed product. Termination date 32 is 
the expiration date of a license. When the license of 
a product is issued for an unlimited duration, 
termination date 32 should reflect a date very far 
into the future, relative to the licensing date. 

The present embodiment allows licenses to be paid 
for in a lease-like or rental fashion. If a licensee 
were to rent or lease product 1, paid through date 33 
would reflect the date through which the licensee has 
paid for using the product. Grace period 34 is the 
time interval for which the licensee is allowed to be 


WO 93/01550 


- 15 - 


PCIYUS92/05387 


delinquent before services are disconnected. Grace 
period 34 would reflect a very large time interval if 
the license is not of a lease-like or rental type. 
When the license provides for a limit on the number of 
5 concurrent uses of a product 1, number of processes 
licensed 35 contains the limiting number. When the 
license does not provide for such a limit, number of 
processes 35 should be a very large number. 

History of license datagrams 6 is an archive of 

10 datagrams 3 received from the licensee. 

FIGURE 3 illustrates operations executed at the 
licensee's site and at the licensor's site. An 
overview of the processing at the licensee's site is 
described by steps 101.0 to 106.0, and an overview of 

15 the processing at the licensor's site is described by 
steps 107.0 to 110.0. 

At the licensee's site, at step 101.0, product 1 
invokes monitor 2. This is accomplished by first 
establishing monitor 2 as a handler for a timer 

20 expiration interrupt signal and for received datagrams 
3. Next, a timer is set with a very short time to 
cause an initial call to monitor 2. At step 102. 0, 
monitor 2 computes a time 36 since the last datagram 
was sent by determining the difference between the 

25 current date and sent time and date and time 15 that 
a datagram was last sent from the licensee's site. 
When product 1 commences execution, datagram sent date 
and time 15 is set to "null." Thus, time since send 
36 is very large at the beginning of the monitor's 

30 execution. At step 103.0, time since send 36 is 
compared to send interval 17. If time since send 36 
is greater than send interval 17, then a request 
datagram is transmitted, per the steps described in 


WO 93/01550 


- 16 - 


PCT/US92/05387 


FIGURE 4. Step 104.0 first checks if a reply to the 
last datagram has arrived and if wait interval 18 has 
expired. If a reply has not arrived and the wait 
interval has expired, steps 104.1-104.3 (FIGURE 5) are 
5 executed. Step 105.0 processes authorization code 27 
in a reply when the reply is received, in accordance 
with steps 105.1 to 105.5 (FIGURE 6). At step 106.0 , 
product 1 resumes normal execution of its programs 
until the next interrupt signal is generated. 
10 At the licensor" s site, license control system 4 

receives and processes datagram 3, in accordance with 
steps 107.0 to 110.0. Step 107.0 receives request 
datagram 3. Step 108.0 generates authorization code 
27, per steps 108.1 to 108.8 (FIGURE 7). Step 109.0 
15 creates reply datagram 3 and transmits the datagram to 
the licensee via steps 109.1 to 109.5 (FIGURE 8). 

FIGURE 4 shows the procedure which monitor 2 
follows for sending request datagram 3 to the 
licensor. Step 103.1 sets source network address 21 
20 in datagram 3 to the network address 8 of the 
licensee's location on the network. Step 103*2 sets 
destination network address 22 to licensors network 
address 11. Step 103.3 encrypts product model number 
12 for datagram 3. Step 103.4 assigns a unique number 
25 to datagram 3, encrypts the number , and stores it as 
datagram number 14. This number is altered when an 
entirely new datagram 3 is sent. Datagrams which are 
retransmitted have the same datagram number 25 as the 
original. As already explained, this allows license 
30 control system 4 to identify duplicate datagrams. 

Step 103.5 counts the number of processes using 
product 1, currently running, encrypts the count, and 
stores the encryption as the number of processes 


WO 93/01550 


17 - 


running 26. In the UNIX operating system, this 
procedure could be performed using the command "ps" to 
obtain a list of current processes, the command "grep" 
to extract the processes of product 1, and "vc" to 
5 count the number of processes. Step 103.6 sets 
authorization code 27 to number 255 and encrypts the 
number. 

Number 255 indicates that datagram 3 is a request 
for authorization. Such an indication is needed to 

10 guard the present system against the following steps 
for circumventing the present invention: intercepting 
outgoing datagrams; and inputting the intercepted 
datagrams to monitor 2 • 

Step 103.7 stores the current date and time as 

15 sent date & time 15. This date is needed to compute 
when to send the next datagram 3. Step 103.8 assigns 
a value to send interval 17, which sets an alarm for 
invoking monitor 2 to send the next datagram 3 . Step 
103.9 sends datagram 3. 

20 In the present embodiment a datagram is 

transmitted via a connectionless datagram service. 
Methods for transmission are well documented for some 
networking systems. For example, TCP/IP (Transport 
Control Protocol/ Internet Protocol) includes a con- 

25 nectionless protocol called UDP (User Datagram 
Protocol) . A method for sending a datagram using UDP 
protocol from a SUN Microsystem computer is documented 
in a SUN manual titled, Network Programming Gujfle, in 
section 9 titled "Transport Level Interface 

3 0 Programming . " 

Step 103.10 sets another alarm using wait 
interval 18 for retransmitting datagram 3, if no reply 
datagram has been received. The alarm causes monitor 


WO 93/01550 


18 - 


PCT/US92/05S87 


2 to be invoked for checking whether a reply datagram 

3 has been received. Monitor 2 will transmit a 
duplicate of the previously transmitted datagram, if 
no reply has been received. After the execution of 

5 step 103.10, "Send License Datagram" procedure returns 
system control to step 104.0 in FIGURE 3. 

FIGURE 5 shows the operation of the "Reply 
Datagram is Overdue" procedure. Step 104.1 compares 
time since the last datagram was sent 36 to disconnect 
10 allowed interval 19, which, as described above, is the 
interval that product 1 is allowed to operate even if 
a reply is overdue. If time since send 36 is smaller 
than disconnect allowed interval 19, datagram 3 is 
retransmitted via executing step 103.9 in FIGURE 4. 
15 Step 104.2 "disconnects" product 1 from further 
service, if time since send 36 is greater than 
disconnect allowed interval 19. 

Step 104.2 comprises a sequence of sub-steps 
104.2.1-104.2.3. Step 104.2.1 assigns number 5 to 
20 authorization code 27 in the current datagram being 
processed. Value 5 is interpreted by monitor 2 as a 
denial. Step 104.2.2 sets message text 28 to the 
following: "A reply from licensor to numerous 
authorization requests was never received. This 
25 product must be connected to a communications network 
in order to function." Step 104.2.3 transfers system 
control to step 105.3 in FIGURE 6. Step 105.3 
processes the current denial datagram 3 as if it were 
just received. 

30 Through the execution of steps 104.1-104.3, the 

present system permits the use of product 1 for a 
prescribed period of time. After the prescribed 


WO 93/01550 


- 19 - 


PCT/US92/05387 


period of time has elapsed, the present system 
generates a denial. 

FIGURE 6 illustrates the steps which monitor 2 
follows in processing a reply datagram 3. Step 105.1 
5 decrypts all encrypted data in the received datagram. 
Step 105.2 compares datagram number 25 with datagram 
number 14 associated with the last datagram. If 
datagram number 25 is not equal to datagram number 14, 
step 105.2 ignores the current datagram and transfers 

10 procedural control to step 103.9 (FIGURE 4 ) in order 
to resend the last transmitted datagram. After 
disconnect allowed interval 19 elapses, monitor 2 
generates a denial. 

In essence, step 105.2 guards against the 

15 circumvention of the present invention via: (1) 
intercepting a reply datagram 3 (from the licensor) 
containing an approval (2) storing the reply datagram 
3; and (3) inputting the stored datagram to monitor 2. 
If the execution of step 105.2 does not transfer 

20 its procedural control to step 105.3, and if 
authorization control 27 is not zero (indicating an 
unqualified authorization has not been received) , step 
105.3 processes authorization code 27 via steps 
105.3.1 to 105.3.3. Step 105.3.1 retrieves message 

25 text 28 from datagram 3. If message text 28 is null, 
then the current datagram 3 is ignored, and monitor 2 
resends the last transmitted datagram 3. Step 105.3.1 
further protects the present system from attempts to 
generate fake datagrams and to feed the fake datagrams 

30 to monitor 2 by checking for a proper authorization 
code of zero. 

If message text 28 is not null, step 105.3.2 
presents the message 28 to the user on an output 


WO 93/01550 


20 - 


PCT/US92/05387 


device such as a CRT screen. Step 105.3.3 terminates 
the current use of product 1. This step may be 
implemented by subroutine or function call to a simple 
exit that saves any current user data to a file. 
5 Alternatively, product 1 may be designed so that, upon 
being directed to terminate further execution, it 
first gives the user an opportunity to save their 
data. 

If authorization code 27 is zero, step 105.4 

10 allows further use of product 1. Step 105.5 returns 
procedural control to 106.0 on FIGURE 3. 

FIGURE 7 shows a sequence of operations within 
the "Generate Authorization Code" procedure. The 
procedure produces appropriate authorization code 27 

15 when a request datagram 3 is received at the 
licensor's site. 

Step 108.1 decrypts all encrypted data in the 
received datagram 3. Using source network address 21 
and product model number 24 in the datagram 3, step 

20 108.2 searches the license database 29 for matching 
licensee network address 30 and product model number 
31. If license database 29 does not contain a record 
of product model number 24 of the product 1 being 
licensed to the licensee, step 108.3 sets 

25 authorization code 27 of its reply datagram 3 to 1 
(i.e., the sending node is not a registered address) 
and authorization is denied. 

Step 108.3 prevents copies of product 1 from 
being installed on multiple nodes independently of 

30 whether they are within or outside the licensee's 
organization. Step 108.3 also prevents the licensee 
from transporting product 1 from one node to another 
node without the licensor's approval. This is 


- 21 - 


PCT/US92/05387 


important because the two nodes may have different 
processing capacities, and they may be billable at 
different rates. 

If the date a request datagram is received is 
later than license termination date 32, step 108.4 
sets authorization code 27 to number 2 (i. e., license 
has expired). Step 108.4 allows the licensor to fix 
licensing periods, or to determine free trial periods 
for the use of the product. The licensing period may 
be extended by resetting license termination date 32 
at the licensor's site. 

If the date when the datagram is received is 
later than the paid through date 33 as extended by the 
grace period 34, step 108.5 sets authorization code 27 
to 3 (i.e., payment is past due). 

If the number of processes running 26 exceeds a 
licensed number of concurrent uses of product 1 (at a 
particular node), then step 108.6 sets authorization 
code 27 to 4 (i.e. concurrent process usage limit is 
exceeded) • 

Step 108.7 sets authorization code 27 to 0 
indicating processing can continue. It is noted that 
steps 108.3*108.7 are a part of a 

IF (xl) then (yl) 

ELSE if (x2) then (y2) 

ELSE if (x3) then (y3) ... 
statement of a procedure (e. g., FORTRAN, PASCAL, C, 
etc). Thus, only one of the steps 108.3-108.7 is 
executed. Step 108.7 sets authorization code 27 to 0 
(indicating approval of further use) only if steps 
108.3-108.6 do not execute the THEN portion of each 
step. Step 108.7 also stores the received datagram 3 
in history of license datagrams 6. 


WO 93/01550 


22 - 


PCT/US92/05387 


10 


Step 108.8 is the last of authorization 
processing rules 108.1-108.7. After the execution of 
steps 108.3-108.7, step 108.8 returns procedural 
control to step 109.0 in FIGURE 3. 

FIGURE 8 illustrates the steps which license 
control system 4 follows to send reply datagram 3 to 

the licensee. 

Step 109.1 encrypts authorization code 27 and 
writes the encrypted code into datagram 3. Next, step 
109.2 writes message text 28 corresponding to 
authorization code 27 into datagram 3. 

Step 109.2 may be replaced with the following 
method for relaying proper messages to a product user. 
Proper messages corresponding to each authorization 
code is stored in monitor 2 at each licensee's site. 
Upon reception of a reply datagram 3, monitor 2 would 
locate within itself the proper message corresponding 
to the authorization code, and use the message for 
various purposes. This method would reduce the size 
of reply datagrams 3. However, if the licensor wanted 
to implement new denial codes, each product would need 
to somehow incorporate the new message associated with 
the new denial code into itself. The list of 
messages, one of which may be written as message text 
25 28, are as follows: 


15 


20 


30 


AUTHORIZATION 

CODE TEXT MESSAGE 


This product is not licensed to 
run at this location. Please 
contact the licensor to either 
license this product, or move an 
existing license of your 
organization to this location. 
Use of this product at this 


WO 93/01550 


- 23 


location is discontinued until 
this problem is resolved. 

2 Your license on this product has 
expired. Please contact licensor 

5 in order to have your license 

extended. Use of this product is 
discontinued until this problem is 
resolved. 

3 Payment on this licensed product 
10 is over due and past your grace 

period. Please have your 

accounting department send payment 
in order to continue your license. 
Use of this. product is 
15 discontinued until this problem is 

resolved. 

4 Your current use of this licensed 
product exceeds limits for the 
number of uses your organization 

20 has licensed. Please try again 

later. 

5 A reply from licensor to numerous 
authorization requests was never 
received. This product must be 

25 connected to a communications 

network in order to function. 

0 Authorization is OK. There is no 

message. 

Step 109.3 swaps source network address 21 and 
30 destination network address 22. Step 109.4 transmits 
datagram 3 back to monitor 2. 

At step 109.5, a communications network delivers 
datagram 3 to monitor 2. Subsequently, procedural 
control returns to step 107.0 in FIGURE 3 to process 
35 the next datagram 3. 

Although only a few exemplary embodiments of this 
invention have been described in detail above, those 
skilled in the art will readily appreciate that many 


WO 93/01550 


PCTAJS92/05387 

- 24 - 


purifications are possible in the preferred 
embodiments without materially departing from the 
novel teachings and advantages of this invention. For 
example, product 1 was described as sometimes 
5 consisting of information as well as software which 
controls the information. This approach provides the 
greatest flexibility, but it is also possible to 
include the software which controls the information in 
the networked machine at the licensee's site. In this 

10 case, product 1 is split, with part of it on media and 
part on the licensee's machine. By doing this, some 
space can be saved on the media containing product 1, 
but the capabilities of these products will be limited 
by the standard functions available on these machines. 

15 Also, the presently described embodiment includes 

a product 1 which is at the licensee's site. This 
implies that product 1 is on some physical media such 
as diskette, tape, or CD. However, product 1 can be 
electronically delivered over communications lines to 

20 the licensee and therefore might exist in the memory 
of the licensee's machine, rather than any physical 
media. In the case of a product such as music, radio 
programs and the like, product 1 may even be broadcast 
to the licensee's site for playback; thus, the product 

25 1 would not even be -resident- in the licensee's 
machine. 

The presently described embodiment allows the 
licensee to access the licensed product concurrent 
with the sending and receiving of datagram 3. In this 
30 way, the present invention does not inconvenience the 
legitimate licensee; however, for sensitive licensed 
products such as confidential information, the license 


WU V3/01550 


5 


10 


15 


20 


25 


tr\* i / u»y a/ moo t 

- 25 - 


check monitor 2 can prevent access to the product 1 
until an authorization reply datagram 3 is received. 

Further, monitor 2 could be realized as an 
integral part of product 1. Monitor 2 could also be 
implemented as: 1) a separate process which is the 
parent process of product 1 (Such a parent process 
would have the authority to cancel the use of product 
1) ; 2) a single system level task which controls 
license checking of all products at the licensee's 
site; and 3) custom logic in a digital integrated 
circuit (the present invention could be implemented 
as hardware instead of software) . 

Also, though the above embodiment has been 
described as being implemented on a computer system 
network where operator messages are provided on a CRT 
monitor or the like, the invention may be practiced 
on other hardware platforms by incorporating 
appropriate changes known to those of ordinary skill 
in the art. For example, in an alternative hardware 
embodiment such as a music or video playback device, 
monitor 2 is invoked by the licensee's action of 
pushing the "play 19 or similar button, and in a 
broadcast music application or similar system, the 
monitor may be invoked simply by turning the device 
on. The processing of monitor 2 is as described in 
the presently described embodiment. However, when a 
denial message is received or generated, monitor 2 
must be able to switch "play 11 to "off". 

The presently described embodiment is designed 
to be used in conjunction with a connectionless UDP 
(User Datagram Protocol) in the TCP/IP protocol suite 
as an underlying protocol . However , the present 
invention could also be realized using a slower, 


WO 93/01550 


- 26 - 


PCT/US92/05387 


connectionless protocol such as electronic mail or a 
variety of connection protocols (e. g. , Pile Transfer 
Protocols (FTP) , Telnet) . 

It is noted that protocol suites quite different 
5 from TCP/IP could be used, such as ISO (International 
Standards Organization) protocol. In addition, 
datagrams 3 could be sent over telephone systems with 
communications protocols such as those specified by 
CCITT (Consultative Committee on International 
10 Telephony and Telegraphy). In this case, telephone 
numbers could serve as network addresses 21, 22. 
Communications protocols for wireless communications 
such as cellular telephone can also be used to send 

the datagram 3. 
15 Accordingly, all such modifications are 

intended to be included within the scope of this 
invention as defined by the following claims. 


WO 93/01550 


27 


PCT/US92/05387 


WHAT IS CT ATMED IS: 

1. A method for monitoring the use of a 
licensed product , comprising the steps of: 

generating, at regular time intervals , 
5 datagrams including an address in a communications 
facility, said facility address identifying a 
licensee; 

automatically sending said datagrams from 
it least one licensee's site over said facility to a 
10 licensor's site while said licensed product is in use; 

receiving said datagrams at said licensor's 

site; 

storing an indication of receipt of each of 
said datagrams; and 
15 counting said datagrams from each licensee 

as an indication of the use by the licensee of said 
licensed product. 

2, A method as in claim 1 further wherein: 
said generating step includes the step of 

20 incorporating a model number of said product in said 
datagrams; and 

said counting step includes the step of 
separately counting datagrams for each product model 
number for each licensee. 

25 3. A method as in claim 1, wherein said 

generating step includes the step of automatically 
obtaining said facility address that identifies said 
licensee from said facility without any data being 
provided by said licensee. 


WO 93/01550 


PCT/US92/05387 


- 28 - 

4. A method for controlling use of a licensed 
product comprising the steps of: 

generating a request datagram including an 
address in a communications facility, said facility 
5 address identifying a licensee; 

automatically sending said request datagram 
from at least one licensees site over said facility 
to a licensor's site while said licensed product is in 
use; 

10 receiving said request datagram at said 

licensor's site; 

comparing said received request datagram 
with rules and license data at said licensor's site to 
determine if use of said licensed product is 
15 authorized; 

sending a reply authorizing datagram to said 
licensee's site if use of said licensed product is 
approved; and 

receiving said reply authorizing datagram at 
20 said licensee's site and denying the use of said 
product when no reply authorizing datagram is 
received. 

5. A method as in claim 4, wherein: 

said generating step includes the step of 
25 incorporating a model number of said product in said 
datagram; 

said comparing step includes the step of 
comparing said rules and license data for a particular 
model number; and 
30 said sending step includes the step of 

transmitting said reply datagram for each product 
model number. 


WO 93/01550 


FCl/UhV2/U5J57 


29 


6. A method as in claim 4, wherein said 
generating step includes the step of automatically 
obtaining said facility address that identifies said 
licensee from said facility without any data being 

5 provided by said licensee. 

7. A method as in claim 4 further comprising 
the step of sending a reply denial datagram if use of 
said licensed product is not approved as determined in 
said comparing step, said step of automatically 

10 sending said request datagram from a licensee's site 
including the step of resending said request datagram 
if neither a reply authorizing datagram nor a reply 
denial datagram is received from said licensor's site 
within a predetermined time from sending said request 

15 datagram from said licensee's site. 

8 . A method as in claim 4 , wherein said step of 
automatically sending said request datagram from said 
licensee's site includes the step of sending a request 
datagram at regular time intervals. 

20 9. A method as in claim 4, wherein: 

said generating step includes the step of 
providing a datagram identification code within said 
datagram; 

said reply datagram sending step includes 
25 the step of inserting the same datagram identification 
code in said reply datagram; and 

said reply receiving step rejects said reply 
authorizing datagram if the datagram identification 
code included in said reply authorizing datagram does 


SUBSTITUTE SHEET 


WO 93/01550 


PCT/US92/05387 


- 30 - 

not match the datagram identification code included in 
said request datagram* 

10. A method as in claim 4, wherein: 

said comparing step includes the step of 
5 comparing said facility address that identifies said 
licensee with a list of valid licensee addresses to 
determine if said facility address is a valid address; 
and 

said reply authorizing datagram is not sent 
10 if said facility address that identifies said licensee 
is not valid. 

11. A method as in claim 10 further comprising 
the step of sending a reply denial datagram if said 
facility address that identifies said licensee is not 

15 valid. 

12. A method as in claim 4, wherein: 

said comparing step includes the step of 
comparing a license expiration date with a date at 
which said datagram is received; and 
20 said reply authorizing datagram is not sent 

if the license expiration date is later than the date 
at which said datagram is received. 

13. A method as in claim 12, further comprising 
the step of sending a reply denial datagram if the 

25 license expiration date is later than the date at 
which said datagram is received. 

14. A method as in claim 4, wherein: 


c: 5 INSTITUTE SHEET 


WO 93/01550 


- 31 - 


said comparing step includes the step of 
checking currentness of payments from said license; 
and 

said reply authorizing datagram is not sent 
5 if payment is overdue. 

15. A method as in claim 14, further comprising 
the step of sending a reply denial datagram if payment 
is overdue. 

16. A method as in claim 4, wherein: 

10 said generating step includes the step of 

incorporating in said datagram data indicative of the 
number of processes currently using said product at 
said licensee's site; 

said comparing step includes the step of 

15 comparing the number of processes using said product 
at the licensee's site to an authorized number; and 

said reply authorizing datagram is not sent 
if said number of processes using said product exceeds 
said authorized number. 

20 17. A method as in claim 16 , further comprising 

the step of sending a reply denial datagram if said 
number of processes using said product exceeds said 
authorized number. 

18. A method as in claim 4, wherein said sending 
25 step includes the steps of sending said reply 
authorizing 1 datagram when use of said product is 
approved and sending a reply denial datagram when use 
of said product is not approved, said receiving step 


WO 93/01550 


- 32 - 


PCT/US92/05387 


denying use of said product when said reply denial 
datagram is received. 

19. A method as in claim 18, wherein said 
receiving and denying step denies use of said product 

5 when neither a reply authorizing datagram nor a reply 
denial datagram is received within a predetermined 
time after said request datagram is sent. 

20. A method as in claim 18, further comprising 
the step of indicating, at a licensee's site, a reason 

10 for denial when said reply denial datagram is 
received. 

21. A method as in claim 4, wherein: 

said licensed product comprises an executable 
portion and a data portion; and 
15 said method further comprises a step of 

controlling use of said data portion with said 
executable portion. 

22. A method as in claim 4 further comprising a 
step of allowing use of said licensed product before 

20 a reply datagram is received. 

23. A system for controlling licensed product 
comprising: 

a communications facility to which at least 
one licensee having a license for operating a licensed 
25 product from the licensor is connected; 

monitoring means, connected to said facility 
at a site of each said licensee, for generating a 
request datagram including an address of said licensee 


WO 93/01550 


on said facility and transmitting said request 
datagram over said facility to a site of said 
licensor, and for receiving and processing a reply 
datagram; and 

5 controlling means, connected to said 

facility at said licensors site, for receiving said 
request datagram, comparing said request datagram with 
rules and license data to determine if use of said 
licensed product is authorized and sending a reply 
10 authorizing datagram to said licensee^ site if use of 
said product is approved; and 

said monitoring means including means for 
denying use of said licensed product when no reply 
authorizing datagram is received* 

15 24. A system as in claim 23, wherein: 

said monitoring means sends request 
datagrams at regular time intervals during use of said 
licensed product; and 

said controlling means further comprises 
20 means for counting said request datagrams received at 
said controlling means and means for computing an 
amount to be billed to said licensee in response to 
said counting. 

25. A system as in claim 23 wherein: 
25 said monitoring means incorporates a model 

number for said product in said request datagram; and 
said controlling means comprises means for 
counting datagrams for each product model number for 
each licensee, in order to compute an amount to be 
30 billed to each licensee. 


WO 93/01550 


- 34 - 


PCT/US92/05387 


26. A system as in claim 23, wherein said 
monitoring means automatically obtains said facility 
address of said licensee from said facility without 
any input from said licensee. 

5 27. A system as in claim 23, wherein: 

said controlling means sends a reply denial 
datagram to said licensee's site if use of said 
product is not approved; and 

said monitoring means resends said request 
10 datagram if no reply authorizing datagram and no reply 
denial datagram is received within a predetermined 
period of time after said requesting datagram is sent. 

28. A system as in claim 23, wherein said 
monitoring means transmits request datagrams at 

15 predetermined time intervals. 

29. A system as in claim 23, wherein: 

said monitoring means incorporates a unique 
identification code in said request datagram; 

said controlling means incorporates the same 
20 request datagram identification code in said reply 
authorizing datagram; and 

said monitoring means rejects any reply 
authorizing datagram which does not include the same 
identification code as included in said request 
25 datagram. 

30. A system as in claim 23, wherein said 
controlling means compares said facility address of 
said licensee with a list of valid licensee facility 
addresses and does not generate a reply authorizing 


WO 93/01550 


- 35 - 


PCT/US92/05387 


datagram if said facility address of said licensee is 
not valid. . 

31. A system as in claim 30, wherein said 
controlling means sends a reply denial datagram when 

5 said facility address is not valid. 

32. A system as in claim 23 , wherein said 
controlling means compares an expiration date of a 
license of said product with a date at which said 
request datagram is received by said controlling 

10 means, and does not generate a reply authorizing 
datagram, thus denying use of said product, if the 
license expiration date is earlier than the date at 
which said request datagram is received. 

33. A system as in claim 32, wherein said 
15 controlling means sends a reply denial datagram if the 

license expiration date is earlier than the date at 
which said request datagram is received. 

34. A system as in claim 23, wherein said 
controlling means generates a reply authorizing 

20 datagram, thus denying use of said product, if a 
payment for the use of said product is overdue. 

35. A system as in claim 34* wherein said 
controlling means sends a reply denial datagram if 
payment for the use of said product is overdue. 

25 36. A system as in claim 23, wherein: 

said monitoring means includes in said 
request datagram data indicative of the number of 


WO 93/01550 


- 36 - 


PCT/US92/05387 


10 


15 


20 


25 


processes, at a licensee's site, currently using said 

product; and 

said controlling means does not generate a 

reply authorizing datagram, thus denying a use of said 
product, if more than a predetermined number of 
processes using said product are running at the 
licensee's site. 

37. a system as in claim 36, wherein said 
controlling means sends a reply denial datagram if 
m ore than said predetermined number of processes using 
said product are running at the licensee's site. 

38. A system as in claim 23, wherein said 
controlling means sends a reply denial datagram if use 
of said product is not approved. 

39. A system as in claim 38, wherein said 
monitoring means denies use of said licensed product 
when no reply authorizing datagram and no reply denial 
datagram is received within a predetermined time from 
the sending of said request datagram. 

40. A system as in claim 38, further comprising 
means for indicating, at a licensee's site, a reason 
for denial when said reply denial datagram is 
received. 

41. A system as in claim 23, wherein: 

said licensed product comprises an executable 
portion and a data portion; and 


WO 93/01550 


- 37 - 


PCT/US9Z/05387 


said system further comprises means for 
controlling use of said data portion with said 
executable portion. 

42. A system as in claim 41, wherein said data 
5 portion controlling means is disposed within said 

executable portion. 

43. A system as in claim 41, wherein said data 
portion controlling means comprises a first partial 
controlling means disposed within said executable 

10 portion and a second partial controlling means 
disposed within said monitoring means. 

44. A system as in claim 23, wherein said 
monitoring means includes means for permitting use of 
said licensed product before a reply datagram is 

15 received. 

45. A system for monitoring product comprising: 
a communications facility to which at least 

one licensee having a license for operating a licensed 
product from a licensor is connected; 
20 monitoring means, connected to said facility 

at a site of each said licensee, for generating 
datagrams including an address of said licensee on 
said facility and transmitting said datagrams at 
periodic intervals over said facility to a site of 

25 said licensor; and 

control means, connected to said facility at 
said licensor's site, for receiving said request 
datagrams, storing an indication of receipt of each of 
said datagrams and counting said datagrams from each 


WO 93/01550 


- 38 - 


PCT/US92/05387 


licensee as an indication of the use by the licensee 
of said licensed product. 

46. A system as in claim 45, wherein said 
monitoring means automatically obtains said facility 

5 address of said licensee from said facility without 
any input from said licensee. 

47. A system as in claim 45, wherein: 

said monitoring means incorporates a product 
model number in said request datagrams; and 
10 said controlling means separately counts 

request datagrams for each product model number for 
each licensee. 

48. A method for monitoring the use of a 
licensed product comprising the steps of: 

15 generating, at regular time intervals, 

datagrams including an address in a communications 
facility, said facility address identifying a 

licensee; and 

automatically sending said datagrams from at 
20 least one licensee's site over said communications 
facility to a licensor's site while said licensed 
product is in use. 

49. A method as in claim 48 further wherein: 
said generating step includes the step of 

25 incorporating a model number of said product in said 
datagrams . 

50. A method as in claim 48, wherein said 
generating step includes the step of automatically 


- 39 - 


PCT/US92/05387 


obtaining said facility address that identifies said 
licensee from said communications facility without any 
data being provided by said licensee. 

51. A method for controlling use of a licensed 
product comprising the steps of: 

generating a request datagram including a 
facility address that identifies a licensee in a 
communications facility; 

automatically sending said request datagram 
from a licensee's site over said communications 
facility to a licensor^ site while said licensed 
product is in use; and 

receiving a reply authorizing datagram at 
said licensee's site and denying the use of said 
product when no reply authorizing datagram is 
received. 

52. A method as in claim 51 wherein: 

said generating step includes the step of 
incorporating a model number of said product in said 
datagram. 

53. A method as in claim 51 , wherein said 
generating step includes the step of automatically 
obtaining said facility address that identifies said 
licensee from said communications facility without any 
data being provided by said licensee. 

54. A method as in claim 51, wherein: 

said reply datagram is one of at least a reply 
authorization datagram and a reply denial datagram; 
and 


WO 93/01550 


- 40 - 


PCT/US92/05387 


10 


15 


20 


25 


said step of automatically sending said request 
datagram from a licensee's site includes a step of 
resending said request datagram if neither a reply 
authorizing datagram nor a reply denial datagram is 
received within a predetermined time from sending said 
request datagram from said licensee's site. 

55. A method as in claim 51, wherein said step 
of automatically sending said request datagram from 
said licensee's site includes the step of sending a 
request datagram at regular time intervals. 

56. A method as in claim 51, wherein: 

said generating step includes the step of 
providing a datagram identification code within said 

datagram; and 

said reply receiving step rejects said reply 
authorizing datagram if the datagram identification 
code included in said reply authorizing datagram does 
not match the datagram identification code included in 
said request datagram. 

57. A method as in claim 51, wherein: 

said generating step includes the step of 
incorporating in said datagram data indicative of the 
number of processes currently using said product at 
said licensee's site. 

58. A method as in claim 51, further comprising 

the steps of: 

receiving a reply denial datagram; and 
displaying, at a licensee's site, a reason for 

denial when said reply denial datagram is received. 


WO 93/01550 


- 41 - 


PCT/US92/05387 


59. A method as in claim 51, wherein: 

said licensed product comprises an executable 
portion and a data portion; and 

said method further comprises a step of 
5 controlling use of said data portion with said 
executable portion* 

60. A method as in claim 51 further comprising 
a step of allowing use of said licensed product before 
a reply datagram is received. 

10 61. A system for controlling a licensed product 

comprising: 

a communications facility to which at least 
one licensee is connected; 

monitoring means , connected to said 
15 communications facility at a site o£ each said 
licensee, for generating a request datagram including 
an address of said licensee on said communications 
facility and transmitting said request datagram over 
said communications facility, and for receiving and 
20 processing a reply authorizing datagram; and 

means for denying use of said product when no 
reply authorizing datagram is received. 

62. A system as in claim 61, wherein: 

said monitoring means sends request 
25 datagrams at regular time intervals during use of said 
licensed product. 


63. A system as in claim 61 wherein: 


WO 93/01550 


- 42 - 


PCI7US92/05387 


10 


15 


20 


25 


said monitoring means incorporates a model 
number for said product in said request datagram. 

64. A system as in claim SI, wherein said 
monitoring means automatically obtains said facility 
address of said licensee from said communications 
facility without any input from said licensee. 

65. A system as in claim 61, wherein: 

said monitoring means resends said request 
datagram if no reply authorizing datagram and no reply 
denial datagram is received within a predetermined 
period of time after said requesting datagram is sent. 

66. A system as in claim 61, wherein said 
monitoring means transmits request datagrams at 
predetermined time intervals. 

67. A system as in claim 61, wherein: 

said monitoring means incorporates a unique 
identification code in said request datagram; and 

said monitoring means rejects any reply 
authorizing datagram which does not include the same 
identification code as included in said request 
datagram. 

68. A system as in claim 61, wherein: 

said monitoring means includes in said 
request datagram data indicative of the number of 
processes, at a licensee's site, currently using said 
product. 

69. A system as in claim 61, wherein: 


WO 93/01550 


- 43 - 


PC17USV2/U5387 


said monitoring means denies use of said 
licensed product when no reply authorizing datagram 
and no reply denial datagram is received within a 
predetermined time from the sending of said request 
5 datagram. 

70. A system as in claim 61, further comprising 
means for indicating, at a licensee's site, a reason 
for denial when a reply denial datagram is received. 

71. A system as in claim 61, wherein: 

10 said licensed product comprises an executable 

portion and a data portion; and 

said system further comprises means for 
controlling use of said data portion with said 
executable portion. 

15 72. A system as in claim 71, wherein said data 

portion controlling means is disposed within said 
executable portion. 

73. A system as in claim 71, wherein said data 
portion controlling means comprises a first partial 

20 controlling means disposed within said executable 
portion and a second partial controlling means 
disposed within said monitoring means. 

74. A system as in claim 61, wherein said 
monitoring means includes means for permitting use of 

25 said licensed product before a reply datagram is 
received. 


WO 93/01550 


- 44 - 


PCT/US92/05387 


75. A system for monitoring a licensed product 

comprising: 

a communications facility to which at least 

one licensee is connected; 

monitoring means, connected to said 
communications facility at a site of each said 
licensee, for generating datagrams including an 
address of said licensee on said communications 
facility and transmitting said datagrams at periodic 
10 intervals over said communications facility. 

76. A system as in claim 75, wherein said 
m onitoring means automatically obtains said 
communications facility address of said licensee from 
said communications facility without any input from 

15 said licensee. 

77. a system as in claim 75, wherein: 

said monitoring means incorporates a product 
model number in said request datagrams. 

78. A method for monitoring the use of a 
20 licensed product comprising the steps of: 

receiving datagrams at a licensor's site on 
a communications facility having at least one 
licensee's site thereon, said datagrams being 
generated at regular time intervals and including a 
25 facility address that identifies a licensee in said 
communications facility; 

storing an indication of receipt of each of 

said datagrams; and 

counting said datagrams as an indication of 

30 the use of said licensed product. 


WO 93/01550 


- 45 - 


79. A method as in claim 78 further wherein: 
said datagrams include a model number of 

each product; and 

said counting step includes the step of 
5 separately counting datagrams for each product model 
number for each licensee* 

80. A method for controlling use of a licensed 
product comprising the steps of: 

receiving a request datagram at a licensor's 
10 site on a communications facility having at least one 
licensee's site thereon, said request datagram 
including a facility address identifying a licensee 
and being automatically sent over said communications 
facility to said licensor's site while said licensed 
15 product is in use; 

comparing said received request datagram 
with rules and license data at said licensor's site to 
determine if use of said licensed product is 
authorized; and 
20 sending a reply authorizing datagram if use 

of said licensed product is approved. 

81. A method as in claim 80 wherein: 

said datagrams include a model number of 
said product; 

25 said comparing step includes the step of 

comparing said rules and license data for a particular 
model number; and 

said sending step includes the step of 
transmitting said reply datagram for each product 

30 model number. 


WO 93/01550 


- 46 - 


PCT/US92/05387 


82. A method as in claim 80 further comprising 
the step of sending a reply denial datagram if use of 
said licensed product is not approved as determined 
in said comparing step. 

83. A method as in claim 80, wherein: 
said datagrams include a datagram 

identification code; and 

said reply datagram sending step includes 
the step of inserting the same datagram identification 
code in said reply datagram. 

84. A method as in claim 80, wherein: 
said comparing step includes the step of 

comparing said facility address that identifies said 
licensee with a list of valid licensee addresses to 
15 determine if said facility address is a valid address; 
and 

said reply authorizing datagram is not sent 
if said facility address that identifies said licensee 
is not valid. 

20 85. A method as in claim 84 further comprising 

the step of sending a reply denial datagram if said 
facility address that identifies said licensee is not 
valid. 


5 


10 


86. A method as in claim 80, wherein: 
25 said comparing step includes the step of 

comparing a license expiration date with a date at 
which said datagram is received; and 


WO93/01550 


PCT/US9Z/0531T7 


- 47 - 

said reply authorizing datagram is not sent 
if the license expiration date is later than the date 
at which said datagram is received. 

87. A method as in claim 86 , further comprising 
5 the step of sending a reply denial datagram if the 

license expiration date is later than the date at 
which said datagram is received. 

88. A method as in claim 80, wherein: 

said comparing step includes the step of 
10 checking currentness of payments from said license; 
and 

said reply authorizing datagram is not sent 
if payment is overdue. 

89. A method as in claim 88 , further comprising 
15 the step of sending a reply denial datagram if payment 

is overdue. 

90. A method as in claim 80, wherein: 

said datagrams include data indicative of 
the number of processes currently using said product 
20 at said licensee's. site; 

said comparing step includes the step of 
comparing a number of processes using said product to 
an authorized number; and 

said reply authorizing datagram is not sent 
25 if said number of processes using said product exceeds 
said authorized number. 

91. A method as in claim 90, further comprising 
the step of sending a reply denial datagram if said 


WO 93/01550 


- 48 - 


PCT/US92/05387 


number of processes using said product exceeds said 
authorized number. 

92. A method as in claim 80, wherein said 
sending step includes the steps of sending said reply 

5 authorizing datagram when use of said product is 
approved and sending a reply denial datagram when use 
of said product is not approved. 

93. A system for controlling a licensed product 
comprising: 

10 a communications facility to which at least 

one licensee and a licensor are connected at a 
licensee's site and at a licensor's site, 
respectively; and 

controlling means, connected to said 

15 communications facility at said licensor's site, for: 
receiving a request datagram, said request datagram 
including an address of said licensee on said 
communications facility and being transmitted over 
said communications facility to a site of said 

20 licensor; comparing said request datagram with rules 
and license data to determine if use of said licensed 
product is authorized; and sending a reply authorizing 
datagram to said licensee's site if use of said 
product is approved. 

25 94. A system as in claim 93, wherein: 

said request datagrams are sent at regular 
time intervals during use of said licensed product; 
and 

said controlling means comprises means for 
30 counting said request datagrams received at said 


WO 93/01550 


- 49 - 


rci/us»z/o3j»/ 


controlling means and means for computing an amount to 
be billed to said licensee in response to said 
counting. 

95. A system as in claim 93 wherein: 

5 said datagrams include a model number for 

said product; and 

said controlling means comprises means for 
counting datagrams for each product model number for 
each licensee, in order to compute an amount to be 
10 billed to each licensee. 

96. A system as in claim 93, wherein: 

said controlling means sends a reply denial 
datagram to said licensee's site if use of said 
product is not approved. 

15 97. A system as in claim 93, wherein: 

said datagrams include a unique 

identification code; and 

said controlling means incorporates the same 
request datagram identification code in said reply 
20 authorizing datagram. 

98. A system as in claim 93, wherein said 
controlling means compares said facility address of 
said licensee with a list of valid licensee facility 
addresses and does not generate a reply authorizing 
25 datagram if said facility address of said licensee is 
not valid. 


WO 93/01550 


- 50 - 


PCT/US92/05387 


99. A system as in claim 98, wherein said 
controlling means sends a reply denial datagram when 
said facility address is not valid. 

100. A system as in claim 93, wherein said 
5 controlling means compares an expiration date of a 

license of said product with a date at which said 
request datagram is received by said controlling 
means, and does not generate a reply authorizing 
datagram, thus denying use of said product, if the 
10 license expiration date is earlier than the date at 
which said request datagram is received. 

101. A system as in claim 100, wherein said 
controlling means sends a reply denial datagram if the 
license expiration date is earlier than the date at 

15 which said request datagram is received. 

102. A system as in claim 93, wherein said 
controlling means generate a reply authorizing 
datagram, thus denying use of said product, if a 
payment for the use of said product is overdue. 

20 103. A system as in claim 102, wherein said 

controlling means sends a reply denial datagram if 
payment for the use of said product is overdue. 

104. A system as in claim 93, wherein: 

said datagrams include data indicative of 
25 the number of processes, at a licensee's site, 
currently using said product; and 

said controlling means does not generate a 
reply authorizing datagram, thus denying a use of said 


WO 93/01550 


51 - 


PCT/US92/05387 


product, if more than a predetermined number of 
processes using said product are running at the 
licensee's site. 

105. A system as in claim 104, wherein said 
5 controlling means sends a reply denial datagram if 

more than said predetermined number of processes using 
said product are running at the licensee^ site. 

106. A system as in claim 93, wherein said 
controlling means sends a reply denial datagram if use 

10 of said product is not approved. 

107. A system as in claim 93, wherein: 

said licensed product comprises an executable 
portion and a data portion; and 

said system further comprises means for 
15 controlling use of said data portion with said 
executable portion. 

108. A system as in claim 107, wherein said data 
portion controlling means is disposed within said 
executable portion. 

20 109. A system for monitoring a licensed product 

comprising: 

a communications facility to which at least 
one licensee and a licensor are connected at a 
licensee 1 s site and at a licensors site, 
25 respectively; and 

control means, connected to said 
communications facility at a licensor^ site, for: 
receiving request datagrams, said request datagrams 


PCT/US92/05387 

WO 93/01550 

- 52 - 


including an address of said licensee on said 
communications facility and being transmitted at 
periodic intervals over said communications facility 
to said licensor's site; storing an indication of 
5 receipt of each of said datagrams; and counting said 
datagrams from each licensee as an indication of the 
use by the licensee of said licensed product. 

110. A system as in claim 110, wherein: 

said request datagrams include a product 

10 model number; and . c 

said controlling means separately counts 

request datagrams for each product model number for 
each licensee. 


WO 93/01550 


PCT/US92/053B7 


1 / 8 



'a 

2 


Q> 

■+J 

GO 

.« 
a 

§ 

8 


3 


li 


a 
"S 


5 

c 


$ g 

53 

a> 


SUBSTITUTE SHEET 


WO 93/01550 


pcr/usyz/uusy 



SUBSTITUTE SHEET 


WO 93/01550 


PCT/US92/05387 



SUBSTITUTE SKEE1 


WO 93/01550 


PCT/US92/05387 


4/8 



SUBSTITUTE SKEE 


WO 93/01550 


PCT/USW/053B7 



WO 93/01550 


PCT/US92/05387 



SUBSTITUTE SHEET