Oops! The input is malformed!
Originally published 9 January 2008
Declaration of Independence
Within this article, I will occasionally refer to products and use screenshot examples of various products as an aid to communicate specific points. These examples are chosen at random and in no way represent any endorsement on behalf of the author for any product in the marketplace.
End of Declaration
My first article of this series highlighted several Web 2.0 technologies, including:
With respect to BI web services, we are now at a point in time where the majority of major suppliers of software for the BI and performance management marketplace are offering web services support as part of their BI platforms. This means that artefacts such as queries, reports, cube slices, predictive analytic models and data integration jobs are all capable of being published as web services. Indeed, I have written extensively about this in my article, Developing a Service Oriented Architecture (SOA) for Business Intelligence. Clearly, publishing BI services means that any process, operational application and portal can request BI on-demand as part of a process or application.
When you look at web applications or even web enabled BI tools, many of them have been built using a traditional architecture such as that shown in Figure 1. In this kind of setup, the application (which could be a BI tool) is server side with the user interface being made up of entire web pages dedicated to that single application. Typically, these web pages are Java server pages (JSPs) or active server pages (ASPs), depending on whether you have developed the application in Java or Microsoft .Net. For many, this way of building applications presented a problem. This problem was the fact that web applications were less functional than “fat client” desktop applications that had drag and drop and other intuitive interactive capabilities.
In the last 2 years or so, we have seen new technologies such as AJAX enter into the developers’ toolboxes to provide them with a way in which to enrich the user interface of web applications to make them more on a par with what is capable on the desktop. With AJAX, web applications can be constructed with web page user interfaces that have multiple visual components accessing multiple back end services.
Based on what we have discussed so far, AJAX works as shown in Figure 3.
What has all this got to do with business intelligence? These frameworks can impact on BI systems in two main ways. The first is that any of the business analysts within your organisation may choose to download any of these frameworks and start using them to rapidly develop new Web 2.0 applications and mashups that need to access BI. If the framework is an AJAX one, they will no doubt want to do this using AJAX calls to BI services on your business intelligence system. This means that even without the IT department knowing it, this may well be happening in your organisation. The second is that BI vendors are also starting to exploit these frameworks. To give you an example, look at Figure 5. Here you see an example of a Business Objects BI report in Adobe PDF format that has been built using the Adobe Flex framework.
Here you can see that the content in the report is made up of a number of visual components some of which are BI related and others are more unstructured content (the text on the left) and collaborative in nature (the people and interactive chat happening on the right).
With Web frameworks you build multiple visual components that can be assembled on a web page (or indeed on a document such as a PDF). The following steps are typically taken by a developer (bearing in mind that the developer could be a business analyst).
Step 1: Define the visual component(s) you want using the standard XML schema provided by the framework.
Step 2: Define the script to manipulate the contents of the visual component.
Step 3: Package the XML definition, the script and the library functions into component files (often these have a suffix of .SWF).
Step 4: Embed components in an HTML page (typically between an OBJECT or EMBED tags).
Step 5: Place HTML page on the web server and invoke it from the browser.
Figure 6 shows what happens at run time. Here, the web page created using the framework is accessed by the user. The web page is downloaded into the browser and then it operates like a classic AJAX application as described in Figure 3.
An example of such a framework is Adobe Flex (see Figure 7).
With this framework, you define visual components in something called MMXML and can also define ActionScript for client side logic. The ActionScript is executed using Adobe Flash. Well over 95% of the browsers running on the internet support Adobe Flash. Adobe also provides a development tool for people to use to rapidly create Flex web applications. This is called Flex Builder which is used to quickly build and deploy visual components on a web page, configure them in terms of look and feel and to develop ActionScript to access remote services and manipulate returned data prior to display in the browser. To make it easier to connect to web services, Adobe provide Flex Data Services that has pre-built connectors to many different sources of information. At run-time the visual components are downloaded into the browser on a web page that contains ActionScript and the ActionScript is then executed in the Flash player to access remote services such as BI via Flex Data Services. You can see the run time architecture of Adobe Flex in Figure 8.
In addition to web frameworks, there are also Desktop frameworks that can be used to quickly build desktop visual components (also known as widgets). Desktop visual components do not run in the browser. Instead they run on the desktop. Examples here include:
These also can be used with business intelligence. To cite an example, I was on the Business Objects (recently acquired by SAP) website a few months back and discovered that Business Objects had built a Business Objects Labs product called BI Desktop. BI Desktop is built using the Microsoft .Net 3.0 framework that allows parts of a report (e.g., a bar chart) to be dragged out of the report viewer and onto your desktop (see Figure 9). This is possible because the framework is also running on the desktop operating system (in this case, Windows). Ideally, you would like to develop these visual components once and have them work in the browser or on the desktop. For that to happen, the framework would have to be available in both places. This is the case with the Microsoft .Net framework which, in the case of Vista, is part of the operating system. Hence the reason why we have Vista Gadgets.
In my next article as part of this series, I will examine the remaining Web 2.0 technologies mentioned in this article and see how these apply to business intelligence and performance management.