From Wikipedia, the free encyclopedia
Jump to: navigation, search
icCube OLAP Server
IcCube Logo.png
Developer(s) icCube software Sarl
Stable release 4.8 / August 26, 2014 (2014-08-26)
Operating system Cross-platform (JVM)
Website http://www.iccube.com

The icCube Server is an in-memory multidimensional online analytical processing (OLAP) server written in Java.

It is typically used as a business intelligence tool to analyze and get insights from a wide range of types of data possibly spread out across multiple data-sources (e.g., RDBMS, Excel files, CSV files, MongoDB, etc...).

On top of the analytical engine, the icCube Server is featuring a Web Reporting server that is leveraging the multi-dimensional concepts (e.g., drilldown, slice, dice, etc...) to create interactive Web dashboards accessible from PC and Tablet [1].


Starting in June 2010 with its first public community version (0.9.2), the latest icCube OLAPserver version (v4) has been released in June 2013.

Date Version Event
June 2010 0.9.2 The very first published version (sort of preview) of the in-memory OLAP server; MDX/XMLA support are the primary objectives.
November 2010 1 Building on the feedback of the community this is the first features complete (e.g., MDX, write back, ...) version. A community (free) version.
June 2011 1.3 Listening on the community, v1.3 continues to expand on the MDX support and offers stronger cube modeling features; worth noticing this is the first version of the visualization library (GVI).
October 2011 2 An important step for icCube as this is the first Enterprise ready (vs Community) edition.
April 2012 2.5 Due to the increasing demand for an icCube native reporting, this is the first version featuring the Web Reporting server.
January 2013 3 An important step in term of performances and MDX/OLAP features bringing the first generation MDX/OLAP engine to its limit.
June 2013 4 Featuring a second generation calculation engine, v4 is the most matured edition of the icCube OLAP server and is making real-time / operational BI a reality.


icCube is implemented in Java and follows J2EE standards. For the latter, it embeds both an HTTP server and a servlet container to handle all the communication tasks.

Being an in-memory OLAP server, the icCube server does not need to source its data from a RDBMS; any data source that exposes its data in a tabular form can be used; several plugins exists for accessing files, HTTP stream, etc...

Accessing icCube (i.e., cube modeling, server monitoring, MDX queries, Web reporting and dashboards) is performed through a unique Web interface.

The icCube OLAP server does not use any caching or pre-aggregation mechanism. Therefore all drilldowns and computations are performed on demand. Coupled with a multi-core MDX/OLAP engine this allows for near real-time / operational analytics.


icCube is natively using MDX standard as its query language and is supporting several extensions [1] to the original language : function declarations, objects, Java and R interactions.[2]

icCube is supporting a unique MDX patented [3] debugger that shortens the learning curve of this language for beginner and intermediate MDX programmer. And for advanced and expert users are able to fully understand what is happening behind the scene and how the MDX queries are actually processed.


icCube comes with two different APIs : the standard XMLA interface and its proprietary GVI interface.


icCube supports XMLA over HTTP that allows connection from any XMLA compliant front-ends (e.g., Excel, MS Reporting Services, JPivot...) and programming libraries (Olap4J for Java, ADOMD.NET for .NET, xmla4js for Javascript).


Apart from the standard XMLA protocol, icCube supports its own proprietary protocol : GVI. HTTP based, it is lighter than XMLA and can be extended as will to support the icCube Web Reporting.

This protocol leverages the Google Visualization wire protocol.[4] Javascript is the primary implementation language but a Java mapping library is available as well.

Management / Monitoring[edit]

icCube is leveraging the MDX language and XMLA/GVI interfaces to manage (e.g., load schema/cube, ...) [2] the server and to access performance counters (e.g., CPU usage, memory usage, etc...) [3] of the server.

See also[edit]


External links[edit]