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.

With the 3rd-Party front ends, you can connect your own front end to the Jedox In-Memory Database, through APIs.

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 In-Memory DB-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 Server, because it uses it as a metadata storage. It also needs to carry out certain operations as a “super user” with similar rights like the In-Memory DB “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 Web Frontend Server uses the login credentials that you type in to create a session in the In-Memory DB Server. The session lives at first in the php part of the Web frontend. It is used for most of the requests made when you browse the Web “studio” to fetch necessary metadata (such as file hierarchies) from In-Memory DB Server. It is, for example, used in some of the In-Memory DB Server-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, 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. The integrated scheduler allows you to manage automated and parallel data imports and exports.