Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


HTML
<style>
.text-span-6 {
    background-image: linear-gradient(99deg, rgba(170, 163, 239, .5), rgba(125, 203, 207, .5));
    border-radius: 50px;
    padding-left: 15px;
    padding-right: 15px;
}

#title-text {
display: none;
}

.panelgradient {
    background-image: linear-gradient(180deg, #d5def0, whitesmoke);
    border-radius: 8px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 4rem;
    display: flex;
    position: relative;
}

</style>


<div class ="panelgradient">

<h1 style="text-align: center;">Solution Deployment</h1>

</div>



Introduction to Solution Deployment

When you finish developing and testing your solution, you can deploy the runtime application so it can be used by end-users. Solutions can be deployed to run locally on a stand-alone computer or embedded device, in a client-server distributed architecture, on the cloud, or using

  • Locally
  • On an Embedded Device
  • In a Client-Server Distributed Architecture
  • On the Cloud
  • Using Hot-Standby Redundant systems.

This section explains the architecture of the solution deployment, including the relationship between the development and runtime environments. It reviews how to use the Execution Profiles feature, which allows the same Solution configuration file to be shared on the Development, Testing, and Production installations. This organization simplifies the maintenance and the quality assurance of your solutions.

On this page:

Table of Contents
maxLevel3
style

On this page:

Table of Contents
maxLevel3
stylenone




Key Concepts and Terms

Development vs. Runtime Environments

The development environment is where you design, configure, and test your Solutionsolution. It provides a comprehensive set of tools for building HMI, SCADA, and MES applications, including graphical editors, scripting support, and debugging capabilities.

The runtime environment, on the other hand, is where the deployed application runs and interacts with the actual devices, data sources, and end-users. It executes the solution's logic, collects and processes data, and manages the user interface based on the configuration created in the development environment.

The primary goal of the deployment process is to transfer the solution from the development environment to the runtime environment, ensuring that all necessary settings, configurations, and resources are correctly transferred and applied.

Execution Profiles

Execution Profiles enable you to manage efficient management of different stages of your solution lifecycle efficiently. By using profiles, you can apply settings and configurations specific to the Development, Test, and Production environments without having to create creating separate solution files.Image Removed

  • Development: Profile for building and making changes to the solution.
  • Validation: For testing and validating changes in a simulated environment.
  • Production: For operation in a live production environment.

Note: In the The software platform , you can also enable allows "Online Configuration," , allowing for enabling real-time changes without disrupting the system. Use with caution.

Each profile can have its own set of configurations, such as database connections, device communication settings, and user access permissions. This allows you to test and validate your solution in different environments without affecting the production system.

To leverage profiles effectively:

  1. Create separate Execution Profiles for Development, Test, and Production.
  2. Define environment-specific settings and configurations for each profile.
  3. Deploy the solution to the appropriate environment,
making sure to select
  1. selecting the corresponding Execution Profile during deployment.

By using Execution Profiles, you can ensure a smooth transition between solution stages and minimize potential issues caused by environment differences.

Server and Client Processes and Computers

The software platform uses a client-server architecture on for its execution processes. 

  • Server process: The Server processes are modules that has Process: Modules with a global impact in on the Applicationapplication, such as Data Acquisition, Historian, Alarms, and server-side calculations.
  • Client process: The client components are the graphical user Process: Graphical user interfaces and related scripts.

Those Server and Clients client processes can run on the same computer, when running handling both the data - acquisition and the graphical displays on the same computer, or . Alternatively, you can have an Distributed Systema distributed system, where the Solution solution file in is installed in on a server, and remote clients, with no local installation of the process, can access the Graphical Displays graphical displays and interact with communication with the server.




Understanding Solution Deployment

Deployment Architecture Options and Scenarios

and Architecture

Explore the In this section, we will discuss various deployment architecture options and scenarios available in this software platform . Each scenario to find the best fit for your application. Each scenario has its benefits and is suited for different situations, depending on factors such as network topology, available hardware, and performance requirements. Explore the following scenarios to find the best fit for your application

Deployment Scenarios:

  • Standalone Computers: Suitable for small-scale applications, testing, and development purposes.
  • Edge and Embedded Devices: Ideal for real-time data processing and decision-making at the network edge.
  • Distributed
systems
  • Systems:
various
  • Various client stations accessing a server, or server-to-server communications
. Offers
  • , offering better resource utilization, centralized management, and improved scalability.
  • Redundant Servers and Hot-Standby Systems: Provides high availability and fault tolerance for critical applications.
  • Cloud Deployment: Enables improved scalability, flexibility, and reduced infrastructure costs.
  • Using the Secure WebGateway: Enhances security and enables remote monitoring, control, and management of the application.

By understanding the different deployment scenarios, you can choose the most suitable architecture for your specific application requirements and ensure a smooth deployment process.

Standalone Computers

Standalone deployment involves running both the development and runtime environments on a single computer. This scenario is ideal for small-scale applications, testing, and development purposes. In standalone mode, the application communicates directly with the devices and data sources, and end-users access the user interface locally on the same computer.

Edge and Embedded Devices

Edge and embedded deployment scenarios involve running the runtime environment on edge devices, such as industrial PCs, IoT gateways, or embedded systems. In this case, the application is deployed close to the data sources and devices, providing lower latency and reduced network traffic. This scenario is suitable for applications that require real-time data processing and decision-making at the edge of the network.

Client-Server Operations

Client-server deployment involves running the runtime environment on a dedicated server, with multiple clients connecting to the server to access the user interface and interact with the application. This scenario allows for better resource utilization, centralized management, and improved scalability. In a client-server architecture, the server is responsible for data collection, processing, and execution of solution logic, while clients display the user interface and provide user interaction capabilities.

Redundant Servers and Hot-Standby Systems

Redundant deployment involves running the runtime environment on multiple servers, with each server acting as a backup for the others. This scenario provides high availability and fault tolerance, ensuring that the application continues to operate even if one server fails. Hot-standby systems consist of primary and secondary servers, where the secondary server takes over if the primary server fails, ensuring minimal downtime.

Cloud Deployment

Cloud deployment allows running the runtime environment on a cloud-based server, enabling improved scalability, flexibility, and reduced infrastructure costs. In this scenario, the application is hosted on a cloud provider, and clients can access the user interface and interact with the application through the internet. Cloud deployment also simplifies management and maintenance, as the cloud provider takes care of the underlying infrastructure.

Using the Secure WebGateway

The Secure WebGateway deployment scenario allows remote access to the application over the internet , without exposing the server directly to external networks. This approach provides enhanced security and enables remote monitoring, control, and management of the application. The Secure WebGateway acts as a proxy between clients and the runtime environment, handling authentication, encryption, and communication between the two.




Solution Deployment Overview

Client-Server Architecture

The platform always uses a Clientclient-Server architecture, some of scenarios describe they may thought use a sub set server architecture. Some scenarios may use a subset of the functionality , or run both the. server and client components on the same computer.  The Server side installation involves coping

Server-Side Installation:

  • Copy the Solution File (.dbsln or .dbrun) to the computer
and making sure the sources
  • .
  • Ensure that the necessary resources for the server-side modules
will need
  • ,
like
  • such as external files or communication ports,
 are
  • are available on the computer.
The server
  • Server-side modules
are
  • include Devices, Alarms, and Historian.
The
  • Some functionalities of Datasets, Scripts, and Reports
have some of functionality executing
  • execute on the server side,
some executing
  • while others execute on the client side.
 
When you have a local or stand-alone solution, the server and the

Local or Stand-Alone Solutions:

  • The server and client components run on the same machine.
For the Client components,

Client Components:

  • Displays and actions
started
  • initiated by the displays or
its code Behind, there are
  • their underlying code support various technologies
supported
  • , each
one
  • with its own setup procedure.

Deployment Steps to setup.The steps to do the deployment are detailed in the following sections, but in a nutshell, it involves:

  • Product Installation on the Target Computer
  • License and Solution Settings Verification
  • Setup the Solution file File and Dependencies in on the computerComputer
  • Document the Client URLs for connection and its optional parametersConnection and Optional Parameters

Detailed deployment steps are provided in the following sections.




Preparing for Solution

Preparing for

Deployment

This section guides you through the process of preparing your solution for deployment

. It focuses

, focusing on key considerations and best practices related to installation, licensing, and system requirements

while referencing

. For detailed information, please refer to the relevant chapters in the product documentation.

→ Click Where?

Topics Covered for detailed information. The topics covered include:

  • Addressing specific installation and licensing considerations during deployment
  • Deploying the application on different platforms, including system requirements and platform-specific instructions
  • Handling licensing and activation requirements to avoid restrictions or limitations
  • Conducting post-deployment verification to ensure successful installation and application functionality
Product

Installation and Licensing on the Target Computer

The product must be installed and

license

licensed on the

Target Computer

target computer. The necessary steps to perform

that were

this are described in previous sections of the documentation

, here

. Here is a reference to

located

locate the information according to your deployment scenario and operating system.

 This

Summary of the Deployment Process:

  • Windows, Linux, and Docker Environments:
    • This section summarizes the deployment process on various platforms,
such as
    • including Windows, Linux, and Docker
environments
    • .
    • It includes references to
the
    • specific documentation topics on installation steps and
platform
    • platform-specific instructions.

For detailed information, please refer to the respective chapters in the product documentation based on your deployment scenario and operating system.

Platform Overview > System Requirements: presents the basic procedure and requirements for installation.

Getting Started > Managing Installations: addresses custom scenarios, like WebServer, Canary Historian and other additional tools.

Getting Started > License And Activation: information on how to acquire and install a license.

License and Solution Settings Match Verification

A Solution can be created to target different product series options, like Unlimited, or EdgeHMIEdge HMI, EdgeGatewayEdge Gateway, and its target of process tags.

A verify important The final verification before deployment for production is to step in verification is to make sure the Solution Settings matches the license on the production computer. 

Here's How:

In the Designer software, go to Solution > Settings, and verify the Product Series (Family and Model) the solution was designed for. You may have also a Historian requirement.

In the Solutions Management software, go to the License tab, and verify the license information for the computer you run are running the solution on

The License must be from a version equal or newer to your solution, and the product series must be equal or higher (in family type and quantity of tags) than your solution.  For more information in product series, go to Platform Overview > Product Series 

→ Read more about Product Series.

Your solution may required specific additional licenses, like IEC protocols, or licenses for third-party systems.

Installing the Solution File

Each solution is save saved in a single file , with the extension .dbsln for standard solutions or dbrun, according is a standard solution, or a .dbrun for read-only published solutionsolutions.

That This file can be sent transferred to the Target Computer target computer using the Solutions Management tool, or with a custom application created with the RemoteAPI for more advanced scenarios. It certainly can also be copied manually or using some , or manually via FTP or other file exchange tool tools available on your device. 

Although one file contains the entire solution configuration, you should use the following checklist to ensure that any external dependencies are also taken care ofaddressed:

  • External Dependencies: Verify that any external dependencies are included. If the folder structure
is different on the production computer and the computer used for your solution's development, make sure that all of your solution's file
  • differs between the development and production computers, ensure all file paths are correctly mapped
to the production computer
  • .
There are many macros you can use in some
  • Macros: Utilize macros like ExecutionPath or SolutionName in connection and file names
, such as _ExecutionPath_, or SolutionName_, which can assist you
  • to create solutions that
will
  • can be easily installed
in
  • on different computers.
Whenever possible, avoid
  • Avoid using fixed path locations
in your solutions
  • whenever possible.
Any
  • External WPF Controls: Copy any external WPF controls
should also be copied
  • to the target computer. For remote web access, place these files
should be located
  • in the WpfControl folder and run the utility that updates the web manifest
must be executed.
If the application references external DLL
  • .
  • External DLLs or .NET Assemblies: Ensure any referenced external DLLs or .NET assemblies
, ensure they
  • are available and
at the correct paths
  • correctly pathed on the target computer.
If the solution uses Retentive values, you must decide if
  • Retentive Values: Decide whether the target computer will create a new
Retentive
  • retentive database or if you will copy one with predefined values.
  • Firewall Configuration: Enable the firewall to allow remote clients
. Ports
  • , specifically port 3101 for startup
(optionally
  • and any other ports according to your runtime settings
)
  • .
For Web clients, the
  • Web Clients: The TServer port 3101, or the defined port
you have defined
  • ,
is
  • also
a
  • serves as an HTTP/HTTPS protocol listener,
so no installation of Web Servers is necessary
  • negating the need for installing web servers. If there is a policy or requirement to use Microsoft IIS
,
  • or
other
  • another external
WebServer, that setup is described in
  • web server, refer to the Installation section for setup instructions.
 

Setup the Solution on the Production Environment

In a production environment, a streamlined installation and configuration process is crucial. While detailed instructions for the software platform installation are available in the "Installation and Licensing" chapter, this section zeroes in focuses on the Solution Configuration layer.

Running as a Service:

  • Setting up the software platform to run as a service ensures consistent and uninterrupted operation.
You can view the setup in
  • Refer to the Service Verification page for setup details.

Server AutoStartup Options & Startup Parents:

  • These features enable automatic initialization of specific components and maintain parent-child hierarchies in the solution structure.

Embedded Devices:

  • Deploying on embedded devices comes with its own set of challenges and benefits. Ensure you understand the nuances and considerations specific to embedded deployment.

Redundancy Systems:

  • Designing a robust solution often involves setting up redundancy. Learn how the software platform handles failover mechanisms and maintains data integrity.
  Please see
  • Refer to the Redundancy Configuration page for more information.

Additional Configurations:

  • Each production environment is unique.
Dive deeper into
  • Explore specialized configurations tailored for specific use cases.

Installing the Solution

file. 

File

A solution is installed on the server as a single file, either the main configuration file (with the "dbsln" extension) or a read-only file (with the "trundbrun" extension) if you have created one.

The Solution Management utility allows you to connect with remote servers and download the solution file to remote computers.

Although one file contains the entire solution configuration, you should use the following checklist to ensure that any external dependencies are also taken care of.

If the folder structure is different on the production computer and the computer used for your solution's development, make sure that all of your solution's file paths are correctly mapped to the production computer. The software platform has many

Checklist for External Dependencies:

  • Folder Structure: Ensure all file paths are correctly mapped to the production computer if the folder structure differs from the development computer.
  • Path Definitions: Use features and macros to define paths relative to the solution location, product installation, or execution path.
Whenever possible, avoid
  • Avoid using fixed path locations
in your solutions
  • whenever possible.
Any
  • External WPF Controls: Copy any external WPF controls
should also be copied
  • to the target computer. For remote web access, place these files
should be located
  • in the WpfControl folder and run the utility that updates the web manifest
must be executed.
  • .
  • External DLLs or .NET Assemblies: Ensure any referenced external DLLs
If the application references external DLL
  • or .NET assemblies
, ensure they
  • are available and
at the correct paths
  • correctly pathed on the target computer.
If the solution uses Retentive values, you must decide if
  • Retentive Values: Decide whether the target computer will create a new
Retentive
  • retentive database or if you will copy one with predefined values.
  • Firewall Configuration: Enable the firewall to allow remote clients
. Ports
  • , specifically port 3101 for startup (optionally port 3201 for Test Mode). For web and iOS clients, enable data web services
are enabled
  • on port 80.
If the application uses
  • Compatibility Checks: Ensure compatibility of PATHNAMES used in the solution configuration for any external DLLs, WpfControls, configuration files, or embedded databases
, make sure you copy the files to the target machine and double check if the PATHNAMES you used in the solution configuration are compatible
  • .




Client Displays and Remote Visualization

Setting Up Client Displays for the Application

This section focuses on setting up client displays for the application. It covers the application, covering various client configurations, remote access options, and guidance on how to optimize optimizing the user experience for end-users. The topics covered include

Topics Covered:

  • Configuring remote client setups and access options for different client types, including mobile and web-based access
  • Implementing auto-start client displays for efficient application launching
  • Managing user authentication and security settings for client displays
  • Optimizing client display performance and responsiveness across platforms and devices

Remote Client Setup

,

: Desktop, Web, and Mobile

This section presents the setup and configuration processes for remote clients, including the various technologies support supported by the platform:

  • Windows based rich clients, using -based Rich Clients: Using WPF (Windows Presentation Foundation)
  • .NET SmartClients, which allows : Allowing no-install thin-client access from compatible platforms
  • HTML5 web pages, for Web Pages: For both desktop and mobile devices.

Go For detailed information, refer to the child page Remote Clients Setup for detailed information.

Auto-Starting .NET and HTML5 Clients

The software platform has the ability to can automatically start the client application, either using .NET or HTML5, when it detects the Server server is available. 

For more information on configuring and using this feature, refer to the child The child page Display Client Types has information on how to configure and use that features.

User Authentication and Security

This section summarizes aspects of the software platform , which addresses that address the importance of user authentication and security settings for client displays, including role-based access control, secure communication protocols, and best practices for maintaining a secure client environment. It also includes the links on to platform-specific security considerations for different client types.

Key Topics:

  • Platform Overview > Security and Compliance:
high
  • High-level view of security and compliance features in the software platform.
  • Solution Development > Security, Users, and Roles:
configuration
  • Configuration of development and runtime users, definition of
User Roles
  • user roles, and access controls on
Displays
  • displays and
Commands
  • commands.
  • Solution Development > Security → Windows AD / LDAP Servers:
explains about
  • Information on Active Directory integration and alternate security models for non-Windows targets.
 
  • Solution Development > Displays
> (Need to create): explain how to
  • : Explains how to customize the built-in
Logon
  • logon page for remote clients and operators.
 
  • Secure Multi-Port WebGateway:
explains the built-in
  • Explains how to route data across
Network Security
  • network security zones
,
  • and create application-level protection
for
  • against intrusions.




Remote Management and Monitoring

Discuss options for deploying and managing applications remotely, including any web-based tools or remote access features. Explain built-in tools and features for monitoring the performance and health of the deployed application, as well as troubleshooting any issues that may arise.

Tools for Remote Management

Tools for Remote Management

  • Remote Access API: We have tools for Remote Access Management

    • WebAccess API : A essential tool for remote system management. It

    Remote Access API: We have tools for Remote Access Management, like:

    • WebAccess API : A essential tool for remote system management. It offers methods to interact with the system via web-service, allowing reading and writing tag values, in addition to other essential operations.

    • Remote Execution : A guide to how configure devices for Remote Clients. Allows the an out of-the-box setup for gateway and tunneling applications. See the Remote Channels page for more details.

    • Remote Clients : Its possible access multiple clients with the software platform. Please view the setup on the Remote Clients Setup page.

    • Service Verification : Enables remote solution configuration access and advanced diagnostics and installation information, in case a manual setup or verification. Service Verification

  • Built-in Monitoring Tool: The software platform have monitoring tools for all of your functions. You can check the full content on UNS - Connections Monitor, Devices - Monitor, Historian - Monitor to monitor and analyze your solution.

Monitoring performance and health

It's vital to regularly monitor your software's performance and health for reliability and optimal functionality.

Best Practices:

For strategies to optimize system performance, see our: Best Practices Guide

Using these resources ensures that your software platform systems are robust and efficient.




Version Control, Maintenance, and Upgrades

Navigating the intricacies of version control, maintenance, and upgrades is vital for the longevity and health of your deployed applications. By implementing robust strategies, you can ensure that your solutions remain up-to-date and reliable.

Managing Version Control for Product Core and Solution

:

Version control is pivotal in crucial for maintaining the consistency of your solutions. Ensure that Effective tracking of both the core product and individual solutions are tracked effectively to helps avoid conflicts and guarantee allows for streamlined rollbacks if necessary.

Recommended Workflows, Tools, and Techniques:
There are best practices and tools tailored specifically for the software platform. Adhering to these workflows can drastically simplify the maintenance process.

Upgrading Deployed Applications:
Keeping your applications current ensures access to the latest features and security updates. Understand the upgrade pathways to transition smoothly between versions.

Troubleshooting:

Key Steps:

  • Core Product Tracking: Use version control systems to track changes and updates to the core product, ensuring that all modifications are documented and easily accessible.
  • Solution Tracking: Apply version control to individual solutions to maintain a history of changes, enhancements, and bug fixes.

Recommended Workflows, Tools, and Techniques

Adhering to best practices and using tailored tools can significantly simplify the maintenance process.

Best Practices:

  • Commit Regularly: Make regular commits to your version control system to keep a detailed record of changes.
  • Use Branches: Utilize branches for different stages of development, such as feature development, testing, and production.
  • Document Changes: Maintain thorough documentation of changes, including descriptions and reasons for modifications.

Tools and Techniques:

  • Version Control Systems (VCS): Implement a VCS like Git to manage and track changes.
  • Continuous Integration/Continuous Deployment (CI/CD): Set up CI/CD pipelines to automate testing and deployment processes.
  • Automated Testing: Use automated testing tools to ensure that changes do not introduce new issues.

Upgrading Deployed Applications

Keeping your applications current ensures access to the latest features and security updates. Understanding the upgrade pathways is essential for a smooth transition between versions.

Upgrade Pathways:

  • Plan Upgrades: Schedule regular upgrades to align with the release cycles of the software platform.
  • Backup Data: Before upgrading, ensure that all data is backed up to prevent loss during the transition.
  • Test Upgrades: Perform upgrades in a staging environment to identify potential issues before applying them to the production system.
  • Rollback Procedures: Have a rollback plan in place in case the upgrade introduces unexpected problems.

For solutions to common challenges, refer to our Troubleshooting Guide.




In this section:

Page Treeroot@selfspacesV10What's Next?