`
`{19]
`
`5,204,897
`Apr. 20, 1993
`Wyman
`[45] Date of Patent:
`
`[11] Patent Number:
`
`|||ll|lll|1|||IllIII“Illllllllllllllllllllllllllllllllllllllllllllllllllll
`Usooszo4897A
`
`[54] MANAGEMENT INTERFACE FOR LICENSE
`MANAGEMENT SYSTEM
`
`[75]
`
`Inventor:
`
`Robert M. Wyman, Kirkland, Wash.
`
`[73] Assignee:
`
`Digital Equipment Corporation,
`Maynard, Mass.
`
`[21] App]. No.: 914,040
`
`[22] Filed:
`
`Jul. 14, 1992
`
`[63]
`
`Related US. Application Data
`Continuation of Ser. No. 722,840, Jun. 28, 1991, aban-
`doned.
`
`
`Int. Cl.5
`[51]
`.............................. H041. 9/00
`
`[52] US. Cl. ................... 380/4; 380/25
`[58] Field of Search .............................. 380/4, 123, 25
`
`[56]
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`4,780,821 10/1988 Crossley .............................. 364/200
`4,791,565 12/1988 Dunham et a1,
`.
`364/200
`
`4,924,378
`5/1990 Hershey et a1.
`..
`364/200
`.....
`4,937,863
`1/1990 Robert et a1.
`380/4
`
`5,023,907
`6/1991
`Johnson et a1.
`380/4
`
`4/1992 Comerford et al.
`.................... 380/4
`5,109,413
`5,138,712
`8/1992 Corbin .................................... 380/4
`
`OTHER PUBLICATIONS
`
`Wyman, “Future Directions in Digital Distributed Soft-
`ware License Architecture", Oral
`presentation,
`DECUS (Digital Equipment Computer User Society),
`Marlboro, Mass, May 10, 1990, 18 pages.
`
`Primagz Examiner—Salvatore Giangialosi
`Attorney, Agent, or Firm—Arnold, White & Durkee
`
`[57]
`
`ABSTRACT
`
`agement system to account for software product usage.
`A management policy having a variety of alternative
`styles and contexts is provided. Each licensed product
`upon start-up makes a call to a license server to check
`on whether usage is permitted, and the license server
`checks a database of the licenses, called product use
`authorizations, that it administers. If the particular use
`requested is permitted, a grant is returned to the re-
`questing user node. The product use authorization is
`structured to define a license management policy allow-
`ing a variety of license alternatives by values called
`“style", “context”, “duration” and “usage requirements
`determination method”. The license administration may
`be delegated by the license server to a subsection of the
`organization, by creating another license management
`facility duplicating the main facility. The license server
`must receive a license document (a product use authori-
`zation) from an issuer of licenses, where a license docu-
`ment generator is provided. A mechanism is provided
`for one user node to make a call to use a software prod-
`uct located on another user node; this is referred to as a
`“calling card”, by which a user node obtains permission
`to make a procedure call to use a program on another
`node. A management interface allows a license manager
`at a server to modify the license documents in the data-
`base maintained by the server, within the restraints
`imposed by the license,
`to make delegations, assign-
`ments, etc. The license documents are maintained in a
`standard format referred to as a license document inter-
`change format so the management system is portable
`and can be used by all adhering software vendors. A
`feature of the database management is the use of a filter
`function.
`
`A distributed computer system employs a license man-
`
`31 Claims, 18 Drawing Sheets
`
`10 (or 131
`
`
`® Lm_Request_Allocation
`
`17o
`
`
`
`
`
`
`
`
`
`
`LICENSE
`MANAGEMENT
`SERVER
`
`Lm_Ouery_Allocatlon
`
`Grant Calllng Card
`
`CALLER
`' PRODUCT - 1 '
`
`
`
`
`
`
` Call Product - 1,
`
`Passing Calling Card
`
`
`
`Lm_Request_Allocation,
`
`
`
`UCENSE
`Passing CC
`
`
`CALLEE
`DATA BASE
`
`
`
`" PRODUCT - 2 '
`PUA'S
`
`
`
`
`
`17b
`
`Petitioner Apple Inc. - EX. 1016, p. 1
`
`Petitioner Apple Inc. - Ex. 1016, p. 1
`
`
`
`US. Patent
`
`Apr. 20, 1993
`
`Sheet 1 of 18
`
`5,204,897
`
`F.0-“-
`
`mm
`
`a
`
`mmsz:
`
`3.4935
`
`on:
`
`NF
`
`mo
`
`nmmamm._.umsz:_
`mozmmzmwo
`HZmzaoo
`mmeE._
`
`_
`
`_._.
`
`mmsz:
`
`z<mmoma
`
`Zuzwo<z<z
`
`H5353.mmsz:
`
`mm>mum_.mo<z<z
`
`me
`
`mF
`
`mwuzooma
`
`cm
`
`oh
`
`mammm
`
`on_m,
`
`or
`
`¢m
`
`mm
`
`mm
`
`em
`
`3
`
`$25.52_mmsz:
`
`mu>mmm
`
`_.wo<z<z
`
`i
`
`_‘N
`
`Petitioner Apple Inc. - EX. 1016, p. 2
`
`Petitioner Apple Inc. - Ex. 1016, p. 2
`
`
`
`
`
`
`
`
`
`
`
`US. Patent
`
`Apr. 20, 1993
`
`Sheet 2 of 18
`
`5,204,897
`
`( Product Use
`Authorization )
`
`Licens
`
`e
`
`
`
`License Unit Ree uirements Table
`
`
`
`
`
`
`
` Dele oation Auth.
`
`
`
`
`
`
`
`
`
`Release Date
`
`
`
`Licensee
`
`Start Date
`
`End Date
`
`Units' Granted
`
`Units Available
`
`[*1
`
`
`
`Callin - Auth.
`
`Combination Auth.
`
`Overdraft Auth.
`
`
`
`Token:
`
`53
`
`54
`
`I
`
`I no.2
`
`"3
`
`44
`
`45
`
`46
`
`——m_
`
`
`m“
`Consumptive _m
`
`
`
`m
`
`
`
`
`
`Operating_System
`Platform _lD
`Private
`
`
`Table Looku -
`
`
`
`FIG.3
`
`Petitioner Apple Inc. - EX. 1016, p. 3
`
`Petitioner Apple Inc. - Ex. 1016, p. 3
`
`
`
`US. Patent
`
`Apr. 20, 1993
`
`Sheet 3 of 18
`
`5,204,897
`
` Execute
`
`
`
`Make Call
`
`
`
`Lm_Request_Allocation (),
`Arguments:
`
`Unit 18
`
`61
`
`Arguments: I
`
`
`Make Call
`
`Lm_Release_A|location ()
`
`70
`
`Receive
`
`Return Ack.
`
`
`
`Petitioner Apple Inc. - EX. 1016, p. 4
`
`EXECUTE
`PROGRAM 17
`
`/
`
`FIG.5
`
`l l lI
`
`Make Call
`
`Lm_Query_Allocation (),
`
`— I
`
`I l | l I
`
`____..____|
`
`68
`
`Petitioner Apple Inc. - Ex. 1016, p. 4
`
`
`
`US. Patent
`
`Apr. 20, 1993
`
`Sheet 4 of 18
`
`5,204,897
`
`36224:3015
`
`38.213339538..<-.mu=com-s._
`
`532...
`
`.95
`
`wnou
`
`we
`
`5301
`
`25512:.
`
`
`
` ...=:<0>o_.=om>
`
`om
`
`9.0-“-
`
`530:
`
`.25
`
`£30
`
` wEEmoE
`
`.£:<
`.o7....zoom3.
`
`
`
`
`
`.5:<32:0:.25fins—own“.
`
`2.50do.
`
`
`
`530:£222mN.
`
`2.3a:
`
`rxu<anm
`
`on35:25
`
`.53smug:
`
`£322
`
`.5322:»:
`
`N.n
`
`522".
`
`mica:E26
`
`Petitioner Apple Inc. - EX. 1016, p. 5
`
`Petitioner Apple Inc. - Ex. 1016, p. 5
`
`
`
`
`
`
`
`
`
`
`
`US. Patent
`
`Apr. 20, 1993
`
`Sheet 5 of 18
`
`5,204,897
`
`o:‘
`:ozauo=<..~mmsammnE._@
`
`
`
`..F.PODDOm—a..
`
`
`
`mm..._<0:o=~oo=<l>.m:OIE4
`
`
`
`289.5.8:35
`
`pzmsmu<z<z
`
`mu>mmw
`
`mmZmo: .915.or
`
`.—-328:.=3
`
`Ego95.89:33@QV
`
`..N.Foam—Om;_.03I00
`
`mm44<0\I..'
`
`EEG
`
`.co_.moo__<|.mw:amm..E._
`
`009.3me
`
`a:
`
`humU-n-
`
`mmzwofi
`
`
`
`ww<m<._.<D
`
`mini
`
`Petitioner Apple Inc. - EX. 1016, p. 6
`
`Petitioner Apple Inc. - Ex. 1016, p. 6
`
`
`
`US. Patent
`
`Apr. 20, 1993
`
`Sheet 6 of 18
`
`5,204,897
`
`Object Identifier Value := =
`
`{
`
`iso(1)
`
`identifiedcrganization(3)
`icd-ecma(12)
`
`member-company(2)
`dec(1011)
`data-syntaxesH)
`cda(3)
`ldifH 7)
`
`}
`Object identifier Encoding := = {
`
`0x6, 0x8, 0x28, OXC, 0x2,
`0x87, 0x73, 0x1, 0x3, 0x11
`
`}
`
`FIG. 8
`
`LDIF Object Identifier
`
`LDIFDocument
`
`document-descriptor
`document-header
`document-content
`
`}
`
`[PRIVATE 16373] IMPLICIT SEQUENCE {
`[O] IMPLICIT DocumentDescriptor OPTIONAL,
`[1] IMPLICIT DocumentHeader OPTIONAL,
`[2] IMPLICIT DocumentContent
`
`FIG. 9
`
`LDIF Document Syntax Diagram
`
`LDIFDocument
`r—*—i—
`DocumentDescriptor
`DocumentHeader
`major-version
`title
`minor-version
`author
`encoder-identifier
`version
`encoder-name
`date
`
`DocumentContent
`LicenseData
`iicense-data-element
`;
`'
`
`,
`
`;
`
`PrivateHeaderData
`value-name
`value-data
`
`-
`'
`
`FIG .
`
`1 O
`
`LDIF Document Structure
`
`Petitioner Apple Inc. - EX. 1016, p. 7
`
`Petitioner Apple Inc. - Ex. 1016, p. 7
`
`
`
`US. Patent
`
`Apr. 20, 1993
`
`Sheet 7 of 18
`
`5,204,897
`
`DocumentDescriptor
`major-version
`minor-version
`encoder-identifier
`encoder-name
`
`=
`
`.
`
`I
`
`SEQUENCE {
`[O] IMPLICIT INTEGER OPTIONAL,
`[1] IMPLICIT INTEGER OPTIONAL,
`[2] IMPLICIT Character-String OPTIONAL,
`[3] IMPLICIT Character-String OPTIONAL
`
`FIG.
`
`1 1
`
`Document Descriptor Syntax Diagram
`
`ll
`
`:'
`
`r~.
`
`Pakgen DocumentDescriptor
`major-version 1,
`minor~version 0,
`encoder-identifier "PAKGEN",
`encoder-name {Character-String "PAK Generator V1 .0"}
`}
`
`FIG.
`
`1 2
`
`Document Descriptor Example
`
`DocumentHeader
`private-header-data
`title
`author
`version
`date
`
`=
`
`}
`
`SEQUENCE {
`[O] IMPLICIT NamedValueList OPTIONAL,
`[1] IMPLICIT Character-String OPTIONAL,
`[2] IMPLICIT Character-String OPTIONAL,
`[3] IMPLICIT Character-String OPTIONAL,
`[4] IMPLICIT UTCTime OPTIONAL
`
`,
`
`' FIG.
`
`1 3
`
`Document Header Syntax Diagram
`
`example-header document-header ::= {
`title {Character-String "PAKGEN Licenses with Associated LURT data")
`author {Character-String "Tom Jones, Foobar, lnc. License Department"}
`version {Character-String "V0.1 "}
`date "198801021100-0500"
`
`}
`
`FIG. 14 . Document Header Example
`
`Petitioner Apple Inc. - EX. 1016, p. 8
`
`Petitioner Apple Inc. - Ex. 1016, p. 8
`
`
`
`US. Patent
`
`Apr. 20, 1993
`
`Sheet 8 of 18
`
`5,204,897
`
`Document Content
`
`:: = SEQUENCE OF LicenseData
`
`. = SEQUENCE {
`LicenseData
`[O] IMPLICIT LicenseDataHeader,
`license-data—header
`[1] CHOICE {
`license-body
`[O] IMPLICIT ProductUseAuthorization.
`product-use-authorization
`license-units-requirements-table [1] IMPLICIT LURT,
`group-definition
`[2] IMPLICIT GroupDefinition,
`key-registration
`[3] IMPLICIT KeyRegistration,
`issuer-delegation
`[4] IMPLICIT lssuerDelegation,
`license-delegation
`l5] IMPLICIT LicenseDelegation,
`backup-delegation
`[6] IMPLICIT BackupDelegation
`
`‘
`
`management-info
`
`}
`
`I.
`[2] IMPLICIT Managementlnfo OPTIONAL
`
`FIG.
`
`1 5
`
`Document Content Syntax Diagram
`
`l
`LicenseDataHeader
`
`license-id
`licensee
`term
`management-
`constraints
`signature
`issuer-comment
`
`LicenseData
`
`LicenseBody (one of)
`
`Managementinfo (optional)
`
`product-use-authorization
`license-units-requirements-table
`group-definition
`
`assignments
`reservations
`delegations
`
`key-registration
`issuer-delegation
`license-delegation
`backup-delegation
`
`backup-delegations
`allocations
`registration-date
`registrar
`local-comment
`extended-info
`
`FIG.
`
`1 6
`
`License Data Structure
`
`LicenseDataHeader
`license-id
`licensee
`-
`term
`management-constraints
`signature
`issuer-comment
`
`p
`
`::= SEQUENCE {
`»
`[O] IMPLICIT LicenselD,
`[1] IMPLICIT Character-String OPTIONAL,
`[2] IMPLICIT Term OPTIONAL,
`[4] IMPLICIT ManagementConstraints OPTIONAL,
`[5] IMPLICIT Signature,
`[6] IMPLICIT NamedValueList OPTIONAL
`
`FIG.1 7
`
`License Data Header Syntax Diagram
`
`Petitioner Apple Inc. - EX. 1016, p. 9
`
`Petitioner Apple Inc. - Ex. 1016, p. 9
`
`
`
`US. Patent
`
`Apr. 20, 1993
`
`Sheet 9 of 18
`
`5,204,897
`
`ProductUseAuthorization
`product-id
`units-granted
`management-policy
`calling-authorizations
`caller-authorizations
`execution-constraints
`product-token
`
`::= SEQUENCE {
`[O] IMPLICIT ProductlD,
`[1] IMPLICIT INTEGER,
`[2] IMPLICIT ManagementPolicy,
`[3] IMPLICIT SEQUENCE OF Member OPTIONAL,
`[4] IMPLICIT SEQUENCE OF Member OPTIONAL,
`[5] IMPLICIT ExecutionConstraints OPTIONAL,
`[6] lMPLICIT NamedVaIueList OPTIONAL
`
`}
`
`FIG.
`
`1 8
`
`Product Use Authorization Syntax Diagram
`
`LURT
`
`Iurt-name
`rows
`
`RowList
`
`::= SEQUENCE {
`[O] IMPLICIT Character-String,
`[1] IMPLICIT RowList
`
`}
`:: = SEQUENCE OF LurtRow
`
`LurtRow
`platform-id
`lurt-columns ,
`
`. = SEQUENCE{
`[0] IMPLICIT Character-String,
`l1] IMPLICIT SEQUENCE OF INTEGER
`
`}
`
`FIG.
`
`1 9
`
`License Unit Requirement Table Syntax Diagram
`
`Example LURT ::= {
`lurt-name { Character-String "Example LURT"}
`rows {
`.
`LurtRow {
`{Character-String "PC-0"}
`{ITO} {230} {4}}
`LurtRow {
`{Character-String "PC-1"}
`{{12} {230} {-1)}
`LurtRow {
`{Character-String "VAX 6210'}
`{{158} {300} {150)}
`
`FIG. 20
`
`Example Encoding of LURT
`
`Petitioner Apple Inc. - EX. 1016, p. 10
`
`Petitioner Apple Inc. - Ex. 1016, p. 10
`
`
`
`US. Patent
`
`Apr. 20, 1993
`
`Sheet 10 of 18
`
`5,204,897
`
`Group Definition
`group-name
`group-version
`group-release-date
`group-members
`
`::= SEQUENCE {
`[OI IMPLICIT Character-String,
`[I] IMPLICIT Version,
`[2] IMPLICIT UTCTime,
`[3] IMPLICIT SEQUENCE OF Member
`
`}
`
`FIG. 21
`
`Group Definition Syntax Diagram
`
`KeyRegistration
`key-owner-name
`key-algorithm
`key-value
`
`::= SEQUENCE {
`[0] IMPLICIT Character-String,
`[II IMPLICIT Character-String,
`[2] IMPLICIT OCTET STRING
`
`}
`
`FIG. 22
`
`Key Registration Syntax Diagram
`
`IssuerDelegation
`‘ delegated-issuer-name
`delegated-product-id
`delegated-units-granted
`template-authorization
`sub-license-permitted
`
`::= SEQUENCE {
`[OI IMPLICIT Character-String,
`[I] IMPLICIT SEQUENCE OF Member,
`[2] IMPLICIT INTEGER OPTIONAL,
`[3] IMPLICIT ProductUseAuthorization OPTIONAL,
`[4] IMPLICIT BOOLEAN DEFAULT FALSE
`
`}
`
`FIG. 23
`
`Issuer Delegation Syntax Diagram
`
`LicenseDeIegation
`delegated-units
`delegated-distribution-control
`delegatee-execution-constraints
`assignment-list
`delegated-data
`
`::= SEQUENCE {
`[0] IMPLICIT INTEGER OPTIONAL
`[I] IMPLICIT DistributionControI,
`[2] IMPLICIT ExecutionConstraints OPTIONAL,
`[3] IMPLICIT AssignmentList OPTIONAL,
`[4] IMPLICIT LicenseData OPTIONAL
`
`}
`
`FIG. 24
`
`License Delegation & Backup Delegation Syntax Diagrams
`
`Petitioner Apple Inc. - EX. 1016, p. 11
`
`Petitioner Apple Inc. - Ex. 1016, p. 11
`
`
`
`US. Patent
`
`Apr. 20, 1993
`
`Sheet 11 of 18
`
`5,204,897
`
`Managementlnfo
`assignments
`reservations
`delegations
`backup-delegations
`allocations
`registration-date
`registrar
`local-comment
`termination-date
`extended-info
`
`::= SEQUENCE {
`I0] IMPLICIT AssignmentList OPTIONAL,
`[‘1] IMPLICIT AssignmentList OPTIONAL,
`I2] IMPLICIT DelegationList OPTIONAL,
`[3] IMPLICIT DelegationList OPTIONAL,
`I4] IMPLICIT AllocationList OPTIONAL,
`I5] IMPLICIT UTCTime,
`[61 IMPLICIT Context,
`[7] IMPLICIT NamedValueList OPTIONAL,
`'[8] IMPLICIT UTCTime OPTIONAL,
`I9] IMPLICIT NamedValueList OPTIONAL
`
`I
`
`FIG. 25 Managementlnfo Syntax Diagram
`
`AllocationList
`
`SEQUENCE OF Allocation
`
`Allocation
`allocation-context
`allocation-Iur
`allocation-group-Id
`
`. = SEQUENCE {
`IO] IMPLICIT Context,
`[1] IMPLICIT INTEGER,
`I2] IMPLICIT INTEGER OPTIONAL
`
`I
`
`FIG. 26
`
`Allocation Syntax Diagram
`
`AssignmentList
`
`SEQUENCE OF Assignment
`
`Assignment
`assigned-units
`assignment-term
`assignee
`
`. = SEQUENCE{
`[OI IMPLICIT INTEGER,
`[1] IMPLICIT Term,
`[2] IMPLICIT Context ’
`
`I
`
`FIG. 27
`
`Assignment Syntax Diagram
`
`Petitioner Apple Inc. - EX. 1016, p. 12
`
`Petitioner Apple Inc. - Ex. 1016, p. 12
`
`
`
`US. Patent
`
`Apr. 20, 1993
`
`Sheet 12 of 18
`
`5,204,897
`
`ContextList
`
`= SEQUENCE OF Context
`
`Context
`
`= SEQUENCE OF Subcontext
`
`SubContext
`sub-context-type
`subcontext-value
`
`. = SEQUENCEI
`[O] SubContextType,
`[1] VaIueData
`
`}
`::= CHOICE {
`SubContextType
`standard-subcontext-type
`[O] IMPLICIT INTEGER {
`network-subcontextfl ),
`execution-domain-subcontext(2),
`Iogin-domain-subcontextI3),
`node—subcontextI4),
`process-famin-subcontextISl,
`process-id-subcontextlfi‘l,
`user-name—subcontextfl),
`product-name-subcontextIB),
`operating—system-subcontextlQl,
`platform-id‘subcontextII 0)
`}
`
`private-subcontext
`
`[1] IMPLICIT INTEGER {first(0),last(255)}
`
`}
`
`FIG. 28
`
`Context Syntax Diagram
`
`
`
`
`FOOBAR V4.1 Allocated Units
`
`
`
`
`
`
`
`
`
`
`centext Template
`m—
`BLUE
`WYMAN
`
`Full Context Specifications
`
`ENET, AA Cluster, BLUE, FIB-1..., WYMAN
`
`OLSEN
`WYMAN
`
`ENET, BB_Cluster, RED, FIB-1..., OLSEN
`ENET, BB_Cluster, RED, PID-2..., WYMAN
`
`mm
`
`
`
`WYMAN
`
`ENET, AA_Cluster. GREEN, PlD-1..., WYMAN
`
`WYMAN
`
`ENET, AA_C|uster, GREEN, PlD-2..., WYMAN
`
`mm
`
`Units
`
`
`
`FlG. 29
`
`Only unique contexts require explicit unit allocations.
`
`Petitioner Apple Inc. - EX. 1016, p. 13
`
`Petitioner Apple Inc. - Ex. 1016, p. 13
`
`
`
`US. Patent
`
`Apr. 20, 1993
`
`Sheet 13 of 18
`
`5,204,897
`
`
`
`FOOBAR V4.1 Allocated Units
`
`Full Context Specifications
`
`
`
`
`ENET, AA_CIuster, BLUE, PlD-1..., WYMAN
`
`In"
`-«
`ENET, BB_C|uster, RED, FIB-2..., WYMAN
`mm—
`-« ENET, AA_CIuster, GREEN, PID-2..., WYMAN
`
`ENET, BB_CIuster, RED, PIG-1..., OLSEN
`
`FIG. 30 Modification of Context_Template impacts units requirements.
`
`'
`
`DistributionControl
`distribution-method
`refresh-distribution“ I,
`initiaI-distribution-onlylZ),
`manual-distributionl3)
`
`::= SEQUENCE {
`[0] IMPLICIT INTEGER {
`
`current-start-date
`current-end-date
`refresh-interval
`retry-interval
`maximum-retry-count
`retries-attempted
`
`I
`
`};
`[1] IMPLICIT UTCTime OPTIONAL
`[2] IMPLICIT UTCTime OPTIONAL,
`[3] IMPLICIT IntervalTime OPTIONAL,
`[4] IMPLICIT IntervalTime OPTIONAL,
`[5] IMPLICIT INTEGER OPTIONAL,
`[6] IMPLICIT INTEGER OPTIONAL
`
`FIG. 31
`
`Distribution Control Syntax Diagram
`
`ExecutionConstraints ::= SEQUENCE{
`operating-system
`[0] IMPLICIT SEQUENCE OF Character~String OPTIONAL,
`execution-context
`[1] IMPLICIT ContextList OPTIONAL,
`environment-list
`I2] IMPLICIT SEQUENCE OF EnvironmentKind OPTIONAL
`
`}
`::= INTEGER {
`
`EnvironmentKind
`batchll).
`intera‘ctivel2),
`locall3I,
`networkl4),
`remotel5)
`
`FIG. 32
`
`I
`Execution Constraints Syntax Diagram
`
`Petitioner Apple Inc. - EX. 1016, p. 14
`
`Petitioner Apple Inc. - Ex. 1016, p. 14
`
`
`
`US. Patent
`
`Apr. 20, 1993
`
`Sheet 14 of 18
`
`5,204,897
`
`LicenseID
`issuer
`serial-number
`amendment
`
`::= SEQUENCE {
`[0] IMPLICIT Character-String,
`[1] IMPLICIT Character-String,
`[2] IMPLICIT INTEGER DEFAULT O
`
`I
`
`FIG. 33
`
`License ID Syntax Diagram
`
`LURDM
`combination-permitted
`overdraft-limit
`overdraft-logging-required
`allocation-size
`Iurdm-kind
`lurt(1),
`constanti2),
`private-lurdmi3)
`
`::= SEQUENCE {
`[O] IMPLICIT BOOLEAN DEFAULT TRUE,
`[1] IMPLICIT INTEGER DEFAULT 0,
`[2] IMPLICIT BOOLEAN DEFAULT FALSE,
`[3] IMPLICIT INTEGER OPTIONAL,
`[4] IMPLICIT INTEGER {
`
`named-Iurt-id
`Iurdm-vaIue
`defauIt-unit-requirement
`}
`
`}l
`I5] IMPLICIT Character-String OPTIONAL,
`[6] IMPLICIT INTEGER OPTIONAL,
`[7] IMPLICIT INTEGER OPTIONAL
`
`FIG. 34
`
`License Unit Requirements Determination Method Syntax Diagram
`
`’::= SEQUENCE {
`IO] IMPLICIT ContextList OPTIONAL,
`[1] IMPLICIT INTEGER {
`
`ManagementConstraints
`management-context
`management-scope
`single-platformI1 I,
`management-domainiZ),
`entire-networki3)
`} OPTIONAL,
`I2] IMPLICIT BOOLEAN DEFAULT TRUE,
`[3] IMPLICIT BOOLEAN DEFAULT TRUE,
`[4] IMPLICIT IntervaITime OPTIONAL
`
`backup-permitted
`delegation-permitted
`maximum-delegation-period
`}
`
`FIG. 35 Management Constraints Syntax Diagram
`
`Petitioner Apple Inc. - EX. 1016, p. 15
`
`Petitioner Apple Inc. - Ex. 1016, p. 15
`
`
`
`US, Patent
`
`Apr. 20, 1993
`
`Sheet 15 of 18
`
`5,204,897
`
`ManagementPolicy
`style
`aIIocativelI ),
`consumptivel2).
`private-stylelS)
`
`context-template
`
`duration
`transaction” I,
`assignmentlZ),
`immediatel3)
`
`::= SEQUENCE {
`[0] IMPLICIT INTEGER {
`
`,
`I.
`[1] IMPLICIT SEQUENCE OF SubcontextType
`OPTIONAL,
`[2] IMPLICIT INTEGER {
`
`lur-determination-method
`allocation-sharing-Iimit
`reassignment-constraint
`}
`
`} OPTIONAL,
`[3] IMPLICIT LURDM OPTIONAL,
`[4] IMPLICIT INTEGER OPTIONAL,
`[5] IMPLICIT IntervalTime OPTIONAL
`
`FIG. 36 Management Policy Syntax Diagram
`
`Member
`member-product
`member-signature
`member-token
`
`::= SEQUENCE {
`[0] IMPLICIT ProductID,
`[1] IMPLICIT Signature,
`[2] IMPLICIT NamedValueList OPTIONAL
`
`}
`
`FIG. 37 Member Syntax Diagram
`
`NamedValue
`value-name
`vaIue-data
`
`ValueData
`value-boolean
`value-integer
`value-text
`value-general
`value-list
`
`::= SEQUENCE {
`Character-String,
`ValueData
`
`I
`
`::= CHOICE {
`[0] IMPLICIT BOOLEAN,
`I1] IMPLICIT INTEGER,
`[2] IMPLICIT SEQUENCE OF Character-String
`[3] IMPLICIT OCTET STRING,
`[4] IMPLICIT SEQUENCE OF ValueData
`
`I
`
`NamedValueList
`
`::= SEQUENCE OF NamedValue
`
`Fl G 38
`
`Named Value, Value Data & Named Value List Syntax Diagrams
`
`Petitioner Apple Inc. - EX. 1016, p. 16
`
`Petitioner Apple Inc. - Ex. 1016, p. 16
`
`
`
`US. Patent
`
`Apr. 20, 1993
`
`Sheet 16 of 18
`
`5,204,897
`
`ExampleList NamedValueList ::= {
`NamedValue {
`value-name {Character-String "Purchase Order")
`value-data {INTEGER 154493}
`
`} N
`
`}
`
`}
`
`amedValue {
`value-name {Character-String "Telephone Support 8'")
`value-data {Character-String {+1 (999) 555-1234}
`
`FIG. 39
`
`Named Value List Example
`
`ProductID
`producer
`product-name
`first-version
`last-version
`first—release-date
`Iast-reIease-date
`
`::= SEQUENCE {
`[0] IMPLICIT Character-String,
`[1] IMPLICIT CharactehString,
`[2] IMPLICIT Version OPTIONAL,
`[3] IMPLICIT Version OPTIONAL,
`I4] IMPLICIT UTCTime OPTIONAL,
`[5] IMPLICIT UTCTime OPTIONAL
`
`I
`
`FIG. 40
`
`Product ID Syntax Diagram
`
`Signature
`signature-algorithm
`signature-parameters
`signature-value
`
`::= SEQUENCE {
`[O] IMPLICIT Character-String,
`[1] IMPLICIT NamedValueList OPTIONAL,
`[2] IMPLICIT OCTET STRING
`
`}
`
`FIG. 41
`
`Signature Syntax Diagram
`
`Term
`
`start-date
`end-date
`
`::= SEQUENCE {
`[O] IMPLICIT UTCTime OPTIONAL,
`[1] IMPLICIT UTCTime OPTIONAL,
`
`}
`
`FIG. 42
`
`Term Syntax Diagram
`
`Petitioner Apple Inc. - EX. 1016, p. 17
`
`Petitioner Apple Inc. - Ex. 1016, p. 17
`
`
`
`US. Patent
`
`Apr. 20, 1993
`
`Sheet 17 of 18
`
`5,204,897
`
`Version
`part-1
`part-2
`part-3
`part-4
`
`::= SEQUENCE {
`[O] IMPLICIT INTEGER,
`[1] IMPLICIT INTEGER DEFAULT 0,
`[2] IMPLICIT INTEGER DEFAULT 0.
`[3] IMPLICIT INTEGER DEFAULT 0
`
`}
`
`FIG. 43
`
`
`
`
`
`Attribute
`
`FilterTvpe
`
`Attribute‘s Specific to Filter
`
`Value
`
`Value
`
`Value
`
`Value
`
`
`
`Syntax
`Length Number
`Initially
`Objectmnernem) --—
`Obiecurnter) -—_
`
`Enum<FiIterTvpel -I--
`
`FIG. 44
`
`
`
`
`Attribute
`Syntax
`Length
`Filterltemrvpe--
`Attribute Type —_
`MatchVaIue _—
`__
`m
`Initial Substring
`Substring m 1 or more
`
`Attributes Specific to Filter
`
`
`
`
`
`
`
`
`
`
`Final Substring
`
`License Request
`
`
`
`Number
`
`Initially
`
`
`
`
`Objectmcense Request) __
`
`FIG. 45
`
`Petitioner Apple Inc. - EX. 1016, p. 18
`
`Petitioner Apple Inc. - Ex. 1016, p. 18
`
`
`
`US. Patent
`
`Apr. 20, 1993
`
`Sheet 18 of 18
`
`5,204,897
`
`Filter {
`Filter-Type AND
`Filter-Item {
`Filter-ltem-Type SELECT
`Attribute-Type Product-Use-Authorization
`Filter {
`Filter-Type AND
`Filter-ltem{
`Filter-ltem-Type SELECT
`Attribute-Type Calling-Authorization
`Filter{
`Filter-Type AND
`Filter-Item {
`Filter-Item-Type EQUALITY
`Atribute-Type Producer
`Match-Value "Digital"
`
`I F
`
`I
`
`ilter-Item {
`Filter-Item-Type EQUALITY
`Attribute-Type Producer
`Match-Value "Amazing Database"
`
`I
`
`I F
`
`ilter-Item {
`Filter—Item-Type EQUALITY
`Attribute-Type Producer
`Match-Value "Digital"
`
`I F
`
`ilter-Item{
`Filter-Item-Type EQUALITY
`Attribute-Type Issuer
`Match-Value "Digital"
`
`I F
`
`I
`
`ilter-Item {
`Filter-Item-Type EQUALITY
`Attribute-Type Product-Name
`Match-Value "Amazing Graphics System"
`
`I
`
`I
`
`I
`
`FIG. 46
`
`Example Filter Value Notation
`
`Petitioner Apple Inc. - EX. 1016, p. 19
`
`Petitioner Apple Inc. - Ex. 1016, p. 19
`
`
`
`1
`
`5,204,897
`
`MANAGEMENT INTERFACE FOR LICENSE
`MANAGEMENT SYSTEM
`
`RELATED CASES
`
`This application is a continuation of application Ser.
`No. 722,840, filed Jun. 28, 1991, now abandoned.
`This application discloses subject matter also dis-
`closed in the following copending applications, all as-
`signed to Digital Equipment Corporation, the assignee
`of this invention:
`Ser. No. 697,652, filed May 8, 1991, by Robert M. Wy-
`man, for LICENSE MANAGEMENT SYSTEM;
`Ser. No. 723,456, filed Jun. 28, 1991, by Robert M.
`Wyman,
`for LICENSE DOCUMENT INTER-
`CHANGE FORMAT FOR LICENSE MANAGE-
`MENT SYSTEM; and
`,
`Ser. No. 723,4571, filed Jun. 28, 1991, by Robert M.
`Wyman for FILTERS FOR LICENSE MANAGE-
`MENT SYSTEM.
`
`BACKGROUND OF THE INVENTION
`
`This invention relates to methods of operation of
`computer systems, and more particularly to a method
`and system for managing the licensing of software exe-
`cuted on computer systems.
`In US Pat. No. 4,937,863, issued to Robert, Chase
`and Schafer and assigned to Digital Equipment Corpo-
`ration, the assignee of this invention, a Software Licens-
`ing Management System is disclosed in which usage of
`Licensed software may be monitored in a computer
`system to determine if a use is within the scope of a
`license. The system maintains a database of licenses for
`software products, and stores a unit value indicating the
`number of licensing units for each product. When a user
`wishes to use a licensed product, a message is sent to the
`central license management facility requesting a license
`grant. In response to this message, the facility accesses
`the database to see if a license exists for this product,
`and, if so, whether units may be allocated to the user,
`depending upon the user’s characteristics, such as the
`configuration of the platform (CPU) which will execute
`the software product. If the license management facility
`determines that a license can be granted, it sends a mes-
`sage to the user giving permission to proceed with acti-
`vation of the product. If not, the message denies permis-
`sion.
`While the concepts disclosed in the U.S. Pat. No.
`4,937,863 are widely applicable, and indeed are em-
`ployed in the present invention, there are additional
`functions and alternatives that are needed in some appli-
`cations. For example, the license management system
`should allow for simultaneous use of a wide variety of
`different licensing alternatives, instead of being rigidly
`structured to permit only one or only a few. When
`negotiating licenses with users, vendors should have
`available a wide variety of terms and conditions, even
`though a given vendor may decide to narrow the selec-
`tion down to a small number. For example, a software
`product may be licensed to a single individual for use on
`a single CPU, or to an organization for use by anyone
`on a network, or for use by any users at terminals in a
`cluster, or only for calls from another specific licensed
`product, or any of a large number of other alternatives.
`A vendor may have a large number of products, some
`sold under one type of license and some under others, or
`a product may be a composite of a number of features
`from one or more vendors having different license poli-
`
`10
`
`l5
`
`20
`
`25
`
`30
`
`35
`
`45
`
`50
`
`55
`
`65
`
`2
`cies and prices; it would be preferable to use the same
`license management system for all such products.
`Distributed computing systems present additional
`licensing issues. A distributed system includes a number
`of processor nodes tied together in a network of servers
`and clients. Each node is a processor which may exe-
`cute programs locally, and may also execute programs
`or features (subparts of programs) via the network. A
`program executing on one node may make remote pro-
`cedure calls to procedures or programs on other nodes.
`In this case, some provision need be made for defining a
`license permitting a program to be executed in a distrib-
`uted manner rather than separately on a single CPU,
`short of granting a license for execution on all nodes of
`a network.
`In a large organization such as a company or govern-
`ment agency having various departments and divisions,
`geographically dispersed, a software license policy is
`difficult to administer and enforce, and also likely to be
`more costly,
`if individual
`licenses are negotiated,
`granted and administered by the units of the organiza-
`tion. A preferred arrangement would be to obtain a
`single license from the software producer, and then split
`this license into locally-administered parts by delega-
`tion. The delays caused by network communication can
`thus be minimized, as well as budgetary constraints
`imposed on the divisions or departments. Aside from
`this issue of delegation, the license management facility
`may best be operated on a network, where the licensing
`of products run on all nodes of the network may be
`centrally administered. A network is not necessary for
`use of the features of the invention however, since the
`license management can be implemented on a single
`platform.
`Software products are increasingly fragmented into
`specific functions, and separate distribution of the func-
`tions can be unduly expensive. For example, a spread-
`sheet program may have separate modules for advanced
`color graphics, for accessing a database, for printing or
`displaying an expanded list of fonts, etc. Customers of
`the basic spreadsheet product may want some, none or
`all of these added features. Yet, it would be advanta-
`geous to distribute the entire combination as one pack-
`age, then allow the customer to license the features
`separately, in various combinations, or under differing
`terms. The customer may have an entire department of
`the company needing to use the spreadsheet every day,
`but only a few people who need to use the graphics a
`few days a month. It is advantageous,
`therefore, to
`provide alternatives for varied licensing of parts of
`features of software packages, rather than a fixed policy
`for the whole package.
`'
`Another example of distribution of products in their
`entirety, but licensing in parts, would be that of deliver-
`ing CD ROMs to a customer containing all of the soft-
`ware that is available for a system, then licensing only
`those parts the customer needs or wishes to pay fees for
`rights to sue. Of course, the product need not be merely
`applications programs, operating systems, or traditional
`executable code, but instead could also include static
`objects such as printer fonts, for example, or graphics
`images, or even music or other sound effects.
`As will be explained below, calling and caller autho-
`rizations are provided in the system according to one
`feature of the invention, in order to provide technologi-
`cal support for a number of business practices and solve
`technical problems which require the use of what is
`
`Petitioner Apple Inc. - EX. 1016, p. 20
`
`Petitioner Apple Inc. - Ex. 1016, p. 20
`
`
`
`3
`called “transitive licensing.” By “transitive licensing” is
`meant that the right to use one product or feature im-
`plies a right to use one or more other products or fea-
`tures. Transitive licenses are similar to group licenses in
`that both types of license consist of a single instrument
`providing rights of use for a plurality of products. How-
`ever, transitive licenses differ from group licenses in
`that they restrict the granted rights by specifying that
`the licensed products can only be used together and by
`further specifying one or more permitted inter-product
`calling/caller relationships. Some examples may help to
`clarify the use and nature of a transitive license: the
`examples to be explained are (1) two products sold
`together,
`(2) a give-away that results from narrow
`choices of licensing alternatives, (3) a client licensing
`method in a client/server environment, (4) impact of
`modular design, and (5) the impact of distributed de-
`Sign.
`A software vendor might have two products for sale:
`the first a mail system, and the second a LEXIS TM -like
`content-based text retrieval system. Each of these prod-
`ucts might be valued at $500 if purchased separately.
`Some customers would be satisfied by purchasing the
`rights to use only one of these products. others might
`find that they can justify use of both. In order to in-
`crease the likelihood that customers will, in fact, pur-
`chase both products, it would not be surprising if the
`software vendor offered his potential customers a vol-
`ume discount, offering the two products for a combined
`price of $800. The customers who took advantage of 30
`this combined offer would find that they had received
`two products, each of which could be exploited to its
`fullest capabilities independently from the other. Thus,
`these customers would be able to use the content based
`retrieval system to store and retrieve non-main docu-
`ments. However, from time to time, the vendor may
`discover that particularly heavy users of mail wish to be
`able to use the content based retrieval system only to
`augment the filing capabilities provided by the standard
`mail offering. It is likely that many of these potential
`customers would feel that $800 is simply too much to
`pay for an extended mail capability. The vendor might
`then consider offering these customers a license that
`grants mail users the right to use the content-based
`retrieval system only when they are using mail and
`prohibits the use of content based retrieval with any
`other application that might be available on the custom-
`ers system. This type of license is referred to below a
`“transitive license,” and it might sell for $600.
`Another example is a relational database product
`(such as that referred to as Rdb TM ) designed for use on
`a particular operating system, e.g., VMS. This relational
`database product has two components: (1) A user inter-
`face used in developing new databases, and (2) a “run-
`time” system which supports the use of previously de-
`veloped databases. The developers of the database
`product might spend quite a bit of effort trying to get
`other products made by the vendor of the database
`product to use it as a database instead of having those
`other products build their own product-specific data-
`bases. Unfortunately, the other product designers may
`complain that the cost of a run-time license for the
`database product, when added to the cost of licenses for
`their products, would inevitably make their products
`uncompetitive. Thus,
`some mechanism would be
`needed that would allow one or another of the vendor’s
`products to use the run-time system for the relational
`database product in a “private” manner while not giv-
`
`35
`
`45
`
`50
`
`55
`
`65
`
`5,204,897
`
`10
`
`15
`
`20
`
`25
`
`4
`ing unlicensed access to products of other vendors. No
`such mechanism existed, prior to this invention; thus,
`the vendor might be forced to sell the right to use its
`run-time system for the database product with its pro-
`prietary operating system license. Clearly,
`this com-
`bined license would make it possible for the vendor’s
`products to use its database product without increasing
`their prices; however, it also would make it possible for
`any customers and third-parties to use the database
`product without paying additional license fees. How-
`ever, had the system of the invention been available, the
`vendor could have granted transitive licenses for the
`run-time component of its database product to all the
`vendor's products. Essentially,
`these licenses would
`have said that the database run-time could be used with-
`out an additional license fee if and only if it was used in
`conjunction with some other of the vendor’s products.
`Any customer wishing to build a new relational data