I would like to discuss a simple example that uses IBM Cognos Mashup Service (CMS) to create a Mashup of my IBM Cognos reports, and the ubiquitous web application used in Mashups, Google Maps. This Mashup demonstrates how easy it is to integrate IBM Cognos content into any web application. Mashing upIBM Cognos business intelligence (BI) with other applications can provide a more useful user experience, putting the BI within the context and user interface of another application, right at the “point of impact”, and avoids the need to switch to another application to make fully informed decisions.
There are a few points worth noting in this demonstration. First, the Mashup uses CMS to access the “Branches” report resource in XML form, so that the data values are readily available to pass to the Google maps API’s for geocoding. This is robust, and avoids fragile, workaround techniques like HTML scraping. The XML format is called layoutDataXML (LDX), and is fully documented in the CMS Developer Guide. Second, the “Branch Details” report resource is requested in HTML fragment form, so CMS transforms the LDX into a HTML fragment, suitable for insertion into a <div> element of an HTML page, before returning the resource. Finally the Mashup uses another resource type, the cognosURL resource to leave the Mashup application and launch another web browser to open the same “Branch Details” report in the full Cognos Viewer user interface.
I like how easy it is to make requests for BI resources to include in the Mashup application. Resources are also available in JSON format from CMS.
In this video, I explain the construction of the REST URL references to IBM Cognos report objects.
I hope that this example helps you to think of ways that your applications can integrate with IBM Cognos to deliver business intelligence right where it is needed most. I look forward to seeing other applications that apply IBM Cognos Mashup Service.
If you would like to see the complete code for this example, you can download the html file with this code here. This sample was created using IBM Cognos 8.4.1. The reports are written using Report Studio with the “Go Data Warehouse (analysis)” sample package.
In this post, Mark and I would like to walk through the technologies available when integrating with IBM Cognos, and give our thoughts on when each might be the right tool in the box. Specifically, we'll talk about the Cognos Software Development Kit (SDK), Cognos Mashup Service (CMS), Cognos Viewer URLs, and Event Studio.
The Cognos SDK provides an RPC/Encoded SOAP interface to the services that make up the Cognos product. With the SDK, you are able to access all the Cognos 8 platform services for integration and automation of tasks. For example, the SDK is often used to automate administration tasks or metadata changes. As well, the SDK can be used to extend the platform, such as adding support for a custom security model.
Where the Cognos SDK is a web service interface to the IBM Cognos product, Cognos Mashup Service is a web service interface to the BI content that you develop with the IBM Cognos product. The reports, ad-hoc queries, analysis, metrics, and other content are implicitly exposed as web services, as soon as they are authored. As well, individual parts of reports are exposed as resources as well (allowing you to reference a single chart, from a complex report, for instance). CMS allows these resources to be accessed as document/literal SOAP web services, or through its REST interface (i.e. simple URL addresses to reports and report parts). The BI can be requested in several formats (e.g. XML, JSON, HTML/HTML fragment), allowing a lot of flexibility in how the BI is consumed and used. CMS also provides alternatives, for different types of integration with
BI, different client environments, different visualization requirements,
Cognos Viewer URLs provide the ability to embed the full Cognos Viewer experience into a web browser container. The documented format of the URLs, allows the viewer to be launched for a specific report, and can be tailored with query parameters to pass in prompt answers, to chose an output format to be shown in the Viewer (e.g. HTML, PDF, etc.), and to allow other customizations. Using the Viewer URLs is the right choice, if your integration calls for the Cognos Viewer experience and look and feel, running in a web browser container (e.g. launching a browser window, running in an IFRAME on an HMTL page with other content, or running in an HTML browser control on a thick client).
Event Studio offers a different integration pattern, than those previously mentioned. While CMS offers a "pull" integration of BI content, Event Studio offers a "push" model. With Event Studio, you can create "agents" to monitor the BI for conditions to occur. When the condition event is detected, your agent can "push" this information from Cognos to outside applications, with a variety of mechanisms ( such as invoking a web service, sending an email, etc.).
So when would you use which API? The following table captures characteristics of each API, as well as some typical integration patterns for which they are used.
Cognos Viewer URLs
- full Cognos Viewer interactivity and features
- Cognos Viewer look and feel, and behavior
- quick to develop, easy integration
- can integrate with just HTML
- integration in HTML browser
- add link to launch Viewer in context of a specific report, prompt values, etc.
- Viewer inside an IFRAME on a page with other content
- Viewer inside a web browser control (e.g. AWT browser) in a thick client
- BI integrated into the look and feel and behavior of the embedding application
- full reports or report parts integrated
- flexibility of how BI integrated
- less viewer interactivity "out of the box", without coding it
- Doc/lit SOAP (WSDL) and REST (i.e. URLs)
- C#, Java, etc with SOAP or REST
- other (e.g. Flex/Flash, Silverlight, etc.)
- enabling some viewer equivalent interactivity requires some coding
- BI data values readily exposed in XML formats for easy use (formatted and unformatted)
- structure of report objects facilitates easy programmatic navigation
- integrate with the BI visually or use it in business logic
- embedding BI in another application
- use Cognos content in mashups
- use in BPM process (use BI in decisions by automation or humans)
- provide alternate visualization of Cognos content
- Very detailed set of services. Provides lots of flexibility and power, but has a higher learning curve.
- C# with provided .dll file
- Java with provided .jar file
- automation (e.g. of admin tasks)
- adding extensions to Cognos (e.g. creating custom security providers)
- creating/using report specifications outside of the Cognos Studios
- information delivered or actions taken automatically, instead of user "checking"
- push model, instead of pulling from Cognos
- invoke web services, send emails, etc.
- notifying users of BI events and conditions
- initiating actions in other products, based on BI events occurring
In upcoming blog posts, we will be exploring ideas, trick and tips in all of these APIs.
and welcome to this IBM Cognos developer community, C to the Power of
C3 (C to the Power
of 3) stands for Cognos, Community and Collaboration and that's
exactly why this community is here. It has been created to share
ideas and information about developing applications using IBM Cognos
8 Business Intelligence products.
Most of the ideas
shared and discussed here will be using application programming
interfaces that are part of the IBM Cognos8 product suite, and will
include writing code of some sort. We'll try to cover a broad range
Java, BPEL, etc.). It will come with lots of explanation about what
it's doing and how it is accomplished using IBM Cognos 8 APIs.
IBM Cognos 8
provides several application programming interfaces that can be used
to combine your Cognos8 BI into other applications or tools that are
important to your business. Exploring the "art of the possible",
is what this developer community is all about.
My name is Wade
Williams, and I am the leader of the IBM Cognos Mashup Service
development team. CMS is a relatively new feature of IBM Cognos,
available since the 8.4.1 release, and adds an important API to
access the great content created using IBM Cognos. I will be blogging
about CMS in the weeks and months ahead.
I am joined by
members of various IBM Cognos teams, across many job roles, and
together we have a lot of experience with building applications using
IBM Cognos. We're excited about what can be accomplished with our
tools, and want to share some ideas and techniques to help you build
really great applications that include your BI.
Some of you joined
this community when it was first created with the name "IBM
Cognos 8 Mashup Service". We decided to expand the scope of this
community beyond CMS, so we needed a new name. My team and I will
make sure that there will be lots of interesting CMS content
There are other
forums to talk about all the great things that can be done using the
IBM Cognos 8 studios, and Go! Dashboards. We'll stick to what we
know, which is the APIs. Those APIs will let us use all that great
content created using the studio authoring tools in new and
So please join us
in this community and look for regular postings that showcase ideas
and techniques for using IBM Cognos 8 right where you need it most.