# What is ESP? ESP is a software suite built by ESS and sold to customers. It is deployed on a **per-customer basis** — similar to TMC (another internal product) but with fewer applications in the suite. Key traits: - Customers only have the apps **they use** — not every customer gets everything - Customers may have multiple environments (e.g. TEST and PROD) - Test and PROD instances may live on the **same server** — this is a risk to be mindful of during deployment # Application Categories ESP applications fall into three categories: ## 1\. Databases | Application | Type | Notes | | ----------- | ---------- | ------------------------------------------- | | EspBroker | SQL Server | The core ESP database. Deployed via dacpac. | See [[ESP Database]] for Dacpac detail. ## 2\. Windows Services [[Windows Services]] are background processes that run on a Windows server. They have no UI — they start, run, and are managed via the Windows Service Manager (or PowerShell commands like `Stop-Service`, `Start-Service`). | Service Name | Notes | | --------------- | --------------------------------- | | DLService | Unknown specific function (TBC) | | EmailService | Likely handles outbound emails | | ExPlService | Unknown specific function (TBC) | | MISService | Unknown specific function (TBC) | | OutboundService | Likely handles outbound messaging | | ULService | Unknown specific function (TBC) | ### Working with Windows Services in PowerShell ``` powershell # Stop a service Stop-Service -Name "DLService" -Force # Start a service Start-Service -Name "DLService" # Check service status Get-Service -Name "DLService" # Wait for a service to stop (Get-Service -Name "DLService").WaitForStatus('Stopped', '00:01:00') ``` ### Why Services Must Be Stopped Before Deployment When deploying a new version, the old service process holds file locks on its [[DLL's]]. You cannot overwrite a locked file on Windows. Therefore the sequence is: 1. Stop the service 2. Swap the files (old → new) 3. Start the service ## 3\. Citrix Applications Citrix is a technology that **streams desktop applications** to users remotely - the app runs on a server but the user sees it on their machine, similar to a remote desktop but on a per-app basis. | Application | Notes | | ------------- | ---------------------------- | | VPlanner | Main planning application | | VPlannerAdmin | Admin interface for VPlanner | | ImportApp | Data import application | ### Citrix Deployment Considerations Citrix apps are more complex to deploy than Windows Services because: - **Active user sessions** may be running — you can't just swap files - You must **notify users** of the upcoming upgrade and give a grace period - After the grace period, **kill any remaining sessions** - The actual upgrade mechanism is **still TBC** — believed to be a file copy with handling for locked executables built in - Post-deploy **cycle checks** require navigating Citrix UI — hard to automate # Per-Customer App Lists Unlike TMC (where presumably all customers get everything), ESP is a subset deployment. This means: - The manifest (see [[ESP Manifest]]) must define **which apps each customer has** - The deployment scripts must skip apps not applicable to a given customer - There is no universal "deploy everything" - each customer's list must be explicitly defined and maintained # Completeness of This List The handover document states this list is believed complete but **has not been confirmed**. Treat it as a working assumption, not a guarantee. Validate against actual customer environments when possible.