Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Panel
titleBGColororange
titleIn this chapter
borderStylesolid
Table of Contents

Using the Servoy Smart Client, solutions developed in Servoy can be distributed Smart Clients are one of the ways to deploy Solutions to end users.

Characteristics of a Smart Client

  • Installs automatically on initial launch
  • Automatically updates when a new version of either the Solution of the Smart Client itself is available
  • Native application
  • Executes business logic locally
  • Can interact with the local file system
  • Can interact with local appliances connected to the client machine
  • Is connected to the Servoy Application Server to utilize services provided by the Application Server

While running, the Smart Client is connected to the Application Server to utilize the services provided by the Application Server, like database connectivity, datachange broadcasting, emailing and reporting for example

Servoy Smart Clients are launched and distributed from the Servoy Application Server using Java Web Start Technology.

Prerequisites

...

Network settingsA Smart Client is a native application, that gets launched from the Servoy Application Server using Java WebStart technology. The Smart Client installs itself on the client machine on first launch and from there onward will keep itself up to date, by checking for updates on each consecutive launch. 

A Solution running in a Smart Client has access to the local file system or local appliances, like printers attached to the machine on which the Smart Client runs. 

While the Smart Client caches itself and the solutions that it runs in binary format on the local machine for fast startup, it does not cache any user data in between sessions, but relies on a connection to the Servoy Application Server while running for data retrieval.

Stoc

Smart Client System Requirements

Include Page
_smartClientRequirements
_smartClientRequirements

Network Settings

In order to be able to start and run Smart Clients the Application Server needs to be properly reachable from the machine on which the Smart client is to be started. Depending on the network route from the client machine to the server, different configuration might need to be applied. See Network Related Settings for  for more information.

Java Standard Edition Runtime Environment,

...

Including Java Web Start

A Smart Client requires Java Standard Edition Runtime Environment (JRE) to operate and Java Web Start to launch. Java Web Start is included in Sun/Oracle's JRE distributions. On most machines, a JRE installation will be present by default.

The Application Server hosts a webpage that can be used to check if a valid JRE is installed on the cllient machine and if not, to automatically install it. This page can be accessed in the browser through the following url: <serverUrl> {serverURL}/autoinstallvm.html. This autoinstallvm page is also linked from the Smart Client launch page ({serverURL}/index.html

The JRE can also be manually downloaded and installed. See Java runtimeRuntime for more information.

Installing Smart Clients

Smart Clients install themselves on first launch. On first launch, the Java Web Start process will install the Smart Client in a cache on the client machine. On subsequent starts, the Java Web Start mechanism will check to see if the application is already cached and will start from the cache if available.

...

Smart Client launch by accessing the relevant URL on the Application Server (see #Starting Starting Smart Clients below). All required libraries will be automatically downloaded and locally cached by the Java Web Start process. The started solution will be cached by the Smart Client in the Servoy cache.

Desktop integration

The Smart Client can automatically integrate with the desktop of the client machine. Whether or not this happens depends on both client-side settings in the Java environment as well as server-side settings on the Application Server. See #Java settings Client side settings through the Java Control Panel for more information on the client-side Java WebStart settings and Smart Client Settings Servoy Application Server configuration related to Smart Clients for more information on the Application Server settings.

Removing Smart Client Installations

Smart Clients are launched via Java WebStart installed on the client machine. Java WebStart caches every application that it launches. This cache can e viewed through the Java Control Panel or the cache viewer can be opened directly from the commandline using the following command:

Code Block
javaws -viewer 

For more information on the Java control Panel, see Client side settings through the Java Control Panel

Starting Smart Clients

...

By default, the Servoy Application Server comes with a web page for starting Smart Clients, located at <serverUrl> {serverURL}/index.html. This web page also provides a link to check if a Java Standard Edition Runtime Environment is installed.

Servoy Smart Client can also be started by accessing a URL on the Servoy Application Server. Depending on the configuration of the Servoy Application Server, an icon might be placed on the users desktop to start the application thereafter. 

Deeplink

Smart Client Start URL

What is does

Comment

{serverUrlserverURL}/servoy-client/servoy_client.jnlp

Opens a Smart Client and shows the "'Select Solution" ' dialog.

"The 'Select Solution" ' dialog will not be displayed if solution browsing is disabled, see #Solution browsing Solution browsing. In this case the user will not be able to open a solution.

{serverUrlserverURL}/servoy-client/{mySolutionName}.jnlp

Opens a Smart Client and launches the specified solution

 

{serverUrlserverURL}/servoy-client/mySolutionName.jnlp?a={value}

Opens a Smart Client and launches the specified solution. The argument value is passed into the Solutions onOpen event handler.

 

{serverUrlserverURL}/servoy-client/{mySolutionName}.jnlp?m=myMethodName

Opens a Smart Client

 

 

 

{serverUrl}/servoy-client/mySolutionName.jnlp?m=myMethodName&a=value

 

{serverUrl}/servoy-client/mySolutionName.jnlp?a=value&name1=value1&name2=value2

 

 

{serverUrla={value}&{name1}={value1}&{name2}={value2}

The same as the previous scenario, but with additional custom keys for additional arguments

 

{serverURL}/servoy-client/{mySolutionName}.jnlp?m={myMethodName&a=value&name1=value1&name2=value2

 

 

Code Block
titleSolution Select Dialog
<serverUrl>/servoy-client/servoy_client.jnlp
Code Block
titleDeeplink into specific solution
<serverUrl>/servoy-client/mySolutionName.jnlp
Code Block
titleSpecify the method to execute on startup
<serverUrl>/servoy-client/mySolutionName.jnlp?m=myMethodName
Code Block
titleSpecify startup arguments
<serverUrl>/servoy-client/mySolutionName.jnlp?a=value
Code Block
titleSpecify the method to execute & startup arguments
<serverUrl>/servoy-client/mySolutionName.jnlp?m=myMethodName&a=value
Code Block
titleSpecify the startup argument & named arguments
<serverUrl>/servoy-client/mySolutionName.jnlp?a=value&name1=value1&name2=value2
Code Block
titleSpecify the method to execute, the startup argument & named arguments
<serverUrl>/servoy-client/mySolutionName.jnlp?m=myMethodName&a=value&name1=value1&name2=value2

...

Solution browsing

...

}

Opens a new Smart Client OR activates an already running Smart Client.

Activation of an existing Client is only possible when enabled, see Deeplinking into existing Smart Client for more info. 

In case of activating an existing Smart Client, the specified deeplink method will be fired. 
In case of a new Smart Client, the deeplink method will be fired once the onOpen event handler of the solution has fired

{serverURL}/servoy-client/{mySolutionName}.jnlp?m={myMethodName}&a={value}

The same as the previous scenario, but specifying a single value to be passed as an argument into the onOpen event handler and deeplink method

 

{serverURL}/servoy-client/{mySolutionName}.jnlp?m={myMethodName}&a={value}&{name1}={value1}&{name2}={value2}

The same as the previous scenario, but with additional custom keys for additional arguments

 

Include Page
shorthandLinkSyntax
shorthandLinkSyntax

Solution Browsing

By default, when using the first option above to launch a Servoy Smart Client (or through the default web page for starting Smart Clients mentioned earlier), when the Smart Client is started, the user will be presented with a list of all available solutions. Through the servoy.allowSolutionBrowsing option under Solution Settingson  on the Admin page of the Application Server, this dialog can be disabled. When disabled, the deeplink options that specify the solution must be used .

...

Profiles

...

The Application Server provides settings that influence the Smart Client behavior, for example in the area of how the Application Servoy and the Smart Client communicate. When one (group of) Smart Client(s) require different settings than the other one, the Application Server provided Profiles. Using Profiles, settings can be bundled under a named Profile. Smart Clients can connect to the Application Server using a particular profile by adding the Profile name to the URLs mentioned above. For example:

Code Block
titleDeeplink into specific solution using a named Profile
<serverUrl>/servoy-client/<profileName>/mySolutionName.jnlp

Profiles can be used in all the above mentioned URL's to start or deeplink to Smart Clients.

Profiles can also contain all the additional arguments that can be specified on the above mentioned URLs, like solution, method, arguments, named arguments (name1, name2 etc.). Both the short and long syntax are supported.

For more information on Profiles, see Profiles.

...

Deeplinking into existing Smart Client

...

When a user already has a Smart Client open, it's possible to provide the user with a URL that deeplinks to a method in the open solution. When the URL is opened, it will access the Application Server and the Application Server then contacts the existing Smart Client and executes the specified method.

To enable deeplinking into existing Smart Clients, the servoy.allowExistingClientActivate setting or else the user is presented with a Smart client without an option to start a solution.

Servoy provides the ability to execute a method in an already running Smart Client using the standard Smart Client start url's, if the url contains a deeplink method ('&m={methodName}'). In order for a deeplink into an existing Smart Client to work, the following conditions need to be met:

...

  • The already running Smart Client needs to be started using a URL
  • The deeplink url to activate the already running Smart Client needs to be handled through the same browser/application with which the already running Smart Client was launched 
  • The browser/application used to handle the deeplink url/launch the already running Smart Client must support Cookies
  • The deeplink url must contain a deeplink method: '&m={methodName}'

If any of these conditions are not met, the deeplink will result in the opening of a new Smart Client

Note
title?x=x

The deeplinking into an existing Smart Client is partly based on browser cookies. When starting the Smart Client from, for example a desktop shortcut, while deeplink from within an email in a mail client, it can happen that the first deeplink from the mail client opens a new Smart Client anyway. A possible workaround for this is added '?x=x' to the shortcut's URL, like <serverUrl> {serverURL}/servoy-client/{mySolutionName}.jnlp?x=x

Profiles

The Admin page of the Servoy Application Server exposes several settings that determine how the Smart Client communicates with the Application Server. As it can happen that one (group of) Smart client(s) requires different settings than other Smart Clients, the Application Server supports so-called Profiles.

Profiles, identified by a unique name, can contain one or more settings relevant to the Smart Client. The values for settings specified in a Profile override the value for those settings set on Application server level, when the Smart Client is connecting to the Application Server through the Profile.

In order for a Smart Clients to connect to the Application Server

...

Java Settings

A using a particular profile, the Profile name needs to be added to the URLs mentioned above. For example:

Smart Client Start URL

What is does

{serverURL}/servoy-client/{profileName}/{mySolutionName}.jnlp

Opens a Smart Client and launches the specified solution, while using the settings provided in the specified Profile

For more information on Profiles and an overview of which settings can be controlled through them, see Profiles.

Servoy Application Server Configuration Related to Smart Clients

The Smart Client related settings are exposed through the Servoy Admin page, in several locations:

Setting

Where

Description

Network connection settings

Network Settings page

For more information on the Network configuration for Smart Clients see Network Related Settings

Profiles

Profiles page

For more information on Profiles see Profiles

Smart Client Settings

Servoy Server home > Smart Client Settings

Settings related to desktop shortcut creation, default Look and Feel, allow activation etc.

Memory/Performance Settings

Servoy Server home > Memory/Performance Settings

Several settings related to memory settings for the Smart Client. For more information see Smart Client Memory Management

Branding

Servoy Server home > Branding

For more information on Branding see Branding

Locale Settings

Servoy Server home > Locale Settings

Several settings related to localization. 

Solution Settings

Servoy Server home > Solution Settings

Provides to option to disable Solution browsing by the user

Client Side Settings Through the Java Control Panel

A Sun/Oracle JRE installation can be configured and managed through the Java Control Panel. How to access the Java Control Panel differs per (version of) Operating System, for example:

  • Windows: Start > Settings > Control Panel > Java
  • OSX: Applications > Utilities > Java Preferences
  • Linux (Ubuntu): System > Preferences > Java

The Java Control Panel provides functionality to manage and configure a JRE installation

Proxy settings

When operating behing a proxy, the Java environment can be configured how to retrieve the proxy settings, see the Network settings of the Java Control Panel.

Java console

The Java console is a window that opens when a Java application starts and to which logging/debugging information can be written by the applications. When investigating issues in a Smart Client, enable the Java console to view what logging/debugging information the application provides. See the "Java console" settings under "Advanced" in the Java Control Panel.

Troubleshooting

Problems with Smart Clients fall into different categories and can be caused by a number of different reasons. Below an overview per category, with investigation guidelines and possible solutions.

...

Smart Client starting issues

...

Smart Client starting issues can have different causes.

JScript errors when starting the Smart Client (Windows only)

Enable "direct connections" on under the Network Settings of the Java Console on the client machine

Accessing the .jnlp file doesn't start Java Web Start

Wiki Markup
This means that either Java Web Start is not (properly) installed (see \[#Prerequisites\]) or that the .jnlp extention is not assosiated with Java Web Start.

Java Web Start error: Problem downloading the application

webstart issue
raw=true option

Enable wire logging
In case of connection issues between the Smart Client and the Application Server and all

...

Smart Client disconnection issues

...

Smart Clients operate connected to the Application Server. When the connection is lost, the Smart Client will automatically try to reconnect. When reconnection is not possible, the Smart Client will automatically provide the user with an error message and the option to close the Smart Client or to continue to try and reconnect.

...

Smart Client crash issues

...

When a Smart Client quits unsuspectedly or hangs, the first thing to do it enable the Java console

...

Smart Client update issues

...

flush
remove app from java
remove temp internet files

...

Solution issues

...

Smart Client footprint

, configure several settings related to Java WebStart and gives access to the installed application through Java WebStart 

What

Where

Description

Shortcut creation

Advanced > Settings > Shortcut Creation

While the Servoy Application Server has a setting which determines if Servoy tries to create a shortcut on the user's desktop when launching a Smart Client, the Java WebStart configuration allows the user to configure if WebStart applications are allowed to do so

Network settings

General > Network Settings > Network Settings

Allows the configuration how the Java WebStart application accesses the internet

Java Console

Advanced > Settings > Java console

Opens an additional logging window when a Java Webstart application is launched

Temporary Internet files

General > Temporary Internet Files > Settings

Here the location where the Java WebStart cache is stored can be configured

Logging & tracing

Advanced > Settings > Debugging

Exposes the ability to enable tracing and logging. The tracing output will appear in the Java console and also in the log if Logging is enabled

Managing installed applications

General > Temporary Internet Files > View

Shows all the applications that are installed in Java WebStart and allows the applications to be removed

Smart Client Footprint

A Smart Client has a very small footprint on the client machine. For startup performance reasons, both the Smart Client libraries as well as the Servoy Solution binaries are cached.

What

Where

Description

Java

...

WebStart cache

...

Depends on the configuration ()

The cache of all libraries and resources downloaded by Java WebStart

Servoy cache

.server directory in the user's home directory

Contains the cached solutions, i18n-messages and client settings

...