throbber
United States Patent
`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

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