throbber

`
`
`
`
`
`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

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