Skip to content

Non Functional Requirements

Lorenzo Bruni edited this page Oct 24, 2019 · 20 revisions

WORK IN PROGRESS

Home / Requirements / Non Functional Requirements

Here you can find information about the Non Functional Requirements.

Non Functional Requirements (NFR) cut across the software functionality, spanning across all the modules and features. These requirements go deep in to the Architecture.

Scalability

Data Dissemination is an on-demand business model where it's extremely difficult to predict the load on the system. PxStat is designed to work also on Virtual Environments (self or cloud hosted), taking advantage of the on-demand resource consumption model, in order to scale up and down resources efficiently and quickly.

The system is also based on Modular Components. It is possible to enable/disable modules according to business needs as well as integrate new modules easily to future proof and extend the life-cycle of the system.

Performance

PxStat keeps up with the constant increase of internet speed and variety of devices available by offering a full responsive and lightweight interface based on the popular Bootstrap framework.

Performance is consciously taken in to considerations and features like asynchronous processing, delegation of services and caching are all implemented to avoid or minimize potential bottlenecks.

The system is optimized for low-bandwidth connections and to run on any current mobile/desktop device. Response time are also kept as low as possible, below the second for all requests with the exception of data-set downloads where performance is dictated by the size of the data-set.

Availability

The system is already designed to run in a Virtual Environment to minimize any Availability issues.

Even better, both Client tier, Server tier and Cache tier can be distributed across several machines (either Virtual or Physical) and attached to a Load Balancer in order to guarantee full Availability.

Full Availability can be achieved for the DB tier by running the SQL Server in Fail Over configuration.

Integration

The World is highly connected today (IoT - Internet of Things) and PxStat integrates and provides both concepts of Open Data and Open Source to maximize integration.

The APIs (Web-Services) are based on the JSON-RPC 2.0 protocol with a variety of outputs such as JSON-Stat 2.0, Geo-JSON, PX and CSV which are all widely recognized, integrated and supported.

Integration is never ending and the evaluation of integrating with RDF (Semantic Web), Tableau and Power BI has already started.

Auditing

PxStat provides auditing across 3 tools: Logging, Tracing, Analytics. The information collected can then be used for monitoring, collecting analytical information, address issues, resolve conflicts and to ensure that all the user and system actions are thoroughly recorded and stored properly so that it’s easy to trace and identify the exact sequence of events that happened in the system.

Logging

All events are automatically logged depending on the selected threshold: INFO, DEBUG, ERROR, FATAL. The logs are available to the Administrators (only) and can be stored in the Database, File system and sent via Email.

Tracing

All user activities are automatically traced and recorded in the Database providing a full spectrum view of the system utilization. The following information are available to the Administrators (only):

  • Date/Time
  • User details
  • User privilege
  • IP address
  • User-Agent
  • API Request (Method and Parameters)

Analytics

The system automatically collects the following analytical information about the consumption of data-sets by the general public:

  • Hits over time by Users, Bots (Search Engines), M2M (Machine to Machine)
  • Referrer
  • Browser
  • OS (Operating System)
  • Table language

Multi-Tenancy

PxStat allows to manage and disseminate statistical data-sets coming from different sources.

This allows to run PxStat as a Multi-Tenancy solution, by hosting and attributing data-sets to different sources (Copyrights). For example, this allow a NSI (National Statistical Institute) to publish data-sets on behalf of different Government Departments against each relevant Source.

Configurability

PxStat comes as a White-Label product fully configurable and customisable. The look & feel of the front-end interface can be easily changed via Bootstrap and the system configuration is achieved via JSON & XML. The system behavior can be tailored to the most stringent and different business requirements.

Security

The system supports and includes several Security layers: SSL Connection, Access Control, Encryption (Confidential Computing) and Data Anonymization.

SSL Connection

Both the Client tier and the Server tier support the adoption of the HTTPS protocol. N.B. It is highly recommended to implement SSL over HTTPS.

Access Control

Access to the system is provided either trough an Anonymous or Authenticated connection.

  • Anonymous (aka Public) connections have limited access only to fully Public APIs.
  • Authenticated (aka Private) connections have access to both fully public APIs and a sub-set of Private APIs depending on the User's privileges (Administrator, Power User, Moderator).

Encryption (Confidential Computing)

Encryption is a core feature of the system to guarantee the confidentiality of the data. PxStat uses the most advanced type of Encryption called Always Encrypted, also known as Confidential Computing. This offers high performance combined with top security during the entire process.

Data Anonymization Where applicable, data is aggregated and anonimised follwoing the GDPR directives. An example are the PII (Personally identifiable information) collected and elaborated by the **Analitics **engine.

Clone this wiki locally