- 29 Mar 2022
- 4 Minutes to read
- Updated on 29 Mar 2022
- 4 Minutes to read
This topic provides an advanced description of Sisense ’s architecture for IT managers and Administrators responsible for supporting Sisense in their organization. For a high-level overview, see Sisense High-level Architecture.
When working with Sisense , there are two possible types of deployments. The first type is a Single Server Deployment in which Sisense is installed on a single server. Single Server Deployments can be leveraged to support single integrations or as proof of concept integrations for larger deployments.
The second type is a Distributed Deployment where Sisense is installed on multiple machines, but only part of the components are active on each one. This type of configuration is used to support heavier traffic loads and Multi-Node Deployments.
The Sisense full-stack solution is provided in a single installation process. After installing Sisense on a server, you will have access to all of the Sisense functionality.
The diagram below describes the main components of a Sisense installation and how Sisense supports a full-stack solution:
In this diagram, the yellow components represent Sisense client applications or APIs. The blue components represent components of the Sisense server.
The Windows service and application names that you can see in the Windows Task Manager under the Services or Processes tabs appear in a dark blue font.
When Sisense is installed on a single server, the dotted line indicates the boundaries of the server firewall. The lines between the components indicate communication between them, and its direction. When the Sisense Server listens on a specific port for inbound traffic, the relevant ports must be open in the firewall for the communication to succeed.
The diagram above describes the ports used by the services. For more information about communication ports, see Sisense.
Sisense supports a full stack solution from data, such as transaction details, user information, and machine-generated data, to dashboards accessible by viewers.
The Sisense Server is responsible for managing data. Before you can begin to manage data however, Sisense communicates with remote servers for importing data sources, licensing information, tracking and similar activities.
The Sisense Server manages data and supports the Sisense Web Server, which hosts the Sisense Web Application. In a Single deployment, the Sisense Server resides locally on your machine. In a Clustered deployment, the Sisense Server can reside on one of your machines or across many machines depending on your needs. For example, if you want to support a high availability environment, you may install the ElastiCube Server on one machine, the Application Server on another, and the Multi-Node Orchestration server on another machine.
The Sisense Server is comprised of the following components:
Web Server: The Sisense Web Server is installed locally on your computer and hosts the Sisense Web application. It provides access to Sisense dashboards and Sisense Admin screens for user management. Each dashboard created is maintained within the Web Server catalog and application database, which contains metadata regarding users, groups, dashboards, data models, and system settings. The Web Server is comprised of many additional services required by the Sisense front-end, including a Proxy service for routing application requests, query services that transform JAQL to SQL, add-on management, and more.
There are three main client applications that communicate with the Application Server:
- Sisense Web App: This Sisense Web Application is the client application for dashboard creation and access, and system administration.
- Sisense Mobile App: This Sisense Mobile Application is an Android and Apple-device compatible application for viewing dashboards across devices.
- REST API: The Sisense REST API provides programmatic access to the Sisense Application Server functionality including managing ElastiCubes, user and group management, white labeling, user roles, reporting, and security.
ElastiCube Server: The ElastiCube Server supports the management of ElastiCubes and the data they contain. The Sisense Server also supports the Application Server, which queries the ElastiCube Server where the ElastiCubes are hosted. Within the ElastiCube Server are the following main components:
- ElastiCube Catalog: The catalog maintains a list of ElastiCubes contained within the ElastiCube server.
- Data Connectors: The Data Connectors service is responsible for managing both native and 3rd party connectors.
- Sisense ElastiCube Manager: A Windows client application for managing data sources. The ElastiCube Manager provides the GUI for creating ElastiCubes, including importing data sources, preparing them, and building the ElastiCubes.
- SisenseSisense Shell (PSM.exe): A command line interface for managing ElastiCubes, such as building an ElastiCube, attaching and detaching ElastiCubes from a server, updating data sources, etc. The Sisense Shell can also be controlled programmatically.
- SisenseSisense Server Console: A Windows application that controls Sisense servers, including attaching ElastiCube folders to Sisense servers and starting and stopping ElastiCubes.
Licensing: This service checks and validates licensing information.
Multi-Node Orchestration: The Sisense Orchestrator Service is an automated service that can be configured to synchronize builds across the ElastiCube Set.
Remote Support Analysis: This service is responsible for controlling logging, monitoring and automatic software updates.
Message Bus: The Message bus is a module responsible for transporting events across Sisense components.
Sisense Remote Servers
Sisense remote servers are used for license management, monitoring and software updates.
Data sources may be files or databases located on servers on a local network, or remote locations and web services such as SalesForce and Google AdWords. Sisense supports a variety of data sources through native connectors, customer REST connectors, and ODBC drivers. These connectors are used to import data into the ElastiCube Server.