WinAutomation Architecture

Hardware Requirements

Client Operating Systems: Windows Vista or later (both 32 bit and 64 bit versions)

Server Operating Systems: Windows Server 2008 SP2 or later (both 32 bit and 64 bit versions)


WinAutomation Installation

WinAutomation is a Serverless Desktop Automation software. It can be installed on a single machine with no ability to communicate with other distributed WinAutomation installations, even on machines of the same domain/network. Thus, that there is no relation whatsoever between separate WinAutomation Consoles, nor is there any way to centrally manage multiple WA Consoles from a single point, as this would be a feature that should be covered by Softomotive’s Enterprise solution ProcessRobot.


In order to install WinAutomation, a single setup file (self-contained installer) is needed, that can be downloaded from here


The latest WinAutomation version currently released can be found here:


Softomotive Announcements


In case a new version has been released you may upgrade to it, by downloading the latest setup file from the User Area and installing the new version on top of the existing one. No need to uninstall the previous version, as the installer will take complete care of it.


Upon WinAutomation installation the following two Services will be installed:

  • the WinAutomation Server and
  • the WinAutomation Machine Agent Service.


Except for the Services, WinAutomation will use multiple different Windows Processes to perform all the operations:

  • the WinAutomation Console (Console.exe)
  • the User Agent (UserAgent.exe)
  • the Process (Process.exe)
  • the WA Controller (WinAutomationController.exe)


Additionally, WinAutomation uses, is a series of files created upon the very first WinAutomation Installation.

Three files located under the “C:\ProgramData\Softomotive\WinAutomation” folder:

  • GlobalSettings.dat
  • Logs.dat
  • Addons.dat


In the “C:\Users\...username…\AppData\Local\Softomotive\WinAutomation” can be found the

  • Settings.dat
  • CompiledJobs folder
  • ProcessesDatCurrentFilePath.txt


Finally, the Processes.dat is by default located under the User’s Documents “C:\Users\...username…\Documents”.


Services

Upon installation, two WinAutomation Services are created which are constantly running in the background (an option that can be changed through the Console later on). These services can be found in the Windows Services (“Run > Services.msc”).


WinAutomation Server Service

Commencing a machine’s startup, the WinAutomation Server Service Starts. The Server is the core of WinAutomation and has the main responsibilities so that the tool functions flawlessly. In case the WinAutomation Server stops, the other components will not be able to operate at all.


The first step that the Console does is checking whether the license of the machine is missing. This information is located under the globalsettings.dat file which is under the Program Data folder. (Note: In case the “GlobalSettings.dat” file is missing, it is being reconfigured on the spot)


The next step it takes is checking that all the registered users are validly registered on the machine and confirms each process database file location for each of the registered users. In case any file is missing, it creates a new one and checks if the file’s size is 0KB (i.e. it is corrupt). Once accessing those settings, they are stored in memory.


The next step that the Server completes, is writing in the memory, all the Schedules that every user has set. The Schedules are being stored under the database file of each user (Processes.dat).


The license, which was previously retrieved, is now being checked for its validity. (Note: The license is not the license key; however, the license key is generating it. In case the license is invalid, Schedules and Triggers will not operate.)


The Server has to run under the Local System, or as a User who has Full Administrative Privileges.


Once all the above are fulfilled, the Server starts to accept requests from all the other “components”. For all communications, which use the WCF .net framework with .netpipes binding, the Server keeps an open connection with every component (except the WinAutomation Controller). This connection is being checked every 5 seconds to confirm that the respective process is still running.


WinAutomation Machine Agent

The Machine Agent Service of WinAutomation is the second Service that starts and is responsible for all the Triggers (except the Hotkey and Idle monitor trigger) as well as the execution of any Non-interactive processes. The first action that the Machine Agent performs is the receipt of the Triggers from the Server. As previously, the Server collects the Triggers from each of the “Process.dat” files of each user.


As at this point no user has logged on yet, hence any Trigger or Schedule that would be satisfied would trigger the process related to it, given that the “Run Policy” options of the Process allow it to run.


In the event of a process would need to run non interactively due to “Run Policy” settings, the machine agent makes sure, that the process will run under the credentials of the process owner (By default the Machine Agent is set to run under the local system. - In cases that a File Monitor trigger is monitoring a network folder, then the service should be set to +run as a network user who has access to that network folder).


In case the process requires the user to be logged on because of the “Run Policy” settings, the Server “Checks” if any other user is logged on, then the Server performs an “Autologin” using the process owner’s Credentials and awaits for the User Agent to be connected to the Server.


WinAutomation Processes


WinAutomation User Agent

In case the user is already logged on, just starting the Console, is enough to trigger the User Agent. The User Agent every time it connects, sends to the Server a series of data for identification of the user.


Next, the User Agent, retrieves the two triggers that the Machine Agent is not responsible for. The Hotkey and the Idle Monitor Triggers. In the event of one of the above triggers, the User Agent would “notify” the event to the Server which would then sequentially “inform” the User Agent which process to run.


Always, the User Agent executes a Process.exe process so that to be standby and use it once a process is invoked (There is always one Process.exe additional to the number of processes running).


WinAutomation Console & Process Designer

Except for the WinAutomation User Agent, a process can also be invoked through the Process Designer. In this case, the process starts with the debugger.

In case though one triggers a process from the Console, the User Agent is the one triggering the Process.exe which runs the process.



WinAutomation Files

Upon installation, WinAutomation creates files and folders in specific folder locations on the machine, each of which comes with a certain functionality:

Processes.dat

  • Found in: C:\Users\<username>\Documents\WinAutomation
  • Functionality/Role: This file is the main database that is used by WinAutomation. All the developed processes in WinAutomation Console folder structure, their associated schedules and triggers, as well as the rest of their related information can be found in this database.

Settings.dat

  • Found in: C:\Users\<username>\AppData\Local\Softomotive\WinAutomation
  • Functionality/Role: This file is a database that is associated with the User’s personal settings and configuration used in WinAutomation.

ProcessesDataCurrentFilePath.txt

  • Found in: C:\Users\<username>\AppData\Local\Softomotive\WinAutomation
  • Functionality/Role: This is a text file that contains the full path of the Processes database, which is currently used in WinAutomation Console by the respective User. This file location is also shown in the General option under the Options tab of WinAutomation Console.

Compiled Jobs

  • Found in: C:\Users\<username>\AppData\Local\Softomotive\WinAutomation
  • Functionality/Role: This is a folder that contains the compiled forms of all the processes that have run at least once in WinAutomation Console.

Addons.dat

  • Found in: C:\ProgramData \Softomotive\WinAutomation
  • Functionality/Role: This file is a database that includes all the extra Addons that have been installed in WinAutomation.

GlobalSettings.dat

  • Found in: C:\ProgramData \Softomotive\WinAutomation
  • Functionality/Role: This file is a database associated with the settings of the software itself, like the license used in the Console.

Logs.dat

  • Found in: C:\ProgramData \Softomotive\WinAutomation
  • Functionality/Role: This file is a database that contains all WinAutomation Logs.


Database Structure

All the WinAutomation .dat files are SQLite databases. SQLite is an embedded database which does not require a server tool for communication.


Encryption

For the encryption of Global passwords (Authentication and SMTP), WinAutomation uses DPAPI where a hardcoded password is used along with the Machine’s system password. The above two passwords are saved on the already encrypted “Settings.dat” file.


All the actions that contain a password, are encrypted with AES-192 bits encryption and the decryption occurs by the action itself during the execution. The encryption is in the XML script for execution through the Designer, or on the .dll of the file when there is a runtime execution.


For Password Protected processes, WinAutomation uses the hash of the password to encrypt the process. If a process is moved to another database the password is required both for modifications and for the first execution.