Abstract:
Apparatus, methods and program products by which the user of a computer system may initiate an interval during which the user leaves the system idle to permit the system to become engaged in peer to peer software distribution.

Description:
FIELD AND BACKGROUND OF INVENTION 
       [0001]    This invention is directed to apparatus, methods and program products by which a computer system normally under use by a usual operator may be selectively engaged in software distribution. More particularly, such as system may be linked into a peer to peer distribution scheme when the user has notified of an interval during which the user leaves the system idle. That is, when the system is user inactive but operationally active. 
       SUMMARY OF THE INVENTION 
       [0002]    It has been proposed before that maintenance tasks for a user&#39;s system which require downloading and installation of software such as applications, full images, new virus definitions, security patches and the like be done from dedicated servers strategically located relative to a group of computer users and their workstations. Such systems of software distribution are well known and in wide use. Such systems impose significant burdens, including the cost of dedicated systems to function as servers. 
         [0003]    Alternative proposals have been based on peer to peer distribution, where user workstations become part of the distribution network and provide a channel through which downloads are directed to other user systems. Such systems, which used to some extent, encounter resistance from computer system users where operation of the system occasionally requires “highjacking” of user systems when the user would prefer to be engaged in other tasks. Users dislike giving up CPU and hard drive cycles when actively operating their systems. 
         [0004]    With the foregoing in mind, it is one purpose of this invention to provide a user of a client system with a way to indicate that a period of non-use has been initiated and engage the user&#39;s system in a peer to peer distribution if the system has been enabled by an administrator or other manager. This invention contemplates that such a capability for the user is provided by an “away” button which may be activated by the user to indicate to a network that a period of non-use or user inactivity has been started. 
     
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
         [0005]    Some of the purposes of the invention having been stated, others will appear as the description proceeds, when taken in connection with the accompanying drawings, in which: 
           [0006]      FIG. 1  is an illustration of a deskside computer system in which the present invention is implemented; 
           [0007]      FIG. 2  is an illustration of a notebook computer system in which the present invention is implemented; 
           [0008]      FIG. 3  is an illustration of a handheld computer system in which the present invention is implemented; 
           [0009]      FIG. 4  is an illustration of a telephone instrument in which the present invention is implemented; 
           [0010]      FIG. 5  is an illustration of a display generated by any one of the system of  FIGS. 1 through 4  in accordance with an alternate implementation of this invention; 
           [0011]      FIG. 6  is a flow chart illustrating the steps in implementation of the invention in the apparatus of  FIGS. 1 through 5 ; and 
           [0012]      FIG. 7  is an illustration of a computer readable medium bearing program code which, when executing on one of the systems of  FIGS. 1 through 4 , implements the present invention. 
       
    
    
     DETAILED DESCRIPTION OF INVENTION 
       [0013]    While the present invention will be described more fully hereinafter with reference to the accompanying drawings, in which a preferred embodiment of the present invention is shown, it is to be understood at the outset of the description which follows that persons of skill in the appropriate arts may modify the invention here described while still achieving the favorable results of the invention. Accordingly, the description which follows is to be understood as being a broad, teaching disclosure directed to persons of skill in the appropriate arts, and not as limiting upon the present invention. 
         [0014]    The present invention may be implemented in a computer system, in a method of operating a computer system, and in the form of a program product distributed for use in a computer system. 
         [0015]    Turning first to implementation in a computer system,  FIG. 1  illustrates a typical computer workstation, here a personal computer system  10 . The system includes a central processor, memory accessible to the processor for storing data including programs to be executed, a display  11 , input devices including a keyboard  12  and a pointing device (here shown as a mouse  13 ), and output devices including a network interface, often known as a NIC. The NIC may implement network connectivity by a wired connection such as an Ethernet connection or by a wireless connection (indicated at  14  in  FIG. 1 ) such as one of the IEEE 802.11 protocols. Such computer systems come in a variety of configurations, some known as notebook systems, others as desktop or deskside systems, some known as servers, and some known as “thin clients”. All such systems include some form of data storage device, typically a hard disk drive. Such a drive is typically housed within the system housing and not readily visible to an observer, but known to be present from system operation. The same technology appears in what are known as handheld computer systems (some of which are also known as PDAs or Personal Digital Assistants) and in certain telephone instruments such as cellular or smart telephones. The present invention finds usefulness with any such systems, and it is to be understood that the choice of one type of such system for illustration is in no way limiting upon the implementation of this invention. Persons familiar with the arts of computer technology will easily recognize the scope of applicability of what is here described and illustrated. 
         [0016]    In one embodiment of the present invention, the away button is an electro mechanical device taking the form of a key  15  on the system keyboard  12  or a button on the front bezel of the display  11  (not shown in  FIG. 1 ) or front bezel of the system. In such a form, the user may press the away button to signal through the network interface the initiation and termination of an interval of non-use of the system by the user. Such a signal may be received by a system administrator or manager to provide certainty that the client system is inactive and that maintenance, download of software or messages or signaling may be accomplished. 
         [0017]      FIGS. 2 ,  3  and  4  illustrate implementations comparable to that described to this point in a notebook system, a handheld system, and a cell phone, respectively. In each view, an away button is shown at  25 ,  35  and  45 , respectively. 
         [0018]      FIG. 5  shows a display such as may be generated by any of the systems of  FIGS. 1 through 5 . Here, the away button is implemented by software which drives the display of an element  55  displayed visibly to a user on the display  51 . The away button may be selectively activated by the user by using a pointing device to move a cursor over the element  55  or, where a touch screen is employed as the display, by touching the button element with a stylus or finger. 
         [0019]    In accordance with the present invention, when a system user indicates that the system is going into a state known here as “user inactive” or “non-use” by actuating the away button (in whatever form that may take for the system in use), a program stored in the system activates and registers the system through the NIC with a master distribution server (or MDS) which communicates with the network to which the client system is connected. The MDS provides support to systems administrators or managers for the distribution of software to client systems, such as application updates, virus definition updates, security patches for software installed on the client systems, and the like. On registering, the client system may advise the MDS of any software already stored which may be appropriate and available for distribution in the peer to peer scheme. 
         [0020]    Registration with the MDS allows to MDS to become aware that there will be an interval of time during which the client system is not in use by the normal user, yet is still functioning and of any resources already available through the client system. Thus, during that interval of time, the client system will have CPU and hard disk cycles available for other applications. The system NIC remains active during an interval of non-use to receive network communications engaging the system in peer to peer distribution of software. That is, the system, during non-use by the normal user, can be employed by the MDS and the network to assist in and support distribution of software to other client systems on the network. The client system becomes a sub-net representative for software download to other systems. 
         [0021]    Desirably, a user indicating an interval of non-use will also indicate the length of time it is anticipated that the system will remain functionally operative and in the state of user non-use. Such an indication will enable the MDS to more accurately assign distribution work to available systems. 
         [0022]    During the interval of non-use, the NIC remains active so that the system may receive software to be distributed from the MDS and store received software on a storage device in the client system. The storage device typically will be the system hard drive. The software may be stored in a partition hidden from, and inaccessible to, the normal user. From that storage location, the software may be delivered on the command of the MDS to other client systems on the network. This reception and storing may be of software to be distributed substantially immediately or software which will be retained for later accessibility or both. 
         [0023]    On entering the non-use state and signaling to the MDS, the client system will send a packet indicating applications it is capable of distributing, the time interval available for assignment, and the position of the system on the network. The MDS will make entries into a table recording this data. Then, should another system on the network request a download, the MDS will check the table to see if a client system in the state of non-use is capable of making a distribution; make a comparison among available systems if there are a plurality; and assign a pathway for downloading. While downloading is progressing, the MDS will update the table to indicate that the serving client system is busy and send a packet to that system instructing it in providing the download. After the distribution completes, the table is cleared. After the client system user returns and cancels the away indication, the system data is removed from the table. 
         [0024]    In the event that no non-use client is available, then the distribution is made form the MDS. 
         [0025]    It is contemplated that the MDS may be able to retain a list of locations at which specific software elements are stored in client systems, to shorten the time necessary to make a distribution as here described. 
         [0026]    The sequence of operation of any of the various implementations described is illustrated by a flow chart in  FIG. 6 . There the steps of a method in accordance with this invention are shown. The method steps include selectively signaling from a computer system the initiation and termination of an interval of non-use of the system by a user; and, during the interval of non-use, receiving at the computer system a selectively sent network communication engaging the computer system in peer to peer software distribution. During the interval of non-use, the computer system receives from a master distribution server software to be distributed further to other client systems which request distribution from the master distribution server, stores the software in a data storage device, and responds to direction from the master distribution server to furnish software stored in said storage device to be distributed further to other client systems which request distribution from the master distribution server. 
         [0027]    In implementing this invention, it is apparent that computer executable program code is produced and stored on a computer readable medium from which the program code is deployed to and executed on a computer system. Such a medium is shown in  FIG. 7  as a diskette  70 . The choice of a diskette for illustration is simply that—an illustration—as such media come in a variety of forms including hard drives, flash memory and other devices. As will be clear from the discussion above, the program code comprises instructions which, when executing on the computer system selectively signals from the computer system the initiation and termination of an interval of non-use of the system by a user; and, during the interval of non-use, receives at the computer system a selectively sent network communication engaging the computer system in peer to peer software distribution as here described. 
         [0028]    In the drawings and specifications there has been set forth a preferred embodiment of the invention and, although specific terms are used, the description thus given uses terminology in a generic and descriptive sense only and not for purposes of limitation.