This invention relates generally to networked computer system administration and management, software services, application solutions and data replication management directed to data handling programs, such as event monitoring in software management applications, data mining, pattern recognition, data analysis, data transcoding and data conversion operating in various operating system environments including Windows/PC and UNIX operating systems. More particularly, this invention relates to communications between and control of sets of sub displays and/or network computer displays configurable into a contiguous multi-display for use in the areas of storage management and optimization, reliability analysis and hardware configuration services. This invention can be applied to any system running any service provider application and/or operating system.
IBM® is a registered trademark of the International Business Machines Corporation, Armonk, N.Y., U.S.A. Other names used herein may be trademarks and registered trademarks, or trade or product names of International Business Machines Corporation or other companies.
Often a computer user is required to control multiple computers and/or machines with a single input device or a set of input devices, such as a mouse and a keyboard. Often a computer system is designed to provide a single output device for a user interface, such as a single display screen. Such configurations require a switch that the user toggles so as to switch the interface, such as the input or output device from one machine to another machine. A known switch, such as a keyboard/video/mouse (KVM) switch, can be used to switch the interface. The problem of controlling multiple displays with a single user interface is common to environments where a single user or administrator must use or maintain a large number of computers. For example, in an environment employing server farms, a single administrator must select from a large number of machines to administer at one time. In high technology and/or scientific work environments, a user may have two or more machines, one can be a more advanced multi-core workstation computer, another could be a massively parallel host computer for running experiments and/or simulations and/or performing intensive calculations and another machine can be used for performing day-to-day inter and intra-office communications, such as drafting e-mail communications or performing word processing tasks or creating spreadsheets. In any of these environments, including the routine office environment or the high technology and/or scientific environments, it is often desirable for the user to switch from one machine to another in order to perform various tasks. It is difficult to control two or more computers and switch seamlessly between the user interfaces of the two or more computers (i.e., switching between one computer's user interface to another computer's user interface). Known ways of accomplishing this include the user physically changing switch positions of a switch and switching from using one machine to using a different terminal containing all of the elements of the user interface devices, such as a keyboard, video monitor and/or mouse in duplicate. An alternative approach would be for the user to physically toggle a hardware switch, such as the KVM switch or an ABC switch box. Another approach includes positioning a laptop computer (which has its own monitor assembled as part of the laptop computer) next to a stand along desktop monitor, where a single operating system on the laptop computer is configured to control the stand alone desktop monitor, as well as the monitor assembled in the laptop computer. Thus, known systems are available for configuring a single machine running a single instance of a Windows operating system to produce video output to two displays. An application running in this operating system (such as Windows Remote Desktop Connection) may provide a user the ability to display another computer's user interface within the confines of this second display with an appropriate configuration of these components. These approaches require the computer user to break concentration and perform the transitioning task, i.e., switching from one machine to another machine manually or are limited to controlling one machine or one machine running an application that replicates the user interface from another machine configured by the user to exploit two displays.
Therefore, the need exists for a solution for computer users who want to use multiple computer implemented machines at the same time by redirecting a computer user interface from one computer implemented machine to another computer implemented machine by seamlessly switching control of each of the multiple computer implemented machines without breaking concentration or toggling a switch physically or having the computer user relocating physically from one position to another position or from one computer to another computer or using different user interfaces in order to control the multiple computers. Further, the need exists for providing a computer user with a trans-machine operating system capability by providing a unified and seamless user-interface to the user who is responsible for controlling multiple computer implemented machines.
A method of controlling a first computer and a second computer comprising using a seamless user interface (such as a network interface, and/or a device driver, and/or a user interface, and/or a network node or an input/output interface of a plurality of interfaces, drivers or nodes) in a computer implemented system is accomplished by the operations of receiving, in an input switch, a first plurality of signals from the first computer and/or the second computer. In the exemplary embodiment, a cursor state monitor provides an indication of, for at least one signal of the first plurality of signals, the current position state of display and movement, i.e., moving and/or positioning of a cursor being rendered and displayed on either a first computer display screen or a second computer display screen. The first computer display screen and the second computer display screen are communicatively coupled to the first computer and the second computer respectively. The input switch may be an input switch module that resides in and/or is included in a network node or may be included in a computer. The input switch may be a programmable computer implemented switch module and receives a first input signal of the second plurality of signals from the one or more input devices, conveying cursor movement on a display screen. The first input signal from the second plurality of signals is relayed to either an application or operating system or display driver responsible for rendering the display properties of the cursor, in regard to the first or second computer display screens, in regard to an application running on the first computer or the second computer, i.e., a first application or a second application. The use of two displays is thus inherent to this exemplary embodiment and does not require user configuration. These signals are relayed to the standard and network computer systems, over a computer network to the standard, and network computers which render the information on the standard and network display screens respectively. The first input signal causes the cursor to change a current position state of display on either the first computer display screen or the second computer display screen (i.e., back and forth from either the first computer display screen to the second computer display screen or then back from the second computer display screen to the first computer display screen) and simultaneously causes the cursor to move in a plurality of directions and over a plurality of distances on either the first computer display screen or the second computer display screen. The programmable computer implemented switch module relays one or more signals simultaneously either causing display of movement and/or positioning of the cursor on the second computer display screen, when the switch position of the input switch changes to communicatively connect to the second device driver or simultaneously displaying the cursor on the first computer display screen when the switch position of the input switch changes to connect to the first device driver. The input switch transmits a third plurality of signals from the one or more input devices to control application programs executing on either the first computer or the second computer, when the switch position of the input switch changes to communicatively connect to either the first device driver or the second device driver respectively; thus the position of the input switch throw may be used to determine that the current position state of display of the cursor reaches predetermined boundaries in or between the first computer display screen and the second computer display screen of a plurality of machines. However, it is worth noting that boundaries between display screens may not exist explicitly in the controlling software. The one or more input devices can be communicatively coupled to either the first device driver or the second device driver through the third device driver, when the switch position of the programmable computer implemented switch module changes to communicatively connect to either the first device driver or the second device driver respectively. The first computer display screen and the second computer display screen and/or a plurality of additional computer display screens can be configured to form a multi-display, which comprises low resolution sub displays and/or network computer displays in combination with one or more full resolution displays, which can be standard display screens.
The subject matter that is regarded as the invention is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The foregoing and other objects, features, and advantages of the invention are apparent from the following detailed description taken in conjunction with the accompanying drawings, which are meant to be exemplary, and not limiting, wherein:
The disclosed exemplary embodiments are intended to be illustrative only, since numerous modifications and variations therein will be apparent to those of ordinary skill in the art. In reference to the drawings, like numbers will indicate like parts continuously throughout the view. Further, the terms “a”, “an”, “first”, “second” and “third” herein do not denote limitations of quantity, but rather denote the presence of one or more of the referenced item(s).
In exemplary embodiments, a controlling multiple machines system 100 (herein referred to as the “system 100”, illustrated in
Further, in exemplary embodiments, a controlling multiple machines system 300 (herein referred to as the “system 300”, illustrated in
In the exemplary embodiments, the controlling multiple machines' systems and methods such as the system 100, the method 200, the system 300 and the method 400 can be implemented in software (e.g., firmware), hardware or a combination of both. According to exemplary embodiments, the method 200 (as illustrated in
In the exemplary embodiments, such general purpose digital computers and/or processors may be a hardwired device or devices for executing software including software stored in the memory 176 (as illustrated in
In the exemplary embodiments, the memory 176 may include any one of and/or combination of volatile memory elements, including random access memory (i.e., including RAM, DRAM, SRAM and/or SDRAM) and non-volatile memory elements including read only memory (i.e., ROM, erasable programmable read only memory, electronically erasable programmable read only memory EEPROM, programmable read memory PROM, and/or compact disc read only memory CD-ROM or FLASH memory), memory stick, magnetic tape, disk, diskette, cartridge, cassette and/or optical memory. The memory 176 can have an architecture where various components are situated remotely from one another, but can be accessed by the general purpose digital computers, such as the first and second computers 160A and 160B (as illustrated in
In the exemplary embodiments, the system 100 and the system 300, when implemented in hardware, can each include discrete logic circuits having logic gates for implementing logic functions upon data signals.
In the exemplary embodiments, an at least one input device used by a user, (such as the input device 180) can be at least one of a mouse, a keyboard, a touch screen, a joystick, a thumbwheel, a light pen wand, or a microphone.
In the exemplary embodiments, the input switch (such as the input switch 172) may be a programmable computer implemented switch module, or a switch that has the ability to receive signals, but which is not programmable, and the input switch 172 need not be implemented with a computer in order for the invention to be realized or the input switch 172 may be incorporated in a network node (such as network node 170, illustrated in
In the exemplary embodiments, the first computer display 110A and the second computer display 110B (as illustrated in
In the exemplary embodiments (referring to
In the exemplary embodiments, a device driver (such as device drivers 140A, 140B, 140BC and 140D) may be defined as a device and/or module used to accomplish a described functionality of the method of controlling multiple machines using a seamless user interface to a multi-display system (such as a system 100 and/or a system 300), where multiple machines may include parallel architecture systems having multi-displays configured from a plurality of contiguous sub displays (i.e., where the plurality of contiguous sub displays can be network computer displays, (such as a first network computer display 301B and/or a second network computer display 301C) in a parallel hardware system involving multi-machine management/use systems, multiple human interface front of screen display configurations and user input devices (such as the input device 180). Therefore, the use of the term device driver is expanded beyond the traditional meaning of that of an extension to an operating system. Furthermore, where a device drive (such as the device driver 140A, 140B, 140BC and/or device driver 140D) is described as controlling a stand alone input switch (such as the input switch 172), it necessarily suggests that the input switch 172 possesses an operating system; however, the input switch 172 may or may not posses an operating system. Thus, in the exemplary embodiments, where the input switch 172 may have no device driver, the input switch 172 merely serves as a relay, relaying signals from input devices (such as input device 180) to device drivers (such as device drivers 140A, 140B, 140BC and device driver 140D).
In the exemplary embodiments, a user of any of the multi-display computer systems using the input device 180, moves the cursor through the plurality of network computer system display screens (such as the first computer display 110A, the second computer display 110B, the standard display screen 301A, the first network computer display 301B and the second network computer display 301C) any of which may operate at resolutions lower than the full resolution display or may operate as the full resolution display and the user using the input device 180 may select an at least one of the plurality of computer display screens, where selecting the at least one of the plurality of computer display screens causes an output of the at least one of the plurality of computer display screens to be input to and displayed on the full resolution display, where selecting includes one or more of simply clicking and right clicking and highlighting and zooming on an image in the at least one of the plurality of network computer display screens, and where the output is a real-time image.
In the exemplary embodiments, the functionality of the first computer 160A and/or the second computer 160B and/or the first network computer 310A and/or the functionality of the second network computer 310BC may be rendered in a single network computer system. In the exemplary embodiments, the multi-displays are not derived from the network continuously (i.e., the components are not representations of network computer displays), but instead may be simply icons, text, and/or static data conveyed over the network during setup, or during periodic samples of the displays.
In the exemplary embodiments, input switch (which may include a programmable computer implemented switch module) may receive, from a third device driver (such as the device driver 140D) a second plurality of signals via one or more input devices. The third device driver is communicatively coupled to the input switch 172, as described by the programmable computer implemented switch module; and the one or more input devices (such as the input device 180) may be communicatively coupled to the third device driver 140D. The term(s) communicatively coupled and/or communicatively connected may be defined as, but not limited to local, i.e., internal, as well as external physical interface connectivity allowing communications between modules; for example, one or more buses or other wired or wireless connections, as is known in the art. The interface(s) may have additional elements, which are omitted for simplicity, such as controllers, buffers (caches), drivers, repeaters, and receivers, contacts and leads to enable communications. Further, the interface(s) (such as user interfaces) may include address, control, and/or data connections to enable appropriate communications among the aforementioned components.
Referring to
In the first exemplary embodiment, referring again to
Upon activation, the program 178 performs other operations of the method 200 from selection signals received from the input device 180, causing the program 178 to be executed by a plurality of computers, such as the first computer 160A and the second computer 160B to perform the operations of the method 200 of controlling multiple machines by causing a cursor to move seamlessly between a plurality of computer display screens such as the first computer display 110A and/or the second computer display 110B of the plurality of computer display screens.
Again, referring to
In the first exemplary embodiment, illustrated in
Again referring to the first exemplary embodiment (illustrated in
In the first exemplary embodiment, at an operation receiving an input signal from the second plurality of signals 240 (hereafter referred to as the “operation 240”), the program 178, containing the method 200, executed on the system 100, causes the method 200 to instruct the input switch 172 to receive a first input signal of the second plurality of signals from the one or more input devices (such as the input device 180). The first input signal is either one or more of an x-signal and/or a y-signal, conveying either movement of a mouse or some other type of input device (such as input device 180) and/or cursor movement on a display screen (such as the first and second computer displays 110A and 110B) The x-signal and the y-signal representations are not limiting; thus, other coordinate notations systems may be used to represent operational coordinates in the exemplary embodiment. The first input signal from the second plurality of signals is relayed to either a first application or operating system or display driver responsible for rendering the display properties, such as the cursor and/or cursor position of the first computer display screen or a second application or operating system or display driver responsible for rendering the display properties, such as the cursor and/or cursor position of the second computer display screen, where the first and second applications can be applications such as an application 150A and an application 150B, and where the program 178, containing the method 200, executed on the system 100, causes the method 200 to cause the position data to change automatically for a cursor associated with a first display (such as the first computer display 110A), while the cursor moves in its rendering on the second display, (such as the second computer display 110B). These signals are relayed over the network to the standard and/or network computer systems (such as the first computer 160A and/or the second computer 160B, which render the information on the standard and/or network display screens (such as the first computer display 110A and the second computer display 110B respectively. As determined by the program 178, the first input signal causes the cursor to change a current position state of display on the display screens of either the first computer display 110A and/or the second computer display 110B (i.e., back and forth from either the first computer display 110A to the second computer display 110B or then back from the second computer display 110B to the first computer display 110A) and simultaneously causes the cursor to move in a plurality of directions and traversing a plurality of distances on either the first computer display 110A or the second computer display 110B.
In the first exemplary embodiment, at an operation changing a switch position 250 (hereafter referred to as the “operation 250”), the program 178 causes the method 200 to instruct the input switch 172 (resulting from the first input signal) to cause the cursor to change a current position state of display on the display screens of either the first computer display 110A or the second computer display 110B (i.e., back and forth from either the first computer display 110A to the second computer display 110B or then back from the second computer display 110B to the first computer display 110A) and simultaneously causes the cursor to move in a plurality of directions and a plurality of distances on either the first computer display 110A or the second computer display 110B, depending on the actual switch position of the switch throw of input switch 172 (in
In the first exemplary embodiment, at operation displaying the cursor on either the first or second display depending on the changed switch position 260 (hereafter referred to as the “operation 260”), the program 178 causes the method 200 to instruct the input switch 172 to relay one or more signals simultaneously either causing display of movement and/or positioning of the cursor on the second computer display screen (such as the second computer display 110B), when the switch position of the input switch 172 changes to communicatively connect to the second device driver or simultaneously displaying the cursor on the first computer display screen (such as the first computer display 110B), when the switch position of the input switch 172 changes to connect to the first device driver, such as the device driver 140A. The input switch 172 transmits a third plurality of signals from the one or more input devices (such as the input device 180) to control application programs (such as the applications 150A and 150B) executing on either the first computer 160A or the second computer 160B respectively, when the switch position of the input switch 172 changes to communicatively connect to either the first device driver (such as device driver 140A) or the second device driver (such as the device driver 140B) respectively, corresponding to the transmitted signals in this transmitting operation. The one or more input devices (such as the input device 180) can be communicatively coupled to either the first device driver or the second device driver through the third device driver, when the switch position of the programmable computer implemented switch module changes to communicatively connect to either the first device driver (such as device driver 140A) or the second device driver (such as device driver 140B) respectively. The first computer display 110A and the second computer display 110B and/or a plurality of additional computer display screens can be configured to form a multi-display; thus, the position of the throw of the input switch 172 may be used to determine that the current position state of display of the cursor reaches a predetermined boundary in the first computer display 110A and the second computer display 110B.
In the first exemplary embodiment, at an operation return/end 270, the program 178 causes the method 200 to either return to any one or more of operations 220 through 260 to continue processing or to end the processing of said operations of the method 200.
In a second exemplary embodiment, referring to
In the second exemplary embodiment, again referring to
Upon activation, the program 178 performs other operations of the method 400 from selection signals received from the input device 180, causing the program 178 to be executed by a plurality of computers, such as the first network computer 310A, and the second network computer 310BC, to perform the operations of the method 400 of controlling multiple machines by causing a cursor to move seamlessly between a plurality of computer display screens such as the standard display screen 301A and/or the first network computer display 301B and/or the second network computer display 301C of the plurality of computer display screens.
In the second exemplary embodiment, referring again to
In the second exemplary embodiment, a cursor state monitor (such as a cursor state monitor 120A and/or a cursor state monitor 120BC) provides an indication, (for an at least one signal of the first plurality of signals) of the current position state of display and movement and/or positioning of a cursor being rendered and displayed on either the standard display screen 301A, the first network computer display 301B and/or the second network computer display 301C. The standard display screen 301A is communicatively coupled to the first network computer 310A. The first network computer display 301B and the second network computer display 301C are communicatively coupled to the second network computer 310BCB.
Again referring to the second exemplary embodiment (illustrated in
In the second exemplary embodiment, at an operation receiving an input signal from the second plurality of signals 440 (hereafter referred to as the “operation 440”), the program 178 causes the method 400 to instruct the input switch 172 to receive a first input signal of the second plurality of signals from the one or more input devices (such as the input device 180). The first input signal is either one or more of an x-signal and/or a y-signal, conveying either movement of a mouse or some other type of input device and/or cursor movement on a display screen. However, the movements of a mouse or other input device, may be represented by other coordinate notation systems. The first input signal from the second plurality of signals is relayed to either a first application or operating system or display driver responsible for rendering the display properties, such as the cursor and/or cursor position of the first computer display screen or a second application or operating system or display driver responsible for rendering the display properties, such as the cursor and/or cursor position of the second computer display screen, and where position data change automatically for a cursor associated with a first display (such as the standard display screen 301A), while the cursor moves in its rendering on the second or third display, (such as the first network computer display 301B and/or the second network computer display 301C respectively).
In the second exemplary embodiment, referring to
In the second exemplary embodiment, referring to
In the second exemplary embodiment, at an operation changing a switch position 450 (hereafter referred to as the “operation 450”), the program 178 causes the method 400 to instruct the input switch 172 (resulting from the first input signal) to cause the cursor to change a current position state of display on the display screens of either the standard display screen 301A and/or the first network computer display 301B and/or the second network computer display 301C (i.e., back and forth from either the standard display screen 301A to the first network computer 310A and/or the second network computer 310BC and simultaneously causes the cursor to move in a plurality of directions and cover/traverse a plurality of distances on either the standard display screen 301A and/or the first network computer 310A and/or the second network computer 310BC, depending on the actual switch position of the switch throw of input switch 172 (in
In the second exemplary embodiment, at operation displaying the cursor on either the first or second network display and/or the standard display depending on the changed switch position 460 (hereafter referred to as the “operation 460”), the program 178 causes the method 400 to instruct the input switch 172 to relay one or more signals simultaneously either causing display of movement and/or positioning of the cursor on the second network computer display 301C, or the first network computer display 301B, when the switch position of the input switch 172 changes to communicatively connect to the second device driver 140BC or simultaneously displaying the cursor on the standard display screen 301A when the switch position of the input switch 172 changes to connect to the first device driver 140A. The input switch 172 transmits a third plurality of signals from the one or more input devices (such as input device 180) to control application programs (such as applications 150A and/or Applications 150BC) executing on either the first computer or the second computer respectively, when the switch position of the input switch 172 changes to communicatively connect to either the first device driver 140A or the second device driver 140BC respectively. The one or more input devices (such as the input device 180) can be communicatively coupled to either the first device driver 140A or the second device driver 140BC through the third device driver 140D, when the switch position of the input switch 172 changes to communicatively connect to either the first device driver 140A or the second device driver 140BC respectively.
In the second exemplary embodiment, referring to
In the second exemplary embodiment, at an operation zooming on a network image by highlighting a low resolution network image and displaying a full resolution version 470 (hereafter referred to as “the operation 470”), the program 178 receives the selecting signal from the input device 180 and where the selecting the at least one of the plurality of network display computer display screens causes the program 178 to provide an output via one of the device drivers (such as the device driver 140A or the device driver 140D or the device driver 140BC) of the at least one network image displayed on at least one of the plurality of network display computer display screens to be input to and displayed as a full resolution network image version of the low resolution network image on the full resolution display (such as the standard display screen 301A), where selecting may include one or more of simply clicking and/or right clicking and/or highlighting and/or zooming on an image in the at least one of the plurality of network display computer screens and/or sub displays and/or multi-displays (such as the first network computer display 301B and the second network computer display 301C), and where the output is a real-time image.
In the second exemplary embodiment, at an operation return/end 480, the program 178 causes the method 400 to either return to any one or more of operations 420 through 460 to continue processing or to end the processing of said operations of the method 400.
In the exemplar embodiments, the program 178 can operate to cause the methods 200 and 400 respectively to return to any one or more of operations 220 through 260 and operations 420 through 470 to continue iteratively processing and performing any one or more of said operations until the it is determined that the operations are completed where the program 178 can direct the methods 200 and/or 400 to end.
The exemplary embodiments can be carried out in the form of computer-implemented processes, apparatuses and computer-readable media (or a computer-readable medium) for practicing those processes. In the exemplary embodiments, the invention is practiced using computer program code executed by one or more network elements.
While the disclosure has been described with reference to exemplary embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted for elements thereof, without departing from the scope of the disclosure. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the disclosure without departing from the essential scope thereof For example, all of the claimed embodiments may apply to configurations of more than one computer system. Therefore, it is intended that the disclosure not be limited to the particular exemplary embodiment and/or embodiments disclosed as the best mode contemplated for carrying out this disclosure, but that the disclosure will include all embodiments falling within the scope of the appended claims.