throbber
United States Patent
`
`[19]
`
`5,204,897
`Apr. 20, 1993
`Wyman
`[45] Date of Patent:
`
`[11] Patent Number:
`
`llllllllllllll HI|||11||l||lllllllllllllllIIIIHIHIlllllllllllllllllllllll
`USOO5204897A
`
`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.
`
`[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 U.S. Application Data
`Continuation of Ser. No. 722,840, Jun. 28, 1991, aban-
`cloned.
`
`Int. Cl.5
`[51]
`............................ .. H041. 9/00
`
`[52] U.S. 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 al.
`..
`364/200
`4,937,863
`1/1990 Robert et al.
`380/4
`5,023,907
`6/1991
`Johnson et al.
`380/4
`5,109,413
`4/1992 Comerford et al.
`.................. .. 380/4
`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 Fz'rm—Arnold, White & Durkee
`
`[57]
`
`ABSTRACT
`
`A distributed computer system employs a license man-
`
`31 Claims, 18 Drawing Sheets
`
`10 (or 131
`
`
`
`
`
`® Lm_Reques1_A11ocation
`
`17o
`
`Lm_Ouery__A1Iocatlon
`
`Grant Calling card
`
`CALLER
`' PRODUCT - 1 '
`
`
`
`
`
`
`
`
`UCENSE
`MANAGEMENT
`SERVER
`
`
`
`
`
`
`
`
`
`
` Call Product - 1,
`Passing Calling Card
`
`
`UCENSE
`DATA BASE
`PUA'S
`
`Lm_Request_AlIocation,
`Passing CC
`
`CALLEE
`
`" PRODUCT - 2 '
`
`17b
`
`Petitioner Apple Inc. - Ex. 1016, p. 1
`
`Petitioner Apple Inc. - Ex. 1016, p. 1
`
`

`
`U.S. Patent
`
`Apr. 20, 1993
`
`Sheet 1 of 18
`
`5,204,897
`
`.v.mu.-H-
`
`mmwm<mS<o
`mmzuu_._
`
`¢~2:
`
`_l
`
`
`
`mm>mwm:_am»uummm»z_
`7-z<mmmmm
`_pzmzwo<z<zaw
`
`mmzuu_4
`
`mmzmu_4
`
`cw
`
`
`momumzmgg__zmz:goo
`.mm:mm__moF<mwzmo
`
`:mmu_m,mwuzooma
`
`op
`
`msmmfim~
`
`0.
`
`
`
`imp}{Mo}.23imo.--
`
`o_9.e_
`
`mu»<um4wo.mmzm._4mfi
`
`mm>mum_wo<z<z
`.NN
`
`owm.z.m_.um
`
`z<mooma
`
`Petitioner Apple Inc. - Ex. 1016, p. 2
`
`Petitioner Apple Inc. - Ex. 1016, p. 2
`
`
`
`
`
`
`
`
`

`
`U.S. Patent
`
`Apr. 20, 1993
`
`Sheet 2 of 18
`
`5,204,897
`
`License Unit Re uirements Table
`
`"""°'""° “Eng.
`mun
`Iitzumulm
`
`
`
`
`
`( Product Use
`Authorization )
`
`Licens
`
`e
`
`
`
`Release Date
`
`Licensee
`
`Start Date
`
`End Date
`
`
`
`
`
`
`[*1
`Units" Granted
`
`”""-°"“°"‘=""°
`‘*2
`jmj ‘£34
`ll-;
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`l
`
`—Token:
`
`S3
`
`54
`
`I no.2
`
`‘*3
`
`‘+4
`
`45
`
`as
`
`imam
`
`—%
`-mammal
`
`
`
`
`
`Table Looku -
`
`
`
`
`« Node ID
`
`Process Family
`1%
`
`
`
`Operating_System
`Platform _lD
`Private
`
`
`
`FI(3..3
`
`Petitioner Apple Inc. - Ex. 1016, p. 3
`
`Petitioner Apple Inc. - Ex. 1016, p. 3
`
`

`
`U.S. Patent
`
`Apr. 20, 1993
`
`Sheet 3 of 13
`
`5,204,897
`
`
`
` Execute
`
`Unit 18
`
`Make Call
`
`Lm_Request_AIIocatIon (),
`Arguments:
`
`
`
`EXECUTE
`PROGRAM 17
`
`/
`
`FlG.5
`
`I I I II II I I I I
`
`____..____I
`
`68
`
`
`
`Lm_ReIease_AIIocation ()
`
`Make Call
`
`Receive
`Return Ack. 70
`
`
`Petitioner Apple Inc. - Ex. 1016, p. 4
`
`Petitioner Apple Inc. - Ex. 1016, p. 4
`
`

`
`U.S. Patent
`
`Apr. 20, 1993
`
`Sheet 4 of 18
`
`5,204,897
`
`Eiom
`
`._o.:m
`
`ouoo
`
`3
`
`E:.om
`
`visa...2:.
`
`
`
` ...=3<0>0_._uOm_>
`
`8
`
`E30:
`
`.o:m
`
`0300
`
`
`
`.5:<o>m_=umtram.u2m.%.._wn._u
`
`one.
`
`
`
`:5»:£832mN.
`
`
`
`uEEmo..m..=:<33...Sum3.
`
`£305.
`
`
`
`._.=:<~53»:
`
`E
`
`3.8__<u>.o:oa::
`
`AV.oo__<..omao_omaE._AVoo_.<I.mu:cwmuE._
`
`@...nU-H
`
`mica:
`
`:._:.om
`
`
`
`o_u:aI.:S0
`
`
`
`....u<Efiom
`
`8uo§:.u_ao
`
`Petitioner Apple Inc. - Ex. 1016, p. 5
`
`Petitioner Apple Inc. - Ex. 1016, p. 5
`
`
`
`
`
`
`
`
`
`

`
`U.S. Patent
`
`Apr. 20, 1993
`
`Sheet 5 of 18
`
`5,204,897
`
`
`
`..F.voaooma..
`
`
`
`mm._._<o:o_.moo__<I>.m:OnE4
`
`E3m:___aoEeu
`
`mmzmo:
`
`pzm:mc<z<2
`
`mu>mmm
`
`atA
`:o=muo__<s.m¢:UomnE._9
`
`
`
`.m_..5.2
`
`
`
`Emum:_=aomfimmma ¢..-sane...:3
`
`IWI:UE53'4
`
`.:o_=..oo__<|.mm:com..E._
`
`U0mémmua
`
`at
`
`Ea...0
`
`h..mU-n-
`
`mmzmo:
`
`
`
`mm<m<._.<D
`
`m_<:._
`
`Petitioner Apple Inc. - Ex. 1016, p. 6
`
`Petitioner Apple Inc. - Ex. 1016, p. 6
`
`

`
`U.S. Patent
`
`Apr. 20, 1993
`
`Sheet 6 of 18
`
`5,204,897
`
`Object Identifier Value := =
`
`{
`
`iso(1)
`
`identified-organization(3)
`icd-ecma(12)
`
`member-company(2)
`dec(1011)
`data-syntaxes(1)
`cda(3)
`|dif(1 7)
`
`}
`Object identifier Encoding := = {
`
`0x6, OX8, Ox2B, OxC, 0x2,
`0x87, 0x73, 0x1, 0x3, 0x11
`
`}
`
`FIG. 8
`
`LDIF Object Identifier
`
`LD|FDocument
`
`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
`
`LDlFDocument
`r——————————r—
`DocumentDescriptor
`DocumentHeader
`major-version
`title
`minor-version
`author
`encoder-identifier
`version
`encoder-name
`date
`
`Documentcontent
`LicenseData
`license-data-element
`;
`'
`
`.
`
`;
`
`PrivateHeaderData
`value-name
`value-data
`
`-
`'
`
`FIG .
`
`1 0
`
`LDIF Document Structure
`
`Petitioner Apple Inc. - Ex. 1016, p. 7
`
`Petitioner Apple Inc. - Ex. 1016, p. 7
`
`

`
`U.S. 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
`
`1 1
`
`Document Descriptor Syntax Diagram
`
`II
`
`:'
`
`r~.
`
`Pakgen DocumentDescriptor
`major-version 1,
`minor-version 0,
`encoder-identifier "PAKGEN",
`encoder-name {Character-String "PAK Generator V1 .O"}
`}
`
`FIG.
`
`1 2
`
`Document Descriptor Example
`
`DocumentHeader
`private—header-data
`title
`author
`version
`date
`
`=
`
`I
`
`SEQUENCE {
`[O] IMPLICIT NamedVaIueList 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, Inc. 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
`
`

`
`U.S. Patent
`
`Apr. 20, 1993
`
`Sheet 8 of 18
`
`5,204,897
`
`Document Content
`
`:: = SEQUENCE OF LicenseData
`
`. = SEQUENCE {
`LicenseData
`[0] IMPLICIT LicenseDataHeader,
`license-data-header
`[1] CHOICE {
`license-body
`[0] IMPLICIT ProductUseAuthorization,
`product-use-authorization
`license-units-requirements-table [1] IMPLICIT LURT,
`group-definition
`[2] IMPLICIT GroupDefinition,
`key-registration
`[3] IMPLICIT Keyfiegistration,
`issuer-delegation
`[4] IMPLICIT lssuerDeIegation,
`license-delegation
`[5] IMPLICIT LicenseDelegation,
`backup-delegation
`[6] IMPLICIT BackupDelegation
`
`'
`
`management-info
`
`}
`
`I.
`[2] IMPLICIT Managementlnfo OPTIONAL
`
`FIG.
`
`1 5
`
`Document Content Syntax Diagram
`
`I
`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
`
`,
`
`::= SEQUENCE {

`[O] IMPLICIT LicenseID,
`[1] IMPLICIT Character-String OPTIONAL,
`[2] IMPLICIT Term OPTIONAL,
`[4] IMPLICIT Managementconstraints OPTIONAL,
`[5] IMPLICIT Signature,
`[6] IMPLICIT NamedVaIueList OPTIONAL
`
`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
`
`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,
`[41 IMPLICIT SEQUENCE OF Member OPTIONAL,
`[5] IMPLICIT Executionconstraints OPTIONAL,
`[6] IMPLICIT NamedValueList OPTIONAL
`
`}
`
`FIG.
`
`1 8
`
`Product Use Authorization Syntax Diagram
`
`LURT
`
`lurt-name
`rows
`
`RowList
`
`::= SEQUENCE {
`[O] IMPLICIT Character-String,
`[1] IMPLICIT RowList
`
`}
`:: = SEQUENCE OF LurtRow
`
`LurtRow
`platform-id
`Iurt-columns .
`
`. = SEQUENCE{
`[0] IMPLICIT Character-String,
`[1] lMPLlClT SEQUENCE OF INTEGER
`
`}
`
`FIG.
`
`1 9
`
`License Unit Requirement Table Syntax Diagram
`
`Example LURT ::= {
`Iurt-name { Character-String "Example LURT"}
`rows {
`A
`LurtRow {
`{Character-String "PC-0"}
`{[10} {230} {-1}}
`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
`
`

`
`U.S. 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,
`[1] 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,
`[1] IMPLICIT Character-String,
`[2] IMPLICIT OCTET STRING
`
`}
`
`FIG. 22
`
`Key Registration Syntax Diagram
`
`|ssuerDe|egation
`‘ delegated-issuer-name
`deIegated—product-id
`delegated-units-granted
`tempiate-authorization
`sub-license-permitted
`
`::= SEQUENCE {
`[OI IMPLICIT Character-String,
`[1] IMPLICIT SEQUENCE OF Member,
`[2] IMPLICIT INTEGER OPTIONAL,
`[3] IMPLICIT ProductUseAuthorization OPTIONAL,
`[4] IMPLICIT BOOLEAN DEFAULT FALSE
`
`}
`
`FIG. 23
`
`Issuer Delegation Syntax Diagram
`
`LicenseDelegation
`delegated-units
`delegated-distribution-control
`delegatee-execution-constraints
`assignment-list
`delegated-data
`
`::= SEQUENCE {
`[OI IMPLICIT INTEGER ‘OPTIONAL
`[I] IMPLICIT Distributioncontrol,
`[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
`
`

`
`U.S. Patent
`
`Apr. 20, 1993
`
`Sheet 11 of 13
`
`5,204,897
`
`Managementlnfo
`assignments
`reservations
`delegations
`backup-delegations
`allocations
`registration-date
`registrar
`local-comment
`termination-date
`extended-info
`
`::= SEQUENCE {
`[01 IMPLICIT AssignmentList OPTIONAL,
`[‘1] IMPLICIT AssignmentList OPTIONAL,
`[2] IMPLICIT De|egationList OPTIONAL,
`[3] IMPLICIT De|egationList OPTIONAL,
`[4] IMPLICIT A|locationList OPTIONAL,
`[5] IMPLICIT UTCTime,
`[61 IMPLICIT Context,
`[7] IMPLICIT NamedValueList OPTIONAL,
`I8] IMPLICIT UTCTime OPTIONAL,
`[9] IMPLICIT NamedValueList OPTIONAL
`
`I
`
`FIG. 25 Managementlnfo Syntax Diagram
`
`AllocationList
`
`= SEQUENCE OF Allocation
`
`Allocation
`allocation-context
`allocation—lur
`allocation—group-id
`
`. = SEQUENCE {
`I0] IMPLICIT Context,
`[1] IMPLICIT INTEGER,
`I2] IMPLICIT INTEGER OPTIONAL
`
`}
`
`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
`
`

`
`U.S. 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
`[0] SubContextType,
`[1] VaIueData
`
`}
`::= CHOICE {
`SubContextType
`standard-subcontext-type
`[O] IMPLICIT INTEGER {
`network-subcontext(1 I,
`execution-domain-subcontext(2).
`Iogin-domain-subcontext(3),
`node—subcontext(4),
`process-family-subcontext(5),
`process-id-subcontext(6),
`user-name—subcontext(7),
`product-name-subcontext(8),
`operating—system-subcontext(9),
`platform-id—subcontext(10)
`I
`
`private-subcontext
`
`I1] IMPLICIT INTEGER {first(0),last(255)}
`
`}
`
`FIG. 28
`
`Context Syntax Diagram
`
`
`
`
`
`FOOBAR V4.1 Allocated Units
`
`Units
`
`Context Template
`
`Full Context Specifications
`
`ENET, AA Cluster, BLUE, PID-1..., WYMAN
`
`E B
`
`WYMAN
`
`LUE
`
`EE
`
`
`
`
`
`
`
`OLSEN
`WYMAN
`
`ENET, BB_C|uster, RED, PID-1..., OLSEN
`ENET, BB_C|uster, RED, PID-2..., WYMAN
`
`EE
`
`
`
`WYMAN
`
`ENET, AA_C|uster. GREEN, PID-1..., WYMAN
`
`WYMAN
`
`ENET, AA_C|uster, GREEN, PID-2..., WYMAN
`
`FIG. 29
`
`Only unique contexts require explicit unit allocations.
`
`Petitioner Apple Inc. - Ex. 1016, p. 13
`
`Petitioner Apple Inc. - Ex. 1016, p. 13
`
`

`
`U.S. Patent
`
`Apr. 20, 1993
`
`Sheet 13 of 18
`
`5,204,897
`
`FOOBAR V4.1 Allocated Units
`
`Full Context Specifications
`
`ENET, AA_C|uster, BLUE, PlD—1..., WYMAN
`
`
`
`BIT
`IT
`ENET, BB_C|uster, RED, PID-2..., WYMAN
`IMO
`E ENET, AA__CIuster, GREEN, PID-2..., WYMAN
`
`ENET, BB_CIuster, RED, PID-1..., OLSEN
`
`
`
`FIG. 30 Modification of Context_TempIate impacts units requirements.
`
`'
`
`DistributionControl
`distribution-method
`refresh-distributionI1 I,
`initiaI-distribution-onIy(2),
`manual-distribution(3)
`
`::= SEQUENCE {
`I0] IMPLICIT INTEGER {
`
`current-start-date
`current-end-date
`refresh-interval
`retry-interval
`maximum-retry-count
`retries-attempted
`
`I
`
`};
`I1] IMPLICIT UTCTime OPTIONAL
`I2] IMPLICIT UTCTime OPTIONAL,
`[3] IMPLICIT IntervaITime OPTIONAL,
`[4] IMPLICIT lntervalTime 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
`batch(1 I.
`interactivei 2),
`locaI(3),
`network(4),
`remote(5)
`
`FIG. 32
`
`I
`Execution Constraints Syntax Diagram
`
`Petitioner Apple Inc. - Ex. 1016, p. 14
`
`Petitioner Apple Inc. - Ex. 1016, p. 14
`
`

`
`U.S. Patent
`
`Apr. 20, 1993
`
`Sheet 14 of 13
`
`5,204,897
`
`License|D
`issuer
`serial-number
`amendment
`
`::= SEQUENCE {
`[O] IMPLICIT Character-String,
`[1] IMPLICIT Character-String,
`[2] IMPLICIT INTEGER DEFAULT 0
`
`}
`
`FIG. 33
`
`License ID Syntax Diagram
`
`LURDM
`combination-permitted
`overdraft-limit
`overdraft-Iogging-required
`allocation-size
`Iurdm-kind
`|urt(1),
`constant(2),
`private-lurdm(3)
`
`::= 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-value
`defauIt-unit-requirement
`}
`
`}l
`I5] IMPLICIT Character-String OPTIONAL,
`[6] IMPLICIT INTEGER OPTIONAL,
`[7] IMPLICIT INTEGER OPTIONAL
`
`34
`
`License Unit Requirements Determination Method Syntax Diagram
`
`’::= SEQUENCE {
`[O] IMPLICIT ContextList OPTIONAL,
`[1] IMPLICIT INTEGER {
`
`Managementconstraints
`management-context
`management-scope
`single-pIatform(1 I,
`management-domainI2),
`entire-networkI3)
`} OPTIONAL.
`[2] 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
`
`

`
`U.S_. Patent
`
`Apr. 20, 1993
`
`Sheet 15 of 18
`
`5,204,897
`
`ManagementPolicy
`style
`al|ocative(1 I,
`consumptive(2),
`private-style(3)
`
`context-template
`
`duration
`transaction(1 I,
`assignmentl2),
`immediatel3I
`
`::= SEQUENCE {
`[0] IMPLICIT INTEGER {
`
`,
`I,
`[1] IMPLICIT SEQUENCE OF SubcontextType
`OPTIONAL,
`[2] IMPLICIT INTEGER {
`
`Iur-determination-method
`allocation-sharing-limit
`reassignment-constraint
`I
`
`} OPTIONAL,
`[3] IMPLICIT LURDM OPTIONAL,
`[4] IMPLICIT INTEGER OPTIONAL,
`[5] IMPLICIT lntervaITime OPTIONAL
`
`Management Policy Syntax Diagram
`
`Member
`member-product
`member—sign'ature
`member-token
`
`::= SEQUENCE {
`[0] IMPLICIT ProductlD,
`[1] IMPLICIT Signature,
`[2] IMPLICIT NamedValueList OPTIONAL
`
`I
`
`FIG. 37 Member Syntax Diagram
`
`Namedvalue
`value-name
`value-data
`
`VaIueData
`value-boolean
`value-integer
`value-text
`value-general
`value-list
`
`::= SEQUENCE {
`Character-String,
`VaIueData
`
`I
`
`::= CHOICE {
`[O] IMPLICIT BOOLEAN,
`[1] IMPLICIT INTEGER,
`[2] IMPLICIT SEQUENCE OF Character-String
`I3] IMPLICIT OCTET STRING,
`[4] IMPLICIT SEQUENCE OF VaIueData
`
`I
`
`NamedValueList
`
`::= SEQUENCE OF Namedvalue
`
`Fi
`
`Named Value, Value Data & Named Value List Syntax Diagrams
`
`Petitioner Apple Inc. - Ex. 1016, p. 16
`
`Petitioner Apple Inc. - Ex. 1016, p. 16
`
`

`
`U.S. Patent
`
`Apr. 20, 1993
`
`Sheet 16 of 13
`
`5,204,897
`
`ExampleList NamedVa|ueList ::= {
`Namedvalue {
`value-name {Character-String "Purchase Order")
`value-data {INTEGER 154493}
`
`} N
`
`I
`
`I
`
`amedvalue {
`vaIue—name {Character-String "Telephone Support 8*")
`value-data {Character-String {+1 (999) 555-1234}
`
`FIG. 39
`
`Named Value List Example
`
`Product|D
`producer
`product-name
`first-version
`last-version
`first—release-date
`last-release-date
`
`::= SEQUENCE {
`[0] IMPLICIT Character-String,
`[1] IMPLICIT Character-String,
`[2] IMPLICIT Version OPTIONAL,
`[3] IMPLICIT Version OPTIONAL,
`I4] IMPLICIT UTCTime OPTIONAL,
`[5] IMPLICIT UTCTime OPTIONAL
`
`I
`
`40
`
`Product ID Syntax Diagram
`
`Signature
`signature-algorithm
`signature-parameters
`signature-value
`
`::= SEQUENCE {
`[O] IMPLICIT Character-String,
`[1] IMPLICIT NamedVa|ueList OPTIONAL,
`[2] IMPLICIT OCTET STRING
`
`}
`
`FIG. 41
`
`Signature Syntax Diagram
`
`Term
`
`start-date
`end-date
`
`::= SEQUENCE {
`[O] IMPLICIT UTCTime OPTIONAL,
`I1] IMPLICIT UTCTime OPTIONAL,
`
`}
`
`FIG. 42
`
`Term Syntax Diagram
`
`Petitioner Apple Inc. - Ex. 1016, p. 17
`
`Petitioner Apple Inc. - Ex. 1016, p. 17
`
`

`
`U.S. Patent
`
`Apr. 20, 1993
`
`Sheet 17 of 18
`
`5,204,897
`
`Version
`part-1
`part-2
`part-3
`part-4
`
`::= SEQUENCE {
`IO] IMPLICIT INTEGER,
`[1] IMPLICIT INTEGER DEFAULT 0,
`[2] IMPLICIT INTEGER DEFAULT O,
`[3] IMPLICIT INTEGER DEFAULT 0
`
`}
`
`FIG. 43
`
`Attributes Specific to Filter
`
`Attribute
`
`Value
`
`Syntax
`
`
`
`
`
`
`Value
`
`Value
`
`Length Number
`
`Value
`
`Initially
`
`0 or more
`
`0 or more
`
`
`
`
`
`
`0bject(Filter)
`
`EnumlFilter Type)
`Filter Type
`
`Filter Items
`
`Object(FiIter Item)
`
`Filters
`
`FIG. 44
`
`Syntax
`
`Length
`
`Number
`
`Initially
`
`Filter Item Type
`Attribute Type
`Match Value
`
`an
`
` Attributes Specific to Filter
`
`lnitialsubstring
`substring
`
`more
`
`
`
`License Request
`
`
`
`Object(License Request) —
`
`FIG. 45
`
`Petitioner Apple Inc. - Ex. 1016, p. 18
`
`Petitioner Apple Inc. - Ex. 1016, p. 18
`
`

`
`U.S. Patent
`
`Apr. 20, 1993
`
`Sheet 18 of 13
`
`5,204,897
`
`Filter {
`Filter-Type AND
`Filter-Item {
`Filter-Item-Type SELECT
`Attribute-Type Product-Use-Authorization
`Filter {
`Filter-Type AND
`Filter-Item{
`Filter-Item-Type SELECT
`Attribute-Type Calling-Authorization
`Filter{
`Filter-Type AND
`Filter—ltem {
`Filter-Item-Type EQUALITY
`Atribute-Type Producer
`Match-Value "Digital"
`
`} F
`
`}
`
`ilter-Item {
`Filter-Item-Type EQUALITY
`Attribute-Type Producer
`Match-Value "Amazing Database"
`
`
`
`}
`
`} F
`
`ilter-Item {
`Filter-ltem-Type EQUALITY
`Attribute-Type Producer
`Match-Value "Digital"
`
`l F
`
`ilter-ltem{
`Filter-Item-Type EQUALITY
`Attribute-Type lssuer
`Match-Value "Digital"
`
`}
`‘Filter-Item {
`Filter-Item-Type EQUALITY
`Attribute-Type Product-Name
`Match-Value "Amazing Graphics System"
`
`l
`
`l
`
`l
`
`l
`
`HG. 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,457l, 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 U.S. 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-
`
`l0
`
`I5
`
`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 govem-
`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-
`base application or use a third-

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