English:
[0001] Today's designers and engineers are working with increasingly large data sets and complex models and simulations. Whether it is increased reality of an animated movie or an in-depth simulation of a prototype device, the need for higher performance computing, more data and increased realism is the order of the day. Remote visualization or graphics (referred to collectively herein as "remote visualization") systems are used by designers and engineers to view data from afar and collaborate via remote visualization sessions. As known in the art, a remote visualization system provides a "just like local" experience by allowing a user of a local computer to access and use computing resources (e.g., share the desktop) of a remote computer (e.g., a supercomputer).
[0002] Since the work done by today's designers and engineers is very detailed and complex, the engineers and designers utilizing a remote visualization system often employ multiple (e.g., two or more) physical display devices or monitors (hereinafter referred to as local displays or physical displays) at the local computer because the visualizations are too detailed or too large to fully render on a single display at a desired resolution. Additionally, designers and engineers often multi-task by displaying and using various local applications (i.e., applications residing and/or executing on the local computer) in various application windows on the multiple displays. Each application window may be contained within one local display or, alternatively, may span across two or more local displays.
[0003] When rendering pixel information on the local displays relative to locally- executing applications (i.e., non remote-executing applications such as the operating system desktop, etc.), various display-configuring applications (e.g., DualView mode of the Microsoft Windows XP operating system, nView from NVIDIA, and the like known in the art) may be employed by a user to configure the local displays so that different locally- executing applications are associated with one or more of the local displays. As known in the art, such display-configuring applications manage the local displays by subdividing an aggregate display size or resolution into multiple logical displays, each of which is then associated with a different local display. For example, if two displays are configured side by side (for example, as shown in FIG. 2) with each display having a pixel dimension (also referred to hereinafter as "resolution" or "display resolution") of 1280x1024, the operating system of the local computer would determine an aggregate display size of 2560x1024 which the display-configuring application then subdivides (e.g., using heuristics) into two logical displays.
[0004] Although conventional display-configuring applications are useful for managing the local displays relative to locally-executing applications, such conventional display-configuring applications do not cooperate with remote visualization systems. Moreover, such conventional display-configuring applications often complicate the configuration of local displays for remote visualization. Accordingly, a new display method for a remote visualization system would be an important improvement in the art.
[0005] FIG. 1 illustrates a block diagram of an embodiment of a remote visualization system; and
[0006] FIGS. 2-4 diagrammatically illustrate various example embodiments of a local display apparatus for the system of FIG. 1.
[0007] Turning now to the Figures a display method for a remote visualization system is provided. As shown in FIG. 1, an example embodiment of the remote visualization system is designated as 100. The remote visualization system 100 includes a remote computer 120 and a local computer 140 which communicate with each other via a network 130. The remote computer 120 may be any computing device known in the art, for example a personal computer such as a desktop or laptop, a blade workstation, a supercomputer, etc. Similarly, the local computer 140 may be any computing device known in the art, for example a personal computer such as a desktop or laptop, a thin client with an embedded operating system, a PDA, etc. The local computer 140 may be employed by a user for accessing and utilizing resources of the remote computer 120. Herein, the local computer 140 is described in the context of being employed by a user for accessing and utilizing visualization or graphics resources of the remote computer 120, however, the local computer 140 may be employed for other purposes as well. In some instances the remote computer 120 may have resources (e.g., computational power, specialized applications, etc.) that are substantially different or that exceed the resources of the local computer 140. However, in other instances the remote computer 120 may have substantially similar resources as the local computer 140. As shown, the local computer 140 communicates with the remote computer 120 (and vice versa) via a network 130 (e.g., a LAN or WAN, the Internet, a virtual private network (VPN), etc.). However, the remote and local computers 120, 140 may communicate with each other directly, for example over a wired or wireless point-to- point connection. Alternatively, the remote and local computers 120, 140 may communicate with each other directly or indirectly via an ad hoc peer-to-peer connection.
[0008] As shown, the remote computer 120 includes a visualization application 122 and a graphics server application 124. The visualization application 122 resides and/or executes on the remote computer 140 for processing data and remotely rendering images relative to the processed data. A remote display 126, which is optionally included or omitted relative to the configuration of the remote computer 120 as indicated by depiction of the remote display 126 in broken lines, is connected with the remote computer 120 for displaying images rendered by the visualization application 122. In embodiments of the system 100 wherein the remote computer 120 is a blade workstation or server blade, the remote display 126 is omitted because a frame buffer or graphics card of the blade workstation or server blade is not accessible via a connector. The graphics server application 124 is in communication with the visualization application 122 (as well as other applications available on the remote computer 120) for receiving pixel information generated by the visualization application 122 (and which could be remotely rendered on the remote display 126 if present). The graphics server application 124 receives the pixel information, processes the pixel information (e.g., using compression and/or encryption techniques), and transmits the processed pixel information to the local computer 140, particularly a graphics client application 142 executing on the local computer 140.
[0009] The local computer 140 is configured at a second location, which may be remote from or proximate to (e.g., in the same room or building) the remote computer 120. Connected with the local computer 140 are a user input 150 (e.g., a keyboard, mouse, etc.) and a display apparatus 160. The display apparatus 160 comprises two or more local, physical display devices (e.g., CRT monitors or displays, LCD monitors or displays, etc.). Although the two or more local, physical display devices may be the same type and have similar sizes or resolutions, indeed the two or more physical display devices may be different types (e.g., one CRT and one LCD) and/or have different sizes and/or resolutions. As can be appreciated, the two or more local, physical display devices constituting display apparatus 160 may be physically oriented, arranged or otherwise configured in various ways as shown for example in FIGS. 2-4 which illustrate various embodiments of display apparatus 160.
[0010] As shown, the local computer 140 includes a graphics client application 142 which is a local client application counterpart to the graphics server application 124 of the remote computer 120. That is, the graphics client application 142 communicates with the graphics server application 124 (and vice versa) for initiating/establishing and maintaining a remote visualization session between the local computer 140 and the remote computer 120 via the network 130. As will be explained hereafter, the graphics client application 142 and the graphics server application 124 cooperate to provide application transparency - allowing a user of the local computer 140 to access and use remote applications on the remote computer 120 as if the remote applications were residing and/or executing on the local computer 140.
[0011] More particularly, the graphics client application 142 is operable to generate one or more visualization windows that "cover" one or more physical display devices of the display apparatus 160 connected with the local computer. Although the graphics client application 142 may generate more than one visualization window, for convenience of explanation hereinafter the graphics client application 142 is described as generating one visualization window per visualization session. If additional visualization windows are desired, the user of the local computer 140 may initiate other visualization sessions by executing the graphics client application 142 multiple times, for example, with respect to various remote computers that may be the same as or different than remote computer 120. The visualization window generated by the graphics client application 142 may be similar in appearance and/or operation/functionality to "task windows" that may be generated by the operating system of the local computer 140. As known in the art, task windows are used for concurrent, segregated display of different locally-originating data (e.g., different applications being executed on the local computer 140, etc.) on the same display device. However, in contrast to task windows, the visualization window is used for displaying data, graphics or visualizations that originate from the remote computer 120, particularly the visualization application 122 in cooperation with the graphics server application 124.
[0012] The graphics client application 142 receives user input signals regarding the remote visualization session (e.g., visualization commands) from the user input 150 and, relative to the user input signals, transmits the user input signals to the graphics server application 124 so that a user of the local computer 120 can interact with the visualization application 122 via the visualization window being displayed on a local display device (of apparatus 160) just as if the user were physically interacting with the remote computer 120. In response to the user input signal at the local computer 140, the graphics server application 124 communicates with the visualization application 122 which performs a corresponding visualization operation (e.g., resize, move or otherwise change an object being rendered/visualized). Relative to the visualization operation, the visualization application 122 outputs pixel information which is received by the graphics server application 124. The graphics server application 124 communicates the pixel information to the graphics client application 142 which renders the pixel information in the visualization window being displayed on the display device of display apparatus 160. Since the foregoing-described operations are performed quickly and with low latency, the system 100 provides a user of the local computer 140 with the "just like local" feel of working solely with locally-executing applications.
[0014] In response to receiving the first quantity and information regarding the display device which is to display the visualization window the graphics server application 124 communicates with the graphics client application 142 for initiating, creating or otherwise generating the visualization window that will cover the first quantity of local physical display devices. Furthermore, in response to receiving the first quantity the graphics server application 124 generates a virtual display at the remote computer 120. The graphics server application 124 and the graphics client application 142 communicate with each other for associating or mapping the virtual display with the visualization window. The virtual display and the visualization window may be generated substantially simultaneously or sequentially. By employing the visualization window the user of the local computer 140 may initiate and operate the visualization application 122 relative to the virtual display so that pixel information generated by the application 122 (and "displayed" on the virtual display) is received by the graphics server application 124 and sent to the graphics client application 142 for rendering the pixel information and displaying a visualization or graphics in the visualization window which is being displayed on the first quantity of local physical display devices. As such, it can be appreciated that data being displayed on the visualization window is substantially similar to data being "displayed" on the virtual display.
[0015] As previously mentioned, the first quantity may be equal to the detected quantity of display devices so that all detected local display devices are used in the remote visualization session. However, the first quantity may be less than the detected quantity if the user of the local computer desires to selectively employ one or more of the local physical displays for the remote visualization session. In some instances, the user may specify a subset of local display devices that the user wishes to cover with the visualization window. In this way other display devices not in the subset may be used for displaying "local" information (i.e., information generated by an application being executed by the local computer 140). However, in other instances the covering of one or more display devices with the visualization window may be accomplished based on a default setting or a user's predetermined preference that is defined by a user profile. One example default setting for the visualization window may be to cover the leftmost display device (e.g., display 210 shown in FIG. 2).
[0016] The display arrangement module 148 cooperates with the display quantity module 146 for configuring the visualization window according to the physical attributes of the local display device or devices which are to be covered by the visualization window. Also, in instances when more than one visualization windows are used relative to more than one local display devices, the display arrangement module 148 cooperates with the display quantity module 146 for configuring the visualization windows according to the physical layout/configuration of the display devices. The display arrangement module 148 may communicate with the local computer 140 for determining attributes of the devices of the display apparatus 160. Attributes may include but are not limited to a resolution expressed/defined as either a total number of pixels or a pixel dimension (e.g., a number of horizontal and vertical pixels such as 1280x1024 meaning 1280 horizontal pixels by 1024 vertical pixels), a coordinate (e.g., relative to a predetermined reference point such as a (0,0) horizontal- vertical (i.e., x-y) pixel origin of a default or selected local display), and an orientation (e.g., landscape or portrait) of each local display device of the display apparatus 160. As can be appreciated, if resolution is expressed or defined as a pixel dimension, the orientation may be inherently defined by the resolution/pixel dimension. By communicating the quantity, resolution, coordinate and orientation information to the graphics server application 124, the system 100 is operable to automatically match the visualization window to a desired or specified display device. Alternatively, a user may communicate with the display arrangement module 148 (e.g., using the user input 150) for specifying or otherwise customizing of the configuration of virtual displays and corresponding visualization windows.
[0017] Referring now to FIG. 2, an example of a display method is provided according to a first embodiment 200 of the display apparatus 160 (FIG. 1). As shown in FIG. 2, the first embodiment 200 of display apparatus 160 includes two local displays 210, 220 in a side-by-side horizontal arrangement. The first local display 210 is configured to the left of and adjacent to the second local display 220. The first local display 210 includes a coordinate 212 and a resolution/orientation defined by the horizontal pixel dimension 214 and the vertical pixel dimension 216. Similarly, the second local display 220 includes a coordinate 222 and a resolution/orientation defined by the horizontal pixel dimension 224 and the vertical pixel dimension 226. For convenience of description hereinafter, vertical pixel dimensions 216, 226 are substantially similar and coordinate 212 is to be defined as the predetermined reference point or (0,0) pixel origin. However, vertical pixel dimensions 216, 226 being substantially similar should not be taken as limiting the present system and method. Furthermore, coordinate 212 being defined as the predetermined reference point or (0,0) pixel origin should not be taken as limiting the present system and method. Indeed, coordinate 222 or other point on one of the first and second local displays 210, 220 may be used as the predetermined reference point as well. The overall or aggregate resolution of the display apparatus 200 is defined by the overall horizontal pixel dimension 230 and the vertical pixel dimension 216 or 226.
[0018] Now, during the initiation of the remote visualization session, for example, the display quantity module 146 detects a quantity of two local displays 210, 220 and the display arrangement module 148 determines that the first local display 210 has attributes defined by: 1) its coordinate 212 relative to a reference point; and 2) its resolution/orientation - the first local display 210 being expressed as (X1, Y1, W1, H1), wherein X1= 0, Y1= 0, W1= the horizontal pixel dimension 214 (e.g., 1280 pixels), and H1= the vertical pixel dimension 216 (e.g., 1024 pixels). Similarly, the display arrangement module 148 determines that the second local display 220 has attributes expressed as (X2, Y2, W2, H2), wherein X2= an offset equal to the horizontal pixel dimension 214 (e.g., 1280 pixels), Y2= 0, W2= the horizontal pixel dimension 224 (e.g., 1280 pixels), and H2= the vertical pixel dimension 226 (e.g., 1024 pixels). That is, the second local display 220 is offset in the positive direction (i.e., to the right) by the horizontal pixel dimension 214 of the first local display 210.
[0019] If the single visualization window is to cover display 210, the graphics client application 142 communicates the quantity (i.e., 1) and an attribute of the display 210 (i.e., (X1, Y1, W1, H1)) to the graphics server application 124 so that the graphics server application 124 generates a single virtual display and the corresponding visualization window in a one-to-one correspondence with the local display 210. Similarly, if the single visualization window is to cover display 220, the graphics client application 142 communicates the quantity (i.e., 1) and an attribute of the display 220 (i.e., (X2, Y2, W2, H2)) to the graphics server application 124 so that the graphics server application 124 generates a single virtual display and the visualization window in a one-to-one correspondence with the local display 220. In both of the foregoing examples relating to the covering of only one display (i.e., display 210 or 220) of a multi-display arrangement, it should be understood that the coordinates (X1, Y1) and (X2, Y2) are both defined to be (0,0) regardless of the predetermined reference point because the single remote display that is generated need not be translated or offset. For example, even when the reference point is set as point 212 and the visualization window is to cover only the right display device 220, the graphics server application 124 generates the remote display at (0,0) (i.e., of a remote desktop of the remote computer 120) not at (X2, Y2) since there is only one remote display corresponding to the visualization window covering the desired display device. That is, while the visualization window is to be offset on the client desktop to (X2, Y2), that doesn't mean there is an offset of the remote display on the remote desktop. In another instance where the graphics client application 142 is used to generate two visualization windows - one visualization window covering each display 210, 220, the graphics client application 142 communicates the quantity (i.e., 2) and attributes of the displays 210, 220 (i.e., (X1, Y1, W1, H1) and (X2, Y2, W2, H2)) to the graphics server application 124 so that the graphics server application 124 generates first and second virtual displays and first and second visualization windows in a one-to-one correspondence with the local displays 210, 220 respectively. In this case, at least one of the coordinates (X1, Y1) and (X2, Y2) is defined to not be (0,0).
[0020] In some instances the user may wish to specify or designate how many visualization windows are generated, or otherwise specify how visualization windows are to be associated or mapped with one or more of the physical local display devices for customizing the covering of display devices with visualization windows (e.g., adjusting the virtual display offset or virtual display resolution). As mentioned previously, the covering of one or more display devices with visualization windows may be based on a default setting such as, for example causing the visualization window to cover the display that a user employs for initiating the graphics client application 142. Alternatively, the covering of one or more display devices with visualization windows may be based on a user's predetermined preference that is defined by a user profile. However, in some other instances the user may interface with the graphics client application 142 (e.g., using the user input 150) to adjust or customize the attributes/configuration of the virtual displays and visualization windows. For example, the user may execute or launch the graphics client application 142 multiple times for generating multiple visualization windows. In this example, the user may specify how each visualization window covers one or more of the display devices (e.g., referring to FIG. 2, a first visualization window generated by a first executed client application may cover display 210 whereas a second visualization window generated by a subsequently executed client application may cover display 220 or vice versa). Indeed, the user may specify or customize the configuration of the visualization windows and virtual displays relative to the local displays in numerous ways.
[0022] Since various examples of covering displays of a display apparatus 160 constituting two-display devices 210, 220 have been discussed previously with respect to FIG. 2, the covering of displays 310, 320, 330 of a three-display device 300 shown in FIG. 3 will not be repeated for brevity. However, it can be appreciated that the user may wish to cover one or more of the displays 310, 320, 330 in various ways (e.g., with one or more visualization windows relative to one or more virtual displays). For example, the user may execute or launch the graphics client application 142 up to three times for generating three different and distinct visualization windows. In this example, the user may specify how each of the three visualization windows covers one or more of the display devices 310, 320, 330. Referring to FIG. 3, a first visualization window generated by a first executed client application may cover display 310 whereas second and third visualization windows generated by subsequently-executed client applications may cover displays 320, 330 respectively (or vice versa). Alternatively, the first visualization window generated by a first executed client application may cover display 330 whereas second and third visualization windows generated by subsequently- executed client applications may cover displays 310, 320 respectively (or vice versa). In yet another alternative configuration the first visualization window generated by a first executed client application may cover display 320 whereas second and third visualization windows generated by subsequently-executed client applications may cover displays 310, 330 respectively (or vice versa). In a further example the user may execute or launch the graphics client application 142 two times for generating two different and distinct visualization windows. The user may specify how each of the two visualization windows covers one or more of the display devices 310, 320, 330. Referring to FIG. 3, a first visualization window generated by a first executed client application may cover display 310 whereas the second visualization window generated by a subsequently-executed client application may cover displays 320 and 330. Similarly, the first visualization window generated by a first executed client application may cover display 330 whereas the second visualization window generated by a subsequently-executed client application may cover displays 310 and 320. Still further, in instances when only one visualization window is generated by executing or launching the graphics client application 142 a single time, the single visualization window may cover displays 310 and 320 or, alternatively, displays 320 and 330. Indeed, the visualization windows may be configured in various ways relative to the displays 310, 320, 330.
[0023] Referring now to FIG. 4, a third embodiment 400 of the display apparatus 160 (FIG. 1) is described. As shown in FIG. 4, the second embodiment 400 of display apparatus 160 includes four local displays 410, 420, 430, 440 configured in a two-by- two array arrangement. The first local display 410 is configured at the top left of the array horizontally adjacent to the second local display 420 and vertically adjacent to the third local display 430. The second local display 420 is configured at the top right of the array horizontally adjacent to the first local display 410 and vertically adjacent to the fourth local display 440. The third local display 430 is configured at the bottom left of the array horizontally adjacent to the fourth local display 440 and vertically adjacent to the first local display 410. The fourth local display 440 is configured at the bottom right of the array horizontally adjacent to the third local display 440 and vertically adjacent to the second local display 420. The first local display 410 includes a coordinate 412 and a resolution defined by the horizontal pixel dimension 414 and the vertical pixel dimension 416. Similarly, the second local display 420 includes a coordinate 422 and a resolution defined by the horizontal pixel dimension 424 and the vertical pixel dimension 426. The third local display 430 includes a coordinate 432 and a resolution defined by the horizontal pixel dimension 434 and the vertical pixel dimension 436. Finally, the fourth local display 440 includes a coordinate 442 and a resolution defined by the horizontal pixel dimension 444 and the vertical pixel dimension 446. For convenience of description hereinafter, vertical pixel dimensions 416, 426, 436, 446 are substantially similar and coordinate 412 is to be defined as the predetermined reference point or (0,0) pixel origin. However, vertical pixel dimensions 416, 426, 436, 446 being substantially similar should not be taken as limiting the present system and method. Furthermore, coordinate 412 being defined as the predetermined reference point or (0,0) pixel origin should not be taken as limiting the present system and method. Indeed, coordinates 422, 432, 442 or other point on one of the local displays 410, 420, 430, 440 may be used as the predetermined reference point as well. The overall or aggregate resolution of the display apparatus 400 is defined by the overall horizontal pixel dimension 450 and the overall vertical pixel dimension 460.
[0024] In view of the foregoing examples relative to FIGS. 2 and 3, it can be appreciated that the four displays 410-440 may be covered by one or more visualization windows. For example only one display (e.g., 410, 420, 430 or 440) may be covered by a single visualization window. In another example, only two horizontally adjacent displays (e.g., displays 410 and 420) may be covered by one or two visualization windows. In a further example it can be appreciated that only two vertically adjacent displays (e.g., displays 410 and 430) may be covered by one or two visualization windows. More particularly, when a user executes two client applications for generating two visualization windows, the user may specify a first visualization window having a portrait orientation for covering displays 410 and 430 (i.e., the first visualization window having a horizontal pixel dimension of 414 or 434 and a vertical pixel dimension of 460) and a second visualization window having a portrait orientation for covering displays 420 and 440 (i.e., the second visualization window having a horizontal pixel dimension of 424 or 444 and a vertical pixel dimension of 460). Still further, when a user executes two client applications for generating two visualization windows, the user may specify a first visualization window having a landscape orientation for covering displays 410 and 420 (i.e., the first visualization window having a horizontal pixel dimension of 414 plus 424 and a vertical pixel dimension of 416 or 426) and a second visualization window having a landscape orientation for covering displays 430 and 440 (i.e., the second visualization window having a horizontal pixel dimension of 434 plus 444 and a vertical pixel dimension of 436 or 446). Additionally, it should be appreciated that the visualization windows need not have the same orientation. For example, a first generated visualization window may be configured with a portrait orientation for covering displays 410 and 430 whereas a second generated visualization window may be configured with a landscape orientation for covering display 430 and 440, thereby overlapping display 430 with the first and second visualization windows and leaving the upper right display 420 out of the visualization sessions for displaying local resources. In view of the foregoing, it should be appreciated that each visualization window may overlay one or more local displays thus mapping to one or more virtual displays for each remote resource (e.g., each remote resource being accessed by a separate execution of the client application).
[0025] Although three embodiments 200, 300, 400 of the display apparatus 160 are provided, it should be appreciated that the display apparatus 160 may include additional local physical displays (i.e., more than four displays shown in FIG. 4) without limitation. Furthermore, it should be appreciated that the local physical displays constituting the display apparatus 160 may be arranged, oriented, positioned or otherwise configured in various ways without limitation. Moreover, although the illustrated embodiment 100 of the present system employs the display layout module 144 constituting the display quantity module 146 and the display arrangement module 148, other embodiments of the system may include a determination module 144 with additional or alternative modules, for example a module for determining angular orientation of a display - that is when a display is configured in an orientation that is neither of the conventional portrait nor the conventional landscape orientations determining module.

中文:
[0001]当今的设计师和工程师正与越来越大的数据集以及越来越复杂的模型和仿真打交道。无论是动画电影的增加的真实性还是原型设备的深入仿真,对于更高性能的计算,更多的数据以及增加的真实感的需求是当前的主要情况。设计师和工程师使用远程可视化或图形(这里统称为“远程可视化”)系统来从远处查看数据并且通过远程可视化会话来合作。如本领域中已知的,远程可视化系统通过允许本地计算机的用户来访问和使用远程计算机(例如,超级计算机)的计算资源(例如,共享桌面)提供“恰如本地”的体验。
[0002]由于当今的设计师和工程师完成的工作非常详细和复杂,利用远程可视化系统的设计师和工程师通常在本地计算机处采用多个(例如,两个或更多个)物理显示设备或者监视器(以下称为本地显示器或者物理显示器),因为可视化太详细或者太大而不能以希望的分辨率在单个显示器上完全再现。另外,设计师和工程师常常通过在多个显示器上的各个应用窗口中显示和利用各种本地应用(即,在本地计算机上驻留和/或执行的应用)来完成多个任务。每个应用窗口可以被包含在一个本地显示器内或者,可选地,可以跨越两个或更多个本地显示器。
[0003]当相对于本地执行应用(即,非远程执行应用例如操作系统桌面,等)在本地显示器上再现像素信息时,用户可以使用各种显示器配置应用(例如,微软Windows XP操作系统的DualView模式,来自NVIDIA的nView,和本领域中已知的类似应用)来配置本地显示器以使得不同的本地执行应用与一个或多个本地显示器相关联。如本领域中已知的,这种显示器配置应用通过把总显示器大小或者分辨率细分为多个逻辑显示器来管理本地显示器,每个逻辑显示器然后与不同的本地显示器相关联。例如,如果两个显示器被配置为并排的(例如,如图2所示),其中每个显示器的像素尺寸(以下也称为“分辨率”或者“显示分辨率”)为1280×1024,则本地计算机的操作系统会确定总显示器大小为2560×1024,显示器配置应用然后将其细分(例如,利用试探法)为两个逻辑显示器。
[0004]虽然传统的显示器配置应用对于相对于本地执行应用管理本地显示器是有用的,但是这种传统的显示器配置应用不能与远程可视化系统合作。此外,这种传统的显示器配置应用常常使得将本地显示器配置用于远程可视化变得复杂。因此,一种新的用于远程可视化系统的显示方法将是本领域中的重要改进。
[0005]图1示出了远程可视化系统的实施例的框图;以及
[0006]图2-4示意性地示出了用于图1的系统的本地显示装置的各个示例实施例。
[0007]现在转到附图,提供了一种用于远程可视化系统的显示方法。如图1所示,远程可视化系统的示例实施例被标示为100。远程可视化系统100包括远程计算机120和本地计算机140,它们通过网络130互相通信。远程计算机120可以是本领域中已知的任何计算设备,例如个人计算机(如台式计算机或膝上型计算机),刀片工作站,超级计算机,等等。类似地,本地计算机140可以是本领域中已知的任何计算设备,例如个人计算机(如台式计算机或膝上型计算机),具有嵌入式操作系统的瘦客户端,PDA,等等。用户可以使用本地计算机140来访问和利用远程计算机120的资源。此处,在被用户用来访问和利用远程计算机120的可视化或者图形资源的上下文中描述本地计算机140,然而,本地计算机140也可以被用于其他目的。在一些情况中,远程计算机120可以具有与本地计算机140的资源显著不同或者超出本地计算机140的资源的资源(例如,计算能力,专门的应用,等等)。然而,在其他情况中,远程计算机120可以具有与本地计算机140基本类似的资源。如图所示,本地计算机140与远程计算机120通过网络130(例如,LAN或WAN,因特网,虚拟专用网络(VPN),等)通信(反之亦然)。然而,远程和本地计算机120,140可以例如通过有线或无线的点到点连接直接彼此通信。可选地,远程和本地计算机120,140可以通过专门的对等连接直接地或者间接地彼此通信。
[0008]如图所示,远程计算机120包括可视化应用122和图形服务器应用124。可视化应用122在远程计算机140上驻留和/或执行从而处理数据以及远程地再现与所处理的数据有关的图像。远程显示器126(相对于远程计算机120的配置而言,远程显示器126任选地被包括或者被省略,如由用虚线描绘远程显示器126所指示的)与远程计算机120连接以显示可视化应用122再现的图像。在其中远程计算机120是刀片工作站或者服务器刀片的系统100的实施例中,由于通过连接器不能访问刀片工作站或者服务器刀片的帧缓冲器或图形卡,因此远程显示器126被省略。图形服务器应用124与可视化应用122(和远程计算机120上可用的其他应用)通信从而接收可视化应用122生成的像素信息(如果存在远程显示器126的话,其可以被远程地再现到远程显示器126上)。图形服务器应用124接收像素信息,处理像素信息(例如,利用压缩和/或加密技术),并传送处理过的像素信息到本地计算机140,特别是本地计算机140上执行的图形客户端应用142。
[0009]本地计算机140被配置在第二位置,第二位置可以远离或者临近(例如,在同一个房间或者大楼内)远程计算机120。与本地计算机140相连的是用户输入150(例如,键盘、鼠标,等)以及显示装置160。显示装置160包括两个或者更多个本地的、物理显示设备(例如,CRT监视器或显示器,LCD监视器或显示器,等)。虽然所述两个或者更多个本地的、物理显示设备可以是相同的类型并具有相似的大小或者分辨率,实际上所述两个或更多个物理显示设备可以是不同的类型(例如,一个CRT和一个LCD)和/或具有不同的大小和/或分辨率。如可以理解的,构成显示装置160的两个或更多个本地的、物理显示设备可以按照各种方式在物理上被定向,布置或者以其他方式配置,如例如在示出显示装置160的各个实施例的图2-4中所示的。
[0010]如图所示,本地计算机140包括图形客户端应用142,图形客户端应用142是与远程计算机120的图形服务器应用124配对的本地客户端应用。即,图形客户端应用142与图形服务器应用124通信(反之亦然)来经由网络130启动/建立和维持本地计算机140和远程计算机120之间的远程可视化会话。如下面将解释的,图形客户端应用142和图形服务器应用124合作来提供应用透明性——允许本地计算机140的用户访问和使用远程计算机120上的远程应用,就像远程应用在本地计算机140上驻留和/或执行一样。
[0011]更特别地,图形客户端应用142在操作中生成一个或多个可视化窗口,其“覆盖”与本地计算机连接的显示装置160的一个或多个物理显示设备。虽然图形客户端应用142可以生成多于一个的可视化窗口,以下为了解释方便所述图形客户端应用142被描述为每个可视化会话生成一个可视化窗口。如果希望附加的可视化窗口,本地计算机140的用户可以通过例如关于可能与远程计算机120相同或者不同的各个远程计算机多次执行图形客户端应用142来启动其他可视化会话。图形客户端应用142生成的可视化窗口可以与本地计算机140的操作系统可生成的“任务窗口”在外观和/或操作/功能性上相似。如本领域中已知的,任务窗口用于在同一显示设备上并发地、分开显示不同的本地始发的数据(例如,本地计算机140上执行的不同应用,等等)。然而,与任务窗口相反,可视化窗口用于显示源自远程计算机120、特别是源自与图形服务器应用124合作的可视化应用122的数据、图形或可视化。
[0012]图形客户端应用142从用户输入150接收关于远程可视化会话的用户输入信号(例如,可视化命令)并且,相对于用户输入信号,将用户输入信号传输至图形服务器应用124,使得本地计算机120的用户可以通过显示在(装置160的)本地显示设备上的可视化窗口与可视化应用122交互,恰如用户在物理上和远程计算机120交互一样。响应于在本地计算机140处的用户输入信号,图形服务器应用124和可视化应用122通信,可视化应用122执行相应的可视化操作(例如,对正再现/可视化的对象调整大小,移动或者以其他方式进行改变)。相对于可视化操作,可视化应用122输出像素信息,其被图形服务器应用124接收。图形服务器应用124将像素信息传送到图形客户端应用142,图形客户端应用142在显示装置160的显示设备上显示的可视化窗口中再现像素信息。由于前面描述的操作以低等待时间被快速执行,所以系统100向本地计算机140的用户提供独自与本地执行应用一起工作的“恰如本地”的感觉。
[0014]响应于接收到第一数量和关于要显示可视化窗口的显示设备的信息,图形服务器应用124与图形客户端应用142通信以启动,创建或者以其他方式生成可视化窗口,该可视化窗口将覆盖第一数量的本地物理显示设备。进一步,响应于接收到第一数量,图形服务器应用124在远程计算机120处生成虚拟显示。图形服务器应用124和图形客户端应用142相互通信以关联或映射虚拟显示与可视化窗口。虚拟显示和可视化窗口可以基本上同时或者顺序生成。通过使用可视化窗口,本地计算机140的用户可以相对于虚拟显示启动和操作可视化应用122,使得应用122生成(并“被显示”在虚拟显示上)的像素信息被图形服务器应用124接收以及被发送到图形客户端应用142,以用于在被显示在第一数量的本地物理显示设备上的可视化窗口中再现像素信息和显示可视化或图形。这样,可以理解的是可视化窗口中显示的数据与“显示”在虚拟显示上的数据基本上类似。
[0015]如前面提到的,第一数量可以等于检测到的显示设备的数量,从而所有检测到的本地显示设备被用于远程可视化会话中。但是,如果本地计算机的用户希望选择性地使用一个或多个本地物理显示器来进行远程可视化会话,第一数量可以小于检测到的数量。在一些情况中,用户可以指定用户希望用可视化窗口覆盖的本地显示设备的子集。以这种方式,不在该子集中的其他显示设备可以用来显示“本地”信息(即,本地计算机140执行的应用生成的信息)。然而,在其他情况中,用可视化窗口来覆盖一个或多个显示设备可以基于缺省设置或由用户简档定义的用户的预定偏好来实现。可视化窗口的一个示例缺省设置可以是覆盖最左边的显示设备(例如,附图2中示出的显示器210)。
[0016]显示器布置模块148和显示器数量模块146合作来根据要被可视化窗口覆盖的一个或多个本地显示设备的物理属性来配置可视化窗口。此外,在当相对于多于一个本地显示设备使用多于一个可视化窗口时的情况中,显示器布置模块148与显示器数量模块146合作以根据显示设备的物理布局/配置来配置可视化窗口。显示器布置模块148可以和本地计算机140通信来确定显示装置160的设备的属性。属性可以包括但不限于被表示/定义为或者像素的总数目或者像素尺寸(例如,水平和垂直像素的数目,如1280×1024表示1280个水平像素乘以1024个垂直像素)的分辨率,坐标(例如,相对于预定的参考点,如缺省的或者选择的本地显示器的(0,0)水平-垂直(即,x-y)像素原点),以及显示装置160的每个本地显示设备的取向(例如,横向或者纵向)。如可以理解的是,如果分辨率被表示或者定义为像素尺寸,取向可以固有地由分辨率/像素尺寸来定义。通过向图形服务器应用124传送数量、分辨率、坐标和取向信息,系统100在操作中自动将可视化窗口匹配到希望的或者指定的显示设备。可选地,用户可以与显示器布置模块148(例如,利用用户输入150)通信来指定或者以其他方式定制虚拟显示以及对应的可视化窗口的配置。
[0017]现在参考图2,根据显示装置160(图1)的第一实施例200提供显示方法的示例。如图2所示,显示装置160的第一实施例200包括水平并排布置的两个本地显示器210,220。第一本地显示器210被配置为在第二本地显示器220的左边并和其相邻。第一本地显示器210包括坐标212以及由水平像素尺寸214和垂直像素尺寸216定义的分辨率/取向。类似地,第二本地显示器220包括坐标222以及由水平像素尺寸224和垂直像素尺寸226定义的分辨率/取向。以下为了描述方便,垂直像素尺寸216,226基本上类似并且坐标212被定义为预定参考点或者(0,0)像素原点。但是,垂直像素尺寸216,226基本上类似不应该理解为限制本系统和方法。进一步,坐标212被定义为预定参考点或者(0,0)像素原点不应该理解为限制本系统和方法。实际上,坐标222或者在第一和第二本地显示器210,220中的一个上的其他点也可以用作预定参考点。显示装置200的总的或者总计分辨率由总的水平像素尺寸230和垂直像素尺寸216或226定义。
[0018]现在,在远程可视化会话的启动期间,举例来说,显示器数量模块146检测到两个本地显示器210,220的数量,并且显示器布置模块148确定第一本地显示器210具有由以下参数定义的属性:1)相对于参考点的它的坐标212;以及2)它的分辨率/取向-第一本地显示器210被表示为(X1,Y1,W1,H1),其中X1=0,Y1=0,W1=水平像素尺寸214(例如,1280像素),以及H1=垂直像素尺寸216(例如,1024像素)。类似地,显示器布置模块148确定第二本地显示器220具有表示为(X2,Y2,W2,H2)的属性,其中X2=与水平像素尺寸214(例如,1280像素)相等的偏移,Y2=0,W2=水平像素尺寸224(例如,1280像素),以及H2=垂直像素尺寸226(例如,1024像素)。也就是说,第二本地显示器220沿正向(即,向右)偏移第一本地显示器210的水平像素尺寸214。
[0019]如果单个可视化窗口要覆盖显示器210,图形客户端应用142向图形服务器应用124传送数量(即,1)和显示器210的属性(即,(X1,Y1,W1,H1)),以使得图形服务器应用124生成与本地显示器210一一对应的单个虚拟显示和对应的可视化窗口。类似地,如果单个可视化窗口要覆盖显示器220,图形客户端应用142向图形服务器应用124传送数量(即,1)和显示器220的属性(即,(X2,Y2,W2,H2)),以使得图形服务器应用124生成与本地显示器220一一对应的单个虚拟显示和可视化窗口。在上述两个与覆盖多显示器布置中的仅仅一个显示器(即,显示器210或220)相关的示例中,应该理解,坐标(X1,Y1)和(X2,Y2)均被定义为(0,0),而不管预定参考点如何,因为生成的单个远程显示不需要被平移或者偏移。例如,即使当参考点被设置为点212并且可视化窗口仅要覆盖右边的显示设备220,图形服务器应用124在(即,远程计算机120的远程桌面的)(0,0)而不是在(X2,Y2)生成远程显示,因为存在仅仅一个与覆盖希望的显示设备的可视化窗口相对应的远程显示。即,虽然可视化窗口要在客户端桌面上被偏移至(X2,Y2),这并不意味着在远程桌面上存在远程显示的偏移。在其中图形客户端应用142被用于生成两个可视化窗口-一个可视化窗口覆盖每个显示器210,220的另一情况中,图形客户端应用142向图形服务器应用124传送数量(即,2)和显示器210,220的属性(即,(X1,Y1,W1,H1)和(X2,Y2,W2,H2)),以使得图形服务器应用124生成与本地显示器210,220分别一一对应的第一和第二虚拟显示以及第一和第二可视化窗口。在这种情况下,坐标(X1,Y1)和(X2,Y2)中的至少一个被定义为不是(0,0)。
[0020]在一些情况中,用户可能希望指定或者指明生成多少可视化窗口,或者以其他方式指定如何将可视化窗口与一个或多个物理本地显示设备关联或者映射以定制用可视化窗口覆盖显示设备(例如,调整虚拟显示的偏移或者虚拟显示分辨率)。如前文提到的,用可视化窗口覆盖一个或多个显示设备可以基于缺省设置,诸如例如,使得可视化窗口覆盖用户用来启动图形客户端应用142的显示器。可选地,用可视化窗口覆盖一个或多个显示设备可以基于由用户简档定义的用户的预定偏好。然而,在一些其他情况中,用户可以(例如,使用用户输入150)与图形客户端应用142对接以调整或者定制虚拟显示和可视化窗口的属性/配置。例如,用户可以多次执行或者起动图形客户端应用142来生成多个可视化窗口。在这个示例中,用户可以指定每个可视化窗口如何覆盖一个或多个显示设备(例如,参考图2,由第一执行的客户端应用生成的第一可视化窗口可以覆盖显示器210,而由随后执行的客户端应用生成的第二可视化窗口可以覆盖显示器220,反之亦然)。实际上,用户可以用很多方法指定或者定制可视化窗口和虚拟显示相对于本地显示器的配置。
[0022]由于上文中已经关于图2讨论了覆盖构成双显示设备210,220的显示装置160的显示器的各个示例,为了简明就不重复覆盖图3所示的三显示设备300的显示器310,320,330。但是,应该明白,用户可能希望以各种方式(例如,用相对于一个或多个虚拟显示的一个或多个可视化窗口)覆盖一个或多个显示器310,320,330。例如,用户可以执行或者起动图形客户端应用142高达3次来生成三个不同且相异的可视化窗口。在这个示例中,用户可以指定三个可视化窗口中的每一个如何覆盖显示设备310,320,330中的一个或者多个。参见图3,第一执行的客户端应用生成的第一可视化窗口可以覆盖显示器310,而由随后执行的客户端应用生成的第二和第三可视化窗口分别可以覆盖显示器320,330(反之亦然)。可选地,第一执行的客户端应用生成的第一可视化窗口可以覆盖显示器330,而由随后执行的客户端应用生成的第二和第三可视化窗口分别可以覆盖显示器310,320(反之亦然)。在又一种可选配置中,第一执行的客户端应用生成的第一可视化窗口可以覆盖显示器320,而由随后执行的客户端应用生成的第二和第三可视化窗口分别可以覆盖显示器310,330(反之亦然)。在进一步的示例中,用户可以执行或者起动图形客户端应用142两次来生成两个不同且相异的可视化窗口。用户可以指定两个可视化窗口中的每一个如何覆盖显示设备310,320,330中的一个或多个。参见图3,第一执行的客户端应用生成的第一可视化窗口可以覆盖显示器310,而由随后执行的客户端应用生成的第二可视化窗口可以覆盖显示器320和330。类似地,第一执行的客户端应用生成的第一可视化窗口可以覆盖显示器330,而由随后执行的客户端应用生成的第二可视化窗口可以覆盖显示器310和320。更进一步,在通过执行或起动图形客户端应用142单次来生成仅一个可视化窗口的情况中,单个可视化窗口可以覆盖显示器310和320或者,可选地,显示器320和330。实际上,可以相对于显示器310,320,330以各种方式配置可视化窗口。
[0023]现在参考图4,显示装置160(图1)的第三实施例400被描述。如图4所示,显示装置160的第二实施例400包括按二乘二阵列布置配置的四个本地显示器410,420,430,440。第一本地显示器410被配置为位于阵列左上方,与第二本地显示器420水平相邻,并且与第三本地显示器430垂直相邻。第二本地显示器420被配置为位于阵列右上方,与第一本地显示器410水平相邻,并且与第四本地显示器440垂直相邻。第三本地显示器430被配置为位于阵列左下方,与第四本地显示器440水平相邻,并且与第一本地显示器410垂直相邻。第四本地显示器440被配置为位于阵列右下方,与第三本地显示器440水平相邻,并且与第二本地显示器420垂直相邻。第一本地显示器410包括坐标412和由水平像素尺寸414和垂直像素尺寸416定义的分辨率。类似地,第二本地显示器420包括坐标422和由水平像素尺寸424和垂直像素尺寸426定义的分辨率。第三本地显示器430包括坐标432和由水平像素尺寸434和垂直像素尺寸436定义的分辨率。最后,第四本地显示器440包括坐标442和由水平像素尺寸444和垂直像素尺寸446定义的分辨率。以下为了方便描述,垂直像素尺寸416,426,436,446基本上类似并且坐标412被定义为预定参考点或者(0,0)像素原点。但是,垂直像素尺寸416,426,436,446基本上类似不应该理解为限制本系统和方法。进一步,坐标412被定义为预定参考点或者(0,0)像素原点不应该理解为限制本系统和方法。实际上,坐标422,432,442或者其他在本地显示器410,420,430,440中的一个上的点也可以用作预定参考点。显示装置400的总的或总计分辨率由总的水平像素尺寸450和总的垂直像素尺寸460来定义。
[0024]考虑到前面关于图2和3的示例,应该明白的是四个显示器410-440可以被一个或多个可视化窗口覆盖。例如单个可视化窗口可以覆盖仅仅一个显示器(例如,410,420,430或440)。在另一个示例中,一个或两个可视化窗口可以覆盖仅仅两个水平相邻的显示器(例如,显示器410和420)。在进一步的示例中,应该明白一个或两个可视化窗口可以覆盖仅仅两个垂直相邻的显示器(例如,显示器410和430)。更特别地,当用户执行两个客户端应用来生成两个可视化窗口时,用户可以指定具有纵向取向的第一可视化窗口覆盖显示器410和430(即,第一可视化窗口具有水平像素尺寸414或434以及垂直像素尺寸460)以及具有纵向取向的第二可视化窗口覆盖显示器420和440(即,第二可视化窗口具有水平像素尺寸424或444以及垂直像素尺寸460)。更进一步,当用户执行两个客户端应用来生成两个可视化窗口时,用户可以指定具有横向取向的第一可视化窗口覆盖显示器410和420(即,第一可视化窗口具有水平像素尺寸414加上424以及垂直像素尺寸416或426)以及具有横向取向的第二可视化窗口覆盖显示器430和440(即,第二可视化窗口具有水平像素尺寸434加上444以及垂直像素尺寸436或446)。此外,应该明白的是可视化窗口不需要具有同样的取向。例如,第一已生成的可视化窗口可以被配置为具有纵向取向以覆盖显示器410和430,而第二已生成的可视化窗口可以被配置为具有横向取向以覆盖显示器430和440,因此用第一和第二可视化窗口遮盖显示器430并且将右上方显示器420排除在可视化会话之外以用于显示本地资源。考虑到以上内容,应该明白的是每个可视化窗口可以覆盖一个或多个本地显示器从而对于每个远程资源映射到一个或多个虚拟显示(例如,通过客户端应用的单独执行来访问每个远程资源)。
[0025]虽然提供了显示装置160的三个实施例200,300,400,但是应该明白的是显示装置160可以不受限制地包括附加的本地物理显示器(即,比图4中所示的四个显示器更多的显示器)。进一步,应该明白的是构成显示装置160的本地物理显示器可以不受限制地按照各种方式布置、定向、定位或者以其他方式配置。此外,虽然本系统的所示实施例100使用了包括显示器数量模块146和显示器布置模块148的显示器布局模块144,本系统的其他实施例可以包括具有附加或者可选模块的确定模块144,例如确定显示器的角取向的模块——即当显示器被配置为既不是传统的纵向取向也不是传统的横向取向的取向时的确定模块。