Oracle offers Java APIs for both Oracle OLAP and Oracle Essbase. These APIs are public, which means that anyone can develop a custom application to work with one of Oracle's OLAP engines. Let's take a closer look at these Java features in my blog.
Using Oracle BI Beans with Oracle OLAP
Oracle Business Intelligence Beans (BI Beans) is a set of standards-based JavaBeans that provides analysis-aware application building blocks designed for Oracle OLAP. Using Oracle JDeveloper 10g and BI Beans, you can build Internet applications quickly and easily. These applications can expose the advanced analytic features of the Oracle Database to both casual information viewers and high-end users who require complete ad hoc query and analysis functionality. The BI Beans components are included in the current 10g version of JDeveloper, but they can also be downloaded separately. BI Beans fall into three categories: presentation, OLAP, and catalog services.
By using BI Beans, application developers can leverage the Oracle technology stack and exploit the advanced analytic features of Oracle OLAP. Using JDeveloper as the integrated development environment (IDE) for BI applications increases application developer productivity.
With Oracle BI Beans, you can do the following:
- Create boardroom-quality presentations.
- Leverage advanced analytics of Oracle OLAP.
- Support collaboration across the enterprise.
- Rapidly develop BI applications for the Web.
When building BI applications, the key piece is the data. The data needs to be presented in such a way that it is easy to identify positive or negative trends. In addition, data presentations are typically created for review by senior management. Presentations need to be easy to build, so any level user within an organization can produce the high-quality reports that senior management expects.
The presentation beans have been through extensive usability testing and are used by other Oracle development groups for products like Oracle Discoverer, Oracle Reports, BI Publisher, and BI Spreadsheet Add-in. For the end user, this provides a consistent look and feel across Oracle products, thus lowering the learning curve as new applications are introduced.
BI Beans provides three flexible data-aware presentation components: graph, crosstab, and table. There is a graph for every occasion, and more than 70 graph types are included with BI Beans. Each graph has hundreds of properties for customizing the graph to give the exact look that you require. User-interface components are provided to make formatting graphs easy. For example, a Graph Type panel, shown in Figure 1, is available for end users to change the type of
Figure 1. The Graph Type panel allows users to change the graph type.
graph they are currently viewing. The graph has full analytic support as well, which includes drilling, changing the layout, and providing data tips.
The BI Beans table provides a row-oriented view of data, typically used by those who are familiar with relational databases. The crosstab component offers a multidimensional view of data and provides services such as drilling and pivoting. Both table and crosstab components provide page-item-filtering capabilities.
Tables and crosstabs have rich formatting capabilities, down to the cell level.
For example, data-driven formatting allows users to highlight data by setting foreground and background colors based on data values within cells. Presentations are completely customizable, down to the details of hiding or showing gridlines, showing titles, and formatting labels.
Not only do application developers have complete control of the look and feel of crosstabs and tables programmatically though the APIs, but BI Beans also present user-interface components for customizing a presentation. Easy-to-use interfaces are available for defining data-driven formatting, and a toolbar gives quick access to commonly used formatting options.
Java and HTML Clients
Depending on the nature and requirements of the application, BI Beans data presentations may be Java-based or HTML-based. This gives developers the option of providing intranet-based users, who have high-bandwidth connections, with full- featured Java applications. If a user population has slower connections, such as a remote sales force using dial-up connections, an HTML application can be deployed for their use.
High-end analytical users who spend a large percentage of their business day analyzing past business performance or developing forecasts of future performance need a highly interactive environment. The Java versions of the presentation beans enable a rich, interactive experience. This includes rotating dimensions in a presentation using drag and drop, formatting through direct manipulation (a formatting toolbar is offered to enhance the interaction), and frozen row and column headers to aid in the navigation of large reports.
The HTML versions of the presentation beans can display custom formats that have been defined and saved using a Java client application, as shown in Figure 2. However, they do not require Java to be downloaded to the client. HTML-based tools provide the ability to change among presentation types, change the layout of a presentation, sort the data, and apply queries that have been previously created and saved. The graph bean generates image files on the middle tier, which you can insert into an HTML page just as you would any other image. The thin graph creates image maps that support drilling and tooltips in an HTML application.
BI Beans Catalog
The BI Beans Catalog is used to save, retrieve, and manage all developer-defined and user-defined analytical objects, such as reports, graphs, favorite queries, and custom measures. The BI Beans Catalog is designed to support large, distributed user communities who share analytical objects in collaborative environments. Developers take advantage of the catalog at design time and hook application logic to the catalog, so users can access catalog functionality from the application at run time.
The BI Beans Catalog can be stored in an Oracle Database or in a local file system. From a development standpoint, it may be convenient to store all your objects within your local file system. However, when the time comes to deploy applications, you should export your objects to a database implementation of the catalog. Since the BI Beans Catalog is then in the Oracle Database, it is scalable and secure.
Object definitions are stored in the catalog as XML. This allows developers to store application objects once, and then use the same objects in Java and HTML applications (or, for that matter, in a PDA or WAP application).
Figure 2. Java crosstab with formatting and toolbar (left) and the same crosstab in HTML (right)
Increasing developer productivity is the mission of the BI Beans. This has been accomplished by making JDeveloper the premier environment for developing BI applications. Although BI Beans are standard Java components that can be used with any IDE, using JDeveloper significantly enhances and simplifies the developer experience. Using BI Beans and JDeveloper provides the flexibility to develop applets, applications, servlets, and JSPs.
To speed the process of developing applications and application objects, BI Beans provide a number of wizards in JDeveloper. These wizards allow you quickly to create presentation objects (crosstabs, tables, and graphs), calculations, complete Java applications, and complete HTML applications as servlets. Developers can edit these objects and applications visually in JDeveloper, or they can edit the generated Java code directly.
BI Beans also includes a custom JavaServer Pages (JSP) tag library for embedding BI Beans objects directly into JSPs. For example, a developer could embed a graph in a page by simply inserting a tag referencing a graph that was previously created.
Figure 3. Creating a crosstab in JDeveloper with live access to data and formatting
BI Beans provides a live connection to Oracle OLAP during the JDeveloper application design session, as shown in Figure 3. This allows the application developer to see data at design time. This is particularly important with BI applications, because the data content often affects how the analytical objects are designed. For example, being able to see the data at design time allows the developer to make decisions about data selections and formatting in a report.
JDeveloper understands the BI Beans Catalog. This makes it very easy to share analytical objects among many different applications. For example, several different applications could all share the same report. When the report needs to be altered, JDeveloper can be used to make the changes. All the applications that use that report then automatically see the updated report. Other IDEs can be used to do this, but JDeveloper makes the task almost trivial.
In summary, BI Beans provides an application architecture to support any enterprise BI needs. Because BI Bean applications are built using Java, they can be deployed anywhere on the Internet. Java applications can be deployed on any device that can run Java. Servlets can service any device that supports a browser. The application logic is written by the developer on the middle-tier and may be reused by any client application: Java applications, servlets, JSPs, and so on.
This provides support for a variety of devices, such as PCs, browsers, PDAs, and even web-enabled phones like the Apple iPhone and BlackBerry.
Connecting Java Applications to Essbase
Essbase includes a Java API bundled with its Oracle Hyperion Provider Services component. Oracle development teams and partners use the Java API to create distributed, server-side applications that interact with Essbase databases. For example, some of the Oracle products, such as Planning and Profitability and Cost Management, incorporate the Java API, as does Applied OLAP's Dodeca.
Because the Java API is public, you can have your own development team use the Java API to connect a custom Java application to an instance of an Essbase Server. Programmers can do basic things like sign on to an Essbase Server domain, establish a connection to a database, build dimensions, load data, query data, run calculation scripts, modify a database outline, sign out, and close the connection. They can also perform some advanced tasks, such as create a grid interface.
The API is 100% Java. The ess_japi.jar file is located in the lib directory of your Provider Services installation. The packages in the JAR file reflect the kinds of tasks that you usually do with Essbase.
When designing or modifying an application to work with Essbase, you can follow one of two architectural paths:
- Embed the Java API in your application, as shown in Figure 4.
- mplement Provider Services to service calls from the Java API. as shown in Figure 5.
Figure 4. Embedded architecture
Figure 5. Provider Services middle-tier architecture
Provider Services can also be a data source provider for Smart View, XMLA clients, OBIEE Plus, and Planning (via the Smart View provider). If you are already using one or more of these products, this may be the preferred option for your environment.
Each implementation option offers benefits and drawbacks in terms of supported features. Table 1 lists some features and indicates whether they are supported by each option.
You are not bound by your initial architecture decision. Because the reference to the type of implementation is contained within the signOn() method, it is easy to direct your program to use a different architecture should the need arise.
table 1. Supported Features by Implementation Method
Java API Resources
This blog provided only a broad overview of the Java API. Essbase ships with a set of sample applications that do a good job of showcasing key methods available to you in the Java API. You can find information about the sample applications, including where to locate them and how to run them, in the Oracle Hyperion Provider Services Administration Guide.
You may also find the following resources helpful during your development process:
- Java API for Oracle Essbase Javadoc Get details on interfaces, classes, methods, and fields. The Javadoc is installed with Provider Services.
- Oracle Technology Network: Java Developer Center Discover Oracle's tools for Java - including JDeveloper and Oracle WebLogic Server - and connect with other Java developers.
- Blogs Benefit from real-world experience as told by industry experts. Find blog postings and presentations on the Internet by using the search term combination "essbase java api."
You may not need to create your own cubes, spreadsheets, and reports to reap the benefits of online analytical processing. In some cases, it may be more appropriate to implement a packaged application to address a particular need, rather than creating your own set of spreadsheets and reports. One or more of the products may be exactly what you need to get your OLAP solution up and running quickly. In addition, if a packaged solution does not suit your needs, the public Java APIs for Essbase and Oracle OLAP mean that you can have a custom front-end application built.
- EPM Information Development Team. Oracle Hyperion Provider Services Administration Guide, Release 11.1.1. Oracle Corporation, 2008.
- Oracle Corporation. Creating Interactive APEX Reports Over OLAP 11g Cubes. Oracle Technology Network.