Abstract:
Computer systems having operating systems that provide plug and play functionality for peripheral devices such as printers, web cameras, keyboards, mice and the like are known. These allow peripheral devices to be connected to the computer system in an ad hoc manner. However, if communication between a peripheral and such a computer system is lost during a time period when that computer system is shut down, no indication of this loss is given by the plug and play operating system. A method is described here for issuing error messages if communication between a peripheral and a computer system is lost. A persistent store is used to keep a record of peripherals in communication with the computer and this record is compared with detected information about presence of peripherals. The error messages may optionally be transferred to a remote management system via a communications network.

Description:
BACKGROUND 
       [0001]    Computer systems having operating systems that provide plug and play functionality for peripheral devices such as printers, web cameras, keyboards, mice and the like are known. These allow peripheral devices to be connected to the computer system in an ad hoc manner. For example, as peripherals are connected to the computer system the operating system detects them, loads any relevant software drivers and announces to any software applications running on the computer system that the peripherals are ready to use. As the peripherals are disconnected, any relevant software drivers may be unloaded and client applications informed. These types of plug and play operating systems are advantageous for personal computers (PCs) and the like where several peripherals may be used at one time and it is often required to add, remove or replace those peripherals. However, there are other situations where such plug and play operating systems are disadvantageous and may actually cause problems. For example, it may be required to detect loss of communication between such computer systems and associated peripherals. 
       SUMMARY 
       [0002]    The following presents a simplified summary of the disclosure in order to provide a basic understanding to the reader. This summary is not an extensive overview of the disclosure and it does not identify key/critical elements of the invention or delineate the scope of the invention. Its sole purpose is to present some concepts disclosed herein in a simplified form as a prelude to the more detailed description that is presented later. 
         [0003]    Computer systems having operating systems that provide plug and play functionality for peripheral devices such as printers, web cameras, keyboards, mice and the like are known. These allow peripheral devices to be connected to the computer system in an ad hoc manner. However, if communication between a peripheral and such a computer system is lost during a time period when that computer system is shut down, no indication of this loss is given by the plug and play operating system. A method is described here for issuing error messages if communication between a peripheral and a computer system is lost. A persistent store is used to keep a record of peripherals in communication with the computer and this record is compared with detected information about presence of peripherals. The error messages may optionally be transferred to a remote management system via a communications network. 
         [0004]    Many of the attendant features will be more readily appreciated as the same becomes better understood by reference to the following detailed description considered in connection with the accompanying drawings. 
     
    
     
       DESCRIPTION OF THE DRAWINGS 
         [0005]    The present description will be better understood from the following detailed description read in light of the accompanying drawings, wherein: 
           [0006]      FIG. 1  is a flow diagram of a method at computer having an operating system with plug and play functionality; 
           [0007]      FIG. 2  is a schematic diagram of a plurality of computer systems having peripherals where the computer systems are connected to a communications network having a remote management system; 
           [0008]      FIG. 3  is a flow diagram of a method of detecting loss of communication with one or more peripherals; 
           [0009]      FIG. 3B  is a flow diagram of another method of detecting loss of communication with one or more peripherals; 
           [0010]      FIG. 4  is a flow diagram of a method of intentionally removing a peripheral from a computer system; 
           [0011]      FIG. 5  is a schematic diagram of an automated teller machine arranged to detect loss of communication with one or more peripherals. 
       
    
    
       [0012]    Like reference numerals are used to designate like parts in the accompanying drawings. 
       DETAILED DESCRIPTION 
       [0013]    The detailed description provided below in connection with the appended drawings is intended as a description of the present examples and is not intended to represent the only forms in which the present example may be constructed or utilized. The description sets forth the functions of the example and the sequence of steps for constructing and operating the example. However, the same or equivalent functions and sequences may be accomplished by different examples. 
         [0014]      FIG. 1  is a flow diagram of a method at computer having an operating system with plug and play functionality. Once the computer is powered on or reset (block  10 ) the operating system monitors for peripheral devices (block  11 ). If no peripheral devices are detected no action is taken (block  12 ) apart from continuing to monitor for peripherals at block  11 . If one or more peripherals are detected the operating system loads appropriate software drivers (block  13 ) and informs any client software applications running on the computer (block  14 ). The operating system continues to monitor for peripheral devices. If a peripheral device is detected as having come into communication with the computer, or as having lost communication with the computer, then software drivers are loaded or unloaded as appropriate (block  17 ) and client applications are informed. If no changes to peripheral devices are detected no action is taken (block  16 ) apart from continuing to monitor for peripheral devices. 
         [0015]    It is recognized here that such plug and play operating systems may be problematic in certain situations where it is required to detect loss or absence of communication with one or more peripherals. For example, this may be for error detection, security, maintenance, inventory management, equipment management or other reasons. The plug and play operating system method described with respect to  FIG. 1  is able to detect loss of communication with a peripheral during operation of the operating system. Also, software applications running at the computer system and which use the peripherals may also detect loss of communication with any of those peripherals during operation of the software. However, if communication with a peripheral is lost during a time in which the operating system is not active (for example, when the computer is switched off) then this loss goes undetected. Previously this problem has been ignored or non-plug and play operating systems have been used. 
         [0016]    During a time period when an operating system of a computer is inactive, communication with one or more peripherals of the computer may be lost for a variety of reasons. For example, power supply failure at the peripheral, peripheral firmware corruption, broken communication cable, loss of wireless communication link between the peripheral and the computer, unauthorized tampering at the peripheral, malfunction at the peripheral or other reasons. 
         [0017]    If the computer is provided at an unattended apparatus, inability to detect loss of communication with peripherals is a significant problem. For example, the computer may be arranged to control a self-service apparatus such as an automated teller machine (ATM), self-service kiosk or other unattended apparatus. In this situation, typically several peripheral devices are integral with or in communication with the computer. For example, these may be cash dispensers, receipt printers, pin pads, card readers, keyboards, bar code scanners, displays, etc. If communication between the computer and one or more of the peripherals is lost and this loss is undetected by the computer, then security may be breached and/or loss of functionality may carry on for a substantial length of time resulting in loss of profits, customer loyalty etc. A customer or operator needs to report the error manually and a maintenance engineer needs to be called to rectify the problem. This is time consuming and expensive. 
         [0018]    Previously this problem has been addressed by using non-plug and play operating systems at unattended apparatus. However, this means that maintenance of those unattended systems is relatively complex especially where many peripherals of different types are used and it is often required to replace, add or remove those peripherals. In the case of ATMs and other self-service apparatus this is particularly the case because many peripherals are used with different combinations and types of peripherals at different apparatus locations. 
         [0019]      FIG. 2  shows a computer  20  and a plurality of peripherals  21  connected to that computer either using physical connections or wireless or other links. The computer  20  is in communication with a remote management system  30  via a communications network  29  of any suitable type. One or more other computers  27  with associated peripherals  28  are also in communication with the remote management system  30 . In some embodiments the computers  20 ,  27  may be part of unattended apparatus such as ATMs. Each computer comprises at least, an operating system  22 , a plurality of device drivers  25 , one or more client applications  23  arranged to use the peripherals  21 , an interface  26  for communicating with the peripherals and other functionality as known for a conventional computer system. The computer also comprises software  31  for detecting loss of communication with peripherals and optionally also, software  32  for interaction with the remote management system. A persistent store  24  is also provided at the computer such as a hard disk, NVRAM or other suitable type of persistent memory. 
         [0020]    A method of detecting losses of communication between a computer and one or more peripherals is now described with reference to  FIGS. 2 and 3 . The computer  20  is powered on or reset at block  300 . At this stage the operating system  22  of the computer  20  becomes active and obtains information about presence of any peripherals  21  that are in communication with the computer  20 . This is illustrated at block  301  of  FIG. 3 . The computer  20  accesses the persistent store  24  and reconciles the detected peripheral presence information against that persistent store  24  (see block  302  of  FIG. 3 ). The persistent store may comprise details of peripherals which it is expected to be present. For example, this persistent store may have been pre-configured during installation of the computer. Alternatively, the persistent store is initially empty when the computer is powered on for the first time. In that case, entries are made in the persistent store as described below. 
         [0021]    If no discrepancy is found as a result of the reconciliation or comparison process (block  303 ) then the operating system continues to monitor for information about presence of any peripherals and the method repeats as indicated in  FIG. 3 . 
         [0022]    If a detected peripheral is not already listed in the persistent store, it is added to the persistent store (block  304 ). In this way, plug and play functionality is at least partially provided because, if a peripheral is added, that peripheral is detected and the persistent store updated. The operating system loads any software drivers as appropriate and informs client applications of the availability of the peripheral as described above with reference to  FIG. 1 . The operating system continues to monitor for peripherals and the method repeats as indicated in  FIG. 3 . 
         [0023]    If a peripheral is listed in the persistent store but is not detected (block  305 ) then an error message or other alert is issued. This enables errors to be detected where communication has been lost with a peripheral during a time period when the operating system is not functioning and/or during a time period when the operating system is active. The error message may optionally be sent to the remote management system  30  via the communications network  29  using the remote management system interface  32 . The remote management system (and/or the local computer  20 ) may be arranged to trigger automated maintenance applications to remotely investigate and attempt to repair the problem. Alternatively, an operator may be requested to attend the site and investigate the problem. 
         [0024]    Another embodiment is now described with reference to  FIG. 3B .  FIG. 3B  shows an example method which is the same as that of  FIG. 3  except that provision is made to use the general plug-and-play method of  FIG. 1  for some types of peripherals. A pre-specified list is formed and stored at the local computer  20  or at any other accessible location in the communications network  29 . This pre-specified list is of peripherals for which “one-way” plug and play is to be implemented. For example, these peripherals may be cash dispensers, pin pads, printers of an ATM where it is required to detect loss of communication in all situations. Once information about peripherals is obtained (block  301 ) a selection is made (block  306 ) to pick out those peripherals which are in a pre-specified list. The method proceeds (blocks  302 ,  303 ,  304 ,  305 ) for those selected peripherals following the method of  FIG. 3  which can be said to provide a “one-way” plug and play system. For any remaining peripherals the method proceeds from  FIG. 1  block  13  (see block  307  of  FIG. 3B ) and this provides general plug-and-play for those peripherals. The pre-specified list of peripherals for which one-way plug and play is required may be pre-configured by an operator and stored at a memory which is persistent and which may or may not be the same persistent store used in the one-way plug and play system. 
         [0025]    The method described with respect to  FIGS. 3 and 3B  may be implemented using software provided at the local computer  20  or provided at a node in the communications network  29 , at the remote management system  30  or at any other suitable location. In one example, software  31  is provided at the local computer  20  for this purpose. That software may be provided in the form of a software layer between the operating system  22  and the client application(s)  23 . In this case, the operating system  22  may be a conventional plug and play operating system of a PC. Alternatively that software  31  may be integral with the operating system  22 . 
         [0026]    The persistent store  24  may be provided at the local computer  20  or at any other location accessible to the software  31 . For example, that location may be at the remote management system  30  or at a node in the communications network  29 . 
         [0027]    In some situations it may be required to intentionally remove a peripheral device. In this case it is necessary to update the persistent store in order that error messages are not unintentionally generated following the method of  FIG. 3 . This is achieved by using a maintenance application to update the persistent store either locally or remotely using the remote management system or other remote entity. Any suitable maintenance application may be used which is able to read from, write to and delete from the persistent store. 
         [0028]      FIG. 4  is a flow diagram of a method of intentionally removing a peripheral from a computer system. The computer system is provided with a pre-configured persistent store as at block  400 . The persistent store comprises information about all peripherals which it is expected to be in communication with the computer system. If a peripheral device is removed for a valid reason block  401  then the persistent store is re-configured at block  402  using a maintenance application. 
         [0029]    In an example now described with reference to  FIG. 5 , the computer is a personal computer (PC)  501  integral with an ATM  500  comprising a plurality of peripherals  513  such as cash dispensers  509 , pin pads  511 , receipt printers  510 , display screens  512  and the like. Any suitable combination of peripherals may be used. The personal computer  501  comprises a processor  502 , operating system  503 , a persistent store such as a hard disk  504 , one or more device drivers  505  for driving the peripherals, peripheral error detecting software  506  as described above, remote management system interface software  507  and one or more client applications  508 . 
         [0030]    Peripherals may be added to the ATM at any time and these will be detected by the operating system  503  as described above with reference to  FIG. 5 . However, if communication with a peripheral is lost an error message is issued as described above with reference to  FIG. 3 , no matter whether that communication is lost during operation of the ATM or during shut down of the ATM. 
         [0031]    The term ‘computer’ is used herein to refer to any device with processing capability such that it can execute instructions. Those skilled in the art will realize that such processing capabilities are incorporated into many different devices and therefore the term ‘computer’ includes PCs, servers, mobile telephones, personal digital assistants and many other devices. 
         [0032]    The methods described herein may be performed by software in machine readable form on a storage medium. The software can be suitable for execution on a parallel processor or a serial processor such that the method steps may be carried out in any suitable order, or simultaneously. 
         [0033]    This acknowledges that software can be a valuable, separately tradable commodity. It is intended to encompass software, which runs on or controls “dumb” or standard hardware, to carry out the desired functions. It is also intended to encompass software which “describes” or defines the configuration of hardware, such as HDL (hardware description language) software, as is used for designing silicon chips, or for configuring universal programmable chips, to carry out desired functions. 
         [0034]    Those skilled in the art will realize that storage devices utilized to store program instructions can be distributed across a network. For example, a remote computer may store an example of the process described as software. A local or terminal computer may access the remote computer and download a part or all of the software to run the program. Alternatively, the local computer may download pieces of the software as needed, or execute some software instructions at the local terminal and some at the remote computer (or computer network). Those skilled in the art will also realize that by utilizing conventional techniques known to those skilled in the art that all, or a portion of the software instructions may be carried out by a dedicated circuit, such as a DSP, programmable logic array, or the like. 
         [0035]    Any range or device value given herein may be extended or altered without losing the effect sought, as will be apparent to the skilled person. 
         [0036]    It will be understood that the benefits and advantages described above may relate to one embodiment or may relate to several embodiments. It will further be understood that reference to ‘an’ item refer to one or more of those items. 
         [0037]    The steps of the methods described herein may be carried out in any suitable order, or simultaneously where appropriate. 
         [0038]    It will be understood that the above description of a preferred embodiment is given by way of example only and that various modifications may be made by those skilled in the art. The above specification, examples and data provide a complete description of the structure and use of exemplary embodiments of the invention. Although various embodiments of the invention have been described above with a certain degree of particularity, or with reference to one or more individual embodiments, those skilled in the art could make numerous alterations to the disclosed embodiments without departing from the spirit or scope of this invention.