IcCube: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
latest version
latest stable release
 
(85 intermediate revisions by 44 users not shown)
Line 1: Line 1:
{{Infobox software
{{Infobox software
|developer = icCube software Sarl
| developer = icCube software Sarl
|name = icCube OLAP Server
| name = icCube
|logo = [[File:IcCube Logo.png|600px|216px]]
| logo = [[File:Iccube-logo.svg|Iccube-logo]]
|latest_release_version = 5.1.7
| latest_release_version = 8.4.11
|latest_release_date = {{release date|2016|02|08}}
| latest_release_date = {{release date|2024|05|02}}
|operating_system = [[Cross-platform]] ([[JVM]])
| operating_system = [[Cross-platform]] ([[JVM]])
|genre = [[OLAP]]
| genre = [[Embedded analytics]]
|website = http://www.iccube.com
| website = {{URL |www.iccube.com}}
}}
}}


'''icCube''' is known for its embeddable data analytics and visualization software platform tailored specifically for B2B Software-as-a-Service (SaaS) applications, i.e. [[Embedded analytics]].
The '''icCube''' Server is an in-memory multidimensional online analytical processing ([[online analytical processing|OLAP]]) server written in [[Java programming language|Java]].


Its customers serve various industries, from finance and healthcare to e-commerce and logistics among many others. The software enables SaaS solutions from multiple sectors to provide data analytics, dashboards and visualization to their respective end-customers (i.e., [[Customer-facing analytics]]).
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 [http://demo3.iccube.com/icCube/doc/tutorial/ic3report-tutorial.html?ic3demo].


== History ==
== History ==


icCube was founded in 2010 by David Alvarez-Debrot and Marc Polizzi, recognizing the need for an analytic server that could be seamlessly integrated into third-party products.
Starting in June 2010 with its first public community version (0.9.2), the latest icCube OLAPserver version (v5.1.7) has been released in February 2015.

David and Marc, who had previously worked together in developing a [[financial risk]] product at a software consulting firm, noticed the necessity for a robust, performant and reliable server for analytic calculations. After the roll-out of the financial risk product, they decided to start their own venture.

Initially considering developing an alternative financial risk solution, they later realized the potential in the market for a versatile, cross-solution product focused on analytic modeling and processing that could be easily embedded into any SaaS solution. Many B2B SaaS companies were seeking robust analytics capabilities for their platforms, and the idea behind the company was to be thought-leaders in this space by focusing exclusively on providing an embeddable analytics platform for B2B SaaS solution developers.

The technology is Java-based, ensuring compatibility with most architectures. The in-memory server uses the [[Multidimensional Expressions]] (MDX) query language, which in contrast to other common query languages, is highly optimized for analytics.

Over time, the platform evolved and introduced new features and enhancements to meet the expanding needs of its customers. Noteworthy milestones in the evolution of icCube include the introduction of the Web Reporting server in 2012, the launch of a new reporting system and server calculation engine in 2016, and the release of a new dashboard module based on [[TypeScript]], [[React (software)|React]], [[Redux (JavaScript library)|Redux]], and Material UI (MUI) in 2022.


{| class="wikitable"
{| class="wikitable"
! Date !! Version !! Event
! Date !! Version !! Event
|-
|-
| style="width: 100px;" | 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.
| style="width: 100px;" | June 2010 || 0.9.2 || The very first published version (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.
| November 2010 || 1 || The first features complete. 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).
| June 2011 || 1.3 || Expanded MDX support and stronger cube modeling features; 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.
| October 2011 || 2 || First version advertised for business use (vs. community).
|-
|-
| April 2012 || 2.5 || Due to the increasing demand for an icCube native reporting, this is the first version featuring the Web Reporting server.
| April 2012 || 2.5 || 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.
| January 2013 || 3 || Better performance and more features.
|-
|-
| 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.
| June 2013 || 4 || A second generation calculation engine.
|-
|-
| January 2015|| 4.8.2 || Improving the 4.x versions (server features and speed, Web Reporting, etc...).
| January 2015 || 4.8.2 || Improving the 4.x versions (server features and speed, Web Reporting).
|-
|-
| May 2015|| 5.1 || Featuring an ETL for an end-to-end BI solution, Web Reporting in community edition, server features and speed, etc...
| May 2015 || 5.1 || Adding [[extract, transform, load|ETL]] features.
|-
|-
| February 2016|| 5.1.7 || Improving the 5.x versions (server features and speed, Web Reporting, etc...).
| May 2016 || 5.2 || Improving the 5.x versions.
|-
| October 2016 || 6.0 || Brand new reporting and new server calculation engine.
|-
|July 2017 || 6.2 || Added Google Maps layers for GEO widgets, heat maps, etc.
|-
|August 2017 || 6.5 || Added dashboard commenting module for collaboration.
|-
|April 2018 || 6.6 || Improved [[extract, transform, load|ETL]].
|-
|April 2019 || 7.0 || New Server UI / New JSON Rest API.
|-
|January 2020 || 7.1 || Support for Java 11 and onwards.
|-
|March 2023 || 8.0 || New dashboard module (React, Redux, MUI).
|-
|February 2023 || 8.4 || Java 17, multiprocess support for DOCS, available as a Docker<ref name="docker">{{cite web|url=https://hub.docker.com/u/ic3software|title=Docker}}</ref> libraries in Github.<ref>{{cite web|url=https://github.com/ic3-software|title=Github|website=[[GitHub]] }}</ref>
|-
|November 2023 || 8.4.6 || Improved performances and print server.
|-
|February 2024 || 8.4.9 || Improved MDX serialization for large results + maintenance release.
|}
|}


== Architecture ==
==Technology==


===Architecture===
icCube is implemented in [[Java programming language|Java]] and follows [[J2ee|J2EE]] standards. For the latter, it embeds both an [[Http|HTTP]] server and a servlet container to handle all the communication tasks.


The product is a fully browser-based application, with the server implemented in the [[Java programming language]] following [[J2EE]] standards. For the latter, it embeds both an [[HTTP]] server ([[Jetty (web server)|Jetty]]) and a servlet container to handle all communication tasks. Reporting is developed in [[TypeScript]] / [[React (software)|React]] / [[Redux (JavaScript library)|Redux]].
Being an in-memory OLAP server, the icCube server does not need to source its data from a RDBMS; any [http://www.iccube.com/support/documentation/user_guide/schemas_cubes/datasources.html data source] that exposes its data in a tabular form can be used; several plugins exists for accessing files, HTTP stream, etc...


Being an in-memory server, the server does not need to source its data from a [[Relational database|RDBMS]]; in fact, any data source that exposes its data in a tabular form can be used; several plugins exist for accessing files, HTTP stream, etc. Accessing datasource that expose [[JSON]] objects is also supported (e.g., [[MongoDB]]). The platform then takes care of possibly complex relations (e.g., [[Many-to-many (data model)|Many-to-many]]) implied by the JSON structure.
Accessing icCube (i.e., cube modeling, server monitoring, MDX queries, Web reporting and dashboards) is performed through a unique Web interface.


icCube uses [[Multidimensional Expressions]] (MDX) as its query language and several extensions <ref>{{cite web|url=http://cwebbbi.wordpress.com/2010/09/13/iccube/|title=Chris Webb on icCube MDX Declared Functions|date=13 September 2010 }}</ref> to the original language : function declarations,<ref>{{cite web|url=https://doc.iccube.com/?ic3topic=server.mdx.functions|title=MDX Functions Reference (common + extensions)}}</ref> vector (even at measures level), matrix, objects, Java and R integrations.<ref>{{cite web|url=https://doc.iccube.com/?ic3topic=server.mdx_types.types_and_oo_extension|title=icCube extends MDX with OO capabilities}}</ref> icCube patented an MDX debugger.<ref>{{cite web|url=http://www.google.com.ar/patents/US8533218|title=Debugging system for multidimensional database query expressions on a processing server}}</ref>
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 [http://www.iccube.com/real-time-olap real-time] / operational analytics.


Accessing the platform (data modeling, server monitoring, MDX queries, dashboards) is performed through a Web interface and a JSON REST API.<ref>{{cite web|url=https://doc.iccube.com/?ic3topic=server.api.index|title=JSON REST API}}</ref>
== MDX ==


===Running icCube===
icCube is natively using [[Multidimensional Expressions|MDX standard]] as its query language and is supporting several extensions <ref>{{cite web|url=http://cwebbbi.wordpress.com/2010/09/13/iccube/|title=Chris Webb on icCube MDX Declared Functions}}</ref> to the original language : function declarations, objects, Java and R interactions.<ref>{{cite web|url=http://www.iccube.com/newsletter/release-2.5/|title=icCube extends MDX with OO capabilities}}</ref>


The product can be self deployed on premises and/or in the cloud. It is available as a Windows installer, Linux ZIP file, Mac version and as a Docker container published at Docker Hub.<ref name="docker" />
icCube is supporting a unique [[Multidimensional Expressions|MDX]] patented <ref>{{cite web|url=http://www.google.com.ar/patents/US8533218|title=Debugging system for multidimensional database query expressions on a processing server}}</ref> debugger that shortens the learning curve of this language for beginner and intermediate [[Multidimensional Expressions|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.


== APIs ==
===Key Components===


====Server====
icCube comes with two different APIs : the standard XMLA interface and its proprietary GVI interface.
* Data modeling – the Builder allows for creating data models (schemas) using a Web based user interface. All the requisite parts of a schema: data sources, dimensions, hierarchies, calculated members, etc. can be defined there.


* API authentication & authorization (SSO) – icCube is hosting a J2EE servlet handler (Jetty) to handle all communications with the server. Authentication is configured via dedicated servlet filters and an internal authentication service. Both can be changed via dedicated Java plugin(s) to meet corporate policies (e.g., SSO). As examples, some customers use Windows SSO, encrypted Web token, etc. Authorization is achieved using roles granting access to resources (i.e., monitoring, schema builders, schema data). Roles can be defined within icCube or generated on-the-fly when users are connecting to the platform using dedicated information (e.g., a list of schemas the users have access to).
=== XMLA ===


* Management API – A REST API (i.e., JSON over HTTP requests) is provided for managing the server and the available schemas.
icCube supports [[XML for Analysis|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).


=== GVI ===
====Dashboards====


The Dashboards application allows for creating web-based dashboards, based on widgets, gadgets and events:
Apart from the standard [[XML for Analysis|XMLA]] protocol, icCube supports its own proprietary protocol : GVI. [[Http|HTTP]] based, it is lighter than [[XML for Analysis|XMLA]] and can be extended as will to support the icCube [http://www.iccube.com/products/iccube/iccube-web-reporting Web Reporting].


* Widgets are visual elements such as graphs, charts, maps, filters, etc.
This protocol leverages the Google Visualization wire protocol.<ref>{{cite web|url=https://developers.google.com/chart/interactive/docs/dev/implementing_data_source|title=Implementing the Chart Tools Datasource Protocol (V0.6)}}</ref> Javascript is the primary implementation language but a Java mapping library is available as well.
* Gadgets are preconfigured, reusable widgets.
* Events manage interactions between widgets. For example, a filter generates an event that produces an action on a chart. Also, widgets can also contain events and have actions on each other.


===Embedding icCube===
== Management / Monitoring ==


The icCube Dashboards API<ref>{{cite web|url=https://doc.iccube.com/?ic3topic=dashboards.api.Overview|title=icCube Dashboards API}}</ref> allows for:
icCube is leveraging the MDX language and XMLA/GVI interfaces to manage (e.g., load schema/cube, ...) [http://www.iccube.com/support/documentation/user_guide/using/cube_management.html] the server and to access performance counters (e.g., CPU usage, memory usage, etc...) [http://www.iccube.com/support/documentation/user_guide/using/monitoring_counters.html] of the server.


* developing new themes, widgets (charts, maps, etc.), data transformations, etc
== See also ==
** Plugin dev kit<ref>{{cite web|url=https://doc.iccube.com/?ic3topic=dashboards.api.plugin.Overview|title=Plugin dev kit}}</ref>
** Github: ic3-reporting-api<ref>{{cite web|url=https://github.com/ic3-software/ic3-reporting-api|title=Github: ic3-reporting-api|website=[[GitHub]] }}</ref>
** Source code examples<ref>{{cite web|url=https://doc.iccube.com/?ic3topic=dashboards.api.plugin.Examples|title=Source code examples}}</ref>
* embedding icCube Dashboards into a Web application
**Embedded API<ref>{{cite web|url=https://doc.iccube.com/?ic3topic=dashboards.api.embed.Overview|title=Embedded API}}</ref>
**Github: ic3-reporting-api-embedded<ref>{{cite web|url=https://github.com/ic3-software/ic3-reporting-api-embedded|title=Github: ic3-reporting-api-embedded|website=[[GitHub]] }}</ref>


== AnalyticsOps ==
* [[Comparison of OLAP Servers]]

* [[Business intelligence]]
With icCube v8.4.10, a new Github public project has been published : ic3-analytics-ops.<ref>{{cite web|url=https://github.com/ic3-software/ic3-analytics-ops|title=Github: ic3-analytics-ops|website=[[GitHub]] }}</ref> This projects allows for (automated) testing the Analytics and Dashboards built with icCube.
* [[MOLAP]]

* [[Rtolap]]
== See also ==
*[[Embedded analytics]]
*[[Customer-facing analytics]]
*[[Comparison of OLAP servers]]


== References ==
== References ==


{{Reflist}}
{{Reflist}}

== External links ==
* [http://www.icCube.com/support/documentation icCube Online Documentation]
* [http://demo3.iccube.com/icCube/doc/tutorial/ic3report-tutorial.html?ic3demo icCube Online Demo]
* [http://www.iccube.com/support/forum icCube Forum]
* [http://www.youtube.com/user/icCubeBI icCube Youtube Channel]


[[Category:Online analytical processing]]
[[Category:Online analytical processing]]
[[Category:Business intelligence]]
[[Category:Data analysis software]]
[[Category:Data analysis software]]
[[Category:Reporting software]]
[[Category:Reporting software]]
[[Category:Data visualization software]]
[[Category:Data companies]]
[[Category:Business software companies]]

==External links==
* {{Official website|https://www.iccube.com/}}

Latest revision as of 05:52, 2 May 2024

icCube
Developer(s)icCube software Sarl
Stable release
8.4.11 / May 2, 2024 (2024-05-02)
Operating systemCross-platform (JVM)
TypeEmbedded analytics
Websitewww.iccube.com

icCube is known for its embeddable data analytics and visualization software platform tailored specifically for B2B Software-as-a-Service (SaaS) applications, i.e. Embedded analytics.

Its customers serve various industries, from finance and healthcare to e-commerce and logistics among many others. The software enables SaaS solutions from multiple sectors to provide data analytics, dashboards and visualization to their respective end-customers (i.e., Customer-facing analytics).

History[edit]

icCube was founded in 2010 by David Alvarez-Debrot and Marc Polizzi, recognizing the need for an analytic server that could be seamlessly integrated into third-party products.

David and Marc, who had previously worked together in developing a financial risk product at a software consulting firm, noticed the necessity for a robust, performant and reliable server for analytic calculations. After the roll-out of the financial risk product, they decided to start their own venture.

Initially considering developing an alternative financial risk solution, they later realized the potential in the market for a versatile, cross-solution product focused on analytic modeling and processing that could be easily embedded into any SaaS solution. Many B2B SaaS companies were seeking robust analytics capabilities for their platforms, and the idea behind the company was to be thought-leaders in this space by focusing exclusively on providing an embeddable analytics platform for B2B SaaS solution developers.

The technology is Java-based, ensuring compatibility with most architectures. The in-memory server uses the Multidimensional Expressions (MDX) query language, which in contrast to other common query languages, is highly optimized for analytics.

Over time, the platform evolved and introduced new features and enhancements to meet the expanding needs of its customers. Noteworthy milestones in the evolution of icCube include the introduction of the Web Reporting server in 2012, the launch of a new reporting system and server calculation engine in 2016, and the release of a new dashboard module based on TypeScript, React, Redux, and Material UI (MUI) in 2022.

Date Version Event
June 2010 0.9.2 The very first published version (preview) of the in-memory OLAP server; MDX/XMLA support are the primary objectives.
November 2010 1 The first features complete. A community (free) version.
June 2011 1.3 Expanded MDX support and stronger cube modeling features; the first version of the visualization library (GVI).
October 2011 2 First version advertised for business use (vs. community).
April 2012 2.5 First version featuring the Web Reporting server.
January 2013 3 Better performance and more features.
June 2013 4 A second generation calculation engine.
January 2015 4.8.2 Improving the 4.x versions (server features and speed, Web Reporting).
May 2015 5.1 Adding ETL features.
May 2016 5.2 Improving the 5.x versions.
October 2016 6.0 Brand new reporting and new server calculation engine.
July 2017 6.2 Added Google Maps layers for GEO widgets, heat maps, etc.
August 2017 6.5 Added dashboard commenting module for collaboration.
April 2018 6.6 Improved ETL.
April 2019 7.0 New Server UI / New JSON Rest API.
January 2020 7.1 Support for Java 11 and onwards.
March 2023 8.0 New dashboard module (React, Redux, MUI).
February 2023 8.4 Java 17, multiprocess support for DOCS, available as a Docker[1] libraries in Github.[2]
November 2023 8.4.6 Improved performances and print server.
February 2024 8.4.9 Improved MDX serialization for large results + maintenance release.

Technology[edit]

Architecture[edit]

The product is a fully browser-based application, with the server implemented in the Java programming language following J2EE standards. For the latter, it embeds both an HTTP server (Jetty) and a servlet container to handle all communication tasks. Reporting is developed in TypeScript / React / Redux.

Being an in-memory server, the server does not need to source its data from a RDBMS; in fact, any data source that exposes its data in a tabular form can be used; several plugins exist for accessing files, HTTP stream, etc. Accessing datasource that expose JSON objects is also supported (e.g., MongoDB). The platform then takes care of possibly complex relations (e.g., Many-to-many) implied by the JSON structure.

icCube uses Multidimensional Expressions (MDX) as its query language and several extensions [3] to the original language : function declarations,[4] vector (even at measures level), matrix, objects, Java and R integrations.[5] icCube patented an MDX debugger.[6]

Accessing the platform (data modeling, server monitoring, MDX queries, dashboards) is performed through a Web interface and a JSON REST API.[7]

Running icCube[edit]

The product can be self deployed on premises and/or in the cloud. It is available as a Windows installer, Linux ZIP file, Mac version and as a Docker container published at Docker Hub.[1]

Key Components[edit]

Server[edit]

  • Data modeling – the Builder allows for creating data models (schemas) using a Web based user interface. All the requisite parts of a schema: data sources, dimensions, hierarchies, calculated members, etc. can be defined there.
  • API authentication & authorization (SSO) – icCube is hosting a J2EE servlet handler (Jetty) to handle all communications with the server. Authentication is configured via dedicated servlet filters and an internal authentication service. Both can be changed via dedicated Java plugin(s) to meet corporate policies (e.g., SSO). As examples, some customers use Windows SSO, encrypted Web token, etc. Authorization is achieved using roles granting access to resources (i.e., monitoring, schema builders, schema data). Roles can be defined within icCube or generated on-the-fly when users are connecting to the platform using dedicated information (e.g., a list of schemas the users have access to).
  • Management API – A REST API (i.e., JSON over HTTP requests) is provided for managing the server and the available schemas.

Dashboards[edit]

The Dashboards application allows for creating web-based dashboards, based on widgets, gadgets and events:

  • Widgets are visual elements such as graphs, charts, maps, filters, etc.
  • Gadgets are preconfigured, reusable widgets.
  • Events manage interactions between widgets. For example, a filter generates an event that produces an action on a chart. Also, widgets can also contain events and have actions on each other.

Embedding icCube[edit]

The icCube Dashboards API[8] allows for:

  • developing new themes, widgets (charts, maps, etc.), data transformations, etc
    • Plugin dev kit[9]
    • Github: ic3-reporting-api[10]
    • Source code examples[11]
  • embedding icCube Dashboards into a Web application
    • Embedded API[12]
    • Github: ic3-reporting-api-embedded[13]

AnalyticsOps[edit]

With icCube v8.4.10, a new Github public project has been published : ic3-analytics-ops.[14] This projects allows for (automated) testing the Analytics and Dashboards built with icCube.

See also[edit]

References[edit]

  1. ^ a b "Docker".
  2. ^ "Github". GitHub.
  3. ^ "Chris Webb on icCube MDX Declared Functions". 13 September 2010.
  4. ^ "MDX Functions Reference (common + extensions)".
  5. ^ "icCube extends MDX with OO capabilities".
  6. ^ "Debugging system for multidimensional database query expressions on a processing server".
  7. ^ "JSON REST API".
  8. ^ "icCube Dashboards API".
  9. ^ "Plugin dev kit".
  10. ^ "Github: ic3-reporting-api". GitHub.
  11. ^ "Source code examples".
  12. ^ "Embedded API".
  13. ^ "Github: ic3-reporting-api-embedded". GitHub.
  14. ^ "Github: ic3-analytics-ops". GitHub.

External links[edit]