Installing Automated Clients - OCR, Data Capture, Classification, Export, Image processing, E-mail input

Start the setup wizard SmartSoft Invoices Automated Clients.msi and follow the steps.

../_images/deployment-automatic-clients.png

Choose from the available modules during deployment. Automated clients can be installed on more than one computer in order to scale the system.


../_images/deployment-automated-clients-settings.png

Server IP: If you are installing the automatic clients on the same machine as the Application Server, leave the server IP as 127.0.0.1. Otherwise enter the IP of the server.

Port: Type the same port number you have provided during Application Server setup. The default value is 12543

User Name: You can leave the default value generaluser for the Username and user for the Password. The system comes with a default user for the automatic clients preconfigured with the necessary permissions.

The automatic clients are installed as Windows services and appear as a single service called SmartSoft Invoices Automated Client Manager. The services run all the time and wait for the server to send batches for processing.

You can later change or fine tune service settings in the config file for each client or in the config file of the Automated Client Manager. Both are located in the clients’ default installation folder C:\Program Files (x86)\SmartSoft\SmartSoft Invoices Automated Clients\:

Client Config file
Auto Client Manager SsiAutoClientManager.exe.config
OCR Client SsiOcrClient.exe.config
Classification Client SsiClassificationClient.exe.config
Data Capture Client SsiDataCaptureClient.exe.config
Export Client SsiExportClient.exe.config
Image Processing Client SsiImageProcessingClient.exe.config
Email Input Client SsiEmailInputClient.exe.config

The Automated Client Manager controls the number of CPU cores that each client can use. It also takes precedense over the config files of the other clients when it comes to CPU core control.

<appSettings>
  <add key="ImageProcessingClientCount" value="-1" />
  <add key="OcrClientCount" value="-1" />
  <add key="ClassificationClientCount" value="-1" />
  <add key="DataCaptureClientCount" value="-1" />
  <add key="ExportClientCount" value="-1" />
</appSettings>

The code block above describes the contents of the Automated Client Manager’s config regarding CPU core control. -1 means automatic control and 0 means that the client is off. Users can manually set the number of cores per client, save the changes and restart the service so the changes take effect.


The code block below describes the contents of the separate config files for each client. The only setting that can’t be controlled from here and won’t have effect is the MaxWorkerCount value. Users can set what IP and port to connect to for each separate client: Image processing, OCR, Classify, Data Capture, Export.

<appSettings>
   <add key="ServerIp" value="127.0.0.1" />
   <add key="ServerPort" value="12543" />
   <add key="UserName" value="ocruser" />
   <add key="Password" value="user" />
   <add key="ConnectionRetrySeconds" value="120" />
   <add key="MaxWorkerCount" value="-1" />
</appSettings>

Configuring the number of worker clients running on the same machine

Each automatic client can parallelize the work for maximum efficiency. To do this a client runs as a Windows service, which spawns worker processes that do the actual processing. For some clients the name of the service and the worker are the same as they reside in the same exe. You can tell them apart by the memory they consume - the service usually consumes less memory than the worker. You can configure the number of worker processes by modifying the value of MaxWorkerCount in the config file.

By default MaxWorkerCount = -1, then the number of worker processes is automatically calculated based on the number of logical cores of the CPU:

  • worker_processes = cores - 1 (if cores <= 4);
  • worker_processes = cores - 2 (if cores > 4);

This makes sense if the OCR client is installed on a dedicated machine. If you have many different clients on one machine it is a good idea to set that number explicitly. Take into account that each OCR worker process uses 1 CPU core.