Application architecture
SoftExpert Suite Linux architecture
The base for installing the SoftExpert Suite product is a Linux server compatible with multiple operating systems, which can be checked in the installation requirements. On said server, the Docker service is installed, where multiple containers are run and will be responsible for the operation of SoftExpert Suite.
The requirements are installed as well, such as Docker, for example.
After the environment is set up, the "sesuite", "baseclassprod", "macheteprod", "sesuite-search" and "memcached" images will be downloaded; they will be responsible for several SoftExpert Suite services.
After these images are downloaded, SoftExpert Suite will start up together with its containers. Applications will be run internally, through an NGINX web server that will execute Web requests on ports 80 and 443; in its turn, said server will internally pass information on to other services, namely:
- NGINX web server to Baseclass PHP-FPM container - Executes requests to the PHP layer for system operations
- NGINX web server to Machete PHP-FPM container - Executes requests to the PHP layer for system operations
- NGINX web server to NodeJS service - Redirects to the Node.js service, where it responds to Reactor for the graphical interfaces of the system
- NGINX web server to Apache Tomcat/Java service - Directed to Apache Tomcat, where the Java layer executes requests from the logic layer.
- Baseclass container to memcached container - Fetches cached data previously stored by PHP processes
- Machete container to memcached container - Fetches cached data previously stored by PHP processes
- Apache Tomcat/Java to sesuite-search container - Data search in indexing service that enhances SoftExpert Suite's performance.
The data persistence layer is connected by PHP and JAVA through a native client. This communication is established directly in a database that is installed in the Operating System or available on the network. The PostgreSQL, SQL Server and Oracle databases can be used (refer to the documentation on versions).
If there are additional services, such as PDF Converter, connection is established through HTTPS protocol. This service can be installed in the same Operating System or made available via network for connection through the Java layer. In case of file persistence, there is the option of using an NFS network unit, or connection via AWS S3 API.
Communication with directory (Active Directory), authentication (SSO), API and e-mail services is established using application-native protocols.
This new format was designed to bring advantages by packaging the application into Docker containers, making updates to new versions easier. Reduced installation of dependencies is an advantage as well, since, if a dependency needs to be installed or updated, this is done internally in the images of the containers.