There are many advantages to embedding business intelligence into applications.
I just added a short movie to youtube about some of them: http://www.youtube.com/watch?v=uMyR-In5nKE
The advantages of embedding BI include:
- You get to re-use the security, context, and business rules of the application.
- The user gets a more seamless and integrated experience
- Easier installation and upgrade paths (for packaged applications)
The Pentaho BI platform was designed from the start to be embeddable. This entails architecting the entire platform so that it can be consumed as a set of libraries. This is not easy to achieve and is almost impossible to retro-fit into an architecture that was not designed to support it.
In a few lines of Java (10-20 lines) you can initialize the platform and execute reports and ETL processes etc. The advantage of doing BI at this level is no request gets to the BI libraries, and no content gets back to users, without coming through the application’s security, context, and business rules etc.
Another advantage of embedding BI is that it enables a level of integration that is not possible any other way. For example when providing the data that is used to populate a report you have many options:
- The application calls the BI platform to execute a report, and the data source and the query are defined in the report itself.
- The application creates a query and passes it to the report before execution.
- The application creates and executes the query, and passes a live database cursor to the BI platform for the report engine to use.
It is this last option that is impossible to implement using any kind of web service or RPC-level integration between an application and a BI server. Only a fully-embedded BI solution can provide this level of integration.