Book Image

Oracle BAM 11gR1 Handbook

By : Pete Wang
Book Image

Oracle BAM 11gR1 Handbook

By: Pete Wang

Overview of this book

An integral component of Oracle SOA and BPM Suite, Oracle BAM (Business Activity Monitoring) ultimately empowers business executives to react quickly to changing business situations. BAM enables business service and process monitoring through real-time data streaming and operational reports, and this book helps you to take advantage of this vital tool with best practice guidance for building a BAM project."Oracle BAM 11gR1 Handbook" is an essential companion for advancing your BAM knowledge, with troubleshooting and performance tuning tips to guide you in building BAM applications. The book uses step-by-step instructions alongside a real world demo project to steer you through the pitfalls of report and application development. Packed with best practices, you'll learn about BAM migration, HA configuration and much more."Oracle BAM 11gR1 Handbook" comprises a myriad of best practices for building real-time operational dashboards, reports and alerts. The book dives straight into the architecture of Oracle BAM 11g, before moving swiftly onto concepts like managing BAM server securities, populating Data Objects and performing load testing. Later on you'll also learn about BAM migration and building an ADF-based report, plus much more that you won't want to miss. For focusing in on best practices for this integral tool within Oracle SOA and BPM Suite, "Oracle BAM 11gR1 Handbook" is the perfect guide for the job.
Table of Contents (18 chapters)
Oracle BAM 11gR1 Handbook
Credits
Foreword
About the Author
Acknowledgement
About the Reviewers
www.PacktPub.com
Preface

Chapter 1. BAM 11gR1 Architecture

Oracle Business Activity Monitoring (BAM) 11g R1 architecture leverages the push-based mechanism to deliver the high volume of data changes to the frontend web browser in real time, which is the key differentiator from other conventional reporting solutions that use the pulling approach for report rendering.

To help you understand the push-based mechanism and BAM Architecture, this chapter first introduces BAM key concepts, which are the prerequisites to learning BAM. We will then discuss an overview of the architecture, and its key server side components. Finally, you will see an explanation of the message flows in typical report opening and data change scenarios, so that you can understand what happens behind the scenes.

Oracle BAM key concepts

In this section, we will give you a brief review of the key concepts, which will help you to gain a better understanding of BAM Architecture, and more advanced topics.

Data Object

A Data Object is an internal data structure that represents the business data in the BAM server. Like the concept of the database tables, a Data Object has a flat structure, which includes fields with primitive data types, such as string, integer, float, date time, and so on. It can also include calculated fields and lookup fields, which reference to other Data Objects using foreign keys. The Data Object field cannot be defined using complex data types, such as arrays, objects, and so on.

The following screenshot depicts the Employees Data Object layout, which is defined using simple primitive data types, such as string, integer, and timestamp:

Data Objects are managed in the in-memory data cache to meet the needs of high volume data processing, and get persistent in the BAM database schema automatically. In the current release, Oracle BAM supports the following RDBMS as its persistence store: Oracle Database, IBM DB2, and Microsoft SQL server.

More Data Object details will be covered in Chapter 2,Designing your First Data Objects and Reports.

ViewSet

A ViewSet is an object that represents a query to a given Data Object. A ViewSet provides an abstraction layer that decouples the View design and underlying data model, which allows multiple reports to share the same Data Object.

In BAM, a ViewSet is defined using an XML schema, which can contain the following elements:

  • ViewSetID: A unique identifier for one particular ViewSet

  • ViewsetSchema: A schema definition root element which can contain:

    • DatasetField: A field defined in Data Object

    • CalculatedField: A field defined in the ViewSet, but not in Data Object

    • AggregateField: An aggregate, such as sum, average, and so on

To understand this concept, let's take a look at an example that represents the query to the Employee Data Object that you saw before.

In this ViewSet definition, the dataset attribute specifies the database table (_Employees) that is used to persist the Data Object (Employee). The DatasetField and AggregateField elements specify the _Sales_Area data field and the aggregate SUM(_Sales_Number) that can be used to construct the query to the _Employees dataset.

ViewSets can also be sorted, filtered, and applied row-level securities. More topics related to ViewSet will be covered in the next chapter.

View

A View is a rendered result set, which is generated by opening one or a collection of ViewSets. The following is a sample of the 3D bar chart View that shows the number of orders, grouped by its status:

Note

In the current BAM release, a View can only be rendered in the IE browser. The View type specific XSL transformation, which is used to convert report data to DHTML with JavaScript, utilizes proprietary IE features that are not available in other web browsers, such as Firefox, Chrome, and so on.

The list of View types supported in BAM 11g R1 include the following:

  • Charts: Area chart, bar chart, combo chart, funnel chart, line chart, pie chart, SPC chart, and stacked bar chart

  • Lists: Streaming list, updating list, updating ordered list, and collapsed list

  • Action Form

  • Columnar

  • Dashboard

  • Row group, column group

  • KPIs: Arrow, market arrow, dial gauge, range gauge

  • Tab group

  • Excel spreadsheet

You will learn more about these View types in Chapter 4, .

Snapshot

A Snapshot is a query result set created by a ViewSet. When a report is first rendered, a ViewSet is opened to generate the initial result, which is called a Snapshot. The XML representation of the Snapshot is then transformed to DHTML using View-specific XSL, and sent to the client along with JavaScript.

Snapshots are cached in the BAM Server. So, every time the same report is opened in another browser session, the Snapshot will be retrieved, and sent back to the client without generating from scratch, which helps improve the report rendering performance.

Snapshots can be used to generate static Views. To produce dynamic Views, or in other words, to render a report that can reflect the data changes in real time, you will need a push-based mechanism called Active Data, which we will look at next.

Active Data

Active Data is the continuous stream of changes that the ViewSet can produce. Once a report is first rendered with a Snapshot, any subsequent changes to the Snapshot of the ViewSet will be captured at the server side, and pushed back to the client. This is what we call a push-based mechanism.

A push-based mechanism is an efficient way of delivering real-time notifications to the client. Unlike the polling approach, in which clients need to consistently send requests to the server, Active Data allows the server to send the changed data in an incremental way, instead of transferring all the report data to the client, and thus can provide significant advantages, such as the following:

  • Leveraging client and server resources more efficiently

  • Significantly reducing the network traffic

  • Fast rendering report with Active Data

You will learn more about Active Data and push-based mechanisms in the Understanding message flow section, later in this chapter.

ChangeList

A ChangeList is an Active Data Payload that includes the changes produced by a specific ViewSet.

The ChangeList is in XML format, which normally includes the following:

  • index: A sequence number of a ChangeList. When a report is first rendered, a ViewSet will be opened with a Snapshot. Any further Data Object changes may trigger a ChangeList generated with incremental index numbers starting from one. The index will increment by one as any new changes come.

  • viewsetID: A unique identifier for a particular ViewSet, the index, and viewsetID together identify the ChangeList.

  • Group: A container to hold ChangeList records.

  • Record: An XML element representing a row in the updated query result of a ViewSet. A Record contains a transaction type (insert, update, upsert, and delete), Data Object field references, and contents.

Let us look at a ChangeList example, which is produced by a ViewSet of the Employees Data Object.

The key points that you can see from the example are:

  • The ChangeList sequence number is identified by the index attribute value. 1 means this is the first ChangeList for the ViewSet.

  • The Field definition and FormattedValue provide the detailed information for the ChangeList contents.

  • The xnType attribute defined in the Record element specifies the transaction type (update) for the Record of the ChangeList. The other possible transaction type values are insert, upsert, and delete.

Note

Throughout the rest of the book, we will use the terms Active Data and ChangeList interchangeably.