Jedox Architecture


The diagram below displays an overview of the Jedox software architecture:

Jedox In-Memory DB (OLAP), a database completely loaded into the memory, providing high performance. The In-Memory DB is written in C++.

Jedox Excel Add-in can be installed on top of an already-existing Excel environment. Through its database function called PALO.DATA, it provides data modeling, data integration, and reporting. The Excel Add-in is written in C++ and C#(.NET).

Jedox Web is a web-based application for data analysis and modeling, reporting, 3rd party integration, and pre-built application models. Jedox Web is written in C++, Java, JavaScript, and PHP.

Jedox Integrator/ETL (Server and Client) is the integration tool of the Jedox Platform. It provides out-of-the-box connections with data extraction, transformation, and load. Jedox Integrator is written in Java.

Jedox Mobile is a mobile application that allows you to check real-time dashboards, reports, perform ad hoc data analysis or submit planning figures. Jedox Mobile is written in Swift on iOS and Java on Android.

Jedox Marketplace offers access to out-of-the-box application models and demos.

The GPU Accelerator provides added performance boost with extra calculation speed by leveraging the distributed computing power of server graphic cards in parallel GPU processing.

The pre-built connectors allow you to add Jedox on top of other enterprise systems such as SAP, Salesforce, Qlik or Tableau.

See Software Development and Testing at Jedox for more details.

Component Communication

Excel Add-in

When it connects to the In-Memory DB, Excel sends requests via HTTP/s to the REST API of the In-Memory DB and receives the responses in CSV format. Many dialogs in Excel Add-in use the same dialogs as Jedox Web. A web browser based on Chromium is integrated into the Add-in.

Note: Excel Add-in must have a valid connection to a Jedox Web front-end server.

Jedox Web

When a web browser accesses Jedox Web, all the requests from the browser are made to the Jedox Web front-end server, such as Apache. Some of the requests trigger an action in the PHP part of the Jedox Web front-end Server. For example, many of the OLAP-based dialogs in spreadsheets operate like this. Other requests pass through Apache (sometimes directly, sometimes through PHP), which then serves as a proxy to other backend components, Core and RPC. In turn, these three components sometimes contact the two “backends”, Integrator and In-Memory DB.

Jedox Web needs an “internal” connection to the Jedox In-Memory DB because it uses it as a metadata storage. It also needs to carry out certain operations as a “super user” with similar rights to the OLAP “admin” user. Like all connections to the In-Memory DB, these connections are made to its REST API, by default on port 7777 (or 7778 if the In-Memory DB uses https).

When you log in to Jedox Web, the front-end server uses the given login credentials to create a session in the In-Memory DB. The session lives at first in the PHP part of the front end and is used to fetch necessary metadata (such as file hierarchies) from the In-Memory DB called through the Jedox Web interface. It is, for example, used in some of the OLAP-based dialogs in spreadsheets.

Web spreadsheets are loaded, calculated, and saved in the Spreadsheet Server component. To provide spreadsheet content to the Jedox Web front end (and then your web browser), the Spreadsheet Server and the Jedox Web front end communicate via the AJP protocol, which is by default on port 8193. If a Web Spreadsheet shows data from the In-Memory DB (e.g. in a PALO.DATA formula), the Spreadsheet Server will fetch this data. 

When you open the Integrator in Jedox Web, Apache proxies the requests made by the browser to the RPC servlet in Tomcat, using Tomcat’s AJP interface port. Note that in Linux environments, the two back-end components RPC and Integrator are executed in two separate instances of the Tomcat server, which allows separate configuration and monitoring of the two components.

The integrated Scheduler loads all the defined scheduled tasks and the information of when to execute them. It is part of the RPC webapp/servlet in tomcat. When it performs Integrator tasks, it connects to the Integrator server the same way the Integrator UI does, via the Integrator SOAP API on HTTP. For Batch PDF / XLSX tasks, it contacts the Jedox Web frontend, for example Apache, via the HTTP of the frontend. For In-Memory Database (OLAP) tasks, it contacts the In-Memory Database via its HTTP interface, but it uses Apache and the Spreadsheet Server as a proxy.