Logical architecture
SoftExpert Suite is a 100% web-based solution, i.e., it is accessed through a browser, based on a three-layer architecture. They are:
The layers are developed and maintained independently, allowing the system to operate in one or more servers, enabling load balancing. See the diagram of this architecture below:
Presentation layerβ
This layer is responsible for controlling interactivity between the user and the system and for displaying the business logic to the user through graphic components. In SoftExpert Suite, the user interacts directly with the system through a workstation browser by means of authentication.
SoftExpert Suite uses a set of technologies such as JavaScript, CSS (Cascading Style Sheets), HTML, and Java in the interface to provide the end user with a rich (rich internet application) and interactive experience.
It is important to point out that it is not necessary to install any SoftExpert Suite client application on the workstations. In other words, it is only necessary to access the application URL through the browser. That way, all components and services the user needs will be executed by the browser or, if needed, they will be downloaded automatically. Except PDF Viewer .NET, which depends only on the .NET Framework installation, and the DWG viewers, which depend on the SEPreview.msi installation.
For the solution to work correctly, the workstation must meet the minimum requirements listed in the SoftExpert Suite - System requirements document.
The use of remote terminals (Citrix, Microsoft Terminal Services) is transparent for the solution. To operate perfectly, the server must be duly dimensioned for the use.
Business layerβ
This layer contains components responsible for the system business rules and also for the implementation of the application logic.
In this layer, SoftExpert Suite has a set of Java applications distributed as services, which are responsible for executing business functions shared among the different components that make up SoftExpert Suite.
Technologiesβ
The technologies used for the development of SoftExpert Suite are made up of two development platforms, which are:
- PHP;
- Java.
SoftExpert Suite was designed to provide all functionalities through the internet, allowing users to work from any desired location. All screens (presentation layer) were designed in PHP and AJAX and the service layers, in JAVA.
Some view and integration with other applications components may use different technologies (.NET, C++). These are third-party components and have restricted access to some system functions.
Persistence layerβ
The persistence layer is used by SoftExpert Suite as a repository for information, storing and viewing records through the use of a database manager.
In addition to storing the system records in a database, SoftExpert Suite may be configured to store documents and electronic files in a database, file server, or external server. See below the list of the main advantages of each document storage type:
Databaseβ
The main advantage of storing documents in a database is the centralization of all system information in a single location, thus making it easier to back up, manage, and monitor this information. In addition to that, there is no need for various backup routines.
Backup routines are the customer's responsibility. We recommend executing the backup routine daily.
File serverβ
SoftExpert Suite allows parameterizing the document and attachment storage in a directory, which only SoftExpert Suite has the permission to read and write in. That allows greater security since users do not interact directly with the documents stored in the file server.
The advantage of storing documents and attachments in a directory is not overloading the database with great volumes of information, enabling the reduction of costs with storage devices, since it does not need highly optimized access time, as in the storage devices used by the database.
External/distributed serviceβ
External or distributed servers are used when a branch of a company needs to store very large documents, such as engineering projects and blueprints. In that case, all the control is performed through an application developed in Java, which is installed in the branch file server. For that, the user must have access to the external server.
The installation procedure of this Java application may be found in the 'SoftExpert Suite - Installation Guide' document, in 'Service for directory in external server' topic.
External or distributed servers allow the client to access documents in different geographic areas, speeding up the viewing of electronic files in the environment they are used the most. In that case, a file from an external server is not saved temporarily in the web server, but downloaded directly to the userβs workstation. That way, traffic will not occur between the web server and the user workstation, but between the external server and the workstation.
This diagram shows that the user of the Matrix is able to access the files of the Site A and Site B because the user has access to those servers.
Also refer to the following subtopics:
Even if the documents are stored in a local server, any user may access them, regardless of their physical location (provided that the user has permission to view the document).
The communication between the workstation and the file server is performed through the HTTPS protocol.
Database instancesβ
SoftExpert Suite allows the use of database instances, which allows the use of various databases with a single installation. To use this resource, it is necessary to create different domains and associate them with each system database.
SoftExpert Suite is accessed only by the configured URL, for example,
http://<domaindatabase.com/se>
and http://<domaindatabase2.com/se>
, if there
are two bases. If you have only one configured database, SoftExpert Suite may be
accessed by the hostname or IP address and, in that case, the domain will be
ignored. See the diagram below:
In the scenario shown in Picture 3, the users from one instance, or from a site, do not have access to the records from another instance.
Load balancingβ
SoftExpert Suite supports database load balancing, thus providing high scalability and availability, as well as excellent performance in the access to information.
The load balancing management is performed totally by the middleware(1) interface. SoftExpert Suite will connect to the database client, making the load balancing transparent for the application. This middleware interface is responsible for the connection with the database servers because it distributes the requests made by users among the active servers and maintains scalability whenever a server is inserted to or deleted from the load balancing.
1 - Third-party application to perform the data balancing being transparent to SoftExpert Suite.
The use of more than one database server improves SoftExpert Suite performance because the response time is proportional to the number of users making requests to the database. Then, when there is a load balancing, the requests are divided among the active servers, thus improving SoftExpert Suite performance and ensuring a lower response time.
Connection methodsβ
To connect with the database, SoftExpert Suite uses the following connection methods:
- JDBC: used by JAVA applications and services;
- Native Client: used by PHP applications;