throbber
United States Patent [191
`Christiano
`
`USOO5671412A
`[11] Patent Number:
`[45] Date of Patent:
`
`5,671,412
`Sep. 23, 1997
`
`[54] LICENSE MANAGEMENT SYSTEM FOR
`SOFTWARE APPLICATIONS
`
`[75] Inventor: Matt Christiano, Saratoga, Calif.
`
`[73] Assignee: Globetrotter Software, Incorporated.
`Campbell. Calif.
`
`[21] Appl. No.: 508,829
`[22] Filed:
`Jnl.28,1995
`
`[51] rm, Cl.6 .................................................... .. G06F 17/30
`[52] US. Cl.
`395/615
`[58] Field Of Search .................................... .. 395/615, 186
`
`[56]
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`4,791,565 12/1988 Dunham et a1. ...................... .. 395/186
`4,924,378 5/1990 Hersey et a1.
`395/187
`5,014,234
`5/1991 Edwards, Jr. .... ..
`395/186
`
`5,438,508
`8/1995 Wyman . . . . . . . . . .
`. . . .. 395/208
`5,553,143‘ 9/1996 Ross et a1. .............................. .. 380/25
`
`Primary Examiner—Wayne Amsbury
`Attorney, Agent, or Fimz-—Hickman Beyer & Weaver, LLP
`
`ABSTRACT
`[57]
`An improved software license management system in accor
`dance with the present invention is disclosed. A license
`server initializes a license database by receiving a package
`license description that includes component license descrip
`tions for component software products in a package.
`Licenses for software products are also received, and license
`records are created in the license database for components
`and suite packages, where each record includes a number of
`licenses available to be checked out. A client computer
`system can request a license for a component product in a
`package. A license is granted to the client when the client is
`allowed to receive the license according to a license policy.
`When a component license is checked out, a linked suite
`license is also automatically checked out. No other client
`thus may use a component license linked with the suite
`license record unless another suite license is checked out.
`The license management system also provides a number of
`modifiers to be included in license records, including an
`overdraft quantity, a fail safe indicator, a minimum license
`quantity, and a capacity indicator. A ?nder and a diagnostic
`process can be implemented at the client computer system to
`?nd the license server over a network and provide a tool to
`diagnose failures in the license management system.
`
`70 Claims, 15 Drawing Sheets
`
`12
`
`16
`
`19 \
`
`PACKAGE P
`
`COMPONENT X
`COMPONENT Y
`COMPONENT Z
`
`IPR2017-01291
`Ubisoft EX1009 Page 1
`
`

`

`US. Patent
`
`Sep. 23, 1997
`
`Sheet 1 of 15
`
`5,671,412
`
`16
`
`CLIENT
`COMPUTER
`
`CLIENT
`COMPUTER
`
`19 \
`
`,20
`PACKAGE P 4/
`
`COMPONENT x ‘ j 20
`COMPONENT Y4‘
`COMPONENT z
`
`?gure 2a
`
`IPR2017-01291
`Ubisoft EX1009 Page 2
`
`

`

`' US. Patent
`
`Sep.23, 1997
`
`Sheet 2 of 15
`
`5,671,412
`
`PACKAGE CERTIFICATE
`
`PACKAGE DESCRIPTION
`1) PACKAGE NAME/24
`2) LIST OF COMPONENTS/25
`FOR EACH COMPONENTr'T’ZB
`a) COMPONENT NAME/34
`b) COMPONENT VERSION/36
`0) LICENSE MULTIPLIEFI/37
`3) PACKAGE VERSION/30
`4) SUITE INDICATOR-#32
`5) KEY/33
`
`PACKAGE LICENSE ITEM
`
`1) NUMBER OF PACKAGE LICENSES/4O
`2) OTHER LICENSE INFORMATION/42
`44
`3) OVERDRAFT, FAILSAFE, MINIMU ,
`CAPACITY VALUES/INDICATORS
`
`figure 26
`
`IPR2017-01291
`Ubisoft EX1009 Page 3
`
`

`

`U.S. Patent
`
`Sep. 23, 1997
`
`Sheet 3 of 15
`
`5,671,412
`
`/ 5O
`
`52
`
`INITIALIZE
`LICENSE
`DATABASE
`
`WAIT FOR
`NEXT LICENSE
`REQUEST
`
`PROCESS
`LICENSE
`REQUEST
`
`SEND STATUS
`TO CLIENT
`
`f?z'qure 3
`
`IPR2017-01291
`Ubisoft EX1009 Page 4
`
`

`

`U.S. Patent
`
`Sep. 23, 1997
`
`Sheet 4 of 15
`
`5,671,412
`
`64
`
`[54
`
`READ ALL PACKAGE
`DESCRIPTIONS AND /65
`STORE IN DATABASE
`
`Tl
`READ NEXT
`66
`\ LICENSE ITEM
`
`,‘Fi are 4
`5
`
`68
`
`ALL
`LICENSE ITEMS
`
`THERE A PACKAGE
`DESCRIPTION HAVING
`THE LICENSE vERSION
`AND NAME?
`
`78
`/
`
`PACKAGE A
`SUITE?
`
`LICENSE RECORD
`FOR SURE
`
`YES
`
`IS NEXT
`COMPONENT A
`PACKAGE?
`
`77
`
`/
`EXT
`FO T
`COMPOEEANT IN
`PACKAGE, CREATE
`A LICENSE RECORD
`
`I
`
`MORE
`COMPONENTS
`I=OR CURRENT
`PACKAGE ‘AT CUR_
`RENT LEVEL?
`
`NO
`
`82
`
`ENTER LICENSE
`ITEM IN LICENSE
`RECORD AND
`ENTER RECORD
`IN INTERNAL
`LICENSE
`DATABASE
`
`/
`74
`
`85
`\
`
`APPROPRIATE
`LEVEL OR
`PACKAGE
`
`83
`
`ANY REMAIN
`ING UNPROCESSED
`COMPONENTS AT
`HIGHER LEVELS
`OR OTHER
`PACKAGES?
`
`NO
`
`IPR2017-01291
`Ubisoft EX1009 Page 5
`
`

`

`US. Patent
`
`Sep. 23, 1997
`
`Sheet 5 of 15
`
`5,671,412
`
`[80
`
`USE NUMBER
`OF PACKAGE
`LICENSES AS
`NUMBER OF
`LICENSES
`
`/90
`
`96
`/
`USE PACKAGE
`VERSION AS
`VERSION
`NUMBER IN
`LICENSE
`RECORD
`
`?gure 5
`
`/104
`
`ISA
`LICENSE MULTIPLIER
`SPECIFIED IN
`COMPONENT?
`
`MULTIPLY NUMBER OF
`PACKAGE LICENSES BY
`MULTIPLIER TO CREATE
`NUMBER OF COMPONENT
`LICENSES
`
`/92
`
`94
`
`IS AN
`OPTIONAL VERSION
`SPECIFIED IN
`COMPONENT?
`
`USE OPTIONAL
`VERSION IN
`LICENSE RECORD
`
`I4
`
`MAKE LINK TO SUITE
`LICENSE, IF
`100\
`APPLICABLE, AND
`ENTER LINK IN
`LICENSE RECORD
`I
`SYNTHESIZE A
`102\ LICENSE KEY AND
`PLACE IN LICENSE
`RECORD
`I
`ENTER LICENSE DATA INTO
`LICENSE RECORD AND ENTER
`RECORD IN INTERNAL LICENSE
`DATABASE
`
`108
`
`IPR2017-01291
`Ubisoft EX1009 Page 6
`
`

`

`US. Patent
`
`Sep. 23, 1997
`
`Sheet 6 of 15
`
`5,671,412
`
`/ 78
`
`110
`
`USE NUMBER OF
`PACKAGE LICENSES AS /112
`NUMBER OF LICENSES
`
`__l__
`
`USE PACKAGE
`VERSION AS VERSION
`NUMBER IN LICENSE
`RECORD
`
`MAKE LINK TO SUITE
`LICENSE, IF
`APPLICABLE, AND
`ENTER LINK IN
`LICENSE RECORD
`
`SYNTHESIZE A
`LICENSE KEY AND
`PLACE IN LICENSE
`RECORD
`
`?gure 6
`
`114
`
`116
`
`118
`
`ENTER LICENSE DATA INTO
`LICENSE RECORD AND ENTER
`RECORD IN INTERNAL LICENSE
`DATABASE
`
`120
`
`IPR2017-01291
`Ubisoft EX1009 Page 7
`
`

`

`US. Patent
`
`Sep. 23, 1997
`
`Sheet 7 of 15
`
`5,671,412
`
`74, 104, 120
`
`124
`
`?gure 7
`
`ENTER OTHER
`LICENSE
`INFORMATION IN
`LICENSE RECORD
`
`126
`
`I
`
`ENTER OVERDRAFT
`QUANTITY IN
`LICENSE RECORD
`
`/ 128
`
`I
`
`ENTER CAPACITY
`VALUE IN LICENSE
`RECORD
`
`I
`
`ENTER FAIL SAFE
`INDICATOR IN
`LICENSE RECORD
`
`130
`
`132
`
`ENTER MINIMUM
`QUANTITY IN
`LICENSE RECORD
`
`134
`
`TOTAL # OF LICENSES
`AVAILABLE = OVERDRAFT
`QUANTITY + AUTHORIZED
`LICENSE LIMIT QUANTITY
`
`/135
`
`I
`
`ENTER LICENSE
`136
`RECORD IN
`INTERNAL LICENSE '’
`DATABASE
`
`138
`
`IPR2017-01291
`Ubisoft EX1009 Page 8
`
`

`

`US. Patent
`
`Sep. 23, 1997
`
`Sheet 8 of 15
`
`5,671,412
`
`/ 58
`
`‘__.___________>
`
`~
`
`144
`
`154
`
`IS A
`LICENSE AVAILABLE
`FOR REQUESTED PRODUCT
`USING RECEIVED NAME AND
`VERSION?
`
`'3
`L'CENSE
`ALIE'EINSSEE
`
`' 156
`/
`N0 SET STATUS
`TO "NOT
`AVAILABLE"
`
`FAILURE IN
`LICENSE
`SYSTEM?
`
`NO
`
`SET STATUS TO
`FAIL SAFE
`STATUS
`
`146
`
`IS
`AVAILABLE LICENSE
`A COMPONENT OF A
`SUITE?
`
`NO
`
`SET LICENSE REQUESTED
`TO SUITE LICENSE
`ASSOCIATED WITH
`REQUESTED PRoDuCT
`
`/148
`
`SET STATUS
`TO
`"AVAILABLE"
`
`152
`
`figure 8
`
`IPR2017-01291
`Ubisoft EX1009 Page 9
`
`

`

`US. Patent
`
`Sep. 23, 1997
`
`Sheet 9 0f 15
`
`5,671,412
`
`160
`
`162
`
`IS A
`LICENSE RECORD OF
`THIS NAME AND VERSION
`AVAILABLE IN
`DATABASE?
`
`144 /
`?gure 9
`
`NO
`
`YES
`
`163
`
`164
`
`168
`
`IS LICENSE
`A CAPACITY
`LICENSE?
`
`IS THE
`MINIMUM
`LICENSE UNITS
`SPECIFIED?
`
`.
`
`170
`
`IS THE NUM
`BER OF LICENSE
`UNITS REQUESTED
`LESS THAN
`MINIMUM‘?
`
`SET NUMBER OF
`UNITS TO
`MINIMUM
`
`SUBTRACT THE NUMBER
`OF DUPLICATE UNITS IN
`USER LIST FROM THE
`NUMBER OF UNITS
`REQUESTED
`/
`172
`
`MULTIPLY # OF
`LICENSE UNITS
`REQUESTED BY
`RESOURCE
`CAPACITY
`\
`166
`
`181
`/
`SET
`REQUESTED
`RECORD TO
`NEXT RECORD
`
`NO
`
`IS THERE
`ANOTHER RECORD IN
`LICENSE DATABASE
`FOR REQUESTED
`PRODUCT?
`
`YES
`
`IS LICENSE
`A FAILSAFE
`LICENSE?
`
`180
`
`178
`
`174
`
`IS # OF UNITS
`REQUESTED PLUS #
`OF UNITS IN USE BY USERS
`IN LIST FOR THE REQUESTED
`PRODUCT 5 AVAIL. # OF
`UNITS IN DATABASE‘?
`
`ADD REQUESTOR
`TO USER LIST
`
`176
`
`IPR2017-01291
`Ubisoft EX1009 Page 10
`
`

`

`US. Patent
`
`Sep. 23, 1997
`
`Sheet 10 of 15
`
`5,671,412
`
`182
`\
`
`188
`
`LOCATE LICENSE
`SERVER OR FILE
`
`186
`
`194\
`
`SEND REQUEST TO SERvER
`WITH PRODUCT NAME,
`VERSION; UNITS REQUESTED;
`ENVIRONMENTAL RESouRcE
`CAPACITY
`
`I
`
`RECEIVE STATUS
`MESSAGE FROM
`SERVER
`
`IMPLEMENT
`DIAGNOSTIC
`PROCESS
`
`192
`
`198
`
`LICENSE
`ACCESS GRANTED
`BY SERVER?
`
`SET LICENSE
`REQUEST STATUS
`TO "GRANTED"
`
`204\ SET LICENSE
`REQUEST STATUS
`TO "DENIED"
`
`figure 10
`
`IPR2017-01291
`Ubisoft EX1009 Page 11
`
`

`

`US. Patent
`
`Sep. 23, 1997
`
`Sheet 11 of 15
`
`5,671,412
`
`I
`
`LOCATE LICENSE
`SERVER OR FILE
`
`192'
`
`182'
`
`188'
`
`206
`
`IS THERE
`A RECORD IN LICENSE
`DATABASE I=QR REQUESTED
`PRODUCT?
`
`IMPLEMENT
`DIAGNQSTIC
`PROCESS
`
`190
`
`SEND REQUEST TO SERVER WITH
`PRODUCT NAME, vERSIoN; UNITS ,194'
`REQUESTED; ENVIRONMENTAL
`RESOURCE CAPACITY
`
`196.
`RECEIVE STATUS
`MESSAGE FROM /
`SERVER
`
`200'
`
`198'
`
`LICENSE
`ACCESS GRANTED
`BY SERVER?
`
`YES SET STATUS
`TO
`"GRANTED"
`
`210
`/
`SET REQUESTED
`RECQRD TO NEXT
`RECORD
`
`YES
`
`IS THERE
`ANQTHER RECORD IN
`LICENSE DATABASE FOR
`- EQUESTED PRODUCT’?
`
`I
`202
`
`208
`
`SET LICENSE
`REQUEST
`_STATUS TO
`DENIED EUT
`OKAY
`/
`214
`
`ARE ANY 0
`THE LICENSES FDR
`THE REQUESTED
`PRQDUCT FAIL SAFE
`LICENSES?
`
`: ;218
`
`Y
`
`E
`STATUS To
`"DENIED"
`
`2\04'
`
`IPR2017-01291
`Ubisoft EX1009 Page 12
`
`

`

`US. Patent
`
`Sep. 23, 1997
`
`Sheet 12 of 15
`
`5,671,412
`
`186,186’
`
`220
`
`DID USER
`SET ENVIRONMENT
`VARIABLE FOR
`SERVER OR FILE
`ADDRESS?
`
`224
`/
`222
`YES RETURN LICENSE
`ADDRESS OF
`ENVIRONMENT
`VARIABLE
`
`RETURN
`DEFAULT
`LICENSE
`ADDREss
`
`IS A LICENSE
`FINDER NODE 0R
`BACKUP FINDER NODE
`AVAILABLE?
`
`226
`,
`
`SEND USER NAME,
`HOST NAME, DISPLAY
`NAME, VENDOR NAME,
`AND PRODUCT NAME
`TO LICENSE FINDER AT
`FINDER NODE
`
`228
`
`READ LICENSE
`ADDRESS AND
`RETURN
`
`230
`
`[Figure 12
`
`IPR2017-01291
`Ubisoft EX1009 Page 13
`
`

`

`Sep. 23, 1997
`
`US. Patent
`236 \
`
`Sheet 13 of 15
`
`5,671,412
`
`238
`
`READ
`CONFIGURATION
`FILE
`
`240
`
`GET NEXT
`CLIENT
`REQUEST
`
`242
`
`' LOOK UP ADDRESS
`BASED ON
`USER/HOST/
`DISPLAYNENDOR/
`PRODUCT
`
`244
`
`RETURN ADDRESS
`TO CLIENT
`
`246
`
`{Figure 13
`
`IPR2017-01291
`Ubisoft EX1009 Page 14
`
`

`

`US. Patent
`
`Sep. 23, 1997
`
`Sheet 14 of 15
`
`5,671,412
`
`190, 190'
`
`250
`
`ATTEMPT LICENSE
`CHECK OUT FOR
`DESIGNATED PRODUCT
`
`254
`
`YES
`
`252
`
`256
`/
`OUTPUT "OK"
`AND EXIT
`
`EXAMINE NEXT LICENSE
`RECORD FOR
`DESIGNATED PRODUCT
`
`260
`
`DONE WITH
`LICENSES FOR DESIGNATED
`PROGRAM?
`
`258
`
`/264
`
`266
`
`OUTPUT A DESCRIPTION
`OF LICENSE FOR
`EXAMINED RECORD
`I
`ATTEMPT CHECK OUT
`FOR DESIGNATED
`PRODUCT
`I
`OUTPUT STATUS
`
`?gure 14
`
`270
`
`272
`
`TATUS = "CAN
`CON NECT"?
`
`YES
`
`USER
`WISHES TO RUN
`CONNECTION
`DIAGNOSTICS?
`YES
`
`IMPLEMENT
`CONNECTION
`DIAGNOSTICS
`
`274
`
`IPR2017-01291
`Ubisoft EX1009 Page 15
`
`

`

`US. Patent
`
`Sep. 23, 1997
`
`Sheet 15 of 15
`
`5,671,412
`
`276
`
`274
`A/
`
`288
`
`286
`
`PAST END
`OF ADDRESS
`RANGE?
`
`284
`
`INCREMENT
`NETWORK
`ADDRESS
`
`————>
`
`2
`START AT FIRST
`NETwoRK ADDRESS / 7 8
`ON SERVER NODE
`
`_l___
`
`ATTEMPT
`CONNECTION AT
`THIS ADDRESS
`
`280
`
`282
`
`OUTPUT THAT
`UNKNOWN
`294\ PROCESS IS AT
`THIS ADDRESS
`
`SEND MESSAGE
`TO DETERMINE IF /290
`CORRECT
`LICENSE SERVER
`
`RESPONSE?
`
`292
`
`OUTPUT THAT
`WRONG SERVER IS AT
`THIS ADDRESS
`
`CORRECT
`LICENSE
`SERVER?
`
`296
`
`figure 15
`
`OUTPUT THE
`coRREcT ADDRESS
`FoR THE SERVER
`
`/300
`
`302
`
`IPR2017-01291
`Ubisoft EX1009 Page 16
`
`

`

`1
`LICENSE MANAGEMENT SYSTEM FOR
`SOFTWARE APPLICATIONS
`BACKGROUND OF THE INVENTION
`The present invention relates generally to a license man
`agement system suitable for licensing and managing the
`usage of software products.
`Software piracy has long been a problem that has plagued
`software developers. The unauthorized copying of software
`products by users often causes signi?cant losses of sales for
`software developers. Accordingly, a variety of protection
`schemes have been developed to protect software from
`unauthorized copying and which also allow a legitimate user
`to operate the software.
`A popular approach to protect software is to provide
`licenses to end users rather than selling the software directly
`to those users. A user is licensed by the software vendor to
`use the software under certain conditions that prevent'unlim
`ited use and/or copying of the software. Software vendors
`use different methods or “license policies” to license soft
`ware. Commonly used license policies include “node
`locked” licenses, “?oating” or “concurrent usage” licenses,
`“site” licenses, and “metered” licenses, each of which uti
`lizes a di?erent way of determining when or where a user
`can use a software program. The “node-locked” license
`allows a program to be used only on a speci?c computer
`node in a network (or by a speci?c user). One method of
`assigning a unique identi?er to a computer system is to use
`hardware means, such as a hardware key or other methods
`that are Well known. The “?oating” or “concurrent usage”
`license allows only a predetermined number of copies of the
`software to run simultaneously on the network, regardless of
`the node on which the software is running. The “site” license
`allows the licensed software to be used anywhere within a
`licensed company or other de?ned area or organization.
`Finally, the “metered” license allows a predetermined num
`ber of activations or uses of the program. or a predetermined
`amount of time which the program can be run on a central
`processing unit (CPU) of a computer.
`Software vendors can provide other features to a software
`license policy. For example, the level of enforcement of the
`license can vary in different licenses. A software vendor can
`provide a high level of enforcement, which might never
`allow the program to be used if the license is violated. A low
`level of enforcement can also be provided by the software
`vendor, so that, for example, a program can still be used
`when the license is violated and a warning is issued to the
`user.
`Many software vendors use a license management system
`to enforce a software policy. Such a system typically
`includes a computer network and a license server or “license
`manager” that is often provided at a server node or similar
`host location on the network which all computer nodes on
`the network can access. The license manager can receive
`requests from computer nodes for speci?c licenses and send
`out answers to those requests to the speci?c nodes. The
`license manager can keep track of all the various programs
`licenses that have been “checked out” by client computer
`systems and can determine when a request would violate a
`license. For example, the license manager can check the
`node identi?cation of a client computer that requests a
`license for a node-locked program. Or, the license manager
`can keep track of how many programs or licenses are being
`used at once under a concurrent use license, or how long a
`program has been used under a metered license.
`One problem that has been seen in conventional license
`management systems concerns the licensing of “packages”
`
`15
`
`20
`
`25
`
`30
`
`35
`
`45
`
`55
`
`65
`
`5,671,412
`
`2
`or “suites”. A package includes several component programs
`and license information for each component program. Suites
`are a type of package in which a combination of two or more
`software programs that were originally sold separately but
`have since been combined and sold as a single package for
`marketing purposes. For example, Microsoft O?ice® sold
`by Microsoft Corporation includes three component pro
`grams that were originally sold separately: Microsoft
`Word®, Microsoft Excel®, and Microsoft Power Point®.
`Using current license managers, no package license for the
`combined products is available to allow the suite to operate
`under the license manager. Also, current license managers
`do not have the capability to allow the degree of interaction
`of licenses necessary to implement such a package license.
`For example, the use of one component program of the suite
`should tie up the use of the other component programs in the
`suite for a single license available for the package. Thus,
`with a single package license, one user could not operate one
`program in the package while another user operated another
`program in the same package. Prior art license managers are
`not capable of delegating program usage for this type of
`program organization.
`Another problem that has been encountered with existing
`license management systems is the ability of a client com
`puter node to locate a license server to retrieve a license for
`a designated program. The problems of ?nding a server on
`a network are made more di?icult in a license managed
`network, since license management servers cannot be freely
`moved due to the nature and security of licenses. For the
`same reason, it is not desirable that license servers be
`duplicated on a network to assist in locating a server. The
`variety of existing methods for locating a license server each
`have their own problems. Some systems use a license ?le
`which contains the network address location of the license
`server. However, this license ?le system requires increased
`administration overhead at large sites when new nodes are
`added to the network. Other systems use a predetermined
`server location; however, this type of system can cause
`problems when two software vendors choose the same
`network address for the license server, resulting in a con?ict,
`or when the license server node is changed. Still other
`systems utilize a network broadcast to locate a license
`server. However, in large networks, such broadcasts are
`generally unacceptable due to a number of problems created
`by the broadcasts, such as excessive network tra?ic. Finally,
`still other systems utilize a general purpose location broker.
`However, such location brokers typically utilize network
`broadcasts, which are unacceptable in large networks, as
`Well as requiring large administrative overhead.
`Still another problem in prior license management sys
`tems involves a lack of ?exibility in distributing licenses to
`requesters. In many situations, a requester may not have
`access to a program due to a strict license policy but may
`have special need for such access due to emergencies or
`other needs. Or, a failure in the license management system
`may prevent a requester from using a program in prior
`systems, even when the requester has a special or emergency
`need for use of a program. Also, the platform of the client
`computer system may play a role in determining the amount
`of required licenses for a program used on that platform.
`Since some platforms can process data much quicker than
`other platforms, the faster platforms can be required to
`consume more licenses than a slower platform. The ability
`to distribute licenses when taking into account these factors
`does not exist in prior license management systems.
`Yet another problem found in existing license manage
`ment systems is that there is no ability to diagnose problems
`
`IPR2017-01291
`Ubisoft EX1009 Page 17
`
`

`

`3
`in the system. Since a license management system is fre
`quently used as a type of security system for the licensed
`software. many aspects of the operation of the system are
`poorly documented to prevent unauthorized use of licenses.
`However. a side e?’ect of this poor documentation is that
`failures in the system are di?icult to diagnose. If even a
`simple. minor function of the license management system
`fails. a network administrator has few tools to try to remedy
`the failures.
`
`SUMlMARY OF THE INVENTION
`
`An improved software license management system in
`accordance with the present invention is disclosed. Alicense
`server of the present invention provides package and pro
`gram licenses and allows several license modi?ers to be
`stored in license records to provide a licensor with a variety
`of options and ?exibility. A server address ?nder and diag
`nostic function mitigate common license server network
`problems.
`The license management system includes a license server
`that initializes a license database by ?rst receiving one or
`more package license descriptions. each describing a pack
`age license associated with a software product including
`component license descriptions describing licenses for com
`ponent products in the package. License items are then
`received for software products. where a license item can be
`a package license item or a standard license item. If the
`license item is a standard license item. a standard license
`record is entered in the license database. If the license item
`is a package license item that matches one of the package
`license descriptions. a component license record is created in
`the license database for each component license description
`in the matched package license description.
`Each of the license records includes a number of licenses
`available for the software product associated with the license
`record. The licenses are able to be checked out by a client
`requesting a license for the associated software product.
`Additionally. the package description can include a suite
`indicator for indicating when a package is a suite. When a
`package is a suite. a suite license record for the suite license
`description is also created in the license database. The
`component license record preferably includes a link to the
`suite license record Preferably. the component license
`record and the suite license record include a number of
`license units indicating a number of times that a license may
`be checked out from the license database by a client. When
`a license provided by the component license record is
`checked out. a license provided by the suite license record
`linked to said component license record is also automatically
`checked out. Thus. when a suite license is checked out by a
`client. no other client may use a component license linked
`with the suite license record unless another suite license is
`checked out.
`Each component license description preferably includes a
`name and a version number of the associated software
`product. where the software product is a software program.
`Alternatively. the component software product can be a
`package. so that packages can be components of higher level
`packages. The component license description also includes
`a license multiplier for determining how many component
`licenses may be checked out by a client.
`The license records stored on the license database can
`each store a number of modi?ers. An overdraft quantity
`indicates a number of licenses that can be provided to clients
`over the authorized amount of licenses stored in the license
`records. A fail safe indicator indicates that licenses can be
`
`20
`
`25
`
`35
`
`45
`
`55
`
`65
`
`5,671,412
`
`4
`provided over the amount of licenses stored in the license
`record to clients when a failure occurs in the license man
`agement system. A minimum quantity indicates a minimum
`amount of licenses required to be checked out to allow the
`designated program to be used by the client. A capacity
`indicator indicates that the license record provides a required
`number of licenses to a requesting client dependent on an
`environmental resource capacity of the requesting client
`computer system. The environmental resource capacity can
`be determined by processing speed of the client platform or
`other client environment characteristics.
`The license server provides licenses from the license
`database to client computer systems to allow the client
`computer systems to use licensed software products. A
`request is received from a client by the server. The request
`can be for a component license for a component product in
`a package. A package (suite) license is granted to the client
`when the client is allowed to receive the package license
`according to a license policy. The package license allows the
`client to use the requested component product. The compo
`nent license and package license are denied to the client
`when the client is not allowed to receive the component
`license or the package license according to the license
`policy. The component license is not denied when the
`component license and the package license are fail safe
`licenses. When a package license is granted. di?’erent clients
`are prevented from receiving a license for a component
`product included in the package. Preferably. when the pack
`age license is granted to a client, the client is added to a user
`list for the requested product. To determine if a client is
`granted a license for the package, the server checks if the
`number of licenses requested plus licenses in use by clients
`in the user list is less than or equal to the available number
`of licenses for the requested product.
`A client computer system requesting a license for a
`designated software product locates a license server on a
`license management network This can be accomplished by
`sending a request to a ?nder located on the network to
`provide a license address for the license server. A license
`request is then sent by the client to the located license server.
`The request preferably includes the environmental resource
`capacity of the computer system that determines how many
`licenses are required by the computer system to use the
`designated product A status message is received from the
`license server that provides information about whether the
`requested license has been granted or denied. A license
`policy associated with the designated product may be
`enforced based on the information in the status message. The
`license policy may not allow the designated program to be
`used when the requested license has not been granted, or the
`license policy may provide a warning on the computer
`system and allow the designated product to be used. The
`program instructions for locating, sending and receiving can
`also be implemented as part of a diagnostic process on the
`computer system. The diagnostic process preferably can
`check addresses on the network to ?nd the license server
`when the license server cannot normally be located.
`The ?nder is used for locating the license server on the
`network implementing a license management system. The
`?nder receives a request from a client computer system for
`a license address of the license server. Alicense address for
`the license server is looked up in a table. where the license
`address is determined by client information in the request
`Finally, the license address of the license server is provided
`to the client computer system. The client information can
`include parameters such as a name of a user on said client
`computer system. a host name of the client computer system.
`
`IPR2017-01291
`Ubisoft EX1009 Page 18
`
`

`

`5
`a terminal name of said client computer system, and/or
`vendor name of the client software.
`The present invention advantageously provides an
`improved software license management system including a
`license server that provides program licenses and package
`licenses. allowing program licenses to be collected and
`organized by a licensor in a variety of ways. In addition,
`suite licenses prevent more than a single user from using any
`component of the suite. The license modi?ers, including
`overdraft. minimum, fail safe, and capacity, allow the licen
`sor to provide a variety of options and ?exibility to clients.
`The server address ?nder and diagnostic function of the
`present invention allow common license server network
`problems to be e?iciently circumvented or alleviated
`These and other advantages of the present invention will
`become apparent to those skilled in the art after reading the
`following descriptions and studying the various ?gures of
`the drawings.
`BRlEF DESCRIPTION OF THE DRAWINGS
`The invention may best be understood by reference to the
`following description taken in conjunction with the accom
`panying drawings in which:
`FIG. 1 is a schematic diagram of a license management
`system incorporating a license server and client computer
`systems;
`FIG. 2a is a schematic diagram of the license server, a
`client computer system, and an internal license database;
`FIG. 2b is a diagrammatic illustration of a license certi?
`cate received by the license server;
`FIG. 3 is a ?ow diagram illustrating a method of imple
`menting the license server of FIG. 2;
`FIG. 4 is a ?ow diagram illustrating a method of initial
`izing the license database (step 54 of FIG. 3);
`’
`FIG. Sis a ?ow diagram illustrating a method of creating
`and entering a license record in the license database for a
`component in a package (step 80 of FIG. 4);
`FIG. 6 is a ?ow diagram illustrating a method of creating
`and entering a license record in the license database for a
`suite (step 78 of FIG. 4);
`FIG. 7 is a ?ow diagram illustrating a method of entering
`license data into a license record and entering the license
`record in the license database (step 74 of FIG. 4);
`FIG. 8 is a ?ow diagram illustrating a method of process
`ing a license request from a client (step 58 of FIG. 3);
`FIG. 9 is a ?ow diagram illustrating a method of deter
`mining if a license is available for a requested product (step
`144 of FIG. 8);
`FIG. 10 is a ?ow diagram illustrating a method of the
`present invention for requesting a license from a client
`computer system;
`FIG. 11 is a ?ow diagram illustrating an alternate method
`of the present invention for requesting a license from a client
`computer system;
`,
`FIG. 12 is a flow diagram illustrating a method of locating
`a license server using a ?nder of the present invention (step
`186 of FIG. 10);
`FIG. 13 is a ?ow diagram illustrating a method of
`implementing the license ?nder of the present invention;
`FIG. 14 is a ?ow diagram illustrating a method of
`implementing a diagnostic process of the present invention
`(step 190 of FIG. 10); and
`FIG. 15 is a ?ow diagram illustrating a method of
`implementing the connection diagnostics of the diagnostic
`process of FIG. 14.
`
`30
`
`35
`
`45
`
`55
`
`65
`
`5,671,412
`
`15
`
`25
`
`6
`DETAILED DESCRIPTION OF THE
`INVENTION
`The present invention relates to software license manage
`ment systems. Referring initially to FIG. 1, a license man
`agement system 10 suitable for incorporating the present
`invention will be described. As seen therein, individual
`client computer systems 12 are interconnected by network
`connections 14. Each computer system 12 serves as a node
`in the network having its own network address so that other
`computer systems 12 can send and receive data from any
`other computer system 12 in the network system 10. As is
`well known to those skilled in the art, a client computer
`system 12 typically includes a microprocessor and several
`components coupled to the microprocessor, such as memory
`(RAM, ROM), input components such as a keyboard, input
`tablet, etc., and output components such as a screen display,
`printer, etc.
`Also included in the network system 10 of the present
`invention is a license server 16. which is connected in
`network system 10 like computer systems 12. License server
`16 may typically include hardware components for imple
`menting license management processes, such as a
`microprocessor(s) or central processing unit (CPU) and
`associated components coupled to the microprocessor by a
`main bus, such as random access memory (RAM), read-only
`memory (ROM), input/output components, storage devices,
`etc., as is well known to those sldlled in the art. License
`server either includes or has access to a database imple
`mented on in a storage medium such as memory, disk space,
`or the like.
`The license server 16 serves as a “license manager” for
`the computer systems 12 and for other servers (not shown)
`that may be included in system 10. License server 16 stores
`licenses for software programs available to computer sys
`tems 12 and assigns or “checks out” these licenses to client
`computer systems 12 that request a license. Herein, the term
`“license” is used to designate permission or authorization for
`a client computer system to use or “implemen ” (run) a
`single designated software product, such as a program, or to
`view data incorporated in the software product. The vendor,
`supplier, or manager (“licensor”) of the software typically
`provides the licenses for users on the network. For example,
`if a user Wishes to operate a designated computer program
`on a particular computer system 12 (i.e., run or execute the
`program on the central processing unit (CPU) of that com
`puter system), then the program (or a license program)
`instructs the computer system to send out a license request
`’ over license management system 10 to the license server 16.
`The license server 16 receives the license request and
`50
`determines if the requesting client computer system is
`allowed check out or be assigned a license for that program,
`i.e., allowed to run or use the program. Preferably, a license
`is checked out to a client computer system only if the
`requesting computer system is allowed to have the requested
`license according to a predetermined

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket