Abstract:
A method and system for managing a plurality of computers, wherein at least one of the plurality of computers is associated with a user having a user characteristic. The method comprises inputting selection information including the user characteristic, inputting management information, selecting at least one of the plurality of computers based on the selection information, and modifying the at least one selected computer based on the management information.

Description:
REFERENCES TO RELATED APPLICATIONS  
       [0001]     This application claims the benefit of Provisional Application Ser. No. 60/374,228, filed on Apr. 19, 2002, the contents of which are herein incorporated by reference. 
     
    
     BACKGROUND  
       [0002]     1. Technical Field  
         [0003]     The present disclosure relates to computer systems. More specifically, the present disclosure relates to a method and system for managing a computer system.  
         [0004]     2. Description of the Related Art  
         [0005]     One beneficial characteristic of computers today is their versatility, specifically, their ability to be used by multiple users and for multiple purposes. The capabilities of a computer, including desktop personal computers, laptop computers, workstations, point of sale computers, and other computer-based devices, may be partially determined by an operating system. Operating systems provide a software platform on top of which other programs, called application programs, can run. Some operating systems permit accounts for multiple users and may have different application programs installed and accessible to each user. A single computer may hold multiple operating systems, multiple application programs, and even multiple versions of a single application program.  
         [0006]     Computers located in different areas may be connected via a network, for example, a local-area network (LAN) or wide-area network (WAN). As a result, a computer administrator has the ability to monitor and control a large number of computers from a remote location. A computer administrator has the responsibility to manage the many users, purposes, operating systems, applications and versions of applications installed on a computer.  
         [0007]     Traditionally, computer management has been performed in a computer-centric fashion. For example, computer administrators have been presented with lists of computers to be managed. Often, computers are labeled with unique alphanumeric sequences, which, while adequately identifying each computer, do not identify the user associated with a particular computer. Accordingly, if a policy change needs to be effected for certain users, it can be difficult for an administrator to determine which computers are associated with the user so that the policy change can be implemented only on those machines associated with that user. One solution may be to label a computer with the name of its user; however, because a computer may have multiple users and because a user may operate multiple computers, this solution may not always be sufficient. In a computer-centric system, computers may be categorized by groups to reflect geographical location or functional purpose. For example, a supermarket chain may manage thousands of point-of-sale (POS) computer systems, and may configure the computers based on location and function.  
         [0008]     Computer management may also be performed in a user-centric fashion. Management from the viewpoint of users, rather than computers they operate, can be more intuitive for the computer administrator and easier to maintain. This type of system is referred to herein as user-centric computer management. The goal of user-centric computer management is to offer computer administrators an alternative view of their enterprise that reflects the user-centric model. In order to operate with existing computer-centric systems, it may be desirable to provide a computer management system in which the traditional computer-centric model remains and may be modified to operate with the user-centric model.  
         [0009]     Many companies have, or are moving toward, a centralized store of common enterprise data, for example, employee information, held in a directory. These directories are databases which often hold information about the personnel of the enterprise,. their roles and geographical location. For example, a company could have a directory design using a container hierarchy reflecting the company&#39;s geographical structure and groups to reflect the roles of individual users. Where such directories exist, it may also be desirable for user-centric management systems to be able to take advantage of these centralized stores of data by integrating with existing management systems in order to access the directory information to retrieve user information, including employee name, location, occupational role, etc..  
       SUMMARY  
       [0010]     The present disclosure relates to a method for managing a plurality of computers, wherein at least one of the plurality of computers is associated with a user having a user characteristic. The method comprises inputting selection information including the user characteristic, inputting management information, selecting at least one of the plurality of computers based on the selection information, and modifying the at least one selected computer based on the management information.  
         [0011]     In another embodiment, the method comprises inputting selection information including one of the user characteristic and a computer characteristic into a selected computer, transmitting the selection information to a managing computer, searching in a database for the selection information and management information associated with the selection information, and modifying the selected computer based on the management information.  
         [0012]     The present disclosure also relates to a computer recording medium including computer executable code for managing a plurality of computers, wherein least one of the plurality of computers is associated with a user having a user characteristic. The computer recording medium comprises code for inputting selection information including the user characteristic, code for inputting management information, code for selecting at least one of the plurality of computers based on the selection information, and code for modifying the at least one selected computer based on the management information.  
         [0013]     In another embodiment, the computer recording medium includes code for inputting selection information including one of the user characteristic and a computer characteristic into a selected computer, code for transmitting the selection information to a managing computer, code for searching in a database for the selection information and management information associated with the selection information, and code for modifying the selected computer based on the management information.  
         [0014]     The present disclosure also relates to a programmed computer system for managing a plurality of computers, wherein at least one of the plurality of computers is associated with a user having a user characteristic. The programmed computer system resides on a computer-readable medium and comprises instructions for causing a computer to input selection information including the user characteristic, input management information, select at least one of the plurality of computers based on the selection information, and modify the at least one selected computer based on the management information.  
         [0015]     In another embodiment, the programmed computer system comprises instructions for causing a computer to input selection information including one of the user characteristic and a computer characteristic into a selected computer, transmit the selection information to a managing computer, search in a database for the selection information and management information associated with the selection information, and modify the selected computer based on the management information.  
         [0016]     The present disclosure also relates to a programmed computer apparatus for managing a plurality of computers, wherein at least one of the plurality of computers is associated with a user having a user characteristic. The programmed computer apparatus performs steps comprising inputting selection information including the user characteristic, inputting management information, selecting at least one of the plurality of computers based on the selection information, and modifying the at least one selected computer based on the management information.  
         [0017]     In another embodiment, the programmed computer apparatus performs steps comprising inputting selection information including one of the user characteristic and a computer characteristic into a selected computer, transmitting the selection information to a managing computer, searching in a database for the selection information and management information associated with the selection information, and modifying the selected computer based on the management information. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0018]     A more complete appreciation of the present disclosure and many of the attendant advantages thereof will be readily obtained as the same becomes better understood by reference to the following detailed description when considered in connection with the accompanying drawings, wherein:  
         [0019]      FIG. 1  shows an example of a computer system capable of implementing the method and system of the present disclosure;  
         [0020]      FIG. 2  shows an example of a network connecting a managing computer system and other computer systems according to the present disclosure;  
         [0021]      FIGS. 3A-3B  show examples of a computer-object view and a user-object view according to the method and system of the present disclosure;  
         [0022]      FIG. 4  shows an example of a process for selecting and modifying computer systems according to the method and system of the present disclosure; and  
         [0023]      FIG. 5  shows an example of a computer system login and configuration process according to the method and system of the present disclosure.  
     
    
     DETAILED DESCRIPTION  
       [0024]     In describing preferred embodiments of the present disclosure illustrated in the drawings, specific terminology is employed for sake of clarity. However, the present disclosure is not intended to be limited to the specific terminology so selected, and it is to be understood that each specific element includes all technical equivalents which operate in a similar manner.  
         [0025]      FIG. 1  shows an example of a computer system which may be managed by a management system according to the present disclosure, or which may execute such a management system. The system and method of the present disclosure may be implemented in the form of a software application running on a computer system, for example, a mainframe, personal computer (PC), handheld computer, server etc. The software application may be stored on a recording media locally accessible by the computer system, for example, floppy disk, compact disk, hard disk, etc., or may be remote from the computer system and accessible via a hard wired or wireless connection to a network, for example, a local area network, or the Internet.  
         [0026]     An example of a computer system capable of implementing the present method and system is shown in  FIG. 1 . The computer system referred to generally as system  100  may include a central processing unit (CPU)  102 , memory  104 , for example. Random Access Memory (RAM), a printer interface  106 , a display unit  108 , a (LAN) local area network data transmission controller  110 , a LAN interface  112 , a network controller  114 , an internal bus  116  and one or more input devices  118 , for example, a keyboard, mouse etc. As shown, the system  100  may be connected to a data storage device, for example, a hard disk,  120 , via a link  122 .  
         [0027]      FIG. 2  shows an example of a network connecting a managing computer system and other computer systems according to the present disclosure. Managing computer system  150  and Computer A  152  and Computer B  154  may be of the type of computer system  100  as shown in  FIG. 1 , or they may be of any other type of stationary or portable computing system. Managing computer system  150  and Computer A  152  and Computer B  154  may be connected via a network  156 , such as the Internet, a local-area network (LAN), wide-area network (WAN), or wireless network. In the example shown in  FIG. 2 , users of the computers are shown along with the computers with which they are associated. For example, an Administrator  160  is associated with a Managing computer system  150 , User  1   162  is associated with both Computer A  152  and Computer B  154 , User  2   164  is associated with Computer A  152 , and User  3   166  is associated with Computer B  154 .  
         [heading-0028]     User-Model and Computer-Model  
         [0029]     The present system and method allows an administrator to view the system as a number of users and to effect policy changes on to those users. A Managing computer system  150  will automatically determine what to do with the individual machines on the system belonging to those users in order to implement a policy change.  
         [0030]     A user-centric computer management system according to the present disclosure allows a computer administrator to manage computers and other information technology (IT) resources through a view of the users of those resources. Resources may be represented and displayed graphically to the administrator at a managing computer system via, for example, a computer monitor. To offer this view, data models of the existing computer-centric management systems may be modified to include a user-object data structure corresponding to a user. The user-object data structure may provide a link to one or more computer-object data structures which store information such as, for example, inventory, software installations including application programs, operating systems etc., computer configuration tasks, and users associated with the computer. In another aspect of the system of the present disclosure, the user-object may instead store the information stored in each associated computer-model and may be updated accordingly.  
         [0031]     When a user is associated with one or more computers, the user-object for that user may contain a link to each of the associated computers. Accordingly, if a computer is associated with more than one user, the user-object for each user may have a link to the computer-object of the associated computer. In one aspect of the present disclosure, when a user-object for a user is displayed, the system retrieves and displays information stored in the linked computer-objects corresponding to computers with which the user is associated.  
         [0032]     The user-object may be identified by the user account used to log on to a computer running a desktop agent, the user account may then be reported back to a managing computer for registration. The computer administrator has the option to deactivate user registration.  
         [0033]      FIGS. 3A, 3B  show examples of a computer-object view and a user-object view according to the method and system of the present disclosure. These views may be visible to an Administrator  160 , and may serve to indicate associations between users, computers, tasks, and software applications. In a computer-object view, as shown in  FIG. 3A , a Computers heading  200  is shown, followed by one or more computers listed individually or by group categorization. The Computers heading  200 , for example, may be referred to as “All Targets” or some other heading that appropriately describes computer-objects. Managing computer system  150 , Computer A  152  and Computer B  154  are shown beneath the Computers heading  150 . In  FIG. 3A  expanded views for Computer A  152 , and Computer B  154  are visible. In  FIG. 3A , Computer A  152  includes Inventory area  202  and Installations area  204 . Inventory area  202  may include a description of the hardware included in the computer system. In this example. Installations area  204  includes Wordprocessor software  206  and Email software  208  entries indicating the association of those application programs with Computer A  152 . Those software applications listed beneath Installations area  204  may be stored on Computer A  152  or may be accessible via, for example, a network. For each computer, scheduled tasks may be shown in a Tasks area  210 . An Email update task  212  appears for Computer A  152  which may be a result of a policy set by the administrator to update the Email software  208  and may be removed once the update is complete. User  1   162  and User  2   164  associated with Computer A  152  are shown in a Users area  214 . Computer B  154  is shown beneath the Computers heading  200 . Computer B  154  includes Inventory area  216  and Installations area  218  which includes computer aided design (CAD) program  220  and Email software  208 . The Tasks area  222  includes the email update task  212 . Areas for User  1   162  and User  3   166  associated with Computer B  154  are shown in a Users area  224 .  
         [0034]     Shown in  FIG. 3B  is a user-object view showing users of the system under a Users heading  226  including Administrator  160 , User  1   162 , User  2   164  and User  3   166 . The Users heading  226 , for example, may be referred to as “All Users” or some other heading that appropriately describes user-objects. Administrator  160 , User  2   164  and User  3   166  also have associated information and are shown in an abbreviated, unexpanded form. An area beneath the heading User  1   162  includes Installations area  228 . Tasks area  236  and Targets area  238 . In this user-object view, Installations area  228  includes application programs associated with User  1 , for example Wordprocessor  206 , beneath which is listed the computers, or Targets  230 , on which those programs are stored and/or executed. Additionally, if a user uses a computer, all installations for that computer may be added to the view of installations for the user. Similarly, if the same user also uses another computer, the installations view for that user may include the sum of both computers&#39; installations.  
         [0035]     In the example shown in  FIG. 3B , the application program Wordprocessor  206  is stored on, or may be associated with, Computer A  152 , the application program Email  208  is stored on, or may be associated with, both Computer A  152  and Computer B  154  listed beneath Targets  232 , and the application program CAD  220  is stored on, or associated with, Computer B  154 , listed beneath Targets  234 . As described above, pending tasks, for example, a task of “Updating Email”  212 , for updating the Email application program  208 , are listed in the Tasks area  236 . The computers with which User  1  is associated are listed in the Targets area  238 . An administrator may interact with the view to reveal more information about or modify an entry. In one aspect of the system according to the present disclosure, the administrator may view information for User  2   164  and User  3   166  by selecting those users, using, for example, a clicking operation of a mouse.  
         [0036]     The system and method of the present disclosure allows an administrator to view application programs available or assigned to a user or to remotely manage the computer to which a user currently is logged on. In the user-centric view as described herein, the computer may be viewed as a property of the user, rather than the user a property of the computer.  
         [heading-0037]     User Roles  
         [0038]     Users may have one or more roles with respect to their duties within their organization, for example, programmer, data entry, point-of-sale operator. In one aspect of the system of the present disclosure, user roles may be implemented by creating a separate user group for each role and associating users with those groups. For example, users can be grouped into organizational or geographical groups, or any other type of group. A user group may be static, query, template and query/template. A new query attribute group may be introduced to handle attributes of the user object. It may also be desirable for user groups to contain other user groups or computer group, in addition to users.  
         [0039]     In another aspect of the system of the present disclosure, a user-object data structure may include an area for storing a user role and/or a user group. In the system of the present disclosure, user roles may be used by the administrator for managing and configuring computers. In one aspect of the present disclosure, when an employee logs on to a computer, the computer may be configured for that user&#39;s needs automatically based on information stored in a database or entered by the user, for example, user role, computer role, location, etc.. Optionally, the computer may check for updates every time a user logs on to the computer or periodically as specified by the computer administrator.  
         [0040]     User roles may be categorized to include sub-categories. For example, the user role of programmer may have one or more sub-categories including different types of programmers.  
         [heading-0041]     Computer Role  
         [0042]     A computer role describes a computer in terms of the operations which are performed by that computer, for example, a computer may be used as an email server, word processor or service desk workstation. In the system of the present disclosure, computer roles may be used by the administrator for managing and configuring computers. Computers may have multiple roles and computer roles may be categorized into groups having sub-groups of computer roles. In one aspect of the present disclosure, a computer role may be assigned by a user. An administrator may assign policies to computer roles for updating and configuration.  
         [heading-0043]     Policies, Tasks  
         [0044]     In the present system, a computer administrator may create a policy, or rule, applicable to a user, user role, computer role, or other characteristic, which may define configuration tasks to be performed on computers. In one aspect of the present disclosure, a policy may include information describing those computers which will be affected by the policy. These computers may be identified based on their association with users having specified user-roles, or by other identifiers, such as computer-roles or the computers may be identified directly by some other naming convention. A policy may also include a name or descriptor of the software application used to modify the computer system, as well as the action or actions to be performed, such as installing, updating, deleting, configuring, etc.. For example, a policy may provide that all computers associated with users having the user role of programmer are to receive a specified application program.  
         [0045]     A policy may provide configuration information for a specific application program. For example, features of an email program may be enabled or disabled. By assigning a policy specifying a user role, configuration tasks may be scheduled for users not yet assigned that role. When the administrator assigns a user role to a user, the policies of the rule assigned may be enforced automatically, and any computers on which the user operates may be automatically configured accordingly.  
         [0046]     A task may be any automated procedure performed on a computer. It may be an asset management policy or a software delivery installation. A task modifies the configuration of a computer so that it complies with a policy.  
         [0047]     In one aspect of the present disclosure, tasks may be performed on computers selected based on, for example, user name, user role, computer role, other user or computer characteristic or a combination thereof. Tasks may be scheduled according to user, while the associated targets actually run the tasks. A user may be labeled as “multisystem,” meaning that all targets that the user logs on to become associated targets. Tasks scheduled for a multisystem user may be run on all associated targets for that user.  
         [0048]     To provide greater flexibility when selecting computers for modification, computers may be selected individually or by searching users, user roles and computer roles using logical operators, for example, AND, NOT, OR, etc. For example, once all computers in an enterprise have been allocated roles, an administrator may invoke a policy change without being cognizant of any actual computer names. The administrator may order that a task, such as installing a word processor, be implemented on all computers having a specific role. Continuing with this example, the administrator may further define the parameters by ordering the task performed on users having a specific role and in a particular group.  
         [0049]     In one aspect of the present disclosure, tasks may be assigned using a “drag-and-drop” procedure whereby an administrator selects one or more software applications from a list displayed on a display screen, then drags icons representing the software applications to a point on the display screen overlapping one or more icons representing users or computers and drops them on the user or computer icons.  
         [0050]     In another aspect of the present disclosure, a task may be scheduled, for example, for a specified user or for a user designated by a specified user role. Continuing the example, in the system of the present disclosure, it is possible to modify only those computers associated with a user which are designated by a specified computer role.  
         [heading-0051]     Directories  
         [0052]     A directory is a storage area for storing user data, user roles, computer data, computer roles, application program data and other user and computer information. It may be desirable for the system of the present disclosure to use the organization information stored in existing directories by integrating with existing management systems. Such integration may be performed in a number of ways. For example, the directory may be a primary store for all application data. Integration may also be performed by publishing the directory through a directory interface. A standardized protocol, such as Lightweight Directory Access Protocol (“LDAP”) may be used for accessing data from directories. By adding an LDAP gateway that translates the data models of desktop products into directory schemes, it is possible to publish a subset of objects for an entity without updating that entity&#39;s directories. Accordingly, two directories may be logically linked together so that it looks like one directory to end users.  
         [0053]     In another alternative, it may be desirable to populate a target directory with a subset of application data from a database. The schema of the target directory may be extended with all the classes and attributes desired for storing the exported data. The exported data may be updated periodically to allow for objects that no longer exist and changes in values of attributes. The population may be performed using an LDAP Data Interchange Format (“LDIF”).  
         [0054]     In another alternative for directory integration, it may be desirable to populate a target database with data from an external directory. This may require mapping an entity s organizational hierarchy and performing desktop management based on that hierarchy. User and computer groups may be mapped to directory containers and groups through advanced LDAP search expressions. The members of the containers and groups in the directory may be populated into the groups of the desktop products if the objects also exist in the desktop database. The population may be either on-line meaning that it is performed every time accessed or off-line meaning that it is performed on a time schedule.  
         [0055]     In yet another alternative for integration, it may be desirable to store references to objects in a directory and access the references through user interfaces (“UIs”), reports, events, etc.. User and computer objects in desktop databases may store a reference to a corresponding object in a directory. The reference may be the distinguished name of the directory object. When viewing the objects in the desktop graphical user interfaces (“GUIs”) and producing reports, the attributes stored in the directory may be displayed to enhance the user centric experience. LDAP search URLs to locate the objects in the directories may be stored globally and used when a new user or computer is registered to the desktop manager. It may be possible to manually map users and computers as well.  
         [0056]     The system of the present disclosure may provide directory membership synchronization and utilization functionality to allow a computer administrator to use the organization information stored in existing directories. The computer administrator may create user roles or computer roles based on a result from a directory search operation. An example of a directory search may utilize natural language or structured query language (SQL) expressions. For example, a computer administrator may search for users who are members of the group ‘Secretary’ having a last name beginning with the letters ‘SM’, or the computer administrator may search for computers that are members of the group ‘United Kingdom’ and are members of the directory group ‘Web Servers’. In this example, users or computers returned by the directory search operation may be assigned a user role or computer role, respectively. The evaluation of roles may be based on a time schedule defined by the computer administrator, making role assignment dynamic and automated. A directory query designer may be used to create a complete LDAP search URL to be used for synchronization of a desktop management computer and user groups with a directory.  
         [0057]     When viewing user-objects and computer-objects, the computer administrator may be offered extended user and computer information retrieved from a directory. User information may include a user&#39;s full name, email address, street address, and for computers this may include an operating system, operating system version, service pack, and application programs resident on the computer. In general, any attribute that has been mapped into the generic directory schema at the time of directory integration configuration may be presented.  
         [0058]     An EXE, such as a directory configuration wizard, may be used to map classes and attributes in a directory to a generic desktop management schema understood by all products. The wizard may be used to define the location of the directory with authentication details, map a user class, identity and attributes, and map a computer class, identity and attributes. After finalizing the wizard, all desktop management managers installed on a server may use the new directory definition.  
         [heading-0059]     Selection and Modification  
         [0060]      FIG. 4  shows an example of a process for selecting and modifying computer systems according to the method and system of the present disclosure. In Step S 300 , a computer administrator enters information which may include, for example, user name, user role, user group, computer role, computer group, another identifying characteristic of a user or computer, or any combination thereof. This information may be used to search a database and produce a list of users and/or computers satisfying the information input. In step S 302 , the administrator inputs a policy to be implemented on the users/computers retrieved from the database. The policy may be saved for reference and implementation. In one aspect of the present disclosure, the system may check the new policy against existing policies in order to inform the administrator of conflicts. An example of policy conflict would be to schedule a modification for a program already scheduled to be deleted. In that example, a computer administrator may first input a policy to remove an application program from a computer associated with a user and, before the task of removing the application program is carried out, to input a second policy to modify the same application program from the same computer associated with the user. In the event a new policy conflicts with an existing policy, the administrator may be alerted and may have the option to edit or delete a policy. Similarly, if a computer has dual roles, the administrator may be alerted if one policy change made because of a first role conflicts with a second policy change made because of a second role. In Step S 304 , the administrator may execute a command to implement the policy, which may include scheduling and adding a task corresponding to the policy to the data structures of the users/computers retrieved from the database. In Step S 306 , the task is carried out of the selected computers.  
         [heading-0061]     Login and Configuration  
         [0062]     An example of a computer system login and configuration process according to the system and method of the present disclosure is shown in  FIG. 5 . In step S 320 , a user inputs login information into a computer system, for example Computer A  152 , running a Software Delivery Agent application. The Software Delivery Agent application monitors the users of Computer A  152 , and, in step S 322 , transmits user login information, and/or information related to the users of Computer A  152 , to a Software Delivery Server application running on Managing computer  160  via, for example, a communication network  156 . By receiving this login information at the Managing computer  160 , it is possible to always know where a user is logged on. In step S 324 , the Managing computer  160  searches for information, for example, a user-object in a database based on the received user login information. In one aspect of the system of the present disclosure, if a user-object does not exist for the user, one may be created and information relating to the user object stored in the database. It may also be possible to configure which types of users, such as none, only domain users, only local users or both domain and local users, to populate on the software delivery server. It may also be possible to decide whether to include the domain or computer name in the user-object&#39;s unique name.  
         [0063]     The information stored in the database may include a user role, a computer role, policies and other information. In another aspect of the present disclosure, it may be possible to set up data transfers between users and user groups as well as computers and computer groups. In another aspect of the present disclosure, instead of the user role and computer role being determined from a database query, a user may provide the user role and/or the computer role information at Computer A  152 , where it is then transmitted to the Managing computer  160  and stored in the database. In step S 326 , the Managing computer  160 , based on the information retrieved from the database, configures Computer A  152  accordingly. Configuration may include modifying software used on Computer A  152 . For example, Managing computer  160  may transmit and install operating systems, application programs, updates to application programs and operating systems, data files, or other types of information. Managing computer  160  may alter settings on the computer and/or may uninstall operating systems and application programs. The configuration process may allow a computer administrator to control the functionality and operation of Computer A  152 .  
         [0064]     The present system and method thus provides an efficient and convenient way for an administrator to configure and modify one or more computer systems. Numerous additional modifications and variations of the present disclosure are possible in view of the above-teachings. It is therefore to be understood that within the scope of the appended claims, the present disclosure may be practiced other than as specifically described herein.