`Kasso et al.
`
`[19]
`
`US005832505A
`Patent Number:
`Date of Patent:
`
`[11]
`[45]
`
`5,832,505
`Nov. 3, 1998
`
`[54] COMPUTER SYSTEM FOR MANAGING AND
`CONFIGURING APPLICATION PROPERTIES
`AND ENABLING SYSTEM ADMINISTRATOR
`TO OVERRIDE CERTAIN USER-SET OR
`HOST PROPERTIES
`
`[75] Inventors: Chris S. Kasso; Joseph F. DiPol, both
`of Sunnyvale; Linda K. Schneider,
`Campbell, all of Calif.
`
`[73] Assignee: Sun Microsysterns, Inc., Palo Alto,
`Calif.
`
`[21] Appl. No.: 829,891
`[22]
`Filed:
`Apr. 2, 1997
`
`[51] Int. Cl.6 ................................................. .. G06F 15/177
`[52] US. Cl. .............................. .. 707/104; 707/1; 707/100
`[58] Field of Search .................................... .. 707/100—104
`
`[56]
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`4/1995 Taylor ................................... .. 707/100
`5,410,691
`8/1995 Lysakowski, Jr.
`707/104
`5,446,575
`3/1997 Nishina .............. ..
`395/653
`5,615,372
`9/1997 Taylor ........ ..
`. 395/2005
`5,664,117
`5,680,615 10/1997 Marlin et a1. ...... ..
`707/103
`5,684,996 11/1997 Westerholm et a1. ................. .. 395/712
`
`OTHER PUBLICATIONS
`
`Nye, Adrian and O’Reilly, Tim, “X Toolkit Intrinsics Pro
`gramming Manual”, Second Edition for X11, Release 4, vol.
`4, pp. 251—257 (1990).
`J. Di Pol et al., “HotJava VieWs 1.0 System Overview and
`Applet Integration: AWhite Paper”, Sun Microsysterns, Inc.,
`Mar. 1997.
`
`Primary Examiner—Krisna Lim
`Attorney, Agent, or Firm—McDerrnott, Will & Emery
`
`[57]
`
`ABSTRACT
`
`A method, apparatus, and computer program product for
`managing and con?guring program properties of an appli
`cation program by loading properties from several lists,
`applying a set of precedence rules to resolve con?icts among
`properties, and applying the properties to the application
`program. Properties are listed in a plurality of lists including
`a list of default property values, a list of host-speci?c
`property values, a list of user-speci?c property values, a list
`of application-speci?c property values, and ?nal properties
`lists. Values in the ?nal property lists override con?icting
`previously loaded property values. The default properties
`list is loaded, as is a host-speci?c properties list, but only
`values for the then-current host are loaded. The user-speci?c
`properties list is loaded. User-de?ned properties override
`con?icting default properties. The ?nal system-Wide prop
`erties list is loaded, its values override any con?icting
`user-selected property, and such ?nal properties may not be
`over-ridden by any user-selected property. A ?nal host
`speci?c property list is loaded. Values in the ?nal host
`speci?c property list override any con?icting properties in
`the host-speci?c properties list, and a user may not override
`such ?nal properties. Values are Written into a merged
`property list Which is applied to the application program.
`Users may be assigned to user groups. Aset of property lists
`can be associated With each group so that consistent property
`values are applied to all users Within a group. Property
`values can be de?ned for speci?c application programs by
`using a default system properties list for the application
`program, and an overriding system properties list for the
`application program.
`
`47 Claims, 6 Drawing Sheets
`
`302
`
`312
`
`DOES
`ANY FINAL
`PROPERTY VALUE
`CONFLICT WITH ANY
`DEFAULT OR
`
`LOAD
`DEFAULT ’
`PROPERTIES
`
`I
`
`READ
`SPECIFIC
`PROPERTIES
`LIST
`
`OVERRIDE THE
`PREVIOUSLY
`LOADED VALUE
`
`306
`
`DOES
`ANY DEFAULT
`PROPERTY CONFLICT
`WITH ANY
`SPECIFIC
`PROPERTY
`7
`
`OVERRIDE
`THE CONFLICTING
`DEFAULT
`PROPERTY
`
`READ
`FINAL
`PROPERTY LIST
`
`/ 310
`
`Li
`
`IPR2017-01839
`Ubisoft, et al. EX1002 Page 1
`
`
`
`U.S. Patent
`
`Nov. 3, 1998
`
`Sheet 1 0f 6
`
`5,832,505
`
`.wE
`
`I 1 I | I l I I l ! I I I i I 1 | | l | l I I I I l |_
`
`
`
`
`
`wo<mo5 20m 222
`
`SH
`
`mam
`
`a m3 m3
`
`
`
`moSmo >mo2w2
`
`N3
`
`mommwoomm
`
`a
`
`92095
`
`a
`
`mowmso
`
`.65200
`
`IPR2017-01839
`Ubisoft, et al. EX1002 Page 2
`
`
`
`U.S. Patent
`
`N0v.3,1998
`
`Sheet 2 0f 6
`
`5,832,505
`
`200
`./
`
`{\
`210~
`l
`V
`‘
`
`204)
`
`_
`
`I
`
`206\. JBS
`
`212
`\
`
`214__,..
`
`DEFAULT
`
`PROPERTIES
`
`216~~' HOST PROPS
`
`224,’. APP- SPECIFIC
`PROPERTIES
`
`226-,’ FINAL APP PROPS
`
`202
`
`~210
`
`o o 0
`
`Ncn
`
`II
`
`V
`
`II
`
`II
`
`LAN
`
`_
`'
`
`V
`208\ HTTP
`SERVER
`
`I
`NIS /230
`SERVER
`
`A
`
`v
`
`QFS
`
`234
`
`FINAL PROPERTIES
`
`220
`
`FINAL HOST _\_ 222
`PROPERTIES
`
`__—J-—|
`Apps
`
`USER
`218.,
`PROPERTIES
`
`FILE
`SERVER
`E
`
`Fig. 2
`
`IPR2017-01839
`Ubisoft, et al. EX1002 Page 3
`
`
`
`U.S. Patent
`
`N0v.3,1998
`
`Sheet 3 0f 6
`
`5,832,505
`
`sTART
`
`V
`LOAD
`DEFAULT
`PROPERTIES
`
`l/ 302
`
`‘
`/304
`READ
`SPECIFIC ’
`PROPERTIES
`LIST
`
`306
`
`DOES
`ANY DEFAULT
`PROPERTY CONFLICT
`WITH ANY
`SPECIFIC
`PROPERTY
`
`OvERRIDE
`/ 308
`THE CONFLICTING '
`DEFAULT
`PROPERTY
`
`M
`
`I
`
`READ
`FINAL
`PROPERTY LIST
`
`/ 310
`
`DOES
`
`312
`
`ANY F'NAL
`PROPERTY VALUE
`CONFLICT WITH ANY
`DEFAULT OR
`SPECIFIC
`VALUE 7
`
`NO
`I
`
`OVERRIDE THE
`PREVIOUSLY
`LOADED VALUE
`
`,, 314
`
`I
`DONE / 316
`
`Fig. 3
`
`IPR2017-01839
`Ubisoft, et al. EX1002 Page 4
`
`
`
`U.S. Patent
`
`Nov. 3, 1998
`
`Sheet 4 0f 6
`
`5,832,505
`
`I START I
`
`V
`
`LOAD DEFAULT ,/ 350
`SYSTEM-WIDE
`PROPERTY VALUES
`
`READ
`HOST-SPECIFIC
`PROPERTIES LIST
`
`r- 352
`
`STRIP HOST
`NAME FROM
`PROPERTY
`
`354
`
`356
`
`DOES ANY
`DEFAULT PROPERTY
`VALUE CONFLICT WITH
`ANY HOST-SPECIFIC
`PROPERTY
`VALUE
`?
`
`OVERRIDE THE
`CONFLICTING
`PROPERTY
`
`‘/ 358
`
`V
`READ USER-SPECI FIC
`SYSTEM-WIDE
`PROPERTIES
`
`./ 360
`
`Fig. 4A
`
`362
`
`DOES ANY
`USER-SPECIFIC
`PROPERTY VALUE
`CONFLICT WITH ANY
`PREVIOUSLY LOADED
`PROPERTY
`VALUE ?
`
`NO
`
`OVERRIDE THE
`CONFLICTING
`PREVIOUSLY
`LOADED VALUE
`
`v:
`READ DEFAULT
`APPLICATION-
`SPECIFIC PROPERTIES
`
`'
`
`DOES
`ANY APP-SPECIFIC
`VALUE CONFLICT WITH
`ANY PRIOR
`VALUE ?
`
`OVERRIDE PRIOR
`VALUE WITH '
`APP-SPECIFIC
`VALUE
`
`II
`TO
`FIG. 45
`
`IPR2017-01839
`Ubisoft, et al. EX1002 Page 5
`
`
`
`U.S. Patent
`
`N0v.3,1998
`
`Sheet 5 0f 6
`
`5,832,505
`
`READ USER-DEF'D / 373a
`APP-SPECIFIC
`‘
`PROPERTY VALUE
`
`37%
`
`DOES ANY
`USER APP-SPECIFIC
`VALUE CONFLICT WITH
`ANY PRIOR
`VALUE ?
`
`NO
`
`OVERRIDE PRIOR ’
`VALUE WITH USER
`APP-SPECIFIC VALUE
`
`,
`READ FINAL sHARED ,374
`SYSTEM-WIDE
`‘
`PROPERTY VALUES
`
`376
`ANY FINAL
`VALUE CONFLICT
`WITH ANY PRIOR
`VALUE ‘.7
`
`NO
`
`OVERRIDE PRIOR /378
`VALUE WITH FINAL’
`VALUE
`
`I
`READ FINAL
`HOST-SPECIFIC
`PROPERTY LIST
`
`_,3so
`
`PICK VALUES ONLY
`FOR CURRENT
`HOST
`
`STRIP HOST NAME 384
`FROM PROPERTY
`
`DOES ANY
`FINAL HOST VALUE
`CONFLICT WITH ANY
`PRIOR VALUE
`
`OVERRIDE PRIOR , 388
`VALUE WITH FINAL
`HOST VALUE
`4
`"
`_, 390
`READ FINAL
`APP-SPECIFIC PROPERTY
`VALUES FOR
`CURRENT APP
`
`392
`
`DOES ANY
`FINAL APP-SPECIFIC
`VALUE CONFLICT WITH
`ANY PRIOR
`vALuE '2
`
`NO
`
`396
`/a94
`OVERRIDE PRIOR -
`I
`VALUE WITH FINAL _>@
`APP-SPECIFIC VALUE
`
`Fig. 4B
`
`IPR2017-01839
`Ubisoft, et al. EX1002 Page 6
`
`
`
`U.S. Patent
`
`Nov. 3, 1998
`
`Sheet 6 0f 6
`
`5,832,505
`
`.QQESQ & E
`
`.Ex a.
`
`55., Q
`
`IPR2017-01839
`Ubisoft, et al. EX1002 Page 7
`
`
`
`1
`COMPUTER SYSTEM FOR MANAGING AND
`CONFIGURING APPLICATION PROPERTIES
`AND ENABLING SYSTEM ADMINISTRATOR
`TO OVERRIDE CERTAIN USER-SET OR
`HOST PROPERTIES
`
`FIELD OF THE INVENTION
`
`The present invention relates generally to computer
`systems, and more particularly relates to managing and
`con?guring properties of computer program applications in
`a context-sensitive Way.
`
`10
`
`BACKGROUND OF THE INVENTION
`Modem desktop computer systems and computer soft
`Ware offer a myriad of settings, parameters, and properties
`Which enable individual computer users to customiZe the
`appearance and behavior of their system and the softWare
`running on it. Individual computer users noW each desire
`and expect to be able to con?gure their personal computer
`system, its operating system, and application programs
`running on it to suit their personal needs or preferences. For
`example, one user may prefer to use the typeface Helvetica
`as the default font for a certain application program, Whereas
`another user prefers a different font.
`Therefore, many currently available application programs
`enable a user to con?gure fonts and other parameters using
`a con?guration or “preferences” feature. The preferences of
`a user can be speci?ed When the user installs the program or
`While the program is operating, and the selected preferences
`are stored in a con?guration ?le in association With the
`application program on the user’s computer system.
`When computer systems are interconnected in a netWork,
`additional problems arise. If a neW computer system or
`“host” is added to the netWork, the netWork system admin
`istrator may Wish to establish a default set of properties to
`relieve users of the chore of re-con?guring commonly
`changed properties Which otherWise must be individually
`changed for every neW host. Also, in many netWork
`environments, individual users may need to use several
`different computer systems or “hosts” in different locations.
`Under these conditions, it Would be ideal to have the
`application program properties selected by the user folloW
`the user from host to host, and be available to the user and
`the application program at any host distributed across the
`netWork.
`Further, the netWork system administrator may desire to
`enforce certain policies With respect to de?nition of prop
`erties. For example, one application program property may
`be the name and location of the printer to Which the
`application program directs hard copy output. The user may
`desire alWays to print on a particular printer, Whereas the
`system administrator Wishes to require certain hosts to print
`on one speci?c printer.
`In addition, the system administrator may Wish to prevent
`certain users or groups of users from changing particular
`properties. For example, consider an of?ce environment of
`a company that occupies multiple of?ce buildings located
`near one another in a campus. The company may use a pool
`of receptionists Who rotate from building to building on a
`periodic basis. To enable smoother personnel rotation, the
`company may desire to have all receptionists vieW the same
`computer system con?guration regardless of What host they
`are using or What building they are Working in. In addition,
`the company may need to change or upgrade hosts used by
`the receptionists from time to time. Therefore, it is desirable
`for the company to establish application program properties
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`5,832,505
`
`2
`associated With the group of receptionists rather than a
`particular host or user. In this case, the system administrator
`may desire to establish properties for the receptionist group
`and also override any con?icting properties selected by a
`particular member of the group.
`Prior technologies, such as the X WindoWs System and
`the Common Desktop Environment (CDE), have a facility
`for loading application properties from multiple sources.
`HoWever, these systems have several signi?cant disadvan
`tages. For example, they do not enable a system adminis
`trator to override user-set properties With the assurance that
`a user may not thereafter change the properties again. They
`do not enable a system administrator to organiZe users into
`groups and set group-speci?c properties. They do not enable
`a system administrator to set properties for a speci?c host
`With the assurance that such host-speci?c properties Will not
`be overridden by a user or another individual.
`For all these reasons, there is a need for methods, appa
`ratus and products Which can manage and con?gure appli
`cation program properties by deriving the properties from
`multiple sources and controlling the properties in a ?exible
`Way, according to predetermined precedence policies or
`rules Which assure control by the system administrator.
`There is also a need to adapt the management and
`con?guration of application program properties to applica
`tion programs and operating systems used With a neW class
`of computers knoWn as “network computers”, “NCs” or
`“Net PCs.” A netWork computer is generally de?ned as a
`computer comprising a display, input devices, CPU and
`support circuitry, a main random access memory (RAM),
`and a local area netWork connection, but lacking a disk drive
`and other expensive and complicated peripherals. NCs offer
`several signi?cant advantages, namely that they are simpler
`to manufacture and maintain by system administrators.
`HoWever, in general, many application programs and oper
`ating system programs must be loaded into the RAM using
`the netWork connection rather than a local disk drive. Thus,
`there is a need to provide a Way to integrate and load
`application program properties from a variety of sources,
`according to pre-determined precedence policies, and enable
`such properties to be used by a netWork computer Which has
`no local mass storage.
`
`SUMMARY OF THE INVENTION
`The invention provides a method, apparatus, and com
`puter program product for managing and con?guring pro
`gram properties of an application program by loading prop
`erties from several sources, applying a set of precedence
`rules to resolve con?icts among properties, and applying the
`properties to the application program. The precedence rules
`assure the system administrator that designated properties
`Will override certain user-selected or host-speci?c
`properties, and that such overriding properties cannot them
`selves be overridden by a user.
`According to one aspect of the invention, properties are
`listed in a plurality of lists including a list of default
`properties, a list of speci?c properties (Which may be
`prepared by a user), and a ?nal properties list. Rules of
`precedence are used When the property ?les are loaded. The
`default properties list is loaded, then the speci?c properties,
`then the ?nal properties. When loaded, speci?c property
`values override con?icting corresponding default property
`values. Similarly, ?nal property values override con?icting
`corresponding speci?c property values. In this Way, the
`system administrator may prepare the ?nal properties list
`With the assurance that ?nal property values may not be
`overridden by a user.
`
`IPR2017-01839
`Ubisoft, et al. EX1002 Page 8
`
`
`
`5,832,505
`
`3
`In another aspect of the invention, speci?c properties are
`expressed in a user-speci?c properties list, a host-speci?c
`properties list, and an application-speci?c properties list.
`Corresponding ?nal properties lists are provided for the
`host-speci?c properties list and the application-speci?c
`properties list. One or more of such speci?c lists may be
`omitted depending on the needs of the environment. In this
`aspect, the default properties list is loaded, then the host
`speci?c properties ?le. From the host-speci?c properties list,
`only properties for the then-current host are loaded. The
`user-speci?c properties list is then loaded. User-de?ned
`properties override con?icting default properties. The
`application-speci?c properties list is loaded; from it, only
`property values corresponding to the currently executing
`application program are loaded. The ?nal system-Wide prop
`erties list ?le is loaded. Properties in the ?nal properties list
`override any con?icting user-selected property, and such
`?nal properties may not be over-ridden by any user-selected
`property. A ?nal host-speci?c property list is loaded. Prop
`erties in the ?nal host-speci?c property list override any
`con?icting property value from any previously loaded list,
`and a user may not override such ?nal properties.
`Properties are Written into a merged property list that is
`stored in association With the then-current host. The merged
`property list is applied to the then-executing application
`program. Attributes of the application program are modi?ed
`in accordance With the properties.
`Users may be assigned to user groups. A set of property
`lists can be associated With each group. In this Way, con
`sistent properties can be applied to all users Within a group.
`Using the application-speci?c properties list, property
`values can be de?ned for speci?c application programs by
`using a default properties list for the application program,
`and an over-riding or “?nal” properties list for the applica
`tion program.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`The present invention is illustrated by Way of example,
`and not by Way of limitation, in the ?gures of the accom
`panying draWings and in Which like reference numerals refer
`to similar elements and in Which:
`FIG. 1 is a block diagram of a computer system on Which
`the invention may be implemented;
`FIG. 2 is a block diagram of a netWorked computer
`environment in Which the invention may be implemented;
`FIG. 3 is a ?oW diagram illustrating one aspect of the
`invention using default, speci?c and ?nal property list ?les;
`FIG. 4A and FIG. 4B are a ?oW diagram illustrating
`another aspect of the invention using multiple property list
`?les; and
`FIG. 5 is a diagram shoWing a screen displayed by one
`embodiment of the invention.
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENT
`A method, apparatus and computer program product for
`managing and con?guring application program properties is
`described. In the folloWing description, for the purposes of
`explanation, numerous speci?c details are set forth in order
`to provide a thorough understanding of the present inven
`tion. It Will be apparent, hoWever, to one skilled in the art
`that the present invention may be practiced Without these
`speci?c details. In other instances, Well-knoWn structures
`and devices are shoWn in block diagram form in order to
`avoid unnecessarily obscuring the present invention.
`
`4
`HARDWARE OVERVIEW
`
`Referring to FIG. 1, it is a block diagram of a computer
`system 100 upon Which an embodiment of the present
`invention can be implemented. Computer system 100
`includes a bus 101 or other communication mechanism for
`communicating information, and a processor 102 coupled
`With bus 101 for processing information. Computer system
`100 further comprises a random access memory (RAM) or
`other dynamic storage device 104 (referred to as main
`memory), coupled to bus 101 for storing information and
`instructions to be executed by processor 102. Main memory
`104 also may be used for storing temporary variables or
`other intermediate information during execution of instruc
`tions by processor 102. Computer system 100 also com
`prises a read only memory (ROM) and/or other static storage
`device 106 coupled to bus 101 for storing static information
`and instructions for processor 102. Data storage device 107
`is coupled to bus 101 for storing information and instruc
`tions.
`A data storage device 107 such as a magnetic disk or
`optical disk and its corresponding disk drive can be coupled
`to computer system 100. Computer system 100 can also be
`coupled via bus 101 to a display device 121, such as a
`cathode ray tube (CRT), for displaying information to a
`computer user. Computer system 100 further includes a
`keyboard 122 and a cursor control 123, such as a mouse.
`The present invention is related to the use of computer
`system 100 to manage and con?gure application program
`properties. According to one embodiment, the management
`and con?guration of application program properties is per
`formed by computer system 100 in response to processor
`102 executing sequences of instructions contained in
`memory 104. Such instructions may be read into memory
`104 from another computer-readable medium, such as data
`storage device 107. Execution of the sequences of instruc
`tions contained in memory 104 causes processor 102 to
`perform the process steps that Will be described hereafter. In
`alternative embodiments, hard-Wired circuitry may be used
`in place of or in combination With softWare instructions to
`implement the present invention. Thus, the present invention
`is not limited to any speci?c combination of hardWare
`circuitry and softWare.
`
`NETWORK COMPUTER ENVIRONMENT
`
`An alternate hardWare environment is shoWn in FIG. 2. A
`plurality of netWork computers 200, 202 each is coupled
`using a conventional netWork communication link 210 to a
`local area netWork 204. Each of the netWork computers may
`be con?gured in the form of computer system 100, except
`Without data storage device 107. The term “host” is also used
`herein to refer to the netWork computers. A host is used by
`one or more human users.
`A JavaOS boot server (JBS) 206 is also coupled to the
`local area netWork. The JBS 206 provides or distributes an
`operating system program, such as the JavaOS operating
`system available from Sun Microsystems, Inc., to a client
`that is logically remote from the JBS 206, such as an NC
`200. This enables the NC 200, Which has no local non
`volatile storage device, to receive the operating system, load
`it, and begin executing it. An HTTP server 208 is also
`coupled to the local area netWork. The HTTP server has a
`mass storage device that stores documents for delivery and
`display by a client logically remote from the HTTP server
`208, such as the NC 200. The documents stored on the HTTP
`server 208 can be ?les formatted using the Hypertext
`Markup Language (HTML), i.e., World Wide Web pages, or
`
`10
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`IPR2017-01839
`Ubisoft, et al. EX1002 Page 9
`
`
`
`5,832,505
`
`5
`other data ?les such as the property lists described herein.
`The HTTP server executes operating system software which
`uses the Hypertext Transfer Protocol (HTTP) to communi
`cate the Web pages over the local area network. A Network
`Information Server (NIS) 230 is coupled, locally or remotely
`over a wide area network
`or equivalent, to local area
`network 204.
`Other servers may be coupled to the local area network,
`and the network itself may be coupled or “inter-networked”
`to other networks. For example, a ?le server 232 can be
`coupled using a Network File System (NFS) link 234 to the
`local area network 204. Using methods that are well known
`in this art, the ?le server 232 can be remotely “mounted” to
`a client such as NC 200 under control of NFS, so that the ?le
`server 232 is available to the NC 200 as if physically
`attached thereto. The JBS 206 and HTTP server 208 can be
`inter-networked to local area network 204, or connected to
`a WAN or other geographically remote link.
`
`BOOT SEQUENCE
`
`When a user applies power to a host, such as network
`computer 200, the host executes a bootstrap loader routine
`stored in its read-only memory. During the boot procedure
`the host searches for the JBS 206, establishes a network
`connection to the JBS 206, and downloads the JavaOS
`operating system from the JBS 206 into the RAM of the
`host. The host also downloads an application program, such
`as Selector, available from Sun Microsystems, Inc. Selector
`is embedded in the boot image which is loaded from the J BS
`206 into the host. The boot image also includes other
`parameters that enable the host to begin operating, for
`example, the Uniform Resource Locator (URL) of a startup
`or initial Web page.
`The host then begins executing JavaOS. JavaOS next
`displays a login screen requesting a user to log in. The user
`logs in by entering his or her username and password.
`J avaOS requests the Network Information System (NIS) 230
`to verify the validity of the username and password, by
`connecting to NIS 230 over the local area network 204 and
`presenting the username and password for approval. If the
`username or password is incorrect or invalid, access to the
`system is denied. If they are correct or valid, then JavaOS
`requests the name of the user’s home directory from an
`“auto.home” table mounted on the NIS server 230.
`JavaOS is designed to execute a single application pro
`gram. Accordingly, J avaOS next passes program control to
`the designated application program, such as Selector, and the
`host begins executing that application program. In the fol
`lowing description, as an example we describe operation of
`an embodiment of the invention in which Selector is the
`application program; however, any suitable application can
`be used.
`Selector establishes an HTTP connection to the HTTP
`server 208 and requests the initial Web page identi?ed by the
`URL contained in the boot image. Selector also requests a
`set of con?guration ?les from the HTTP server 208. The
`HTTP server 208 responds by delivering the requested web
`page and ?les.
`Selector can access a set of application programs 240,
`each of which is implemented as a Java applet stored in
`association with an HTML page on the HTTP server 208.
`Selector displays a main screen 402, shown in FIG. 4. Each
`application program 240 is represented in the main screen by
`an icon 404, 406 in the application icon pane 410 of the
`Selector main screen 402. Each icon is associated with a
`URL identifying the HTML page that contains the applet
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`6
`represented by the icon. For example, the mailbox icon 404
`is associated with a URL identifying an HTML page on the
`HTTP server that contains a MailView applet. The MailView
`applet implements an electronic mail program. Thus, when
`a user clicks the mailbox icon 406, from HTTP server 208
`Selector loads the HTML, page associated with the icon and
`which contains the MailView Java applet. The associated
`HTML page is loaded and graphically displayed in the
`display pane 420 of the main screen 402. The application
`icon pane 410 remains visible at all times. The applet loads
`itself into RAM of the host, and then executes and runs on
`the user’s host.
`Applications 240 may also be an HTML page without an
`applet, or a set of forms tied to Common Gateway Interface
`(CGI) scripts.
`
`CONFIGURING APPLICATION PROGRAM
`PROPERTIES
`
`The appearance and behavior of the user’s host and the
`currently executing application are governed by con?gura
`tion ?les or property lists. In one embodiment, the property
`lists are implemented as text ?les 214, 216, 220, 222 that
`reside on the HTTP server 208. A user property list 218 is
`stored on a logically remote ?le server 232. During the boot
`process, the remote ?le server 232 is mounted using the NFS
`protocol so that the ?le server 232 is accessible by to the
`local host such as NC 200. The user property list can be
`stored in a home directory exclusively assigned to a par
`ticular user and located on the NFS-mounted ?le server 232.
`When the bootstrap loader program of the host is running,
`it receives from the JBS 206 a URL representing an initial
`Selector con?guration ?le. For example, the URL may be:
`http://webserver/jdt/props/selector.init
`where “webserver” refers to an HTTP server such as HTTP
`server 208. The ?le <selector.init> is used to rendeZvous
`with the HTTP server where a set of properties lists are
`installed. For example, the <selector.init> ?le can contain a
`text string that speci?es the HTTP server where properties
`?les are installed, such as HTTP server 208. Selector estab
`lishes an HTTP connection to that server, and loads the
`properties ?les. These ?les are assumed to be in the same
`location as the <selector.init> ?le.
`The term “properties” refers broadly to application pro
`gram attributes, parameters, preferences, and environmental
`variables, e.g., any aspect of an application program that an
`end user may con?gure or adjust. Examples of properties are
`display fonts, the identity and location of external resources
`such as printers, servers, and other input/output devices,
`methods of alerting a user such as through an alarm or bell,
`window location and siZe, and language used by an appli
`cation.
`In one embodiment, the properties lists comprise a plu
`rality of ?les. In this description, the terms “list” and “?le”
`are used interchangeably to refer to property lists, because
`one way to implement list is a set of text strings stored in a
`?le. However, property lists as described herein may be
`stored in any convenient form; use of ?les is not required.
`One ?le has a list of default properties. The second is a list
`of speci?c properties. The third is a list of ?nal properties.
`As shown in FIG. 2, as an example, a default properties list
`214 and two exemplary speci?c properties lists (host prop
`erties list 216, and application properties list 224) are each
`stored on a mass storage device 212 associated with the
`HTTP server 208. Another exemplary speci?c properties
`list, user properties list 218, is stored on a remote ?le server
`232. The mass storage device 212 also stores a ?nal system
`
`IPR2017-01839
`Ubisoft, et al. EX1002 Page 10
`
`
`
`5,832,505
`
`7
`Wide properties list 220, a ?nal host-speci?c properties list
`222, and a ?nal application-speci?c properties list 226.
`One feature of this invention is a method enabling the
`system administrator to override certain user-selected prop
`erties With the assurance that neither the user nor any other
`individual can override the system administrator’s property
`decisions. Accordingly, rules of precedence are used When
`the property ?les are loaded.
`One aspect of the invention is a method shoWn in the
`?oWchart of FIG. 3. As shoWn in step 302 of FIG. 3, When
`a computer program or process implementing the invention
`(for example, Selector or another application program call
`ing methods in the JDTProperties class, described beloW)
`loads property ?les, it begins by loading a ?rst list of default
`properties, such as the default properties list 214. The term
`“load” refers, by Way of example, to reading a property list
`?le and Writing each property string found in the ?le to a
`merged property list. The merged property list can be stored
`in the RAM memory of the netWork computer on Which
`Selector is running (such as NC 200), or in ?les on a mass
`storage device of a server such as the HTTP server 208 or
`JBS 206, or in the RAM memory of the server. The merged
`property list may be organiZed in any convenient data
`structure or data object Which is accessible to and readable
`by the application programs 240. In one embodiment, the
`merged property list is maintained by a JDTProperties
`object, Which is described in more detail beloW.
`Next, as shoWn in step 304, a second list of speci?c
`properties is read, such as the host-speci?c properties ?le
`216, the user properties list 218, or the application-speci?c
`properties list 224. As shoWn in step 306, as the speci?c
`property values are read, they are compared to the previ
`ously loaded default property list values. If any value in the
`default property list con?icts With a corresponding value in
`the speci?c properties list (for example, if both lists attempt
`to set a system font parameter to different values), then as
`shoWn in step 308, the con?icting default property list value
`is overridden With the corresponding speci?c property list
`value.
`Thereafter, and if the test of step 306 is negative, control
`is passed to step 310 in Which the ?nal property list values
`are read. As shoWn in step 306, as the ?nal property values
`are read, they are compared to all previously loaded default
`property list values and the speci?c list values. If any value
`in the ?nal property list con?icts With a corresponding value
`in any previously loaded properties list, then as shoWn in
`step 314, the con?icting property list value is overridden
`With the corresponding ?nal property list value.
`The default property list and the ?nal property list are
`prepared by a system administrator and stored in a location
`or manner Which prevents a user from editing or changing
`the contents of the lists. The speci?c property list values may
`be de?ned or Written by a user. In this Way, the system
`administrator is assured that values in the ?nal property list
`alWays override any con?icting values in the user-de?ned
`speci?c property list, and that the ?nal property list values
`cannot be changed or overridden.
`The speci?c property list may comprise a user properties
`list, a host-speci?c properties list, or an application-speci?c
`properties list. Each are discussed beloW.
`Application-Speci?c Properties
`In another embodiment, a property list is provided for
`property values that are application program-speci?c. That
`is, such property list ?les de?ne properties for a particular
`application program Which apply regardless of What host or
`user is executing the application program.
`
`10
`
`15
`
`25
`
`35
`
`45
`
`55
`
`8
`For example, the HTTP server can store an application
`speci?c property list ?le 224 for Selector or another appli
`cation. If the system administrator Wishes to establish ?nal
`properties for that application, the system administrator can
`prepare and store on the server a ?n