SYSPRO Application Gateway
The SYSPRO Application Gateway service works as a load balancer to locate the least utilized Web UI Container in SYSPRO Web UI (Avanti), as well as to route SYSPRO network traffic to the required services.
Exploring
Currently, the SYSPRO Application Gateway service is used by the following:
-
SYSPRO Web UI (Avanti)
The scalability and performance of the SYSPRO Web UI (Avanti) offering has been bolstered by the release of the SYSPRO Application Gateway service that, together with Microsoft Windows containers, allows a much larger number of users to run on a single application server.
When users interact with the SYSPRO Web UI (using Windows containers) the network traffic is routed via the SYSPRO Application Gateway.
This service then detects the least loaded Web UI Container and sends a message to the SYSPRO 8 Avanti Initialization Service residing within the selected container. This, in turn, instantiates a Web UI session, just the same as the non-containerized architecture.
-
The SYSPRO Application Gateway ensures that any request within SYSPRO to display dashboards is communicated through this service.
In addition, this service enables the SYSPRO Web UI (Avanti) to be run in HTTPS when accessing dashboards. The reason for this is that, as you can't mix HTTP and HTTPS content in a web client, any analytical data requested needs to be provided over an HTTPS connection for security purposes.
-
Load balancing
Incoming traffic is distributed evenly among the different servers to prevent any single server from becoming overloaded. In the event that a server fails completely, other servers can step up to handle the traffic.
Client-server architecture with Web UI containers
Some of the services have been deliberately excluded from this diagram for simplicity.
There are no changes to the way the SYSPRO Installation (including hotfixes) is applied to the SYSPRO Application server when using containers, with the exception of the SYSPRO 8 Avanti Initialization Service (which should instead be installed to the SYSPRO root folder):
-
Each container runs software by mapping (i.e. mounting) to folders on the host VM.
-
When users interact with the SYSPRO Web UI, the network traffic is routed via the SYSPRO Application Gateway service.
-
The SYSPRO Application Gateway contains a load balancer that locates the least loaded Web UI Container and brokers the browser access to that container. Note that each Web UI Container can support many Web UI components.
-
The SYSPRO 8 Avanti Initialization Service (running inside each container) loads an instance of the Web UI component (as normal) which in turn communicates with the interactive app.
This has the advantage that each container has its own set of resources that are being consumed by the Web UI components.
The containers provide isolation from one group of Web UI components to another, allowing a much larger number of Web UI components to be run concurrently on the same underlying SYSPRO Application Server.
Therefore, instead of being limited to 30-35 users, you can have a much larger number of SYSPRO Web UI sessions running on a single app server, both reliably and with good performance.
Single Web UI Container Detail
On a site with a large number of users, you may have as many as 20 or more of these containers.
This diagram shows a single container that will be used to host Web UI components:
-
A Web UI container is created by using a special Windows container image and applying configuration changes to it from within.
-
When a Web UI container is deployed at a site, the parameters (e.g. registry entries relating to the location of the SYSPRO installation) are dynamically injected into the container.
-
In addition, the SYSPRO 8 Avanti Initialization Service is started within the container, ready for users to connect and run the SYSPRO Web UI.
This only applies if the SYSPRO 8 Avanti Initialization Service is installed under the SYSPRO root folder.
Best practice recommendation:
C:\SYSPRO\Services\SYSPRO Avanti Initialization Service
Where C:\SYSPRO indicates the SYSPRO root, under which the core SYSPRO programs and screen sets reside.
This diagram depicts the components and services used within
:-
When a SYSPRO operator accesses the SYSPRO Application Gateway service. This includes activities such as:
module, they are directed to the-
Viewing dashboards
-
Designing dashboards
-
Configuring
-
Generating user access tokens to authenticate users
-
Querying existing dashboards when designing user interfaces
-
-
The SYSPRO Application Gateway performs two functions:
-
It converts any HTTPS traffic to HTTP and then directs the user through to
.Note that an SSL certificate is required if converting from HTTPS.
-
It abstracts away the actual endpoint for
to ensure security (i.e. the endpoint is not visible outside of the organization).
-
Each container is like a mini-virtual machine, without many of the overheads of a traditional VM.
A container image is a static, lightweight, standalone and executable package of software that includes everything needed to run an application:
-
Executable code
-
Runtime
-
System tools
-
System libraries
-
Settings
This enables it to run an isolated process on information technology (IT) infrastructure.
Starting
-
Microsoft .NET Desktop Runtime 6
-
This service is installed using the SYSPRO Installer Application.
-
Ensure that the machine on which you install this service can reach (i.e. communicate with) any service for which the SYSPRO Application Gateway is required.
Solving
The SYSPRO Application Gateway service stores its settings withing the following files:
-
appsettings.json - located in the applications’ installation folder: Program Files > SYSPRO > Application Gateway.
-
appsettings.reverseProxy.json - located in the %ProgramData%\SYSPRO\Application.Gateway folder.
It is not recommended to edit any shipped configuration files as it could potentially break your SYSPRO Environment at the next update.
You can however, edit or create custom configuration files to support certain changes.
The SYSPRO Application Gateway only supports one configuration section to manage the logging. Therefore, to change logging settings or enable custom logging, proceed as follows:
-
Create a file named appsettings.custom.json in the %ProgramData%\SYSPRO\Application.Gateway folder.
-
Copy the Logging section from the standard appsettings.json into the custom file you just created.
-
Change the logging level defined as required:
-
None
-
Critical
-
Error
-
Warning
-
Information
-
Debug
-
Trace
-
You can view monitoring and troubleshooting messages about this service using the Event Viewer function in Windows:
(Control Panel > System and Security Administrative Tools > Event Viewer > Applications and Service Logs)
This service outputs an event log to the SYSPROGW file.
You can start, stop, restart and configure this service using the Services function in Windows:
(Control Panel > System and Security Administrative Tools > Services)
When users interact with the SYSPRO Web UI (using Windows containers) the network traffic is routed via the SYSPRO Application Gateway.
This service then detects the least loaded Web UI Container and sends a message to the SYSPRO 8 Avanti Initialization Service residing within the selected container. This, in turn, instantiates a Web UI session, just the same as the non-containerized architecture.
The SYSPRO installation (including hotfixes) resides on the underlying host computer (or host VM).
The advantages of this are that there is only a single SYSPRO installed instance, resulting in a simple hotfix process and a common \Work and \Base folder structure.
The SYSPRO Application Gateway ensures that any request within SYSPRO to display dashboards is communicated through this service.
In addition, this service enables the SYSPRO Web UI (Avanti) to be run in HTTPS when accessing dashboards. The reason for this is that, as you can't mix HTTP and HTTPS content in a web client, any analytical data requested needs to be provided over an HTTPS connection for security purposes.
Copyright © 2024 SYSPRO PTY Ltd.