Squore Architecture

Squore is based on a traditional 3-tier architecture consisting of:

  • A database and a data folder for storing project data

  • An application server running the main application, the license server and a distribution of Node.js

  • Clients that can interact with the server: a frontend accessible through a Web Browser and a Command Line Interface to interact with the server from a console

SIM architecture
Figure 1. The Squore Architecture

As shown in the schema above, Squore server can provide analysis results to clients without having access to any source code, in scenarios where the analysis is carried out on a client machine with access to the SCM repository, as is the case in most Continuous Integration environments.

If you are planning to access source code hosted in Subversion, Git, ClearCase or Integrity repositories, a command line client for this repository must be available on the machine where the Squore analysis carried out. For complete information about all installation prerequisites, consult Hardware Requirements and Software Requirements.

Squore allows analysing source code in the following programming languages: ABAP, Ada, C, C++, MindC, C#, COBOL, Java, JavaScript, Fortran 77, Fortran 90, Objective-C, PHP, PL/SQL, Python, T-SQL, Visual Basic .NET, XAML, Lustre.

Database and Data Folder

The Squore database is a PostgreSQL database used for storing:

  • A hierarchy of artifacts defined in a software project (e.g. files, classes, functions)

  • Incremental sets of measures provided by the source code parsers and other Data Providers, or computed according to an analysis model

Along with the database, a set of files is maintained on disk to compute information about a project’s history and stability. All the changes you make to the default Squore configuration are stored in a workspace folder, so they are not lost when upgrading. A backup of a Squore installation must always include the database, projects and workspace folders. For more information about backing up your installation, refer to Backup and Restore.

No source code is stored in the database nor in the projects folder. Source code checked-out from SCMs is located in a temporary folder and can be cleaned up at the end of an analysis.

Application Server

The Squore application server is based on the WildFly framework. Its main functionalities are:

  • Aggregating data coming from the various Squore Data Providers

  • Applying an analysis model, producing high-level key performance indicators

  • Exploring and analysing the results using efficient graphical representations and statistical features

Web Interface

Squore end-users access the server services through a Web interface that enables them to:

  • Create projects from source code or other data types via the Squore Data Providers system.

  • Explore the results of analyses, view the levels of performance of the project artifacts via a user-specific, dynamic dashboard making use of filtering and sorting features

  • Review action plans, highlights and findings of the analysis

  • Export information for reporting purposes

  • Perform administration tasks like managing users and groups or troubleshooting the system

Refer to Supported Web Browsers to make sure that your Squore Web Interface is compatible with your browser

For more details on performance-related requirements when using Squore, please refer to Sizing Squore server and Database.

Command Line Interface

In order to provide compatibility with Continuous Integration systems or run analyses on machines other than Squore server, Vector Informatik GmbH also delivers a command line utility, Squore agent, which is used to remotely create and manage Squore projects.

Squore agent is a package that allows a Squore client to locally analyze project source code files visible to the client machine and send the results to a remote Squore server.

For more information about Squore agent, refer to the Command Line Guide.