About Project Execution and Runtime
Project execution and runtime refer to the period when a project is actively running, processing data, and updating visual displays based on its configuration. This phase is crucial to ensure the project's functionality is delivered effectively and efficiently. The runtime environment is where applications perform their intended operations according to the project's settings. Key aspects include execution profiles, which dictate how a project runs on the software platform, and online configuration, allowing real-time changes to a running project without stopping its execution. Additionally, hot updates enable offline project modifications to be applied without disrupting the runtime environment. Understanding these concepts and their roles in project execution and runtime is essential for effectively managing projects and ensuring optimal performance.
Table of Contents | ||
---|---|---|
|
Key Concepts and Terminology
Runtime
The runtime refers to the environment where a project operates, actively processing data, performing tasks, and updating displays as configured. It is an essential phase of a project lifecycle, ensuring its functionality is delivered effectively.
Execution Profile
An execution profile is a set of predetermined settings that dictate how a project runs on the software platform. It allows users to customize the project's behavior during runtime, facilitating the management of different environments, such as development, testing, and production.
Online Configuration
This feature enables real-time modifications to be made to a running project without stopping its execution. It allows users to adapt the project to changing requirements, improving flexibility and responsiveness.
Hot Updates:
Hot updates are a subset of online configuration, permitting the application of offline project changes without disrupting the runtime environment. They are essential for maintaining project stability and avoiding downtime while ensuring the project stays up-to-date with the latest changes.
Build and Publish:
The build and publish process involves compiling project code and creating a read-only version of the project, which can be distributed to end-users. This step is critical in ensuring the project is ready for deployment and accessible to the intended audience.
Key Concepts
Runtime
Refers to the Project when it is in execution. Project runtime can also refer to the set of programs that are loaded when a Project Configuration is loaded and running.
Application
In many contexts, Project and Application are used as synonyms, but in some cases the term Application is used to focus on the functionality that is being delivered when the Project is running, as Project would refer to its configuration.
Runtime Startup
The process of starting the application. The Project configuration is loaded by the programs (Runtime Modules) that will execute its configuration.
Real-time Database or TServer
The most important program when the Project is running is called TServer, which holds an in-memory database with the Tags defined in that Project.
Engineering vs Runtime
Engineering refers to the project Configuration. The term can be applied when writing about Licenses, software tools, and User Interfaces. As Runtime, as seen, is related to the execution of the Project.
Online Configuration
In some cases, the distinction of engineering and runtime is essential to make some solutions viable. In some cases, it is preferred to just keep the Project running all times.
The Online Configuration enables it. When the project is running, the changes you do in the configuration are immediately applied to the execution environment.
Runtime connection with the configuration
In order to allow the Online Configuration, the Runtime execution and the configuration tool (ProjectDesigner) need to have a communication connection.
When the Project is running, you can easily connect or disconnect the two environments. <<<<.image of buttons>>>>
Hot Start
If you modify the Project configuration off-line (not using the Online Configuration), when the ProjectDesigner connects with a Runtime, a Hot Start button is enabled.
The Hot Start button allows you to apply all the off-line Project modifications to the running system without stopping it.
This process of dynamically applying a new configuration without stopping the execution is called Hot Start or hot-swapping,
Test Mode and Startup Mode
The project can be executed in two isolated environments: Test and Startup.
The Startup Mode is the production environment, running with the same settings that will be used to deploy to the field or production environment.
The Test Mode allows to automatically modify database connections, scripts, debugging tools, to run the project in a development and test environment.
How the Project Execution Works
The project execution process is a crucial aspect of any software development lifecycle, ensuring that the project runs efficiently and delivers the expected results. This section provides an overview of how project execution works:
Configuration and Runtime Process Isolation: The project runtime environment is isolated from the development and configuration processes to maintain stability and prevent interference between the two. This separation allows for smooth operation during runtime and facilitates troubleshooting and modifications during the development process.
Starting the Real-Time Database and Modules: At the beginning of project execution, the real-time database and necessary modules are initiated. These components are responsible for managing data streams, processing tasks, and interacting with other system elements.
Reading Project Configuration and Applying Profiles: The system reads the project configuration and applies the appropriate execution profile. This step ensures that the project operates according to the predetermined settings and adapts to different environments, such as development, testing, or production.
Project Designer Automatic Connection: The project designer automatically connects to the running project, allowing users to monitor progress, make adjustments, and troubleshoot issues as needed.
Applying Online Changes and Hot Updates: During execution, the system can apply online configuration changes and hot updates without disrupting the runtime environment. This capability enables users to adapt the project to changing requirements and maintain stability.
Opening Client-Side Displays: As the project executes, client-side displays are opened to provide visual feedback, control options, and real-time data for end-users. These displays are crucial for effective user interaction and project monitoring.
By following these steps, the project execution process ensures efficient operation and optimal performance, while maintaining flexibility and adaptability for users.
Configuration and Runtime Process Isolation
In a software development project, it is essential to maintain stability and prevent interference between various stages and components of the project. Configuration and runtime process isolation is a technique used to achieve this goal, ensuring that the configuration and development aspects of the project do not negatively impact the project's runtime environment.
The configuration process involves setting up parameters, profiles, and other project settings, which define how the project should operate. On the other hand, the runtime process focuses on executing the project and maintaining optimal performance. By isolating these processes, developers can modify configurations and test new features without disrupting the running project.
This isolation is achieved through several means:
Separate Environments: By using separate environments for development, testing, and production, it is possible to work on project configurations and features without affecting the runtime environment. Any changes made during development are not reflected in the runtime environment until they are thoroughly tested and deployed.
Containerization: Containerization technologies, such as Docker, allow developers to create isolated containers for different parts of the project. This approach ensures that modifications made in one container do not impact the runtime environment or other containers.
Version Control: Implementing version control helps manage project configurations and code changes. This method allows developers to experiment with configurations, roll back to previous versions, and track changes without affecting the runtime environment.
Access Control: By implementing access control mechanisms, it is possible to restrict modifications to the runtime environment and configuration settings. This approach ensures that only authorized personnel can make changes, reducing the risk of accidental disruptions or unauthorized access.
By employing configuration and runtime process isolation, projects can maintain stability, enhance security, and minimize disruptions during the development and execution phases. This practice allows for continuous improvements, troubleshooting, and adjustments without compromising the project's overall performance.
Real-Time Database and Modules
In modern software development projects, real-time databases and modules play a crucial role in ensuring efficient data processing and communication between different components. This section outlines the process of starting the real-time database and modules in a project.
Initialization: During the initialization phase, the system sets up the necessary resources and connections for the real-time database and modules. This step involves loading configurations, establishing connections to external systems or services, and preparing the environment for seamless data handling.
Launching Modules: Once the real-time database is initialized, the system activates the required modules. Modules represent individual components of the project, each responsible for specific tasks or functionality. These modules can be developed independently and integrated into the main project to achieve a modular architecture.
Data Synchronization: After launching the modules, the system synchronizes data between them and the real-time database. This synchronization ensures that modules can access and manipulate up-to-date data, resulting in accurate processing and decision-making. Data synchronization may involve event-driven updates or periodic data refreshes, depending on the project's requirements.
Monitoring and Management: With the real-time database and modules up and running, the system continuously monitors their performance, resource usage, and overall health. It also handles error reporting, logging, and recovery procedures, ensuring that any issues are detected and addressed promptly.
Scalability and Adaptability: As the project evolves and expands, the real-time database and modules must adapt to changing requirements and scale accordingly. This adaptability involves implementing strategies to handle increased data volumes, module complexity, and user demands.
Starting the real-time database and modules is a critical step in the project execution process, providing a foundation for real-time data processing, communication, and decision-making. By following the steps outlined in this section, projects can ensure a smooth and efficient transition from the development phase to a fully functional runtime environment.
Enhancing Project Functionality and User Experience
In modern software development, it is crucial to deliver projects that offer seamless functionality and a positive user experience. This section aims to discuss three essential aspects that contribute to achieving these objectives: Project Designer Automatic Connection, Applying Online Changes and Hot Updates, and Opening Client-Side Displays. By understanding and implementing these features effectively, developers can create more robust and user-friendly projects, leading to increased customer satisfaction and improved project outcomes.
Project Designer Automatic Connection
The Project Designer Automatic Connection feature facilitates seamless integration between the project designer and the runtime environment. This functionality allows developers to quickly connect to the project's runtime and easily make changes, test functionality, and visualize results in real-time. The automatic connection ensures that developers can efficiently iterate on their projects and rapidly address any issues or implement new features.
Applying Online Changes and Hot Updates
Applying online changes and hot updates is a crucial aspect of software development that ensures minimal downtime and quick deployment of new features or fixes. This section will cover how to implement and manage hot updates in a project, allowing for real-time updates without requiring a complete system restart. Topics covered will include mechanisms for applying changes, version control, and best practices for testing and deploying updates.
Opening Client-Side Displays
Opening client-side displays is an essential step in creating a user-friendly and interactive interface for the project's end-users. This section will discuss various methods for opening and managing client-side displays, including handling multiple display types, optimizing performance, and ensuring compatibility across different devices and platforms. Additionally, this section will provide guidance on user experience (UX) design principles to create visually appealing and intuitive client-side displays.
Each of these sections will be expanded upon, providing detailed information and guidance to help clients understand and implement these features effectively within their projects.
Execution Profiles
Each execution profile brings a different settings to run a project on our software platform. The new release brings three execution profiles:
Production
Development
Validation
How to start the Project execution
You do not need to open the configuration tools, Project Designer, to run the project,. You can run directly by using the Project Management tool.
When deploying your Project in product in its final location, you can setup automated procedures to start the execution, as described in Deploying the Application.
This manual section will focus on Starting the Project execution from within the Project Designer, as it is typical to do during the development and test phase of the project.
Run Startup
To start the Project is production mode,
- Go to Run → Startup
- Click the Run Startup button
There are a few customizations you can do on how the project shall be executed, such as if the project will run in your local computer or start in a remote Server computer, which modules will be loaded, and some other settings described in this section.
Startup Computer
The TStartup (project) is launched on a connected Server PC.
This option is only enabled if the project was opened from a remote ProjectServer.
On Run → Modules, you should see two options regarding the displays affected by this setting:
- If Displays is selected - A RichClient is opened on the project server when the project is started
- If LocalDisplays is selected - A RichClient is opened on local PC when the project is started
Startup Settings
Field
Description
UserName
Enter a valid username to access the application.
Password
Enter the password that corresponds to the username.
Project Server
Read-only. Displays the IP address or the name of the computer where the project is, which is based on the configuration in the Server tab.
Port
Displays the port that FactoryStudio uses for access. For test, it uses 3201. For startup, it uses 3101. These ports must be open on the server.
PortWA
Displays the port that FactoryStudio uses for access with Windows Authentication. For test, it uses 3202. For startup, it uses 3102. These ports must be open on the server.
Use only Windows Authentication
Checks if the system can only accept Windows Authentication.
Startup Computer
Read-only. Displays whether or not the configured server is the local computer or a remote server.
Execution Path
Overrides the default execution path, which is the project file location.
Module Information
Runs the Module Information tool.
Property Watch
Runs the Property Watch tool.
Trace Window
Runs the TraceWindow tool.
Run Modules
Select which modules are executed when running the project.
Status
Shows the current status of running, connected, or disconnected.
- Click Try to Connect to connect to the running application. This is required in order to immediately apply any of your changes to the test or the startup runtime.
- Click Disconnect if you do not want your changes to immediately apply to the test or startup runtime.
Click Stop to stop the execution of the application.|
Enable Online Configuration
Select in order to your changes to immediately apply to the test runtime. You must also be connected to the running project (see status setting above).
Info |
---|
You can use Enable Online Configuration to apply changes in real-time. All changes must be saved before they can appear on a screen. |
Run Test
To start the Project is Test Mode,
- Go to Run → Test
- Click the Run Test button
The settings for the execution in Test Mode are essentially the same of the Run Startup mode, with a few extra fields.
When checked, instead of using the Database configured on Dataset → DBs→ AlarmHistorian,
the SQLite <ProjectName>.dbAlarmHistorianTest is used instead.
Note: this configuration will NOT affect the storage defined using Tag Providers.
<<. fields for other modules >>
How to Stop the Project Execution
There are a few ways to stop the running Project. All those options assume the current user has Security Authorization to shutdown the project. For information on Security, refer to Security, Users and Roles.
On Run → Startup or Run → Test, connect the project <<icon>> and click Stop.
When the project starts running, a startup status windows is presented (TStartup.exe application). A shutdown button is available at that window.
If the menu is enabled on the Operator Displays, there is the option File → Shutdown.
The property Server.Shutdown, can trigger the application to shutdown. Usually, there is a button in one of the pages, security protected, to allow operators to stop the execution when necessary.
Info | ||
---|---|---|
| ||
Closing the Window running the displays DOES NOT stop the project execution. All Modules (alarms, devices, etc.) keep running in background; only the Display Module is closed. Closing the Windows is equivalent to trigger the property Client.Shutdown, in opposition to Server.Shutdown. |
The MQTT Broker and Simulator
Our platform includes many tools to expedite your development when using MQTT. The complete overview of our Integration with MQTT is available on the MQTT documentation.
This section we will cover on how to execute two of those tools: The MQTT Broker and the MQTT Simulator.
Running the MQTT Broker
Our platform includes a built-in MQTT Broker compatible with SparkPlug B.
There are many open source and commercial MQTT Brokers available that you can use. But every time you to search and install additional tools, that weights against your development time and effort.
The embedded MQTT Broker - zero configuration required - is the perfect tool for using during the project development phase, or even in Edge or other applications that you do not need an enterprise level broker, nor administration tools.
To run the MQTT Broker:
- Go to Run → MQTT
- Click Run MQTT Broker
Running the MQTT SparkPlug B client simulator
Our platform includes a built-in MQTT SparkPlug B client simulator
<<<< some info on how is it is self and applied. >>>>
To run the MQTT SparkPlug B client simulator:
- Go to Run → MQTT
- Click Run MQTT Simulator
MQTT Simulator Settings
<<<< inför on how to customize the configuration and execution >>>>
The OPC UA Server simulator
Our platform includes an OPC UA server simulator to simplify the development of application when the OPC Server that shall be used for production isn't available to connect, or even it is available you prefer to do your Project development connecting with the simulator as a testing tool. For more information on using OPC with our platform, go to the OPC documentation.
To run the OPC UA Server Simulator:
- Go to Run → OPC UA Simulator
- Click Run OPC UA Server Simulator
OPC UA Server Simulator Settings
<<<< inför on how to customize the configuration and execution >>>>
<<<< note: create a new child page with the Info and Server namespaces. The client namespace shall be in Displays Code Behind.>>>>
Linux RuntimeHaving supported projects that run in Linux environments for years, we continue to make improvements to ensure your project experience in the Linux environment will be as close to the .NET experience as you can get.
You can design your projects once and ensure your end users will get the same experience regardless of which platform they use.
If opening a ProjectServer from a Linux computer, all described procedure are the same, whatever the remote computer is Windows or Linux.
For information of specific Linux Platforms, refer to the Linux Platform documentation.
In this section...
Page Tree | ||||
---|---|---|---|---|
|