10.5.1 Deployment model
The deployment view of the architecture describes the various physical nodes in the most typical configuration for SiVa service provider.
Nodes
In the following section, a description of each network node element is described in detail.
Node | Setup description |
---|---|
Load balancer server | Load balancer distributes traffic between SiVa server nodes when there is more than one Siva server instance running. SiVa does not set any specific requirements for load balancer. As an example, the nginx reverse proxy is used. |
Siva server | Two separate services are set up to run on SiVa server: the SiVa webapp itself and the X-road validation webapp, to provide X-road support
SiVa web appliction is executable Spring Boot JAR file. This means all the dependencies and servlet containers are packaged inside single JAR file. The JAR file can be placed anywhere in server and the JAR must be marked executable if its not already. There also should be separate user created to run executalbe JAR as Linux service. Read more about running Spring Boot applications as Linux system service
SiVa X-Road validation service is also Spring Boot executable JAR application and also should be installed as Linux service. X-Road validation service communicates with SiVa web application over HTTP and default port is 8081 Note that X-Road separate installation is required to avoid BouncyCastle library version conflicts and class loader issues. |
X-road security server | A standard X-road security server setup. The SiVa validation service wsdl has to be registered to provide service to other organisations using XRoad infrastructure. Setting up XRoad Security server is out of scope for SiVa documentaton (see the official installation instructions). |
Demo server | Demo server hosts the Demo webapp provided within SiVa project as a reference client implementation.
|
Horizontal scaling
Neither the Siva webapp, X-road validation webapp, nor Demo wbapp persist their state in sessions between requests. Therefore it is possible to install multiple instances of these services behind respective load balancers.