System for controlling the number of concurrent copies of a program in a network based on the number of available licenses
DCFirst Claim
1. A computer network comprising:
- a plurality of license storage keys;
a plurality of computers each in association with one of said license storage keys;
means for transferring a license from one of said keys to another of said keys;
means for preventing a program from running on a computer if the key associated with that computer does not contain an available license for that program.
15 Assignments
Litigations
0 Petitions
Accused Products
Abstract
License management systems and methods allow licenses for a computer program to be available for use at each of a plurality of nodes of a network. If a valid license file at a local node contains an unexpired, available license, a license manager at the local node permits the computer program to be executed at the requesting local node. If no such license is available in a valid license file at such local node, the license manager searches the other nodes for a valid license file containing an unexpired, available license. In one embodiment, if an unexpired available license is located in a valid license file at a second (or "remote") node, the license manager transfers such license to the local node, and assigns and encrypts a unique identification to such transferred license. The original record of the transferred license is modified by erasing it from the license file at the remote node so that the transferred license is no longer available there. In a second embodiment, the license manager modifies the license file to indicate use of the license at the local node without such transfer. The number of copies of the computer program that are authorized for execution simultaneously on the network is thus limited to the number of licenses that have been loaded into the license files on the network.
561 Citations
64 Claims
-
1. A computer network comprising:
-
a plurality of license storage keys; a plurality of computers each in association with one of said license storage keys; means for transferring a license from one of said keys to another of said keys; means for preventing a program from running on a computer if the key associated with that computer does not contain an available license for that program. - View Dependent Claims (2)
-
-
3. A license management system for limiting the number of copies of a given computer program that are permitted to run simultaneously on one or more nodes of a network in which said nodes are connected, said limiting being according to the number of licenses for said given computer program that are authorized for said network;
- said system comprising;
license file means on at least one of said nodes for storing at least one of said licenses; program storage means for storing a copy of said given computer program on each of said nodes at which it is desired to run a copy of said given computer program; and license management means operatively linked to each said copy, said license management means being responsive to a request from said copy to which it is operatively linked for searching said nodes to locate one of said license file means that has a license that is available for authorizing use at a local one of said nodes at which said requesting copy is stored, said search first being made at said local node and if no such license file means having an available license is located at said local node, said search continuing in seriatim among said nodes other than said local node until one such license file means having an available license is located or until all said nodes have been searched without locating one such license file means having an available license; said license management means being responsive to the search of all of said nodes without locating one such license file means having an available license for returning to said copy at said local node a message preventing said copy from being run at said local node in response to said request. - View Dependent Claims (4, 5, 6, 7)
- said system comprising;
-
8. A management system for controlling the operability of computer programs on any of a plurality of workstations coupled together in a network, wherein it is required that a license be available for one of said workstations in order to enable a copy of a given one of said computer programs to run on said one workstation and wherein the number of licenses for said given computer program that is authorized on said network is less than or equal to the number of copies of said given computer program that can run simultaneously on said network, said system comprising:
-
license file means for storing at least one of said licenses on at least a selected one of said workstations; system means for assigning to said license file means and storing an identification (UID) that is unique to said license file means; and means responsive to a request to run a copy of said given computer program on said selected workstation for searching said selected workstation to locate said license file means at said selected workstation, said searching means being responsive to locating said license file means for comparing said UID of said license file means to the UID stored by said system means for said license file means and, if said compared UIDs are the same, and if said license in said located license file means is not in use, enabling said copy of said given computer program to run on said selected workstation. - View Dependent Claims (9, 10)
-
-
12. A computer that is programmed to perform functions selected to control the operability of computer programs on any of a plurality of workstations coupled together in a network, wherein it is required that a license be available when a request is made to execute a copy of a given one of said computer programs on a particular one of said workstations, and wherein an aggregate number of said licenses authorized for said network is less than the number of copies of said given computer program that can be executed simultaneously on said workstations of said network, said selected functions comprising:
-
storing a license file on at least one of said workstations, said license file including at least one of said licenses, the aggregate number of said licenses that are stored being less than the number of copies of said given computer program that can be executed simultaneously on said workstations; assigning to each said stored license file an identification (UID) that is different from the UID of all other ones of said license files; in response to a request to execute a copy of said given computer program at a particular one of said workstations, searching said particular workstation to determine whether one of said license files is stored on said particular workstation; in response to locating said license file on said particular workstation, comparing said UID of said located license file to a system record of the UID for said located license file; in response to said compared UIDs being the same, determining whether one of said licenses in said located license file is available to authorize execution of a copy of said given computer program at said particular workstation; and enabling said computer program to be executed on said particular workstation if said license is available. - View Dependent Claims (11, 13)
-
-
14. A license management system for controlling the running, at nodes connected in a network, of copies of a given computer program, wherein a license is required for each copy of said given computer program that is to run simultaneously with other copies of said given computer program, and wherein the number of licenses authorized for said network and said given computer program is less than the number of copies of said given computer program that can run simultaneously on said network, wherein a directory is on a given node for indicating which licenses, if any, are on said given node, and wherein a request can be made to run a copy of said given computer program at a first node when no license is available at said first node but is available at a second node, said system comprising:
-
license file means provided at each said node for containing at least one of said licenses; system means for assigning a unique identification to each of said license file means on said nodes and for storing a record of each of said unique identifications; and first management means operatively linked to a copy of said given computer program at said first node for receiving said request and searching said license file means at said second node to determine that said license file means is at said second node; said first management means being effective in response to said determination that said license file means is at said second node for comparing said unique identification of said license file means at said second node to said record of said unique identification in said system means to determine that said license file means at said second node is valid, and then to determine that at least one license therein is not in use; said first management means being effective upon making both of said last-mentioned determinations for returning a status to said copy of said given computer program at said first node indicating that said copy of said given computer program is authorized to run. - View Dependent Claims (15, 16)
-
-
17. A management system for controlling the operability of copies of a given computer program on any of a plurality of workstations coupled together in a network, wherein more than one copy of said given computer program can be permitted to run simultaneously on a given one of said workstations, and wherein it is required that a license be available for each copy of said given computer program that is to run, and wherein an aggregate number of licenses for said given computer program that are available for said network is less than an aggregate number of copies of said given computer program that can run simultaneously on the workstations of said network;
- said management system comprising;
license file means stored on a selected one of said workstations at which it is desired to operate more than one copy of said given computer program, said license file means including at least two of said licenses; system means for assigning to said license file means and storing therefor a unique identification; means responsive to a request to run at least two of said computer programs on said selected workstation for searching said selected workstation to locate said license file means; and means responsive to said searching means locating said license file means on said selected workstation for comparing said identification of said located stored license file means to the identification stored by said system means for said respective license file means, and if said respective compared identifications are the same and two of the licenses in said license file means are not in use, enabling both of said corresponding copies of said given computer program to run on said selected workstation.
- said management system comprising;
-
18. A method of controlling the operability of copies of a computer program on any of a plurality of workstations coupled together in a network, wherein it is required that a license be available for each copy of said computer program that is to be executed, and wherein the number of licenses for said computer program that are authorized for said network is limited, said method comprising the steps of:
-
storing at least one of said licenses in a license file on at least a selected one of said workstations; assigning to each stored license file an identification (UID) that is different from the UID of all other ones of said license files; searching said selected workstation in response to a request for execution of a copy of said computer program at said selected workstation to determine whether one of said license files is on said selected workstation; upon locating said license file on said selected workstation, comparing said UID of said located stored license file to a record of said assigned UID for said located license file; and if said compared UIDs are the same, and if said license in said license file is available, then enabling said copy of said computer program to be executed at said selected workstation. - View Dependent Claims (19, 20)
-
-
21. A method of managing licenses to limit the number (S) of copies of a given computer program that may be executed simultaneously on the nodes of a network to less than or equal to the number (L) of licenses that are authorized for said network and said given computer program, each of said nodes having a system memory, license memory means for storing up to L ones of said licenses and a directory for identifying said licenses stored in said license memory means, said method comprising the steps of:
-
loading a copy of said given computer program onto each of said nodes on which it is desired to execute a copy of said given computer program, each said copy of said given computer program being current with respect to time when its term of authorized use has not expired; loading an aggregate of L licenses into said license memory means on said nodes of said network such that a maximum of L copies of said given computer program can be executed simultaneously on said network; assigning to each said license memory means an identification that is unique to said license memory means at each said node at the time of such loading; in response to a request for the execution of a copy of said given computer program at a first of said nodes, searching said directory at said first node for license memory means thereon, and upon determining that no license memory means is at said first node or that all licenses in said license memory means located at said first node are active or that the unique identification of said license memory means located at said first node is invalid, then sequentially searching said directories at other ones of said nodes for said license memory means; and upon locating license memory means that is at another node and that has a valid unique identification and that has an inactive, current license therein, returning a run message to said copy of said given program at said first node to enable said copy of said computer program to be executed on said first node. - View Dependent Claims (22)
-
-
23. A license management system for limiting the number of copies of a given computer program that are permitted to run simultaneously on one or more nodes of a network in which said nodes are connected, said limiting being according to the number of licenses for said given computer program that are authorized for said network, said licenses being loaded onto one or more of said nodes;
- said system comprising;
means for storing a copy of said given computer program on each of said nodes at which it is desired to run a copy of said given computer program; and license management means operatively linked to each said copy, said license management means being responsive to a request from said copy to which it is operatively linked for searching said nodes to locate one of said licenses that is available for use at a local one of said nodes at which said requesting copy is stored, said search first being made at said local node and if no available license is located at said local node, said search continuing in seriatim among said nodes other than said local node until an available license is located or until all said nodes have been searched without locating an available license;
said license management means being responsive to the search of all said nodes without locating an available license for returning to said copy at said local node a message preventing said copy from being run at said local node in response to said request.
- said system comprising;
-
24. A management system for controlling the operability of computer programs on any of a plurality of workstations coupled together in a network, wherein it is required that a license be available at one of said workstations in order to enable a copy of one of said computer programs to run on said one workstation and wherein the number of licenses for a given computer program that is authorized to run on said network is less than the number of copies of said given computer program that can run simultaneously on said network, said system comprising:
-
means for storing one of said licenses on at least a selected one of said workstations, the number of said workstations on which said licenses are stored being less than the number of copies of said given computer program that can run simultaneously on said workstations; system means for assigning to each said stored license and storing an identification (UID) that is different from the UID of all other ones of said licenses; means responsive to a request to run a copy of said given computer program on said selected workstation for searching said selected workstation to determine whether one of said licenses is available to authorize a copy of said given computer program to run on said selected workstation; and means responsive to locating said available license for comparing said UID of said located available stored license to the UID stored by said system means for said located available license and, if said compared UIDs are the same, enabling said copy of said computer program to run at said selected workstation. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31)
-
-
32. A computer that is programmed to perform functions selected to control the operability of computer programs on any of a plurality of workstations coupled together in a network, wherein it is required that a license be available at one of said workstations in order to enable a copy of a given one of said computer programs to run on said one workstation, and wherein the number of said licenses authorized for said network is less than the number of copies of said given computer program that can run simultaneously on said network, said selected functions comprising:
-
storing one of said licenses on at least a selected one of said workstations, the number of said workstations on which one of said licenses is stored being less than the number of copies of said given computer program than can run simultaneously on said workstations; assigning to each said stored license an identification (UID) that is different from the UID of all other ones of said stored licenses; in response to a request to run a copy of said given computer program at said selected workstation, searching said selected workstation to determine whether one of said licenses is stored and available on said selected workstation; in response to locating said available license stored on said selected workstation, comparing said UID of said located stored license to a system record of the UID for said located stored license; and in response to said compared UIDs being the same, enabling said copy of said given computer program to run on said selected workstation. - View Dependent Claims (33, 34, 35, 36, 37)
-
-
38. A license management system for controlling the availability for operation, at nodes connected in a network, of copies of a given computer program on said nodes, wherein a license is required on each said node at which a copy of said given computer program is to run, and wherein the number of licenses authorized for said network and said given computer program is less than or equal to the number of copies of said given computer program that can run simultaneously on said network, wherein a license file is provided at each said node for indicating that one of said licenses is on said node, wherein a directory is on each of said nodes for indicating which licenses, if any, are on a given node, and wherein a request can be made to run a copy of said given computer program at a first node when no license is available at said first node but is available at a second node, said network including system means for assigning a unique identification to each license on said nodes, said system means being effective to store a record of said unique identifications;
- said system comprising;
first management means linked to said copy of said given computer program at said first node for receiving said request and searching said license file at said second node to determine whether or not said license is available on said second node; said first management means being effective in response to said determination that said license is available on said second node for transferring said available license from said second node to said first node if said available license is valid at said second node and has not expired; and said first management means being effective for requesting said system means to assign a unique identification to said available license transferred to said first node. - View Dependent Claims (39, 40, 41, 42)
- said system comprising;
-
43. A management system for controlling the operability of copies of a given computer program on any of a plurality of workstations coupled together in a network, wherein more than one copy of said given computer program can be permitted to run simultaneously on a given one of said workstations, and wherein it is required that a license be available for each copy of said given computer program that is to run, and wherein the aggregate number of licenses for said given computer program that are available for said network is less than the aggregate number of copies of said given computer program that can run simultaneously on the workstations of said network;
- said management system comprising;
means for storing at least two of said licenses on a selected one of said workstations at which it is desired to operate more than one copy of said given computer program; system means for assigning to each said stored license and storing therefor an identification that is different from the identification of all other ones of said licenses stored on said network; means responsive to a request to run at least two copies of said given computer program on said selected workstation for searching said selected workstation to determine whether one or more of said licenses is available on said selected workstation; and means responsive to said searching means locating at least one of said licenses on said selected workstation for comparing said identification of each said respective located stored license to the identification stored by said system means for said respective located stored license, and if said respective compared identifications are the same and the corresponding license is available on said selected workstation, enabling an amount of said copies of said given computer program equal to the number of available compared licenses located on said selected workstation to run on said selected workstation.
- said management system comprising;
-
44. A license management system for limiting the number (S) of copies of a given computer program that may be executed simultaneously on the nodes of a network to less than or equal to the number (L) of licenses that are authorized on said network for said given computer program, each of said nodes having a system memory, license memory means for indicating characteristics of said licenses and a directory for identifying said licenses stored in said license memory means, said license management system comprising:
-
means for loading a copy of said given computer program onto each of said nodes on which it is desired to execute said given computer program, each said copy of said given computer program being current with respect to time when its term of authorized use has not expired; means for loading L licenses into said license memory means on said nodes of said network such that no more than L copies of said given computer program can be executed simultaneously on said network, said loading means assigning to each said license an identification that is unique to said license at said node at the time of such assignment; license management means for identifying an inactive one of said licenses at a selected one of said nodes at which it is desired to execute a copy of said given computer program, said license being inactive when said copy of said given computer program at said one of said nodes is not being executed, said license management means including for each said node a separate license manager corresponding to said copy of said given computer program at said node such that at a first of said nodes there is a first license manager and a first copy of said given computer program and at a second of said nodes there is a second license manager and a second copy of said given computer program; said first copy of said given computer program being adapted to request from said first license manager the execution of said first copy of said given computer program at said first node; said first license manager being responsive to said request for searching said directory at said first node for one of said licenses, and upon determining that none of said licenses is inactive at said first node said first license manager searching said directories at said second node for a license; in response to locating an inactive current license at said second node, said license manager transferring said located inactive current license to said system memory at said first node, and upon said transfer said first license manager causing a unique identification to be assigned to said license transferred to said first node; means effective upon transfer of said transferred license to said system memory for erasing said transferred license from said license memory means at said second node; said first license manager writing said unique identification and said license into said license memory means at said first node; and said first license manager comparing said unique identification in said license memory means to said unique identification in said system memory and in the event of a match, said first license manager then returning a message for enabling said first copy of said given computer program to be executed on said first node. - View Dependent Claims (45, 46)
-
-
47. A method of controlling the operability of copies of a computer program on any of a plurality of workstations coupled together in a network, wherein it is required that a license be available at each said workstation at which one or more copies of said computer program are to be executed, and wherein the number of licenses for said computer program that are authorized for said network is limited, said method comprising the steps of:
-
storing one of said licenses on at least a selected one of said workstations; assigning to each said stored license an identification (UID) that is different from the UID of all other ones of said licenses; searching said selected workstation in response to a request for execution of a copy of said computer program at said selected workstation to determine whether one of said stored licenses is available for use at said selected workstation; upon locating said available stored license at said selected workstation, comparing said UID of said located available stored license to a record of said assigned UID for said located, available and stored license; and if said compared UIDs are the same, enabling said copy of said computer program to be executed at said selected workstation. - View Dependent Claims (48, 49, 50, 51)
-
-
52. A method of managing licenses to limit the number (S) of copies of a given computer program that may be executed simultaneously on the nodes of a network to less than or equal to the number (L) of licenses that are authorized for said network and said given computer program, each of said nodes having a system memory, license memory means for indicating characteristics of said licenses and a directory for identifying said licenses stored in said license memory means, said method comprising the steps of:
-
loading a copy of said given computer program into said license memory means on each of said nodes on which it is desired to execute a copy of said given computer program, each said copy of said given computer program being current with respect to time when its term of authorized execution has not expired; loading L licenses into said license memory means on said nodes of said network such that a maximum of L copies of said given computer program can be executed simultaneously on said network; assigning to each said loaded license an identification that is unique to said license at a particular one of said nodes at the time of such loading; identifying an inactive one of said licenses at a selected one of said nodes at which it is desired to execute a copy of said given computer program, said license being inactive when said copy of said given computer program at said selected one of said nodes is not being executed; in response to a request for the execution of a copy of said given computer program at a first of said nodes, searching said directory at said first node for a license, and upon determining that no license is at said first node or that all licenses are active at said first node, sequentially searching said directories at ones of said nodes other than at said first node for an inactive, current license; transferring to said first node an inactive current license located at another one of said nodes; assigning a unique identification to said license transferred to said first node; erasing the unique identification of said transferred license from said other node; and returning a run message to enable said copy of said given computer program to be executed on said first node. - View Dependent Claims (53, 54)
-
-
55. A license management system for limiting the number of copies of a given computer program that are permitted to run simultaneously on one or more nodes of a network in which said nodes are connected, said limiting being according to the number of licenses for said given computer program that are authorized for said network;
- said system comprising;
license file means on at least one of said nodes for storing at least one and up to a selectable authorized number of said licenses; program storage means for storing a copy of said given computer program on at least one of said nodes without limiting the running of said given computer program to running on said one node; and license management means responsive to a request to run, said request being from one of said copies at a particular one of said nodes, for searching as many of said nodes as are necessary to locate one of said license file means that has a license that is available for authorizing a copy of said given computer program to run at said particular one of said nodes; said license management means being responsive to said search not locating any of said license file means having an available license for returning to said requesting copy a message preventing said copy from running in response to said request. - View Dependent Claims (56, 57, 58, 59)
- said system comprising;
-
60. A management system for controlling the operability of computer programs accessed from any of a plurality of nodes coupled together in a network, wherein it is required that a license be available in order to enable said node to operate using a copy of a given one of said computer programs and wherein the number of licenses for said given computer program that is authorized to operate on said network is limited so that the number of copies of said given computer program that can operate simultaneously on said network is limited, said system comprising:
-
license file means for storing at least one of said licenses on at least one of said nodes; system means for assigning to said license file means and storing an identification (UID) that is unique to said license file means; and means responsive to a request from any of said nodes for operation of a copy of said given computer program for searching to locate said license file means at any of said nodes, said searching means being responsive to locating said license file means at said one node for comparing said UID of said license file means to the UID stored by said system means for said license file means and, if said compared UIDs are the same, and if a license in said located license file means is not in use, enabling said selected node to operate using said copy of said given computer program. - View Dependent Claims (61, 62)
-
-
63. A license management system for controlling the availability for use of copies of a given computer program, said copies being used in response to requests for use from nodes connected in a network, wherein a license is required for each copy of said given computer program that is to be used simultaneously with other copies of said given computer program, and wherein the number of licenses authorized for said network and said given computer program is limited, wherein a directory is on each of said nodes for indicating which licenses are on particular ones of said nodes, and wherein said requests can be made to use a copy of said given computer program when no license is available at the node that requests such use but is available at a second node, said system comprising:
-
at least one license file means for containing at least one of said licenses; system means for assigning a unique identification to each of said license file means and for storing a record of each of said unique identifications; and first management means for receiving said request and searching to determine that said license file means is at said second node; said first management means being effective in response to said determination for comparing said UID of said license file means at said second node to said record of said UID in said system means to determine that said license file means at said second node is valid, and then to determine that at least one license therein is available for use; said first management means being effective upon making all of said determinations for returning a status to said node indicating that said copy of said given computer program is authorized to be used. - View Dependent Claims (64)
-
Specification