Architecture

Indicee’s Platform Architecture

The Indicee Platform is a set of API accessible services that allow the management of source data,  the creation and assembly of “BI Assets” into “BI Models” and finally the definition of “BI content” items like reports and dashboards.

Assembly or Composable BI

A key concept within the Indicee Platform is that of assembly: building up useful BI models from smaller reusable pieces that can be shared amongst model and report creators. This provides for unprecedented levels of extensibility in a BI engine without sacrificing robustness, or exposing high degrees of complexity.

Everything via the API

The Indicee BI Application is completely written on top of our published Indicee Platform API. Anything you see in the Indicee application can be accessed by the API or embedded in your application via the API.

Platform Services

The Indicee Platform broadly divides into 2 sets of services that are made available via the Indicee iBIOS API.

Indicee Modeling Platform

These are services that support the definition of BI objects and processes into what we call a model.
All the basic capabilities of the Indicee Platform are derived from a set of libraries that are loaded into the engine. These capabilities are described by discrete objects that are designed to snap-together to create  specific BI elements. This fine-grained approach  provides the platform with its flexibility, as new capabilities can be added by extending these libraries. This can be done universally by Indicee so all customers can access the new capability, or for a specific application, providing a mechanism for developers to extend engine capabilities themselves and use these extensions in their own applications.

Indicee’s data modeling services are supported by a “Guesser” that can analyse data types and values to automatically determine important facts about the data, such as keys, cardinalities, formats and mappings. All of these properties of a model are editable with the Indicee data modeling tools and via the API, but the Guesser provides valuable bootstrapping of the model, allowing them to be created automatically as new data is presented to the system.

SPRITE BI Calculation Engine

These services evaluate BI objects on demand, according to their definitions and context (such as where the source data resides).

When a user views are report or when an API call is made to get result data it is time to actually process data. The definitions from the modeling activities are dynamically compiled and evaluated. This compilation process turns the BI processes into actual operational processes, and does not conform to the common design of having large, precompiled, complex ‘black box’ data processing servers that must contain all the code paths necessary to generate all possible outputs of result data. Obtaining and processing data this way is highly flexible and drastically reduces the economics of extending the platform to adapt to new challenges.

Indicee’s method of data processing can be described as providing a “virtual data warehouse”. Aside from important optimizations such as caching and pre-calculation, all data processing is performed on-demand as requested by a user or API consumer.  Output such as reports and dashboards can be modified by the user (such as commanding a drill-down or moving to a new page of the data), which in turn affects how and when data is  calculated.

iBIOS API

Indicee Platform services are exposed to developers as REST APIs. A main set of APIs provides platform BI services, and an auxiliary set provides application management such as registering application keys and uploading engine customizations.