A multi-host data processing network and associated method are disclosed. The network includes a local host, a remote host, and a terminal including a display, a keyboard, and a pointing device. A display server associated with a user of the terminal is present on the local host. The display server enables the user to execute GUI applications on local and remote hosts from the terminal via a display server authorization mechanism. The network is configured to enable the user to execute a command entered at the terminal on the remote host using the display server as an intermediary. In one embodiment, the local host includes a client application and the remote host includes a daemon process, wherein the client application is enabled to receive the command from the user and the daemon process is configured to retrieve and execute the command. The daemon process may be configured to monitor changes to a special purpose property of the display server and the client application may be configured to alter the special purpose display server property upon receiving the command from the user. The daemon process may be configured to open a display server window and to store a window id of the display server window as the value of the display server property. The client application may be configured to change the display server property to zero or another suitable value upon receiving the command. The client application may be enabled to transfer the command to a clipboard associated with the display server window. The daemon process may be enabled to retrieve the command from the clipboard upon detecting a change to the special purpose display server property.
|
8. A method of executing a shell command on a remote host, comprising:
creating a first window with a first process;
storing an id associated with the first window as a property of a display server;
monitoring for alterations in the display server property with the first process;
entering a command string via a client application, wherein, upon receiving the command string, the client application is configured to store the command string in a clipboard associated with the first window and to alter the display server property; and
upon detecting the alteration in the display server property, retrieving the command string from the clipboard and executing the command string as a shell command on the remote host.
4. A distributed network windowing system computer program product enabling remote execution in a data processing network including a local host and a remote host, the computer product comprising:
a display server on the local host, wherein the display server enables a user of a display terminal connected to the network to invoke local and remote GUI applications;
a client application on the local host connected to the display server and configured to receive a command string and, upon receiving the command string, to paste the command string to a clipboard; and
a daemon process on the remote host configured to retrieve the command sting from the clipboard and further configured to execute the command string as a shell command on the remote host.
1. A multi-host data processing network including a local host and a remote host, comprising:
a terminal including a display a keyboard, and a pointing device;
a display server on the local host associated with a user of the terminal, wherein the display server enables the user to execute GUI applications on the local and remote hosts from the terminal via a display server authorization mechanism; and
wherein the network is configured to enable the user to execute a text string entered at the terminal as a shell command on the remote host via the display server;
wherein the local host includes a client application and the remote host includes a daemon process, wherein the client application is enabled to receive the text string from the user and the daemon process is configured to retrieve the text string and execute the text string as the shell command;
wherein the daemon process is configured to monitor changes to a property of the display server, and further wherein the client application is configured to alter the display server property upon receiving the text string.
2. The network of
3. The network of
5. The computer program product of
6. The computer program product of
7. The computer program product of
9. The method of
11. The method of
12. The method of
13. The method of
14. The method of
15. The method of
17. The computer program product of
|
1. Field of the Present Invention
The present invention generally relates to the field of data processing networks and more particularly to a network windowing system and method enabling a user to execute commands on a remote host.
2. History of Related Art
In a heterogeneous UNIX® (registered trademark of Unix System Laboratories, Inc.) operating system environment, it is frequently necessary or desirable to run an application that resides on a remote host from a local host. Typically, however, authorization mechanisms permitting access to the remote machine are an impediment to executing commands remotely. In a common arrangement of a multi-hosted UNIX® based network, local and remote hosts are interconnected via a network. Various systems such as the X Window System provide utilities that enable a user to manipulate local and remote graphical user interface (GUI) applications, but these systems do not currently incorporate the ability to execute command strings on remote machines. It would therefore be desirable to implement a system that enabled a user to execute command strings on remote machines. It would be further desirable if the implemented solution leveraged from existing systems to the greatest extent possible and did not require substantial programming modifications.
The problem identified above is addressed by a multi-host data processing network and associated method. The network includes a local host, a remote host, and a terminal including a display, a keyboard, and a pointing device. A display server associated with a user of the terminal is present on the local host. The display server enables the user to execute GUI applications on local and remote hosts from the terminal via a display server authorization mechanism. The network is configured to enable the user to execute a command entered at the terminal on the remote host using the display server as an intermediary. In one embodiment, the local host includes a client application and the remote host includes a daemon process, where the client application is enabled to receive the command from the user and the daemon process is configured to retrieve and execute the command. The daemon process may be configured to monitor changes to a special purpose property of the display server and the client application may be configured to alter the special purpose display server property upon receiving the command from the user. The daemon process may be configured to open a display server window and to store a window id of the display server window as the value of the display server property. The client application may be configured to change the display server property to zero or another suitable value upon receiving the command. The client application may be enabled to transfer the command to a clipboard associated with the display server window. The daemon process may be enabled to retrieve the command from the clipboard upon detecting a change to the special purpose display server property.
Other objects and advantages of the invention will become apparent upon reading the following detailed description and upon reference to the accompanying drawings in which:
While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the drawings and detailed description presented herein are not intended to limit the invention to the particular embodiment disclosed, but on the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the present invention as defined by the appended claims.
Turning now to the drawings,
As depicted in
Typically, a multiple user windowing system such as the X Window System requires that each user have access privileges. In the case of the X Window System, local and remote user access is granted to the end user via xauthorization or, less typically, via xhost or ICE. In the case of xauthority, a machine readable code is generated and placed in a file called “Xauthority” of the user's home directory at login. This code, commonly referred to as the magic cookie, is also told to X Server 101. The magic cookie is comparable to a password known only to X Server 101 and a user who has logged in (although the user does not have to actually type the magic cookie at any point). Once the magic cookie is established for a given X session, a client application must present the code to X Server 101 to connect to the server. The client obtains the code by reading the Xauthority file in the user's home directory.
Although X Server 101 is able to connect to local and remote GUI applications via the Xauthority access mechanism, it is still typically necessary for some additional form of authorization to enable a user of terminal 110 to execute a command on a remote system. Typically, before a user of terminal 110 can access the desktop of remote host 202 to invoke applications 204, 206, or 209, the user must telnet over to (or otherwise log into) remote host 202. The telnet authorization is almost always independent of the X Window System login sequence and thus presents an undesirable additional layer of complexity to achieve interoperability between local host 102 and remote host 202. The present invention contemplates a user from one host on the network executing commands and running applications on another host based on the user's access permission to the X Server (i.e., based on the user's Xauthority authorization). Since Xauthority grants access on a per user and pre session basis using a variety of configurable security identification mechanisms, Xauthority should provide adequate access control over the network. Leveraging this security mechanism to enable remote execution can be achieved with little additional infrastructure.
Referring again to
Referring now to
When a user wishes to execute a command on remote host 202, the user invokes xthere client 107 through any various means depending upon the specific implementation of xthere process 107. In an embodiment in which xthere application is implemented as a GUI application, the user may invoke xthere client 107 by clicking on xthere icon on the desktop of local host 102. Once activated, xthere client 107 is configured to receive input from the user. In one embodiment, for example, xthere client 107 presents the user with a text box and waits for the user to enter a text string. Upon receiving an input string from the user, xthere client 107 forwards the received string to remote host 202 for execution by xhered process 210. In one embodiment, the user entered string is transferred to remote process by means of a clipboard facility. In the X Window System, each window is associated with a Motif clipboard. Details of Motif clipboards for use in conjunction with an X Window System are available in D. Heller, Motif Programming Manual, Chapter 18 (O'Reilly & Associates 1991).
In one embodiment, xthere client 107 retrieves the window id 302 associated with xhered process 210 from COMMAND RENDEZVOUS property 304 and posts the string entered by the user to a Motif clipboard 306 associated with window 300. After posting the text string to clipboard 306, xthere client 107 signals xhered process 210 that a user entered string is available in the clipboard. In one embodiment, xthere client 107 signals xhered process 210 by resetting the value in COMMAND RENDEZVOUS property 304 to a value such as zero. Because xhered process is monitoring for alterations to COMMAND RENDEZVOUS property 304, the resetting of COMMAND RENDEZVOUS property 304 by xthere 107 is used to trigger action by xhered process 210. In one embodiment, xhered process 210 upon detecting an alteration to COMMAND RENDEZVOUS property 304, knows that a string is available in its clipboard 306. In such an embodiment, xhered process 210 is configured to retrieve the user entered string from clipboard 306 upon detecting an alteration or modification of COMMAND RENDEZVOUS property 304.
In one embodiment, the text strings entered by the user are tagged as Bourne shell formatted commands when they are stored in clipboard 306. In this embodiment, xhered process 210, upon detecting an alteration of COMMAND RENDEZVOUS property 304, retrieves string from clipboard 306 and executes the string as a Bourne shell command. The Bourne shell is an interactive command line interpreter that is widely distributed and well known by users of the UNIX® operating system. Thus, in this embodiment, a user of terminal 110 can execute Bourne shell commands on remote host 202 after establishing an X Windows session without telnetting over to or otherwise establishing a secondary connection with remote host 202. After executing the user entered text string, xhered process 210 stores its window id 303 back into COMMAND RENDEZVOUS property 304 of X Server 101 and re-enters its listening mode to await the next alteration initiated by xthere client 107 (i.e., to await the next user enetered command).
In one embodiment, various components of data processing network 100 are implemented as computer program products (computer software) that include a sequence of computer executable commands. Thus, X Server 101, xthere client 107, and xhered server 210 (as well as other features of network 100) may all be implemented in software configured to achieve a method of executing commands on remote hosts in a multi-host data processing network. Referring to
It will be apparent to those skilled in the art having the benefit of this disclosure that the present invention contemplates an elegant solution enabling execution of command strings on remote hosts in a heterogeneous network. It is understood that the form of the invention shown and described in the detailed description and the drawings are to be taken merely as presently preferred examples. It is intended that the following claims be interpreted broadly to embrace all the variations of the preferred embodiments disclosed
Donnelly, James Aloysius, Kraft, IV, George
Patent | Priority | Assignee | Title |
10657317, | Feb 27 2018 | ELASTICSEARCH B V | Data visualization using client-server independent expressions |
10997196, | Oct 30 2018 | Elasticsearch B.V.; ELASTICSEARCH B V | Systems and methods for reducing data storage overhead |
11586695, | Feb 27 2018 | ELASTICSEARCH B V | Iterating between a graphical user interface and plain-text code for data visualization |
7237030, | Dec 03 2002 | Oracle America, Inc | System and method for preserving post data on a server system |
7548979, | Jul 01 2003 | AT&T INTELLECTUAL PROPERTY I,L P | Method, system, and computer-readable medium for managing a host session on a remote computer |
7590744, | Dec 15 2004 | WESTGUARD INSURANCE COMPANY | Remote communication system and method implementing a session server and one or more object servers |
7627645, | Jun 27 2005 | Microsoft Technology Licensing, LLC | Remotely controlling playback of content on a stored device |
7912966, | Dec 15 2004 | WESTGUARD INSURANCE COMPANY | Electronic device and remote computer system and method for controlling remote communications |
7917635, | Dec 15 2004 | WESTGUARD INSURANCE COMPANY | Simplex communications parameters of remote sessions system and method for controlling remote communications |
7945681, | Dec 15 2004 | WESTGUARD INSURANCE COMPANY | Clipboard data modifications system and method for controlling remote communications |
7966407, | Dec 15 2004 | WESTGUARD INSURANCE COMPANY | Network device and interceptor module system and method for controlling remote communications |
8028075, | Dec 15 2004 | WESTGUARD INSURANCE COMPANY | Modified semaphore flags system and method for controlling remote communications |
9547694, | Mar 15 2013 | RPX Corporation | Aggregated search |
9633089, | Mar 15 2013 | RPX Corporation | Aggregated search |
9921884, | Nov 01 2012 | Amazon Technologies, Inc. | Local and remote access to virtual machine image filesystems |
Patent | Priority | Assignee | Title |
5313581, | Sep 14 1990 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | System and method for communication between windowing environments |
5392400, | Jul 02 1992 | International Business Machines Corporation; International Business Machines Corporation, | Collaborative computing system using pseudo server process to allow input from different server processes individually and sequence number map for maintaining received data sequence |
5408602, | Jul 31 1990 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | System and method for emulating a window management environment having a uniform windowing interface |
5519833, | Aug 13 1992 | Bankers Trust Company | Distributed data processing system providing a distributed stream software environment to enable application on a first system to use driver on a second system |
5748894, | Nov 21 1991 | Hitachi, Ltd. | Cooperative information processing method and apparatus utilizing local program |
5781727, | Mar 19 1993 | RPX Corporation | Collaborative system for allowing user to draw annotation images on the user display and replicating the annotation images on the displays of all other computers |
5819038, | Jun 07 1995 | RPX Corporation | Collaboration system for producing copies of image generated by first program on first computer on other computers and annotating the image by second program |
5889946, | Mar 19 1993 | NCR Corporation | Collaborative system running application program for transmitting the identity of each surrogate function to remotes to draw images of displays |
5893053, | Sep 19 1995 | Sony Corporation; Sony Electronics Inc. | Computer graphics data recording and playback system with a VCR-based graphic user interface |
5944791, | Oct 04 1996 | Open Invention Network, LLC | Collaborative web browser |
5948022, | Mar 19 1993 | NCR Corporation | Remote collaboration system |
6131183, | May 24 1993 | Raytheon Company | Computer and method for enabling graphic user interface (GUI) control and command line (TTY) control of a computer program |
6151621, | Apr 10 1997 | International Business Machines Corp. | Personal conferencing system |
6249294, | Jul 20 1998 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | 3D graphics in a single logical sreen display using multiple computer systems |
6362836, | Apr 06 1998 | Oracle America, Inc | Universal application server for providing applications on a variety of client devices in a client/server network |
6374287, | Jan 24 1996 | Sun Microsystems, Inc. | Method and system for allowing client processes to run on distributed window server extensions |
20020138627, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Mar 27 2000 | DONNELLY, JAMES ALOYSIUS | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 010727 | /0681 | |
Mar 27 2000 | KRAFT, GEORGE IV | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 010727 | /0681 | |
Mar 31 2000 | Lenavo (Singapore) Pte. Ltd. | (assignment on the face of the patent) | / | |||
May 20 2005 | International Business Machines Corporation | LENOVO SINGAPORE PTE LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 016891 | /0507 | |
Apr 01 2013 | LENOVO SINGAPORE PTE LTD | Lenovo PC International | NUNC PRO TUNC ASSIGNMENT SEE DOCUMENT FOR DETAILS | 037160 | /0001 |
Date | Maintenance Fee Events |
Feb 24 2006 | ASPN: Payor Number Assigned. |
Oct 13 2009 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Aug 30 2013 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Sep 19 2017 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
May 09 2009 | 4 years fee payment window open |
Nov 09 2009 | 6 months grace period start (w surcharge) |
May 09 2010 | patent expiry (for year 4) |
May 09 2012 | 2 years to revive unintentionally abandoned end. (for year 4) |
May 09 2013 | 8 years fee payment window open |
Nov 09 2013 | 6 months grace period start (w surcharge) |
May 09 2014 | patent expiry (for year 8) |
May 09 2016 | 2 years to revive unintentionally abandoned end. (for year 8) |
May 09 2017 | 12 years fee payment window open |
Nov 09 2017 | 6 months grace period start (w surcharge) |
May 09 2018 | patent expiry (for year 12) |
May 09 2020 | 2 years to revive unintentionally abandoned end. (for year 12) |