Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 59 Next »

Smart Clients are one of the ways to deploy Solutions to end users.

A Smart Client is a native application, that gets launched from the Servoy Application Server using Java WebStart technology. The Smart Client installs itself on first launch and from there onwards 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 inbetween sessions, but relies on a connection to the Servoy Application Server while running for data retrieval.

In this chapter

Smart Client system requirements

Servoy Smart Client
Windows Linux OS X
Intel Pentium or higher
256Mb RAM
50Mb Free diskspace
Java Standard Edition Runtime Environment 6.0 or higher
Intel Pentium or higher
256Mb RAM
50Mb Free diskspace
Java Standard Edition Runtime Environment 6.0 or higher
Intel CPU 1 Ghz or higher
256Mb RAM
50Mb Free diskspace
Mac OS X 10.4 or higher
Java Standard Edition Runtime Environment 6.0 or higher
Networking: TCP/IP

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 Settings 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}/autoinstallvm.html.

The JRE can also be manually downloaded and installed. See Java runtime 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.

On start, it will validate the version in the cache with the version available on the Application Server and will automatically update if a new version is available.

Smart Client launch by accessing the relevant URL on the Application Server (see #Starting Smart Clients). 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 for more information on the client-side Java settings and Smart Client Settings for more information on the Application Server settings.

Starting Smart Clients

By default, the Servoy Application Server comes with a web page for starting Smart Clients, located at {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. 

Smart Client Start URL

What is does

{serverUrl}/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. In this case the user will not be able to open a solution.

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

Opens a Smart Client and launches the specified solution

{serverUrl}/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.

{serverUrl}/servoy-client/{mySolutionName}.jnlp?a={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}

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


Short vs. long syntax

The urls above use the short syntax. Instead of using the short syntax, the following mapping allows using the longer syntax:

  • ss > solutions (Web Client only)
  • s > solution (Web Client only)
  • m > method
  • a > argument
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 Settings 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 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 servoy.allowExistingClientActivate setting on the Admin page needs to be set to true
  • 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

?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}/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 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.

Smart Client settings

  • Server-side settings
  • Client-side settings

Java Settings

A 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.

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.

Java Web Start cache
Contains the cached libraries for the Smart Client, beans & plugins. Location depends on the #Java Settings.

Servoy cache
Contains cached solutions, i18n-messages and client settings. Located in the .servoy directory in the user directory

  • No labels