creating embedded business intelligence
Tuesday, December 29th, 2009To embed business intelligence content means to make it available within the context of another application or service. In this way, it becomes an essential part of that application or service. Thus, the goal of embedding business intelligence is to provide value to business workers by allowing them to derive insight from BI content from anywhere – regardless of the implementation. This improves the decision making and storytelling ability of all workers as they have BI available to them no matter where they go – virtually – within an organization.
Some existing examples of BI vendors allowing embeddable BI:
- SAP BusinessObjects Live Office
- SAP Crystal Reports
- SPSS with IBM Cognos
- MicroStrategy
- GoodData
- Pentaho BI Suite Version 3.5
- LogiXML
- JasperSoft Business Intelligence
- QlikView (with Qliklets)
The creation of these existing examples was driven by the need to have business intelligence available within an operational process (closed loop BI), the popularity of mashups within the context of business centered applications, and to allow popular end user applications to work together. Embedded business intelligence allows an organization to provide workers and consumers with information that is relevant to them in ways that are familiar to them – which brings us closer to the goal of pervasive BI.
There are a few ways to think about embedded BI:
OEM
The traditional way is that of the OEM model. This is where a software vendor will take pre-built software, such as Crystal Reports, and embed it into their own thick or thin client application as means of providing a level of business intelligence without having to build it on their own. Sage’s Accpac solution is a great example. This solution provides businesses with financials, operations, and customer management software, which embeds Crystal Reports as a means of reporting directly within the application against the real-time data that the application is processing or creating. This concept of embedding one manufacturer’s parts into another has been around since the 1960’s. For software, this is done via APIs that are provided by the software vendor. These APIs can either be client-side or server-side. For example, the Crystal Reports embedded reporting allows for either the creation / editing of Crystal Reports content or the processing of that content via an embedded server solution.
Platform based APIs
Another way to embed BI content is to leverage APIs provided by the BI software platform as means to embed the already processed BI content into other web applications. This is similar to the OEM model in that APIs are leveraged as a means of embedding content; however, in this scenario the BI content is processed by a BI server platform and then “served” to the parent application. Again, SAP provides this functionality with APIs for the BI platform, Web Intelligence and Crystal Reports; however, there are other BI vendors that also provide this capability. For example, content from Jaspersoft, Pentaho, and SAP can all be embedded a web application (e.g., corporate portal) to deliver up-to-date BI content that is relevant to the specific end user’s needs.
Vendor Integration Points
There is also the possibility that the BI software vendor has provided integration points that makes embedding BI content even easier than having to do so programmatically via APIs (as the previous two methods discussed). Both SAP BusinessObjects Live Office and the SAP BusinessObjects Portal Integration Kit for SharePoint are examples of this type embeddable BI. There is also the concept of BI widgets that provide specific types of functionality that can be embedded into other applications. A great example of this type of functionality are the widgets for QlikView.
Web Services
The use of web services has also become popular amongst some BI vendors as a way to leverage the BI platform for the creation of insightful content that is then exposed to web service consumers. This is a good way for BI vendors for expose parts of their platforms, reporting engines, and analytic engines without having to create a full API that would be required for both .NET and Java applications. SAP has dones this through integrations with Salesforce.com, with the new SAP BusinessObjects BI Services, and with new feature from Web Intelligence that allows for the quick and easy creation of web services based on Web Intelligence content. The same is also possible with Information Builders WebFOCUS, Microsoft Excel, MicroStrategy, and many other BI vendors.
While these different means of embedding BI are useful in their own right, we must consider what we want to achieve as BI vendors when we allow others to embed our content. The goal is to make our content as prolific as possible while enabling organizations to achieve their goals in a more efficient and informed manner. With this in mind, how we can extend these different ways of embedding BI in an effort to become more flexible while making things as easy as possible?
A business intelligence platform itself is not really a product that anyone necessarily wants to use. It is more of a means to enable an organization to be more effective at making decisions. As such, we need to make it easier for content created within our products to be embedded everywhere a user may be – inside or outside the organization. This could be by embedding content directly into applications used by the sales team so that they can get immediate information about past opportunities with their customers. It could be achieved by providing a means for exception based alerting of BI content where an manager in support is notified when a negative survey response is entered about one of their support representatives – without having to login to a separate application. There are many ways that we can improve our embeddability.
Improved on-premise service based platform
As BI vendors we should focus more on the development of platforms that can easily create content, store that content, and then easily push the content out to any other application in an organization. For example, rather than focusing on creating portals to allow an end user to interact with our content maybe we should focus more on the creation of a platform that stores all content in a manner that is easy to access via XML or JSON. This content could be a report, an analytic, a data integration job, or even our administrative functions to allow for the creation and scheduling of content via a web services based call.
Improved off-premise service based platform
Many BI vendors have done a great deal of work to create on demand solutions that allow their customers to host their BI content on the web. In addition, some BI vendors have enabled their products to post content created within an application directly out to these on demand solutions. We need to take this further to create processing engines that are hosted in the web and on demand interfaces to programming IDEs which allows for the creation of web applications directly in the cloud rather than having APIs on a developers desktop. This should all be done in addition to provide classic APIs available for those organizations that are developing two-tier applications or may not want to face the security challenges of hosting content or code in the cloud.
Consistent and easily customizable UI for all content creation applications
It is important for BI vendors to create their applications with a consisten UI. Not only does this significantly reduce the learning curve for additional products, but it also makes it easier for developers of applications to embed our software. If a developer must be concerned about the learning experience for the end users of their applications, then that gives them one more reason to not want to embed our applications. By creating an easy to use and consistent interface, we are making it easier for those developers by ensuring that they do not have to worry about the UI presented by our software. In adddition, the UI for all content creating applications should be customizable – without code if possible. For example, the removal of toolbars should not require complex code – this could be handled via a flag in a configuration file. The same should be true for hiding splash screens, windows within the product, and icons.
Ease of creating web services within all content creation applications
All content creating applications should be able to also create web services based on that content. For example, with SAP BusinessObjects Web Intelligence XI 3.1 SP2 it is possible to create a web service directly within the content creation window. You simply select your table (or chart), click a button, and you are creating a web service for the data contained in that table (or chart). It is only a few more clicks to publish this web service for consumption. We should not be limiting this to only on-premise services – we should provide this for off-premise services as well. Maybe we shouldn’t even be restricting this to content creating applications? What about ETL applications? Finance applications?
Better support for exception based BI
By building in better support for on-premise, off-premise, and web services creation within client applications, we are making it easier to also handle exception based BI. We should take this further by allowing our platforms to handle the creation of alerts via web services. For example, we could allow a finance application to call our platform directly via XML or JSON to create a alert against a report or analytic contained within our platform for a specific user or a group of users. (We could also allow the creation of the user or group of users via web services – called from within the administrative application for the authentication system utilized by an organization.)














