Technologies
Frends is built on Azure Cloud and .NET platform.
If you are interested in learning on what Frends is built on, you've come to the right place. Whether it be for technology maturity analysis or preparing for security audit, here you can get an overview of what technologies Frends uses under the hood.
.NET Platform
At the core of Frends runtime environment and functionality is Microsoft's .NET platform and C# programming language. All the backend functionality and program code written for Frends is in C#, and all the Processes, Subprocesses and APIs created with Frends are converted and compiled to C# code for execution on the Agents.
Especially when creating Processes it will be useful to know the basics of C# programming, to understand what is happening behind the BPMN flow chart. Variables, scoping and data typing all come from C#. While it is not mandatory to be an expert in C# or programming to understand the details of Processes, thanks to C# being such a generic C-like language, creating more advanced logic within Process in a Code Task will benefit hugely from C# and .NET knowledge.
Newtonsoft JSON
Sometimes called the de facto JSON library for C#, Frends is also heavily built upon the library. Essentially all of the data traversing through Frends Processes will be contained in a Newtonsoft JSON object, be it JObject, JArray or generic JToken.
Understanding and learning to use this library will be very beneficial for Process developers due to this deep integration with the library, but it shouldn't be a preliminary requirement to become an integration developer with Frends. It's easy to learn and simple to use, and when working with APIs and other interfaces nowadays, JSON data is very close if not the most common notation for data to use, making the Newtonsoft JSON objects almost more intuitive to use than the builtin data types.
.NET Versions
Frends targets primarily the latest .NET platform, version 8. The latest versions require .NET Runtime 8.0.15 or later to be installed on the machine alongside the Frends Agent for it to function.
Frends also provides legacy support for .NET Framework 4.7.1 for Windows environments, as well as support for .NET Standard 2.0 compatible cross-platform frameworks. Some older versions also supported .NET 6.0, but this was replaced and upgraded to the current 8.0 in Frends 5.7 and later.
While the older Tasks still exist and can be used in Frends for legacy support, new features and updates to Tasks are only provided for the latest .NET platform.
Azure Cloud
Frends cloud services are hosted on Microsoft Azure Cloud platform. Azure is used for hosting the Frends Control Panel, orchestrating Agents, and providing cloud-native scalability for the PaaS Agents.
While on the lower pricing tiers the resources within Azure are shared in a multi-tenant cloud, by purchasing the higher tiers you will receive an option to have private resources, meaning more capacity just for your Tenant, and less interruptions and effects from other Tenants during peak load times. It's also possible to purchase more resources for your Tenant in order to scale the performance vertically, to support larger data amounts and heavier computations for single Process executions.
With higher pricing tiers you can also choose the geographic location for your share of the cloud.
If you choose to create a self-hosted deployment, Azure Cloud will still be used to host the Frends UI and orchestrate the Agents in your Frends Tenant, but the data handled in Processes will not be sent over the cloud in any case.
Azure Service Bus
Frends uses Azure Service Bus as a secure and reliable message bus to connect its Agents with the Frends Control Panel. This approach allows Agents to communicate using only outbound connections, which simplifies firewall configuration and enhances security as there is no need to open inbound ports. All communication is encrypted and authenticated, ensuring data protection.
Using Azure Service Bus also brings operational benefits. It enables reliable message delivery, even if an Agent is temporarily offline, and supports scalable deployments with multiple Agents and High Availability configuration. This is specifically important for hybrid and cloud delpoyment models, allowing your on-premise environment to stay secure even when the UI is hosted outside in Frends cloud.
BPMN 2.0
Frends Process Editor utilises a subset of Business Process Modeling & Notation (BPMN 2.0) notation to create the Processes in Process Editor. The user interface and visual building elements of the Processes are part of BPMN 2.0, while the functionality and C# code are added to the elements by Frends, to create the Processes you can run on the Agents.
As an added feature, the BPMN part of your Frends Processes can be exported as BPMN XML, allowing you to document your Processes in other systems that support BPMN notation. This will not include the functionality, meaning the C# content, of the Process though.
While it is also possible to import BPMN XML from other systems to create Frends Processes, due to Frends supporting only a subset of BPMN elements, it's likely that the import will not produce the expected results. And again, because the C# code and functionality within the BPMN are unique to Frends, the imported BPMN flow chart will not include any functionality and will have to be created from scratch.
While the BPMN import and export only handle the BPMN part and not whole Frends Processes with their code and functionality, Frends does provide separate means of exporting and importing specifically Frends Processes, that can be transferred from one Frends Tentant to another.
Containers
Frends utilises Docker to create containers for Agent deployments. The containers can then be used within Kubernetes cluster for orchestrating the Agent containers as well as for horizontal scaling.
For the scaling to work properly, High Availability configuration is required to be set up for the Agent Group the containerized Agents will participate in.
Last updated
Was this helpful?