Recherche Images Maps Play YouTube Actualités Gmail Drive Plus »
Recherche avancée dans les brevets | Images de page | Historique Web | Connexion

Brevets

  
[merged small][merged small][table][merged small][merged small][merged small][merged small]

GLOBAL PLUG-IN TREE WORKSPACE PLUG-IN TREE

CONSUMER TREE D WORKSPACE ID>

ITEM KEY

[graphic]

"VOICES"
PLUG-IN

ITEMS

ITEM KEY

EOR "JUNIOR"O FOR "ALBERT-
ITEM KEY
FOR "KATHY"

[merged small][merged small][graphic]

FIG. 5

CONSUMER TREE

VOICES PLUG-IN

ITEM KEY FOR "ALBERT"

1

SOFTWARE MANAGER FOR
ADMINISTRATION OF A COMPUTER
OPERATING SYSTEM

FIELD OF THE INVENTION 5

The present invention relates to computer operating systems, and more particularly to configuration and management of software components within a computer operating system. ^

BACKGROUND OF THE INVENTION

Some of the routine tasks that accompany ownership or use of a personal computer include installing and upgrading software, determining the types of software already installed 15 and enabled on a given computer system, removing old or unused software, and ascertaining the reasons that certain software features are non-functional. Given the regularity and importance of these tasks in everyday computer operation, a typical computer user desires an operating 20 system that provides an easily understandable and manageable means for setting up and maintaining a computer working environment. However, because ever-growing complexities in new software products have far out-paced advances in available system configuration tools, the user 25 experience currently associated with the above described tasks may be less than desirable. Some existing system management techniques confront the user with an errorprone environment that is virtually unmanageable, absent expert assistance. Furthermore, the present lack of a 30 consistent, coherent approach to cataloging and maintaining the various elements that make up an operating environment often results in inconsistent system behavior, significant system performance degradation, and inefficient use of hardware resources. Unchecked, this situation will worsen as 35 more sophisticated software products are released. This can lead, in turn, to additional user frustration and increased requirements for customer support.

For purposes of better understanding the problems associated with prior art configuration management tools, it is 40 instructive to consider the basic structural layout of a typical computer operating system. In any such operating system, there exists a collection of program code and associated data representing the presently active system software. Such code and data are typically stored on a disk in some form of 45 system file or system file directory. Traditional system administration has meant the direct manipulation of the contents of such system file(s). However, as the complexity and versatility of system and application software has increased over time, the number of items that must be 50 managed has grown to an unwieldy level. Further complicating matters is the fact that many software components depend, either completely or partially, upon some portion of system file content. For example, when some application programs are launched, they scan the content of the system 55 files searching for data or software code which might be required for either basic or enhanced operation. As a result, removal or alteration of system file content by the user can cause latent problems in seemingly unrelated software processes. The typical system user therefore ends up treating the go system files as a mysterious and impenetrable "black box" from which nothing can be removed.

Such a situation is extremely problematic, as users routinely wish to add to, delete from, and otherwise modify operating system functionality. For example, a user may 65 wish to upgrade an existing word processing application by installing a spell checker that was not originally installed

2

due to an earlier-existing, but now alleviated, disk space constraint. Another user may wish to add a new font or remove an obsolete printer driver. Yet another user might wish to disable certain operating system functionality without fear that other aspects of the environment will be adversely affected. Given conventional configuration management tools, however, such users cannot readily execute these modest tasks. This is due to the fact that the prior art tools provide no means by which a user can easily ascertain the interdependencies that many times exist between system components, and hence the user is not presented with a coherent, easily graspable view of the prevailing overall configuration. In sum, there is a very real need for a computer operating system in which environment configuration and management is efficient, consistent, easy to understand, and aligned more closely with typical user expectations associated with buying, installing, and using personal computing software.

SUMMARY OF THE INVENTION

The present invention fulfills the above-described and other needs by providing a software manager which enables a computer user to easily administer software components within a computer operating system. The software manager consists of a configuration database, a user interface, and a software manager server.

The configuration database stores information which includes a prevailing state associated with each of the software components in the operating system. The prevailing state may indicate, for example, whether or not the given component is presently installed and enabled, or where the given component is located within a hierarchical filing structure associated with the operating system. The configuration database also stores a dependency listing for each of the software components. The dependency listing may indicate, for example, any interdependencies existing between the given software component and other components, or between the given software component and portions of the system files.

The software manager user interface permits the computer user to view the information that is stored in the configuration database. In other words, the user can readily observe the prevailing status of each software component in the system, as well as any interdependencies which exist between and among those components. In one embodiment, the user is able to view the system as a collection of logical groupings, wherein related software elements are grouped together according to category and type. In another embodiment, the user is able to view the system as a collection of software products, each product comprising a collection of associated software features.

The software manager user interface also permits the user to specify any changes the user might wish to make in the prevailing system configuration. Such changes might include, for example, enabling or disabling installed software components, installing new software components, de-installing old or unused software components, or moving components within the hierarchical filing structure of the operating system.

The software manager server communicates with both the user interface and the configuration database. The server carries out any user-specified changes and updates the configuration database to reflect those changes. Thus, a user of an operating system constructed in accordance with the teachings of the present invention can readily obtain an overall "picture" of a prevailing system configuration, use

3 4

that picture to make intelligent decisions with respect to includes a central processing unit 212, a main memory

system modification, and thereby administer the operating which is typically implemented in the form of a random

environment in a seamless and robust manner. access memory 218, a static memory that can comprise a

In one exemplary embodiment, the software manager of rea? only memory 220, and a permanent storage device

the present invention also comprises a set of software 5 such as a magnetic or optical disk 222. The CPU 212

, • , • , r i . .i communicates with each of these forms of memory through

manager plug-ins that provide an interface between the . ^ , , „ . . , , , • „„„ . , ,

^ , . ^ an internal bus 214. Ihe peripheral devices 208 include a

software manager server and various software components , . , . , , , , -„„ , . ..

. , „ , , v T ri data entry device such as a keyboard 200, and a pointing or

within the operating system. Such plug-ins permit the soft- ', , . , ',, „ °,

, ° ^ ,r . j. cursor control device 202 such as a mouse, trackball or the

ware components to request and receive notification of ... . ,. , , . , v T ^„

. • , • 4, • £ ^ , • ^ n ln like. A display device 204, such as a CR1 monitor or an LCD

certain changes in the information stored in the configura- lu , , r ^ r ^ . •

, ^ , m ^ L , , , screen, provides a visual display of the information that is

tion database. Ihe software components are then able to , . , .if . if ' r ,

, . • 4, , „ being processed within the computer, tor example the conadapt as necessary in response to those changes, tor ^ ^a K. , ^ . , , r J • • r ^ ,

, ri , , , . , . ° ^ tents of a document. A hard copy of this information can be

example, software elements which require access to system ., , if , . ^ • , , • ^ ,

*' , , • j- r .i i provided through a printer 206, or similar such device, bach

file content can request that information from the software rc, . , , , . . . ...

,, .,. 1C of these external peripheral devices communicates with the

manager server, and thereby avoid time-consuming run-time li / • . . * -nm

r ^ ' £1 CPU 212 by means of one or more input/output ports 210 on

scans of the system files. if

the computer.

Further features of the present invention are explained Generally speaking, the present invention comprises a

hereinafter with reference to the illustrative examples shown ... man wMch vasfl; es computer operat.

in the accompanying drawings. ^ ing system configuration management by allowing a user to

BRIEF DESCRIPTION OF THE DRAWINGS view and maniPulate high-level software elements. The

present invention thus enables a user to look beyond the

FIG. 1 depicts a software manager for administering individual pieces of the system to see the interrelationships

components in a computer operating system, in accordance between system elements and to gain an understanding of

with the teachings of the present invention. 25 overall functional system composition. In one exemplary

FIGS. 2a-2rf depict contents of a configuration database embodiment, a user is presented with an interface to the

constructed in accordance with the teachings of the present software manager anytime he or she attempts to access or

invention. move the system files, or anytime he or she attempts to

FIGS. 3a-3b depict, respectively, first and second outputs insta11 additional software. Alternatively, the user can access

of a user interface constructed in accordance with the 30 the interface to the software manager directly by specifically

teachings of the present invention. launching a software manager application. By channeling

„„ . , . ^ if . , , , j- • , j- system configuration activity through the software manager,

FIG. 4 depicts a third output of a user interface con- ^. ^ / ^ , . , v, °,

^ , , v, :, , , • r , an operating system constructed in accordance with the

structed in accordance with the teachings of the present r. . ° . ., , . , .

° present invention provides a comprehensive approach to

invention

35 system administration that is efficient, consistent, and easily

FIG. 5 depicts a filtering of a configuration database in understood by the typical user accordance with a user-defined set of operating environment ... tQward ^ ^ ^ ... ma r of ±e

preferences, said filtering being performed in accordance n( invention allows a user to obtain useM information

with the teachings of the present invention. regarding installed software elements (e.g., program size

FIG. 6 is a block diagram of the main components of a 40 and function, version number, enabled/disabled status,

computer system. resource requirements, installation date, vendor information,

etc.), and allows a user to enable, disable, install, de-install, move, and otherwise modify elements as appropriate. The software manager also tracks dependencies between soft

To facilitate an understanding of the present invention and 45 ware elements so that a user may obtain information regard

the advantages offered thereby, features of the invention are ing the impact a given change might have on overall system

often described and illustrated with reference to the use of integrity. In one embodiment, the software manager allows

the invention in a computer running the Macintosh® oper- a user to update an existing partial installation of a given

ating system developed by Apple Computer, Inc. It will be software element (e.g., the user may wish to re-execute an

appreciated by those having familiarity with the relevant 50 installer routine associated with a word processor in order to

technology, however, that the principles of the present add a spell checker), or return to a core installation associ

invention are not limited to this particular type of operating ated with a software element (e.g., the user may wish to

environment. Rather, the concepts which underlie the inven- delete unused features associated with a database program in

tion are applicable to any type of computer operating order to conserve disk space).

environment in which it is desirable to provide a user- 55 In the software manager of the present invention, the

friendly method of system administration. operating system software residing in the system files is

DETAILED DESCRIPTION OF THE
PREFERRED EMBODIMENTS

Introduction

treated as a collection of core modules each having an associated set of dependent plug-in modules. A core module A typical computer system, of the type in which the is a stand-alone software element, containing the essential present invention can be employed, is illustrated in block 60 features of a particular system function or service. A plug-in diagram form in FIG. 6. The structure of the computer itself module, on the other hand, constitutes only one piece of a does not form part of the present invention. It is briefly broader system function or service and relies upon a parent described here for subsequent understanding of the manner core module for proper operation. Such a plug-in is optionin which the features of the invention cooperate with the ally present in the operating system and is located dynamistructure of the computer. Referring to FIG. 6, the system 65 cally by its parent at computer run-time. As is described in includes a computer 224 having a variety of external periph- more detail below, a user of the software manager can obtain eral devices 208 connected thereto. The computer 224 an organized system view of the system file content in which

5

the available core and plug-in modules are displayed in coherent groupings by category and type. For example, if a user wishes to see all printer drivers in a given system, the user could select the category "printing" and the item "printer drivers" within the software manager system view. 5

Shifting from system software to application software (i.e., that software which enables a user to perform some end goal beyond basic computer operation), an analogy to core and plug-in modules can be drawn. Specifically, a software product (e.g., a word processor, or a database program) is 1Q analogous to a system core module, and a software "feature" (e.g., a spell checker, or a data plotting routine) is analogous to a system plug-in. Thus, an independent application product may comprise a collection of related dependent features. Preferably, in keeping with the goal of providing a simplified system administration experience for the user, only those 15 software elements having a clear and understandable functional end use from the perspective of the user (as opposed to an internal system operating purpose) are presented to the user as products or features. More specifically, a product corresponds to a program that a user might buy or receive on 20 a portable diskette, and represents a unit concept of functionality which may consist of multiple features. The subordinate features may be either indispensable functional elements or optional elements which the user may wish to enable and disable intermittently. To assist the user in 25 administering such products and features, the software manager allows the user to obtain a "products and features" view of the system. In such a view, the user might see, for example, that a particular word processor product is installed (and available) and that a specific associated die- 30 tionary feature is not presently installed. In such case, the user might choose to install the dictionary feature directly from the software manager products and features view.

In addition to providing a user-friendly method of system administration, the present invention also provides valuable 35 services to those software entities, including core modules, plug-ins, products, and features, that rely on the content of the system files. The software manager provides such entities with means for specifying any system content in which they are interested (i.e., by which they are affected). Such 40 storage is persistent across successive shut-downs and startups of the system so that the interested software entities can avoid time-consuming start-up scans of the system files prior to their operation to locate items of interest. The software manager provides notification to these entities when their 45 associated system file content is created, deleted, or moved, so that they can respond accordingly. For example, After Dark is a commercial application available for Apple Macintosh® computers which offers users a number of options for animated screen savers. In a system utilizing the software 50 manager of the present invention, the After Dark software could register with the software manager, as described below, to receive notifications with respect to installations and deletions of screen saver modules. Thus, if a user were to launch the After Dark application, the After Dark software 55 could quickly present that user with a choice of available screen saver options without first having to search the system files to determine which screen saver modules are present on the system.

Further advantages of the present invention are made 60 clear by the following detailed description of an exemplary embodiment of the software manager. Throughout the discussion, the generic terms "component", "entity", and "element" are used to describe various software items. Whether such an item is a core module, a plug-in, a product, 65 a feature, or a file will be apparent from the context of the discussion.

6

Overall Software Manager Architecture

As shown in FIG. 1, one embodiment of the software manager comprises a software manager user interface 10 in communication with a software manager library 30 and a database library 40. The database library 40 is in communication with a database server 70, which is in turn in communication with a configuration database 80. The software manager library 30 is in communication with a software manager server 60 which is in turn in communication with both the database library 40 and a collection of software manager plug-in modules 50.

Generally speaking, the software manager stores information in the configuration database 80 describing the available software components and delineating any interrelationships existing between the components (or between the components and the system file content). The software manager updates the configuration database 80 as changes in the prevailing operating environment are made. Such changes include installations of new software via a software installer 20, manipulations of system file content by a user (e.g., movement of a system file within the hierarchical filing structure of the operating system), and modifications in software component status made by a user directly through the software manager user interface 10.

To assist a system user in managing the operating environment, the user interface 10 uses the information stored in the configuration database 80 to present the user with various "system" or "product and feature" views of the prevailing configuration. The user may launch the user interface 10 directly (e.g., by pointing to and clicking on an appropriate icon in a windowing environment) or indirectly (e.g., by attempting to access the contents of the system files, or by attempting to install additional software via an installer routine 20). By compelling the user to conduct system administration activities through the software manager, and by providing the user with pertinent, easily understandable information regarding system configuration, the present invention allows a user to seamlessly administer the operating environment with minimum risk of corrupting overall system integrity.

Software Manager Server

The software manager server 60 is directly responsible for detecting changes in the operating environment and indirectly responsible for updating the configuration database 80 to reflect any such changes. With respect to detecting changes in the operating environment, the software manager server 60 distinguishes between at least three different types of change. First, the software manager server detects changes resulting from installation of new software. Toward that end, the software manager server 60 is in communication with operating system and application installer routines 20 as shown in FIG. 1. Second, the software manager server 60 detects changes resulting from user manipulation of the system files. To accomplish this, the software manager server 60 registers with a hierarchical file system server within the operating system for notification of modifications made to the system files. Such a notification arrangement is well known in the prior art and is not described in detail here. Third, the software manager server 60 detects changes requested by the user via the software manager user interface 10. The software manager server 60 detects such changes through its communication with the user interface 10 via the software manager library 30. This library includes a collection of callable software routines used by the software server 60 to access the user interface 10, and vice 7

versa. In addition to detecting a requested change and updating the configuration database 80 accordingly, the software manager server also effects the requested change by notifying the appropriate system software components.

To provide such notification, and to update the configu- 5 ration database 80 to reflect environment changes, the software manager server 60 utilizes a collection of software manager plug-in modules 50. Each plug-in module 50 is associated with a software component existing within the operating environment and provides information to the 1° software manager server 60 describing the hierarchical relationship between that software component and other software components in the system. Each plug-in 50 also provides a listing of system file content by which its associated software component is affected and registers with the :5 software manager server 60 for notification of changes in such system file content. The software manager server 60 passes the information provided by the plug-ins to the database server 70 via the database library 40. This library includes a collection of callable software routines used by 20 the software server 60 to access the database server 10, and vice versa. The database server 70 stores the information in the configuration database 80 in accordance with instructions provided by the software manager server 60. When the software manager server 60 detects a change in the operating 25 system configuration, it notifies the appropriate plug-ins 50 which in turn notify their associated software components and update their respective portions of the configuration database 80.

A plug-in module 50 provides the above described infor- 30 mation to the software manager server 60 when its associated software component is first installed. Thus, the provider of a given software component is responsible for also providing a compatible plug-in containing the appropriate information. Certain plug-ins 50 exist when the computer is 35 originally shipped, as they are associated with core system modules that are required for fundamental computer operation. Other plug-ins 50, however, are added later when, for example, a new software product is purchased and installed within the computer operating environment. 40

Software Manager Configuration Database

The software manager uses the configuration database server 70 and library 40 for persistent disk-based storage of 45 the configuration database 80. As shown in FIG. 2a, the overall software manager database, or data tree, is actually comprised of three sub-trees: a component tree, an item tree, and a software manager plug-in tree. FIGS. 2b-d provide example layouts of a component tree, an item tree, and a 50 software manager plug-in tree, respectively. Those trees are populated for two software items (labeled "Albert" and "Junior") which are part of a "Voices" plug-in to a "Text to Speech" core module. For ease of understanding, the data trees in the figures are not fully populated, and contain only 55 the branches pertinent to this discussion.

The component tree is used to maintain information regarding the hierarchy of installed software components (e.g., system core and plug-in modules, and application products and features). Referring to FIG. 2b, the hierarchical 60 relationship between a "System Software" core module and the "Albert" and "Junior" items is defined, including all intermediate modules. The item tree, shown in FIG. 2c, is used to maintain information regarding properties of the items tracked by the software manager plug-ins 50. An item 65 in the item tree might also include a backlink to where a given item falls within the component tree, so that the

8

software manager can show the user where a given component was originally installed from. For example, referring to FIG. 2c, the "Albert" item has an associated "Component Path" property (i.e., a backlink describing its path within the component tree), a "Plug-ins: Voices" property (indicating that "Albert" is associated with the "Voices" plug-in module), and a "Descriptor" property which describes various aspects of the item "Albert" (e.g., its location within a hierarchical filing structure). Similar properties are stored for the "Junior" item.

The software manager plug-in tree is used to maintain information regarding the software manager plug-ins 50. For example, referring to FIG. 2d, one sees that the items "Junior" and "Albert" are associated with the "Voices" plug-in module.

Software Manager Plug-ins

As described above, software manager plug-ins 50 are system plug-ins to the software manager which store and retrieve data in the configuration data tree 80 via the software manager server 60. Software manager plug-ins 50 also register with the software manager server 60 for notification that system files of a given type (or containing a given type of information) have been modified (e.g., enabled, disabled, added, deleted, or moved). The most basic software manager plug-in module includes four functional routines: ItemEnters, ItemExits, Enableltem, and DisableItem. These routines are called by the software manager server 60 in order to carry out the functions described above. When the ItemEnters routine is called, the plug-in creates entries in the database trees for components associated with that plug-in and the arriving (newly added) item. When the ItemExits routine is called, the plug-in removes entries in the database trees for components associated with that plug-in and the departing (removed) item. When the Enableltem routine is called, the plug-in enables the relations in its portions of the database trees that are associated with the enabled item. Finally, when the Disableltem routine is called, the plug-in disables the relations in its portions of the database trees that are associated with the disabled item. Other basic software manager plug-in routines might include GetFileTypes (returning system file types the plug-in is interested in), GetPluginID (returning a plug-in ID associated with the plug-in), GetPluginName (returning a textobject name of the plug-in), and GetPluginDescription (returning a text-object description of the plug-in).

Software Manager User Interface

As described above, the software manager user interface 10 is invoked when a user attempts to access system file content, or attempts to install new software via an installer routine 20, or intentionally launches the software manager application. In one embodiment, the products and features view mentioned previously is the initial view presented to the user. In that embodiment, the system view, also mentioned previously, is accessible through the products and features view.

The system view presents the system files in logical groupings of the elements contained therein. For example, on a computer running the Macintosh® operating system, the system view might display categories within the System Folder such as Printing, Networking, and Fonts. Each of these categories might have a number of associated subcategories (for example, an Audio category might contain sub-categories Sounds and Voices). Under each category or sub-category, the system view presents the user with a listing

« PrécédentContinuer »