US20070038731A1 - Information processing apparatus, selector, remote operation system, scan code transmission method, and program product therefor - Google Patents
Information processing apparatus, selector, remote operation system, scan code transmission method, and program product therefor Download PDFInfo
- Publication number
- US20070038731A1 US20070038731A1 US11/503,166 US50316606A US2007038731A1 US 20070038731 A1 US20070038731 A1 US 20070038731A1 US 50316606 A US50316606 A US 50316606A US 2007038731 A1 US2007038731 A1 US 2007038731A1
- Authority
- US
- United States
- Prior art keywords
- data
- server
- scan code
- code
- selector
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/038—Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
Definitions
- This invention generally relates to a technique of operating multiple servers in connection with a network from a Keyboard/Video Mouse (KVM) with the use of a personal computer for control (hereinafter, referred to as control PC).
- KVM Keyboard/Video Mouse
- control PC personal computer for control
- a KVM apparatus 200 shown in FIG. 1 is employed.
- data generated by operating a keyboard 110 and a pointing device 111 is converted into packets on a control PC 100 and transmitted on the network of TCP/IP or the like, to a KVM apparatus 200 .
- the KVM apparatus 200 Upon receiving the packet data, the KVM apparatus 200 acquires data of the keyboard and that of the pointing device from the packet data and delivers to servers ( 1 , 2 , 3 , . . . and N).
- the remote operation is executed by the above-described processing.
- the control PC 100 is a general-purpose PC, and data input from the keyboard 110 is processed in a flowchart shown in FIG. 2 . Subsequent to the key input on the keyboard 110 , the key data is transmitted to the control PC 100 .
- the key data transmitted is called scan code, and has a different data value according to each key.
- the scan code input from the keyboard 110 is received by an interface processor 107 of the control PC is converted into a key code on a keyboard driver 104 , and is output to an Operating System (OS) 102 for code analysis, as shown in FIG. 2 .
- the key code is a predetermined standard code of OS, that is to say, code data that can be recognized and processed by OS.
- the scan code varies depending on the keyboard. An example is “@”, which is different between US101 keyboard and OADG109 keyboard. Therefore, a conversion process is carried out to correct the difference, and is passed onto the OS 102 as a key code.
- the key code received on the OS 102 is transmitted to a data detection module 101 , which is enacted by application software.
- the key code received on the data detection module 101 is output to a data converter 105 , and is converted into packets thereon. Then the packets are output to a communication processor 108 , and are transmitted onto the network from the communication processor 108 .
- Document 1 Japanese Patent Application Publication No. 6-289971 discloses a system in which a key input generated by the keyboard operation of a server apparatus is converted into a key code to transmit to a client apparatus.
- the client apparatus stores display key information tables for multiple server apparatuses, in which the key code used on the client apparatus is associated with the key code used on the server apparatus.
- the above-described system is also equipped with a display key library, which refers to the corresponding display key information table, and converts the key code input from the server apparatus into the key code used on the client apparatus.
- Document 2 Japanese Patent Application Publication No. 2000-250696 (hereinafter, referred to as Document 2) relates to a remote control in which one control information terminal remotely controls another information terminal to be controlled among the information terminals connected over the network.
- the control information terminal and the information terminal to be controlled have different physical types or different logical layouts in keyboards, the actual scan code generated by the control information terminal is converted into a vertical scan code, and then the vertical scan code is converted into the actual scan code of the keyboard of the information terminal to be controlled.
- the remote server In a case where the remote server is operated with the application that runs on the control PC 100 , the keyboard data is always transmitted through the OS of the control PC 100 . For this reason, the server, in some cases, has a system that can operate only the data converted into the key code. In such system, if there is an application that executes different functions by recognizing the difference of the inputs between Left-Shift key and Right-Shift key on the server, there will be a problem that the function cannot be executed due to the inability to recognize the difference between the key inputs on the server.
- a special key input such as Ctrl-Alt-Delete is recognized by the OS 102 of the control PC 100 , so there is no transmission to the server from the control PC 100 . Therefore, in order to transmit such special key to the remote server from the control PC 100 in the system equipped with the KVM apparatus 200 , the application is designed to include GUI of special key buttons so that the GUI buttons are clicked by a mouse to produce special key data (an example is DSR series (product name) of Avocent).
- DSR series product name
- the present invention has been made in view of the above circumstances and provides an information processing apparatus, server selector, remote operation system, scan code transmission method, and program product therefor, in which a key input on a keyboard can be effectively recognized by a server.
- an information processing apparatus including: a code converting portion that converts a scan code output from a keyboard into a corresponding key code; a data converting portion that converts the key code into packets; and a changing portion that changes an output destination of the scan code from the code converting portion to the data converting portion, when an application software to operate a server apparatus remotely located is activated in the information processing apparatus, which is in connection with the server apparatus over a network.
- the scan code generated from the keyboard can be transmitted to the server apparatus without change. Accordingly, there is no unnecessary data conversion, and the key input can be recognized by the server. There is no necessity of software install for data conversion, thereby eliminating the resource consumption in the server apparatus and the information processing apparatus.
- a server selector including: a storage portion that stores information on a connection specification between one or more server apparatuses and the server selector; a data converter that converts a scan code generated from a keyboard into data corresponding to the connection specification; and a transmitting portion that transmits the data corresponding to the connection specification, to the one or more server apparatuses, wherein the server selector can operate the one or more server apparatuses with a set of console.
- the server selector is provided with a function of converting into the data according to the connection specification to operate one or more server apparatuses. Accordingly, there is no need for installing the software for data conversion on the server apparatus, thereby eliminating the resource consumption of the server apparatus.
- the scan code generated from the keyboard is converted into the data corresponding to the connection specification and transmitted to the server apparatus. This does not cause the problem that the scan code cannot be recognized on the server apparatus.
- a remote operation system including: multiple server apparatuses remotely located; a server selector in connection with the multiple servers over a network to be able to operate the multiple server apparatuses with a set of console; and an information processing apparatus in connection with the server selector and having the set of console to operate the multiple server apparatuses, the information processing apparatus including: a storage portion that stores information on a connection specification between each of the multiple server apparatuses and the server selector; a data converting portion that converts a scan code generated from a keyboard into data corresponding to the connection specification of one of the multiple server apparatuses, which is a transmission destination of the scan code; and a transmitting portion that transmits the data corresponding to the connection specification to the server selector.
- a scan code transmission method including: converting a scan code input on a keyboard into packets without changing to a corresponding key code, when an application software to operate a server apparatus is activated; and transmitting the scan code converted into the packets to a server apparatus remotely located and connected over a network.
- a scan code transmitting method including: converting a scan code input with a set of console into data corresponding to a connection specification with a server apparatus selected from multiple server apparatuses; transmitting the data corresponding to the connection specification to the server apparatus.
- a computer readable medium storing a program causing a computer to execute a process for a scan code transmission, the process including: converting a scan code input on a keyboard into packets without changing to a corresponding key code, when an application software to operate a server apparatus is activated; and transmitting the scan code converted into the packets to a server apparatus remotely located and connected over a network.
- a computer readable medium storing a program causing a computer to execute a process for a scan code transmission, the process including: converting a scan code input with a set of console into data corresponding to a connection specification with a server apparatus selected from multiple server apparatuses; transmitting the data corresponding to the connection specification to the server apparatus.
- FIG. 1 shows a system configuration
- FIG. 2 shows a data flowchart in a control PC
- FIG. 3 shows a configuration of the control PC in accordance with a first exemplary embodiment of the present invention
- FIG. 4 shows a configuration of a KVM apparatus in accordance with the first exemplary embodiment of the present invention
- FIG. 5 shows a flowchart to register instruction data in a memory
- FIG. 6 shows a flowchart of procedure to transmit a scan code to the KVM apparatus according to the instruction data
- FIG. 7 shows a flowchart of operation at the KVM apparatus
- FIG. 8 shows a data flowchart
- FIG. 9 shows a screen provided by an application
- FIG. 10 shows a configuration of the control PC in accordance with a second exemplary embodiment of the present invention.
- FIG. 11 shows a configuration of the KVM apparatus in accordance with a third exemplary embodiment of the present invention.
- FIG. 12 shows a packet format
- FIG. 13 shows a flowchart of operation at the time of powering on a server N in connection with the KVM apparatus through PS/2;
- FIG. 14 shows a flowchart of operation at the time of powering on a server N in connection with the KVM apparatus through USB;
- FIG. 15 shows a flowchart of determination process of the KVM apparatus that receives the packet data
- FIG. 16 shows a configuration of the control PC in accordance with a fourth exemplary embodiment of the present invention.
- FIG. 17 shows a configuration of the KVM apparatus in accordance with the fourth exemplary embodiment of the present invention.
- control PC 100 information processing apparatus
- KVM apparatus 200 server selector
- N is an arbitrary natural number
- the control PC 100 includes: a controller 120 ; a data converter 105 (data converting portion); a memory 106 ; an interface processor 107 ; a communication processor 108 ; and the like.
- the controller 120 is equipped with: a ROM that stores a control program; a CPU serving as a processing device; a RAM used as a work area of CPU; and the like.
- a data detection module (application software) 101 , an Operating System (OS) 102 , a pointing device driver 103 , and a keyboard driver 104 shown in FIG. 3 are realized by executing the operation on CPU, according to the program read from the ROM.
- the control PC 100 is connected by the keyboard 110 and the pointing device 111 via the interface processor 107 , and the communication processor 108 is connected to the network.
- the data detection module 101 is a part of the functions of the application software, and transmits instruction data to the data converter 105 .
- the instruction data is flag information that instructs the data converter 105 to transmit the received scan code, when the interface processor 107 receives the scan code.
- the data detection module 101 transmits the pointing device data received from the OS 102 to the data converter 105 .
- the data detection module 101 transmits the network transmission information to the data converter 105 .
- the network transmission information is configuration information that the communication processor 108 transmits the packet data to the KVM apparatus 200 .
- the data converter 105 Upon receiving the instruction data from the data detection module 101 , the data converter 105 outputs the received instruction data to the interface processor 107 . In addition, upon receiving the network transmission information from the data detection module 101 , the data converter 105 outputs the received information to the communication processor 108 . Further, upon receiving the scan code from the interface processor 107 , the data converter 105 converts the received scan code into packets and outputs the packets to the communication processor 108 . Upon receiving the pointing device data from the data detection module 101 , the data converter 105 converts the received scan code into packets and outputs the packets to the communication processor 108 .
- the interface processor (changing portion) 107 receives the instruction data from the data converter 105 , and stores the data in the memory 106 . Upon receiving the scan code from the keyboard 110 , the interface processor 107 refers to the memory 106 and transmits the scan code according to the instruction data.
- “0” is usually set to the instruction data. If the instruction data is “0”, the interface processor 107 transmits the scan code to the keyboard driver 104 . The scan code output to the keyboard driver 104 is converted into the key code. If the instruction data “1” is set by the data detection module 101 , the interface processor 107 transmits the scan code to the data converter 105 . The scan code is converted into packets on the data converter 105 and output from the communication processor 108 onto the network. Accordingly, the scan code is output to the control PC 100 without change.
- the interface processor 107 Upon receiving the pointing device data from the pointing device, the interface processor 107 transmits the received data to the pointing device driver 103 .
- the scan code is input from the interface processor 107 into the keyboard driver (code converting portion) 104 .
- the keyboard driver 104 converts the scan code into the key code and outputs to the OS 102 .
- the pointing device driver 103 receives the pointing device data from the interface processor 107 and outputs to the OS 102 .
- the OS 102 receives the pointing device data from the pointing device driver 103 and outputs to the data detection module 101 .
- the OS 102 receives the key code from the keyboard driver 104 and outputs to the key code to the data detection module 101 .
- the communication processor 108 receives the network transmission information from the data converter 105 , and transmits the packet data received from the data converter 105 to the network.
- the communication processor 108 receives the packet data from the network and outputs the packet data to the data converter 105 .
- the KVM apparatus 200 includes: a communication processor 201 ; a main controller 202 ; a data converter 203 ; a memory 204 (storage portion); a scan code processor 205 ; and a pointing device data processor 206 .
- the communication processor 201 forwards the packet data received via the network to the main controller 202 .
- the packet data forwarded from the main controller 202 is output to the network.
- the main controller 202 receives the packet data from the communication processor 201 and outputs the packet data to the data converter 203 (data converting portion).
- the main controller 202 outputs the data converted into the packet data by the data converted 203 to the communication processor 201 .
- the data converter 203 receives the packet data from the main controller 202 , and retrieves the pointing device data or the scan code from the packet data. Such retrieved scan code data is output to the scan code processor 205 , and the pointing device data is output to the pointing device data processor 206 .
- the scan code processor 205 transmits the scan code input from the data converter 203 to a server N (the server N represents an arbitrary server of the servers 1 , 2 , 3 , . . . and N).
- the pointing device data processor 206 transmits the pointing device data input from the data converter 203 , to the server N.
- step S 1 When the application that operates the remote server N is activated on the control PC 100 (step S 1 ), the data detection module 101 of the application outputs the instruction data to the data converter 105 (step S 2 ). The data converter 105 outputs the instruction data that has been input is output to the interface processor 107 (step S 3 ). The interface processor 107 stores the input instruction data in the memory 106 (step S 4 ).
- the data detection module 101 When the application is activated to operate the server N, the data detection module 101 outputs the instruction data “1”, and the instruction data “1” is set in the memory 106 .
- the scan code is input from the interface processor 107 (step S 12 ).
- the interface processor 107 refers to the instruction data stored in the memory 106 (step S 13 ), and determines an output destination to which the scan code is output.
- step S 14 If the instruction data is “0” (step S 14 /NO), the interface processor 107 outputs the scan code to the data converter 105 according to the instruction data as shown in FIG. 8 (step S 15 ).
- the keyboard driver 104 converts the scan code into the key code (step S 19 ), and outputs the converted key code to the OS 102 (step S 20 ).
- step S 14 If the instruction data is “1” (step S 14 /YES), the interface processor 107 outputs the scan code to the data converter 105 according to the instruction data as shown in FIG. 8 (step S 15 ).
- the data converter 105 converts the scan code input from the interface processor 107 into packets, and outputs to the communication processor 108 (step S 16 ).
- the communication processor 108 transmits the packet data that has been input, to the KVM apparatus 200 (step S 17 ).
- the data detection module 101 When the application that operates the remote server N is completed, the data detection module 101 outputs the instruction data “0”. This instruction data is stored in the memory 106 according to the above-described procedure. The instruction data output from the data detection module 101 selectively changes a normal path where the scan code is converted into the key code and a path where the scan code is not converted into the key code.
- the KVM apparatus 200 receives the packet data transmitted from the control PC 100 on the communication processor 201 (step S 21 /YES).
- the communication processor 201 outputs the received packet data to the main controller 202 (step S 22 ).
- the main controller 202 receives the packet data to transfer to the data converter 203 (step S 23 ).
- the data converter 203 receives the packet data and retrieves the scan code from the packet data (step S 24 ). Such retrieved scan code is forwarded to the scan code processor 205 (step S 24 ).
- the scan code processor 205 Upon receiving the scan code, the scan code processor 205 transmits the scan code to the server N (step S 25 ).
- the scan codes can be directly transmitted to the server N, thereby eliminating the process that the KVM apparatus 200 converts the key code into the scan code again and passes onto the server. Accordingly, the process time can be shortened and the data reliability can be enhanced. Also, when the remote server N is operated, the scan code is directly transmitted to the KVM apparatus 200 without passing through the keyboard driver 104 in the control PC 100 . It is therefore possible to send the special key such as Ctrl-Alt-Delete key, so the key operation onto the server can be performed from the keyboard of the control PC 100 .
- the KVM apparatus 200 receives the video signal from the server N, performs analog-digital conversion of the video signal, converts into packets, and transmits to the control PC 100 .
- the control PC 100 receives the packet data from the KVM apparatus 200 , acquires the video signal of the packet data, and displays on the operation window. In this manner, it is possible to display the pointing device operation and the key input of the remote server N.
- the instruction data is selectively changed according to whether or not the application that operates the remote server N is activated.
- the scan data is output to the data converter 105 to change to the path where there is no conversion.
- it may be changed to the path where the scan data is converted into the key code by the keyboard driver 104 .
- the OS 102 is registered to receive the event generating at the pointing device 111 .
- the event generating in a state where the cursor of the pointing device 111 exists on the operation screen is notified to the data detection module 101 from the OS 102 , so that the data detection module 101 acquires the event.
- the OS 102 notifies to the data detection module 101 .
- Such notified data detection module 101 sets the instruction data “1” on the memory 106 . This procedure is described above.
- the notification from the OS 102 cannot be acquired by the detection module 101 and the data detection module 101 sets the instruction data “0”. In this manner, the transmission path of the scan code can be selectively changed according to the cursor position of the pointing device.
- a selector button When a selector button is displayed on the operation screen provided by the application and the selector button is pushed by the pointing device 111 , it may be configured such that the data detection module 101 sets the instruction data “1”.
- FIG. 10 shows a configuration of the control PC 100 in accordance with the second exemplary embodiment of the present invention.
- the interface processor 107 when the scan code is input from the keyboard 110 , the interface processor 107 selectively changes the output destination where the scan code is to be output. That is to say, the interface processor 107 is provided to have the functions of changing the output destination where the scan code is to be output.
- the filter driver (changing portion) 121 is installed to selectively change the output destination where the scan code is to be output by means of software control.
- the driver software such as the keyboard driver 104 or the like has a layered structure with multiple programs, not a single program. Instructions and data are passed onto a higher level or lower level and processed. The operation of the layered drivers can be partially changed by adding and inserting the filter driver to the existing driver.
- the filter driver 121 acquires the instruction data output from the data detection module 101 via the data converter 105 , and stores the instruction data in the memory 106 .
- the filter driver 121 outputs the scan code to a given output destination where the scan code is to be output, according to the instruction data stored in the memory 106 . That is to say, if the instruction data is “0”, the scan code is output to the keyboard driver 104 . If the instruction data is “1”, the scan code is output to the data converter 105 .
- the scan code can be transmitted to the KVM apparatus 200 without converting the scan code into the key code, by adding the filter driver 121 to the control PC 100 .
- the USB scan code is transmitted to the KVM apparatus 200 .
- the server N and the KVM apparatus 200 are connected by PS/2, and the server N operates with the scan code set 1 of PS/2 keyboard. Even if the KVM apparatus 200 transmits the USB scan code to the server N in this state, the input on the keyboard 110 is not recognized by the server N and the operation cannot be performed. Accordingly, the scan code suitable for the server N has to be transmitted to the KVM apparatus 200 .
- FIG. 11 shows a configuration of the KVM apparatus 200 .
- a USB device data processor 207 is newly provided with the KVM apparatus 200 , as shown in FIG. 11 .
- the USB device data processor 207 transmits the USB scan code output from the main controller 202 to the server N.
- the USB device data processor 207 receives the enumeration data transmitted from the server N, and outputs to the main controller 202 .
- the KVM apparatus 200 receives the negotiation data transmitted from the server N on the scan code processor 205 at the time of negotiation of PS/2 connection.
- the negotiation data is transmitted to the main controller 202 .
- the main controller 202 retrieves any of the PS/2 scan code sets 1 through 3 included in the negotiation data, and stores in the memory 204 as the scan code set information (connection specification information).
- the KVM apparatus 200 receives the enumeration data transmitted from the server N at the time of enumeration of USB connection, at the USB device data processor 207 .
- the enumeration data is transmitted to the main controller 202 .
- the main controller 202 retrieves the USB scan code included in the enumeration data, and stores in the memory 204 as the scan code set information.
- the data converter (data converting portion) 203 refers to the scan code set information stored in the memory 204 , and converts the scan code acquired from the control PC 100 into the data of a format represented by the scan code set information stored in the memory 204 . That is to say, the scan code is converted into the scan code that corresponds to the connection specification between the KVM apparatus 200 and the server N. Such converted PS/2 scan code is output to the scan code processor 205 by the main controller 202 . Such converted USB scan code is output to the USB device data processor 207 by the main controller 202 .
- FIG. 12 is an example of a format of the packet data transmitted and received between the control PC 100 and the KVM apparatus 200 .
- the data portion of the packet data includes: identification data; data ID; data length; and actual data, as shown in FIG. 12 .
- the identification data is arbitrary data representing that the data is transmitted by the process of the present system.
- the KVM apparatus 200 determines that the data has been transmitted from the control PC 100 in an existing method (an example of Virtual Network Computing (VNC) of RealVNC).
- VNC Virtual Network Computing
- the data ID represents the data type transmitted to the KVM apparatus 200 from the control PC 100 , and is defined as follows:
- the data length represents the byte number of the actual data.
- the actual data is the data of the keyboard and the pointing device from the control PC 100 . That is to say, this actual data includes the scan code.
- the data ID is the actual data representing a command, the following data is included.
- the data ID represents a command (in other words, 0x40 is input) and the actual data is the data of (1) and (2).
- the main controller 202 checks the data ID and the actual data, and changes the scan code set information stored in the memory 204 .
- the data ID represents a command and the actual data is the data of (3).
- the data is the transmission request of the scan code set information stored in the memory 204 of the KVM apparatus 200 .
- the control PC 100 is capable of acquiring the scan code set information of the server N.
- step S 31 the negotiation (initial setting) of the PS/2 keyboard interface starts (step S 32 ).
- the scan code processor 205 acquires the negotiation data from the server N (step S 33 ), and outputs to the main controller 202 (step S 34 ).
- the main controller 202 retrieves any of the PS/2 scan code sets 1 through 3 from such received negotiation data, and stores in the memory 204 as the scan code set (step S 35 ). In this state, the preparation to receive the packet data from the control PC 100 is completed (step S 36 ).
- step S 41 the enumeration of the USB keyboard interface starts (step S 42 ).
- Enumeration is to acquire the information from the device so that the host learns what device is in connection with a bus and the device is configured on the basis of the acquired information. In other words, the enumeration is a process to recognize the connection of the USB device.
- the USB device data processor 207 acquires the enumeration data from the server N (step S 43 ), and transmits the acquired enumeration data to the main controller 202 (step S 44 ).
- the main controller 202 stores the USB scan code from the acquired enumeration data in the memory 204 as the scan code set information (step S 45 ). In this state, the KVM apparatus 200 completes the preparation to receive the packet data from the control PC (step S 46 ).
- the server N and the KVM apparatus 200 are connected by both PS/2 and USB.
- the scan code set information stores the USB scan code.
- the priority of the PS/2 and USB can be changed by transmitting the command from the control PC 100 .
- the change it is possible to change with the use of a hot key input on the keyboard of the control PC or the GUI button displayed by the application software.
- step S 51 the main controller 202 of the KVM apparatus 200 retrieves the data portion shown in FIG. 12 from the packet data and confirms whether or not there is the identification data (step S 52 ). If there is the identification data (step S 52 /YES), the data ID is confirmed (step S 54 ).
- step S 52 If there is no identification data (step S 52 /NO), the data is determined not to be the data transmitted from the control PC 100 in the present system, performs the process according to the existing protocol (an example is VNC) (step S 53 ), and transmits the data to the keyboard and pointing device data to the server N.
- the existing protocol an example is VNC
- the main controller 202 determines the data ID included in the packet data (step S 54 ). If the scan code set information written in the packet data is the PS/2 pointing device data (step S 55 /YES), the main controller 202 transmits the pointing device data retrieved from the data portion to the pointing device data processor 206 (step S 56 ). The pointing device data processor 206 transmits the PS/2 pointing device data to the server N (step S 57 ).
- the main controller 202 transmits the USB pointing device data retrieved from the data portion to the USB device data processor 207 (step S 64 ).
- the USB device data processor 207 transmits the received USB pointing device data to the server N (step S 65 ).
- the main controller 202 determines whether or not the data ID corresponds to the scan code set information (step S 59 ).
- the scan code set information stored in the memory 204 is the scan code set information that corresponds to the connection of the KVM apparatus 200 and the server N. If the data ID does not correspond to the scan code set information stored, the scan code transmitted to the server N without change is not recognized on the server N. Accordingly, if the data ID does not correspond to the scan codes set information (step S 59 /NO), the data is converted to have a corresponding data format on the data converter 203 .
- the data conversion on the data converter 203 is performed according to a conversion table stored in the memory (ROM).
- the ROM stores the conversion table for each piece of all scan code set information (scan code sets 1 through 3 and USB scan code set).
- the data converter 203 converts the scan code retrieved from the packet into the data format represented by the scan code set information registered in the memory 204 (step S 60 ).
- the scan code is output to the corresponding transmitting portion. If the scan code is a PS/2 scan code (step S 61 /YES), the main controller 202 outputs the PS/2 scan code to the scan code processor 205 (step S 62 ). The scan code processor 205 transmits the received PS/2 scan code to the server N. If the scan code is a USB scan code (step S 61 /NO), the main controller 202 outputs the USB scan code to the USB device data processor 207 . The USB device data processor 207 transmits the received USB scan code to the server N (step S 65 ).
- the data is converted on the KVM apparatus 200 and transmitted to the server N.
- the control PC 100 may acquire the scan code set information and transmit the scan code in which the data is converted on the control PC 100 .
- the scan code set information acquisition command is defined between the control PC 100 and the KVM apparatus 200 , so that the control PC 100 can acquire the scan code set information.
- the scan code is encrypted and transmitted to the KVM apparatus 200 via the network.
- the KVM apparatus 200 decrypts the received scan code and transmits to the server N.
- FIG. 16 shows a configuration of the control PC 100 .
- FIG. 17 shows a configuration of the KVM apparatus 200 .
- the control PC 100 is additionally provided with an encryption processor 130
- the KVM apparatus 200 is additionally provided with a decryption processor 208 .
- the encryption processor 130 encrypts data transmitted from the data converter 105 , and such encrypted data is transmitted to the data converter 105 .
- the data converter 105 converts the encrypted scan code into packets, and outputs the packet to the communication processor 108 .
- the communication processor 108 transmits the packet data to the KVM apparatus 200 .
- the KVM apparatus 200 receives the packet data transmitted through the network at the communication processor 201 , and transfers to the data converter 203 .
- the data converter 203 retrieves the encrypted scan code from the packet data. Such retrieved scan code is output to the decryption processor 208 and decrypted therein. Such decrypted scan code is returned from the decryption processor 208 to the data converter 203 , and is output to the scan code processor 205 from the data converter 203 .
- the scan code processor 205 outputs the scan code to the server N.
- the present exemplary embodiment it is possible to encrypt the keyboard data to output to the network, and it is also possible to decrypt the encrypted keyboard data to transmit to the server N. Accordingly, the information leakage can be prevented, thereby enhancing the security.
- a scan code transmission method employed as an aspect of the present invention is realized with a Central Processing Unit (CPU), Read Only Memory (ROM), Random Access Memory (RAM), and the like, by installing a program from a portable memory device or a storage device such as a hard disc device, CD-ROM, DVD, or a flexible disc or downloading the program through a communications line. Then the steps of program are executed as the CPU operates the program.
- CPU Central Processing Unit
- ROM Read Only Memory
- RAM Random Access Memory
- the data detection module 101 may be configured as hardware, and the data converter 105 may be configured by software.
- the present invention is based on Japanese Patent Application No. 2005-235216 filed on Aug. 15, 2005, the entire disclosure of which is hereby incorporated by reference.
Abstract
Description
- 1. Field of the Invention
- This invention generally relates to a technique of operating multiple servers in connection with a network from a Keyboard/Video Mouse (KVM) with the use of a personal computer for control (hereinafter, referred to as control PC).
- 2. Description of the Related Art
- When multiple servers on the network are selectively changed for operation by using a set of input devices (such as a keyboard, pointing device, and the like), a
KVM apparatus 200 shown inFIG. 1 is employed. In such a system, data generated by operating akeyboard 110 and apointing device 111 is converted into packets on a control PC 100 and transmitted on the network of TCP/IP or the like, to aKVM apparatus 200. Upon receiving the packet data, theKVM apparatus 200 acquires data of the keyboard and that of the pointing device from the packet data and delivers to servers (1, 2, 3, . . . and N). The remote operation is executed by the above-described processing. - The control PC 100 is a general-purpose PC, and data input from the
keyboard 110 is processed in a flowchart shown inFIG. 2 . Subsequent to the key input on thekeyboard 110, the key data is transmitted to the control PC 100. The key data transmitted is called scan code, and has a different data value according to each key. The scan code input from thekeyboard 110 is received by aninterface processor 107 of the control PC is converted into a key code on akeyboard driver 104, and is output to an Operating System (OS) 102 for code analysis, as shown inFIG. 2 . The key code is a predetermined standard code of OS, that is to say, code data that can be recognized and processed by OS. The scan code varies depending on the keyboard. An example is “@”, which is different between US101 keyboard and OADG109 keyboard. Therefore, a conversion process is carried out to correct the difference, and is passed onto theOS 102 as a key code. - The key code received on the
OS 102 is transmitted to adata detection module 101, which is enacted by application software. The key code received on thedata detection module 101 is output to adata converter 105, and is converted into packets thereon. Then the packets are output to acommunication processor 108, and are transmitted onto the network from thecommunication processor 108. - Japanese Patent Application Publication No. 6-289971 (hereinafter, referred to as Document 1) discloses a system in which a key input generated by the keyboard operation of a server apparatus is converted into a key code to transmit to a client apparatus. The client apparatus stores display key information tables for multiple server apparatuses, in which the key code used on the client apparatus is associated with the key code used on the server apparatus. The above-described system is also equipped with a display key library, which refers to the corresponding display key information table, and converts the key code input from the server apparatus into the key code used on the client apparatus.
- Japanese Patent Application Publication No. 2000-250696 (hereinafter, referred to as Document 2) relates to a remote control in which one control information terminal remotely controls another information terminal to be controlled among the information terminals connected over the network. When the control information terminal and the information terminal to be controlled have different physical types or different logical layouts in keyboards, the actual scan code generated by the control information terminal is converted into a vertical scan code, and then the vertical scan code is converted into the actual scan code of the keyboard of the information terminal to be controlled.
- In the conversion from the scan code into the key code, Left-Shift key and Right-Shift key have the same key codes. In this manner, the scan codes are different in inputting on the keyboard, but are converted into an identical key code.
- In a case where the remote server is operated with the application that runs on the control PC 100, the keyboard data is always transmitted through the OS of the control PC 100. For this reason, the server, in some cases, has a system that can operate only the data converted into the key code. In such system, if there is an application that executes different functions by recognizing the difference of the inputs between Left-Shift key and Right-Shift key on the server, there will be a problem that the function cannot be executed due to the inability to recognize the difference between the key inputs on the server.
- Also, in all systems, a special key input such as Ctrl-Alt-Delete is recognized by the
OS 102 of the control PC 100, so there is no transmission to the server from the control PC 100. Therefore, in order to transmit such special key to the remote server from the control PC 100 in the system equipped with theKVM apparatus 200, the application is designed to include GUI of special key buttons so that the GUI buttons are clicked by a mouse to produce special key data (an example is DSR series (product name) of Avocent). However, in this method, all the key inputs cannot be executed over the keyboard and it is inconvenient for users. - In addition, according to both techniques disclosed by
Document 1 andDocument 2, there are provided a conversion table to convert the key code or scan code generated on one terminal into those usable on another terminal. Such techniques consume resources of the apparatus for the conversion, and cause other problems that the conversion needs time and another driver software needs to be installed. - The present invention has been made in view of the above circumstances and provides an information processing apparatus, server selector, remote operation system, scan code transmission method, and program product therefor, in which a key input on a keyboard can be effectively recognized by a server.
- According to one aspect of the present invention, preferably, there is provided an information processing apparatus including: a code converting portion that converts a scan code output from a keyboard into a corresponding key code; a data converting portion that converts the key code into packets; and a changing portion that changes an output destination of the scan code from the code converting portion to the data converting portion, when an application software to operate a server apparatus remotely located is activated in the information processing apparatus, which is in connection with the server apparatus over a network. The scan code generated from the keyboard can be transmitted to the server apparatus without change. Accordingly, there is no unnecessary data conversion, and the key input can be recognized by the server. There is no necessity of software install for data conversion, thereby eliminating the resource consumption in the server apparatus and the information processing apparatus. In addition, unnecessary data conversion is not performed, thereby improving the data reliability. A special key such as Ctrl-Alt-Delete or the like can be transmitted to the server. According to another aspect of the present invention, there is provided a server selector including: a storage portion that stores information on a connection specification between one or more server apparatuses and the server selector; a data converter that converts a scan code generated from a keyboard into data corresponding to the connection specification; and a transmitting portion that transmits the data corresponding to the connection specification, to the one or more server apparatuses, wherein the server selector can operate the one or more server apparatuses with a set of console. The server selector is provided with a function of converting into the data according to the connection specification to operate one or more server apparatuses. Accordingly, there is no need for installing the software for data conversion on the server apparatus, thereby eliminating the resource consumption of the server apparatus. The scan code generated from the keyboard is converted into the data corresponding to the connection specification and transmitted to the server apparatus. This does not cause the problem that the scan code cannot be recognized on the server apparatus.
- According to another aspect of the present invention, there is provided a remote operation system including: multiple server apparatuses remotely located; a server selector in connection with the multiple servers over a network to be able to operate the multiple server apparatuses with a set of console; and an information processing apparatus in connection with the server selector and having the set of console to operate the multiple server apparatuses, the information processing apparatus including: a storage portion that stores information on a connection specification between each of the multiple server apparatuses and the server selector; a data converting portion that converts a scan code generated from a keyboard into data corresponding to the connection specification of one of the multiple server apparatuses, which is a transmission destination of the scan code; and a transmitting portion that transmits the data corresponding to the connection specification to the server selector.
- According to another aspect of the present invention, there is provided a scan code transmission method including: converting a scan code input on a keyboard into packets without changing to a corresponding key code, when an application software to operate a server apparatus is activated; and transmitting the scan code converted into the packets to a server apparatus remotely located and connected over a network.
- According to another aspect of the present invention, there is provided a scan code transmitting method including: converting a scan code input with a set of console into data corresponding to a connection specification with a server apparatus selected from multiple server apparatuses; transmitting the data corresponding to the connection specification to the server apparatus.
- According to another aspect of the present invention, there is provided a computer readable medium storing a program causing a computer to execute a process for a scan code transmission, the process including: converting a scan code input on a keyboard into packets without changing to a corresponding key code, when an application software to operate a server apparatus is activated; and transmitting the scan code converted into the packets to a server apparatus remotely located and connected over a network.
- According to another aspect of the present invention, there is provided a computer readable medium storing a program causing a computer to execute a process for a scan code transmission, the process including: converting a scan code input with a set of console into data corresponding to a connection specification with a server apparatus selected from multiple server apparatuses; transmitting the data corresponding to the connection specification to the server apparatus.
- Preferred exemplary embodiments of the present invention will be described in detail with reference to the following drawings, wherein:
-
FIG. 1 shows a system configuration; -
FIG. 2 shows a data flowchart in a control PC; -
FIG. 3 shows a configuration of the control PC in accordance with a first exemplary embodiment of the present invention; -
FIG. 4 shows a configuration of a KVM apparatus in accordance with the first exemplary embodiment of the present invention; -
FIG. 5 shows a flowchart to register instruction data in a memory; -
FIG. 6 shows a flowchart of procedure to transmit a scan code to the KVM apparatus according to the instruction data; -
FIG. 7 shows a flowchart of operation at the KVM apparatus; -
FIG. 8 shows a data flowchart; -
FIG. 9 shows a screen provided by an application; -
FIG. 10 shows a configuration of the control PC in accordance with a second exemplary embodiment of the present invention; -
FIG. 11 shows a configuration of the KVM apparatus in accordance with a third exemplary embodiment of the present invention; -
FIG. 12 shows a packet format; -
FIG. 13 shows a flowchart of operation at the time of powering on a server N in connection with the KVM apparatus through PS/2; -
FIG. 14 shows a flowchart of operation at the time of powering on a server N in connection with the KVM apparatus through USB; -
FIG. 15 shows a flowchart of determination process of the KVM apparatus that receives the packet data; -
FIG. 16 shows a configuration of the control PC in accordance with a fourth exemplary embodiment of the present invention; and -
FIG. 17 shows a configuration of the KVM apparatus in accordance with the fourth exemplary embodiment of the present invention. - A description will now be given, with reference to the accompanying drawings, of exemplary embodiments of the present invention.
- A description will now be given of a system configuration employed in a first exemplary embodiment, with reference to
FIG. 1 . There are provided: the control PC 100 (information processing apparatus) having thekeyboard 110 and thepointing device 111 serving as a console; the KVM apparatus 200 (server selector) in connection with thecontrol PC 100; andmultiple servers KVM apparatus 200. - Referring now to
FIG. 3 , a description will be given of a configuration of thecontrol PC 100. Thecontrol PC 100 includes: acontroller 120; a data converter 105 (data converting portion); amemory 106; aninterface processor 107; acommunication processor 108; and the like. Thecontroller 120 is equipped with: a ROM that stores a control program; a CPU serving as a processing device; a RAM used as a work area of CPU; and the like. A data detection module (application software) 101, an Operating System (OS) 102, apointing device driver 103, and akeyboard driver 104 shown inFIG. 3 are realized by executing the operation on CPU, according to the program read from the ROM. Also, thecontrol PC 100 is connected by thekeyboard 110 and thepointing device 111 via theinterface processor 107, and thecommunication processor 108 is connected to the network. - The
data detection module 101 is a part of the functions of the application software, and transmits instruction data to thedata converter 105. The instruction data is flag information that instructs thedata converter 105 to transmit the received scan code, when theinterface processor 107 receives the scan code. Thedata detection module 101 transmits the pointing device data received from theOS 102 to thedata converter 105. In addition, thedata detection module 101 transmits the network transmission information to thedata converter 105. The network transmission information is configuration information that thecommunication processor 108 transmits the packet data to theKVM apparatus 200. - Upon receiving the instruction data from the
data detection module 101, thedata converter 105 outputs the received instruction data to theinterface processor 107. In addition, upon receiving the network transmission information from thedata detection module 101, thedata converter 105 outputs the received information to thecommunication processor 108. Further, upon receiving the scan code from theinterface processor 107, thedata converter 105 converts the received scan code into packets and outputs the packets to thecommunication processor 108. Upon receiving the pointing device data from thedata detection module 101, thedata converter 105 converts the received scan code into packets and outputs the packets to thecommunication processor 108. - The interface processor (changing portion) 107 receives the instruction data from the
data converter 105, and stores the data in thememory 106. Upon receiving the scan code from thekeyboard 110, theinterface processor 107 refers to thememory 106 and transmits the scan code according to the instruction data. - “0” is usually set to the instruction data. If the instruction data is “0”, the
interface processor 107 transmits the scan code to thekeyboard driver 104. The scan code output to thekeyboard driver 104 is converted into the key code. If the instruction data “1” is set by thedata detection module 101, theinterface processor 107 transmits the scan code to thedata converter 105. The scan code is converted into packets on thedata converter 105 and output from thecommunication processor 108 onto the network. Accordingly, the scan code is output to thecontrol PC 100 without change. - Upon receiving the pointing device data from the pointing device, the
interface processor 107 transmits the received data to thepointing device driver 103. - The scan code is input from the
interface processor 107 into the keyboard driver (code converting portion) 104. Thekeyboard driver 104 converts the scan code into the key code and outputs to theOS 102. Thepointing device driver 103 receives the pointing device data from theinterface processor 107 and outputs to theOS 102. - The
OS 102 receives the pointing device data from thepointing device driver 103 and outputs to thedata detection module 101. TheOS 102 receives the key code from thekeyboard driver 104 and outputs to the key code to thedata detection module 101. - The
communication processor 108 receives the network transmission information from thedata converter 105, and transmits the packet data received from thedata converter 105 to the network. Thecommunication processor 108 receives the packet data from the network and outputs the packet data to thedata converter 105. - A description will now be given of the configuration of the
KVM apparatus 200, with reference toFIG. 4 . TheKVM apparatus 200 includes: acommunication processor 201; amain controller 202; adata converter 203; a memory 204 (storage portion); ascan code processor 205; and a pointingdevice data processor 206. - The
communication processor 201 forwards the packet data received via the network to themain controller 202. The packet data forwarded from themain controller 202 is output to the network. - The
main controller 202 receives the packet data from thecommunication processor 201 and outputs the packet data to the data converter 203 (data converting portion). Themain controller 202 outputs the data converted into the packet data by the data converted 203 to thecommunication processor 201. - The
data converter 203 receives the packet data from themain controller 202, and retrieves the pointing device data or the scan code from the packet data. Such retrieved scan code data is output to thescan code processor 205, and the pointing device data is output to the pointingdevice data processor 206. - The
scan code processor 205 transmits the scan code input from thedata converter 203 to a server N (the server N represents an arbitrary server of theservers device data processor 206 transmits the pointing device data input from thedata converter 203, to the server N. - Referring now to a flowchart of
FIG. 5 , a description will now be given of an operation procedure of thecontrol PC 100. When the application that operates the remote server N is activated on the control PC 100 (step S1), thedata detection module 101 of the application outputs the instruction data to the data converter 105 (step S2). Thedata converter 105 outputs the instruction data that has been input is output to the interface processor 107 (step S3). Theinterface processor 107 stores the input instruction data in the memory 106 (step S4). - Next, a description will be given of an operation when there is a key input on the
keyboard 110. When the application is activated to operate the server N, thedata detection module 101 outputs the instruction data “1”, and the instruction data “1” is set in thememory 106. In this state, when there is a key input from the keyboard 110 (step S11), the scan code is input from the interface processor 107 (step S12). Theinterface processor 107 refers to the instruction data stored in the memory 106 (step S13), and determines an output destination to which the scan code is output. - If the instruction data is “0” (step S14/NO), the
interface processor 107 outputs the scan code to thedata converter 105 according to the instruction data as shown inFIG. 8 (step S15). Thekeyboard driver 104 converts the scan code into the key code (step S19), and outputs the converted key code to the OS 102 (step S20). - If the instruction data is “1” (step S14/YES), the
interface processor 107 outputs the scan code to thedata converter 105 according to the instruction data as shown inFIG. 8 (step S15). Thedata converter 105 converts the scan code input from theinterface processor 107 into packets, and outputs to the communication processor 108 (step S16). Thecommunication processor 108 transmits the packet data that has been input, to the KVM apparatus 200 (step S17). - When the application that operates the remote server N is completed, the
data detection module 101 outputs the instruction data “0”. This instruction data is stored in thememory 106 according to the above-described procedure. The instruction data output from thedata detection module 101 selectively changes a normal path where the scan code is converted into the key code and a path where the scan code is not converted into the key code. - Referring now to
FIG. 7 , a description will now be given of an operation procedure of theKVM apparatus 200. TheKVM apparatus 200 receives the packet data transmitted from thecontrol PC 100 on the communication processor 201 (step S21/YES). Thecommunication processor 201 outputs the received packet data to the main controller 202 (step S22). Themain controller 202 receives the packet data to transfer to the data converter 203 (step S23). Thedata converter 203 receives the packet data and retrieves the scan code from the packet data (step S24). Such retrieved scan code is forwarded to the scan code processor 205 (step S24). Upon receiving the scan code, thescan code processor 205 transmits the scan code to the server N (step S25). - In the present exemplary embodiment, the scan codes can be directly transmitted to the server N, thereby eliminating the process that the
KVM apparatus 200 converts the key code into the scan code again and passes onto the server. Accordingly, the process time can be shortened and the data reliability can be enhanced. Also, when the remote server N is operated, the scan code is directly transmitted to theKVM apparatus 200 without passing through thekeyboard driver 104 in thecontrol PC 100. It is therefore possible to send the special key such as Ctrl-Alt-Delete key, so the key operation onto the server can be performed from the keyboard of thecontrol PC 100. - A detailed description is omitted on the configuration of the transmitting and receiving the video signal. However, the operation will be described briefly below. The
KVM apparatus 200 receives the video signal from the server N, performs analog-digital conversion of the video signal, converts into packets, and transmits to thecontrol PC 100. Thecontrol PC 100 receives the packet data from theKVM apparatus 200, acquires the video signal of the packet data, and displays on the operation window. In this manner, it is possible to display the pointing device operation and the key input of the remote server N. - In the above-described exemplary embodiment, the instruction data is selectively changed according to whether or not the application that operates the remote server N is activated. In addition, in a case where there is a cursor of the
pointing device 111 such as a mouse or the like in the area of the operation screen activated by the application as shown inFIG. 9 , the scan data is output to thedata converter 105 to change to the path where there is no conversion. In a case where there is no cursor of thepointing device 111 in the area of the operation screen, it may be changed to the path where the scan data is converted into the key code by thekeyboard driver 104. - For the above-described determination, the
OS 102 is registered to receive the event generating at thepointing device 111. The event generating in a state where the cursor of thepointing device 111 exists on the operation screen is notified to thedata detection module 101 from theOS 102, so that thedata detection module 101 acquires the event. - As indicated by a cursor position A, in a case where there is a cursor on the operation screen of the application, the
OS 102 notifies to thedata detection module 101. Such notifieddata detection module 101 sets the instruction data “1” on thememory 106. This procedure is described above. Meanwhile, in a case where the cursor moves out of the operation screen of the application such as a cursor position B, the notification from theOS 102 cannot be acquired by thedetection module 101 and thedata detection module 101 sets the instruction data “0”. In this manner, the transmission path of the scan code can be selectively changed according to the cursor position of the pointing device. - When a selector button is displayed on the operation screen provided by the application and the selector button is pushed by the
pointing device 111, it may be configured such that thedata detection module 101 sets the instruction data “1”. - A description will now be given of a second exemplary embodiment with reference to the accompanying drawings.
FIG. 10 shows a configuration of thecontrol PC 100 in accordance with the second exemplary embodiment of the present invention. In the first exemplary embodiment, when the scan code is input from thekeyboard 110, theinterface processor 107 selectively changes the output destination where the scan code is to be output. That is to say, theinterface processor 107 is provided to have the functions of changing the output destination where the scan code is to be output. Meanwhile, in the present exemplary embodiment, the filter driver (changing portion) 121 is installed to selectively change the output destination where the scan code is to be output by means of software control. The driver software such as thekeyboard driver 104 or the like has a layered structure with multiple programs, not a single program. Instructions and data are passed onto a higher level or lower level and processed. The operation of the layered drivers can be partially changed by adding and inserting the filter driver to the existing driver. - The
filter driver 121 acquires the instruction data output from thedata detection module 101 via thedata converter 105, and stores the instruction data in thememory 106. When the scan code is input from theinterface processor 107, thefilter driver 121 outputs the scan code to a given output destination where the scan code is to be output, according to the instruction data stored in thememory 106. That is to say, if the instruction data is “0”, the scan code is output to thekeyboard driver 104. If the instruction data is “1”, the scan code is output to thedata converter 105. - In the present exemplary embodiment, the scan code can be transmitted to the
KVM apparatus 200 without converting the scan code into the key code, by adding thefilter driver 121 to thecontrol PC 100. - A description will be given of a third exemplary embodiment with reference to the accompanying drawings. There are multiple types of the scan codes generated by the input on the
keyboard 110, such as scan code sets 1 through 3 of PS/2 keyboard, the scan code of the USB keyboard, and the like. Among the afore-mentioned scan codes, the scan code set to be used varies depending on the connection state of the server to be used, BIOS, and the driver software. - In a case where there is an input on the USB keyboard on the
control PC 100 side, the USB scan code is transmitted to theKVM apparatus 200. At this time, the server N and theKVM apparatus 200 are connected by PS/2, and the server N operates with the scan code set 1 of PS/2 keyboard. Even if theKVM apparatus 200 transmits the USB scan code to the server N in this state, the input on thekeyboard 110 is not recognized by the server N and the operation cannot be performed. Accordingly, the scan code suitable for the server N has to be transmitted to theKVM apparatus 200. -
FIG. 11 shows a configuration of theKVM apparatus 200. A USBdevice data processor 207 is newly provided with theKVM apparatus 200, as shown inFIG. 11 . The USBdevice data processor 207 transmits the USB scan code output from themain controller 202 to the server N. When the enumeration starts with the server N by means of USB connection, the USBdevice data processor 207 receives the enumeration data transmitted from the server N, and outputs to themain controller 202. - When the server N and the
KVM apparatus 200 are connected by PS/2, theKVM apparatus 200 receives the negotiation data transmitted from the server N on thescan code processor 205 at the time of negotiation of PS/2 connection. The negotiation data is transmitted to themain controller 202. Themain controller 202 retrieves any of the PS/2 scan code sets 1 through 3 included in the negotiation data, and stores in thememory 204 as the scan code set information (connection specification information). - When the server N and the
KVM apparatus 200 are connected by USB, theKVM apparatus 200 receives the enumeration data transmitted from the server N at the time of enumeration of USB connection, at the USBdevice data processor 207. The enumeration data is transmitted to themain controller 202. Themain controller 202 retrieves the USB scan code included in the enumeration data, and stores in thememory 204 as the scan code set information. - The data converter (data converting portion) 203 refers to the scan code set information stored in the
memory 204, and converts the scan code acquired from thecontrol PC 100 into the data of a format represented by the scan code set information stored in thememory 204. That is to say, the scan code is converted into the scan code that corresponds to the connection specification between theKVM apparatus 200 and the server N. Such converted PS/2 scan code is output to thescan code processor 205 by themain controller 202. Such converted USB scan code is output to the USBdevice data processor 207 by themain controller 202. -
FIG. 12 is an example of a format of the packet data transmitted and received between thecontrol PC 100 and theKVM apparatus 200. The data portion of the packet data includes: identification data; data ID; data length; and actual data, as shown inFIG. 12 . The identification data is arbitrary data representing that the data is transmitted by the process of the present system. When the packet data that does not have the identification data is received by theKVM apparatus 200, theKVM apparatus 200 determines that the data has been transmitted from thecontrol PC 100 in an existing method (an example of Virtual Network Computing (VNC) of RealVNC). - The data ID represents the data type transmitted to the
KVM apparatus 200 from thecontrol PC 100, and is defined as follows: - 0x01: PS/2
scan code set 1 - 0x02: PS/2
scan code set 2 - 0x04: PS/2
scan code set 3 - 0x08: USB scan code
- 0x10: PS/2 pointing device data
- 0x20: USB pointing device data
- 0x40: command
- The data length represents the byte number of the actual data. The actual data is the data of the keyboard and the pointing device from the
control PC 100. That is to say, this actual data includes the scan code. In addition, if the data ID is the actual data representing a command, the following data is included. - (1) change instruction of the scan code set
- (2) scan code set information (data stored in the memory of the KVM apparatus)
- (3) transmission request of the scan code set information
- It is assumed that the data ID represents a command (in other words, 0x40 is input) and the actual data is the data of (1) and (2). In this case, when the
KVM apparatus 200 receives the packet data, themain controller 202 checks the data ID and the actual data, and changes the scan code set information stored in thememory 204. It is assumed that the data ID represents a command and the actual data is the data of (3). In this case, the data is the transmission request of the scan code set information stored in thememory 204 of theKVM apparatus 200. Further, if the data ID of the packet data transmitted to thecontrol PC 100 from theKVM apparatus 200 represents a command and the actual data is the data of the above-described (2), thecontrol PC 100 is capable of acquiring the scan code set information of the server N. - Next, a description will be given of the operation when the server N, which is connected with the
KVM apparatus 200 by PS/2, is powered on, with reference toFIG. 13 . When the server N is powered on (step S31), the negotiation (initial setting) of the PS/2 keyboard interface starts (step S32). Thescan code processor 205 acquires the negotiation data from the server N (step S33), and outputs to the main controller 202 (step S34). Themain controller 202 retrieves any of the PS/2 scan code sets 1 through 3 from such received negotiation data, and stores in thememory 204 as the scan code set (step S35). In this state, the preparation to receive the packet data from thecontrol PC 100 is completed (step S36). - Next, a description will be given of the operation when the server is powered on in connection with the
KVM apparatus 200 by a USB device, with reference toFIG. 14 . When the server N is powered on (step S41), the enumeration of the USB keyboard interface starts (step S42). Enumeration is to acquire the information from the device so that the host learns what device is in connection with a bus and the device is configured on the basis of the acquired information. In other words, the enumeration is a process to recognize the connection of the USB device. The USBdevice data processor 207 acquires the enumeration data from the server N (step S43), and transmits the acquired enumeration data to the main controller 202 (step S44). Themain controller 202 stores the USB scan code from the acquired enumeration data in thememory 204 as the scan code set information (step S45). In this state, theKVM apparatus 200 completes the preparation to receive the packet data from the control PC (step S46). - Also, it can be considered that the server N and the
KVM apparatus 200 are connected by both PS/2 and USB. In such a case, it is possible to give priority to any one of them, for example, the USB connection. Accordingly, the scan code set information stores the USB scan code. In addition, the priority of the PS/2 and USB can be changed by transmitting the command from thecontrol PC 100. As an example of the change, it is possible to change with the use of a hot key input on the keyboard of the control PC or the GUI button displayed by the application software. - A description will now be given of the data processing of the
KVM apparatus 200, with reference to a flowchart shown inFIG. 15 . Upon receiving the packet data from the communication processor 201 (step S51/YES), themain controller 202 of theKVM apparatus 200 retrieves the data portion shown inFIG. 12 from the packet data and confirms whether or not there is the identification data (step S52). If there is the identification data (step S52/YES), the data ID is confirmed (step S54). If there is no identification data (step S52/NO), the data is determined not to be the data transmitted from thecontrol PC 100 in the present system, performs the process according to the existing protocol (an example is VNC) (step S53), and transmits the data to the keyboard and pointing device data to the server N. - Next, the
main controller 202 determines the data ID included in the packet data (step S54). If the scan code set information written in the packet data is the PS/2 pointing device data (step S55/YES), themain controller 202 transmits the pointing device data retrieved from the data portion to the pointing device data processor 206 (step S56). The pointingdevice data processor 206 transmits the PS/2 pointing device data to the server N (step S57). - If the data ID is that of the USB pointing device data (step S58/YES), the
main controller 202 transmits the USB pointing device data retrieved from the data portion to the USB device data processor 207 (step S64). The USBdevice data processor 207 transmits the received USB pointing device data to the server N (step S65). - If the data ID retrieved from the packet data does not represent the PS/2 pointing device data (step S55/NO) or the USB pointing device data (step S58/NO), the
main controller 202 determines whether or not the data ID corresponds to the scan code set information (step S59). The scan code set information stored in thememory 204 is the scan code set information that corresponds to the connection of theKVM apparatus 200 and the server N. If the data ID does not correspond to the scan code set information stored, the scan code transmitted to the server N without change is not recognized on the server N. Accordingly, if the data ID does not correspond to the scan codes set information (step S59/NO), the data is converted to have a corresponding data format on thedata converter 203. The data conversion on thedata converter 203 is performed according to a conversion table stored in the memory (ROM). The ROM stores the conversion table for each piece of all scan code set information (scan code sets 1 through 3 and USB scan code set). Thedata converter 203 converts the scan code retrieved from the packet into the data format represented by the scan code set information registered in the memory 204 (step S60). - If the data ID corresponds to the scan code set information (step S59/YES) or the data conversion is completed (step S60), the scan code is output to the corresponding transmitting portion. If the scan code is a PS/2 scan code (step S61/YES), the
main controller 202 outputs the PS/2 scan code to the scan code processor 205 (step S62). Thescan code processor 205 transmits the received PS/2 scan code to the server N. If the scan code is a USB scan code (step S61/NO), themain controller 202 outputs the USB scan code to the USBdevice data processor 207. The USBdevice data processor 207 transmits the received USB scan code to the server N (step S65). - In the present exemplary embodiment, even if the keyboard input has any format of the
control PC 100, it is possible to convert into an appropriate scan code and transmit to the server N. - In the above-described exemplary embodiment, the data is converted on the
KVM apparatus 200 and transmitted to the server N. In addition, as another exemplary embodiment, thecontrol PC 100 may acquire the scan code set information and transmit the scan code in which the data is converted on thecontrol PC 100. In this case, the scan code set information acquisition command is defined between thecontrol PC 100 and theKVM apparatus 200, so that thecontrol PC 100 can acquire the scan code set information. - A fourth exemplary embodiment will be described with reference to the accompanying drawings. In the present exemplary embodiment, the scan code is encrypted and transmitted to the
KVM apparatus 200 via the network. TheKVM apparatus 200 decrypts the received scan code and transmits to the server N. -
FIG. 16 shows a configuration of thecontrol PC 100.FIG. 17 shows a configuration of theKVM apparatus 200. As shown inFIG. 16 , thecontrol PC 100 is additionally provided with anencryption processor 130, and theKVM apparatus 200 is additionally provided with adecryption processor 208. - The
encryption processor 130 encrypts data transmitted from thedata converter 105, and such encrypted data is transmitted to thedata converter 105. Thedata converter 105 converts the encrypted scan code into packets, and outputs the packet to thecommunication processor 108. Thecommunication processor 108 transmits the packet data to theKVM apparatus 200. - The
KVM apparatus 200 receives the packet data transmitted through the network at thecommunication processor 201, and transfers to thedata converter 203. Thedata converter 203 retrieves the encrypted scan code from the packet data. Such retrieved scan code is output to thedecryption processor 208 and decrypted therein. Such decrypted scan code is returned from thedecryption processor 208 to thedata converter 203, and is output to thescan code processor 205 from thedata converter 203. Thescan code processor 205 outputs the scan code to the server N. - In the present exemplary embodiment, it is possible to encrypt the keyboard data to output to the network, and it is also possible to decrypt the encrypted keyboard data to transmit to the server N. Accordingly, the information leakage can be prevented, thereby enhancing the security.
- A scan code transmission method employed as an aspect of the present invention is realized with a Central Processing Unit (CPU), Read Only Memory (ROM), Random Access Memory (RAM), and the like, by installing a program from a portable memory device or a storage device such as a hard disc device, CD-ROM, DVD, or a flexible disc or downloading the program through a communications line. Then the steps of program are executed as the CPU operates the program.
- The present invention is not limited to the above-mentioned exemplary embodiments, and other embodiments, variations and modifications may be made without departing from the scope of the present invention. For example, the
data detection module 101 may be configured as hardware, and thedata converter 105 may be configured by software. - The present invention is based on Japanese Patent Application No. 2005-235216 filed on Aug. 15, 2005, the entire disclosure of which is hereby incorporated by reference.
Claims (16)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/181,088 US8346948B2 (en) | 2005-08-15 | 2011-07-12 | Information processing apparatus, selector, remote operation system, scan code transmission method, and program product therefor |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005235216A JP4611147B2 (en) | 2005-08-15 | 2005-08-15 | Remote operation system and remote operation method |
JP2005-235216 | 2005-08-15 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/181,088 Division US8346948B2 (en) | 2005-08-15 | 2011-07-12 | Information processing apparatus, selector, remote operation system, scan code transmission method, and program product therefor |
Publications (2)
Publication Number | Publication Date |
---|---|
US20070038731A1 true US20070038731A1 (en) | 2007-02-15 |
US8001173B2 US8001173B2 (en) | 2011-08-16 |
Family
ID=37743840
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/503,166 Expired - Fee Related US8001173B2 (en) | 2005-08-15 | 2006-08-14 | Information processing apparatus, selector, remote operation system, scan code transmission method, and program product therefor |
US13/181,088 Expired - Fee Related US8346948B2 (en) | 2005-08-15 | 2011-07-12 | Information processing apparatus, selector, remote operation system, scan code transmission method, and program product therefor |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/181,088 Expired - Fee Related US8346948B2 (en) | 2005-08-15 | 2011-07-12 | Information processing apparatus, selector, remote operation system, scan code transmission method, and program product therefor |
Country Status (2)
Country | Link |
---|---|
US (2) | US8001173B2 (en) |
JP (1) | JP4611147B2 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070220087A1 (en) * | 2006-03-17 | 2007-09-20 | Alcor Micro, Corp. | System for the sharing of electronic peripheral equipments |
US20090144468A1 (en) * | 2007-12-03 | 2009-06-04 | Avocent Corporation | Method and system for reducing multiple keystroke output |
US20100318717A1 (en) * | 2009-06-16 | 2010-12-16 | International Business Machines Corporation | Status information saving among multiple computers |
US20170315627A1 (en) * | 2016-04-29 | 2017-11-02 | Bing-Yang Yao | Display method of on-screen keyboard and computer program product and non-transitory computer readable storage medium thereof |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5572074B2 (en) * | 2010-11-30 | 2014-08-13 | 富士通コンポーネント株式会社 | KVM device |
TW201310247A (en) * | 2011-08-17 | 2013-03-01 | Magic Control Technology Corp | Media sharing device |
JP6289850B2 (en) * | 2013-09-30 | 2018-03-07 | 日本電産サンキョー株式会社 | Information processing system and information processing method |
JP6388816B2 (en) * | 2014-10-28 | 2018-09-12 | 富士通コンポーネント株式会社 | KVM switch |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5786809A (en) * | 1993-05-12 | 1998-07-28 | Ryzhov; Vladimir Alexandrovich | Method of entry of symbolic information into computer system |
US5844547A (en) * | 1991-10-07 | 1998-12-01 | Fujitsu Limited | Apparatus for manipulating an object displayed on a display device by using a touch screen |
US5905914A (en) * | 1992-09-17 | 1999-05-18 | Kabushiki Kaisha Toshiba | Portable computer having dedicated register group and peripheral controller bus between system bus and peripheral controller |
US6081266A (en) * | 1997-04-21 | 2000-06-27 | Sony Corporation | Interactive control of audio outputs on a display screen |
US6326953B1 (en) * | 1998-06-24 | 2001-12-04 | Microsoft Corporation | Method for converting text corresponding to one keyboard mode to text corresponding to another keyboard mode |
US20020071421A1 (en) * | 2000-12-12 | 2002-06-13 | Elan Microelectronics Corporation | Method and system for data loss detection and recovery in wireless communication process |
US6429793B1 (en) * | 1998-12-03 | 2002-08-06 | International Business Machines Corporation | Abstraction of input mapping for keyboards |
US6456277B1 (en) * | 1999-03-02 | 2002-09-24 | International Business Machines Corporation | Data conversion method used between different types of keyboards |
US6492961B1 (en) * | 1994-12-05 | 2002-12-10 | Tietech Corporation | Image forming device and touchless display switch |
US20030065864A1 (en) * | 2001-10-03 | 2003-04-03 | Dell Products L.P. | System and method supporting remote data processing system management |
US6686904B1 (en) * | 2001-03-30 | 2004-02-03 | Microsoft Corporation | Wheel reporting method for a personal computer keyboard interface |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0664511B2 (en) * | 1985-09-28 | 1994-08-22 | 富士通株式会社 | Dual-purpose keyboard encoder |
JPH06289971A (en) | 1993-03-31 | 1994-10-18 | Yokogawa Electric Corp | Key input controller |
JP2004164673A (en) * | 1996-11-07 | 2004-06-10 | Hitachi Ltd | Switching device |
JPH11134098A (en) * | 1997-10-24 | 1999-05-21 | Nec Corp | Keyboard system |
EP0975183A1 (en) * | 1998-07-20 | 2000-01-26 | Alcatel | Method, telecommunication system, and processor device |
JP3389200B2 (en) * | 2000-05-23 | 2003-03-24 | 九州日本電気ソフトウェア株式会社 | Keyboard / mouse sharing control method |
JP2002091654A (en) * | 2000-09-11 | 2002-03-29 | Canon Inc | Information processor and method for controlling the same |
-
2005
- 2005-08-15 JP JP2005235216A patent/JP4611147B2/en not_active Expired - Fee Related
-
2006
- 2006-08-14 US US11/503,166 patent/US8001173B2/en not_active Expired - Fee Related
-
2011
- 2011-07-12 US US13/181,088 patent/US8346948B2/en not_active Expired - Fee Related
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5844547A (en) * | 1991-10-07 | 1998-12-01 | Fujitsu Limited | Apparatus for manipulating an object displayed on a display device by using a touch screen |
US5905914A (en) * | 1992-09-17 | 1999-05-18 | Kabushiki Kaisha Toshiba | Portable computer having dedicated register group and peripheral controller bus between system bus and peripheral controller |
US5786809A (en) * | 1993-05-12 | 1998-07-28 | Ryzhov; Vladimir Alexandrovich | Method of entry of symbolic information into computer system |
US6492961B1 (en) * | 1994-12-05 | 2002-12-10 | Tietech Corporation | Image forming device and touchless display switch |
US6081266A (en) * | 1997-04-21 | 2000-06-27 | Sony Corporation | Interactive control of audio outputs on a display screen |
US6326953B1 (en) * | 1998-06-24 | 2001-12-04 | Microsoft Corporation | Method for converting text corresponding to one keyboard mode to text corresponding to another keyboard mode |
US6429793B1 (en) * | 1998-12-03 | 2002-08-06 | International Business Machines Corporation | Abstraction of input mapping for keyboards |
US6456277B1 (en) * | 1999-03-02 | 2002-09-24 | International Business Machines Corporation | Data conversion method used between different types of keyboards |
US20020071421A1 (en) * | 2000-12-12 | 2002-06-13 | Elan Microelectronics Corporation | Method and system for data loss detection and recovery in wireless communication process |
US6686904B1 (en) * | 2001-03-30 | 2004-02-03 | Microsoft Corporation | Wheel reporting method for a personal computer keyboard interface |
US20030065864A1 (en) * | 2001-10-03 | 2003-04-03 | Dell Products L.P. | System and method supporting remote data processing system management |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070220087A1 (en) * | 2006-03-17 | 2007-09-20 | Alcor Micro, Corp. | System for the sharing of electronic peripheral equipments |
US20090144468A1 (en) * | 2007-12-03 | 2009-06-04 | Avocent Corporation | Method and system for reducing multiple keystroke output |
US8134482B2 (en) * | 2007-12-03 | 2012-03-13 | Avocent Corporation | Method and system for reducing multiple keystroke output |
US20100318717A1 (en) * | 2009-06-16 | 2010-12-16 | International Business Machines Corporation | Status information saving among multiple computers |
US8271704B2 (en) * | 2009-06-16 | 2012-09-18 | International Business Machines Corporation | Status information saving among multiple computers |
US8793414B2 (en) | 2009-06-16 | 2014-07-29 | International Business Machines Corporation | Status information saving among multiple computers |
US9229658B2 (en) | 2009-06-16 | 2016-01-05 | International Business Machines Corporation | Status information saving among multiple computers |
US20170315627A1 (en) * | 2016-04-29 | 2017-11-02 | Bing-Yang Yao | Display method of on-screen keyboard and computer program product and non-transitory computer readable storage medium thereof |
CN107479717A (en) * | 2016-04-29 | 2017-12-15 | 姚秉洋 | Display method of on-screen keyboard and computer program product thereof |
US10452155B2 (en) * | 2016-04-29 | 2019-10-22 | Bing-Yang Yao | Display method of on-screen keyboard and computer program product and non-transitory computer readable storage medium thereof |
TWI695307B (en) * | 2016-04-29 | 2020-06-01 | 姚秉洋 | Method for displaying an on-screen keyboard, computer program product thereof and non-transitory computer-readable medium thereof |
Also Published As
Publication number | Publication date |
---|---|
JP2007052480A (en) | 2007-03-01 |
JP4611147B2 (en) | 2011-01-12 |
US8001173B2 (en) | 2011-08-16 |
US20110270961A1 (en) | 2011-11-03 |
US8346948B2 (en) | 2013-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8346948B2 (en) | Information processing apparatus, selector, remote operation system, scan code transmission method, and program product therefor | |
US8407380B2 (en) | Remote operation system | |
US7873764B2 (en) | Switch with enhanced human interface device support | |
WO2008048035A1 (en) | Apparatus and method for preservation of usb keyboard | |
US10156917B2 (en) | Input apparatus and controlling method thereof | |
US20120268650A1 (en) | System and method for a thin-client terminal system using a serial bus | |
US10255426B2 (en) | Keyboard device and data communication method using the same | |
US8862683B2 (en) | KVM switch and KVM system | |
US7337225B2 (en) | Information processing apparatus, its control method, and program | |
JP4669466B2 (en) | Information processing apparatus, application installation method, and program | |
US20190391670A1 (en) | Terminal control method, system and setting adaptation apparatus | |
US10263956B2 (en) | Physical level-based security system for data security of security terminal and method using the same | |
US20040064199A1 (en) | Information processing apparatus, control method, program, and storage medium | |
US8074001B2 (en) | Information processing apparatus, KVM switch, remote system, and computer readable storage medium | |
JP2006244286A (en) | Log-in information processing system, log-in information processing method, and log-in information processing program | |
US7502729B2 (en) | Emulating different country keyboards for controlling a remote computer over a network | |
JP2012084082A (en) | Image forming device, information processing method and program | |
JP2007004656A (en) | Server device, method and program | |
CN111695167A (en) | Wireless mouse device and information transmission method thereof | |
JP2002169632A (en) | Switch, switching method and computer system therefor | |
TWI810895B (en) | Remote operating method of human-machine interface, and remote operating system for using the same | |
KR101374801B1 (en) | Usb keyboard apparatus and method capable of supporting n-key rollover with bios compatibility | |
US20060218255A1 (en) | A method for operating a computer system | |
US20120166570A1 (en) | Operation and control methods for host apparatus | |
RU2447491C1 (en) | Device and method for computer control via remote access networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: FUJITSU COMPONENT LIMITED, JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MATSUNAGA, AKIHIRO;FUJITA, KENICHI;KATAYAMA, SHINICHI;REEL/FRAME:018225/0753 Effective date: 20060807 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20190816 |