US20020057295A1 - System and method for combining local and remote windows into a single desktop environment - Google Patents

System and method for combining local and remote windows into a single desktop environment Download PDF

Info

Publication number
US20020057295A1
US20020057295A1 US09086898 US8689898A US2002057295A1 US 20020057295 A1 US20020057295 A1 US 20020057295A1 US 09086898 US09086898 US 09086898 US 8689898 A US8689898 A US 8689898A US 2002057295 A1 US2002057295 A1 US 2002057295A1
Authority
US
Grant status
Application
Patent type
Prior art keywords
agent
desktop
server
local
client
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
Application number
US09086898
Other versions
US6437803B1 (en )
Inventor
Anatoliy Panasyuk
Martin Duursma
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Citrix Systems Inc
Original Assignee
Citrix Systems Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications

Abstract

A system for incorporating windows from remote desktop environments into a local desktop environment includes a local node, a local agent, a first remote node, and a first remote agent. The first remote node provides a first remote desktop environment, and the first remote agent monitors the first remote desktop environment for changes in the environment. The first remote node transmits messages to the local agent indicative of changes in the first remote desktop environment. The local agent receives the transmitted messages and commands the local node to modify a representation of a first remote window that is part of a local desktop environment. The local agent also monitors the local desktop and transmits messages to the remote agent indicative of a change in the local desktop. In some embodiment, the local node provides the local desktop environment. Local agents can be embodied on articles of manufacture.

Description

    FIELD OF THE INVENTION
  • [0001]
    The present invention relates to displaying information on remote computers and, in particular, to a system and method for combining display data received from various remote sources into a single, local display.
  • BACKGROUND OF THE INVENTION
  • [0002]
    Client-server systems, in which a user of a client node is typically remote from a server which provides application processing or access to files and other resources, are both convenient and cost-effective. Client nodes are generally cheaper than servers, and since one server typically provides services to more than one client, overall system cost is reduced. Additionally, client-server systems allow an enterprise to make decisions regarding the location of certain system resources (such as applications) on a situational basis. For example, certain applications may be resident solely on clients, solely on servers, solely on certain servers, or any combination of the above which improves the overall efficiency of the system.
  • [0003]
    To date, however, efforts to combine output data from various sources into a single display have not met with success. For example, early attempts have been made to cause server-based applications to write directly into local windows. Although this method can display application output from various servers on a single display, it lacks the ability to arrange the windows on the client responsive to the z-axis ordering of the windows at each individual server. Thus, if a server brings a new window to the top of its desktop, no corresponding change appears to the user at the client.
  • [0004]
    Further, systems typically cannot support combining various sources of data into a single display without modification of the applications generating output data. This results because most enterprises desire to use off-the-shelf software to generate output data and such software does not support combination of output data. This represents a practical problem because re-writing such applications to support output combination is generally prohibited by the manufacturer of such software and, even if not prohibited, can be expensive.
  • SUMMARY OF THE INVENTION
  • [0005]
    The present invention relates to a system in which multiple data displays can be represented as a cohesive, single, unitary display, without intervention on the part of the user and without requiring modification of the applications generating displayed output data. The system allows a user to interact with displayed windows without knowledge of the source of those windows, and changes to the window, either locally or remotely, are reflected in the corresponding display on the server or client.
  • [0006]
    In one aspect, the present invention relates to a system for incorporating windows from remote desktop environments into a local desktop environment. The system includes a local node, a local agent, a first remote node, and a first remote agent. The first remote node provides a first remote desktop environment, and the first remote agent monitors the first remote desktop environment for changes in the environment. The first remote node transmits messages to the local agent indicative of changes in the first remote desktop environment. The local agent receives the transmitted messages and commands the local node to modify a representation of a first remote window that is part of a local desktop environment. The local agent also monitors the local desktop and transmits messages to the remote agent indicative of a change in the local desktop. In some embodiments, the local node provides the local desktop environment.
  • [0007]
    In another aspect, the present invention relates to a method for incorporating windows from remote desktop environments into a local desktop environment. The method comprises the steps of: providing a local node hosting a local agent; receiving, by the local agent, a message indicating a change to windows included in a remote desktop environment; commanding, by the local agent, the local node to effect a corresponding change in the local desktop environment; monitoring, by the local agent, the local desktop; and transmitting, by the local node, messages to the remote node indicative of a change in the local desktop environment. The method may be embodied on an article of manufacture.
  • [0008]
    In yet another aspect, the present invention relates to an agent which incorporates windows from remote desktop environments into a local desktop environment. The agent includes a message receiving process capable of receiving messages indicating a change has occurred in a remote desktop environment. A command process effects changes to the local desktop environment responsive to messages received by the message receiving process. A monitor process monitors local desktop events. A transmission process transmits messages indicating occurrence of the local desktop event. The agent may be embodied on an article of manufacture.
  • [0009]
    In a further aspect, the present invention relates to a system for incorporating windows from a remote desktop into a local desktop. The system comprises a local node and a remote node connected by a communications link. The communications link includes a first virtual channel and a second virtual channel. The nodes exchange desktop information such as window position, window size, and z-ordering of desktop windows, over the first virtual channel. The nodes exchange graphical information over the second virtual channel. In some embodiments, the first virtual channel and the second channel may be provided as a single virtual channel.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • [0010]
    The invention is pointed out with particularity in the appended claims. The advantages of this invention described above, and further advantages, may be better understood by reference to the following description taken in conjunction with the accompanying drawings, in which:
  • [0011]
    [0011]FIG. 1 is a functional block diagram of an embodiment of a client-server system;
  • [0012]
    [0012]FIG. 2 is a functional block diagram of a client node connected to two separate server nodes;
  • [0013]
    [0013]FIG. 3 is a flow diagram of the steps to be taken when a server agent detects a change in its associated desktop environment;
  • [0014]
    [0014]FIG. 4 is a flow diagram of the steps to be taken when a client agent detects a change in its associated desktop environment;
  • [0015]
    [0015]FIG. 5 is a flow chart of the steps to be taken to open a virtual channel between a client agent and a server agent; and
  • [0016]
    [0016]FIG. 6 is a functional block diagram of an agent.
  • DETAILED DESCRIPTION OF THE INVENTION
  • [0017]
    Referring now to FIG. 1, a client-server system is shown in which server node 20 provides services for one or more client nodes 10. Client nodes may communicate with server node 20 via any of a number of industry-standard data communications protocols including, but not limited to, TCP/IP, IPX/SPX, NetBEUI, or serial protocols. Alternatively, client nodes 10 may connect to server node 20 using a proprietary data communications protocol such as the ICA protocol manufactured by Citrix Systems, Inc. of Fort Lauderdale, Fla. or the RDP protocol manufactured by Microsoft Corporation of Redmond, Wash. The actual connection between the client nodes 10 and the server node 20 may be physical cabling or it may be a wireless connection, such as infrared transmission.
  • [0018]
    [0018]FIG. 2 depicts a system in which a single client node 10 is connected to more than one server node 20, 20′. As shown in FIG. 2, client node 10 has an associated display 12. The display 12 may be used to display one or more components of a graphical user interface, such as windows and pull-down menus. The collection of graphical user interface components displayed to a user by the display 12 is generally referred to as the “desktop.” As shown in FIG. 2, the local node 10 displays a local desktop environment 14 to a user. Local node 10 may provide at least a part of the local desktop environment 14 or local node 10 may simply display various desktop components received from other sources such as server nodes 20. As shown in FIG. 2, each server node 20, 20′ has an associated display 22, 22′ which also displays a desktop environment 24, 24′. It should be noted that display 22, 22′ need not be a video display monitor. For example, display 22, 22′ may simply be a bank of video RAM to which applications write the output of graphical procedure calls. FIG. 2 depicts an embodiment of a system in which each server node display 22, 22′ displays one graphical user interface window 26, 27′.
  • [0019]
    Each server 20, 20′ also includes at least one agent 30, 30′. In particular embodiments, each server 20, 20′ includes one agent 30, 30′ for each client 10 connected to the server 20, 20′. Client node 10 may also host an agent 40. In some embodiments, a client node 10 hosts a separate local agent 40 for each server to which the client node 10 is connected. In other embodiments, the client node 10 hosts a single agent 40 that manages connections to multiple server nodes 20. Each of the agents 30, 30′, 40 may monitor their associated desktop environment 24, 24′, 14 for windows which: change position; are opened; are closed; change size; are minimized; are maximized; or are brought to the top of the desktop, i.e., windows which gain focus that do not previously have focus. Each agent 30, 30′, 40 transmits messages indicative of changes in their associated desktop 24, 24′, 14 to other agents. For example, local agent 40 may receive messages transmitted from server node agents 30, 30′. The local agent 40 commands the client 10 to modify the local desktop environment 14 in response to the messages received from server agents 30, 30′, that is, the local agent 40 issues commands to the client node 10 to conform the local desktop environment 14 to the server desktop environment 24. In other embodiments, server node agents 30, 30′ receive messages from a local agent 40 and command the server 20, 20′ to modify the server desktop environment 24, 24′ in response to messages received from the local agent 40.
  • [0020]
    In one embodiment, the agents 30, 40 monitor changes to their associated desktop environment 24, 24′ by periodically issuing one or more of a set of commands provided by the operating system that allow details of the graphical user interface desktop to be determined. For embodiments in which the agents 30, 40 reside on nodes that execute a version of the WINDOWS operating system, the agents 30, 40 may periodically issue the Enum Windows command to the WINDOWS operating system, which returns a list of all windows present on the desktop, together with information related to those windows. The agents 30, 40 can issue the Enum Windows command every 50 milliseconds, every 100 milliseconds, every 500 milliseconds, or at any period that allows the agent 30, 40 to rapidly determine when changes to its associated desktop environment have occurred without putting a significant computational burden on the node. In this embodiment, the agent 30, 40 maintains a data structure storing information about the desktop windows and compares the values returned by the Enum Windows command to the data structure to determine changes.
  • [0021]
    Information determined and stored by the agent 30, 30′ can include the title bar associated with each window, the location of each window in the desktop environment 24, 24′, the size of each window, and the z-order positioning of each window in the desktop environment 24, 24′. In another embodiment, the agent 30, 30′, 40 monitors an intranode graphics message queue to determine changes to its associated desktop environment. Server agents 30, 30′ monitor an intraserver message queue and local agent 40 monitors an intraclient message queue. In this embodiment, changes to the desktop environment 24, 24′ are effected via messages sent to a graphics subsystem from system applications or the operating system itself. Thus, an application executing an a server 20, 20′ would send a message to a graphics engine residing on the server 20, 20′ in order to change the server desktop environment 24, 24′. Other commands which return graphical user interface data are readily apparent to those of ordinary skill in the art. For embodiments in which the agents 30, 40 reside on nodes executing a version of the WINDOWS operating system, the agents 30, 40 monitor the Windows Message Queue for messages affecting the desktop environment associated with the node on which the agent resides. Examples of such messages include: WM_SETFOCUS, which indicates to which window focus will be given (i.e., brought to the “top” of the desktop); WM_KILLFOCUS, which removes focus from an indicated window; and WM_WINDOWPOSCHANGING, which indicates a change in the position of a window. Other messages that can be posted to the Windows Message Queue are readily known to those of ordinary skill in the art.
  • [0022]
    Referring now to FIG. 3, the steps taken during a server-initiated event are shown. The server agent 30 senses a change in its associated desktop (step 302). The server agent 30 may do this by intercepting a window event on the server message queue, or the agent 30 may determine a change in the desktop by comparing the results returned from serially issued operating system commands, as described above. The server agent 30 sends a message to a client agent 40 indicating the change in the server desktop 24 (step 304). For example, if a new window has been given focus, the server agent 30 can transmit a message to a client agent 40 indicating the identity of the new “top” window. In one embodiment, the server agent 30 broadcasts its message to all client agents 40 that exist in the system. Alternatively, the server agent 30 may transmit its message only to a predetermined subset of client agents 40. For example, when a client 10 makes a connection to a server 20, the client agent 40 may register with the server agent 30. In this embodiment, the server agent 30 would transmit change messages only to those client agents that have registered with the server.
  • [0023]
    The client agent 40 receives the transmitted message (step 306). In embodiments in which the server broadcasts commands, the client agent 40 must have some mechanism for determining whether a transmitted command affects its associated desktop 12. For example, the client agent 40 may maintain a list of servers to which it is connected. In these embodiments, the client agent 40 responds to messages broadcast by any server present in its list. For embodiments in which the server agent 30 does not broadcast messages, no such mechanism is necessary.
  • [0024]
    The client agent 40 implements a change to its associated desktop 14 responsively to the received message (step 308). The client agent 40 may accomplish this by directly issuing graphics Application Programming Interface commands that cause the client 10 to change the display of its associated desktop 14. Alternatively, the client agent 40 may issue GDI commands to change its associated desktop 14. In still other embodiments, the client agent 40 issues commands directly to the system, whether implemented in hardware or software, responsible for displaying graphics on the client 10.
  • [0025]
    Referring now to FIG. 4, the steps taken when a client initiates a desktop change are shown. The client agent 40 senses a change in its associated desktop 14 (step 402). As noted above, this may be done on an event-driven basis or by polling the operating system operating on the client 10. The client agent 40 determines to which server 20 the affected window belongs (step 404). To facilitate this process, the client agent 40 may maintain a list that associates remote windows with a particular server 20. The client agent 40 then sends a message to the identified server 40 indicating the change in its desktop 14 (step 406). Alternatively, the client agent 40 may skip step 404 entirely and broadcast its change message to all servers 20. The server agent receives the transmitted message (step 408) and implements the change in its associated desktop (step 410), as described above.
  • [0026]
    In one particular embodiment, a client node 10 and a server node 20 communicate using the ICA protocol and the client node 10 and the server node 20 execute a version of the WINDOWS operating system. Client node 10 hosts a local agent 40 that may be provided as a dynamically linked library module. The server node 20 hosts a server agent 30 that may be provided as a separate thread.
  • [0027]
    In this embodiment, the local agent 40 and the server agent 30 exchange graphical data, i.e., the data actually displayed in each window on the desktop, via a first ICA virtual channel. Information about window positioning, window size, z-access ordering of window and other such information is communicated between the client node 10 and the server node 20 via a second ICA virtual channel. Throughout the description, when the client node 10 and the server node 20 are actively exchanging information via the second ICA virtual channel, the client will be referred to as being in “seamless windowing mode.”Referring now to FIG. 5, the process for enabling seamless windowing mode between the local agent 40 and server agent 30 is shown. In this embodiment, all communication between a server agent and a client agent is packet-oriented and takes place over a dedicated ICA virtual channel, making the functioning of the agents 30, 40 independent from the underlying communication protocol. All packets start with packet type (1 byte), followed by packet data length (2 bytes, can be zero) and data (optional). Agents 30, 40 will try to send as much data in a single network packet as possible, but it will always send complete packets. That is, the size of seamless window virtual packets never exceeds the allowable size of an ICA packet. Packet flow control and delivery confirmation is implemented by the transport level of the ICA protocol. Individual packets are executed immediately on reception.
  • [0028]
    The client agent 40 waits for an initial packet from the server agent 30. After user logon to the server, a server agent 30 will be invoked (step 504).
  • [0029]
    The server agent sends a TWI_PACKET_START packet to the client agent 40, which includes some essential information about the server desktop environment (desktop resolution, desktop size, version number of ICA protocol supported by the server, etc.) (step 506). This packet is sent by the server agent 30 on initial connection or on reconnect, and is used to: (1) detect seamless windowing capabilities of the client; and (2) requests basic client information.
  • [0030]
    The client agent receives the TWI_PACKET_START packet (step 507) and responds with a TWI_PACKET_C2H_START_ACK packet, confirming TWI_PACKET_START and supplying client version/capabilities information (step 508). This packet is sent by the client agent 40 to confirm reception of TWI_PACKET_START packet and to send the requested basic client information to the server agent 30.
  • [0031]
    If there is no response from the client agent 40 (step 509), the server agent 30 assumes that the client is unable to enter seamless windowing mode, and the seamless windowing virtual channel is not used by the server node 20 to communicate window information. In this case, the server node 20 continues to communicate graphical data to the client node 10 via another virtual channel, and the client desktop displays the server desktop without incorporating windows from other nodes.
  • [0032]
    The client agent 40 uses the information sent by the server agent 30 in step 506 to determine if a seamless windowing session can be established between the server agent 30 and the client agent 40. In one embodiment, the client agent 40 compares information relating to the version of the virtual channel protocol supported by the server agent 30 to makes the determination If the client agent 40 determines that it is possible to enable seamless windowing mode (step 510), the client agent 40 sends a TWI_PACKET_C2H_OPEN packet to the server agent 30 (step 511). This packet requests that the server agent 30 enable seamless windowing mode.
  • [0033]
    On reception of a TWI_PACKET_C2H_OPEN packet (step 512) the server agent 40 (I) resets its internal data structures, (ii) sends a TWI_PACKET_SYSINFO packet to the client agent 40 to communicate some general information regarding the window settings on the server node 20 to the client agent 40, (iii) sends a TWI_PACKET_OPEN packet to the client agent 40 (step 514) indicating the establishment of seamless windowing mode, and (iv) enables its main polling loop (step 516) that will poll the operating system on the server node for desktop changes. If the client agent 40 and the server agent 30 do not support the same version of the seamless window protocol, the server agent 30 ignores the TWI_PACKET_C2H_OPEN packet.
  • [0034]
    On reception of TWI_PACKET_OPEN packet (step 520), the client agent 40 resets its internal data structures (step 522) and seamless windowing mode between the client agent 40 and the server agent 30 is established.
  • [0035]
    During a seamless windowing mode session, the server agent 30 will send window information such as window position, size, styles, window text, etc. for all top-level windows on the server node. Also, foreground window information is sent, i.e., which window on the server node desktop is the foreground window. In accordance with this information, the client agent 40 creates windows with the same size/position as the server node windows on the client node desktop. In some embodiments, window elements are transmitted as bitmaps from the server node 20. Examples of packets sent by the server agent 30 include: TWI_PACKET_CLOSE, which is sent to switch the client agent 40 out of seamless windowing mode and back to regular, or full screen, mode; that is, the client node 10 is switched back to displaying the server node desktop environment without incorporating windows from other desktop environments; TWI_PACKET_CREATEW, which is sent to create new windows on the client node 10; TWI_PACKET_DELETEW, which is sent to destroy a window on the client node 10; TWI_PACKET_CHANGEW, which is sent to change a window displayed by the local node 10; TWI_PACKET_SYSINFO, which is sent to report server node 20 system settings—normally it is sent only once, but the packet can be sent multiple times; TWI_PACKET_FOREGROUNDW, which is sent during normal seamless windowing mode operation to change the foreground window; TWI_PACKET_SETTOPW, which is sent during normal seamless windowing mode operation to change the top window, that is, to bring a new window to top; TWI_PACKET_SETFOCUS, which is sent during normal seamless windowing mode operation to change the focus window; TWI_PACKET_FOCUSACK, which is sent in response to TWI_PACKET_C2H_SETFOCUS (see below), and reports the result of a SetFocus attempt; and TWI_PACKET_SPA_STATUS, which is sent in response to TWI_PACKET_C2H_START_PUBLICAPP (see below), and is used to report the result of the requested operation.
  • [0036]
    Examples of packets that can be sent by the client agent 40 to the server agent 30 include: TWI_PACKET_C2H_PAUSE, which is sent to suspend the server agent 30, that is, the server agent 30 will stop sending window information, clear its internal data structure and send a TWI_PACKET_CLOSE packet (see above); TWI_PACKET_C2H_RESUME, which is sent to resume the server agent 30—the server agent 30 will clear its internal data structure, and send a TWI_PACKET_OPEN packet (see above); TWI_PACKET_C2H_SETPOS, which is sent to report window size/position change on the client node; TWI_PACKET_C2H_SETFOCUS, which is sent to report a change in the focus window on the client node; TWI_PACKET_C2H_RESTORE, which is sent to request restoration of a minimized window; TWI_PACKET_C2H_TERMINATE, which is sent to request termination of a program executing on the server node 20; TWI_PACKET_C2H_STARTAPP, which is sent to start a new application on the server node 20; TWI_PACKET_C2H_LOGOUT, which is sent to end the current session; TWI_PACKET_C2H_START_PUBLICAPP, which is sent to start a new published application on the server node; and TWI_PACKET_C2H_CLIENTINFO, which is sent to report client desktop settings to the server agent 30—this packet is generally sent on startup, but can also be used during seamless windowing session.
  • [0037]
    The client agent 40 will try to perform some operations (such as window move and resize) locally, sending update information back to the server node 40 afterwards. Proper window behavior is emulated by intercepting the WM_NCHITTEST message for the client-created windows.
  • [0038]
    Foreground window changes can happen on both the client node and the server node, so the client and server will negotiate and balance actual foreground window changes. For example, if the server node 20 changes its foreground window, that change should be properly represented on the client desktop. The server agent 30 sends information regarding the new foreground window to the client agent 40 using the TWI_PACKET_FOREGROUNDW packet. Similarly, if the client agent 40 detects a foreground window change on the client desktop, the client agent 40 sends information regarding the change to the server agent 30 and the server agent 30 implements the change on the server desktop.
  • [0039]
    When focus is taken away from a window representing a server window and is given to a local client window, the client notifies the server of the change and the server gives focus to an invisible window. For embodiments in which the client node 10 is connected to two server nodes 20, and focus is shifted from a window representing a window from the first server and is given to a window representing a window from the second server, the client sends a packet informing the current server that its window no longer has focus. Once the server responds by giving focus to an invisible window, the client agent 40 instructs the other server that its window now has focus on the local desktop.
  • [0040]
    In some embodiments, it is desirable to add some complexity to the agent's main polling loop to reduce network traffic. In these embodiments, the main polling loop includes a comparison between the current foreground window and the identity of the window last requested to be moved to the foreground. If the current foreground window matches the window identified in the most recent request, the agent does not need to send information acknowledging the change. This technique is useful in both server agent 30 and client agents 40.
  • [0041]
    Window z-ordering on the client is a superset of the server node Bordering (client will always have more windows than the host). Server node z-ordering is reproduced on the client by reproducing owner/owned relationship among windows and the TOP_MOST flag in the window style. Owner/owned relationships refer to windows which are children of other windows, such as dialog boxes associated with application windows. The dialog box is said to be owned by the application window, and the dialog box will always appear on top of its owner. The TOP_MOST flag indicates that a particular window should appear on “top” of the desktop, for example, the status bar in WINDOWS 95.
  • [0042]
    When a user disconnects, the server agent 30 switches itself to suspended mode, and will not send information to the client agent 40. On a reconnect, the server agent 30 sends a TWI_PACKET_START packet, reporting HostAgentState as “already running, reconnect.”
  • [0043]
    Based on the version number of the protocol supported by the server the client will decide whether it is possible to enable seamless windowing mode (from the client point of view). If it is possible to switch to seamless windowing mode, the client agent 40 will send a TWI_PACKET_C2H_OPEN packet, asking the server agent 30 to enable seamless windowing mode.
  • [0044]
    Each agent responsible for monitoring an associated desktop may be implemented as a stand-alone software routine (such as an executable file on DOS-based systems), a dynamically linked library routine (DLL), or as an integral piece of the operating system. Referring now to FIG. 6, and in brief overview, each agent includes a message receiving facility 602, a command facility 604, a monitor facility 606, and a message transmission facility 608. Agent-agent communication is full-duplex, i.e., agents can transmit and receive messages simultaneously. Thus, each facility can be implemented as a separately functioning code segment that operates independently of the other facilities. For example, message receiving facility 602 and command facility 604 can be implemented as separate threads which communicate with each other via a named pipe or shared memory. Use of a common data allows the message receiving facility 602 and the message transmitting facility 608 to be synchronized.
  • [0045]
    Message receiving facility 602 receives messages transmitted from other agents indicating changes in the desktop environments associated with those agents. Message receiving facility 602 may connect directly with the physical layer of the communications protocol the agents use to communicate, or the message receiving facility 602 may operate at a higher layer of the protocol by cooperating with one or more communications subsystems. For embodiments in which messages are broadcast by agents, the message receiving facility 602 has some mechanism for determining whether a broadcast message is intended for it. For example, the message receiving facility 602 may store a list of the windows which its associated desktop displays. The message receiving facility 602 would compare the target of any received message to its list of windows to determine whether or not to take action on the received message. The message receiving facility may be implemented as a blocking function. Alternatively, the message receiving facility can be implemented a call-back function invoked by the ICA virtual channel transport.
  • [0046]
    Once the message receiving facility 602 has determined that a received message is intended for its desktop, the command facility is invoked to effect the change indicated by the message to the associated desktop environment. The command facility 604 may be passed the received message facility, or the message receiving facility 602 may process the received message before communicating with the command facility 604. The command facility 604 may implement the desktop change indicated by the received message by issuing GDI commands. In other embodiments, the command facility 604 may issue commands directly to an associated graphics subsystem or may issue other graphics API commands.
  • [0047]
    During a seamless windowing session, a number of desktops are associated with a single client node—one desktop on the client itself and one desktop per server node 20 to which the client node 10 is connected. The client agent 40, in conjunction with the server agent 30, 30′, creates a combined window list representing the z-order of all desktops. All participating desktops are “linked” together by the client agents 40 and the server agents 30, 30′, and any z-order changes on any desktops will be propagated to other desktops.
  • [0048]
    In one embodiment, each server has knowledge only of its own graphical desktop representation and the server desktops are individually represented within the client. The client display is updated by combining all server and client desktop images into a single display image based on the window information that has been obtained from each server node 20, 20′ by the client agent 40. The resulting image is displayed at the client node 10.
  • [0049]
    The combining process involves building a common window list based on the windows information exchanged by all agents. Using the combined window list, the graphical desktop data is clipped and merged for representation by the client node 10. The node takes care of “clipping” displayed windows resulting from the commands issued by the command facility 604. Such “clipping” functions are well-known to those of ordinary skill in the art. In some embodiments, however, the command facility 604 maintains a shadow bitmap of clipped windows. That is, the command facility 604 maintains a bit image of windows that are obscured by other windows. This allows the agent to change its associated desktop without requiring it to reload the window image of an obscured window from the appropriate source. In other embodiments, the node determines whether graphical data is obscured at the time it is received. If it is, the node ignores the received graphical data. If it is not, the node displays the data. The node makes a determination as to whether the graphical data is obscured by applying clipping functions.
  • [0050]
    Monitoring facility 606 monitors the desktop associated with the agent. Monitoring facility 606 may monitor the desktop by periodically issuing commands provided by the operating system executing on the node which return information about the node's desktop. Alternatively, the monitoring facility 506 may watch for messages posted to an intranode message queue. As noted above, in one particular embodiment the monitoring facility 606 monitors the Windows Message Queue. Once a desktop change occurred, the message transmission facility 608 transmits a message indicating the change that has occurred. In some embodiments, the message transmission facility 608 broadcasts notification of the change.
  • [0051]
    In one embodiment, message transmission facility 608 can be implemented in the form of non-blocking function, that can be called from any window procedure. If the function can not send a data packet immediately (for example, the communication subsystem has no buffer space), a timer will be set and retry attempts will be done until the send succeeds.
  • [0052]
    The present invention may be provided as one or more computer-readable programs embodied on or in one or more articles of manufacture. The article of manufacture may be a floppy disk, a hard disk, a CD ROM, a flash memory card, a PROM, a RAM, a ROM, or a magnetic tape. In general, the computer-readable programs may be implemented in any programming language. Some examples of languages that can be used include C, C++, or JAVA. The software programs may be stored on or in one or more articles of manufacture as object code.
  • [0053]
    Having described certain embodiments of the invention, it will now become apparent to one of skill in the art that other embodiments incorporating the concepts of the invention may be used. Therefore, the invention should not be limited to certain embodiments, but rather should be limited only by the spirit and scope of the following claims.

Claims (20)

    What is claimed is:
  1. 1. A system for incorporating windows from remote desktop environments into a local desktop environment, the system comprising:
    a local node having a local desktop environment;
    a local agent;
    a first remote node having a first remote desktop environment including at least one first remote window; and
    a first remote agent monitoring said first remote desktop environment and in communication with said local agent, said first remote agent transmitting a message to said local agent indicative of a change to said first remote window,
    said local agent receiving the message transmitted by said first remote agent and, responsive to the received message, commanding said local node to modify a representation of said first remote window as part of said local desktop environment and said local agent transmitting messages to said first remote agent indicative of a locally-generated change to a representation of said first remote window.
  2. 2. The system of claim I wherein said local node provides said local desktop environment, said local agent monitors said local desktop environment, and wherein said local agent receives the messages transmitted by said remote agent and, responsive to the received message, commands said local node to modify a representation of said first remote window as part of said local desktop environment.
  3. 3. The system of claim 1 wherein said first remote agent transmits a message indicating that said first remote window has changed position and wherein said local agent receives the message transmitted by said first remote agent and commands said local node to change the position of a representation of said first remote window in said local desktop environment.
  4. 4. The system of claim I wherein said first remote agent transmits a message indicating that said first remote window has closed and wherein said local agent receives the message transmitted by said first remote agent and commands said local node to close a representation of said first remote window in said local desktop environment.
  5. 5. The system of claim 1 wherein said first remote agent transmits a message indicating that said first remote window has changed size and wherein said local agent receives the transmitted message and commands said local node to change the size of a representation of said first remote window in said local desktop environment.
  6. 6. The system of claim 1 wherein said first remote agent monitors said first remote desktop environment by monitoring an intranode message queue.
  7. 7. The system of claim 1 wherein said local node provides said local desktop environment and said local agent monitors said local desktop environment.
  8. 8. The system of claim 7 wherein said local node broadcasts a message indicative of a locally-generated change to a representation of said first remote window.
  9. 9. The system of claim I wherein said remote node broadcasts a message indicative of a change to said first remote window.
  10. 10. The system of claim 1 wherein said local node performs clipping functions on said representations of said first remote window that are obscured by local windows or other remote windows.
  11. 11. A method for incorporating windows from remote desktop environments into a local desktop environment, the method comprising the steps of:
    (a) providing a local node hosting a local agent;
    (b) receiving, by the local agent, a message indicating a change to windows included in a remote desktop environment;
    (c) commanding, by the local agent, the local node to effect a corresponding change in the local desktop environment;
    (d) monitoring, by the local agent, the local desktop environment; and
    (e) transmitting, by the local agent, a message indicative of a change to representation of the remote windows included in the local desktop environment.
  12. 12. The method of claim 11 wherein steps (b) and (c) comprise:
    (b) receiving, by the local agent, a message indicating that a window included in a remote desktop environment has changed position; and
    (c) commanding, by the local agent, the local node to change the position of a representation of the remote window in the local desktop environment.
  13. 13. The method of claim 11 wherein steps (b) and (c) comprise:
    (b) receiving, by the local agent, a message indicating that a window included in a remote desktop environment has closed; and
    (c) commanding, by the local agent, the local node to close a representation of the remote window in the local desktop environment.
  14. 14. The method of claim 11 wherein steps (b) and (c) comprise:
    (b) receiving, by the local agent, a message indicating that a window included in a remote desktop environment has changed size; and
    (c) commanding, by the local agent, the local node to change the size of a representation of the remote window in the local desktop environment.
  15. 15. An agent for incorporating windows from remote desktop environments into a local desktop environment, the agent comprising:
    a message receiving process capable of receiving messages indicative of a change in a remote desktop environment;
    a command process capable of effecting changes to a local desktop environment responsive to the received messages;
    a monitor process capable of monitoring local desktop events; and
    a transmission process capable of transmitting messages indicative of the local desktop events.
  16. 16. The agent of claim 15 wherein said transmission process broadcasts messages indicative of the local desktop events.
  17. 17. The agent of claim 15 wherein said command process issues application programming interface commands, responsively to received messages, to effect changes to a local desktop environment.
  18. 18. A article of manufacture having the agent of claim 15 embodied thereon.
  19. 19. A system for incorporating windows from remote desktop environments into a local desktop environment, each desktop environment including at least one window displaying graphical data, the system comprising:
    a communications link comprising a first virtual channel and a second virtual channel;
    a local node; and
    a remote node,
    said local node and said remote node exchanging window information over said first virtual channel of said communications link and said local node and said remote node exchanging graphical data over said second virtual channel of said communications link.
  20. 20. The system of claim 20 wherein the first virtual channel and the second virtual channel comprise the same virtual channel.
US09086898 1998-05-29 1998-05-29 System and method for combining local and remote windows into a single desktop environment Expired - Lifetime US6437803B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US09086898 US6437803B1 (en) 1998-05-29 1998-05-29 System and method for combining local and remote windows into a single desktop environment

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US09086898 US6437803B1 (en) 1998-05-29 1998-05-29 System and method for combining local and remote windows into a single desktop environment
RU2000130129A RU2225027C2 (en) 1998-05-29 1999-05-25 System and method for combining local and remote windows into single medium for desktop
JP2000552577A JP2002517814A (en) 1998-05-29 1999-05-25 System and method for connecting the local and remote window one desktop environment
EP19990955340 EP1082653B1 (en) 1998-05-29 1999-05-25 System and method for combining local and remote windows into a single desktop environment
PCT/US1999/011534 WO1999063430A1 (en) 1998-05-29 1999-05-25 System and method for combining local and remote windows into a single desktop environment
CA 2333279 CA2333279C (en) 1998-05-29 1999-05-25 System and method for combining local and remote windows into a single desktop environment
US10068461 US6950991B2 (en) 1995-11-13 2002-02-06 Interacting with software applications displayed in a web page
US10288821 US7555529B2 (en) 1995-11-13 2002-11-06 Interacting with software applications displayed in a web page

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US09247220 Continuation-In-Part US6370570B1 (en) 1995-11-13 1999-02-10 Method and apparatus for making a hypermedium interactive

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US10068461 Continuation-In-Part US6950991B2 (en) 1995-11-13 2002-02-06 Interacting with software applications displayed in a web page

Publications (2)

Publication Number Publication Date
US20020057295A1 true true US20020057295A1 (en) 2002-05-16
US6437803B1 US6437803B1 (en) 2002-08-20

Family

ID=22201620

Family Applications (1)

Application Number Title Priority Date Filing Date
US09086898 Expired - Lifetime US6437803B1 (en) 1998-05-29 1998-05-29 System and method for combining local and remote windows into a single desktop environment

Country Status (6)

Country Link
US (1) US6437803B1 (en)
EP (1) EP1082653B1 (en)
JP (1) JP2002517814A (en)
CA (1) CA2333279C (en)
RU (1) RU2225027C2 (en)
WO (1) WO1999063430A1 (en)

Cited By (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030128711A1 (en) * 2001-09-26 2003-07-10 Gabriel Olariu Method and system for improvement of network performance over asymmetic links
US20040100480A1 (en) * 2000-04-06 2004-05-27 Microsoft Corporation Input redirection
EP1515228A2 (en) * 2003-09-08 2005-03-16 SAP Aktiengesellschaft Categorization and display of data by a computer system user interface
US20060005187A1 (en) * 2004-06-30 2006-01-05 Microsoft Corporation Systems and methods for integrating application windows in a virtual machine environment
US7010503B1 (en) * 2000-03-10 2006-03-07 Ams Services, Inc. Traffic reduction in networked data collection
US20060075106A1 (en) * 2004-09-01 2006-04-06 Roland Hochmuth Managing multiple remote computing sessions displayed on a client device
US20060136835A1 (en) * 2004-12-22 2006-06-22 Hochmuth Roland M Computer display control system and method
US20060161555A1 (en) * 2005-01-14 2006-07-20 Citrix Systems, Inc. Methods and systems for generating playback instructions for playback of a recorded computer session
US20060168537A1 (en) * 2004-12-22 2006-07-27 Hochmuth Roland M Computer display control system and method
US20060271637A1 (en) * 2005-05-27 2006-11-30 Microsoft Corporation Techniques for providing accessibility options in remote terminal sessions
US20060288306A1 (en) * 2005-06-21 2006-12-21 Microsoft Corporation Enabling a graphical window modification command to be applied to a remotely generated graphical window
US20070083821A1 (en) * 2005-10-07 2007-04-12 International Business Machines Corporation Creating viewports from selected regions of windows
US20070174429A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US20070239920A1 (en) * 2006-04-05 2007-10-11 Portalplayer, Inc. Method and system for communication between a secondary processor and an auxiliary display subsystem of a notebook
US20070239921A1 (en) * 2006-04-05 2007-10-11 Portalplayer, Inc. Notebook having secondary processor coupled by a multiplexer to a content source or disk drive
US20080034318A1 (en) * 2006-08-04 2008-02-07 John Louch Methods and apparatuses to control application programs
US20080120570A1 (en) * 2006-11-22 2008-05-22 Bluetie, Inc. Methods for managing windows within an internet environment and systems thereof
US20080199834A1 (en) * 2007-02-15 2008-08-21 Microsoft Corporation Rich and concurrent pc experiences on computing devices
US20080228927A1 (en) * 2007-03-15 2008-09-18 Microsoft Corporation Server directed browsing
US20090094523A1 (en) * 2007-09-12 2009-04-09 Terry Noel Treder Methods and Systems for Maintaining Desktop Environments providing integrated access to remote and local resourcses
US20090249219A1 (en) * 2008-03-31 2009-10-01 Best Steven F Providing a Shared Desktop Interface of Multiple Computer Terminals
US20100026692A1 (en) * 2008-08-04 2010-02-04 Nvidia Corporation Hybrid graphic display
US20100131623A1 (en) * 2008-11-24 2010-05-27 Nvidia Corporation Configuring Display Properties Of Display Units On Remote Systems
WO2010120587A1 (en) * 2009-04-15 2010-10-21 Wyse Technology Inc. System and method for communicating events at a server to a remote device
US20100269046A1 (en) * 2009-04-15 2010-10-21 Wyse Technology Inc. Sever-side computing from a remote client device
US20100269039A1 (en) * 2009-04-15 2010-10-21 Wyse Technology Inc. Custom pointer features for touch-screen on remote client devices
US7847755B1 (en) * 2005-05-23 2010-12-07 Glance Networks Method and apparatus for the identification and selective encoding of changed host display information
US20110157189A1 (en) * 2009-12-31 2011-06-30 Nvidia Corporation Shared buffer techniques for heterogeneous hybrid graphics
US20110210976A1 (en) * 2009-09-16 2011-09-01 Nvidia Corporation Techniques for transferring graphics data from system memory to a discrete gpu
US20110219331A1 (en) * 2010-03-02 2011-09-08 International Business Machines Corporation Window resize on remote desktops
US20110271200A1 (en) * 2010-04-30 2011-11-03 Norifumi Kikkawa Information processing device, information processing method, program, information providing device, and information processing system
US20120005269A1 (en) * 2001-06-08 2012-01-05 Real Enterprise Solutions Development B.V. Management of Local Applications in Local and Remote Desktops in a Server-Based Computing Environment
US20120011445A1 (en) * 2010-07-08 2012-01-12 Arnon Gilboa Remote Computing With A Low Latency Mouse Mode
US20120151374A1 (en) * 2010-12-08 2012-06-14 Quanta Computer Inc. Portable electronic apparatus and control method thereof
US20120324365A1 (en) * 2011-03-03 2012-12-20 Citrix Systems, Inc. Reverse Seamless Integration Between Local and Remote Computing Environments
US8422851B2 (en) 2005-01-14 2013-04-16 Citrix Systems, Inc. System and methods for automatic time-warped playback in rendering a recorded computer session
US20130219012A1 (en) * 2012-02-22 2013-08-22 Citrix Systems, Inc. Hierarchical Display
US8615159B2 (en) 2011-09-20 2013-12-24 Citrix Systems, Inc. Methods and systems for cataloging text in a recorded session
US20140026063A1 (en) * 2008-08-20 2014-01-23 Red Hat, Inc. Full-screen heterogeneous desktop display and control
US8676926B2 (en) 2009-04-15 2014-03-18 Wyse Technology L.L.C. System and method for handling remote drawing commands
CN103677970A (en) * 2012-09-24 2014-03-26 北京云端时代科技有限公司 System and method for achieving combination display of terminal local desktop and far-end virtual desktop
US8743019B1 (en) 2005-05-17 2014-06-03 Nvidia Corporation System and method for abstracting computer displays across a host-client network
CN103957235A (en) * 2011-02-21 2014-07-30 北京奇虎科技有限公司 Image dragging transmission display method and system
US8935316B2 (en) 2005-01-14 2015-01-13 Citrix Systems, Inc. Methods and systems for in-session playback on a local machine of remotely-stored and real time presentation layer protocol data
US20150205882A1 (en) * 2007-03-19 2015-07-23 Dean Vukas Testing accessibility and compatibility of websites and web-based software
US20160342313A1 (en) * 2015-05-20 2016-11-24 Vmware, Inc. Optimizing window move actions for remoted applications
US9553953B2 (en) 2009-04-15 2017-01-24 Dell Products L.P. Method and apparatus for extending capabilities of a virtualization domain to support features available in a normal desktop application
US9578113B2 (en) 2009-04-15 2017-02-21 Wyse Technology L.L.C. Method and apparatus for transferring remote session data
US9588637B2 (en) 2011-03-03 2017-03-07 Citrix Systems, Inc. Transparent user interface integration between local and remote computing environments
US9684424B2 (en) 2010-07-08 2017-06-20 Red Hat Israel, Ltd. Transforming cursor graphics information
US9842532B2 (en) 2013-09-09 2017-12-12 Nvidia Corporation Remote display rendering for electronic devices
US9900602B2 (en) 2015-08-20 2018-02-20 Citrix Systems, Inc. Optimizing remote graphics delivery and presentation

Families Citing this family (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7555529B2 (en) * 1995-11-13 2009-06-30 Citrix Systems, Inc. Interacting with software applications displayed in a web page
US6710790B1 (en) * 1998-08-13 2004-03-23 Symantec Corporation Methods and apparatus for tracking the active window of a host computer in a remote computer display window
US6901435B1 (en) * 1999-06-17 2005-05-31 Bmc Software, Inc. GUI interpretation technology for client/server environment
US7120692B2 (en) 1999-12-02 2006-10-10 Senvid, Inc. Access and control system for network-enabled devices
US8688797B2 (en) * 1999-12-02 2014-04-01 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US8793374B2 (en) * 1999-12-02 2014-07-29 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
EP1309901B1 (en) * 1999-12-02 2008-05-21 Western Digital Technologies, Inc. System for remote recording of television programs
US6807666B1 (en) 1999-12-15 2004-10-19 Microsoft Corporation Methods and arrangements for providing multiple concurrent desktops and workspaces in a shared computing environment
US7702719B1 (en) * 2000-02-08 2010-04-20 International Business Machines Corporation Methods and apparatus for reducing the number of server interactions in network-based applications using a dual-MVC approach
WO2002021404A1 (en) * 2000-09-06 2002-03-14 Envoii Method and apparatus for a portable information account access agent
US20020040314A1 (en) * 2000-05-08 2002-04-04 Michael Tolson Method and system for business application of a portable information agent
US7877437B1 (en) 2000-05-08 2011-01-25 H.E.B., Llc Method and apparatus for a distributable globe graphical object
US7117239B1 (en) 2000-07-28 2006-10-03 Axeda Corporation Reporting the state of an apparatus to a remote computer
US20040098349A1 (en) * 2001-09-06 2004-05-20 Michael Tolson Method and apparatus for a portable information account access agent
US7185014B1 (en) 2000-09-22 2007-02-27 Axeda Corporation Retrieving data from a server
US8108543B2 (en) 2000-09-22 2012-01-31 Axeda Corporation Retrieving data from a server
US20020111995A1 (en) * 2001-02-14 2002-08-15 Mansour Peter M. Platform-independent distributed user interface system architecture
US7155681B2 (en) * 2001-02-14 2006-12-26 Sproqit Technologies, Inc. Platform-independent distributed user interface server architecture
US20020129096A1 (en) * 2001-02-14 2002-09-12 Mansour Peter M. Platform-independent distributed user interface client architecture
US6999912B2 (en) * 2001-03-13 2006-02-14 Microsoft Corporation Provisioning computing services via an on-line networked computing environment
GB0108044D0 (en) * 2001-03-30 2001-05-23 British Telecomm Application synchronisation
EP1451679A2 (en) * 2001-03-30 2004-09-01 BRITISH TELECOMMUNICATIONS public limited company Multi-modal interface
EP1331556B9 (en) * 2001-06-08 2009-10-28 Real Enterprise Solutions Development B.V. Server-based computer environment
US20110271226A1 (en) * 2001-06-08 2011-11-03 Real Enterprise Solutions Nederland B.V. Integrated Icon View in a Server-Based Computing Environment
US7406693B1 (en) * 2001-09-10 2008-07-29 Ncr Corporation Method of controlling applications
US7047276B2 (en) * 2001-09-14 2006-05-16 Inventec Tomorrow Studio Corporation Method and system for sharing data between wired and wireless platforms
US7254601B2 (en) 2001-12-20 2007-08-07 Questra Corporation Method and apparatus for managing intelligent assets in a distributed environment
US7178149B2 (en) 2002-04-17 2007-02-13 Axeda Corporation XML scripting of soap commands
US7757001B2 (en) * 2002-04-26 2010-07-13 Smart Technologies Ulc System, method and graphical user interface for identifying image from remote site during screen sharing
US20040044728A1 (en) * 2002-08-29 2004-03-04 Ullas Gargi Application program sharing systems, processing devices and application program sharing methods
US7966418B2 (en) 2003-02-21 2011-06-21 Axeda Corporation Establishing a virtual tunnel between two computer programs
US20050038868A1 (en) * 2003-05-19 2005-02-17 Spicer Jeffrey J. Web form host
US20040255289A1 (en) * 2003-06-11 2004-12-16 Citycites.Com Corp. Remote access software solution for rapidly deploying a desktop
JP2005045357A (en) * 2003-07-23 2005-02-17 Hitachi Ltd Remote display protocol, video display system, and terminal
US7275212B2 (en) * 2003-10-23 2007-09-25 Microsoft Corporation Synchronized graphics and region data for graphics remoting systems
US7624192B2 (en) * 2003-12-30 2009-11-24 Microsoft Corporation Framework for user interaction with multiple network devices
US8024783B2 (en) * 2004-01-22 2011-09-20 Ryan Riley Modular agent architecture
JP4535314B2 (en) * 2004-02-18 2010-09-01 富士通コンポーネント株式会社 The information processing apparatus, system, remote control method, program and recording medium
US7607096B2 (en) * 2004-05-01 2009-10-20 Microsoft Corporation System and method for a user interface directed to discovering and publishing presence information on a network
US20050257196A1 (en) * 2004-05-17 2005-11-17 Gideon Hollander System and method for developing new services from legacy computer applications
US7895344B2 (en) * 2004-05-21 2011-02-22 Computer Associates Think, Inc. Method and apparatus for remote management
US20060059544A1 (en) * 2004-09-14 2006-03-16 Guthrie Paul D Distributed secure repository
US20060059117A1 (en) * 2004-09-14 2006-03-16 Michael Tolson Policy managed objects
US20060064739A1 (en) * 2004-09-17 2006-03-23 Guthrie Paul D Relationship-managed communication channels
US7450128B2 (en) * 2004-11-15 2008-11-11 Hewlett-Packard Development Company, L.P. Systems and methods of providing image copy and modify commands to a receiver with an associated display
US7577749B1 (en) 2004-12-03 2009-08-18 Ux Ltd. Emulation of persistent HTTP connections between network devices
US20060230105A1 (en) * 2005-04-06 2006-10-12 Ericom Software B 2001 Ltd Method of providing a remote desktop session with the same look and feel as a local desktop
US7667707B1 (en) 2005-05-05 2010-02-23 Digital Display Innovations, Llc Computer system for supporting multiple remote displays
US20060282855A1 (en) * 2005-05-05 2006-12-14 Digital Display Innovations, Llc Multiple remote display system
US8200796B1 (en) 2005-05-05 2012-06-12 Digital Display Innovations, Llc Graphics display system for multiple remote terminals
US8019883B1 (en) 2005-05-05 2011-09-13 Digital Display Innovations, Llc WiFi peripheral mode display system
JP4619882B2 (en) * 2005-07-12 2011-01-26 株式会社東芝 Mobile phone and the remote control method
US7817849B2 (en) * 2005-08-18 2010-10-19 Hewlett-Packard Development Company, L.P. Method and apparatus for graphical data compression
US7899864B2 (en) * 2005-11-01 2011-03-01 Microsoft Corporation Multi-user terminal services accelerator
US7962552B2 (en) * 2005-11-14 2011-06-14 Red Hat, Inc. Borrow and give back of windows
US8112513B2 (en) * 2005-11-30 2012-02-07 Microsoft Corporation Multi-user display proxy server
US7487465B2 (en) * 2006-01-06 2009-02-03 International Business Machines Corporation Application clippings
US20070162860A1 (en) * 2006-01-11 2007-07-12 General Electric Company Remote console for observing multiple workstations
EP1818812B1 (en) * 2006-01-25 2016-01-06 Brandt Technologies Limited System and method for effecting simultaneous control of remote computers
US7493912B2 (en) * 2006-06-09 2009-02-24 Hartman Brian T Fixed cone sleeve valve having cone supported by means downstream of the gate in its closed position
US20080010608A1 (en) * 2006-07-05 2008-01-10 Honeywell International, Inc. Apparatus and methods for ensuring visibility of display window
US8370479B2 (en) 2006-10-03 2013-02-05 Axeda Acquisition Corporation System and method for dynamically grouping devices based on present device conditions
US7460725B2 (en) * 2006-11-09 2008-12-02 Calista Technologies, Inc. System and method for effectively encoding and decoding electronic information
US7720300B1 (en) 2006-12-05 2010-05-18 Calister Technologies System and method for effectively performing an adaptive quantization procedure
US8065397B2 (en) 2006-12-26 2011-11-22 Axeda Acquisition Corporation Managing configurations of distributed devices
US20080238929A1 (en) * 2007-03-30 2008-10-02 Nadim Abdo Local Themeing Of Remote Applications
US20080270910A1 (en) * 2007-04-30 2008-10-30 Lukasik Derek J User selection of a remote session
US8140610B2 (en) 2007-05-31 2012-03-20 Microsoft Corporation Bitmap-based display remoting
US20080313545A1 (en) * 2007-06-13 2008-12-18 Microsoft Corporation Systems and methods for providing desktop or application remoting to a web browser
US8046695B2 (en) * 2007-10-19 2011-10-25 Citrix Systems, Inc. Methods and systems for incorporating at least one window from a first desktop environment having a first themed graphical display into a second desktop environment having a second themed graphical display
US20090150427A1 (en) * 2007-12-10 2009-06-11 Eric Kim Standardizing user interface across multiple content resources
US20090187854A1 (en) * 2007-12-21 2009-07-23 Richard Leo Murtagh Methods and systems for generating an enumeration of window types that lack contact data relevant to a user
US8898321B2 (en) * 2008-01-09 2014-11-25 Microsoft Corporation Remote device communication platform user interface
US8789151B2 (en) * 2008-01-09 2014-07-22 Microsoft Corporation Remote device communication platform
US20090235177A1 (en) * 2008-03-14 2009-09-17 Microsoft Corporation Multi-monitor remote desktop environment user interface
US8176434B2 (en) * 2008-05-12 2012-05-08 Microsoft Corporation Virtual desktop view scrolling
US8312384B2 (en) 2008-06-11 2012-11-13 Honeywell International Inc. Apparatus and method for fault-tolerant presentation of multiple graphical displays in a process control system
JP5470861B2 (en) * 2009-01-09 2014-04-16 ソニー株式会社 How to display apparatus and a display
US8271005B2 (en) 2009-01-12 2012-09-18 Jlt Group, Inc. Mobile communication device and system with limited data transfer
US9071843B2 (en) * 2009-02-26 2015-06-30 Microsoft Technology Licensing, Llc RDP bitmap hash acceleration using SIMD instructions
US9063932B2 (en) 2009-12-18 2015-06-23 Vertafore, Inc. Apparatus, method and article to manage electronic or digital documents in a networked environment
US8700682B2 (en) 2009-12-24 2014-04-15 Vertafore, Inc. Systems, methods and articles for template based generation of markup documents to access back office systems
US20110214063A1 (en) * 2010-03-01 2011-09-01 Microsoft Corporation Efficient navigation of and interaction with a remoted desktop that is larger than the local screen
US8473967B2 (en) * 2010-04-30 2013-06-25 Positron Telecommunication Systems Systems and methods for providing a client-side application programming interface to access a networked telecommunication resource
US9043706B2 (en) * 2010-08-31 2015-05-26 Anders Nancke-Krogh System and method for using state replication between application instances to provide a collaborative desktop environment
US20120117490A1 (en) * 2010-11-10 2012-05-10 Harwood William T Methods and systems for providing access, from within a virtual world, to an external resource
JP2012123677A (en) * 2010-12-09 2012-06-28 Mitsubishi Electric Corp Programmable display apparatus
US8607158B2 (en) * 2010-12-09 2013-12-10 International Business Machines Corporation Content presentation in remote monitoring sessions for information technology systems
US9384198B2 (en) 2010-12-10 2016-07-05 Vertafore, Inc. Agency management system and content management system integration
US8806360B2 (en) 2010-12-22 2014-08-12 International Business Machines Corporation Computing resource management in information technology systems
US8731973B2 (en) 2011-04-19 2014-05-20 Vertafore, Inc. Overlaying images in automated insurance policy form generation
US20120311457A1 (en) * 2011-06-06 2012-12-06 Cisco Technology, Inc. Merging Remote and Local Interfaces for Application Integration
US9854024B2 (en) 2011-06-28 2017-12-26 Hewlett-Packard Development Company, L.P. Display of operating status information of a client in a remote desktop session
WO2013002766A1 (en) 2011-06-28 2013-01-03 Hewlett-Packard Development Company, L.P. Display of host operating system user interface elements within a guest operating system of a virtual machine
US9395869B2 (en) * 2012-02-02 2016-07-19 Apple Inc. Global z-order for windows
US9069608B2 (en) * 2013-03-06 2015-06-30 Vmware, Inc. Method and system for providing a roaming remote desktop
US9977413B2 (en) 2013-03-11 2018-05-22 Honeywell International Inc. Apparatus and method for managing open windows in a graphical display for a representation of a process system
WO2015007295A1 (en) * 2013-07-17 2015-01-22 Azarov Sergey Sergeevich Method for transmitting images
KR20150016695A (en) * 2013-08-05 2015-02-13 삼성전자주식회사 Display device and control method thereof
US9507814B2 (en) 2013-12-10 2016-11-29 Vertafore, Inc. Bit level comparator systems and methods
US9367435B2 (en) 2013-12-12 2016-06-14 Vertafore, Inc. Integration testing method and system for web services
US9134963B1 (en) * 2014-07-03 2015-09-15 U3D Limited Method of unifying information and tool from a plurality of information sources
US9626157B2 (en) * 2014-07-03 2017-04-18 Able World International Limited Method of projecting a workspace and system using the same
US9747556B2 (en) 2014-08-20 2017-08-29 Vertafore, Inc. Automated customized web portal template generation systems and methods
US9600400B1 (en) 2015-10-29 2017-03-21 Vertafore, Inc. Performance testing of web application components using image differentiation

Family Cites Families (116)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4387425A (en) 1980-05-19 1983-06-07 Data General Corporation Masterless and contentionless computer network
USRE32632E (en) 1982-07-19 1988-03-29 Apple Computer, Inc. Display system
US4779189A (en) 1985-06-28 1988-10-18 International Business Machines Corporation Peripheral subsystem initialization method and apparatus
JPS62282328A (en) 1986-02-21 1987-12-08 Hitachi Ltd Multiple picture control system
US4937036A (en) 1986-04-28 1990-06-26 Xerox Corporation Concurrent display of data from two different display processors and user interface therefore
US5062060A (en) * 1987-01-05 1991-10-29 Motorola Inc. Computer human interface comprising user-adjustable window for displaying or printing information
US5175852A (en) 1987-02-13 1992-12-29 International Business Machines Corporation Distributed file access structure lock
US5202971A (en) 1987-02-13 1993-04-13 International Business Machines Corporation System for file and record locking between nodes in a distributed data processing environment maintaining one copy of each file lock
US5072412A (en) 1987-03-25 1991-12-10 Xerox Corporation User interface with multiple workspaces for sharing display system objects
US4949281A (en) 1987-04-23 1990-08-14 H. Berthold Ag Method and apparatus for generating and producing two-dimensional graphic object by polynominal parametric curves
US4903218A (en) 1987-08-13 1990-02-20 Digital Equipment Corporation Console emulation for a graphics workstation
US5367688A (en) 1987-09-04 1994-11-22 Digital Equipment Corporation Boot system for distributed digital data processing system
US4974173A (en) * 1987-12-02 1990-11-27 Xerox Corporation Small-scale workspace representations indicating activities by other users
US5103303A (en) 1988-04-19 1992-04-07 Konica Corporation Multicolor imaging forming apparatus
US4958303A (en) 1988-05-12 1990-09-18 Digital Equipment Corporation Apparatus for exchanging pixel data among pixel processors
US5726669A (en) * 1988-06-20 1998-03-10 Fujitsu Limited Multi-window communication system
US5155847A (en) 1988-08-03 1992-10-13 Minicom Data Corporation Method and apparatus for updating software at remote locations
US5255361A (en) * 1988-12-19 1993-10-19 International Business Machines Corporation Method of and system for updating a display unit
US5031089A (en) 1988-12-30 1991-07-09 United States Of America As Represented By The Administrator, National Aeronautics And Space Administration Dynamic resource allocation scheme for distributed heterogeneous computer systems
EP0381645A3 (en) 1989-01-18 1992-08-05 International Business Machines Corporation System and method for communicating between a plurality of processors
DE69030340T2 (en) 1989-02-24 1997-11-20 Digital Equipment Corp Broker for the selection of computer network servers
KR930003126B1 (en) 1989-04-20 1993-04-19 아오이 죠이치 Method and system for detemining connection states of straight short vectors
US5305440A (en) 1989-05-15 1994-04-19 International Business Machines Corporation File extension by clients in a distributed data processing system
US5187790A (en) 1989-06-29 1993-02-16 Digital Equipment Corporation Server impersonation of client processes in an object based computer operating system
DE69029441D1 (en) 1989-08-24 1997-01-30 Ibm System for calling procedures on a remote network node
US5119319A (en) 1989-12-14 1992-06-02 Options Unlimited Research Corp. Full-duplex video communication system
US5309555A (en) 1990-05-15 1994-05-03 International Business Machines Corporation Realtime communication of hand drawn images in a multiprogramming window environment
EP0463251A1 (en) 1990-06-28 1992-01-02 International Business Machines Corporation Software installation
EP0475581A3 (en) 1990-08-30 1993-06-23 Hewlett-Packard Company Method and apparatus for window sharing between computer displays
US5583992A (en) 1990-09-14 1996-12-10 Kabushiki Kaisha Toshiba Computer network system for detecting global deadlock
US5241625A (en) 1990-11-27 1993-08-31 Farallon Computing, Inc. Screen image sharing among heterogeneous computers
DE69133032D1 (en) 1990-12-26 2002-07-11 Canon Kk Multimedia communication device
US5249290A (en) 1991-02-22 1993-09-28 At&T Bell Laboratories Method of and apparatus for operating a client/server computer network
JPH04271454A (en) 1991-02-27 1992-09-28 Toshiba Corp Loosely-coupled computer system
CA2069355C (en) 1991-06-07 1998-10-06 Robert C. Pike Global user interface
FR2678458B1 (en) * 1991-06-25 1997-04-30 Alcatel Business Systems Multimedia device intercommunication.
US5204897A (en) 1991-06-28 1993-04-20 Digital Equipment Corporation Management interface for license management system
JPH0546568A (en) 1991-08-08 1993-02-26 Internatl Business Mach Corp <Ibm> Dispersion application execution device and method
DE69227665D1 (en) 1991-10-31 1999-01-07 Ibm A method for operating a computer in a network
US5619716A (en) 1991-11-05 1997-04-08 Hitachi, Ltd. Information processing system having a configuration management system for managing the software of the information processing system
US5351129A (en) 1992-03-24 1994-09-27 Rgb Technology D/B/A Rgb Spectrum Video multiplexor-encoder and decoder-converter
DE69220093T2 (en) 1992-06-18 1997-12-04 Ibm Processing network for distributed application programs.
US5440719A (en) 1992-10-27 1995-08-08 Cadence Design Systems, Inc. Method simulating data traffic on network in accordance with a client/sewer paradigm
US5329619A (en) 1992-10-30 1994-07-12 Software Ag Cooperative processing interface and communication broker for heterogeneous computing environments
JP3553987B2 (en) 1992-11-13 2004-08-11 株式会社日立製作所 Client-server system
US5566302A (en) 1992-12-21 1996-10-15 Sun Microsystems, Inc. Method for executing operation call from client application using shared memory region and establishing shared memory region when the shared memory region does not exist
US5572674A (en) 1993-01-07 1996-11-05 Bmc Software, Inc. Method of dynamically adjusting SNA network control program parameters
US5325527A (en) 1993-01-19 1994-06-28 Canon Information Systems, Inc. Client/server communication system utilizing a self-generating nodal network
US5469540A (en) 1993-01-27 1995-11-21 Apple Computer, Inc. Method and apparatus for generating and displaying multiple simultaneously-active windows
JP2576762B2 (en) 1993-06-30 1997-01-29 日本電気株式会社 Node-to-node information collection system of the ring network
DE69428809D1 (en) 1993-08-03 2001-11-29 Sun Microsystems Inc Flexible multi-platform-breakdown for computer applications
US5359593A (en) 1993-08-26 1994-10-25 International Business Machines Corporation Dynamic bandwidth estimation and adaptation for packet communications networks
US5844553A (en) * 1993-08-30 1998-12-01 Hewlett-Packard Company Mechanism to control and use window events among applications in concurrent computing
DE4417588A1 (en) * 1993-08-30 1995-03-02 Hewlett Packard Co Method and apparatus for detecting and forwarding of window events to a plurality of existing applications for simultaneous execution
US5553242A (en) 1993-11-03 1996-09-03 Wang Laboratories, Inc. Client/server connection sharing
US5574934A (en) * 1993-11-24 1996-11-12 Intel Corporation Preemptive priority-based transmission of signals using virtual channels
US5592626A (en) 1994-02-07 1997-01-07 The Regents Of The University Of California System and method for selecting cache server based on transmission and storage factors for efficient delivery of multimedia information in a hierarchical network of servers
JP3454285B2 (en) * 1994-02-15 2003-10-06 富士ゼロックス株式会社 Data processing apparatus and data processing method
CA2145921A1 (en) 1994-05-10 1995-11-11 Vijay Pochampalli Kumar Method and apparatus for executing a distributed algorithm or service on a simple network management protocol based computer network
US5594490A (en) 1994-05-23 1997-01-14 Cable Services Technologies, Inc. System for distributing video/audio files from central location to a plurality of cable headends
US5517617A (en) 1994-06-29 1996-05-14 Digital Equipment Corporation Automatic assignment of addresses in a computer communications network
CN1134934C (en) 1994-08-23 2004-01-14 松下电器产业株式会社 System and method for distributing continuous media content according to special request of customer
US5541927A (en) 1994-08-24 1996-07-30 At&T Corp. Method of multicasting
US5586312A (en) 1994-10-11 1996-12-17 Unisys Corporation Method and apparatus for using an independent transaction processing application as a service routine
US5913920A (en) * 1994-12-13 1999-06-22 International Business Machines Corporation Indicating updates from a remote display
US5680549A (en) 1994-12-30 1997-10-21 Compuserve Incorporated System for transferring network connections from first to second program where the first enters an inactive state and resumes control of connections when second terminates
US5583563A (en) 1995-01-12 1996-12-10 Us West Marketing Resources Group, Inc. Method and system for delivering an application in an interactive television network
US5682478A (en) 1995-01-19 1997-10-28 Microsoft Corporation Method and apparatus for supporting multiple, simultaneous services over multiple, simultaneous connections between a client and network server
US5557748A (en) 1995-02-03 1996-09-17 Intel Corporation Dynamic network configuration
US5819093A (en) 1995-03-03 1998-10-06 Sun Microsystems, Inc. System and method for a distributed debugger for debugging distributed application programs
US5857102A (en) 1995-03-14 1999-01-05 Sun Microsystems, Inc. System and method for determining and manipulating configuration information of servers in a distributed object environment
US5721876A (en) 1995-03-30 1998-02-24 Bull Hn Information Systems Inc. Sockets application program mechanism for proprietary based application programs running in an emulation environment
US5710918A (en) 1995-06-07 1998-01-20 International Business Machines Corporation Method for distributed task fulfillment of web browser requests
US5774668A (en) 1995-06-07 1998-06-30 Microsoft Corporation System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing
US5734865A (en) 1995-06-07 1998-03-31 Bull Hn Information Systems Inc. Virtual local area network well-known port routing mechanism for mult--emulators in an open system environment
US5737592A (en) 1995-06-19 1998-04-07 International Business Machines Corporation Accessing a relational database over the Internet using macro language files
JP3535267B2 (en) * 1995-07-03 2004-06-07 富士通株式会社 Monitoring status display device of the monitoring system
US5874960A (en) 1995-07-05 1999-02-23 Microsoft Corporation Method and system for sharing applications between computer systems
US5644720A (en) 1995-07-31 1997-07-01 West Publishing Company Interprocess communications interface for managing transaction requests
US5767849A (en) * 1995-08-18 1998-06-16 International Business Machines Corporation Personality neutral window management subsystem
US5758186A (en) 1995-10-06 1998-05-26 Sun Microsystems, Inc. Method and apparatus for generically handling diverse protocol method calls in a client/server computer system
US5913060A (en) 1995-10-11 1999-06-15 Citrix Systems, Inc. Method for deadlock avoidance in a distributed process system using a synchronous procedure call
US5826027A (en) 1995-10-11 1998-10-20 Citrix Systems, Inc. Method for supporting an extensible and dynamically bindable protocol stack in a distrubited process system
US5802306A (en) 1995-10-31 1998-09-01 International Business Machines Corporation Supporting multiple client-server sessions from a protocol stack associated with a single physical adapter through use of a plurality of logical adapters
US6161126A (en) 1995-12-13 2000-12-12 Immersion Corporation Implementing force feedback over the World Wide Web and other computer networks
US5706437A (en) 1995-12-29 1998-01-06 Mci Communications Corporation System and method for accessing a service on a services network
WO1997028623A3 (en) * 1996-01-17 1997-10-02 Menta Software Ltd Application user interface redirector
US5761507A (en) 1996-03-05 1998-06-02 International Business Machines Corporation Client/server architecture supporting concurrent servers within a server with a transaction manager providing server/connection decoupling
US5938733A (en) 1996-03-08 1999-08-17 International Business Machines Corporation Object oriented representation of network requests in a client server model
US5764915A (en) 1996-03-08 1998-06-09 International Business Machines Corporation Object-oriented communication interface for network protocol access using the selected newly created protocol interface object and newly created protocol layer objects in the protocol stack
US5838910A (en) 1996-03-14 1998-11-17 Domenikos; Steven D. Systems and methods for executing application programs from a memory device linked to a server at an internet site
US5748892A (en) 1996-03-25 1998-05-05 Citrix Systems, Inc. Method and apparatus for client managed flow control on a limited memory computer system
US5754830A (en) 1996-04-01 1998-05-19 Openconnect Systems, Incorporated Server and web browser terminal emulator for persistent connection to a legacy host system and method of operation
US5802258A (en) 1996-05-03 1998-09-01 International Business Machines Corporation Loosely coupled system environment designed to handle a non-disruptive host connection switch after detection of an error condition or during a host outage or failure
US6034689A (en) 1996-06-03 2000-03-07 Webtv Networks, Inc. Web browser allowing navigation between hypertext objects using remote control
US5764908A (en) 1996-07-12 1998-06-09 Sofmap Future Design, Inc. Network system containing program modules residing in different computers and executing commands without return results to calling modules
US5757925A (en) 1996-07-23 1998-05-26 Faybishenko; Yaroslav Secure platform independent cross-platform remote execution computer system and method
US5828840A (en) 1996-08-06 1998-10-27 Verifone, Inc. Server for starting client application on client if client is network terminal and initiating client application on server if client is non network terminal
JPH11514769A (en) 1996-08-08 1999-12-14 アグラナット・システムス・インコーポレーテッド Embedded type web server
US5944791A (en) 1996-10-04 1999-08-31 Contigo Software Llc Collaborative web browser
GB9623298D0 (en) 1996-11-08 1997-01-08 Int Computers Ltd Updating mechanism for software
US5870545A (en) 1996-12-05 1999-02-09 Hewlett-Packard Company System and method for performing flexible workflow process compensation in a distributed workflow management system
US5889942A (en) 1996-12-18 1999-03-30 Orenshteyn; Alexander S. Secured system for accessing application services from a remote station
US5941988A (en) 1997-01-27 1999-08-24 International Business Machines Corporation Session and transport layer proxies via TCP glue
GB2321729B (en) 1997-02-04 2001-06-13 Ibm Data processing system, method, and server
US5923842A (en) 1997-03-06 1999-07-13 Citrix Systems, Inc. Method and apparatus for simultaneously providing anonymous user login for multiple users
US5949975A (en) * 1997-03-12 1999-09-07 Microsoft Corp. Method and system for negotiating capabilities when sharing an application program with multiple computer systems
JPH10301874A (en) 1997-04-22 1998-11-13 Internatl Business Mach Corp <Ibm> Remote operation method, server remotely operated from terminal through network and storage medium storing html file
US6023721A (en) 1997-05-14 2000-02-08 Citrix Systems, Inc. Method and system for allowing a single-user application executing in a multi-user environment to create objects having both user-global and system global visibility
US5961586A (en) 1997-05-14 1999-10-05 Citrix Systems, Inc. System and method for remotely executing an interpretive language application
US5941949A (en) 1997-05-14 1999-08-24 Citrix Systems, Inc. System and method for transmitting data from a server application to more than one client node
US6157944A (en) 1997-05-14 2000-12-05 Citrix Systems, Inc. System and method for replicating a client/server data exchange to additional client notes connecting to the server
US5877757A (en) 1997-05-23 1999-03-02 International Business Machines Corporation Method and system for providing user help information in network applications
US5999950A (en) 1997-08-11 1999-12-07 Webtv Networks, Inc. Japanese text input method using a keyboard with only base kana characters
US5999179A (en) 1997-11-17 1999-12-07 Fujitsu Limited Platform independent computer network management client
US6108712A (en) 1998-05-05 2000-08-22 International Business Machines Corp. Client-server system with central application management and providing export agent capability for retrofitting existing hardware and applications into the system

Cited By (123)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7010503B1 (en) * 2000-03-10 2006-03-07 Ams Services, Inc. Traffic reduction in networked data collection
US20040100480A1 (en) * 2000-04-06 2004-05-27 Microsoft Corporation Input redirection
US7412706B2 (en) * 2000-04-06 2008-08-12 Microsoft Corporation Input redirection
US20120005269A1 (en) * 2001-06-08 2012-01-05 Real Enterprise Solutions Development B.V. Management of Local Applications in Local and Remote Desktops in a Server-Based Computing Environment
US9032325B2 (en) * 2001-06-08 2015-05-12 Real Enterprise Solutions Development B.V. Management of local applications in local and remote desktops in a server-based computing environment
US20030128711A1 (en) * 2001-09-26 2003-07-10 Gabriel Olariu Method and system for improvement of network performance over asymmetic links
US7133361B2 (en) * 2001-09-26 2006-11-07 Hughes Network Systems, Inc. Method and system for improvement of network performance over asymmetic links
EP1515228A3 (en) * 2003-09-08 2006-06-07 Sap Ag Categorization and display of data by a computer system user interface
EP1515228A2 (en) * 2003-09-08 2005-03-16 SAP Aktiengesellschaft Categorization and display of data by a computer system user interface
US7996785B2 (en) * 2004-06-30 2011-08-09 Microsoft Corporation Systems and methods for integrating application windows in a virtual machine environment
US20060005187A1 (en) * 2004-06-30 2006-01-05 Microsoft Corporation Systems and methods for integrating application windows in a virtual machine environment
US20060075106A1 (en) * 2004-09-01 2006-04-06 Roland Hochmuth Managing multiple remote computing sessions displayed on a client device
US8762540B2 (en) * 2004-09-01 2014-06-24 Hewlett-Packard Development Company, L.P. Managing multiple remote computing sessions displayed on a client device
US8631342B2 (en) * 2004-12-22 2014-01-14 Hewlett-Packard Development Company, L.P. Computer display control system and method
US20060136835A1 (en) * 2004-12-22 2006-06-22 Hochmuth Roland M Computer display control system and method
US20060168537A1 (en) * 2004-12-22 2006-07-27 Hochmuth Roland M Computer display control system and method
US8935316B2 (en) 2005-01-14 2015-01-13 Citrix Systems, Inc. Methods and systems for in-session playback on a local machine of remotely-stored and real time presentation layer protocol data
US8230096B2 (en) * 2005-01-14 2012-07-24 Citrix Systems, Inc. Methods and systems for generating playback instructions for playback of a recorded computer session
US20060161555A1 (en) * 2005-01-14 2006-07-20 Citrix Systems, Inc. Methods and systems for generating playback instructions for playback of a recorded computer session
US8422851B2 (en) 2005-01-14 2013-04-16 Citrix Systems, Inc. System and methods for automatic time-warped playback in rendering a recorded computer session
US8743019B1 (en) 2005-05-17 2014-06-03 Nvidia Corporation System and method for abstracting computer displays across a host-client network
US7847755B1 (en) * 2005-05-23 2010-12-07 Glance Networks Method and apparatus for the identification and selective encoding of changed host display information
US7676549B2 (en) * 2005-05-27 2010-03-09 Microsoft Corporation Techniques for providing accessibility options in remote terminal sessions
US20060271637A1 (en) * 2005-05-27 2006-11-30 Microsoft Corporation Techniques for providing accessibility options in remote terminal sessions
WO2007001632A3 (en) * 2005-06-21 2007-09-27 Microsoft Corp Enabling a graphical window modification command to be applied to a remotely generated graphical window
US20060288306A1 (en) * 2005-06-21 2006-12-21 Microsoft Corporation Enabling a graphical window modification command to be applied to a remotely generated graphical window
US7533189B2 (en) * 2005-06-21 2009-05-12 Microsoft Corporation Enabling a graphical window modification command to be applied to a remotely generated graphical window
US7757004B2 (en) 2005-06-21 2010-07-13 Microsoft Corporation System and method for enabling a graphical window modification command to be applied to a remotely generated graphical window
US20070083821A1 (en) * 2005-10-07 2007-04-12 International Business Machines Corporation Creating viewports from selected regions of windows
US8010679B2 (en) 2006-01-24 2011-08-30 Citrix Systems, Inc. Methods and systems for providing access to a computing environment provided by a virtual machine executing in a hypervisor executing in a terminal services session
US7870153B2 (en) 2006-01-24 2011-01-11 Citrix Systems, Inc. Methods and systems for executing, by a virtual machine, an application program requested by a client machine
US8341732B2 (en) 2006-01-24 2012-12-25 Citrix Systems, Inc. Methods and systems for selecting a method for execution, by a virtual machine, of an application program
US7949677B2 (en) 2006-01-24 2011-05-24 Citrix Systems, Inc. Methods and systems for providing authorized remote access to a computing environment provided by a virtual machine
US7954150B2 (en) 2006-01-24 2011-05-31 Citrix Systems, Inc. Methods and systems for assigning access control levels in providing access to resources via virtual machines
US20070174410A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and systems for incorporating remote windows from disparate remote desktop environments into a local desktop environment
US20070180449A1 (en) * 2006-01-24 2007-08-02 Citrix Systems, Inc. Methods and systems for providing remote access to a computing environment provided by a virtual machine
US8117314B2 (en) 2006-01-24 2012-02-14 Citrix Systems, Inc. Methods and systems for providing remote access to a computing environment provided by a virtual machine
US20070180493A1 (en) * 2006-01-24 2007-08-02 Citrix Systems, Inc. Methods and systems for assigning access control levels in providing access to resources via virtual machines
US20070180450A1 (en) * 2006-01-24 2007-08-02 Citrix Systems, Inc. Methods and systems for selecting a method for execution, by a virtual machine, of an application program
US20070180448A1 (en) * 2006-01-24 2007-08-02 Citrix Systems, Inc. Methods and systems for providing access to a computing environment provided by a virtual machine executing in a hypervisor executing in a terminal services session
US20070179955A1 (en) * 2006-01-24 2007-08-02 Citrix Systems, Inc. Methods and systems for providing authorized remote access to a computing environment provided by a virtual machine
US8341270B2 (en) 2006-01-24 2012-12-25 Citrix Systems, Inc. Methods and systems for providing access to a computing environment
US20070171921A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and systems for interacting, via a hypermedium page, with a virtual machine executing in a terminal services session
US20070174429A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US20070192329A1 (en) * 2006-01-24 2007-08-16 Citrix Systems, Inc. Methods and systems for executing, by a virtual machine, an application program requested by a client machine
US8355407B2 (en) 2006-01-24 2013-01-15 Citrix Systems, Inc. Methods and systems for interacting, via a hypermedium page, with a virtual machine executing in a terminal services session
US8051180B2 (en) 2006-01-24 2011-11-01 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine executing in a terminal services session and hosting a requested computing environment
US9195428B2 (en) 2006-04-05 2015-11-24 Nvidia Corporation Method and system for displaying data from auxiliary display subsystem of a notebook on a main display of the notebook
US20070239920A1 (en) * 2006-04-05 2007-10-11 Portalplayer, Inc. Method and system for communication between a secondary processor and an auxiliary display subsystem of a notebook
US8775704B2 (en) 2006-04-05 2014-07-08 Nvidia Corporation Method and system for communication between a secondary processor and an auxiliary display subsystem of a notebook
US8782291B2 (en) 2006-04-05 2014-07-15 Nvidia Corporation Notebook having secondary processor coupled by a multiplexer to a content source or disk drive
US20070239921A1 (en) * 2006-04-05 2007-10-11 Portalplayer, Inc. Notebook having secondary processor coupled by a multiplexer to a content source or disk drive
US7996789B2 (en) * 2006-08-04 2011-08-09 Apple Inc. Methods and apparatuses to control application programs
US20080034318A1 (en) * 2006-08-04 2008-02-07 John Louch Methods and apparatuses to control application programs
WO2008066963A2 (en) * 2006-11-22 2008-06-05 Bluetie, Inc. Methods for managing windows within an internet environment and systems thereof
US20080120570A1 (en) * 2006-11-22 2008-05-22 Bluetie, Inc. Methods for managing windows within an internet environment and systems thereof
WO2008066963A3 (en) * 2006-11-22 2008-10-30 Bluetie Inc Methods for managing windows within an internet environment and systems thereof
US20080199834A1 (en) * 2007-02-15 2008-08-21 Microsoft Corporation Rich and concurrent pc experiences on computing devices
US20080228927A1 (en) * 2007-03-15 2008-09-18 Microsoft Corporation Server directed browsing
US20150205882A1 (en) * 2007-03-19 2015-07-23 Dean Vukas Testing accessibility and compatibility of websites and web-based software
EP2188714A2 (en) * 2007-09-12 2010-05-26 Citrix Systems, Inc. Methods and systems for generating desktop environments providing integrated access to remote and local resources
US20090094523A1 (en) * 2007-09-12 2009-04-09 Terry Noel Treder Methods and Systems for Maintaining Desktop Environments providing integrated access to remote and local resourcses
US9239666B2 (en) 2007-09-12 2016-01-19 Citrix Systems, Inc. Methods and systems for maintaining desktop environments providing integrated access to remote and local resources
US20090249219A1 (en) * 2008-03-31 2009-10-01 Best Steven F Providing a Shared Desktop Interface of Multiple Computer Terminals
US20100026692A1 (en) * 2008-08-04 2010-02-04 Nvidia Corporation Hybrid graphic display
US8736617B2 (en) 2008-08-04 2014-05-27 Nvidia Corporation Hybrid graphic display
US9798448B2 (en) * 2008-08-20 2017-10-24 Red Hat, Inc. Full-screen heterogeneous desktop display and control
US20140026063A1 (en) * 2008-08-20 2014-01-23 Red Hat, Inc. Full-screen heterogeneous desktop display and control
US20100131623A1 (en) * 2008-11-24 2010-05-27 Nvidia Corporation Configuring Display Properties Of Display Units On Remote Systems
US8799425B2 (en) 2008-11-24 2014-08-05 Nvidia Corporation Configuring display properties of display units on remote systems
US9578113B2 (en) 2009-04-15 2017-02-21 Wyse Technology L.L.C. Method and apparatus for transferring remote session data
US9384526B2 (en) 2009-04-15 2016-07-05 Wyse Technology L.L.C. System and method for handling remote drawing commands
US20100268941A1 (en) * 2009-04-15 2010-10-21 Wyse Technology Inc. Remote-session-to-go method and apparatus
US20130007096A1 (en) * 2009-04-15 2013-01-03 Wyse Technology Inc. System and method for communicating events at a server to a remote device
US20100269152A1 (en) * 2009-04-15 2010-10-21 Wyse Technology Inc. Method and system for rendering composite view of an application
US20100268940A1 (en) * 2009-04-15 2010-10-21 Wyse Technology Inc. Method and apparatus for portability of a remote session
US9374426B2 (en) 2009-04-15 2016-06-21 Wyse Technology L.L.C. Remote-session-to-go method and apparatus
US20100269046A1 (en) * 2009-04-15 2010-10-21 Wyse Technology Inc. Sever-side computing from a remote client device
US20100269048A1 (en) * 2009-04-15 2010-10-21 Wyse Technology Inc. Method and system of specifying application user interface of a remote client device
US20100269047A1 (en) * 2009-04-15 2010-10-21 Wyse Technology Inc. System and method for rendering a composite view at a client device
US9413831B2 (en) 2009-04-15 2016-08-09 Wyse Technology L.L.C. Method and apparatus for authentication of a remote session
US8676926B2 (en) 2009-04-15 2014-03-18 Wyse Technology L.L.C. System and method for handling remote drawing commands
US9191448B2 (en) * 2009-04-15 2015-11-17 Wyse Technology L.L.C. System and method for rendering a composite view at a client device
WO2010120587A1 (en) * 2009-04-15 2010-10-21 Wyse Technology Inc. System and method for communicating events at a server to a remote device
US20100268828A1 (en) * 2009-04-15 2010-10-21 Wyse Technology Inc. Method and apparatus for transferring remote session data
US9444894B2 (en) * 2009-04-15 2016-09-13 Wyse Technology Llc System and method for communicating events at a server to a remote device
US20100269039A1 (en) * 2009-04-15 2010-10-21 Wyse Technology Inc. Custom pointer features for touch-screen on remote client devices
US9448815B2 (en) 2009-04-15 2016-09-20 Wyse Technology L.L.C. Server-side computing from a remote client device
US9189124B2 (en) 2009-04-15 2015-11-17 Wyse Technology L.L.C. Custom pointer features for touch-screen on remote client devices
US9191449B2 (en) * 2009-04-15 2015-11-17 Wyse Technology L.L.C. System and method for communicating events at a server to a remote device
US9553953B2 (en) 2009-04-15 2017-01-24 Dell Products L.P. Method and apparatus for extending capabilities of a virtualization domain to support features available in a normal desktop application
US8863237B2 (en) 2009-04-15 2014-10-14 Wyse Technology L.L.C. Remote-session-to-go method and apparatus
US9185172B2 (en) 2009-04-15 2015-11-10 Wyse Technology L.L.C. System and method for rendering a remote view at a client device
US20100268939A1 (en) * 2009-04-15 2010-10-21 Wyse Technology Inc. Method and apparatus for authentication of a remote session
US9106696B2 (en) 2009-04-15 2015-08-11 Wyse Technology L.L.C. Method and apparatus for portability of a remote session
US20100269057A1 (en) * 2009-04-15 2010-10-21 Wyse Technology Inc. System and method for communicating events at a server to a remote device
US8869239B2 (en) 2009-04-15 2014-10-21 Wyse Technology L.L.C. Method and system for rendering composite view of an application
US9185171B2 (en) 2009-04-15 2015-11-10 Wyse Technology L.L.C. Method and system of specifying application user interface of a remote client device
US20110210976A1 (en) * 2009-09-16 2011-09-01 Nvidia Corporation Techniques for transferring graphics data from system memory to a discrete gpu
US8780122B2 (en) 2009-09-16 2014-07-15 Nvidia Corporation Techniques for transferring graphics data from system memory to a discrete GPU
US9111325B2 (en) 2009-12-31 2015-08-18 Nvidia Corporation Shared buffer techniques for heterogeneous hybrid graphics
US20110157189A1 (en) * 2009-12-31 2011-06-30 Nvidia Corporation Shared buffer techniques for heterogeneous hybrid graphics
US20110219331A1 (en) * 2010-03-02 2011-09-08 International Business Machines Corporation Window resize on remote desktops
CN102238173A (en) * 2010-04-30 2011-11-09 索尼公司 Information processing device, information processing method, program, information providing device, and information processing system
US8516378B2 (en) * 2010-04-30 2013-08-20 Sony Corporation Information processing device, information processing method, program, information providing device, and information processing system
US9612718B2 (en) 2010-04-30 2017-04-04 Sony Corporation Information processing device, information processing method, program, information providing device, and information processing system
US20110271200A1 (en) * 2010-04-30 2011-11-03 Norifumi Kikkawa Information processing device, information processing method, program, information providing device, and information processing system
US9798436B2 (en) * 2010-07-08 2017-10-24 Red Hat Israel, Ltd. Remote computing with a low latency mouse mode
US9684424B2 (en) 2010-07-08 2017-06-20 Red Hat Israel, Ltd. Transforming cursor graphics information
US20120011445A1 (en) * 2010-07-08 2012-01-12 Arnon Gilboa Remote Computing With A Low Latency Mouse Mode
US20120151374A1 (en) * 2010-12-08 2012-06-14 Quanta Computer Inc. Portable electronic apparatus and control method thereof
CN103957235A (en) * 2011-02-21 2014-07-30 北京奇虎科技有限公司 Image dragging transmission display method and system
US20120324365A1 (en) * 2011-03-03 2012-12-20 Citrix Systems, Inc. Reverse Seamless Integration Between Local and Remote Computing Environments
US9210213B2 (en) * 2011-03-03 2015-12-08 Citrix Systems, Inc. Reverse seamless integration between local and remote computing environments
US9736221B2 (en) 2011-03-03 2017-08-15 Citrix Systems, Inc. Reverse seamless integration between local and remote computing environments
US9588637B2 (en) 2011-03-03 2017-03-07 Citrix Systems, Inc. Transparent user interface integration between local and remote computing environments
US8615159B2 (en) 2011-09-20 2013-12-24 Citrix Systems, Inc. Methods and systems for cataloging text in a recorded session
US20130219012A1 (en) * 2012-02-22 2013-08-22 Citrix Systems, Inc. Hierarchical Display
US9423994B2 (en) * 2012-02-22 2016-08-23 Citrix Systems, Inc. Hierarchical display
CN103677970A (en) * 2012-09-24 2014-03-26 北京云端时代科技有限公司 System and method for achieving combination display of terminal local desktop and far-end virtual desktop
US9842532B2 (en) 2013-09-09 2017-12-12 Nvidia Corporation Remote display rendering for electronic devices
US20160342313A1 (en) * 2015-05-20 2016-11-24 Vmware, Inc. Optimizing window move actions for remoted applications
US9900602B2 (en) 2015-08-20 2018-02-20 Citrix Systems, Inc. Optimizing remote graphics delivery and presentation

Also Published As

Publication number Publication date Type
EP1082653A1 (en) 2001-03-14 application
WO1999063430A1 (en) 1999-12-09 application
CA2333279A1 (en) 1999-12-09 application
US6437803B1 (en) 2002-08-20 grant
CA2333279C (en) 2005-10-25 grant
JP2002517814A (en) 2002-06-18 application
RU2225027C2 (en) 2004-02-27 grant
EP1082653B1 (en) 2014-12-17 grant

Similar Documents

Publication Publication Date Title
US6961926B2 (en) System and method for distributed debugging and recording medium on which control programs are recorded
US7130891B2 (en) Score-based scheduling of service requests in a grid services computing platform
US5721876A (en) Sockets application program mechanism for proprietary based application programs running in an emulation environment
US6826601B2 (en) Exactly one cache framework
US6850257B1 (en) Responsive user interface to manage a non-responsive application
US6222529B1 (en) Method and apparatus for providing multiple sessions on a single user operating system
US5835914A (en) Method for preserving and reusing software objects associated with web pages
US7631119B2 (en) Techniques for providing audio for synchronized playback by multiple devices
US5987502A (en) Workload management in an asynchronous client/server computer system
US6480955B1 (en) Methods and apparatus for committing configuration changes to managed devices prior to completion of the configuration change
US5926636A (en) Remote procedural call component management method for a heterogeneous computer network
US6105074A (en) Data processing method and device
US20020152239A1 (en) Method, system, and program for providing data updates to a page including multiple regions of dynamic content
US6148323A (en) System and method for managing the execution of system management
US20020046300A1 (en) Associating multiple display units in a grouped server environment
US20020111995A1 (en) Platform-independent distributed user interface system architecture
US5724532A (en) Method and apparatus for exchanging information between application programs according to a drag and drop operation
US6901596B1 (en) Method of communicating asynchronous events to remote procedure call clients
US6567848B1 (en) System for coordinating communication between a terminal requesting connection with another terminal while both terminals accessing one of a plurality of servers under the management of a dispatcher
US20070294626A1 (en) Controlling application sharing
US20040103413A1 (en) Distributed process runner
US20020174181A1 (en) Sharing OpenGL applications using application based screen sampling
US20060015817A1 (en) Method to dynamically customize a web user interface
US5828569A (en) Method and apparatus for maintaining network connections across a voluntary process switchover
US20020156930A1 (en) System, method, and article of manufacture for facilitating communication between an IMS process and CORBA process

Legal Events

Date Code Title Description
AS Assignment

Owner name: CITRIX SYSTEMS, INC., FLORIDA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:PANASYUK, ANATOLIY;DUURSMA, MARTIN;REEL/FRAME:009590/0202

Effective date: 19981023

AS Assignment

Owner name: CITRIX SYSTEMS, INC., FLORIDA

Free format text: CORRECTIVE DOCUMENT FILED TO PROPERTY IDENTIFY THE ASSIGNEE S STATE OF INCORPORATION AS DELAWARE PREVIOUSLY RECORDED ON REEL 9590 FRAME 0202;ASSIGNORS:PANASYUK, ANATOLIY;DUURSMA, MARTIN;REEL/FRAME:010894/0990

Effective date: 19981023

CC Certificate of correction
FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

FPAY Fee payment

Year of fee payment: 12