`
`
`
`
`
`Ex. 1016
`Ex. 1016
`
`US Patent No. 5,708,709 (‘“‘Rose’’)
`US Patent No. 5,708,709 (“Rose”)
`
`
`
`
`
`
`
`United States Patent [19]
`Rose
`
`|||||||||||||||||||||||
`5,708,709
`Jan. 13, 1998
`
`US005708709A
`[11] Patent Number:
`[45] Date of Patent:
`
`[54] SYSTEM AND METHOD FOR MANAGING
`TRY-AND-BUY USAGE OF APPLICATION
`PROGRAMS
`
`[75] Inventor: John R. Rose, San Jose, Calif.
`[73] Assignee: Sun Microsystems, Inc., Mountain
`View, Calif.
`
`[21] Appl. No.: 569,804
`[22] Filed:
`Dec. 8, 1995
`[51] Int. Cl* … H04L 9/32; HO4L 9/30
`[52] U.S. Cl. … 380/4; 380/9; 380/23;
`380/25; 380/30; 380/49
`[58] Field of Search ............................... 380/4, 9, 23, 25.
`380/30, 49, 50
`
`[56]
`
`References Cited
`U.S. PATENT DOCUMENTS
`4,924,378 5/1990 Hershey et al. ........................ 380/4 X
`5,438,508 8/1995 Wyman ................................... 380/4 X
`Primary Examiner—Bernarr E. Gregory
`Attorney, Agent, or Firm—Gary S. Williams; Flehr Hohbach
`Test Albritton & Herbert
`-
`[57]
`ABSTRACT
`A system and method for managing the distribution of
`
`licensed application programs stored on a server over a
`distributed computer system maintains control over the
`program even after the program has been distributed to a
`client computer from a provider on an information server.
`Protection may include license expiration date verification,
`authorized user ID verification, and protection against
`decompilation and reverse engineering by maintaining the
`program in an encrypted form until verification of the
`expiration date and user identity are complete and the
`program is ready for decoding, loading into the client
`computer CPU, and execution. A user identifies a program
`for trial use by any conventional means such as by using a
`network browser on the World Wide Web. The server
`recognizes a user request to access the application program.
`The server may have an agent on the client computer for
`performing certain predetermined administrative tasks. This
`agent may take the form of an application builder program
`module, provided by the trial application provider, which is
`resident on the client computer. The server (including the
`agent) determines whether program access conditions are
`satisfied, and if satisfied transmits a version of the program
`to the client. The transmitted file includes an encrypted
`portion. The server and agent also verify that the user is
`currently entitled to execute the application program includ
`ing that the trial license has not expired at the time the user
`initiates execution, and generates an executable version of
`the application program.
`
`15 Claims, 7 Drawing Sheets
`
`
`
`Client 102
`Operating System
`
`109
`
`Application Builder
`
`User Interface
`
`Application?-Trial Version
`(encrypted)
`Application2-Trial Version
`(encrypted)
`
`122
`
`Information Server
`
`124
`
`Application2-Tria? Version
`Application3-Trial Version
`
`
`
`U.S. Patent
`
`Jan. 13, 1998
`
`Sheet 1 of 7
`
`5,708,709
`
`100
`\-A
`
`107 Client 102
`RAM | |Operating System
`
`109
`
`110
`
`118
`
`
`
`Web Browser
`Application Builder
`
`
`
`##########5
`£333333333;
`
`User Interface
`
`*
`
`* *
`
`*
`
`-
`
`111
`112
`103
`113
`Private/Public Key(s
`114
`Program Decoder Mod.
`115
`License Handler Mod.
`Program Execution Mod. FS 116
`Application1-Trial Version
`117
`(encrypted)
`119
`Communications || Application2-Trial Version
`Interface
`(encrypted)
`Tº TT
`
`102
`
`106
`
`1 O2
`
`Network Interconnectivity
`(Switches, etc)
`
`120
`
`128
`Communications
`Interface
`
`104
`
`122
`
`information Server
`
`
`
`124
`
`Secondary Memory (Disk)
`1
`Operating System
`Web Server Application and Web Pages §
`Trial Licensing Application Program
`134
`User Interface || Encryption and Formatting Module
`135
`Public & Private Keys
`137
`Application Builder
`136
`Application1-Trial Version
`138
`Application2-Trial Version
`140
`Application3-Trial Version
`142
`
`FIGURE I
`
`
`
`U.S. Patent
`
`Jan. 13, 1998
`
`Sheet 2 of 7
`
`5,708,709
`
`160
`
`
`
`TRY AND BUY WEBSITE
`
`For Generation information, Select:
`The Try & Buy Program
`165
`
`163
`
`Application1
`1683 || Application2
`
`166
`Application Builder F-- 167
`
`164
`
`169
`
`To Download a Trial Version of any of the following
`programs, select that item here:
`Application1
`Application2
`Application3
`
`Application Builder
`
`170
`
`FIGURE 2
`
`
`
`Trial Version of Application 180
`Stored in Server Format
`Application ID
`Licensee ID
`(Blank or Dummy)
`License Termination Date
`(Blank or Dummy)
`Server Public Key
`App Pgm 1 documentation
`License terms and
`relicensing information
`Application Program 1
`(non-encrypted)
`FIGURE 3
`
`
`
`182
`
`
`
`181
`
`
`
`183
`
`184
`
`185
`
`187
`188
`
`189
`
`
`
`U.S. Patent
`
`Jan. 13, 1998
`
`Sheet 3 of 7
`
`5,708,709
`
`186
`Trial Version of Application
`Stored in Transmission Format
`(encrypted)
`Application ID
`
`
`
`183
`184
`
`185
`
`187
`188
`
`189
`
`182
`
`
`
`
`
`
`
`181
`
`
`
`
`
`License Termination Date
`
`Server Public Key
`App Pgm 1 documentation
`License terms and
`relicensing information
`
`Application Program 1
`
`
`
`FIGURE 4
`
`186
`Trial Version of Application
`Stored in Transmission Format
`(Alternate Distributed Form)
`Application ID
`Server Public Key
`App Pgm 1 documentation
`License terms and
`relicensing information
`Application Program?-Part A
`(encrypted)
`
`183
`187
`188
`
`189
`
`
`
`
`
`184
`
`185
`
`Application Program?-Part B
`(encrypted)
`License Termination Date
`Application Program?-Part C
`FIGURE 5
`
`
`
`181
`
`181
`
`181
`
`
`
`5,708,709
`
`Sheet 4 of 7
`Jan. 13, 1998
`Trial Version of Application 196
`in Execution Format
`Application ID (optional)
`Licensee ID
`optional
`License Termination Date
`(optional)
`
`
`
`183
`
`184
`
`185
`
`Application Program 1
`(decoded & non-encrypted)
`
`FIGURE 6
`
`U.S. Patent
`
`182
`
`
`
`181
`
`192
`
`
`
`Select an Application or an
`Application component to include in
`your application:
`Application?
`Application2
`Application3
`
`193
`
`Expiration Date of Selected
`Application or Component:
`194
`xx/VV /zzzz
`
`FIGURE 7
`
`
`
`U.S. Patent
`
`Jan. 13, 1998
`
`Sheet 5 of 7
`
`5,708,709
`
`300
`\-sº
`
`302 - O
`
`304
`
`Monitor request for application
`program by client computer.
`
`
`
`
`
`
`
`
`
`
`
`Has Client computer
`requested access to an application
`program on server?
`
`
`
`3O8
`Compare predetermined access requirements
`to privileges of requesting client.
`
`
`
`310
`"J
`Do client privileges
`satisfy application program access
`requirements?
`
`Deny Access
`to Selected
`Application
`Program.
`
`
`
`Generate and transmit transmission
`formatted version of application program
`to client computer for receipt by user.
`
`
`
`
`
`
`
`
`
`
`
`316
`
`
`
`is client computer
`currently entitled to execute
`received application program?
`
`
`
`318
`Y
`Generate executable version of application
`program on client computer.
`
`320 O FIGURE 8
`
`
`
`U.S. Patent
`
`Jan. 13, 1998
`
`Sheet 6 of 7
`
`5,708,709
`
`400 Y-
`
`O
`
`User installs application builder on user computer | T 402
`
`Application builder builds encryption key
`
`User identifies/locates desired trial application
`program from available trial programs
`
`User requests trial license from try-and-buy server
`(or Application Builder requests trial license for
`user in response to user selecting trial application
`program)
`
`
`
`Try-and-buy server activates license application
`program on server
`
`Trial license application program in server
`confirms that client (user) computer has a
`licensed copy or trial copy of Application Builder.
`
`lf client (user) computer does not have licensed
`or trial copy of application builder, prompt client
`(user) to review licensing terms and request
`license to trial copy of Application Builder
`
`
`
`Trial license application program in server
`requests and receives user computer's application
`builders encrypted security data (Application
`Builder public key)
`
`
`
`
`
`
`
`404
`
`406
`
`408
`
`410
`
`412
`
`414
`
`416
`
`FIGURE 9A
`
`
`
`FIGURE 9A
`FIGURE 9B
`
`FIGURE 9
`
`
`
`U.S. Patent
`
`Jan. 13, 1998
`
`Sheet 7 of 7
`
`5,708,709
`
`
`
`
`
`
`
`Trial license application program generates trial
`version of the requested application program (a)
`encrypted with the client computer's Application
`Builder public key, and (b) includes a file header
`that specifies a (hard or soft) trial license
`expiration data.
`
`Client computer receives and stores encrypted
`trial application program in client storage format
`
`Client initiates execution of Application Builder
`
`Client computer receives and stores
`encrypted trial Application Builder program
`
`Client initiates execution of encrypted trial
`version of application program in conjunction
`with executing application builder
`
`Application Builder reads application program
`header.
`
`Application Builder compares expiration date in
`the header with the current date on clients
`computer.
`
`Application Builder verifies that license to trial
`version of application program has not expired
`
`Application Builder decrypts and decodes
`encrypted trial application program.
`
`FIGURE 9B
`
`418
`
`420
`
`422
`
`424
`
`426
`
`428
`
`430
`
`432
`
`434
`
`
`
`1
`SYSTEM AND METHOD FOR MANAGING
`TRY-AND-BUY USAGE OF APPLICATION
`PROGRAMS
`
`5,708,709
`
`2
`SUMMARY OF THE INVENTION
`In summary, the present invention provides a system and
`method for managing the distribution of licensed files
`including application programs over a distributed computer
`system that maintains control over the files even after the file
`has been distributed from a program provider on a server to
`an end user on a client computer. Protection includes license
`expiration date verification, authorized user verification
`(with or without a termination date grace period) protection,
`and protection against decompilation and reverse engineer
`ing by maintaining the application program file in an
`encrypted form until verification is complete and the pro
`gram is ready for decoding and execution.
`The inventive method and system for managing usage of
`an application program initially stored on a server coupled
`to a distributed computer system by a user includes recog
`nizing a user request to access an application program,
`determining whether predetermined access conditions are
`satisfied, transmitting a version of the application program
`to the computer associated with the user making the request
`for receipt and storage only when the access conditions have
`been satisfied, further verifying prior to program execution
`that the user is currently entitled to execute that received
`application program, and generating an executable version
`of the application program from the transmitted version only
`if the verification is affirmative.
`BRIEF DESCRIPTION OF THE DRAWINGS
`Additional objects and features of the invention will be
`more readily apparent from the following detailed descrip
`tion and appended claims when taken in conjunction with
`the drawings, in which:
`FIG. 1 is a block diagram of an embodiment of a
`distributed computer system incorporating the present
`invention.
`FIG. 2 is a schematic representation of an exemplary Web
`site page used to disseminate trial versions of programs that
`are available for licensing.
`FIG. 3 is a block diagram of an exemplary header record
`of the stored version of the Application Program on a server
`in a preferred embodiment of the invention.
`FIG. 4 is a block diagram of an exemplary header record
`of the transmission format of the trial version of an appli
`cation program shown in FIG. 3 in a preferred embodiment
`of the invention.
`FIG. 5 is a block diagram of an alternate form of an
`exemplary header record of the transmission format of the
`trial version of an application program shown in FIG. 4 in
`another preferred embodiment of the invention.
`FIG. 6 is a block diagram of an exemplary header record
`of the execution format of the trial version of an application
`shown in FIG. 4 in a preferred embodiment of the invention.
`FIG. 7 is a schematic representation of a menu presented
`by the Application Builder for executing trial versions of
`Application Programs.
`FIG. 8 is a flow chart of an embodiment of the trial
`application program execution method of the present inven
`tion.
`FIGS. 9, 9A, and 9B make up a flow chart of an alterna
`tive embodiment of the trial application program execution
`method of the present invention.
`DESCRIPTION OF THE PREFERRED
`EMBODIMENT
`Referring to FIG. 1, there is shown a distributed computer
`system 100 having many client computers 102 and at least
`
`The present invention relates to systems and methods for
`managing the distribution of licensed application programs
`and application program components, including the distri
`bution of trial versions of applications and components that
`automatically expire after the expiration of predefined trial
`usage privileges.
`BACKGROUND OF THE INVENTION
`For the purposes of this document, the term “application
`program” is defined to include applets and other application
`program components. A component is an incomplete pro
`gram fragment. Users can integrate application program
`components into a new application using an appropriate
`tool, such as the Application Builder of the present
`invention, discussed below.
`A number of different “try and buy” systems for distrib
`uting application programs and other types of computer
`software have been used in prior art systems. The most
`common mechanisms for limiting the rights of the users of
`the trial versions of application programs are “time bombs,”
`which disable the program after the expiration of a certain
`date, “usage metering” schemes which attempt to meter the
`number of hours of usage of the program and disable it after
`usage reaches a predefined limit, and various “capability
`limitation” schemes in which the capabilities of the trial
`version of the application are so limited that end users are
`motivated to license the standard version of the program.
`While software security systems in the past have
`attempted to prevent program copying using a number of
`copy protection schemes, including requiring end users to
`know a password or to possess a physical token that enables
`use of the program, such copy protection systems have
`generally not been used in existing try and buy software
`dissemination systems. The problem is particularly acute
`when the program is distributed over a distributed computer
`system, because the program file sent to a user over a wire
`or other communication channel is inherently copyable.
`It is a goal of the “try and buy” system and method of the
`present invention to prevent users from disseminating
`executable copies of application programs to other end
`users, because those other end users have not necessarily
`agreed to the licensing terms of the program’s owner.
`Another goal of the present invention is to give the owners
`of application programs reliable information about the par
`ties who have requested trial use of those programs.
`Another goal of the present invention is to make acqui
`sition of limited use rights (e.g., the right to use a trial
`version of a program) as automatic as possible so as to make
`the use of trial versions of programs as easy as possible.
`Another goal of the system and method of the present
`invention is to limit generation of an intelligible version of
`a file including an application program to a user only when
`the user is currently entitled to access the file.
`Afurther goal of the present invention is provide a system
`and method for limiting the period of time and storage
`location during which an intelligible version of a file is
`available to a user.
`Another goal of the system and method of the present
`invention is to limit generation of an executable version of
`an application program to a user only when the user is
`entitled to execute the application program at the time
`execution is attempted by the user.
`
`5
`
`10
`
`15
`
`25
`
`30
`
`35
`
`45
`
`55
`
`65
`
`
`
`5,708,709
`
`10
`
`15
`
`20
`
`30
`
`25
`
`3
`one information server computer 104. In the preferred
`embodiment, each client computer 102 is connected to the
`information server 104 via network interconnectivity means
`such as the Internet 106, although other types of communi
`cation connections could be used. While most client com
`puters are desktop computers, such as Sun workstations,
`IBM compatible computers and Macintosh computers, vir
`tually any type of computer can be a client computer. One
`or more users (not shown) are associated with each client
`computer 102.
`In the preferred embodiment, each client computer
`includes a CPU 107, a user interface 108, primary memory
`118 (such as fast random access memory), user communi
`cation interface 119 for communicating with the information
`server computer 104 via communication network 106, and
`additional memory 109 for storing an operating system 110,
`a World Wide Web browser program 111, an Application
`Builder program 112, and one or more Application Programs
`117. The Application Builder program 112 and Application
`Programs 117 contain features provided specifically by the
`present invention. Optionally included among these features
`is a client Licensee ID 103 imbedded in the Application
`Builder 112 and used for access verification as described in
`detail below. The Application Builder 112 also preferably
`includes a pair of public and private keys 113 that are unique
`to the client computer, a program decoder module 114, a
`license handling module 115, and a program execution
`module 116.
`The information server 104 includes a central processing
`unit (CPU) 120, primary memory 122 (i.e., fast random
`access memory) and secondary memory 124 (typically disk
`storage), a user interface 126, and a communications inter
`face 128 for communication with the client computers 102
`via the communications network 106.
`35
`For the purposes of the present discussion, it will be
`assumed that the information server's secondary memory
`124 stores: an operating system 130, a World Wide Web
`server application and a corresponding set of Web pages
`132, a trial licensing application program 134 for handling
`the licensing of Application Programs to end users associ
`ated with client computers 102, a copy of the aforemen
`tioned Application Builder 136 for transmission and licens
`ing to end users, a pair of public and private encryption keys
`137 for the server, and copies of the trial versions of various
`Application Programs 138, 140, 142 for transmission and
`licensing to end users.
`It is also assumed for the purposes of the present discus
`sion that the information server 104 is a World Wide Web
`Server, but other information servers may alternatively be
`employed. The Web Server application 132 controls the
`server's responses to requests by client computers 102 to
`retrieve files using standard World Wide Web (WWW)
`protocols. The Web Server Application works with a set of
`Web source flies, which are the documents and other files or
`objects that client computers 102 receive in response to
`properly formed requests. The present invention does not
`modify the Web Server application 132. Thus, operation of
`the Web Server site insofar as client computers 102 are
`concerned remains unchanged by the present invention.
`Referring to FIG. 2 there is shown a schematic represen
`tation of an exemplary home page 160 of the Web site
`(information server) 104, accessible by a user using client
`computer 102. The home page 160 includes a general
`information section 163 having menu selection buttons for
`obtaining information about the Try & Buy Program 165,
`Licensing Terms and Conditions 166, information about the
`
`45
`
`55
`
`65
`
`4
`Application Builder 167, and information about one or more
`Application Programs 168. For example, each Application
`Program may be described in terms of its functionality,
`storage requirements, minimum processor requirements for
`execution, monetary costs for permanent versions of the
`application program, and the like. Licensing terms and
`conditions may be Application Program specific, and further
`may contain provisions for specific Licensees or classes of
`Licensees.
`The home page 160 of the Web site (information server)
`104 also includes a Trial Version Program Download Selec
`tion Section 164 having a submenu 169 that includes selec
`tion buttons for each of several Application Programs as
`well as a button 170 for selecting the Application Builder. To
`download a Trial Version of any of the listed programs, the
`user merely selects one or more programs of interest from
`the menu in section 164.
`Alternately, the Web page may contain specialized HTML
`annotations, such as Java language applets that make contact
`with the user's Application Builder and cause it display
`remotely available applications as if they were on a similar
`organizational footing with locally available applications.
`The Application Program file is stored in one or more of
`several different formats depending on where in the distrib
`uted computer system 100 the file exists or is stored. There
`are four storage formats of particular interest:
`the Server Format, which is the format of the Application
`Program in Secondary Memory 124 of Information
`Server 104 prior to selection by a particular user;
`the Transmission Format, which is the format of the
`Application Program in storage in Secondary Memory
`124 of Information Server 104 after selection by user
`for downloading to client computer 102, and during
`transmission to the user;
`the Client Storage Format, which is the format of the
`Application Program in storage in memory 109 of the
`client computer 102 after the downloading is complete
`but prior to verification and execution (described
`hereinafter); and
`the Execution Format, which is the format of the Appli
`cation Program in temporary storage in RAM 118
`and/or CPU 107 during execution of the Application
`Program.
`The differences in the formats relate generally to exist
`ence and content of ancillary file information associated
`with the Application Program and the user (where
`applicable) such as information contained in header records,
`and with the encrypted or decoded condition of the execut
`able program and other fields. Each of these formats is
`described in greater detail below with respect to FIGS. 3–6.
`For the purposes of this document, the terms “decode”
`and “decrypt” shall be used synonymously to refer to the
`process of reversing the encryption of a set of information.
`Similarly, the adjectives “decoded” and “decrypted” shall be
`used synonymously to refer to a set of unencrypted infor
`mation that was generated from a corresponding set of
`encrypted information.
`In reference to FIG. 3, a schematic illustration of the
`Server Format 180 of an Application Program trial version
`138 is shown. The Server Format includes the non-encrypted
`application program 181, and may optionally include infor
`mation fields for Application ID 183, License Termination
`Date 185, and Licensee ID 184. These files are optional
`because prior to selection by a particular user, the file is
`generic for all potential users and no such Information
`(except the Application ID) is applicable to the application
`
`
`
`5
`program file. The particularized server format includes each
`of the Application ID 183, License Termination Date 185,
`and Licensee ID 184 fields and may either be created and
`stored as an actual file on the server or may exist only
`transiently as the generic server format is particularized to
`the requesting user and encrypted to generate the transmis
`sion format prior to transmission to the client computer.
`Note that the server formatted version of the application
`program could be stored in an encrypted form, but decryp
`tion followed by encryption would be required to encrypt the
`application program with the public key associated with the
`client computer Application Builder 112.
`The Server Format of an application program in the
`preferred embodiment also includes a copy of the server's
`public key 187 (to be used by client computers), documen
`tation 188 for the application program, as well as text 189
`representing the trial licensing terms for the application
`program and relicensing terms.
`Once the user has selected an Application Program for
`trial use the user is associated with a licensed version of the
`Application Builder. This Application Builder license may
`be preexisting or may have been allocated to the user in
`conjunction with selection and downloading of the trial
`version of an Application Program. In either situation, the
`Application Builder is licenced to the user and a licensee
`identifier is associated with that user. Server 104 includes an
`Encryption Module 135 that encrypts the Application Pro
`gram stored in Server Format 180 based on a public key 113
`associated with the user to generate a transmission format of
`the same Application Program.
`In reference to FIG. 4, a schematic illustration of the
`Transmission Format 186 of an Application Program trial
`version 138 is shown. The transmission format includes an
`encrypted version of the Application Program executable
`code 181, an Application Program ID 183, a proper licensee
`ID for the particular user 184, a license termination date 185,
`as well as copies of the public key, documentation and
`license informational fields 187, 188, 189. In the preferred
`embodiment all fields of the Transmission Format 186 are
`encrypted with the user's Application Builder public key 113
`to prevent eavesdropping and unauthorized copying or
`modification of the application program and/or control infor
`mation.
`Furthermore, in the preferred embodiment the control
`information (i.e., header fields 183–185) is first encrypted
`with the server's private key prior to encryption of the entire
`file 186 with the user's Application Builder public key. In
`this way double encryption is used to protect the control
`information. More generally, it is desirable that none of the
`Application Program itself, and none of the header fields
`183, 184, 185, appear as clear text during transmission from
`server 104 to client computer 102 over the network 106.
`While the term “header” fields or information has been
`applied to the identification information fields in this
`description, and such information fields are shown for
`simplicity as a plurality of contiguous records in the file (e.g.
`FIGS. 3, 4, and 6), it should be understood that the identi
`fication information may be placed in any predetermined
`location in the application program file so long as the
`Application Builder 112 can locate and interpret the infor
`mation during the verification and decoding procedures prior
`to execution of the application program. For example, FIG.
`5 is a block diagram showing a version of the transmission
`formatin which the license ID 184, and License Termination
`Date 185 are located within the body of Application Pro
`gram 1, which is split into parts A, B, and C. Such inter
`mingling of the identification and security information with
`
`45
`
`50
`
`55
`
`65
`
`5,708,709
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`6
`ing the body of the Application Program is generally
`applicable to all of the formats described. Placement of the
`identification information within the application program
`itself enhances security by making it extremely difficult for
`even an authorized user of the application to locate and alter
`the identification information, including the licensee ID and
`the license termination date.
`The Client Storage Format of an application program trial
`version, while not shown in a separate figure, is the same as
`the Transmission Format 186, with a decrypted copy of the
`control information (header fields 183—185) “pre-pended” at
`the front of the file. The decrypted control information is not
`“trusted” by the Application Builder because it is subject to
`manipulation by the user, but is rather compared with the
`encrypted control information at execution time. In an
`alternate embodiment, the Client Storage Format is the same
`as the Transmission Format, and the control information is
`not stored in clear text form.
`In reference to FIG. 6, a schematic illustration of the
`Execution Format 196 of an Application Program trial
`version 138 is shown. The Execution Format 196 includes a
`decrypted and decoded version of the Application Program.
`It need not necessarily include application identifier 183,
`licenses identifier 184, or licenses termination date 185.
`Although such information may be carried along in the file,
`it does not represent executable code and serves no further
`security purpose after verification and decoding.
`In the preferred embodiment the executable code is only
`available transiently during execution of the Application
`Program in RAM 118 or CPU 107 of the client computer. It
`is not stored in decrypted or decoded form on any mass
`storage device in a human readable form. The Execution
`Format of the Application Program is essentially a decrypted
`version of the transmission version that is generated by the
`Application Builder 112 on the client computer 102 after the
`Application Builder has verified the validity of the license
`for the particular user and has decoded the Application
`Program so that it is in the proper format for execution by
`the client computer 102.
`Referring to FIG. 7, after one or more trial Application
`Programs have been downloaded to and stored on client
`computer 102, a user associated with that client computer
`may decide to execute one of the Application Programs. In
`one embodiment of the invention, the user will be presented
`with a menu 192 on a display screen of user interface 108,
`including a list 193 of available application programs. The
`user may then select an Application Program, for example
`Application2. The client computer will respond to this
`selection by displaying the Expiration Date of the Selected
`Application 194, and may present other information pertain
`ing to execution of the selected application. It may for
`example provide a description of input/output data types, file
`formats, related programs, and the like to assist the user in
`using the program. This information is found in the docu
`mentation field 188 of the stored application program.
`Additional menus for viewing other information, such as
`license terms and relicensing information (from field 189)
`may also be provided. These displays may be integrated by
`the Application Builder with similar displays for locally
`stored, fully licensed programs.
`Referring to FIG. 8, an embodiment of the method 300 of
`the present invention for managing use of an Application
`Program by a user on a distributed computer system 100 is
`shown. The Application Program is initially stored as a
`Server Format version 180 of the Application Program on
`server 104. Execution starts at Step 302 in response to a
`user’s request for a trial version of an Application Program.
`
`
`
`5,708,709
`
`10
`
`15
`
`25
`
`7
`At step 304 the server 104 monitors requests for information
`and program access from the client computer connected to
`the server computer. Application Builder 112 may act as an
`agent for the server by initiating communication with the
`server in response to a request by client computer 102. At
`step 306 server 104 recognizes a request from a user
`associated with one of the client computers 102 to access the
`trial version of an Application Program.
`Upon selecting an application program (or the Application
`Builder) for downloading, user will optionally be presented
`with a reminder that the requested program is made avail
`able to the user for trial use only under conditions of the
`license agreement. The terms of the license agreement are
`then displayed for the user's review on the display screen,
`and the user is prompted by the server (possibly through the
`Application Builder 112 acting as an agent for the server) to
`accept the license terms. In one embodiment of the
`invention, the acceptance of the license is preferably made
`explicitly by an affirmative action by the user before the
`selected application program will be downloaded. For
`example, the user may be requested to input a identifying
`name, or to retype a verification code such as the user’s
`licensee ID for example, presented by the server for trans
`mission to the server. Alternatively, the acceptance may be
`more passive, such that unless the user declines to accept the
`license terms, the license is accepted and file downloading
`cominences.
`At step 308, the server compares predetermined program
`access restrictions for the Application Program with client
`computer access privileg