Oracle BI EE 11g - Action Framework - BI Web Services for SOA

One significant feature as mentioned here in BI EE 11g, from the perspective of Action Framework, is the introduction of the BI Web Services for SOA. Till 10g, BI EE had good support for web services but the nature of the web services was such that one had to always establish a session with BI Server and then pass the session id to the other methods. There were 2 main drawbacks with this method

1. More coding effort was involved in using the 10g web services especially with components like BPEL & other SOA products

2. In order to even look at the list of reports or list of iBots through web service, a session had to be established with BI EE. Session persistence had to be maintained constantly as part of the web service calls.

BI EE 11g introduces a new type of a web service called BI Services for SOA. These are basically web services that can query the Web Catalog and the Agents. These are not as comprehensive as the other session based web services as they cater just to the Web Catalog and the Agents. They are primarily meant for Oracle SOA applications to easily call the web catalog reports, conditions and the Agents/iBots. The biggest advantage with these web services are, there is no need for establishing a session with BI EE explicitly. In this blog entry, lets see how to enable this web service.

This web service is installed by default as part of the bimiddleware application (default 11g installation). But this is not enabled by default. To enable this, we need to go to Fusion Middleware Control (http://localhost:9704/em) and then go to the Credentials Page

Create a new Credential Map called oracle.bi.enterprise if it does not exist already

Then create a new Credential Key called wsil.browsing. Any valid repository username/password can be entered while creating this key. Remember, the username used while creating the key will be used for just browsing the target BI EE Web Catalog. But the actual invoke will be done by the logged in user.

After entering the key, restart the entire managed server. Then navigate to http://localhost:9704/biservices/inspection url. This should produce the full listing of the WSIL web services for each and every BI EE report. Unlike the older BI EE Session based Web Services, we now have a different web service end point for each report/agent.

As and when new reports are created, new end points will automatically appear in the WSIL. For example the actual web service for a sample report at http://localhost:9704/biservices/inspection?wsdl=true&catpath=%2Fshared%2F3.+Analysis+and+Dashboards%2FAnswers+Queries%2FBig+Selling+Products is shown below

Any calling SOA application can use the WSIL or individual web service end points to browse the structure of the report. For example, lets create an Action from BI EE 11g and then use the Web Service option

Now that we have enabled the WSIL browsing by adding the credentials we should be able to browse the SOA web services directly.

As you see using these web services we can now control the locale, maximum number of rows, report parameters etc. This makes the integration with BPEL, SOA a lot easier. I will cover how other SOA applications can make use of these web services in another blog post.