Skip to main content
Version: FCP 25.11

Desktop Applications

Overview

Desktop Applications provides cross-platform GUI application template management and supports both Linux and Windows environments. Users can click a preset application template icon and the platform will navigate to the corresponding graphical session and launch the specified application. This guide covers the full workflow from application template configuration to deployment, helping you quickly build standardized desktop applications.

Permissions

For details, see Permissions.

Session Connection Protocols

Desktop applications use different remote connection protocols depending on the backend OS:

  • Linux: uses VNC (Virtual Network Computing) for GUI remote sessions.
  • Windows: uses RDP (Remote Desktop Protocol) for remote desktop sessions.

When creating or configuring a desktop application, make sure the backend compute node has the corresponding remote access service installed and enabled (VNC server or RDP service) based on the selected Platform type.

Usage Guide

Field descriptions

  • Name: Required. Desktop application name.
  • Icon: Required. Icon shown on the desktop. Recommended to upload an SVG or PNG with 1:1 aspect ratio and size 72px x 72px.
  • Description: Required. Application description.
  • Singleton: Optional. If enabled, only one instance of the application can run per user globally.
  • Platform type: Required. Select the OS the application runs on: Linux or Windows.

Depending on the selected platform type, configure the following:

  • Windows:
    • Startup program: Required. Command used to launch the application. Example: abaqus.
    • Startup arguments: Optional. Extra command-line arguments. Example: cae || pause.
  • Linux:
    • Launch command: Required. Command used to launch the application in a terminal. Example: firefox.
    • File associations (optional): When configured, users can right-click a matching file type in File Management and choose an "Open with Linux" option. You can add multiple file association rules. Each rule contains:
      1. File extension: The file suffix to associate, such as .yaml. One extension per line.
      2. File open command: Full command used to open the file. It must include the %filepath% placeholder, which is replaced at runtime with the full path of the selected file. Example: firefox \"%filepath%\".

Access control

Administrators can configure fine-grained access control for application templates:

  • Grant Read (view/use) or Update (modify) permissions to specific users or groups.

Steps

  1. Create a desktop node: Create a desktop node on the platform and install the OS.
  2. Install the application: Install the required application on the desktop node (for example, Abaqus).
  3. Create a desktop application template: In the Desktop Applications page, create a new application and ensure the name matches the installed application.
  4. Associate resources: Associate the desktop application with the desktop(s) or cluster(s) where the application is installed.
  5. Grant access: In the application's Access Control, grant usage permissions to users or groups.
  6. Access and run: Authorized users log in to the Desktop Portal web server (for example http://[server-address]/desktop-portal/), find the application icon on the desktop, and click to launch.

Associate Desktops or Clusters

Desktop applications can be associated with one or more desktops or clusters as the resource pool used to run sessions.

Session placement differs by cluster type:

  • Fsched cluster: User sessions are scheduled onto the cluster's login nodes.
  • None cluster: User sessions can be started on any available compute node in the cluster.

With associations, you can precisely control which resources users can access when launching the application.

Configure associations

  • Default: A newly created desktop application is not associated with any desktops or clusters by default.
  • UI:
    • Unassociated list: Shows all resources eligible for association in normal status (the system filters out abnormal statuses such as Releasing, Released, Error). Supports searching by status and name.
    • Associated list: Shows resources currently associated with the application (normal status only).
  • Actions: Add resources from the unassociated list to the associated list, or remove them from the associated list.

Load balancing

When a desktop application is associated with multiple resources (desktops or cluster nodes), the platform enables an intelligent load balancing mechanism to optimize resource allocation and user experience, and to place new sessions on appropriate machines.

Scope of load balancing calculation

Key principle: Load balancing is calculated per node by counting the total number of active sessions launched from the platform's Desktop Applications entry on that node.

  • Included: Active sessions for all desktop applications on that node are counted and summed up.
  • Excluded: Sessions created through other methods (for example, directly connecting via a VNC/RDP client) are not included. The load balancer does not detect or count those sessions.

Load balancing strategy

The system applies different strategies based on whether the application is associated with resources:

  1. Applications with an associated resource pool

    • Scenario: The application is associated with one or more clusters/desktops.
    • Strategy:
      • First session: For the first time a user opens the application, the system randomly selects one node from the associated pool.
      • Subsequent sessions: For later sessions, the system selects the node with the fewest total active Desktop Applications sessions among associated nodes.
    • Example: Suppose there are two desktop applications, "ABAQUS" and "MATLAB", both associated with three nodes (Node1, Node2, Node3). Current active Desktop Applications sessions are: Node1 has 2 (1 ABAQUS + 1 MATLAB), Node2 has 1 (1 ABAQUS), Node3 has 0. When a new user clicks "ABAQUS" to start a session, the system prefers Node3 because it has the fewest sessions (0). Even if Node3 has 5 additional sessions created via other methods (such as direct VNC connections), those sessions are not counted and do not affect the load balancing decision.
  2. Applications without associated resources

    • Scenario: The application is not associated with any specific clusters/desktops.
    • Strategy: The system randomly selects an available node from all desktops or cluster nodes that the user has access to.