FocusOPEN APS: Advanced Configuration & Multiple Instances

Version: 3.4.1 and above

Overview

FocusOPEN uses an APS (Asset Processing Server) to generate proxy assets such as thumbnails, previews and bitmap groups. By separating this facility from the web application it is easier to scale the application and reduce performance issues. This document describes some advanced configuration of the APS. These would typically be required for larger installations of FocusOPEN, most conventional deployments do not need this (although multiple instances can assist when testing new versions).

How The APS Works And Relevant Configuration Settings

The APS is a WCF (Windows Communications Framework) service which runs independently from FocusOPEN. In the standard release of FocusOPEN it is supplied as a service which the user installs. The installer sets everything up on a common set of ports.

When an asset is uploaded, or re-processing is initiated via the batch menu options in view asset list (admin area) then a request is issued to the APS gateway object in FocusOPEN. The APS then determines which processing plug-in to use (of those it supports) based on the extension of the filename. Each plug-in then generates:

  • Thumbnail
  • Preview proxy
  • Bitmaps groups (user defined bitmap sizes)

Each of these is first generated in the temp folder where the APS is stored and then a signal is sent back to FocusOPEN via the callback.ashx web method to tell FocusOPEN the asset is ready. Any embedded metadata mapping and other post-processing tasks are carried out at this point, including copying back to the relevant file path for the asset in question.

Key Configuration Settings

The major config settings are split across the web.config settings file and the APS config settings.

FocusOPEN - web.config The main APS pointer is: endpoint name=“ProcessingService”. The address specifies the location of the APS WCF service.

Normally this points to:

net.tcp://localhost:5000/ProcessingService/

The convention is similar to many TCP applications:

net.tcp://[hostname]:[port]

If holding the APS on an alternative network location, localhost must be substituted for the required location and also the port (if not the default of 5000). The port number is an arbitrary number and is not an agreed standard (except that it is the default used on distributions).

One of the more common advanced configuration tasks is secondary instances of the APS on the same physical host (e.g. for testing a customised edition or new plug-in). The APS uses a strict XSD service contract which means that any alterations to it can make newer or modified versions of the APS incompatible with older or unmodified FocusOPEN editions.

APS - FocusOPEN.APS.WinService.exe.config

The APS itself has a configuration file: FocusOPEN.APS.WinService.exe.config which is usually in the installation folder, e.g.

%system drive%\Program Files\Daydream\FocusOPEN Asset Processing Service\

The baseAddresses node of the XML configuration file defines where the APS will be listening for requests:

<baseAddresses>
   <add baseAddress="net.tcp://localhost:5000/ProcessingService/" />
</baseAddresses>

This must match whatever the FocusOPEN web application is expecting in terms of host names and port numbers.

Multiple APS Instances The Using Command Line APS

The APS installer only permits a single instance to be specified during installation. The workaround for this is to use the command line APS.

Commercial edition users can download this from the My Account dashboard, AGPL users can build from the FocusOPEN source code packages. There is no installer for the command line edition and all configuration must be carried out manually (mainly with reference to the settings described earlier). Gold support account holders can request a secondary instance to be set up for them on their own server if they require it.

The command line edition can be launched from a DOS prompt and will present a menu of options:

Using this mode allows access to some control features of the APS such as being able to delete the SQLite job database, remove specific jobs or show recent activity.

If running multiple instances of the APS, as well as each having a unique port for the WCF service, the ServiceMetadata behaviour setting needs to be changed so it has its own port that is unique from the default instance:

<serviceBehaviors>
	<behavior name="ProcessingServiceBehavior">
		<serviceMetadata httpGetEnabled="true" httpGetUrl="http://localhost:8050/FocusOPEN.APS/ProcessingService/" />
		<serviceDebug includeExceptionDetailInFaults="true" />
	</behavior>
</serviceBehaviors>

The normal port as shown above is 8050, so another (e.g. 8060) should be used instead.

Setting Up Multiple APS Instances Using srvany

If the Microsoft Resource Kit tool: srvany is used, the command line APS can be converted into being a service and will run unattended. See the Microsoft Resource Kit srvany tool for more details. Using this method it is possible to create a duplicated APS service which behaves almost identically to the installed service.

If you only have one server for sandbox/development purposes then this is the recommended method for setting up as second APS test environment for trialling new versions of FocusOPEN or developing your own APS plug-ins.

* IMPORTANT NOTE

If you use srvany, you are required to specify an application key in the Windows registry to point at your command line APS instance. Ensure you append '1' to the end, otherwise the command line instance will not start (as it will go into menu mode)

[Path to command line APS]\FocusOPEN.APS.ConsoleApp.exe 1

Testing An Alternative APS Installation

If the engineer mode is set on the FocusOPEN super admin account you are logged in as, you can use the diagnostic tools to check the APS is working properly:

First select the Asset Processing Service Information menu:

Then the APS service summary will be displayed:

If this is not set up correctly, you will see an error alert

Note About Permissions

One point to be aware of if using the command line APS, it is usually necessary to manually set permissions on both the command line folder and the windows temp folder to allow 'everyone' full control. If you prefer not to grant wide ranging permissions in this way, the APS runs under the system and network service accounts (or assign a user account via srvany or to the native APS service).

If running multiple APS instances, it is recommended to use unique temp folders for each of them to help you identify if each APS is working properly. The TempPath key can be used to change where temporary files are generated before being copied back to the APS. This can be changed in the FocusOPEN.APS.ConsoleApp.exe.config file:

<add key="TempPath" value="C:\Temp\" />
 
multiple-aps.txt · Last modified: 2012/04/22 11:59 by admin