throbber
United States Patent [19]
`Olsen
`
`g
`
`[11] Patent Number:
`[45] Date of Patent:
`
`5,758,069
`May 26, 1998
`
`i
`
`‘
`
`‘
`
`US005758069A
`
`[54] ELECTRONIC LICENSING SYSTEM
`
`[75] Inventor: James E. Olsen. Park City. Utah
`
`73
`[
`1
`
`Assi nee: Novell Inc.. Orem. Utah
`g
`4
`
`[211 APPl-N0-=620,319
`.
`_
`[22] Filed.
`
`Mar. 15, 1996
`
`8/1994
`5,343,527
`9/1994
`5,349,642
`5,3717% 12/1994
`5,375,206 12/1994
`5’386’369
`1,1995
`5,438,508
`8/1995
`5,500,513
`3/ 1996
`5,553,139
`9/1996
`5,579,222 11/1996
`5,621,201
`4,1997
`
`[51] Int. Cl.6 .......................... .. H04L 9/00
`[52] us. C1. .............................. .. 395/187.01;395/188.01;
`395/186; 380/4; 380/25
`[58] Field of Search ............................. .. 395118701. 186.
`395/18801. 609; 380/4. 25
`
`FOREIGN PATENT DOCUMENTS
`
`A-38209 4/1993 Australia.
`M8113 3/1994 Australia.
`WO 89/0452‘)
`5/1939 WIPO
`WO 92/20021 11/1992 WlPO.
`
`[56]
`
`1
`
`References Cited
`
`U-S- PATENT DOCUMENTS
`9/1989 Kahle m1. .......................... .. 395/605
`
`4,870.568
`
`_
`Primary Examiner-Robert W. Beausoliel. Jr.
`Assistant Examiner—l_,y V. Hua
`Ammey, Age“ 0’ FmHncu 8‘ Winn“ L'L-P
`
`4,924,378
`4,937,863
`4,941,175
`5,023,907
`
`5/1990 Hershey ...... ..
`6/1990 Robert 61 a]. ..
`7/1990 Enescu et a1.
`6/1991 1011118011 81 a1.
`yzraeg?lfm
`8/1992 0618111 ............ ..
`5:138:7l2
`5,182,770 M993 Medveczky et aL
`5437370 2/1993 Mishimaemy
`5,201,048
`4/1993 Coulter et a1.
`5,204,897
`4/1993 Wyman
`5,222,134
`6/1993 Waite e131
`5260999 11/1993 wyman - - - - - - - - -
`
`. 395/13701
`380/4
`-- 330/4
`.
`
`.. 395/186
`330/4
`, 385/145
`. 395/603
`.. 380/4
`330''4
`- - - - -- 330/4
`
`11/1993 T111116 . . . . . . . . . . . . . . - -
`
`. . . . .. 395/604
`
`ABSTRACT
`[57]
`A licensing system provides enhanced ?exibility for licens
`ing applications in a network. The licensing system includes
`a license certi?cate database which stores all license infor
`mati‘m' Th6 11cm“ ccm?cate database is accessed by
`providing a request to a license service provider associated
`with a server. The license service provider generates an
`executable entity based on the request parameters. which
`searches the database and. if the appropriate units are
`available. assembles a license. The license and the applica
`tion are then transmitted to the requesting client. All aspects
`
`of the transaction alt also storcd in a database organized
`according to a transaction’s relation to a particular license.
`
`5,319,705
`5,343,526
`
`.... .. 380/4
`6/1994 Halter et a1.
`8/1994 Lassexs ...................................... .. 380/4
`
`19 Claims, 6 Drawing Sheets
`
`p04
`
`,/ 100
`
`sews/e
`
`mz/
`
`ms
`./
`
`///2
`
`HO
`/
`LSP 110 CERT
`m4
`0s
`smvm /
`
`cur/u
`
`cum/r
`
`cur/w
`
`“16/
`
`706/
`
`706/
`
`106
`
`CLIENT )
`ACO MNG
`AP]
`AP]
`
`IPR2017-01290
`Ubisoft EX1014 Page 1
`
`

`

`US. Patent
`
`May 26,1998
`
`Sheet lot‘ 6
`
`5,758,069
`
`I12
`104
`I00
`I ,0
`/
`/ / /
`LSP
`LIC CERT
`SERVER
`DB
`SERVER /
`
`704
`
`102/
`
`108 f
`
`cuE/vr
`
`cuE/w'
`
`cuE/vr
`
`706/
`
`105/
`
`106/
`
`706
`
`CLIENT )
`ACO MNG
`API
`AP]
`
`202 }
`J
`204
`J
`205
`\J
`
`RESPONSE
`DIRECUON
`OF
`C005
`
`no
`
`NCP HANDLER
`
`PARSER
`
`IMPLEMENTATION TRANSLATOR
`
`DA TABASE
`ACCESS
`SYSTEM
`
`TRANSACTION
`TRACKING
`SYSTEM
`
`/
`
`208
`
`/
`
`270
`
`FIG. 2
`
`REQUEST
`DIRECTION
`0F
`5005
`
`I
`
`IPR2017-01290
`Ubisoft EX1014 Page 2
`
`

`

`US. Patent
`
`May 26, 1998
`
`Sheet 2 of 6
`
`5,758,069
`
`F/G. 3
`
`LZJZH
`JGENNEIER
`304/
`305/
`
`~20?
`
`DAM
`
`J08
`/
`
`306A
`
`5048
`
`505,9
`
`1D LENGTH DATA ID LENGTH DATA [0 LENGTH
`/
`/
`/
`/
`
`504A
`
`308A
`
`3065
`
`504C
`
`5060
`
`CONFIGURATION
`
`(Roar)
`
`I
`
`I
`
`UTAH
`
`1
`
`CALIFORNIA
`
`NPD
`
`N56‘
`
`IAMG
`
`ENGINEERING
`
`MARKETING
`
`ENGINEERING
`
`MARKETING
`
`IPR2017-01290
`Ubisoft EX1014 Page 3
`
`

`

`US. Patent
`
`May 26, 1998
`
`Sheet 3 of 6
`
`5,758,069
`
`FIG. 5
`
`( START )
`
`SCAN LOCAL / 500
`com/[cum TABLE
`
`502
`
`506
`
`N0
`
`LSP
`LOCATED
`?
`
`N0
`
`DIRECTORY
`5mm:
`?
`
`YES I
`
`SCAN CURR
`CONTAINE
`508/
`
`512
`
`/5 14
`5am
`RENT
`TAINER
`
`mm
`
`R500
`/
`504
`
`575
`
`,
`
`5 70
`
`/
`RU
`ERR
`
`IPR2017-01290
`Ubisoft EX1014 Page 4
`
`

`

`US. Patent
`
`May 26, 1998
`
`Sheet 4 0f 6
`
`5,758,069
`
`F/G. 6
`
`@_
`
`/ SCAN CURRENT
`600
`DATABASE
`
`602
`
`TNTTTATE
`RE QUEST
`
`670/
`
`SELECT PARENT
`CONTAINER
`
`605
`CONTACT NEXT /
`LSP
`
`612
`
`ERROR
`
`IPR2017-01290
`Ubisoft EX1014 Page 5
`
`

`

`U.S. Patent
`
`May 26, 1993
`
`Sheet 5 0f 6
`
`5,758,069
`
`FIG. 7
`
`(
`
`START )
`
`CR64 TE LICEN
`CERTIFICATE OBJ
`
`WRITE LICENSE
`CERTIFICATE
`BUFFER FOR
`
`700 /
`
`702 f
`
`704
`
`STORE BUFFER IN
`LICENSE CERTIFICATE
`DATABASE
`
`END
`
`85
`
`828
`
`LSP
`
`SECURITY
`OK
`?
`
`YES
`
`830
`
`ERROR
`
`CONSUM
`LICENSE UN
`
`832
`
`E NOUOH
`UNITS
`?
`
`834
`
`836
`
`ERROR
`
`YES
`TR SMIT HANDLE / 838
`CLIENT
`
`(END)
`
`IPR2017-01290
`Ubisoft EX1014 Page 6
`
`

`

`US. Patent
`
`May 26, 1998
`
`Sheet 6 0f 6
`
`5,758,069
`
`F/G. 8A
`
`CLIENT
`
`NO
`
`ERROR
`
`506
`
`LSP
`
`( START )
`
`SELECT APPLICATION
`
`802 /
`
`804
`
`YES
`/ 808
`ASSEMBLE AND
`TRANSMIT REQUEST
`i
`RECEIVE AND
`DECODE REQUEST
`
`870
`/'
`
`ASSICN AND STORE
`LICENSE HANDLE
`
`874 /
`CREATE CERTIFICATE
`DATABASE OBJECT
`
`SE4RCH LOCAL LICENSE
`CERTIFICATE DATABASE
`
`CREATE LICENSE
`CERTIFICATE OBJECTS
`
`SELECT NEXT
`LSP & SEARCH
`
`ERROR
`
`IPR2017-01290
`Ubisoft EX1014 Page 7
`
`

`

`1
`ELECTRONIC LICENSING SYSTEM
`
`5.758.069
`
`BACKGROUND OF THE INVENTION
`1. Field of the Invention
`The invention relates to licensing software. and more
`particularly. to licensing software electronically in a network
`environment.
`2. Description of the Related Art
`Most software vendors currently favor licensing as the
`preferred method of distributing software. licensing soft
`ware provides the vendor with a certain amount of control
`over the distributed software which may be used to the
`vendor’s advantage. For example. licensing software allows
`the vendor to prohibit unauthorized usage of the software
`that might facilitate unauthorized copying. In addition.
`licensing provides an advantageous method of providing and
`billing for software. Through licensing. the vendor may sell
`several identical copies of the same software and charge the
`buyer for each copy.
`'
`Licensing schemes have adapted to the network environ
`ment as well as the individual personal computer. In a
`network environment. such as a client-server network. mul
`tiple users may access the same copy of a particular appli
`cation. Consequently. the vendor can charge the network
`owner not for the number of copies installed on the network.
`but for the number of users having access to the software.
`Software is conventionally licensed using an agreement
`between the vendor and the user or administrator. The
`agreement is typically either a conventionally signed con
`tract or a “shrink wrap” agreement attached to the packaging
`for the software. to which the licensee acknowledges agree
`ment by opening the package.
`Although traditional licensing and shrink wrap licensing
`are more or less applicable to licensing for individual
`systems. they are not well-suited to the network environ
`ment. Both traditional and shrink wrap licensing schemes
`are di?icult to enforce on a network where several users
`have access to the software. Consequently. various elec
`tronic systems have been devised for controlling access to
`software on a network.
`Electronic licensing typically comprises providing a set of
`_ criteria under which a request for an application from the
`server should be granted. One common licensing system
`uses a ?xed set of licenses controlled by a license server. The
`license information is maintained in a license database.
`along with information regarding which applications are in
`use and how many units are still available. The information
`in the database may be encrypted to prevent forgeries. When
`an application is desired. the application commences run
`ning. Code embedded in the application initially requests a
`license from the server to facilitate the execution of the
`application. The server checks the database of licenses. and
`if the appropriate licenses are available. grants the request.
`As requests are received and licenses granted. the relevant
`information is logged into a ?le to track usage of the various
`applications.
`If a license is not available. the client contacts another
`server to ?nd the appropriate license. The client in the
`conventional system has the responsibility to obtain licenses
`from the various servers. and the individual servers provide
`resources at the client’s request. To facilitate such licensing.
`the application typically includes a library of programs
`designed to contact the server. request a license. and track
`the resulting license.
`Although such a licensing system provides some security
`against unauthorized usage of applications. it suffers several
`
`20
`
`25
`
`35
`
`45
`
`50
`
`65
`
`2
`drawbacks. For example. the number of programs required
`for the client to request and maintain licenses occupies a
`significant portion of the client’s valuable memory
`resources. Further. a conventional licensing system stores
`most of the licensing information in the client’s memory.
`Consequently. in the event of a client crash. the licensing
`information is lost and di?icult to reconstruct.
`Conventional licensing systems also suffer limited scal
`ability. When a call is made to a server. all of the execution
`occurs on each individual server for any particular call.
`Similarly. if a license is located on a particular machine. all
`execution necessary to operate on that license occurs on that
`machine. Consequently. a central server containing most of
`the licenses available on a particular network may be
`overworked while other. more local server resources remain
`idle.
`In addition. conventional licensing systems rely on code
`embedded in the application to establish the licensing
`attributes. Code is placed in the application which interprets
`information received from the server to establish licensing
`parameters. Because the behavior of the license is not
`established until after the request has been made and the
`license obtained. the user cannot read the license terms prior
`to the request. In addition. this system lacks ?exibility. To
`change the licensing terms. the code in the application must
`be revised
`An electronic software licensing system is thus needed
`which overcomes the shortcomings of the prior art.
`SUMMARY OF THE INVENTION
`An electronic licensing system according to various
`aspects of the present invention provides alternative meth
`ods and apparatus for licensing software in a network
`environment. License information is suitably stored in a
`distributed database among several servers. The license
`information may be coupled with any suitable attributes to
`create a desired licensing policy. Clients are equipped with
`a suitable library of application programming interfaces
`(APIs) for acquiring and managing licenses. To request an
`application. the client assembles a request having the desired
`license criteria. such as the publisher. product. version. and
`number of license units. This information is provided with
`other relevant information. such as the user’s name.
`When the request for a license to an application is
`received by a local server. the server searches the local
`database for license information which satis?es the request
`criteria. The server also suitably passes the request to other
`servers to check their respective databases. If the requested
`license rights are available. the license service provider
`(LSP) constructs a license certi?cate object and collects
`those rights into the object. When this object is created. it is
`associated with the client request. suitably by a name
`referred to as a license handle. and adjusts the information
`in the database to re?ect the granting of the license.
`In a system according to a preferred embodiment of the
`present invention. most of the license transactions occur at
`the servers; the client merely bundles the arguments for a
`license request and transmits them to the server.
`Consequently. the client resources required for the license
`system are relatively small.
`In accordance with a further aspect of the present
`invention. recoverability of the system is enhanced To
`anticipate a client crash. the client only needs to store the
`license handle associated with the license request. The
`remaining information is stored in the server database. and
`may be reestablished by finding the particular transaction
`associated with the license handle in the database.
`
`IPR2017-01290
`Ubisoft EX1014 Page 8
`
`

`

`5.758.069
`
`3
`In accordance with yet a further aspect of the present
`invention. licensing ?exibility is also enhanced. The licens
`ing criteria may be adjusted by revising the contents of the
`database and the client APIs. Because the application
`requires no particular code to facilitate licensing. recompi
`lation or relinking of the application binaries is unnecessary
`to change the licensing attributes. In addition. the structure
`of the database and the APIs facilitates the use of uncon
`ventional licensing modes by applying various different
`criteria to the license information in the database and the
`license request. Further. the distributed nature of the data
`base provides enhanced scalability and allows several serv
`ers to be searched with a single request from the client.
`
`BRIEF DESCRIPTION OF THE DRAWING
`FIGURES
`
`15
`
`The subject matter of the invention is particularly pointed
`out and distinctly claimed in the concluding portion of the
`speci?cation. The invention. however. both as to organiza
`tion and method of operation. may best be understood by
`reference to the following description taken in conjunction
`with the claims and the accompanying drawing. in which:
`FIG. 1 is a block diagram of a network according to
`various aspects of the present invention;
`FIG. 2 is a block diagram of the LSP of FIG. 1;
`FIG. 3 is a diagram of the organization of a license record;
`FIG. 4 is a block diagram illustrating an example con
`?guration of a network serviced by a directory service;
`FIG. 5 is a ?ow diagram of a process for a client to locate
`an LSP‘,
`FIG. 6 is a ?ow diagram of a process for an LSP to locate
`another LSP;
`FIG. 7 is a ?ow diagram of a process for installing a
`license in the license certi?cate database; and
`FIGS. 8A-B comprise a ?ow diagram of a process for
`requesting and generating a license for an application.
`
`25
`
`35
`
`DE'I‘ALED DESCRIPTION OF PREFERRED
`EXEMPLARY EMBODIMENTS
`
`4
`handler 202 suitably processes several requests concur
`rently. NCP handler 202 notes the message contents. as well
`as the source of the message to establish a return location.
`The message received by NCP handler 202 is transmitted
`to parser 204. Parser 204 initially determines which particu
`lar function is requested and converts the message into an
`appropriate format for other components of server 104.
`Based on the type of transaction. parser 204 then parses out
`the appropriate arguments from the message and transfers
`the results to implementation translator 206.
`Implementation translator 206 ?rst checks all arguments
`for validity. and if any arguments fail. returns a rejection
`message to client 106. If the arguments are valid. imple
`mentation translator 206 translates the arguments into the
`appropriate request for licenses from database access system
`208. In addition. implementation translator 206 translates
`results from database access system 208 and returns the
`appropriate error codes to client 106. Finally. if database
`access system 208 cannot locate the necessary license cer
`ti?cate objects in the local license certi?cate database. it
`submits requests to other LSPs to attempt to locate the
`necessary license certi?cate objects.
`Database access system 208 receives requests from imple
`mentation translator 206 and locates. obtains. and manages
`license certi?cates in license certi?cate database 112. Data
`base access system 208 suitably includes code for accessing
`license certi?cate database 112 both locally and in remote
`LSPs. The process for accessing and creating licenses from
`the database is described in detail below.
`To access license certi?cate database 112 to perform
`various functions. database access system 208 suitably
`assembles a license certi?cate object for each license cer
`ti?cate installed in license certi?cate database 112. A license
`certi?cate object suitably comprises code for performing
`various functions within license certi?cate database 112.
`such as adding. removing. requesting. and releasing a
`license certi?cate. In addition. the license certi?cate object
`suitably provides information regarding the corresponding
`license certi?cate and its state. For example. based on the
`user information or a license handle. the license certi?cate
`object suitably locates the corresponding license certi?cate
`and transmits information relating to the current users.
`number of units in use. identi?er information. default update
`period. ownership information. and the like.
`The license certi?cate object also suitably performs vari
`ous license management functions. For example. the license
`certi?cate object facilitates adding assignment information
`to license certi?cates to assign or delete par1icular users to
`an application for access. In addition. ownership of the
`license may be transferred to another user or group using the
`license certi?cate object.
`The license certi?cate object also provides for removal of
`stale entries. The license certi?cate object monitors updates
`received from the various clients 106 to indicate that the
`application is still in use. As described further below. if the
`update is not received within the appropriate update interval.
`the license certi?cate object terminates the license by per
`forming arelease operation. This allows the enhancement of
`license certi?cate capabilities without affecting the API
`implementation code.
`Transaction tracking system 210 tracks the usage history
`of licensing system 100. Transaction tracking system 210
`suitably includes a transaction database. which stores rel
`evant usage information. such as when licenses are
`consumed. when updates occur. when license units are
`released. and error conditions. Transaction tracking system
`
`45
`
`55
`
`A licensing system according to the present invention
`provides a ?exible and robust licensing apparatus and
`method for licensing software in a network. Referring now
`to FIG. 1. a licensing system 100 according to various
`aspects of the present invention suitably includes a network
`102 comprising at least one server 104. at least one client
`106. and a communications system (e.g.. network bus) 108.
`Server 104 suitably comprises a high-speed computer oper
`ating on a Novell NetWare server operating system. If
`multiple servers are present. servers 104 are suitably con
`?gured in a distributed processing con?guration.
`Server 104 includes a LSP 110 for performing license
`transactions and a license certi?cate database 112. LSP 110
`performs several licensing functions. for example receiving
`requests from clients 106 and maintaining and searching
`license certi?cate database 112 to create license certi?cate
`objects. LSP 110 may be implemented in software. suitably
`comprising a NetWare Loadable Module in the Novell
`NetWare 4.1 environment.
`Referring now to FIG. 2. LSP 110 suitably comprises a
`NetWare Core Protocol (NCP) handler 202; a parser 204; an
`implementation translator 206; a database access system
`208; and a transaction tracking system 210. NCP handler
`202 receives messages from clients relating to various
`licensing functions. To handle multiple messages. NCP
`
`65
`
`IPR2017-01290
`Ubisoft EX1014 Page 9
`
`

`

`' 5,758,069
`
`5
`210 suitably organizes information relating to licenses in
`transactional records based on each license handle. For
`example. information relating to each transaction affecting
`or based on a particular license handle is recorded in a
`transaction record devoted to that license handle.
`Consequently. unlike a chronological log. determining the
`usage history of a particular application does not require a
`search of an entire database. In contrast. all of the relevant
`information is stored in a record having an identifying
`license handle.
`Referring again to FIG. 1. license certi?cate database 112
`suitably comprises any database capable of storing license
`information. For example. license certi?cate database 112
`may be generated with a commercially available database
`system. such as BTrieve. License certi?cate database 112
`stores all of the information relating to the various licenses
`available via LSP 110. The format of license certi?cate
`database 112 is suitably con?gured to conform to that of the
`various license certi?cates.
`The information in license certi?cate database 112 is
`suitably organized into license records. each of which suit
`ably contains a license certi?cate supplied by a vendor or
`other installer along with additional information relating to.
`for example. the location of assignment information and
`user information. The license certi?cate is stored in the
`record in a block copy fashion. so that all of the data and
`structure of the certi?cate are preserved. Additional space is
`also suitably provided for information required by licensing
`system 100. For example. space may be added to the record
`for entry of information relating to the user. license handle.
`number of license units consumed. the last time of update.
`assignment. and owner. Fach license record is suitably
`extendable by adding additional identi?ers that may be
`recognized by certi?cate objects.
`The license information stored in license certi?cate data
`base 112 is suitably stored in a format common to each
`license. Referring now to FIG. 3. a suitable format for a
`license record 302 comprises an identi?er ?eld 304. a data
`length ?eld 306. and a data ?eld 308. A suitable identi?er is
`stored in identi?er ?eld 304. for example to identify the
`nature of license record 302. Data length ?eld 306 describes
`the length of data ?eld 308. suitably in bytes. Data length
`?eld 306 suitably comprises a four byte number. for example
`in little endian format. Data length ?eld 306 may be read to
`determine where the current license record 302 ends and
`where the next license record 302 begins.
`Data ?eld 308 suitably contains information speci?c to
`the license. Data ?eld 308 is formatted in any suitable
`manner to be compatible with licensing system 100. In
`particular. data ?led 308 suitably contains nested sets of
`identi?ers. data length ?elds. and data ?elds for various
`characteristics and variables associated with the license
`record. For example. each entry in the data ?eld suitably
`includes an identi?er 304A-C which indicates the type of
`information in the entry. e.g. an error attribute. ownership
`data. etc. A data length ?eld 306 A-B indicates the length of
`the entry. and a data ?eld 308A-B includes the actual
`information. The format may suitably be determined accord
`ing to a portion of the identi?er. so that if licensing system
`100 does not recognize the relevant portion of identi?er ?eld
`304. data ?eld 308 is ignored The information stored in data
`?eld 308 is provided by license installation or creation. as
`described further below.
`Referring again to FIG. 1. client 106 suitably comprises a
`conventional network terminal. for example a personal com
`puter or work station. Client 106 is connected to server 104
`
`20
`
`25
`
`35
`
`45
`
`55
`
`6
`through a conventional network interface. To operate in
`conjunction with licensing system 100. client 106 suitably
`includes a series of application programming interfaces
`(APls). The speci?c APIs provided may conform to the
`particular platform on which client 106 operates.
`The APIs are suitably provided to client 106 by a client
`provider or library. The client provider. suitably comprising
`a module loaded into each client 106. provides the licensing
`APIs and a remote procedure call (RPC) mechanism for
`client 106. Client 106 requests access to and manages
`applications using the APIs. The RPC mechanism both
`locates and communicates to LSPs 110. Finally. the client
`provider also suitably performs various library maintenance
`routines as may be necessary for the various shared library
`formats.
`Client 106 uses a series of functions gathered in the APIs
`furnished by the client provider to request licenses from LSP
`110. The APIs are suitably linkable or addressable entities
`according to the particular platform used by client 106. The
`licensing API library associated with client 106 is suitably
`con?gured in a standard format. for example. the industry
`standard called the LSAPI (v1.1). jointly created by Novell.
`Microsoft. HP/Gradient. and several other companies. The
`APIs generally provide for the acquisition and management
`of the licenses. Client 106 according to various aspects of
`the present invention suitably includes at least two library
`sets. The ?rst library set provides the license acquisition
`API. and the second is the license management API.
`The license acquisition API provides for obtaining.
`maintaining. and releasing license units corresponding to a
`particular application. The license acquisition API prefer
`ably provides license acquisition functions compatible with
`a broad array of platforms employed by licensing system
`100 platform so that software developers are afforded con
`siderable ?exibility in designing applications which may be
`conventionally licensed in the context of licensing system
`100. Preferably. the application requires very little informa
`tion about licensing system 100‘s particular process for
`acquiring and constructing licenses.
`The calls used to provide this functionality suitably cor
`respond to industry standard APIs. such as the common
`licensing API. or LSAPL version 1.1. as described above.
`The standard API allows a server 104 to license applications
`independent of the underlying licensing system 100. The
`license acquisition API facilitates requesting. updating. and
`releasing licenses. establishing the update period for
`licenses. and translating error codes.
`The license management API suitably provides access to
`information that directly pertains to the license acquisition
`process. In addition. the license management API also
`suitably provides for con?guring and examining licensing
`system 100. The license management API is useful as an
`administrative tool and in a software management system.
`The license management API facilitates determination of.
`for example. license usage. license restrictions. license
`installation and information. and transactional records.
`Further. the license management API suitably provides calls
`for adding and removing license units from a license
`certi?cate. transferring ownership. and installing a license
`certi?cate either into licensing system 100 or onto a speci?c
`LSP 110.
`Communications system 108 suitably comprises a series
`of transmission channels connecting servers 104 and clients
`106. including various supporting hardware and software.
`Communications system 108 facilitates communications
`between two or more servers 104 and between servers 104
`
`65
`
`IPR2017-01290
`Ubisoft EX1014 Page 10
`
`

`

`5.75 8.069
`
`7
`and clients 106. Communications system 108 comprises any
`suitable communications medium. such as conventional
`copper wire. ?ber optics. or Wireless signals.
`Licensing system 100 suitably operates in conjunction
`with a directory service. such as NetWare Directory
`Services. for organization and location of various compo
`nents. The directory service allows network 102 to be
`organized in a logical manner for administration. applica
`tions sharing. document sharing. and the like. For example.
`referring now to FIG. 4. the various servers 104 and clients
`106 may be organized into divisions and subdivisions based
`on job description. geographical location. or other selected
`criteria. The directory service organization may be used to
`control and facilitate searching for licenses among the
`various LSPs 110. as described in greater detail below.
`Each respective client 106 communicates with the various
`servers 110 over communications system 108. Client-server
`communications are suitably transport independent. for
`example using NCP extensions. Client communication com
`ponents are preferably single sourced across all platforms to
`increase portability. For example. NWCalls from Novell
`may be used. which provides a platform independent mecha
`nism for accessing Novell NetWare resources.
`To communicate with LSP 110. client 106 ?rst locates an
`LSP. and then communicate its request to LSP 110. Each
`LSP connected to communications system 108 suitably
`registers its handler 202. Consequently. when client 106
`seeks LSP 110. it suitably scans its connections for an NCP
`handler 202 registered with the appropriate name.
`For example. referring to FIG. 5. to locate an available
`LSP. client 106 suitably scans its local connection table for
`the NCP service name providing the licensing service (step
`500). If an LSP 110 is located (step 502). client 106 initiates
`its request. suitably using an appropriate RPC (step 504). If
`an LSP 110 is not located. client 106 determines whether a
`directory service is available (step 506). If no directory
`service is available. an error arises indicating that no LSP
`110 could be located (step 510).
`If a directory service is available. the current directory
`context is scanned for available LSPs 110 (step 508). If no
`LSP 110 is located in the current container (step 512). client
`_ 106 begins searching the parent container (step 514). The
`search continues through the parents of the current container
`until the root is reached (step 526). If no LSPs 110 are found.
`client 106 receives an error indicating that licensing system
`100 is not available (step 510). If an LSP 110 is found. client
`106 connects to LSP 110 and transmits its request and
`continues its communications (step 504).
`Network 102 also suitably facilitates communications
`between the various servers 104. LSPs. 110 are suitably
`con?gured to provide a distributed license certi?cate data
`base 112 available to each client 106. To provide the
`distributed database con?guration. LSPs 110 are intercon
`nected. Referring now to FIG. 6. to locate other LSPs 110 to.
`for example. ?nd license units to ful?ll a request. a ?rst LSP
`110 scans its current directory context for other LSPs 110
`con?gured for license database attributes (step 600). LSP
`110 can then communicate with any LSPs 110 located. If the
`necessary units are not located (step 602). LSP 110 then
`moves out one level in the directory context (step 604) and
`tries to contact LSPs (step 605). continuing until either the
`root is reached (step 606). the appropriate responses are
`received (step 602). or an administrator de?ned limit is
`reached (step 608). If none is found. an error is returned
`(step 612). If an LSP 110 is located. the request is initiated
`(step 610).
`
`20
`
`25
`
`35
`
`45
`
`8
`Each LSP 110 is suitably associated with various
`attributes which indicate the status of the particular LSP to
`the other LSPs 110. For example. suitable attributes include
`license database attributes. transactional database attributes.
`and an NCP pointer. The license database attribute indicates
`whether LSP 110 is con?gured to support a local license
`certi?cate database 112. Similarly. the transactional database
`attribute indicates whether LSP 110 is con?gured to support
`a transactional tracking system 210. The NCP pointer facili
`tates location of and communication with the corresponding
`NCP object.
`To facilitate licensing of the various applications. a set of
`license information relating to licensed applications is
`installed in license certi?cate database 112. The license
`information is suitably provided by the vendor to facilitate
`access to applications. The information stored in the various
`license certi?cate databases 112 is suitably collectively
`available to each of LSPs 110. Consequently. each LSP 110
`suitably stores different license information.
`A license system 100 according to various aspects of the
`present invention allows various users to control entry and
`maintenance of licenses other than the administrator. When
`a user enters a license into the license system. the installer
`is considered the “owner” of the license. Only users having
`su?icient security clearance may modify or delete the
`installed license. Ownership of the license may also be
`transferred to o

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