Abstract:
A monitoring method that is executed by a monitoring device that monitors communication between an information processing device from among a plurality of information processing devices and a switching device that is coupled to a peripheral device that includes at least one of an input device and an output device, the monitoring method includes storing information on a recovery method for each process of the communication, in a memory; detecting the communication between the information processing device and the switching device; determining whether a failure has occurred in the detected communication by analyzing the detected communication for each of the processes; and executing restoration processing of recovering the detected communication, based on information on the recovery method corresponding to a failed process among the processes, which is stored in the memory when it is determined that the failure has occurred in the detected communication.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
       [0001]    This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2014-130669, filed on Jun. 25, 2014, the entire contents of which are incorporated herein by reference. 
       FIELD 
       [0002]    The embodiments discussed herein are related to a monitoring method, a monitoring device, and an information processing system. 
       BACKGROUND 
       [0003]    A KVM switch is a switch that is used to monitor and operate a plurality of servers using a set of a monitor, a keyboard, and a mouse. Here, the server is a computer that provides information processing service. Here, “KVM” represents “K” of a Keyboard, “V” of a Visual Unit, and “M” of a Mouse. 
         [0004]      FIG. 9  is a diagram illustrating a KVM switch. As illustrated in  FIG. 9 , to the KVM switch  2 , eight servers  1  that are referred to as servers # 1  to # 8 , a keyboard  3 , a mouse  4 , and a monitor  5  are coupled. The KVM switch  2  switches connection of one of the eight servers  1 , to the keyboard  3 , the mouse  4 , and the monitor  5 . 
         [0005]    The KVM switch  2  and each of the servers  1  are coupled to each other through a KVM switch cable. The KVM switch cables include signal cables of the keyboard  3 , the mouse  4 , and the monitor  5 . The KVM switch  2  and each of the keyboard  3  and the mouse  4  are coupled to each other through a Universal Serial Bus (USB). The monitor  5  and the KVM switch  2  are coupled to each other through a Video Graphics Array (VGA). 
         [0006]    There is a technology in a related art, in which, due to a signal switch that is obtained by combining a KVM switch and a peripheral device sharing switch, all computers that are coupled to the signal switch share all USB peripheral devices that are coupled to the signal switch. As the related art, for example, Japanese Unexamined Patent Publication (Translation of PCT application) No. 2005-509947 has been disclosed. 
         [0007]    In the development of a new KVM switch, the connection compatibility with an existing server model is verified. Firmware of the KVM switch is tuned when a problem occurs in the verification of the connection compatibility, so that the verification is posed during the tuning. Thus, when a connection problem occurs during the verification, the verification is stopped, thereby causing a problem that the verification time period is increased. 
         [0008]    In the USB, a protocol defining how the communication is to be performed is formulated by a standard. However, a manufacturer defines the unique specification in some points other than the protocol. Therefore, even when a keyboard and a mouse that are compliant with the USB standard are used, the verification of the connection compatibility is performed. In the verification of the connection compatibility, a certain verification operation is repeated in order to confirm that a problem does not occur under various circumstances. Therefore, once the verification work is stopped, it is desirable that the verification operation is repeated from the beginning, so that the verification time period is increased. 
       SUMMARY 
       [0009]    According to an aspect of the invention, a monitoring method that is executed by a monitoring device that monitors communication between a information processing device from among a plurality of information processing devices and a switching device that is coupled to a peripheral device that includes at least one of an input device and an output device, the monitoring method includes storing information on a recovery method for each process of the communication, in a memory; detecting the communication between the information processing device and the switching device; determining whether a failure has occurred in the detected communication by analyzing the detected communication for each of the processes; and executing restoration processing of recovering the detected communication, based on information on the recovery method corresponding to a failed process among the processes, which is stored in the memory when it is determined that the failure has occurred in the detected communication. 
         [0010]    The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims. 
         [0011]    It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed. 
     
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
         [0012]      FIG. 1  is a diagram illustrating a configuration of an information processing system according to an embodiment; 
           [0013]      FIG. 2A  is a diagram illustrating an example of a command buffer; 
           [0014]      FIG. 2B  is a diagram illustrating an example of a history table; 
           [0015]      FIG. 2C  is a diagram illustrating an example of an analysis table; 
           [0016]      FIG. 3  is a flowchart illustrating a flow of verification processing of connection compatibility between a server and a KVM switch; 
           [0017]      FIG. 4  is a flowchart illustrating a flow of processing of a monitoring device; 
           [0018]      FIG. 5A  is a flowchart illustrating a flow of phase determination processing; 
           [0019]      FIGS. 5B and 5C  are flowcharts illustrating a flow of counter-measure processing; 
           [0020]      FIG. 6A  is a flowchart illustrating a flow of problem detection processing in a power-saving phase; 
           [0021]      FIG. 6B  is a flowchart illustrating a flow of restoration processing in the power-saving phase; 
           [0022]      FIG. 7A  is a flowchart illustrating a flow of problem detection processing in a device recognition phase; 
           [0023]      FIG. 7B  is a flowchart illustrating a flow of restoration processing in the device recognition phase; 
           [0024]      FIG. 8  is a diagram illustrating a configuration of a monitoring device that achieves by a software functions that a recording unit and an analysis unit have; and 
           [0025]      FIG. 9  is a diagram illustrating a KVM switch. 
       
    
    
     DESCRIPTION OF EMBODIMENTS 
       [0026]    Embodiments of a monitoring device, an information processing system, and a monitoring method that are related to a technology discussed herein are described below with reference to drawings. The technology discussed herein is not limited to the embodiments. 
       Embodiments 
       [0027]    First, a configuration of an information processing system according to an embodiment is illustrated.  FIG. 1  is a diagram illustrating the configuration of the information processing system according to the embodiment. As illustrated in  FIG. 1 , an information processing system  10  includes eight servers  1  that are respectively referred to as servers # 1  to # 8 , a KVM switch  2 , a keyboard  3 , a mouse  4 , a monitor  5 , and a monitoring device  6 . Here, for convenience of description, the eight servers  1  are illustrated, but the information processing system  10  may include, for example, any number of servers  1  such as four, 16, or 32 servers. 
         [0028]    The server  1  is a computer that provides information processing service. The server  1  is restarted by a number of times, at the time of verification of the connection compatibility with the KVM switch  2 , using a re-start script  11 . 
         [0029]    The KVM switch  2  is a switch that performs switching of a server  1  from among the eight servers  1  with the keyboard  3 , the mouse  4 , and the monitor  5 . By using the KVM switch  2 , in the information processing system  10  a set of the keyboard  3 , the mouse  4 , and the monitor  5  may be shared between the eight servers  1 . 
         [0030]    The KVM switch  2  includes eight port controllers  21  that are referred to as port controllers # 1  to # 8  that respectively correspond to the servers # 1  to # 8 , and a main controller  22 . The port controller  21  is coupled to the corresponding server  1  through a KVM switch cable. 
         [0031]    The main controller  22  switches connection of one of the port controllers  21  with the keyboard  3 , the mouse  4 , and the monitor  5 . Due to the switching through the main controller  22 , the keyboard  3 , the mouse  4 , and the monitor  5  are coupled to any one of the servers  1 . Here, for convenience of description, the case is descried in which switching between the eight servers  1  is performed through the KVM switch  2 . The KVM switch  2  may perform switching between more or less than the eight servers  1 . 
         [0032]    The keyboard  3  is an input device that is used for input of characters and the like to the server  1  that is coupled to the keyboard  3  through the KVM switch  2 . The mouse  4  is an instruction device that is used for selection of an item that is displayed on the monitor  5 , scroll of a screen, and the like. The monitor  5  is a display device that displays the screen that is output from the server  1  that is coupled to the monitor  5  through the KVM switch  2 . 
         [0033]    The monitoring device  6  monitors communication between the server  1  and the KVM switch  2 , that is, communication through the KVM switch cable, using a monitoring cable A, at the time of verification of the connection compatibility between the server  1  and the KVM switch  2 . In addition, the monitoring device  6  determines whether or not the communication is being performed normally. The monitoring cable A is coupled to the KVM switch cable so as to be branched into the KVM switch cable to form a T-shape. 
         [0034]    In addition, when the monitoring device  6  determines that the communication is not being performed normally, the monitoring device  6  issues an instruction for the recovery, to the server  1  or the port controller  21 , using the monitoring cable A. Alternatively, when the monitoring device  6  determines that the communication is not being performed normally, the monitoring device  6  issues an instruction for the recovery, to the main controller  22 , using a monitoring cable B. 
         [0035]    The monitoring device  6  includes a recording unit  61 , a detection unit  65 , an analysis unit  66 , a first instruction unit  67 , and a second instruction unit  68 . The recording unit  61  performs a recording of a monitoring result, and stores pieces of information that are used for monitoring and recovery. The recording unit  61  includes a command buffer  62 , a history table  63 , and an analysis table  64 . 
         [0036]    The command buffer  62  stores a command that has been transmitted and received between the server  1  and the KVM switch  2 .  FIG. 2A  is a diagram illustrating an example of the command buffer  62 . As illustrated in  FIG. 2A , the command buffer  62  stores a port number, a packet ID, and a time after reception so as to associates the port number, the packet ID, with the time after reception, for each command. 
         [0037]    The port number is the number of a port through which transmission and reception of a command have been performed in the KVM switch  2 . The packet ID is an identifier that is used to identify the packet of the command the transmission and reception of which have been performed. The time after reception is an elapsed time after the monitoring device  6  has received a command. For example, in a command that has been received at the port controller # 1 , the identifier of the packet is “128”, and “200 millisecond (ms)” has elapsed after the reception. 
         [0038]    The history table  63  stores information on a failure that has occurred and the recovery for the failure in the communication between the server  1  and the KVM switch  2 .  FIG. 2B  is a diagram illustrating an example of the history table  63 . As illustrated in  FIG. 2B , the history table  63  stores an occurrence KVM port, an occurrence phase, an occurred problem, and a restoration processing result, for each occurred failure. 
         [0039]    The occurrence KVM port is a number of a port in which a communication failure has occurred in the KVM switch  2 . The occurrence phase is a phase in which the communication failure has occurred. As the phase, there are a connection confirmation phase, a device recognition phase, an ordinary usage phase, and a power-saving phase. 
         [0040]    In the connection confirmation phase, the server  1  confirms the state of the USB port, and confirms whether the USB port is a free port or a USB device is coupled to the USB port. When the connection is confirmed in the connection confirmation phase, the phase of the communication between the server  1  and the KVM switch  2  transitions to the device recognition phase. In the device recognition phase, the server  1  inquires about an included function, for the USB device the connection of which has been confirmed in the connection confirmation phase, and performs desired setting. 
         [0041]    In the ordinary usage phase, the server  1  performs a device-specific operation, based on the setting that has been performed in the device recognition phase. The server  1  recognizes the USB device that is coupled to the server  1 , as the KVM switch  2 . Therefore, the server  1  mainly exchanges a polling (state inquiry at certain intervals) command and the response command, with the KVM switch  2 . 
         [0042]    The power-saving phase is a phase that exists only in devices that are manipulated by a user such as the KVM switch  2 , the keyboard  3 , and the mouse  4  in the USB device. The server  1  instructs the KVM switch  2  to transition to the power-saving phase when a response that indicates “there is no change in the state of the device” is merely sent back for 3 ms, in the polling of the ordinary usage phase. 
         [0043]    The occurred problem is a problem that has occurred during the communication. The restoration processing result is a result of restoration processing that has been executed on the occurred problem. To the restoration processing result, “normal” is recorded when the recovery has been performed successfully, and “abnormal” is recorded when the recovery has not been performed successfully. 
         [0044]    For example, in  FIG. 2B , the first entry indicates that a command response timeout has occurred in the ordinary usage phase, and the recovery has been performed successfully as a result of execution of restoration processing, in the port controller # 1 . 
         [0045]    The analysis table  64  stores information that is used for communication analysis and restoration processing at the time of an occurrence of a failure. The analysis table  64  is created based on a failure that has occurred at the time of the previous verification, and restoration processing.  FIG. 2C  is a diagram illustrating an example of the analysis table  64 . As illustrated in  FIG. 2C , the analysis table  64  stores a target phase, a phase determination condition, a problem determination reference, and restoration processing. 
         [0046]    The target phase is a phase that is a target of analysis. The phase determination condition is a condition that is used to determine that the phase is the target phase. The problem determination reference is a reference that is used to determine whether or not a failure has occurred in the communication. The restoration processing is processing that is executed for the recovery when a failure has occurred in the communication. 
         [0047]    For example, in  FIG. 2C , the first entry indicates that a failure of a reception timeout occurs, and restoration processing is executed in a case in which a Config command is not issued from the server  1  even when one minute has elapsed after the transition to the connection confirmation phase that is the phase that follows application of power to the port. In the restoration processing, a USB signal of the port controller  21  is pulled down for 100 ms to cause a non-initialization state. The Config command is a command that is transmitted from the server  1  to the USB device. The Config command is used for inquiry about information on the USB device, setting of the USB device, and the like. 
         [0048]    The second entry indicates that a failure of a timeout occurs, and the restoration processing is executed in a case in which an Int command is not issued from the server  1  even when three minutes have elapsed in the device recognition phase that is the phase that follows issuance of the initialization command from the server  1 . In the restoration processing, a USB signal of the port controller  21  is pulled down for 100 ms to cause a non-initialization state. 
         [0049]    The third entry indicates that a failure of an ACK/NACK issuance timeout of the KVM switch  2  occurs, and restoration processing is executed when 500 ms have elapsed after the polling of the server  1  in the ordinary usage phase that is the phase that follows the polling command issuance from the server  1 . In the restoration processing, issuance of a NACK is performed on the server  1 , instead of the KVM switch  2 . Here, the NACK indicates that the response is not sent back due to “Busy”. 
         [0050]    The fourth entry indicates that a failure occurs, and the restoration processing is executed in the power-saving phase that is the phase that follows issuance of a Config command “power-saving phase transition” from the server  1  to the KVM switch  2 . In a case in which a response from the KVM switch  2  is “power-saving phase termination”, when a failure occurs in which a response of the server  1  is re-issuance of “power-saving phase transition”, the restoration processing is executed that causes the main controller  22  of the KVM switch  2  to suppress a response of “power-saving mode termination” for 500 ms. 
         [0051]    Returning to  FIG. 1 , the detection unit  65  receives communication between the server  1  and the KVM switch  2 , and sends the received content to the analysis unit  66 . The analysis unit  66  analyzes the received content, and determines whether or not a failure has occurred in the communication, based on the problem determination reference of the analysis table  64 . In addition, when the analysis unit  66  determines that a failure has occurred in the communication, the analysis unit  66  instructs the first instruction unit  67  or the second instruction unit  68  to execute the restoration processing that is stored in the analysis table  64 , for the failure. 
         [0052]    The analysis unit  66  determines whether or not the recovery has been performed successfully. The analysis unit  66  controls the monitoring device  6  to continue the monitoring when the recovery has been performed successfully, and controls the monitoring device  6  to stop the operation when the recovery has not been performed successfully. The analysis unit  66  instructs the recording unit  61  to perform a recording of the occurred failure, the restoration processing result, and the like, to the history table  63 . 
         [0053]    The first instruction unit  67  sends the response to the server  1  instead of the KVM switch  2 , through the monitoring cable A, based on the instruction of the analysis unit  66 . Alternatively, the first instruction unit  67  issues an instruction to the port controller  21 , through the monitoring cable A, based on the instruction of the analysis unit  66 . The second instruction unit  68  issues an instruction to the main controller  22 , through the monitoring cable B, based on the instruction of the analysis unit  66 . 
         [0054]    A flow of verification processing of the connection compatibility between the server  1  and the KVM switch  2  is described below.  FIG. 3  is a flowchart illustrating the flow of the verification processing of the connection compatibility between the server  1  and the KVM switch  2 . As illustrated in  FIG. 3 , the server  1  repeats re-start by the certain number of times and executes processing between S 1  to S 9  each time the re-start is performed. 
         [0055]    In the processing that is executed each time the re-start is performed, first, in the connection confirmation phase, the server  1  determines whether or not a USB device is coupled to the USB port of the server  1  (S 2 ). When the server  1  determines that a USB device is not coupled to the USB port of the server  1  (S 2 : No), the server  1  determines that a problem has occurred in the communication control (S 10 ), and the processing ends. 
         [0056]    On the other hand, when the server  1  determines that a USB device is coupled to the USB port of the server  1  (S 2 : Yes), the phase proceeds the device recognition phase, and the server  1  determines whether or not the coupled USB device is recognized as the KVM switch  2 , in the device recognition phase (S 3 ). When the server  1  determines that the coupled USB device is not recognized as the KVM switch  2  (S 3 : No), the server  1  determines that a problem has occurred in the communication control (S 10 ), and the processing ends. 
         [0057]    On the other hand, when the server  1  determines that the coupled USB device is recognized as the KVM switch  2  (S 3 : Yes), the server  1  initializes the communication between the server  1  and the KVM switch  2 , and starts the command communication (S 4 ). In addition, in the ordinary usage phase, the server  1  performs transmission of a command and reception of the response with the KVM switch  2 , at certain intervals (S 5 ). 
         [0058]    In addition, as a condition under which the phase transitions to the power-saving phase, the server  1  determines whether or not the state of the KVM switch  2  is not changed for 3 ms (S 6 ). When the server  1  determines that the state of the KVM switch  2  has been changed within 3 ms (S 6 : No), in the server  1 , the flow returns to S 5 . 
         [0059]    On the other hand, when the server  1  determines that the state of the KVM switch  2  has not been changed for 3 ms (S 6 : Yes), the server  1  instructs the KVM switch  2  to become in the power saving state (S 7 ). In addition, as a condition under which the re-start is performed, the server  1  determines whether or not three minutes have elapsed after the first-time ordinary usage phase transition (S 8 ). When the server  1  determines that three minutes have elapsed (S 8 : Yes), the server  1  is restarted. On the other hand, the server  1  determines that three minutes do not elapse (S 8 : No), the flow returns to S 7 . 
         [0060]    As described above, the server  1  performs communication with the KVM switch  2  while repeating the re-start. During the time, the monitoring device  6  monitors the communication between the server  1  and the KVM switch  2 .  FIG. 4  is a flowchart illustrating a flow of processing of the monitoring device  6 . 
         [0061]    As illustrated in  FIG. 4 , the detection unit  65  of the monitoring device  6  receives the communication between the server  1  and the KVM switch  2  (S 11 ), and transmits the communication to the analysis unit  66 . The analysis unit  66  determines whether or not the communication that has been received at the detection unit  65  is normal (S 12 ). When the analysis unit  66  determines that the communication is normal (S 12 : Yes), in the monitoring device  6 , the flow returns to S 11 . 
         [0062]    On the other hand, when the analysis unit  66  determines that the communication is not normal (S 12 : No), the first instruction unit  67  or the second instruction unit  68  tries the recovery for a known problem for which an adjustment method has been established (S 13 ). After that, the analysis unit  66  determines whether or not the recovery has been performed successfully (S 14 ). When the analysis unit  66  determines that the recovery has been performed successfully (S 14 : Yes), the recording unit  61  records that the operation has been restored to the normal operation (S 15 ), and in the monitoring device  6 , the flow returns to S 11 . On the other hand, when the analysis unit  66  determines that the recovery has not been performed successfully (S 14 : No), the recording unit  61  records that the operation has not been restored to the normal operation (S 16 ), and the monitoring device  6  terminates the operation (S 17 ). 
         [0063]    As described above, when a failure has occurred in the communication between the server  1  and the KVM switch  2 , the monitoring device  6  tries the recovery for a known problem for which an adjustment method has been established. Therefore, when the recovery has been performed successfully, the server  1  is allowed to continue the verification processing of the connection compatibility. 
         [0064]    The detail of a flow of the processing of the monitoring device  6  is described below.  FIG. 5A  is a flowchart illustrating a flow of phase determination processing.  FIG. 5B  and  FIG. 5C  are flowcharts illustrating a flow of counter-measure processing. Here, a case is described below in which the monitoring device  6  monitors communication between the port # 1  and the server # 1  that corresponds to the port controller # 1 . 
         [0065]    As illustrated in  FIG. 5A , the monitoring device  6  starts to monitor the port # 1  (S 21 ). In addition, the detection unit  65  of the monitoring device  6  obtains a signal of the port # 1  (S 22 ). In addition, the detection unit  65  determines whether or not a Config command has been received (S 23 ). When the detection unit  65  determines that a Config command has been received (S 23 : Yes), the detection unit  65  determines whether or not the content of the Config command is “Set Feature (Remote Wake Up)” (S 24 ). Here, “Set Feature (Remote Wake Up)” instructs the USB device to transition to the power-saving phase. 
         [0066]    In addition, when the detection unit  65  determines that the content of the Config command is “Set Feature (Remote Wake Up)” (S 24 : Yes), the analysis unit  66  determines that the state of the KVM switch  2  as “power-saving phase” (S 25 ). On the other hand, when the detection unit  65  determines that the content of the Config command is not “Set Feature (Remote Wake Up)” (S 24 : No), the analysis unit  66  determines that the state of the KVM switch  2  as “device recognition phase” (S 26 ). 
         [0067]    On the other hand, when the detection unit  65  determines that a Config command is not received in S 23  (S 23 : No), the detection unit  65  determines whether or not an Int command has been received (S 27 ). When the detection unit  65  determines that an Int command has been received (S 27 : Yes), the analysis unit  66  determines that the state of the KVM switch  2  as “ordinary usage phase” (S 28 ). 
         [0068]    On the other hand, when the detection unit  65  determines that an Int command is not received (S 27 : No), the detection unit  65  determines whether or not the USB power has been applied (S 29 ). When the analysis unit  66  determines that the USB power has been applied (S 29 : Yes), the analysis unit  66  determines the state of the KVM switch  2  as “connection confirmation phase” (S 30 ). On the other hand, when the detection unit  65  determines that the USB power is not applied (S 29 : No), the analysis unit  66  determines the state of the KVM switch  2  as “non-connection”, as illustrated in  FIG. 5B  (S 44 ). In addition, the recording unit  61  records to the history table  63  that there is no connection in the port # 1  (S 45 ), and in the monitoring device  6 , the processing ends. 
         [0069]    When the analysis unit  66  determines the state of the KVM switch  2  as “connection confirmation phase” in S 30  of  FIG. 5A , the analysis unit  66  monitors a problem of “connection confirmation phase”, as illustrated in  FIG. 5B  (S 31 ). After that, the analysis unit  66  determines whether or not a problem that is specific to the connection confirmation phase has occurred (S 32 ). When the analysis unit  66  determines that the problem has not occurred, in the monitoring device  6 , the flow returns to S 21 . On the other hand, when the analysis unit  66  determines that the problem has not occurred, the monitoring device  6  tries the restoration processing of “connection confirmation phase”, which is stored in the analysis table  64  (S 33 ). In addition, the analysis unit  66  determines whether or not the recovery has been performed successfully (S 34 ). 
         [0070]    When the analysis unit  66  determines that the recovery has been performed successfully (S 34 : Yes), in the monitoring device  6 , the flow proceeds S 51 . On the other hand, when the analysis unit  66  determines that the recovery has not been performed successfully (S 34 : No), as illustrated in  FIG. 5C , the monitoring device  6  retries the restoration processing of “connection confirmation phase”, which is stored in the analysis table  64  (S 46 ). In addition, the analysis unit  66  determines whether or not the recovery has been performed successfully (S 47 ). When the analysis unit  66  determines the recovery has been performed successfully (S 47 : Yes), in the monitoring device  6 , the flow proceeds S 51 . On the other hand, when the analysis unit  66  determines that the recovery has not been performed successfully (S 47 : No), the analysis unit  66  determines that there is a possibility that a failure has occurred (S 48 ). In addition, the recording unit  61  records a history of the processing to the history table  63  (S 49 ). In addition, in the monitoring device  6 , the processing ends. 
         [0071]    When the state is determined as “device recognition phase”, the analysis unit  66  monitors a problem of “device recognition phase” (S 35 ), and determines whether or not a problem that is specific to the device recognition phase has not occurred (S 36 ). When the analysis unit  66  determines that the problem has not occurred (S 36 : Yes), in the monitoring device  6 , the flow returns to S 21 . On the other hand, when the analysis unit  66  determines that the problem has occurred (S 36 : No), the monitoring device  6  tries the restoration processing of “device recognition phase”, which is stored in the analysis table  64  (S 37 ). In addition, the analysis unit  66  determines whether or not the recovery has been performed successfully (S 50 ). 
         [0072]    When the analysis unit  66  determines that the recovery has been performed successfully (S 50 : Yes), the analysis unit  66  determines the problem as a known problem (S 51 ). After that, the recording unit  61  records a history of the processing to the history table  63  (S 52 ). In addition, in the monitoring device  6 , the flow returns to S 21 . On the other hand, when the analysis unit  66  determines that the recovery has not been performed successfully (S 50 : No), the analysis unit  66  determines the problem as an unknown problem (S 53 ). In addition, the recording unit  61  records a history of the processing to the history table  63  (S 54 ). In addition, in the monitoring device  6 , the processing ends. 
         [0073]    When the analysis unit  66  determines the state as “ordinary usage phase”, the analysis unit  66  monitors a problem of “ordinary usage phase” (S 38 ). After that, the analysis unit  66  determines whether or not a problem that is specific to the ordinary usage phase has not occurred (S 39 ). When the analysis unit  66  determines that the problem has not occurred (S 39 : Yes), in the monitoring device  6 , the flow returns to S 21 . On the other hand, when the analysis unit  66  determines that the problem has occurred (S 39 : No), the monitoring device  6  tries the restoration processing of “ordinary usage phase”, which is stored in the analysis table  64  (S 40 ). In addition, in the monitoring device  6 , the flow proceeds to S 50 . 
         [0074]    When the analysis unit  66  determines the state as “power-saving phase”, the analysis unit  66  monitors a problem of “power-saving phase” (S 41 ). In addition, the analysis unit  66  determines whether or not a problem that is specific to the power-saving phase has not occurred (S 42 ). When the analysis unit  66  determines that the problem has not occurred (S 42 : Yes), in the monitoring device  6 , the flow returns to S 21 . On the other hand, when the analysis unit  66  determines that the problem has occurred (S 42 : No), the monitoring device  6  tries the restoration processing of “power-saving phase”, which is stored in the analysis table  64  (S 43 ). In addition, in the monitoring device  6 , the flow proceeds to S 50 . 
         [0075]    As described above, the monitoring device  6  identifies a phase of the communication between the server  1  and the KVM switch  2 . In addition, when a problem has occurred, the monitoring device  6  executes the restoration processing, based on the identified phase and the analysis table  64 . Therefore, the monitoring device  6  executes the restoration processing, for a known problem. 
         [0076]    A flow of problem detection processing of the power-saving phase is described below.  FIG. 6A  is a flowchart illustrating the flow of the problem detection processing of the power-saving phase. The processing of  FIG. 6A  corresponds to the processing of S 42  illustrated in  FIG. 5B . 
         [0077]    As illustrated in  FIG. 6A , the analysis unit  66  determines whether or not a Resume request from the KVM switch  2  to the server  1  has been detected (S 61 ). Here, the Resume request is a request of power-saving phase termination from the KVM switch  2  to the server  1 . In addition, the analysis unit  66  determines that a Resume request is not detected (S 61 : No), the analysis unit  66  repeats the detection of a Resume request. 
         [0078]    On the other hand, when the analysis unit  66  determines that a Resume request has been detected (S 61 : Yes), the analysis unit  66  determines whether or not a Config command from the server  1  to the KVM switch  2  is “Set Feature (Resume)” (S 62 ). Here, “Set Feature (Resume)” is a Resume instruction from the server  1  to the KVM switch  2 , that is, a power-saving phase termination permission. In addition, when the analysis unit  66  determines that the Config command is “Set Feature (Resume)” (S 62 : Yes), the analysis unit  66  determines that a problem has not occur (S 63 ), and the processing ends. 
         [0079]    In the KVM switch  2 , it is expected that a termination permission of the power-saving phase is received from the server  1 , but the server  1  may not issue a Resume instruction immediately. At that time, depending on the operation of the KVM switch  2 , a power-saving phase termination may be requested to the server  1  again immediately (within 10 ms in  FIG. 6A ). In such a case, between the KVM switch  2  and the server  1 , a Resume request from the KVM switch  2  (return request to the ordinary usage phase) and a Remote Wake Up request from the server  1  (maintaining request of the power-saving mode) are repeated. As a result, the KVM switch  2  is not allowed to communicate with the server  1 . 
         [0080]    Here, when the analysis unit  66  determines that the Config command is not “Set Feature (Resume)” (S 62 : No), the analysis unit  66  determines whether or not the Config command from the server  1  to the KVM switch  2  is “Set Feature (Remote Wake Up)” (S 64 ). When the analysis unit  66  determines that the Config command is not “Set Feature (Remote Wake Up)” (S 64 : No), in the analysis unit  66 , the flow returns to S 61 . 
         [0081]    On the other hand, the analysis unit  66  determines that the Config command is “Set Feature (Remote Wake Up)” (S 64 : Yes), the analysis unit  66  determines whether or not a Resume request from the KVM switch  2  to the server  1  has been detected again within 10 ms (S 65 ). When the analysis unit  66  determines that the Resume request has been detected again within 10 ms (S 65 : Yes), the analysis unit  66  determines that a problem has occurred (S 66 ). On the other hand, when the analysis unit  66  determines that the Resume request is not detected again within 10 ms (S 65 : No), the analysis unit  66  determines that a problem has not occurred (S 63 ). 
         [0082]    As described above, the analysis unit  66  may detect a problem that occurs in the power-saving phase, based on the Resume request from the KVM switch  2  to the server  1  and the power-saving phase termination permission from the server  1  to the KVM switch  2 . 
         [0083]    A flow of restoration processing of the power-saving phase is described below.  FIG. 6B  is a flowchart of the flow of the restoration processing of the power-saving phase. The processing of  FIG. 6B  corresponds to the processing of S 43  illustrated in  FIG. 5B . 
         [0084]    As illustrated in  FIG. 6B , the analysis unit  66  notifies the second instruction unit  68  of the restoration processing in the analysis table  64  (S 71 ). After that, the second instruction unit  68  instructs the main controller  22  of the KVM switch  2  not to issue a Resume request for 500 ms (S 72 ). After that, the analysis unit  66  determines whether or not the Resume request from the KVM switch  2  to the server  1  has been detected (S 73 ). When the analysis unit  66  determines that the Resume request is not detected (S 73 : No), the analysis unit  66  repeats the detection. 
         [0085]    On the other hand, when the analysis unit  66  determines that the Resume request has been detected (S 73 : Yes), the analysis unit  66  determines whether or not a Config command from the server  1  to the KVM switch  2  is “Set Feature (Resume)” (S 74 ). When the analysis unit  66  determines that the Config command is “Set Feature (Resume)” (S 74 : Yes), the analysis unit  66  determines that the problem has been resolved (S 75 ). After that, the recording unit  61  records a port number, a problem occurrence phase, that is, “power-saving phase”, an occurred problem, and “normal”, to the history table  63  (S 76 ). 
         [0086]    On the other hand, when the analysis unit  66  determines that the Config command is not “Set Feature (Resume)” (S 74 : No), the analysis unit  66  determines that the problem is not resolved (S 77 ). In addition, the recording unit  61  records a port number, a problem occurrence phase, that is, “power-saving phase”, an occurred problem, and “abnormal”, to the history table  63  (S 78 ). In addition, the monitoring device  6  stops the operation (S 79 ). 
         [0087]    As described above, when the recovery has been performed successfully by executing the restoration processing that is stored in the analysis table  64  through the second instruction unit  68 , the server  1  is allowed to continue the verification processing of the connection compatibility. 
         [0088]    A flow of problem detection processing of the device recognition phase is described below.  FIG. 7A  is a flowchart illustrating the flow of the problem detection processing of the device recognition phase. The processing of  FIG. 7A  corresponds to the processing of S 36  illustrated in  FIG. 5B . 
         [0089]    As illustrated in  FIG. 7A , the analysis unit  66  determines whether or not an Int command has been issued from the server  1  (S 81 ). When the analysis unit  66  determines the Int command has been issued (S 81 : Yes), the phase transitions to the ordinary usage phase, so that the analysis unit  66  determines that there is no problem (S 82 ). 
         [0090]    On the other hand, when the analysis unit  66  determines that the Int command is not issued (S 81 : No), the analysis unit  66  determines whether or not three minutes have elapsed after the transition to the device recognition phase (S 83 ). When the analysis unit  66  determines that three minutes do no elapse (S 83 : No), the flow returns to S 81 . 
         [0091]    On the other hand, the analysis unit  66  determines that three minutes have elapsed (S 83 : Yes), the phase does not transition to the ordinary usage phase even after three minutes have elapsed, so that the analysis unit  66  determines that a problem has occurred (S 84 ). 
         [0092]    As described above, the analysis unit  66  may detect that a problem has occurred in the device recognition phase by determining whether or not the Int command has been issued before three minutes elapse after the transition to the device recognition phase. 
         [0093]    A flow of restoration processing of the device recognition phase is described below.  FIG. 7B  is a flowchart illustrating the flow of the restoration processing of the device recognition phase. The processing of  FIG. 7B  corresponds to the processing of S 37  illustrated in  FIG. 5B . 
         [0094]    As illustrated in  FIG. 7B , the analysis unit  66  notifies the first instruction unit  67  of the restoration processing in the analysis table  64  (S 91 ). After that, the first instruction unit  67  instructs the restoration processing (S 92 ). For example, the first instruction unit  67  instructs a signal (D+,D−) between the server  1  and the KVM switch  2  to become “Low” for 100 ms, promotes re-initialization, and causes the device recognition phase to be executed again from the beginning. 
         [0095]    In addition, the analysis unit  66  determines whether or not a Config command has been issued from the server  1  (S 93 ). When the analysis unit  66  determines that the Config command has been issued (S 93 : Yes), the analysis unit  66  determines whether or not an Int command has been issued from the server  1  (S 94 ). When the analysis unit  66  determines that the Int command has been issued from the server  1  (S 94 : Yes), the analysis unit  66  determines that the problem has been resolved (S 95 ). After that, the recording unit  61  records a port number, a problem occurrence phase, that is, “device recognition phase”, an occurred problem, and “normal”, to the history table  63  (S 96 ). 
         [0096]    On the other hand, when the analysis unit  66  determines that the Int command is not issued (S 94 : No), the analysis unit  66  determines whether or not three minutes have elapsed after the transition to the device recognition phase (S 97 ). When the analysis unit  66  determines that three minutes do not elapse even after the transition to the device recognition phase (S 97 : No), the flow returns to S 94 . 
         [0097]    On the other hand, when the analysis unit  66  determines that three minutes have elapsed after the transition to the device recognition phase (S 97 : Yes), the phase does not transition to the ordinary usage phase even after three minutes have elapsed, so that in the analysis unit  66 , the flow proceeds to S 99 . When the analysis unit  66  determines that the Config command is not issued from the server  1  (S 93 : No), the analysis unit  66  determines whether or not one minute has elapsed after execution of the restoration processing (S 98 ). When the analysis unit  66  determines that one minute does not elapse (S 98 : No), the flow returns to S 93 . 
         [0098]    On the other hand, when the analysis unit  66  determines that one minute has elapsed (S 98 : Yes), the analysis unit  66  determines that the problem has not been resolved (S 99 ). After that, the recording unit  61  records a port number, a problem occurrence phase, that is, “device recognition phase”, an occurred problem, and “abnormal”, to the history table  63  (S 100 ), and the monitoring device  6  stops the operation (S 101 ). 
         [0099]    As described above, when the recovery has been performed successfully by executing the restoration processing that is stored in the analysis table  64  through the first instruction unit  67 , the server  1  is allowed to continue the verification processing of the connection compatibility. 
         [0100]    As described above, in the embodiments, the analysis table  64  stores the restoration processing of a known problem, for the communication between the server  1  and the KVM switch  2 . In addition, the detection unit  65  detects the communication between the server  1  and the KVM switch  2 , and the analysis unit  66  determines whether or not the communication is being performed normally. In addition, when a failure occurs in the communication, the first instruction unit  67  or the second instruction unit  68  executes the restoration processing, based on the analysis table  64 . Thus, when the restoration processing has been executed successfully, the server  1  is allowed to continue the verification of the connection compatibility, and a work time period of the verification may be reduced. 
         [0101]    In the embodiments, the analysis unit  66  executes the failure detection and the restoration processing for each of the phases of the communication. Thus, the monitoring device  6  may execute accurate failure detection and appropriate restoration processing. 
         [0102]    In the embodiments, the recording unit  61  and the analysis unit  66  are described above, but the functions that are included in the recording unit  61  and the analysis unit  66  may be also achieved by software. Here, a monitoring device is described below that achieves the functions that are included in the recording unit  61  and the analysis unit  66  by the software. 
         [0103]      FIG. 8  is a diagram illustrating a configuration of a monitoring device  7  that achieves the functions that are included in the recording unit  61  and the analysis unit  66  by software. As illustrated in  FIG. 8 , the monitoring device  7  includes a start-up Read Only Memory (ROM)  71 , a Central Processing Unit (CPU)  72 , a Random Access Memory (RAM)  73 , a Flash memory  74 , a detection unit  75 , a first instruction unit  76 , and a second instruction unit  77 . 
         [0104]    The start-up ROM  71  is a read-only memory that stores a monitoring program that achieves the functions that are included in the recording unit  61  and the analysis unit  66 . The CPU  72  is a central processing device that reads the monitoring program from the start-up ROM  71  and executes the monitoring program. The RAM  73  is a memory that stores a result in the middle of execution of the monitoring program and the like. The RAM  73  may be used as the command buffer  62  as well. 
         [0105]    The Flash memory  74  is a non-volatile memory that stores the analysis table  64  and the history table  63 . The detection unit  75 , the first instruction unit  76 , and the second instruction unit  77  respectively correspond to the detection unit  65 , the first instruction unit  67 , and the second instruction unit  68  illustrated in  FIG. 1 . The start-up ROM  71 , the CPU  72 , the RAM  73 , the Flash memory  74 , the detection unit  75 , the first instruction unit  76 , and the second instruction unit  77  are coupled to each other through a bus  78 . 
         [0106]    In the embodiments, the case is described above in which the keyboard  3 , the mouse  4 , and the monitor  5  are coupled to the KVM switch  2 . However, the embodiments are not limited to such a case, and may be applied to a case in which a further peripheral device such as a recording device is coupled to a switch that is similar to the KVM switch  2 . 
         [0107]    In the embodiments, the case is described above in which the server  1  is switched by the KVM switch  2 . However, the embodiment is not limited to the case, and similarly, may be applied to a case in a further computer is switched by the KVM switch  2 . 
         [0108]    All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.