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 PhantomJS

  • 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 pre-requisites, consult Prerequisites.

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 or Oracle database used for storing:

  • A hierarchy of artefacts 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 artefacts 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.

License Server

Squore Server requires a valid license file in order to allow users to log in and create projects. The license file information is served by the Squore License Server , which reads a license file called squore-license.p7s located in <SQUORE_HOME>/server/standalone/configuration.

The license file is delivered by Vector Informatik GmbH and can be copied on the machine hosting Squore License Server at installation time or post-installation. In all cases, Squore Server must be restarted to take into account new license information.

If you run multiple instances of Squore Server , each one can have its own Squore License Server and license file, or you can point them to a common Squore License Server.

Sharing an instance of Squore License Server between multiple Squore Server instances means that each Squore Server instance queries the Squore License Server to find out which license features are available. The Squore License Server keeps track of the total number of active users, volume of code analyzed and number of projects created on all instances of Squore Server. User-Management is specific to each Squore Server: if a user called "admin" exists on two instances of Squore Server linked to the same Squore License Server and both accounts are active, as far as the Squore License Server is concerned, two licenses are used by two individual users.

The license file restricts Squore usage according to the following parameters:

  • A license file has a start date: it becomes active at a date decided by Vector Informatik GmbH when the license is issued.

  • A license file has an end date: it becomes invalid at a date decided by Vector Informatik GmbH when the license is issued.

  • A license file is tied to a particular server host-id, a fingerprint of some of the hardware components of a server machine. It can therefore not be used on another machine. If you need to move your license file to another machine, contact Vector Informatik GmbH to request a new license. If you need to know your host-id, refer to Obtaining a License File.

  • A license file defines a maximum number of active users. A user is active if any activity has been recorded for their Squore Server account in the past 6 months. Activities include remote project creation, viewing of analysis results, and e-mail notification.

  • A Squore login is meant to be used by an individual user: each Squore user should log into Squore using their own personal account.

  • A license file defines a maximum number of projects that can be created. After this number is reached, no new projects can be created. Existing projects can continue to be analyzed.

  • A license file defines a maximum number of lines of source code that can be analyzed. After this number is reached, no new analyses can be carried out.

  • A license file defines the ability to generate XML report of analyses, export data in CSV format and generate PDF reports from the web interface.