Synchronization service basic functionality

Windows basics

CapaInstaller Synchronization Service is a Windows service whose main job is to synchronize data between two or more servers/shares. The service is written in Visual Studio 2010 and requires .Net Framework 3.5

Fig 1.: The service is installed in %ProgramFiles%\CapaInstaller\Services\Synchronization and the service executable is named cisync.exe. The service communicates with other ciSync servers over HTTP or HTTPS, and while all references to source and target directories are in UNC notation all access to other servers shares, directories and files are made through each servers ciSync service. The Service is designed to operate on the local system account.

Server structure

On Operation Systems newer than Windows XP / 2003 Server, the startup type is Automatic (Delayed start). Otherwise, the startup is Automatic. The Delay is by definition unspecific since it is implemented by lowering the priority, but is typically 30 seconds.


Fig. 2.: Servers in a CapaInstaller installation are organized as a tree with one server serving multiple clients which again can serve one or more underlying clients.
If an underlying client has a ciSync service installed, it can act as a server for underlying clients as well.

  • If both servers have ciSync installed, data is pulled by the target server from the source server. (ServerC2 pulls data from ServerC1)
  • If only the parent serve has a ciSync service installed, data is pushed onto the child/NAS box. (ServerC1 pushes data onto NasC1)

In pull sync with a ciSync service in both ends, it is possible to compress/decompress data to preserve bandwidth whereas the push sync doesn't have this option.

Log files

The service produces a number of log files while running. The directory for logfiles is %ProgramFiles%\CapaInstaller\Logs\Services. Each Synchronization job is logged as well in %ProgramFiles%\CapaInstaller\Logs\Synchronizations. To see the logfiles described in detail, clich here

Jobs

A synchronization job can be either a scheduled job or a 'run now job'. Scheduled jobs can be recurring or just set to be run once at a specific time. Run now jobs are run at once and deleted from the backend after completion. 

Upon startup The service creates a schedule list of jobs to run at specified times. Each synchronization job is read from the backend. If a new job is added or changed, it is flagged by the job issuer.