throbber
I
`Umted States Patent
`
`[19]
`
`[11] Patent Number:
`
`4 937 863
`9
`9
`
`
`Robert et al.
`[45] Date of Patent:
`Jun. 26, 1990
`
`[54] SOFTWARE LICENSING MANAGEMENT
`7
`SYSTEM
`[75]
`Inventors: Gregory Robert’ Nashua, NH_;
`David Chase Wellesley; Ronald
`Schaefer, Ac,ton, both of Mass.
`.
`.
`.
`.
`.
`I731 Awsnea DIM Eu-w-mt Corvorat-on»
`Maynard’ Mass‘
`- [21] Appl. No.: 164,944
`[22] Filed:
`Mm,_ 7, 1988
`'
`
`1111- C1-5 ----
`------- HML 9/09
`[51]
`US. Cl. .............n
`.n
`' [58] Field of Search ................................ 380/4, 23, 25
`[56]
`Refgrgnceg cited
`US. PATENT DOCUMENTS
`
`Fascenda ..............................
`380/4
`4,740,890 4/1988 William .......
`
`380/4
`4,791,565 12/1988 Dunham et al.
`1/1989 Wiedeiner ............................... 380/4
`4,796,181
`
`Primary Examiner-—Thomas H. Tarcza
`Assistant Examiner——David Cain
`Attorney, Agent, or Fzrm—Fish & Richardson
`TR Q
`1
`[5711
`ABS C; h
`1 d
`A '
`t
`t
`'
`'
`'
`mZ°gi‘$§£??§§§£'§’?h;’§§?mwjn; w‘L‘§J£e§i§a;Z“3‘FZ
`licensed program is within the scope of the license. The
`license management system maintains a license unit
`value for each licensed program and a pointer to a table
`identifying an allocation unit value associated with each
`use of the licensed program. In response to a request to
`use a licensed program’ the license management
`respond with an indication as to whether the license
`unit value exceeds the allocation unit value associated
`vvith the use. ‘Upon receiving the response, the opera-
`tion of the licensed program depends upon policies
`licenson
`
`13 Claims, 8 Drawing Sheets
`
`
`
`14
`
`LICENSE)
`PROGRAM
`
`RELEASE
`LICENSE
`LICENSING
`POLICY
`MODULE
`
`
`
`LICENSE
`MANAGEMENT
`FACILITY (UTILITY)
`
`LICENSE
`DATA
`BASE
`
`Petitioner Apple Inc. - Ex. 1015, p. 1
`
`Petitioner Apple Inc. - Ex. 1015, p. 1
`
`

`
`U.S. Patent
`
`Jun. 26, 1990
`
`Sheet 1 of 3
`
`4,937,863
`
`LICENSED
`PROGRAM
`
`
`
`
`
` LICENSING
`POLICY
`MODULE
`
`
`
`
`
`SYSTEM
`HARDWARE
`MODEL
`
` LICENSE
`DATA
`BASE
`
` LICENSE
`MANAGEMENT
`FACILITY (UTILITY)
`
`FIG.
`
`I
`
`Petitioner Apple Inc. - Ex. 1015, p. 2
`
`Petitioner Apple Inc. - Ex. 1015, p. 2
`
`

`
`US. Patent
`
`Jun_.26, 1990
`
`Sheet 2 of 8
`
`4,937,863
`
`ENTRY
`20(J.)
`
`LICENSE
`DATA
`
`BASE 1
`
`FIG. 2
`
`Petitioner Apple Inc. - Ex. 1015, p. 3
`
`Petitioner Apple Inc. - Ex. 1015, p. 3
`
`

`
`U.S. Patent
`
`Jun. 26, 1990
`
`Sheet 3 of 8
`
`4,937,863
`
`42
`
`43(1)
`
`43(M)
`
`_ LICENSE UNIT TABLE L10
`
`FIG. 3
`
`Petitioner Apple Inc. - Ex. 1015, p. 4
`
`Petitioner Apple Inc. - Ex. 1015, p. 4
`
`

`
`US. Patent
`
`Jun. 26, 1990
`
`Sheet 4 of 3
`
`4,937,863
`
`FWCi.41l\-1
`GRANT LICENSE
`
`50USER ISSUES GRANT LICENSE REQUEST TO REQUEST
`USAGE OF LICENSED PROGRAM 1A
`I
`ELICENSING POLICY MODULE TRANFERS GRANT LICENSE
`REQUEST TO OPERATING SYSTEM
`'
`
`I
`
`52OPERATING SYSTEM TRANSFERS GRANT LICENSE REQUEST
`AND SMM VALUE TO LICENSE MANAGEMENT FACILITY
`
`I
`
`54 LICENSE MANAGEMENT FACILITY RETRIEVES ENTRY FROM
`LICENSE DATA BASE ASSOCIATED WITH LICENSED PROGRAM
`
`\
`
`I
`
`55 DOES AVAILABITY TABLE FIELD 26 OF ENTRY 70 RETRIEVED NO
`FROM LICENSING DATA BASE HAVE A NON-ZERO VALUE
`
`YES
`
`56 RETRIEVE CONTENTS OF FIELD OF LICENSE USAGE
`ALLOCATION UNIT VA
`TABLE A3 IDENTIFIED BY
`AVAILABILITY TABLE FIELD 26 ASSOCIATED WITH
`SYSTEM 16 USED BY
`
`NUMBER FIELD 25 EXCEED VALUE YE
`M LICENSE USAGE ALLOCATION
`
`
`
`
`
`LICENSEMANAGEMENTFACILITY1O
`
`60 LICENSE MANAGEMENT FACILITY TRANSMITS REFUSE
`RESPONSE TO OPERATING SYSTEM 13
`<:>——~———»+
`FIG
`SIOPERATING SYSTEM 13 TRANSMITS REFUSE RESPONSE TO
`LICENSING POLICY MODULE 15
`4A-3
`
`
`
`A
`
`9
`
`FIG.
`4A‘3
`
`Petitioner Apple Inc. - Ex. 1015, p. 5
`
`Petitioner Apple Inc. - Ex. 1015, p. 5
`
`

`
`U.S. Patent
`
`Jun. 26,1990
`
`Sheet 5 of8
`
`4,937,863
`
`FIG. 4A-2
`
`FlG.4A'I
`
`62 LICENSING POLICY MODULE 15 RECEIVES REFUSE
`RESPONSE FROM OPERATING SYSTEM 13
`
`LICENSED PROGRAM COVERED BY A GROUP
`63 IS‘
`LI
`CENSE?
`
`I 1
`
`Y
`
`64ADJUST CONTENTS OF GROU
`17 TO REFLECT USAGE OF
`UNDER GROUP LICENSE
`
`P LICENSE TABLES
`LICENSED PROGRAM 14
`
`
`
`I
`GSPERMIT USAGE OF LICENSED PROGRAM 1A
`
`5518 USAGE OF LICENSED PROGRAM 1A PERMITTED
`BY LICENSOR’S OTHER LICENSING POLICIES?
`I
`
`N0
`
`57PERMIT USAGE OF LICENSED PROGRAM BY USER
`
`YES
`
`TOTERMINATE USAGE OF LICENSED PROGRAM 14
`
`Petitioner Apple Inc. - Ex. 1015, p. 6
`
`
`
`
`
`LICENSINGPOLICYMODULE15
`
`Petitioner Apple Inc. - Ex. 1015, p. 6
`
`

`
`U.S. Patent
`
`Jun. 26, 1990
`
`Sheet 6 of 8
`
`4,937,863
`
`FIG. 4A-3
`
`B
`
`TIDOES ACTIVITY TABLE FIELD 27 OF ENTRY 20
`RETRIEVED FROM LICENSING DATA BASE ll HAVE
`A NON—ZERO VALUE?
`
`N0
`
`
`
`YES
`
`I
`
`72RETRIEVE CONTENTS OF FIELD OF LICENSE USAGE
`ALLOCATION UNIT VALUE TABLE 43 IDENTIFIED
`BY ACTIVITY TABLE FIELD 27 ASSOCIATED WITH
`SYSTEM 16 USED BY USER
`
`73DOES VALUE IN LICENSE UNIT NUMBER FIELD 25
`EXCEED VALUE IN RETRIEVED FIFID FROM
`.
`LICENSE USAGE ALLOCATION UNIT VALUE TABLE A3?
`
`IN
`
`O
`
`E IN
`EITHER LICENSOR
`74IS SYSTEM DATE AFTER DAT
`TERMINATION DATE FIELD 31 OR LICENSE
`TERMINATION DATE FIELD 32 RETRIEVED FROM
`ENTRY 20 RETRIEVED FROM LICENSING DATA
`RASE ll?
`
`N0
`
`<i%:) FIG. A'1
`
`
` YES
`
`7SDECREMENT CONTENTS OF LICENSE UNIT NUMBER
`FIELD 25 BY FUNCTION OF CONTENTS OF FIELDS
`OF LICENSE USAGE ALLOCATION UNIT VALUE
`TABLE 43 RETRIEVED IN STEPS 56 AND 72
`
`I
`
`75TRANSMIT POSITIVE RESPONSE TO OPERATING
`SYSTEM 13
`-
`
`FlG.4A+4
`
`Petitioner Apple Inc. - Ex. 1015, p. 7
`
`
`
`
`
`LICENSEMANAGEMENTFACILITY10
`
`Petitioner Apple Inc. - Ex. 1015, p. 7
`
`

`
`U.S. Patent
`
`Jun. 26, 1990
`
`Sheet 7 of 8
`
`4,937,863
`
`FIG. 4A-4
`
`F|G.4A—3
`
`77 OPERATING SYSTEM 13 TRANSMITS POSITIVE
`RESPONSE TO LICENSING POLICY MODULE 15
`I
`80 LICENSING POLICY MODULE 15 PERMITS USAGE
`OF LICENSED PROGRAM 14 BY USER
`
`F|G.4B-1
`RELEASE LICENSE
`
`90 USER ISSUES RELEASE LICENSE REQUEST TO REQUEST
`'
`RELEASE OF LICENSED PROGRAM 14
`
`9!II
`I":lV-«CD
`
`NSI
`]><”)GNTI E O
`NSO
`(3
`
`N6 POLICY MODULE 15 DETERMINES WHETHER_________MQ
`F LICENSED PROGRAM 1A WAS PURSUANT TO
`R’S OTHER LICENSING POLICIES
`
`E
`
`92END'
`
`MODULE 15 DETERMINES WHETHER
`PROGRAM 1A WAS PURSUANT
`
`YES
`
`LICY MODULE ADJUSTS CONTENTS OF
`
`
`
`E
`
`LE TO REFLECT RfLEASE OF
`
`
`95END
`
`95LICENSIN
`LICENSE
`
`G POLICY MODULE 15 TRANSFERS RELEASE
`REQUEST TO OPERATING SYSTEM 13
`l
`
`97OPERATING SYSTEM 13 TRANSFERS R
`REQUEST TO LICENSE MANAGEMENT F
`
`Petitioner Apple Inc. - Ex. 1015, p. 8
`
`Petitioner Apple Inc. - Ex. 1015, p. 8
`
`

`
`U.S. Patent
`
`'1 Jun. 26, 1990
`
`Sheet 8 of8
`
`4,937,863
`
`FIG. 4B-2
`
`FIG.4B‘I
`
`
`
`
`
`LICENSEMANAGEMENTFACILITY10
`
`I00 LICENSE MANAGEMENT FACILITY RETRIEVES
`ENTRY 20 FROM LICENSE DATA BASE ASSOCIATED
`WITH LICENSED PROGRAM 14
`
`I
`lOlDOES AVAILABILITY TABLE FIELD 26 OF ENTRY 20
`RETRIEVED FROM LICENSING DATA BASE ll HAVE A
`NON-ZERO VALUE?
`
`No
`
`IOZRETRIEVE CONTENTS OF
`UNIT VALUE TABLE ID
`AVAILABILITY TABLE
`
`EEBE USAGE ALLOCATION
`BY CONTENTS OF
`
`
`
`7 OF ENTRY 2O RETRIEVED
`II HAVE A NON-ZERO VALUE?
`
`NC
`
`I04 RETRIEVE CONTENTS OF LI ENSE USAGE ALLOCATION
`ID
`UNIT VALUE TABLE
`ENTIFIED BY CONTENTS OF
`ACTIVITY TABLE FIEL
`
`
`
`IT NUMBER FIELD 25
`IOSINCREMENT CONTENTS OF LICENSE UN
`E
`USAGE ALLOCATION
`BY FUNCTION OF FIELDS OF LICENS
`UNIT VALUE TABLE RETRIEVED IN STEPS lO2 AND 104
`
`EIVD
`
`Petitioner Apple Inc. - Ex. 1015, p. 9
`
`Petitioner Apple Inc. - Ex. 1015, p. 9
`
`

`
`1
`
`SOFTWARE LICENSING MANAGEMENT
`SYSTEM
`
`4,937,863
`
`2
`fied processors or by the numbers of users permitted by
`the license.
`
`BACKGROUND OF THE INVENTION
`
`5
`
`1. Field of the Invention
`The invention relates generally to the field of digital
`data processing systems, and more specifically to a
`system for managing licensing for, and usage of, the
`various software programs which may be processed by
`the systems to ensure that the software programs are
`used within the terms of the software licenses.
`2. Description of the Prior Art
`A digital data processing system includes three basic
`elements, namely, a processor element, a memory ele-
`ment and an input/output element. The memory ele-
`ment stores information in addressable storage loca-
`tions. This information includes data and instructions
`for processing the data. The processor element fetches
`information from the memory element, interprets the
`information as either an instruction or data, processes
`the data in accordance with the instructions, and returns
`the processed data to the memory element for storage
`therein. The input/output element, under control of the
`processor element, also communicates with the memory
`element to transfer information, including instructions
`and data to be processed, to the memory, and to obtain
`processed data from the memory.
`Typically, an input/output element includes a num-
`ber of diverse types of units, including video display
`terminals, printers, interfaces to the public telecommu-
`nications network, and secondary storage subsystems,
`including disk and tape storage devices. A video display
`terminal permits a user to run programs and input data
`and view processed data. A printer permits a user to
`obtain a processed data on paper. An interface to the
`public telecommunications network permits transfer of
`information_oyer the public telecommunications net-
`work.
`
`l0
`
`15
`
`20
`
`25
`
`30
`
`35
`
`The instructions processed by the processor element 40
`are typically organized into software programs. Re-
`cently, generation and sales of software programs have
`become significant businesses both for companies which
`are primarily vendors of hardware, as well as for com-
`panies which vend software alone. Software is typically 45
`sold under license, that is, vendors transfer copies of
`software to users under a license which governs how
`the users may use the software. Typically, software
`costs are predicated on some belief as to the amount of
`usage which the software program may provide and the 50
`economic benefits, such as cost saving which may oth-
`erwise be incurred, which the software may provide to
`the users. Thus, license fees may be based on the power
`of the processor or the number of processors in the
`system, or the number of individual nodes in a network, 55
`since these factors provide measures of the number of
`users which may use the software at any give time.
`In many cases, however, it may also be desirable, for
`example, to have licenses and license fees more closely
`relate to the actual numbers of users which can use the
`program at any given time or on the actual use to which
`a program may be put. Furthermore, it may be desirable
`to limit the use of the program to specified time periods.
`A problem arises particularly in digital data processing
`systems which have multiple users and/or multiple
`processors, namely, managing use of licensed software
`to ensure that the use is within the terms of the license,
`that is, to ensure that the software is only used on identi-
`
`65
`
`SUMMARY OF THE INVENTION
`
`The invention provides a new and improved licensing
`management system for managing the use of licensed
`software in a digital data processing system.
`In brief summary, the license management system
`includes a license management facility and a licensing
`policy module that jointly determine whether a licensed
`program may be operated. The license management
`facility maintains a license unit value for each licensed
`program and a pointer to a table identifying a license
`usage allocation unit value associated with usage of the
`licensed program. In response to a request to use a
`licensed program, the license management facility de-
`termines whether the remaining license unit value ex-
`ceeds the license usage allocation unit value associated
`with the use. If the license unit value does not exceed
`the license usage allocation unit value, the license man-
`agement facility permits usage of the licensed program
`and adjusts the license unit value by a function of the
`license usage allocation unit value to reflect the usage.
`On the other hand, if the license unit value associated
`with use of the license program does exceed the license
`usage allocation unit value, the licensing policy module
`determines whether to allow the licensed program to be
`used in response to other licensing policy factors.
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`This invention is pointed out with particularity in the
`appended claims. The above and further advantages of
`this invention may be better understood by referring to
`the following description taken in conjunction with the
`accompanying drawings, in which:
`FIG. 1 is a general block diagram of a new system in
`accordance with the‘ invention;
`FIGS. 2 and 3 are diagrams of data structures useful
`in understanding the detailed operation of the system
`depicted in FIG. 1; and
`FIGS. 4A-1 through 4B-2 are flow diagrams which
`are useful in understanding the detailed operations of
`the system depicted in FIG. 1.
`
`DETAILED DESCRIPTION OF AN
`ILLUSTRATIVE EMBODIMENT
`
`FIG. 1 depicts a general block diagram of a system in
`accordance with the invention for use in connection
`with a digital data processing system which assists in .
`managing software use in accordance with software
`licenses. With reference to FIG. 1, the new system
`includes a license management facility 10 which oper-
`ates in conjunction with a license data base 11 and li-
`cense unit tables 12, and under control of an operating
`system 13 and licensing policy module 15 to control use
`of licensed programs, such as licensed program 14, so
`that the use is in accordance with the terms of the soft-
`ware license which controls the use of the software
`
`program on a system 16 identified by a system market-
`ing model (SMM) code in a digital data processing
`system.
`As is conventional, the digital data processing system
`including the licensing management system may include
`one or more systems 16, each including one or more
`processors, memories and input/output units, intercon-
`nected in a number of ways. For example, the digital
`data processing system may comprise one processor,
`
`Petitioner Apple Inc. - Ex. 1015, p. 10
`
`Petitioner Apple Inc. - Ex. 1015, p. 10
`
`

`
`4,937,863
`
`3
`which may include a central processor unit which con-
`trols the system and one or more auxiliary processors
`which assist the central processor unit. Alternatively,
`the digital data processing system may comprise multi-
`ple processing systems, in which multiple central pro-
`cessor units are tightly coupled, or clustered or net-
`worked systems in which multiple central processor
`units are loosely coupled, generally operating relatively
`autonomously, interacting by means of messages trans-
`mitted over a cluster or network connection. In a
`tightly coupled multiple processing system, for exam-
`ple, it may be desirable to control the number of users
`which may use a particular software program at one
`time. A similar restriction may be obtained in a cluster
`or network environment by controlling the number of
`particular nodes, that is, connections to the communica-
`tions link in the cluster or network over which messages
`are transferred. In addition, since the diverse processors
`which may be included in a digital data processing
`system may have diverse processing speeds and powers,
`represented by differing system marketing model
`(SMM) codes, it may be desirable to include a factor for
`speed and power in determining the number of proces-
`sors on which a program may be used concurrently.
`As will be explained in greater detail below, the li-
`cense data base ll contains a plurality of entries 20
`(described below in connection with FIG. 2) each con-
`taining information relating to the terms of the license
`for a particular licensed program 14. In one embodi-
`ment such information may include a termination date,
`if the license is for a particular time period or expires on
`a particular date, and a number of licensing units if the
`license is limited by usage of the license program. In
`that embodiment, the entry also includes identification
`of a license unit table 40 (described below in connection
`with FIG. 3) in the license unit tables 12 that identifies
`the number of allocation units for usage of the licensed
`program.onJ:he types of systems 16 which may be used
`in the digital data processing system as represented by
`the system marketing model (SMM) codes.
`When a user wishes to use a licensed program 14, a
`GRANT LICENSE request message is generated
`which requests information as to the licensing status of
`the licensed program 14. The GRANT LICENSE re-
`quest message is transmitted to the licensing policy
`module 15, which notifies the operating system of the
`request. The operating system 13, in turn, passes the
`request, along with the system marketing model of the
`specific system 16 being used by the user, to the license
`management facility 10 which determines whether use
`of the program is permitted under the license.
`In response to the receipt of the GRANT LICENSE
`request from the user and the system marketing model
`(SMM) code of the system 16 being used by the user on
`which the licensed program will be processed, the li-
`cense management facility 10 obtains from the license
`data base the entry 20 associated with the licensed pro-
`gram 14 and determines whether the use of the licensed
`program 14 is within the terms of the license as indi-
`cated by the information in the license data base 11 and
`the license unit tables 12.
`In particular, the license management facility 10 re-
`trieves the contents of the entry 20 associated with the
`licensed program. If the entry 20 indicates a termination
`date, the license management facility 10 compares the
`system date, which is maintained by the digital data
`processing system in a conventional manner, with the
`termination date identified in the entry. If the system
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`45
`
`50
`
`55
`
`65
`
`4
`date is after the termination date identified in the entry
`20, the license has expired and the license management
`facility 10 generates a usage disapproved message,
`which it transmits to the operating system 13. On the
`other hand, if the termination date indicated in the entry
`20 is after the system date, the license has not expired
`and the license management facility 10 proceeds to
`determine whether the usage of the licensed program 14
`is permitted under other terms of the license which may
`be embodied in the entry 20.
`In particular, the license management facility 10 then
`determines whether the usage of the licensed program is
`permitted under usage limitations. In that operation, the
`license management facility obtains the number of li-
`cense units remaining, which indicates usage of the
`licensed program 14 not including the usage requested
`by the user, as well the identification of the table 40 in
`license unit tables 12 associated with the licensed pro-
`gram 14. The license management facility 10 then com-
`pares the number of license units which would be allo-
`cated for use of the licensed program 14, which it ob-
`tains from the table 40 identified by entry 20 in the
`license data base 11, and the number of remaining li-
`cense units to determine whether sufficient license units
`remain to permit usage of the licensed program 14.
`If the number of remaining license units indicated by
`entry 20 in the licensed data base 11 exceeds the num-
`ber, from license unit tables 12, of license units which
`would be allocated for use of the licensed program 14,
`the usage of the licensed program is permitted under the
`license. Accordingly, the license management facility
`transmits a usageapproved response to the operating
`system 13. In addition, the license management facility
`10 adjusts the number of remaining license units in entry
`20 by a function of the license units allocated to use of
`the licensed program to reflect the usage.
`On the other hand, if the number of remaining license
`units indicated by entry 20 in the license data base is less
`than the number of license units which would be allo-
`cated for use of the licensed program 14, the usage of
`the licensed program 14 is not permitted by the license.
`In that case, the license management facility 10 trans-
`mits a usage disapproved response to the operating
`system 13. In addition, the license management facility
`10 may also log the usage disapproved response; this
`information may be used by a system operator to deter-
`mine whether usage of the licensed program 14 is such
`as to warrant obtaining an enlarged license.
`Upon receipt of either a usage approved response or
`a usage disapproved response to the GRANT LI-
`CENSE request, the operating system 13 passes the
`response to the licensing policy module 15. If a usage
`approved response is received,
`the licensing policy
`module normally allows usage of the licensed program
`14. If a usage disapproved response is received, the
`licensing policy module determines whether the usage
`of the licensed program may be permitted for other
`reasons. For example, usage of the licensed program 14
`may be permitted under a group license, whose terms
`are embodied in entries in group license tables 17.
`Under a group license, usage may be permitted of any of
`a group of licensed programs. The operations to deter-
`mine to whether usage is permitted may be performed
`in the same manner as described above in connection
`with license management facility 10. In addition, if the
`usage of the licensed program 14 is not permitted under
`a group license, usage may nonetheless be permitted
`under the licensor’s licensing practices, which may be
`
`Petitioner Apple Inc. - Ex. 1015, p. 11
`
`Petitioner Apple Inc. - Ex. 1015, p. 11
`
`

`
`5
`embodied in the licensing policy module 15. If the li-
`censing policy module determines that usage of the
`program should be permitted, notwithstanding a usage
`disapproved response from the license management
`facility 10, because the usage is permitted under a group
`license or the licensor’s licensing practices, the licensing
`policy module 15 permits usage of the licensed pro-
`gram. Otherwise, the licensing policy module does not
`permit usage of the licensed program in response to the
`GRANT LICENSE request.
`charge When a user no longer requires use of a li-
`censed program 14,
`it
`transmits a RELEASE LI-
`CENSE request to the licensing policy module 15. The
`operations performed by the licensing policy module
`depend on the basis for permitting usage of the licensed
`program. If usage was permitted as a result of a group
`license, if the group license is limited by usage, the
`licensing policy module 15, if necessary, adjusts the
`records in the group license tables 17 related to the
`group license to reflect the fact that the licensed pro-
`gram 14 is not being used. If the usage was permitted as
`a result of a group license which is not limited by usage,
`"but instead is limited in duration, or if the usage was
`permitted in response to the licensor’s licensing policies,
`the licensing policy module 15 need do nothing. If the
`licensing policy module 15 maintains a log of usage
`outside the scope of a group or program license, it may
`make an entry in the log of the RELEASE LICENSE
`request.
`_
`Finally, if usage was permitted as a result of the li-
`cense management facility 10 providing an approve
`usage response to the GRANT LICENSE request, the
`licensing policy module 15 transmits the RELEASE
`LICENSE request to the operating system 13. In re-
`sponse,
`the operating system 13 transfers the RE-
`LEASE LICENSE request to the license management
`facility 10, along with an identification of the system 16
`using thelicensed program 14. The license management
`facility 10 then obtains from the license data base the
`identification of the appropriate license usage allocation
`unit value table in license unit tables 12, and determines
`the number of allocation units associated with this use
`of the licensed program 14 based on the identified allo-
`cation table and the processor. The license management
`facility 10 then adjusts the number of license units -for
`the licensed program 14 in the license data base 11 to
`reflect the release.
`
`It will be appreciated by those skilled in the art that,
`the license management facility 10 may, in response to a
`GRANT LICENSE request, instead of deducting allo-
`cation units from the entries in the license data base 11
`associated with the licensed programs 14, determine the
`number of allocation units which would be in use if
`usage of the licensed program 14 is permitted, and re-
`spond based on that determination. If the license man-
`agement facility 10 operates in that manner, it may be
`advantageous for the entries in license data base 11
`relating to each licensed program 14 to maintain a run-
`ning record of the number of allocation units associated
`with its usage. The licensing policy module 15 may
`operate similarly in connection with group licenses that
`are limited by usage.
`It will also be appreciated that the new license man-
`agement system thus permits the digital data processing
`system to control use of a licensed program 14 based on
`licensing criteria in the license data base 11, the license
`unit tables 12, the group licensing tables 17 and the
`licensor’s general licensing policies rather than requir-
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`45
`
`SO
`
`55
`
`65
`
`4,937,863
`
`6
`ing an operator to limit or restrict use of a licensed
`program or charging for the license based on some
`function of the capacity of all of the processors in the
`digital data processing system. The new license man-
`agement system allows for very flexible pricing of li-
`censes and licensing policies, since the digital data pro-
`cessing system itself enforces the licensing terms con-
`trolling use of the licensed programs 14 in the system.
`FIG. 2 depicts the detailed structure of the license
`data base 12 (FIG. 1) used in the license management
`system depicted in FIG. 1. With reference to FIG. 2,
`the license data base includes a plurality of entries gen-
`erally identified by reference numeral 20, with each
`entry being associated with one licensed program 14.
`Each entry 20 includes a number of fields, including an
`issuer name field 21 identifying the issuer of the license,
`an authorization number field 22 which contains an
`authorization number, a producer name field 23 which
`identifies the name of the vendor of the licensed pro-
`gram, and a product name field 24 which contains the
`name of the licensed program. The contents of these
`fields may be used, for example, in connection with
`other license management operations, such as determin-
`ing the source of licensed programs in the event of
`detection of errors in programs, and in locating dupli-
`cate entries in the license data base or entries which may
`be combined as a result of licenses being obtained and
`entered by, perhaps.different operators or at different
`times.
`
`Each entry 20_in the licensing data base 11 also in-
`cludes a license number field 25 whose contents identify
`the number of licensing units remaining. A license of a
`licensed program 14 identifies a number of licensing
`units, which may be a function of the price paid for the
`license. An availability table field 26 and an activity
`table field 27 identify license usage allocation unit value
`tables in the license unit tables 12 (described below in
`connection with FIG. 3) to be used in connection with
`the GRANT LICENSE and RELEASE LICENSE
`requests.
`'
`By way of background, a license may be in accor-
`dance with a licensing paradigm which requires concur-
`rent use of the licensed program 14 on several proces-
`sors to be a function of the processor power and capac-
`ity, and the availability table field 26 identifies a license
`usage allocation unit table to be used in connection with
`that. In an alternative, a license may be in accordance
`with a licensing paradigm which requires concurrent
`use of the licensed program to be a function of the
`number of users using the program, and the activity
`table field 27 identifies a license usage allocation unit
`value table in the license unit tables 12 to be used in
`connection with that. If either licensing paradigm is
`used to the exclusion of the other, one field contains a
`non-zero value and the other field contains a zero value.
`In addition, a license may be in accordance with both
`licensing paradigms, that is, concurrent use of a pro-
`gram may be limited both by processor power and ca-
`pacity and by the number of concurrent users, and in
`that case both fields 26 and 27 have non-zero values.
`In one embodiment of the licensing management
`system, fields 21 through 27 of an entry 20 in the licens-
`ing data base 11 are required. In that embodiment, an
`entry 20 in the licensing data may also have several
`optional fields. In particular, an entry 20 may include a
`date/version number field 30 whose contents comprise
`either a date or version number to identify the licensed
`program. If a license is to terminate on a specific date,
`
`Petitioner Apple Inc. - Ex. 1015, p. 12
`
`Petitioner Apple Inc. - Ex. 1015, p. 12
`
`

`
`4,937,863
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`45
`
`50
`
`55
`
`65
`
`7
`the entry 20 may include a licensor termination date
`field 31 or a licensee termination date field 32 whose
`contents specify the termination date assigned by the
`licensor or licensee. This may be particularly useful, for
`example, as a mechanism for permitting licensees to
`demonstrate or try a program before committing to a
`long or open term license.
`Finally, an entry 20 in the license data base includes a
`checksum field 33, which includes a checksum of the
`contents of the other fields 21 through 27 and 30
`through 32 in the entry 20, which may be established by
`means of a mathematical algorithm applied to the con-
`tents of the various fields. The general mechanism for
`establishing checksums is well known in the art, and
`will not be described further herein. The contents of all
`fields 21 through 27 and 30 through 33 of a new entry 20
`are entered by an operator. Prior to establishment of an 4
`entry in the license data base 11, the license manage-
`ment facility 10 may verify correct entry of the informa-
`tion in the various fields by calculating a checksum and
`comparing it to the checksum provided by the operator.
`If the checksum provided by the operator and the
`checksum determined by the license management facil-
`ity are the same, the entry 20 is established in the license
`data base 11. On the other hand, if the checksum pro-
`vided by the operator and the checksum determined by
`the license management facility differ, the license man-
`agement facility 10 determines that the information is
`erroneous or the license is invalid and does not establish
`the entry 20 in the license data base 11. It will be appre-
`ciated that, if the checksum-generation algorithm is
`hidden from an operator,
`the checksum provides a
`mechanism for verifying, not only that the information
`has been properly loaded into the entry, but also that
`the license upon which the entry is based is authorized
`by the licensor.
`The structure of group license tables 17 may be simi-
`lar to the structure of the license data base 11, with the
`addition that the entries for each license reflected in the
`group license tables 17 will need to identify all of the
`licensed programs covered thereby.
`As described above, the licensing unit tables 12 (FIG.
`1) contain information as to the allocation units for use
`in determining the number of licensing units associated
`with use of a licensed program. The structure of a li-
`censing unit table 40 is depicted in FIG. 3. With refer-
`ence to FIG. 3, the licensing unit table includes a plural-
`ity of entries 41(1) through 4l(N) (generally identified
`by reference numeral 41) each identified by a particular
`type of processor. One entry 41 in the table 40 is pro-
`vided for each type of processor which can be included
`in the digital data processing system which can use the
`licensed programs 14 which reference the license unit
`table 40. The processor associated with each entry is
`identified by a processor identification field 42.
`The successive fields in the entries 41 (which form
`the various columns in the table 40 depicted in FIG. 3)
`form license usage allocation unit value tables 43(1)
`through 43(M) (generally identified by reference nu-
`meral 43) The contents of the availability table field 26
`and theactivity table field 27 identify a license usage
`allocation unit value table 43. If there are non-zero
`contents in both availability field 26 and activity field
`27,
`the contents which identify be the same license
`usage allocation unit value table 43 or different license
`usage allocation unit value tables 43. As described
`above, the contents of the license usage allocation unit
`value table identify the number of licensing units associ-
`
`8
`ated with use of the licensed programs which identify
`the particular license usage allocation unit value table,
`for each of the identified processors.
`The operation of the licensing management system is
`depicted in detail in FIGS. 4A-1 through 4B. FIGS.
`4A-1 through 4A-4 depict, in a number of steps the
`details of operation of the licensing management system
`in connection with the GRANT LICENSE request
`from a licensed program 14. FIGS. 4B-1 and 4B-2 de-
`pict, in a number of steps, the details of operation in
`connection with the RELEASE LICENSE request
`from a licensed program 14. In the Figs., the parti

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