4.8. 有关配置应用程序的提示

本节包含有关配置相关应用程序和文档以与 SGD 一起使用的提示。本节包括以下主题:

4.8.1. 在不显示 Webtop 的情况下启动应用程序或桌面会话

通过 SGD,您可以在不显示 Webtop 的情况下启动一个应用程序或全屏桌面会话。您可以通过以下任意方式执行此操作:

  • 使用 My Desktop-My Desktop 允许用户在不显示 Webtop 的情况下登录并显示应用程序。这通常用于全屏桌面应用程序。有关详细信息,请参见第 4.5.8 节 “使用 My Desktop”

  • 使用 SGD Web 服务-开发您自己的应用程序,以便从 URL 启动单个应用程序。您可以使用此方法从书签或收藏夹启动应用程序。

4.8.2. 为多监视器显示使用 RANDR

SGD 支持多监视器显示的 RANDR X 扩展。使用 RANDR 是将 SGD 配置为使用多监视器显示的最简单方法。

要将 SGD 配置为使用多台监视器,请执行以下配置步骤:

  1. (可选)配置最大显示大小。

  2. 配置要使用 RANDR 的阵列。

  3. 配置要使用 RANDR 的应用程序对象。

4.8.2.1. 配置最大显示大小

为了避免剪切窗口出现问题,可能需要提高 X 协议引擎的显示分辨率。

在管理控制台中,转至阵列中每台 SGD 服务器的 "Protocol Engines"(协议引擎)→ "X" 选项卡,并更改 "Client Window Size"(客户端窗口大小)设置。在 "Maximum Height"(最大高度)和 "Maximum Width"(最大宽度)字段中,键入希望支持的最高显示分辨率。

注意

增大 "Maximum Width"(最大宽度)和 "Maximum Height"(最大高度)属性会提高客户端设备和 SGD 服务器上应用程序的内存要求。

或者,也可以使用以下命令:

$ tarantella config edit --array \
--xpe-cwm-maxwidth pixels \
--xpe-cwm-maxheight pixels

以下示例指定了 3200 x 2048 像素的最大显示大小。

$ tarantella config edit --array \
--xpe-cwm-maxwidth 3200 \
--xpe-cwm-maxheight 2048

针对显示在多台监视器上的每个应用程序重复配置。

4.8.2.2. 为阵列启用 RANDR

默认情况下,禁用针对阵列使用 RANDR 扩展。

转至管理控制台的 "Global Settings"(全局设置)→ "Client Device"(客户端设备)选项卡,并选中 "RandR Extension"(RandR 扩展)复选框。

您也可以使用以下命令为阵列启用 RANDR:

tarantella config edit --array-xrandr-enabled 1

4.8.2.3. 为应用程序启用 RANDR 扩展

在管理控制台中,转至应用程序对象的 "Presentation"(表示)选项卡,并选中 "Window Size: RandR Extension"(窗口大小:RandR 扩展)复选框。

您也可以使用以下命令为应用程序对象启用 RANDR:

$ tarantella object edit --name app-name --xrandr 1

4.8.3. 不使用 RANDR 配置多监视器显示

将 SGD 配置为使用多监视器显示的最简单方法是使用 RANDR 扩展,如第 4.8.2 节 “为多监视器显示使用 RANDR”中所述。

在某些情况下,您可能不希望或者无法使用 RANDR。此主题介绍了不使用 RANDR 的备用配置方法。

您可以对 SGD 使用多显示端或双显示端监视器。但是,如果您的任何 X 应用程序的 "Window Type"(窗口类型)(--displayusing) 设置配置为 Client Window Management(客户端窗口管理)或 "Kiosk",则可能必须更改应用程序和监视器配置才能使用多台监视器。

另请参见第 4.2.1 节 “配置 X 应用程序对象”

要配置多台监视器以用于 "Window Type"(窗口类型)设置为 "Client Window Management"(客户端窗口管理)或 "Kiosk" 的 X 应用程序,请执行以下配置步骤:

  1. 禁用共享资源。

  2. 配置正确的桌面大小。

  3. 设置监视器。

4.8.3.1. 禁用共享资源

SGD 允许相似的应用程序共享资源,以降低内存开销。对于要使用多监视器显示的任何应用程序,必须禁用此功能。

在管理控制台中,转至在多台监视器上显示的应用程序的 "Performance"(性能)选项卡,并取消选中 "Share Resources Between Similar Sessions"(在类似的会话之间共享资源)复选框。

或者,也可以使用以下命令:

$ tarantella object edit --name obj --share false

针对显示在多台监视器上的每个应用程序重复配置。

4.8.3.2. 配置正确的桌面大小

必须确保 SGD 服务器向客户端设备发送足够的空间以在桌面上显示所有监视器。

注意

这会增加客户端设备和 SGD 服务器上使用的内存量。

必须配置 SGD 以便将整个桌面区域的大小发送到客户端设备,而不仅仅是主监视器的大小。下图中的“虚拟屏幕”显示了整个桌面区域的大小。

多显示端监视器的虚拟屏幕大小

例如,如果图中监视器 1 的尺寸为 1200 x 768,而监视器 2 的尺寸为 800 x 600,则需要配置的桌面大小为 2000 x 768。

4.8.3.2.1. 为客户端窗口管理应用程序配置桌面大小

在管理控制台中,转至 SGD 服务器的 "Protocol Engines"(协议引擎)→ "X" 选项卡。对于 "Client Window Size"(客户端窗口大小),在 "Maximum Height"(最大高度)和 "Maximum Width"(最大宽度)字段中键入虚拟屏幕的尺寸(以像素为单位)。

或者,也可以使用以下命令:

$ tarantella config edit --array \
--xpe-cwm-maxwidth pixels --xpe-cwm-maxheight pixels

对阵列中的每台 SGD 服务器重复此配置。

4.8.3.2.2. 为 Kiosk 模式应用程序配置桌面大小

X 应用程序可以在 Kiosk 模式下显示在多显示端或双显示端监视器上。

您可以通过客户端设备上的客户端配置文件 profile.xml<localsettings> 部分中的 <KioskArea> 项配置 kiosk 模式显示功能。如果客户端配置文件中没有 <localsettings> 部分,则创建一个新的部分。

<KioskArea> 项定义 kiosk 模式使用的屏幕区域。可用值如下:

  • 虚拟-使用虚拟屏幕大小。使用所有监视器。

  • 0-仅使用主监视器。这是默认值。

  • 1-仅使用辅助监视器。

  • n-(仅限多显示端监视器)。仅使用第 n 台辅助显示器。

例如,要使 kiosk 模式显示跨越所有监视器:

<KioskArea>virtual</KioskArea>
注意

kiosk 模式应用程序的桌面大小也可以从 Webtop 进行配置。使用 "Client Settings"(客户端设置)选项卡中的 "Span Multiple Monitors (Kiosk Mode)"(跨多个监视器(Kiosk 模式))选项。

4.8.3.3. 设置监视器

设置监视器以便所有辅助监视器都在主监视器的右侧,如上图所示。

您必须执行此操作,因为 X 服务器无法处理负屏幕坐标。

4.8.4. 提高 Windows 应用程序的性能

使用 Windows 远程桌面服务时,Windows 应用程序的性能可能比较差。这是由在 Windows 会话中使用动画效果和其他呈现设置导致的。性能之所以受到影响,是因为这些功能需要更多的屏幕更新并且会大幅增加使用的带宽。此问题在连接速度较慢的情况下更为严重。

这些问题的原因包括以下方面:

  • 动画鼠标光标

  • 鼠标光标阴影

  • 屏幕保护程序

  • 通知区域的动画图标

  • 程序中的动画图像

  • 动画壁纸

  • 用作壁纸的图像

  • 字体平滑

默认情况下,SGD 远程桌面客户端 ttatsc 启用除了字体平滑之外的所有这些功能。

您可以通过配置 Windows 应用程序对象的一个或多个属性关闭呈现功能。可以配置的属性在下表中列出。

属性

描述

Cursor Settings(光标设置)

禁用鼠标指针方案和定制。

Cursor Shadow(光标阴影)

禁用鼠标指针上的阴影。

Desktop Wallpaper(桌面壁纸)

禁用桌面壁纸。禁用壁纸可以减少用户在桌面内移动项目时更新的数据量。

Font Smoothing(字体平滑)

针对应用程序中的文本启用字体平滑。

Full Window Drag(全窗口拖动)

禁用用于在移动窗口时显示窗口内容的选项。

Menu Animations(菜单动画)

禁用菜单和工具提示的过渡效果。

Theming(主题)

禁用桌面主题。

另请参见第 4.1.9 节 “SGD 远程桌面客户端”

4.8.5. 提高 Java 桌面系统桌面会话或应用程序的性能

本节包含有关将 SGD 和 Java 桌面系统结合使用时如何获得最佳用户体验的一些提示。

可以通过以下方式提高 Java 桌面系统桌面会话和应用程序的性能:

  • 针对 Java 桌面系统配置 X 应用程序对象

  • 禁用某些默认的 Java 桌面系统设置

4.8.5.1. 针对 Java 桌面系统配置 X 应用程序对象

对于 Java 桌面系统桌面会话或应用程序,确保为 X 应用程序对象指定正确的命令路径。将 "Application Command"(应用程序命令)(--app) 属性设置为 /usr/dt/config/Xsession.jds。使用 /usr/bin/gnome-session 路径会导致某些 Java 桌面系统配置参数丢失,从而带来较差的用户体验。

要改善动画效果的显示,您可以配置 X 应用程序对象的性能设置。请参见第 4.9.11 节 “应用程序动画看起来“时断时续””

4.8.5.2. 禁用默认的 Java 桌面系统设置

Java 桌面系统桌面会话和应用程序的性能可能会受动画效果和其他默认桌面设置的影响。性能之所以受到影响,是因为这些功能需要更多的屏幕更新并且会大幅增加使用的带宽。此问题在连接速度较慢的情况下更为严重。

通常可以通过关闭或修改以下某些 Java 桌面系统桌面功能来提高性能:

  • 反锯齿字体

  • 大型字体

  • "Login"(登录)屏幕、过渡屏幕、"About"(关于)屏幕和 "Logout"(注销)屏幕

  • 动画

  • 桌面 applet

  • 拖动时显示窗口内容

  • 桌面壁纸

  • 主题

4.8.6. 文档和 Web 应用程序

文档对象可以引用任何 URL。这可以是 Web 上的任何文档,包括 Oracle Open Office 文档或 Adobe™ Acrobat 文件。文档还可以引用 Web 应用程序。

由于是用户的客户端设备实际获取 URL,因此防火墙或其他安全措施可以阻止用户访问文档。

您可以使用 SGD 访问 Web 应用程序。Web 应用程序只是一个网页或任意 URL,需要用户提供用户名和密码才能进行访问。要授予用户对于 Web 应用程序的访问权限,请创建链接到该 Web 应用程序的 URL 的文档对象。

与应用服务器的密码不同,SGD 无法缓存用于访问 Web 应用程序的用户名和密码。但是,您可以配置 Web 验证,以便用户可以从 Web 应用程序访问 SGD,而无需重新登录。有关详细信息,请参见第 2.6.4 节 “Web 验证”。或者,可以针对 Web 应用程序验证 SGD 用户。

当访问 Web 应用程序时,使用安全的 (HTTPS) Web 服务器,以便在传输之前使用 SSL 加密所有通信。

4.8.7. 创建虚拟教室

本节介绍如何配置应用程序对象以在虚拟教室中使用。

您可以使用 SGD 投影功能创建虚拟教室,其中,教室里的学生投影教师演示的应用程序。

为了能够执行此操作,您必须创建教师的应用程序对象和教室应用程序对象。

教师必须首先启动他们的应用程序,然后学生启动他们的教室应用程序以投影老师的应用程序。教室只能投影 Windows 应用程序或 X 应用程序。

在任何时刻都只有一个人可以使用教师的应用程序。如果有多个人启动教师的应用程序,则教室将投影最后启动的应用程序。出于此原因,仅将教师的应用程序提供给一名用户。如果有多个教师,则为每位教师创建单独的应用程序对象。

为了获得最佳结果,请如下配置教室应用程序对象:

  • 教室应用程序必须至少具有 16 位的颜色深度。

  • 教室应用程序的显示大小必须至少为教师应用程序的显示大小。

  • 使用 "Independent Window"(独立窗口)这一 "Window Type"(窗口类型)设置。如果应用程序的 "Window Type"(窗口类型)为 "Seamless Window"(无缝窗口)或 "Client Window Management"(客户端窗口管理),则用户体验可能比较差。

  • 禁用应用程序对象的 "Share Resources Between Similar Sessions"(在类似的会话之间共享资源)属性。

当教师启动他们的应用程序时,有关哪个应用程序可以由教室投影的信息会存储在 SGD 服务器上。此信息会复制给阵列中的其他成员。这意味着如果教室应用程序在与教师的应用程序不同的 SGD 服务器上启动,教室应用程序会失败,因为不能获得有关可以投影哪个应用程序的信息。

您可以使用负载平衡组确保在相同的 SGD 服务器上启动教师应用程序和教室应用程序。必须针对应用服务器 SGD 服务器设置负载平衡组。否则,将仅在包含一台 SGD 服务器的 SGD 阵列中使用教室投影。

另请参见第 4.9.9 节 “使用投影对用户问题进行故障排除”

4.8.7.1. 如何创建教师的应用程序对象

  1. 在管理控制台中,创建新的 Windows 应用程序对象或 X 应用程序对象。

  2. 转至 "Launch"(启动)选项卡并在 "Login Script"(登录脚本)字段中键入以下内容之一:

    • unixclass.exp-如果应用程序是 X 应用程序

    • winclass.exp-如果应用程序是 Windows 应用程序

  3. 单击 "Save"(保存)。

  4. 为教师的应用程序配置任何其他所需的设置。

  5. 单击 "Hosting Application Servers"(托管应用服务器)选项卡,然后选择可以运行应用程序的应用服务器。

  6. 在 "Assigned User Profiles"(分配的用户配置文件)选项卡上,将教师的用户配置文件分配给应用程序。

4.8.7.2. 如何创建教室应用程序对象

  1. 在管理控制台中,创建新的 X 应用程序对象。

    注意

    教室应用程序是 X 应用程序,即使教师的应用程序是 Windows 应用程序也是如此。

    此时将显示 "General"(常规)选项卡。

  2. 转至 "Launch"(启动)选项卡,然后如下配置应用程序:

    1. 在 "Application Command"(应用程序命令)字段中,键入 /opt/tarantella/bin/bin/ttashadow

    2. 在 "Arguments For Command"(命令的参数)字段中,键入 -readonly -silent -pointer $SHADOWDISPLAY

    3. 对于 "Connection Method"(连接方法),选择 "telnet" 选项。

      即使针对 SGD 服务器禁用了 telnet,也选择此选项。

    4. 在 "Login Script"(登录脚本)字段中,键入 pupil.exp

    5. 在 "Environment Variables"(环境变量)字段中,配置 MYCLASS 变量。

      格式为 MYCLASS="name_of_teacher's_application"。例如 MYCLASS=".../_ens/o=applications/ou=Finance/cn=XClaim"

  3. 单击 "Save"(保存)。

  4. 转至 "Presentation"(表示)选项卡。

  5. 对于 "Color Depth"(颜色深度),选择 "16-bit - thousands of colors"(16 位 - 数千种颜色),然后单击 "Save"(保存)。

  6. 为教室应用程序配置任何其他所需的设置。

  7. 转至 "Hosting Application Servers"(托管应用服务器)选项卡,然后选择可以运行应用程序的应用服务器。

    ttashadow 应用程序仅在安装了 SGD 的服务器上可用。

  8. 转至 "Assigned User Profiles"(分配的用户配置文件)选项卡,将课程中所有用户的用户配置文件分配给教室应用程序。

4.8.8. 配置公用桌面环境应用程序

公用桌面环境 (Common Desktop Environment, CDE) 应用程序所需的配置取决于您想要运行桌面会话还是单个应用程序。

对于使用 ssh 连接方法配置的 CDE 桌面会话,当用户尝试从 CDE 会话退出时可能会发生问题。CDE 会话可能挂起,使得无法从系统正常注销。请参见第 4.8.8.3 节 “使用 CDE 和 SSH”

为了避免使用 CDE 应用程序时出现字体问题,最好按照第 4.2.4.1.2 节 “使用字体服务器”中所述使用字体服务器。

4.8.8.1. 配置 CDE 桌面会话

要通过 SGD 运行 CDE 桌面会话,请使用下表中显示的设置创建一个 X 应用程序对象。

属性

设置

Application Command(应用程序命令)

Xsession 应用程序的完整路径,例如 /usr/dt/bin/Xsession

在命令行上,使用 --app pathname

Keep Launch Connection Open(使启动连接保持打开状态)

选中 "Enabled"(已启用)复选框。

在命令行上,使用 --keepopen true

Session Termination(会话终止)

从列表中选择 "Login Script Exit"(登录脚本退出)。

在命令行上,使用 --endswhen loginscript

Window Type(窗口类型)

从列表中选择 "Kiosk"。

在命令行上,使用 --displayusing kiosk

Window Size(窗口大小)

选中 "Scale to Fit Window"(缩放以适应窗口)复选框。

仅在用户暂停应用程序,然后在不同大小的显示屏上恢复应用程序时,才使用此设置。

在命令行上,使用 --scalable true

4.8.8.2. 配置 CDE 应用程序

要直接运行 CDE 应用程序,而非从 CDE 前面板,请使用下表中显示的设置创建一个 X 应用程序对象。

属性

设置

Application Command(应用程序命令)

要运行的应用程序的完整路径。

在命令行上,使用 --app pathname

Keep Launch Connection Open(使启动连接保持打开状态)

取消选中 "Enabled"(已启用)复选框。

在命令行上,使用 --keepopen false

注意

这是此属性的默认值。

Session Termination(会话终止)

从列表中选择 "No Visible Windows"(无可见窗口)。

在命令行上,使用 --endswhen nowindows

注意

这是此属性的默认值。

Window Type(窗口类型)

从列表中选择 "Client Window Management"(客户端窗口管理)。

在命令行上,使用 --displayusing clientwm

Window Manager(窗口管理器)

在字段中键入以下内容:

/usr/dt/bin/dtwm -xrm "Dtwm*useFrontPanel: false" -xrm "Dtwm*ws0*backdrop*image: none"

在命令行上,使用 --winmgr '/usr/dt/bin/dtwm -xrm "Dtwm*useFrontPanel: false" -xrm "Dtwm*ws0*backdrop*image: none"'

注意

如果运行单个 CDE 应用程序时出现问题,请按照第 4.8.8.1 节 “配置 CDE 桌面会话”中所示配置 CDE 桌面会话,并从 CDE 前面板运行应用程序。

4.8.8.3. 使用 CDE 和 SSH

对于使用 ssh 连接方法配置的 CDE 桌面会话,当 CDE 桌面用户尝试从 CDE 会话退出时可能会发生问题。CDE 会话可能挂起,使得无法从系统正常注销。

CDE 会话显示 TT_ERR_NO_MATCH 错误消息。

此问题的解决方法如下:

  • 以超级用户 (root) 身份登录 CDE 主机,并键入以下命令:

    # mkdir /etc/dt
    # mkdir /etc/dt/config
    # cp /usr/dt/config/sessionetc /etc/dt/config
    # cp /usr/dt/config/sessionexit /etc/dt/config
    # cp /usr/dt/config/sys.dtprofile /etc/dt/config
    # chgrp bin /etc/dt/config
    # chmod 555 /etc/dt/config/*
    # chown bin:bin /etc/dt/config/*
  • 将以下行添加到 /etc/dt/config/sessionetc 文件:

    if [ "$SSH_TTY" !="" ]
    then
    SSHPTTY=`echo $SSH_TTY | cut -c6-15`
    ps -ef | grep -v grep | grep $SSHPTTY | grep Xsession | awk '{print $3}' >
    /var/dt/tmp/$DTUSERSESSION/sshd_pid
    fi
  • 将以下行添加到 /etc/dt/config/sessionexit 文件:

    if [ -f /var/dt/tmp/$DTUSERSESSION/sshd_pid ]
    then
    /bin/kill -HUP ‘/bin/cat /var/dt/tmp/$DTUSERSESSION/sshd_pid‘
    /bin/rm /var/dt/tmp/$DTUSERSESSION/sshd_pid
    fi
  • 将以下行添加到 /etc/dt/config/sys.dtprofile 文件:

    dtstart_session[0]="/usr/local/bin/ssh-agent /usr/dt/bin/dtsession"

4.8.9. 配置 VMS 应用程序

可以使用 SGD 访问 VMS 应用服务器上的 X 应用程序和字符应用程序。

要配置 SGD 以访问 VMS 服务器上的应用程序,必须执行以下配置步骤:

  1. 配置用于应用程序的登录脚本。

  2. 配置登录脚本中的传输变量。

  3. 禁用 X 安全。

4.8.9.1. 配置用于应用程序的登录脚本

必须配置用于 X 应用程序或字符应用程序的登录脚本。

在管理控制台中,转至要配置的应用程序对象的 "Applications"(应用程序)→ "Launch"(启动)选项卡。在 "Login Script"(登录脚本)框中,键入 vms.exp

或者,也可以使用以下命令:

$ tarantella object edit --name obj --login vms.exp

4.8.9.2. 配置登录脚本中的传输变量

默认情况下,vms.exp 登录脚本将传输变量设置为 TCPIP。对于数字 TCP/IP 堆栈,包括 Ultrix 通信扩展 (Ultrix Communications Extension, UCX),此设置是正确的。

如果需要更改此变量,请编辑登录脚本中的传输变量设置。传输变量通过登录脚本中的以下项进行设置:

set transport "TCPIP"

登录脚本位于 /opt/tarantella/var/serverresources/expect 目录中。

4.8.9.3. 禁用 X 安全

要使用 VMS X 应用程序,必须在 SGD 中禁用 X 安全。这是因为对于 VMS X 应用程序,SGD 不支持 X 授权。

在管理控制台中,转至 "Global Settings"(全局设置)→ "Security"(安全)选项卡并取消选中 "X Authorization for X Display"(X 显示的 X 授权)复选框。

或者,也可以使用以下命令:

$ tarantella config edit --security-xsecurity 0

4.8.10. 3270 和 5250 应用程序

SGD 对 3270 和 5250 应用程序使用第三方仿真器应用程序 TeemTalk for Unix。有关详细信息,请参见 SGD 随附的 TeemTalk for Unix 用户指南。

用户首次运行 3270 或 5250 仿真器时,tta3270.nv 配置文件在 SGD 服务器的用户主目录中创建。