|
Description  |
|
|
FIELD OF THE INVENTION
The present invention relates to computer network systems. More
particularly, the present invention relates to the configuration of client
workstations in a network.
BACKGROUND OF THE INVENTION
In today's highly computerized society, it is well established that
computers must provide a comfortable environment for the end users. Such
environments are typically created by providing user-friendly hardware
devices (e.g., a mouse) and software systems (e.g., graphical user
interfaces). The efficacy of these systems is often further enhanced by
their ability to be configured to meet the specific preferences of a user.
Thus, users can personalize such things as the background color on their
computer screen, mouse click rates, options within a specific software
application, start-up screens, etc. This ability to personalize, or set
preferences, allows computer systems to be tailored to meet the specific
needs of the end-user to thereby provide a consistent and comfortable
environment.
Concurrent with the goal of providing a user-friendly environment in order
to advance computers in today's society is the proliferation of computer
networks. Computer networks, such as the Internet, the World Wide Web,
intranets, local area networks (LANS), etc., allow remote computers to
exploit the resources of other, often more powerful, computer systems. The
combination of a user-friendly environment with a computer network is
therefore seen to be of particular importance as new computer systems are
developed. For example, new systems such as IBM's Network Stations, seek
to provide inexpensive, yet powerful, computer workstations by exploiting
the power of a computer network while maintaining an advanced work
environment.
Of particular importance in this invention is the recognition of the need
to provide networked workstations which can not only be configured to the
specific hardware characteristics of a terminal, but also to the
preferences of a particular user, group of users, system administrator,
owner, or manufacturer. Prior art solutions for configuring workstations
in a network are unfortunately limited in various respects, including the
fact that workstation preferences do not change based upon the end user,
but rather exist for each individual workstation. Thus, under the prior
art, individual preferences are unable to follow the user to any
workstation in the network. Moreover, there is no way to save and
meaningfully use appropriate sets of preferences for the individual
currently using the workstation. That is, there is no known way to make
the administration of preferences a manageable task. For example, there is
no known way to provide for ad hoc groups of user preferences for local
administrator defined levels of support.
While it is known to use preference files for configuring workstations in
applications in a network, prior solutions only allow preference files to
be managed at two levels, at the installation level (where default
parameters are incorporated for each workstation) and at the user level
(where the user alters the default parameters for a specific workstation).
Thus, under the prior art only two "entities" or factors influence the
final configuration of each workstation. This invention recognizes this as
a serious limitation because there are many additional factors that should
influence how a workstation is configured. For example, user groups,
system administrator preferences, specific terminal hardware, time/date of
logon, etc. are all factors that could potentially be used to influence
the configuration of a particular workstation. The prior art fails to
provide a comprehensive solution for utilizing preference files to
incorporate such factors into workstation configuration.
In summary, the prior art does not allow the preferences of a user to
follow him or her around to any workstation in a network, nor does it
provide a comprehensive means for incorporating additional factors into
each workstation configuration. Thus, without a more comprehensive
approach to configuring workstations in a network, the overall flexibility
of the network will be limited. All of the aforementioned art and
technology references are herein incorporated by reference.
SUMMARY OF THE INVENTION
The present invention provides a system and method of workstation
configuration that includes a multi-level hierarchy management of
preferences which are essentially managed and stored with a file server,
rather than with each individual workstation. In a first aspect, the
invention comprises a computer network that includes workstations that
have configurable hardware devices and software applications; a
workstation server connected to the workstations that includes
hierarchical preference files containing configuration information; and a
preference manager for providing a coalesced, or merged, set of
configuration parameters to the workstations based on the information in
the hierarchical preference files.
The preference manager comprises a selection mechanism for 1) selecting
relevant preference files from each of a plurality of hierarchy levels
stored on a file server, and 2) causing configuration information from the
selected preference files to be downloaded to a client. It further
includes a coalescing mechanism for applying the downloaded configuration
information to a specific workstation.
It is recognized that the actual location of the preference manager within
the network is not critical and that certain aspects of the preference
manager may reside on the file server (i.e., a server preference manager),
while other aspects may reside on the client (i.e., a client preference
manager). For example, both the client and server preference managers will
typically share responsibility for such tasks as selecting preference
files stored on the server. Nonetheless, because the preference files are
stored and managed on the file server, the bulk of the selection process
will likely be performed by the server preference manager. (Under certain
circumstances, however, the client preference manager may know which
preference file it needs and may directly request the file to be
downloaded.) Alternatively, the client preference manager will likely
perform the bulk of the coalescing operation, since most of the coalescing
function needs to be performed on the client where new configuration
information is being merged with existing configuration information.
A second aspect of the present invention provides a method for managing
multi-level preferences for a client computer and a network that includes
the steps of selecting relevant preference files from a plurality of
hierarchal preference files, reading a plurality of information from the
relevant preference files, downloading and merging the plurality of
information and applying the results (i.e., configuration parameters) to a
client computer. The step of merging information further includes the
steps of identifying conflicting parameters that might exist in the
relevant preference files, identifying the hierarchy level of each of the
relevant preference files containing conflicting parameters, and resolving
conflicting parameters based upon the hierarchy level of the relevant
preference files containing the conflicting parameters.
Therefore, it is an advantage of the present invention to provide a
multi-level hierarchy of preferences for workstation configuration.
Therefore, it is an additional advantage of the present invention to
provide central management and storage of network workstation
configurations, rather than locally at the client level.
It is a further advantage of the present invention that a user be able to
automatically enact his or her preferences any time the user signs on to
any workstation in the network.
It is a further advantage of the present invention to provide a system that
allows for both software and hardware configuration.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 depicts a block diagram of a network system in accordance with a
preferred embodiment of the present invention.
FIG. 2 depicts a block diagram of a preference manager, a plurality of
hierarchal preference files and a resultant preference file in accordance
with a preferred embodiment of the present invention.
FIG. 3 depicts a flow chart of a preferred method of the present invention.
FIG. 4 depicts an example of coalescing preference files in accordance with
a preferred embodiment of the present invention.
FIG. 5 depicts an example of coalescing preference files in accordance with
a preferred embodiment of the present invention that includes blocking.
FIG. 6 depicts an example of coalescing preference files in accordance with
a preferred embodiment of the present invention that includes terminal
specific parameters.
FIG. 7 depicts a block diagram of a preference manager operation in
accordance with a preferred embodiment of the present invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
Overview
This description describes a network capable of providing a novel system
and method of performing workstation configuration. The network is
comprised of a plurality of configurable workstations, and at least one
file server. Workstations are configured by applying configuration
parameters to the operating system (or other interface system) running on
each workstation. Parameters may be received from a file on the client,
from a remote transmission source (e.g., a connected file server or other
computer), from the keyboard, or any other known input system. While in
the below described preferred embodiment, parameters are received and
applied in a sequential manner from a remote file server, this invention
should not be interpreted to be limited to such implementations.
Each configurable workstation (hereinafter "client") includes a mechanism
for sending "identifiers" to the file server; a mechanism for receiving
streams of configuration information; a mechanism for applying the
configuration to the client; and a mechanism for resolving conflicts with
previously applied configuration information.
The file server includes a mechanism for managing and accessing a plurality
of preference files containing configuration information; a mechanism for
receiving "identifiers" from clients, a mechanism for selecting preference
files based upon the received "identifiers"; and a mechanism for
downloading selected preference files to the client. While in the below
described preferred embodiment the plurality of preference file are
organized in a hierarchical fashion, this invention should not be limited
to such embodiments. Thus, any method of managing, storing and accessing
configuration information on a centralized or distributed host is
contemplated as part of this invention.
An example of this implementation is as follows. During the initialization
of a client workstation, an initial set of preferences are downloaded and
processed, with the resultant configuration of the terminal being the
combination of the manufacturer's and the administrator's defined
preferences. Then, when a user signs on to the workstation, his additional
preferences are downloaded and processed, with the resultant configuration
being the combination of all of the downloaded preferences. The result is
a workstation that is configured for the needs of the manufacturer, the
owner/administrator, a group of users, and the end user.
As noted, the system includes a mechanism for resolving conflicting
parameters. Resolving conflicts may be done in any manner such as one that
utilizes a "last one applied wins" scenario. In such a case, an end user's
preference will overrides a group, administrator, or manufacturer
preference, since a user preference will likely be the last one to be
downloaded and applied to the workstation. However, the system is
contemplated to be flexible enough to allow for certain preferences that
can not be modified by later applied configuration data. For example, in
configuring the hardware, the manufacturer defines a preference to
indicate that station configuration passwords are required but they are
not currently enabled. The administrator, in his preference file, enables
the station configuration passwords, and sets it to a specific value. The
end user of the workstation would, and should have no option with respect
to using a password since this is an administrator level of function.
Applications for this invention include a situation where the administrator
might pick a blue background for the desk top as a general system
preference. A group of users comprised of installation security offers
could be required to have a red background--and so a group is defined and
a preference of a red background is defined for the group. When any member
of the group signs on, the group preferences are applied to the station,
and a red background is obtained. Going a step further, an individual
user, and member of this group of security officers, may want a pink
background because of some eye problems. These individual preferences are
also applied as he signs on, and the background for his display is then
pink.
Unique to this solution and implementation is also the notion of a
central/host storage of not only application preferences, but also
hardware preferences. Hardware configuration values such as mouse button
configuration, mouse pointer speeds, keyboard auto repeat rates, keyboard
repeat delay, keyboard mapping language, audio volume setting, background
color, screen saving/power monitor settings are saved/stored on a host and
downloaded to configure the terminal as a user signs on. Also, an
administrator as well as the individual user may define preferences for
the user. The administrator may define/set/change preferences for all
users, or for an individual user, or for a group of users.
In the preferred embodiment, the multi-level hierarchy of preference files
are shown to include manufacturer preference files, installation
preference files, terminal specific preference files, group preference
files and user preference files. Nonetheless, it is recognized that the
actual number of hierarchical levels for preference files may be
arbitrarily chosen to be a much higher number.
DETAILED DESCRIPTION
Referring now to FIG. 1, a network system 10 is shown comprising a server
system 12 and a plurality of clients 14. The server system 12 may be any
known type of file server including an AS/400, an IBM PC, an RS 6000, a
System 390, etc., and clients 14 may be any known type of programmable
client workstations including UNIX.TM. workstations, IBM PC's, IBM's
Network Stations, etc. File server 12 includes a central processing unit
16, a bus 18, and a memory 20. Stored in memory 20 is a server preference
manager 22 and a plurality of hierarchal preference files 24. Server
preference manager 22 may be executed on CPU 16 via bus 18. Server
preference manager 22 is shown including a selection mechanism 26 and a
coalescing mechanism 28. It is understood that memory 20 represents any
known type of memory system including disc drives, tape drives, RAM, ROM,
optical discs, etc. It is also understood that while server preference
manager 22 and the hierarchal preference files 24 are shown to exist on
file server 12, it is possible that the server preference manager 22 and
preference files 24 could exist at some other type of centralized location
as long as it is accessible by the clients in the network.
In addition to the server preference manager 22, each client includes a
client preference manager 23 stored and executable on the client. Each
client preference manager may also include both a selection and a
coalescing mechanism. The client-based functions controlled by the client
preference manager 23, which will typically be implemented in software,
are described in more detail below. Like the file server 12, each client
workstation 14 will typically be programmable and include basic components
such as a memory, central processing unit (CPU), bus, etc.
Clients 14 are in communication with file server 12 via communication link
30. Communication link 30 may be any known type of communication link
including Ethernet, token ring, twisted pair, a wireless device, etc. Each
of said clients 14 include configurable hardware and software application
systems. Examples include screen colors, mouse configurations, web browser
parameters, etc. As noted, different users typically have different
preferences for workstation configurations. Pursuant to this embodiment,
each user is able to have his or her preferences configured regardless of
which client workstation they use. In addition, each workstation may have
unique terminal specific configurations (e.g., keyboard type, monitor
configuration, etc.), which are also taken into account.
Accordingly, a user has his or her workstation configured as follows. When
a workstation is turned on, and when a user subsequently logs on, the
client and server preference managers 23 and 22 cooperate to select
appropriate preference files from the hierarchical preference files 24.
The bulk of the selection process will typically occur on the server,
where the server preference manager 22 decides which of a plurality of
preference files to download to the client. The client preference manager
23 will typically facilitate the selection process by providing
information to the server preference manager (e.g., workstation address,
user ID, etc.). Furthermore, it is conceivable that under certain
circumstances, the client preference manager would exclusively decide to
download a preference file. As each selected file has its configuration
information downloaded to the client workstation 14, the client preference
manager 23 applies the configuration information from each selected
preference file in a successive manner such that each subsequent set of
information is coalesced or merged with any prior sets of information.
Thus, it is envisioned that the client preference manager 23 on each
client will typically perform the bulk of the coalescing function.
However, it is recognized that under certain circumstances, particularly
in the case where multiple files are to be downloaded at once, performance
can be enhanced by having a coalescing mechanism 28 on the server coalesce
or "pre-process" preference files prior to download. Once the client
preference manager 23 applies the configuration information, the result is
a uniquely configured workstation that includes many levels of coalesced
configuration information. Thus, the configuration of a given client is
both user and workstation dependent. The method and system of choosing the
hierarchal preference files and coalescing them is described in further
detail with regard to FIGS. 2 and 3.
FIG. 2 depicts a preference manager 25 (which encompasses both the server
preference manager 22 and client preference manager 23 of FIG. 1), a
plurality of hierarchal preference files 24, and a resultant coalesced set
of preferences 32. Under this preferred embodiment, the resultant set of
preferences 32 will be implemented, and therefore reside, on the client.
However, it is recognized that the resultant preferences 32 could reside
on the server and be download to the client at a later time.
The preference manager 25 may exist as a single or group of program
products that reside on a recordable media such as a magnetic disk or
tape, optical disk, or wireless transmission media. Each program product
will typically include executable machine code capable of running on
either or both of the client workstations 14 or centralized server 12.
As noted above, upon certain events, such as when a terminal is turned on
or when a user logs onto a workstation, the preference manager 25 operates
to provide a resultant set of preferences 32 for the workstation. FIG. 2
depicts one possible hierarchy of preference files 24. Here it can be seen
that there are five levels within this hierarchy. The first or bottom
level is a manufacturer's preference file that contains all of the default
workstation configuration parameters as decided by the manufacturer. The
next level contains the installation preference file 36 which includes all
of the preferences set up by the owner or system administrator (e.g.,
password settings), typically when the network is initially installed. It
is conceivable that the installation preference file 36 and the
manufacturer's preference file 38 may be merged or coalesced ahead of time
to provide a single administrator/manufacturer merged file for later use.
The next level of preferences include terminal specific information files
37 (e.g., a hardware address of the client, type of keyboard, etc.). The
next hierarchal preference level contains a plurality of group preference
files 38. The group preference files 38 may be set up to provide default
preferences for various groups of users. For example, users that are
working on a particular project or work within a division may have a
specific background color on their workstation. The top level of
preference files 40 are the user preference files. Each user having access
to the network may have a user preference file that further sets up
configuration preferences specific to the individual user. For example, a
left handed user may request that the mouse be configured for a
left-handed click rather than a right-handed click.
As noted above, conflicting configuration parameters may be downloaded to
the client and such conflicts will be resolved by the preference manager.
For those preferences which can be altered, the configuration parameters
in the user preference files will typically take precedence over the
parameters in the group preference files, which will take precedence over
the configuration parameters in the install preference file, which will
take precedence over the configuration parameters in the manufacturer's
preference file.
Further examples of the coalescing process of this invention are shown in
FIGS. 4-6. Each of these figures depict examples of how certain
configuration parameters from manufacturer, installation, terminal
specific and user preference files may be sequentially coalesced. In the
first example, FIG. 4, conflicts are resolved in a straightforward manner
in which the most recently received parameters takes precedence over
parameters received from prior preference files. In this case, the
manufacturer preference file (which is applied first) includes a command
to "SET TRACE ON." That parameter is then overridden by the installation
preference file (which is applied second) that directs the workstation to
"SET TRACE OFF." Then, if a first user were to log on, their user
preference file (USER 1) would be applied. In this case it would include
the command to "SET TRACE ON." Alternatively, a second user preference
file (USER 2) is shown which does not include any command for the SET
TRACE function. The resultant workstation for USER 1 would then be
configured with TRACE turned on, while the resultant workstation for USER
2 would be configured with TRACE turned off. This is an example of the
"last applied wins" scenario.
FIG. 5 depicts a second scenario involving a "key remapping" function. In
this case the manufacturer preference file initially provides a command to
disable the key remap. The installation preference file then causes the
remap function to become "Hidden." The effect of this is that end user
preference files are unable to select the remap function. Thus, USER 1's
attempt to enable the key Remap would be invalid. The resultant therefore,
for both USER 1 and USER 2 would be to have "key Remap" disabled. This
example provides one possible method of "blocking" subsequent
configuration information thereby circumventing the "last applied wins"
implementation of FIG. 4.
FIG. 6 depicts a third coalescing scenario involving hardware preferences.
In this case, the manufacturer preference file has provided default
settings for terminal behavior. In particular, each workstation is set to
enter standby mode after 20 minutes of inactivity, enter suspend mode
after 40 minutes of inactivity, and powerdown mode after 60 minutes of
inactivity. Although the installation preference file does not include any
commands to override this behavior, the depicted terminal specific
preference files (TERMINAL 6 and 9) do include commands to modify the
configuration. TERMINAL 6 changes the suspend time to 5 minutes, while
TERMINAL 9 changes the powerdown time to 7 minutes. This examples depicts
how terminal specific hardware features can be controlled independently of
end users (and other) preferences. Thus, in this case, a user could jump
from TERMINAL 6 to 9 without affecting the terminal specific settings for
each terminal.
It should be recognized that the examples shown in FIGS. 4-6 provide only
limited examples of how coalescing | | |