# IcCube

icCube est connu pour sa plateforme de logiciel d'analyse de données et de visualisation intégrable spécifiquement conçue pour les applications B2B de logiciel en tant que service (SaaS), c'est-à-dire l'analyse intégrée.
Ses clients couvrent divers secteurs, de la finance et de la santé au commerce électronique et à la logistique, entre autres. Le logiciel permet aux solutions SaaS de plusieurs secteurs de fournir des analyses de données, des tableaux de bord et des visualisations à leurs clients finaux respectifs (c'est-à-dire, analytique orientée client).

## Historique

icCube a été fondé en 2010 par David Alvarez-Debrot et Marc Polizzi, reconnaissant le besoin d'un serveur analytique pouvant être intégré de manière transparente dans des produits tiers.
David et Marc, qui avaient déjà travaillé ensemble sur le développement d'un produit de risque financier au sein d'une société de conseil en logiciels, ont remarqué la nécessité d'un serveur robuste, performant et fiable pour les calculs analytiques. Après le déploiement du produit de risque financier, ils ont décidé de lancer leur propre entreprise.
Initialement, envisageant de développer une solution alternative de risque financier, ils ont ensuite réalisé le potentiel sur le marché pour un produit polyvalent, transversal, axé sur la modélisation et le traitement analytique, qui pourrait être facilement intégré dans n'importe quelle solution SaaS. De nombreuses entreprises SaaS B2B recherchaient des capacités d'analyse robustes pour leurs plates-formes, et l'idée derrière la société était d'être des leaders d'opinion dans cet espace en se concentrant exclusivement sur la fourniture d'une plateforme d'analyse intégrable pour les développeurs de solutions SaaS B2B.
Le produit est basé sur Java, garantissant la compatibilité avec la plupart des architectures. Le serveur en mémoire utilise le langage de requête Multidimensional Expressions (MDX), qui, contrairement à d'autres langages de requête courants, est hautement optimisé pour l'analyse.
Au fil du temps, la plateforme a évolué et a introduit de nouvelles fonctionnalités et améliorations pour répondre aux besoins croissants de ses clients. Parmi les jalons remarquables de l'évolution d'icCube, on peut citer l'introduction du serveur de reporting Web en 2012, le lancement d'un nouveau système de reporting et d'un moteur de calcul serveur en 2016, et la sortie d'un nouveau module de tableau de bord basé sur TypeScript, React, Redux, et Material UI (MUI) en 2022.

## Technologie
### Architecture

Le produit est une application entièrement basée sur un navigateur Web, avec le serveur implémenté dans le langage de programmation Java suivant les normes J2EE. Pour ce dernier, il intègre à la fois un serveur HTTP (Jetty) et un conteneur de servlets pour gérer toutes les tâches de communication. La génération de rapports est développée en TypeScript / React / Redux.
Étant un serveur en mémoire, le serveur n'a pas besoin de récupérer ses données à partir d'une base de données relationnelle (RDBMS) ; en fait, toute source de données qui expose ses données sous forme tabulaire peut être utilisée ; plusieurs plugins existent pour accéder aux fichiers, aux flux HTTP, etc. L'accès aux sources de données qui exposent des objets JSON est également pris en charge (par exemple, MongoDB). La plateforme se charge ensuite des relations potentiellement complexes (par exemple, Many-to-many) impliquées par la structure JSON.
icCube utilise les Multidimensional Expressions (MDX) comme langage de requête et propose plusieurs extensions au langage original : déclarations de fonctions, vecteurs (même au niveau des mesures), matrices, objets, intégrations Java et R.$^,$ icCube a breveté un débogueur MDX.
L'accès à la plateforme (modélisation des données, surveillance du serveur, requêtes MDX, tableaux de bord) s'effectue via une interface Web et une API REST JSON.

### Déploiement

Le produit peut être déployé en interne et/ou dans le cloud. Il est disponible sous forme d'installateur Windows, de fichier ZIP pour Linux, de version Mac et sous forme de conteneur Docker publié sur Docker Hub.

### Intégrer icCube

L'API des tableaux de bord permet :
* de développer des nouveaux thèmes, widgets (graphes, cartes, etc.), des transformations des données, etc...
** Kit de Dev. des Plugins
** Github: ic3-reporting-api
** Exemples de code source
* d'intégrer les tableaux de bord dans une application Web
** API d'intégration
** Github: ic3-reporting-api-embedded

## AnalyticsOps

Avec icCube v8.4.10, un nouveau projet public a été publié sur Github : ic3-analytics-ops. Ce projet permet de tester (de façon automatisée) les analyses et les tableaux de bord construits avec icCube.

## References

* ↑ « Gartner: Définition Analyse Intégrée »
* ↑ « Chris Webb on icCube MDX Declared Functions », 13 septembre 2010
* ↑ « MDX Functions Reference (common + extensions) »
* ↑ « Renjin and icCube »
* ↑ « icCube extends MDX with OO capabilities »
* ↑ « Debugging system for multidimensional database query expressions on a processing server »
* ↑ « JSON REST API »
* ↑ « Docker »
* ↑ « icCube Dashboards API »
* ↑ « Plugin dev kit »
* ↑ « Github: ic3-reporting-api », sur GitHub
* ↑ « Source code examples »
* ↑ « Embedded API »
* ↑ « Github: ic3-reporting-api-embedded », sur GitHub
* ↑ « Github: ic3-analytics-ops », sur GitHub

## External links

* Site officiel
* « Revues d'icCube », sur Captera
* « Revues d'icCube », sur SoftwareAdvice
* « Registre du Commerce (Société) », sur MoneyHouse