Method for establishing licensor changeable limits on software usage
Abstract
A system and method for establishing licensor changeable limits onshared software usage without the licensor having access to the system on which theshared software is running. An encrypted numerical limit value is embedded in thelicensed software (program); when the program is executed ("accessed"), as a firststep, the program decrypts the limit value and compares it to the number of userscurrently accessing the shared program. If the number of users is less than the limit,then access is allowed. If the number of users is equal to (or greater than) the limit,then access is denied.
Term
Term ended
Expired 16 August 2013, 13.1 years ago.
- Priority
- Filed
- Granted
- Expired
- Today
13 claims: 4 independent, 9 dependent
- 1- 8 Claims:1. In a computer system, said computer system executing a plurality of licensed programs, wherein one or more of said plurality of licensed programs isaccessible by a plurality of users, a method for providing licensor control of amaximum number of users accessing said one or more licensed programs without requiring reference to information stored outside of said licensed program, said method comprising the steps of: receiving a request from a user for access to said program;establishing a limit value defining said maximum number by decrypting a portion of a previously encrypted alphanumeric string provided in said program by said licensor;determining a count of users currently accessing said program;comparing said limit value to said count of users currently accessing said program;denying access to said program if said count is greater than said limit value;and allowing access to said program if said count is less than said limit value;wherein said limit value is changeable by said licensor informing a licensee of a further alphanumeric string containing a new limit value, and said licensee replacing said alphanumeric string with said further alphanumeric string using a program change facility of said computer system, so that change of limit value is controllable by said licensor without said licensor having physical access to said system.
- 4In a computer system, said computer system executing a licensed program, wherein said licensed program is accessible a limited number of times, said limited number being set by a licensor, a method of limiting the number of accesses to said licensed program without requiring reference to information stored outside of said licensed program comprising the steps of:requesting access to said program;establishing a number of accesses by decrypting a previously encrypted first alphanumeric string stored in said program;establishing a limit defining said limited number by decrypting a previously encrypted second alphanumeric string stored in said program;comparing said limit to said number of accesses;if said number of accesses is equal to or greater than said limit, denying access to said licensed program;and if said number of accesses is less than said limit, allowing access to said licensed program incrementing said number of accesses, encrypting said number ofaccesses into said first alphanumeric string, and storing said first alphanumeric string in said program.
- 8In a telephone switching system, said system providing a plurality of features, wherein one or more of said features is accessible by a plurality of users, a method for a licensor to limit a maximum number of simultaneous users accessing said one or more features without requiring reference to information stored outside of said licensed program, said method comprising the steps of:receiving a request from a user for access to one of said features;establishing a limit value defining said maximum number of simultaneous users by decrypting a portion of a previously encrypted alphanumeric string provided by said licensor in said one feature;comparing said limit to a determined count of users currently accessing said one feature;denying access to said one feature if said count is greater than said limit;andallowing access to said one feature if said count is less than said limit;wherein said limit value is changeable by said licensor informing a licensee of a further alphanumeric string containing a new limit value, and said licensee replacing said alphanumeric string with said further alphanumeric string using a program change facility of said computer system, so that change of said limit value is controllable by said licensor without said licensor having physical access to said system. - 11
- 11In a telephone switching system, said system having a plurality of features, wherein one of more of said features is accessible by a plurality of users, a system for providing licensor control of a maximum number of users accessing said one or more features without requiring reference to information stored outside of said features, said control system comprising:means responsive to a request for access to one of said features for decrypting a portion of a previously encrypted alphanumeric string provided by said licensor in said one feature to establish a limit value defining said maximum number of users;means for determining a count of users;means responsive to said decrypted limit value for comparing said limit value to said count of users currently using said feature, wherein said comparing means denies access to said feature if said count is greater than said limit, and allows access to said feature if said count is less than said limit;and means for changing said encrypted alphanumeric string that replaces said encrypted alphanumeric string in said one feature with a further encrypted alphanumeric string containing a new limit value after said licensor informs said licensee of said further encrypted string so that said limit value is changeable by said licensor without said licensor having physical access to said system. -
Independent claims4
103 paragraphs, as filed
21~192 - 1 ~ METHOD FOR ESTABLISHING LICENSOR CHANGEABLE LIMlTS ON SOFTWARE USAGE Technical Field This invention relates to the field of data process, and, more speeific~11y, 5 tO the field of limiting access to muld-user software wherein the limit may be changed by the licensor.
Bacl~ .md of the I In software licensing a~ ,.-lenls, especially for multi-user software, en~-7rs comm~nly include con~ ual limits on the number of users who may have 10 access to the software, the number of Cimlllt~neous users, and/or the number of total ~r cÇ~ces This is particularly hll~l lanl in licenses for multi-user software p~r~Ag~s used in tcl~hone switching systems where software-controlled features are licensed on a per-line basis. A problem in the art is that there is no effective method of enforcing and policing such a~,l~,.,.llc.lt~ even with audits of saftware usage and/or 15 site i~ ;ol~c Summary of the L.~ ' This problem is solved and a technic~l advance is achieved in the art by a method for es~bli~hing licensor ~ limits on shared software usage without the licensor having access to the system on which the shared software is20 running.
An en~ ,x d ~ 1' limit value is c~ ~1dcd in the licensed software (program); when the program is ~ e~ ("access~"), as a first step, the program dec~ypts the limit value and compares it to the number of users cull~,nlly acce~ing the shared program.
If the number of users is less than the lirnit, then access is allowecl.
If the number of users is equal to (or greater than) the limit, then access is 25 denied.
The licensor may supply the licensee with a new enul ~ c ~ limit value to raise the number of allowed ~Cef~eS Since the licensee does not have access to the encryption Algc-rith~n, it cannot change the lirnit value. ~If the licensee attempts to enter a random string as the en~ limit value and the de~ p: ~ ~ value is not valid, then access is denied30 to e~ o.le. rullh~lllul~ the number of accesses to the cncl~,t~d value may belimited (i.e., two or three times a week), to prevent the licensee from Al~ .np~ g to ~ ~ ;
d~,te. ~ - the en~ algorithm.
In the context of a ~ pl'Ol~C switching system, features provided to aregenerallycontrolledbysharedsoftwarep~ g~s (''~)lUgla~llSIl).
In~5 this context, each time a .-u-l.o..-. ~ is allowed access to a ~IV~ t~ feature, the ~\ 21~:l92 - 2 encrypted limit is dccly~t~,d and cc)nlpal~,d with the number of users currently using the feature.
If the number of users is less than the limit, then the user is allowed to use the feature.
Otherwise, the user is not allowed to use the feature.
The encrypted lirnit, an al~hallulll~,.ic stling, can be changed using standard field update f~ilities, 5 Brief D~ of the Dra~in~ FIG. 1 is a block diagram of a switching network configuration, inf hl~ling an eYemrlqry ~.I.bodilllenl of this invention;
FIG. 2 is a flow chart of the general imple..~ n~ ion of an exemplary ernbodilnellt of this invention;
FIG. 3 is an eYemplqry ,.~ n, ~an~e screen as displayed on the ,.lai,ltc ~ ~nf~c console of FIG. 1 illustrating an update of the en.;l~r~Led All.h~).,."~ . ,c string;
FIG. 4 is an eY~mrlqry l,.ai"t~ nre screen as displayed on the IllAil~t~ n~ console of FIG. 1 illustrating an update of user access to a shared ~ ' 15 feature; and FIG. 5 is a flow chart describing another ~ ! v~ embodiment of this invention.
Detailed Dcs~,. ;,,.lThis invention will be des( ribed in connPctiQn with the t~ )hone 20 switching system, as i~ t7l~ted in FIG. 1, but the application of this system is much ~ ' broader.
For e ~ r 1_~ a method for e~i.hlil,il-g license or changeable limits on shared prO~,lalllS ac.;~ ling to this in~ ion may be used in a general pulpose, program-controlled co~ ,t~ - system.
The h l~pho-~e a~. it~,hhlg network confi~lr;~tion of FIG. 1 has two 25 central offiice switches, 100 and 200, and inter-switch 5ignq1ing network 250, e.g., a cQmm~ n channel ;ig -" g (CCS7) network and illustradve cc~ ations stations, i~- h,~ g c~ ,nlional analog t~ h~ stadon sets 23, 25, and 201, an integrated services digita1 network (ISDN) ~ ho~e set 11, and data terminal 13.
Switcbes 100 and 200 are ' t~ e~t~ by cl n. a ~ path 26, which may 30 include ,~ ~" switches.
Illuatl~ ,ly, switch 100 is a (~ ri~ ~ control ISDN clc~ ic a~. ilclli~g system such as the system ~ closed in U. S.
Patent 4,592,048, issued to M. W. 1'~ec L nl-r, et al., on May 27, 1986.
Alternadvely, switch 100 may be a ;bUt~d control, analog or digital switch, such as a 5ESS switch ...~....r;,~ d 35 by AT&T and desçribed in the AT&T Technical Journal, v. 64, No. 6, July/August, 1985, pages 1303-1564.
:
., .
21~192 Switch 100 includes a number of switching modules (SMs 110, 120, 130), each ~ssociAted with a different set of telephone station sets or trunks.
Each switching module includes a control unit for controlling conneclions to and from its associated telephone station sets or trunks.
Switching module 110, for example, 5 includes control unit 110 for controlling Conn~octions tO and from lel~,~hone station set 11.
Switching module 120 includes control unit 121 for controlling connections to and from station set 23.
Each control unit co~ ises a pluCe,S501 125 and rnemory 126.
Each memory 126 includes a database 127, wherein pl~cess~r 125 stores configuration and opçr~AtionAl data, as is known in the art.
For .
Il 'e, lists 10 of features associatcd with t~leph"l-e station sets 23 and 25 are stored in database 127.
Features such as call Çc,l~.urding, three-way calling, and the like are controlled by software programs stored in memory 126, and eYecutPd by processor 125, using data stored in database 127.
The ~ itcclul~i of switch 100 includes c~ ica~ion module (CM) 150 as a hub with switching modules 110, 120, and 130, and an a~ n ;~e module(AM)160e.~ gIhc.efiulll. AM160provides~ i..t~ nceand provisioning i.lrc,.. ,~ ;on and cc.l.. - .~A s to SMs 110, 120, and 130, as is known in the art, from ~ nlr lA ~ce terminal 165.
Switching module 110 IC- ---;n~t- S digital suhsc~iber lines, e.g. 12.
20 Switching module 120 ~e~,l--ndt~,s con~enlional analog lines (i.e., tip ring pairs), 22, 24, and provides circuit-switched co~ e~l;o~C to and from ~cs~;Ah d t~,hphone sets 23, and 25.
Swit~ihing module 130 is similar to s-.;l.,llillg modules 110 and 120, but includes the ~lJIuL~l;&h analog or digital trunk unit (not shown) for ;.~t~.. r~ g with the o. tg ~ g trunks included in a e - ~ path 26 to switch 200.
To col.lylet~ the desc~ tion of switch 100, co.. ~ ic~l;on module 150 acts as a switch fabric for cc~ among switch modules and ~ h..;~ lali~, module (AM) 160.
Switch 200 is shown CQ~ t ~1 to a con~ tional analog ~ phol1e -~ stadon set 201, for pu-~oses of illustration.
The all,hit~lul~; of switch 200 and the types of ~ l~hone, stadon sets served by switch are not illl~ol t~l to the present 30 invention and are thus not ~1~ s~ ~d further.
In the context of switch 100, the method for establishing licensor ch~ng~?blc limits on software usage can be used illustratively to limit the number of ~ h,l~hQ~f' subs~ihers who can subscrihe to a particular feature, for eY~mple. call fo .. ar~ g.
It is well known in the art that features such as call rO. waldillg are 35 licensed by switch vendors to cu,t~ (operating co...l~ani~s) on a per-line basis.
For e~ lpl~, call fol .. aldillg may be provided on switch 100 for 5,000 lines.
It is in ,,: , ~ , ,F;, - 21~192 - 4 the licensor's interest, lh~,.cro.~, to have a mech~nicm that limits the number of lines (users) that may use call fc..~.a~dillg at any given time.
If the operating co,-,?any has more users that want call ~, ~. anling than the limit allows, the operating COIllydny may request and pay for ~rli~ionql line ~lloca~ion~, wherein the vendor may supply a 5 new limit.
Turning now to FIG. 2, a flow chart for a general case of this invention is shown.
During the building of the exeCIlt~L~~ program that controls the switching system, a library is linked into the program, as is known in the art, controlling the feature program (in this example the call fv- ~. ~ding feature), which includes a 10 decryption algorithm and a routine to d~,t~,."finc whether to allow access to the program.
This routine follows the general flow chart shown in FIG. 2.
Starting in box 200, a request is received to access a particular feature.
In box 202 a count is made of the users ~u~l~nlly using the feature.
In box 204 the access limit is dc."~yted using the p1gorithm loaded when the program was built.
The specific 15 ellcl~/ytion ~1gorithm is not h,.yo,lant to this h~ ,ntion, as any en~ ioll al~orithm may be used without dep~u Ih~g from the scope of this invention.
It is to the licensor's benefit, of course, to have a difficult encrypdon algorithm to prevent li~ çn~ees from reverse e ~ - ;ng the enc. ~ lion a1gorithm ~e~;ng co~ -es to decision diamond 206 where a d~,t~,.,l.ination is 20 made whether the de~ d access 1imit is va1id.
The de~ ytcd 1imit is conlyal~dto a range of known values.
If the 1imit is out of range or does not decrypt into a ..... ,. ;- ~1 value, then it is ~. - d that the c.. ~ access limit has been ~,d with.
Therefore, if, in decision l1;qrn~ nd 206, the de~ ytioA~ access 1imit is not valid, then access to the feature is denield in box 208.
If, in decision ~ n~l 206, the d~~ ~ access limit is valid, then yll)cessing pl~ ce~s to decision diamond 210, where a d~ t . . .; i~ ~ion is made if the number of users is less than the de~ access limit.
If the number of users is greater than the de~ r: ~ access 1imit, then, in box 212, access to the feature is - denied.
If the number of current users is 1ess than the d~l ~ ~ access limit, then in 30 box 214, access is al1Owed.
Turning now to FIG. 3, a screen as displa~cd on ..~ n~ nce termina1 165 (E;IG. 1) is shown, ill~~ llr I; ~e the access 1imit uydate screen.
As stated above, the en~ access 1imit may be ~ This feature is advantagçous when, for ~ r ~e~ the 1icensee desires to have more users access a pallicul~ 35 feature, for e--a r IC, ca11 fol ~. ~ ling.
The 1icensee would pay for the incf~ased number of lines to use the feature, and the 1icensor would provide the licensee with a 21~41~2 s new encrypted access limit.
In FIG. 3, a string Ir~l~isrnling an encrypted access limit is shown at 300.
The string may be changed using the ",;~ f ~nce console keyboard.
Field 310 shows the current access limit, which is the mllximl~m allowable users for the particular feature.
Field 310 equals the decrypted access 5 limit 300. 320 shows the number of users ~;u~ nlly accessing the p-. :~ ~ feature.
Preferably, the encrypted access limit field 300 may be changed only a few timesover a prec~,t~ ;ned time period.
For eY~mp1~, allowing changes to the encryptedaccess limit field 300 three times a week, aids in pr~ nling a licensee from attu~ ing to reverse engineer the encryption algc~thm by replacing the field 10 randomly until a valid string is found.
Turning now to FIG. 4, a screen showing a feature selection list for a particular subscriber (user) is shown.
When the licensee allows a su'o~i'n~r access to a feature, for e~rnrl~, call fo- ~ l;ng, the licensee updates the subscriber's profile. A typical update screen is shown in the example of FIG. 4.
The subsçri'ner 15 is i(~ntified by ~ h~e number and then a list of availaWe features is displayed.
For e ~ , k, call rO. ~. ~uding 400 is allowed for this subscri'oe~.
Call waiting 410 and ll~ee-~.dy calling 420 are not allowed.
When call fo~ d;ng 400 is allowed, that is, the "NO" is changed to "YES", as ~ stra~ecl During such updates, the licensed software checks to d~,t~ f,ne if the licensee has reached the license limit for 20 allowing access to the shared software (i.e., the call ro.~ Jing feature).
If the license limit has been reached, the software will not allow the update.
In this , le, the "YES" will ~ - ~rlly turn to "NO".
This e ~~k..l; ~ is further useful when ISDN subscribers may turn features on or off by th~.,l~lves at any given time. A screen (such as FIG. 4), may 25 be displayed at a remote terrninal l3 (E~IG. l), con~ features for h (FIG.1).
Up to 5,000 5~ ' ~ may use call fo,-.d,d.. g at any given time, but the ~ O~ dting CO~ dn,~ may allow more than that number of subscribers the ability to use caU f~ ding.
In this ~ le. when a s~hsc-ihe attempts to turn on a feature, the licensed software may permit on!y 5,000 su-'lsçri'~, s to use call rC.... a~ding.
This in~t: n may also be used to limit the absolute number of t~ 1&pho -e su'~s~~ s (users) snbsc~ ;n~ to features such as call rc., ~ d~lg.
Ae screen such as FIG. 4 is di~yl~ d each time a t~I~I;o--e su~ feature is çh~ng~A When a change is made (~' ~ ndng a "NO" to "YES" in field 400to allow this ~lb~ to use call fo~ u ling, for example), the system checks to 35 ~1S t~ - . . .h-e whether the limit of the number of svl'ls~ s that have call r,~ ding available has been reached.
If the su,-b~s7,~i~-r limit has not been reached, then the 2~gL192 - 6feature is allowed for this subscriber.
If the limit is reached, then the feature is denied.
A further use for this invention is to turn software (program) ~lvt~ by this invention "OFF" as provided by the licensor, and then "ON" after a license S fee is paid.
The encrypted alphanum~,~ic string sets a limit of zero for turning the program "OFF" and sets a limit of infinity for "ON".
This may be useful, for çY~mr1e, when software is provided with a system as an option that may be turnedon later.
The licensor does not have to supply different or ~ tion~l software for each c~ ~IO... .
The licensor merely supplies the dyyl~ylidl~: en~ t~,d string 10 according to what the licensee has paid for. ~ This invention may also be used to control the total number of accesses ~ which may be made to a feature.
In other words, this invention may be used to allow a licensee to use a particular feature 5,000 times and no more.
This aspect of this invention may be useful, for eYr E"-, for software operable on a personal con~p ~ 15 or other system where the licensee may desire a limited license to use software.
In this c~lll~oclilllt,nt, each time any user at~empts to access the license feature, a check is made of the total number of previous aCceC~es, which is cc Illpal~,d with the license limit.
Both the access limit and the count of the total number of previous accesses are stored in en.,lyyl~ ~ form to prevent ~ ~h~ri7pd change. FIG. 5 illustrates a 20 flow chart accolJi..g to this e ~ of the invention.
In box 500, a request is made to access the program, and, in box 502, the count of previous accesses is d~l y~: ~ from an en.;,~ ~, stored value. E~..ccs~ing cc~ - -,s to decision ~ m~ n~ S04 where a d~e ~' -.~1 is made if the de~l~y~ count is valid.
The d~l ~ ~ed count may not be valid if it is out of a certain range or ~ - 25 a1t~,.na~ does not decrypt into a numeric va1ue.
The count may be out of range or non-numeric if the licensee attempts to change the encrypted count of previous nccP~Ps If the de~ t( d count is not va1id, then access is denied in box 506.
If in decision diq~nd 504 the de~ count is va1id, then proce~ji"g colui~ cs to box 508 where the access 1imit is de~ y~d. F'I~Jcei. ,i"g co~u;~ es to decision 30 rli~mon~ S10 where a d :~ is made if the de~ i access 1imit is valid.
The p = v- . ~ t v- ~ for validity of the limit are generally the same as for the de~ t~,d count.
If the de.;,~ i access limit is not valid, then access is denied in box 512.
If the de~ access limit is valid in decision diamond 510, then p~ocei-sing con~ s to decision ~ ncl 514 where the d~ t~ ion is made if the 35 count is less than the 1imit.
If the count is not 1ess than the limit, then access is denied in box 516.
If the count is less than the limit, then in decision diamond 514 - 21~4192 - 7 ~I~Jces~ g con~ ucs to box 518 where Ihe count is in~ "e"l~A.
In box 520, the count is then en~,l ylJled so that it may be stored in a form that the licensee cannot modify. ~ei~ing ends in box 522 where access is allowed to the feature or software.
It is to be und~ tood that the above--lPscr~becl c~llbor~ are merely illustradve plin~ of the i~ ,n~ion, and that many variations may be devised by those skilled in the art, without departing from the scope of the in~,nlion, it is, ~L~ rc,l~, intended that such ~ ~ - be included within the scope of the claims.
5 members in 3 offices
Priority claims4
| Document | Office | Kind | Date |
|---|---|---|---|
| 968693 | United States of America | – | |
| 96869392 | United States of America | A | |
| 968693 | – | – | – |
| US19920968693 | – | – | – |
Members5
| Document | Office | Kind | |
|---|---|---|---|
| CA2104192A1 | Canada | A1 | |
| EP0597599A2 | European Patent Office (EPO) | A2 | |
| EP0597599A3 | European Patent Office (EPO) | A3 | |
| US5343526A | United States of America | A | |
| CA2104192CThis record | Canada | C |
2 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| LapsedLapsedMKLA | MKLA | |
| Examination requestEEER | EEER |
Numbers
- Publication
- 2104192
- Publication, DOCDB
- 2104192
- Publication, EPODOC
- CA2104192
- Application
- 2104192
- Application, DOCDB
- 2104192
- Application, EPODOC
- CA19932104192
Titles2
- English
- METHOD FOR ESTABLISHING LICENSOR CHANGEABLE LIMITS ON SOFTWARE USAGE
- French
- METHODE POUR ETABLIR SUR L'UTILISATION D'UN LOGICIEL DES LIMITES MODIFIABLES PAR LE CONCEDANT
Classification
- CPC, 3
- G06F21/105
- G06F2211/007
- G06F2221/2135
- IPC, 3
- G06F1 00
- G06F12 14
- G06F21 00