Tuesday, March 24, 2009

BusinessObjects Enterprise Architecture



BusinessObjects Enterprise web services

The web services are server-side components that process request from client applications and communicate these requests to the appropriate server. They include support for report viewing, and logic to understand and direct web requests to the appropriate BusinessObjects Enterprise server.

BusinessObjects Enterprise web services include:

Web Application Server

The Web Application Server uses the BusinessObjects Enterprise SDK (Java or .NET) to interface with the rest of the BusinessObjects Enterprise services. It is responsible for processing requests from the browser, sending Crystal Server Pages (.CSP) and Crystal Web Request (.CWR) requests to the Web Component Adapter, and formatting pages to be returned to the web client. The Web Application Server acts as a gateway between the browser and the rest of the components in BusinessObjects Enterprise.

Web Component Adapter (WCA)

The WCA runs within the application server and provides backward compatibility for applications developed using Crystal Server Pages (.CSP) and Crystal Web Request (.CWR) requests. The WCA also handles OLAP Intelligence view requests.

The management services

The management services manage the BusinessObjects Enterprise system.These services maintain all security information, send requests to the appropriate services, manage auditing information, and store report instances.

The management services are:

Central Management Server (CMS)

The CMS is responsible for authenticating users and groups, and keeping track of the availability of the other BusinessObjects Enterprise services. It also maintains the BusinessObjects Enterprise system database, which includes information about users, groups, security levels, BusinessObjects Enterprise content, and services. The CMS also maintains a separate audit database of information about user actions and manages the BusinessObjects Repository. All servers communicate with the CMS when they start up.

Event Server

The Event Server manages file-based events. It monitors the directory you specified when setting up a file-based event. When the appropriate file appears in the monitored directory, the Event Server triggers your file based event.

Destination Job Server

A user can take an existing report instance and schedule the report under a specified format and destination. The Destination Job Server copies or creates a shortcut of the file and sends it to the selected destination.

BusinessObjects Enterprise storage services:
The storage services are responsible for storing objects and object instances.

The storage services are:

Input File Repository Server

The Input File Repository Server manages all of the report and program objects that have been published to the system. It can store the following files: .RPT, .CAR, .EXE, .BAT, .JS, .XLS, .DOC, .PPT, .RTF, .TXT, .PDF,.WID. Note that .RPT files are stored as report definition files only; they do not contain any data.

Output File Repository Server

The Output File Repository Server manages all of the report instances generated by the Report Job Server and the program instances generated by the Program Job Server. It also manages instances generated by the Web Intelligence Report Server and the LOV Job Server. It can store the following files: .RPT, .CSV, .XLS, .DOC, .RTF, .TXT, .PDF, .WID.. Note that .RPT and .WID files are stored as reports/documents with saved data.

Crystal Reports Cache Server

The Crystal Reports Cache Server handles viewing requests from the Web Application Server when the Crystal Reports viewer preference is set to ActiveX, Java or DHTML viewers.
The Cache Server maintains a folder of cached report EPF files, determines if a request can be fulfilled with a cached report page or pass the request to the Crystal Reports Page Server when no cached report page exists. The benefit of caching is that BusinessObjects Enterprise doesn’t have to generate .epf files each time a page is viewed. Therefore report pages that have been cached can be shared among users.

Desktop Intelligence Cache Server

The Desktop Intelligence Cache Server handles viewing requests for Desktop Intelligence documents and manages the viewable pages created by Desktop Intelligence Report Server.

BusinessObjects Enterprise processing services

The processing services access the data and generate reports. This is the only tier that interacts directly with the databases that contain report data.

Which services become involved in processing an object is determined by whether the object is being scheduled or viewed on demand. Viewer choice also plays a role in determining which servers are involved in object processing.

For scheduling requests

The schedule processing services are:

Program Job Server

The Program Job Server processes program objects, as requested by the CMS, and generates program instances.

Crystal Reports Job Server

The Crystal Reports Job Server processes report objects, as requested by the CMS, and generates report instances.

Destination Job Server

If you configure a job server to process report objects, or send objects to instances to specified destinations, it becomes a Destination Job Server. A Destination Job Server processes requests that it receives from the CMS and sends the requested objects or instances to the specified destination.

If the request is for an object, the Destination Job Server retrieves the object from the Input File Repository Server. If a report or program instance is requested, the Destination Job Server retrieves the instance from the Output File Repository Server.

Web Intelligence Job Server

The Web Intelligence Job Server receives schedule requests from the CMS and then forwards them to the Web Intelligence Report Server for processing.

Web Intelligence Report Server

The Web Intelligence Report Server processes Web Intelligence report requests.

Both the Program Job Server and the Crystal Reports Job Server retrieve the file to be run from the Input File Repository Server. Run the report or program, and then save the processed file to the Output File Repository Server as an instance.

List of Values (LOV) Job Server

The List of Values Job Server receives schedule requests from the Business View manager and processes scheduled List of Values objects to populate them with values that are retrieved from a database.

Desktop Intelligence Job Server

The Desktop Intelligence Job Server processes scheduling requests it receives from the CMS for Desktop Intelligence documents and generates the instance of the Desktop Intelligence document.

Desktop Intelligence Report Server

The Desktop Intelligence Report Server processes viewing requests for Desktop Intelligence documents and generates the viewable pages of the Desktop Intelligence document.

Connection Server

The Connection Server in XI R2 is a service that can be administered and configured through CCM (Central Configuration Manager) and the CMC (Central Management Console). The Connection Server is responsible for the database connectivity to access data. It is invoked when users want to edit and view Desktop Intelligence documents through InfoView in 3-tier mode. It is also used by some EPM services.

The Connection Server libraries are present on the Web Intelligence Report Server, Desktop Intelligence Report Server and Web Intelligence Job Server which allows these services to query the database directly without communicating with the Connection Server service.

For viewing requests

The viewing processing services are:

Crystal Reports Page Server

The Crystal Reports Page Server is responsible for responding to page requests by processing reports and generating Encapsulated Page Format (.EPF) pages.The Crystal Reports Page Server retrieves data for the report from the latest instance or directly from that database. After it has generated the report and converted it to .EPF, the Crystal Reports Page Server then sends the .EPF file to the Crystal Reports Cache Server.

Web Intelligence Report Server

The Web Intelligence Report Server is responsible for generating viewable pages. The Web Intelligence Report Server obtains page creation requests from the Web Application Server and then communicates with the Input File Repository Server in order to obtain copy of the .WID file and the universe definition.

Report Application Server

The Report Application Server (RAS) processes reports that users view with the Advanced DHTML viewer. The RAS also provides the ad hoc reporting capabilities that allow users to create and modify reports over the Web.

The RAS is very similar to the Crystal Reports Page Server: it too is primarily responsible for responding to page requests by processing reports and generating EPF pages. However, the RAS uses an internal caching mechanism that involves no interaction with the Crystal Reports Cache Server.

As with the Crystal Reports Page Server, the RAS supports COM, ASP.NET, and Java viewer SDKs. The Report Application Server also includes an SDK for report creation and modification, providing you with tools for building custom report interaction interfaces.

Thursday, December 11, 2008

Differences between BO XI R2 and BO XI 3.0

1)WebI has a desktop version now.
Now you will be able to save your webI reports on desktop as a client tool has been introduced for the creation of WebI Reports. No more issues of global license. You just need a WebI license to create a WebI Report

2)The major improvement of XI 3.0 over XI R2 is architecture/administration-related:
- The user-interface of the Central Management Console (CMC) has improved: it mimics the Windows Explorer interface with its directory trees and pull-down menus;
- The new 'Security Query' in CMC enables administrators to search for specific objects;
- Auditing services comes now standard with CMC - No additional licence-costs are required anymore;
- Report-scheduling comes now standard with CMC. Also schedule options for WebIntelligence, Business Objects & Crystal Reports have improved so it matches BO6's BroadCastAgent Publisher;
- The new 'Federation'-option enables you to replicate servers on different locations;
- The 'Server Intelligence Agent' (SIA), a program that starts monitors and stops servers, is added. It makes the Enterprise-system not dependent anymore on a single CMS;
- It is now possible to create and add your own default security-level next to the existing 'View on Demand', 'Full Control', et cetera;
- The Import Wizard, used for importing objects from different environments and earlier BO versions, is extended and now also allows to import documents on their name only instead of the internal CUID-key.

There is still room for lots of improvements: version-control of objects is still non-existent, event-based scheduling is not well-supported, user-administration cannot be done batchwise and the general user-interface of CMC, despite having been improved, is still a major drawback compared to BO 6 in terms of userfriendliness and understandability.

3)There are optional prompts , i think thsi feature added will remove 'All ' in list of values other new feature is we can see what all data is changed from previous run of report

4)Here are few more differences from design point of view.
The new feature in Webi is the smart measure:
It is a measure that delegates its aggregation calculation to a database. Smart measure performs calculation that the standard Webi aggregation mechanism cannot calculate correctly.

E.g: Complex averages,such as average of a percentage,ratios,etc.. Smart measures are available for all relational and OLAP data sources.

It provides some new Querying functions:
-Delegated LOV search-It delegates the search of values in an LOV to the database.
Features:
1. Prevents LOV from being loaded automatically.
2. Prevents the report user from refreshing the LOV
3. Restricts the data set returned.
4. Limits the load time to one that the report user finds acceptable

-Optional Prompt-applies only to report level prompts not universe prompts.

-Percent rank
It allows the report user to rank a percentage of dimension volume "sliced" on another dimension. This feature is available only on Java report panel.

-Sampling
The query sampling returns specified number of items and selects them randomly.

-Forcemerge

-Data Tracking:
This feature allows a report user to highlight the values that have changed since previous refresh for any level of aggregation.

5)The Designer part of XI3 is enhanced so that we can create universes based on Stored procedures in database which can be easily accessed by business users for generation of webi reports through infoview. There is a huge difference between XIR2 and XI3 infoview in terms of infoview customization.

6)Multilingual support for metadata is now available with the introduction of "Translation Manager".This helps avoiding the rework in replicating the universe for different languages. But this is restricted to only WebIntelligence reports,where by the language setting can be choosen from Infoview settings for "preferred viewing Locale"

7)Few more new features of BO XI3
Support for Nested Derived Tables
Compulsory filters at universe and class level
Custom Drivers
Enhanced SAP BW support

8)There is a security configuration improvement that I consider very helpful. the option to apply security to one object but avoiding to spread it to the lower levels. So you do not have to broke inheritance from each object on the next (lower) level to have this working.

Tuesday, September 16, 2008

ODS Vs. Data Warehouse

ODS Vs. Data Warehouse

Operational Data store

- Data Focused Integration From Transaction Processing Focused Systems

- Age Of The Data is Current, Near Term (Today, Last Week’s)

- Primary Use: Day-To-Day Decisions Tactical Reporting Current Operational
Results
- Frequency Of Load: Twice Daily , Daily, Weekly

Datawarehouse

- Subject Oriented,Integrated,Non-Volatile,Time Variant

- Age of the Data is Historic (Last Month, Qtrly, Five Years)

- Primary Use: Long-Term Decisions Strategic Reporting Trend Detection

- Frequency of load : Weekly, Monthly, Quarterly

Monday, July 28, 2008

Desktop Intelligence Vs WebIntelligence in XI R2

Desktop Intelligence Vs WebIntelligence in XI R2

General Look & Feel:

Entering Deski/Webi:

For Deski:
Wizard: Universe vs. Other Data Source
4 wizard options (cell, table, crosstab,chart)
Many Microsoft formatting toolbars
For Webi:
Universes (Or OLAP) Only
No personal data files (Excel, XML, etc)
No real wizard
Limited Microsoft formatting toolbars
Interactive Mode: Can Enter By accident

Query Panel:

For Deski:

Data Tab
When editing query, does add new objects to the report
Radial button for display of classes and object or predefined conditions
Button For: Save & Close/View/Run/Cancel
View Button for look at data and other functions
Add Query From Report Manager Window
Right Click in white area in Data Section
Insert New Data Wizard pops up

Report Manager: Click radial button to sort by data provider
Edit only 1 query at a time
User Objects can be created
View SQL

For Webi:
Data Tab
When editing existing query, does NOT add in to the report
Edit Query/Edit Report Icon
Properties tab for queries
Predefined conditions integrated together with classes and objects
Run Query Button on top (Only 1 option)
Can selectively run only 1 instead of all queries (Refresh too)
No View Button
No statistics/view data options
Can hide the Query Filter Box
Add Query Button (To open up another query panel)
Creates a Query Tab in Query Window
Has mini speed menu for those Tabs

Report Manager: Click down arrow to sort by query
Can click on query tab to edit directly (jump around)
No regular templates option
No User Objects capability
View SQL now available
Scope of Analysis Option (Click On/Off)
Appears on bottom of query panel (Below Query Filters Box)
Creating Query Filters (Conditions) more convenient: List of Operators and some Operand settings displayed within Query Filter-Builder.
No ‘Show List of prompts’ choice in Query Filters.
(Properties?) Tab next to Data Tab has box for changing retrieval record limit or retrieval time.


Report Manager:
For Deski:
Slice & Dice Panel
Format Templates
No drag and drop templates
Microsoft Formatting Toolbars
No Report Filter Window
Drilling: Must Grab All dimensions down path, or use scope of analysis

For Webi:
No Slice & Dice Panel
“Templates” Option (Drag and Drop)
No Format Templates
No Query on Query/Subquery Calc
No Grouping (Clip Icon)
No hide Objects
No Count All
No Fold option
Dragging/Dropping within Report Window very easy.
Can drag objects directly from Results Object window to Query Filters
No personal lov’s
Limited Microsoft Formatting Toolbars
Right Click on Edge of Report: Turn To Option
4 Report Options + 1 Full Chart Options as well
Report Filter Window Option (Appears on top of display)
To Remove Calcs: Drag Off or Structure Mode or Right Click/Remove Row or Column
Custom Sorts: But less sorting options
Breaks: Less Property Options
Appear on left side via properties tab (Must drill down)
Ranking: But less property options
Properties Tab on Left:
Have to click on option to see pull down’s
Contexts now different
Prompting options far more powerful and easy to use
Formulas/Variables:
Includes most Deski functions now
IF is a Function (Not a command): Like Excel
Display Format: More Difficult
Tabs on Left: Data/Functions/Operators
Formula on Right/Bottom
Name/Definition on Right/Top
Operators list remains fixed
Subquery Done Via Toolbar Option (Not in conditions)
Linking Multiple Data Providers: Merge Dimensions
New Toolbar Option
Easy to Use Menu
Drilling: Will Drill via New Query to lower level
Snapshot more limited

Friday, July 25, 2008

Universe and Report Design Guidelines and Practices

The document is a compilation of learnings that can be used as Guideline and Best Practices for Report & Universe Design.

Universe Design: Guidelines & Best Practices

Introduction

Gives the basic guidelines/practices that could be followed in any Universe Design

Connection

--> When using a repository, always define a SECURED Connection to the Database.
--> Use the Universe Property panel to define the Universe Use and Version (last update).
--> Define the Connection Name that helps for Easy Database Identification.

Class

--> Define Universe Classes / Subclasses as per the business logic & Naming Convetion.
--> AVOID Auto Class generation in the Designer.
--> Give description for the use of each Class/SubClass.
--> Avoid deep level of subclasses as it reduces the navigability and usability.

Objects

--> Object to be used in calculation HAS to be Measure Objects.
--> Object to be used in Analysis HAS to be Dimension Objects.
--> Give description for the use of each Object.
--> Include an Eg. In the description for Objects used in LOV.
--> Do not set LOV Option for each Dimension. Use it only for required Objects, esp. those to be used in Report Prompts.
--> Keep "Automatic Refresh before Use" option clicked for LOV Objects:
--> If LOV is editable by the user, provide a significant name to List Name under object properties.
--> All the measure objects should use aggregate functions.
--> Avoid having dupicate Object names (in different classes).

Predefined Conditions

--> Give description for the use of each pre-defined condition.
--> If Condition is resulting in a Prompt, make sure associated Dimension Object has LOV.

Tables

--> Alias Tables should be named with proper functional use.
--> Arrange the tables in the Structure as per Business/Functional logic. This helps other Universe users in understanding.

Joins & Context

--> AVOID keeping hanging (not joined) tables in the structure.
--> AVOID having joins that are not part of any context.
--> Give proper functional naming to the context for easy identification.
--> AVOID having 1:1 joins.

Import/Export

--> Make sure of the path for Import, which usually is always in the Business Objects' Universe folder.
--> LOCK the universe if Administrator/Designer does not want any user to Import/Export.
--> DO "Integrity Check" before Exporting the Universe.
--> Good to have correct folder structure , so that you can have a secured environment.

Migration

--> Better take a backup of the repository and then proceed with the migration in BO5.X and BO6.X Version

Report Design: Guidelines & Best Practices

Introduction

Gives the basic guidelines/practices that could be followed in any Report Design.

General

--> Give meaningful names for the report tabs --> For complex reports, keep an overview report tab explaining the report --> Use the Report properties to give more information about the report
Dataproviders
--> Each Dataprovider should be given a name that reflects the usage of the data its going to fetch.
--> Select Objects in such a fashion that the resulting SQL gives a hierarchial order of Tables. This helps to achieve SQL Optimisation.
--> Avoid bringing lot of data into the report which will unnecessarily slow down the report performance.

Report Variables

--> Follow the naming convention of "var_" as prefix to each report level variable. This helps to identify Report Variables different from Universe Objects.
--> Each variable that carries a calculation involving division should have IF <> 0 THEN . This avoids display of #DIV/0 errors in the report.
--> Avoid having deep nested calculations which will slow down the performance of the report.

Report Structure

--> Make use of Report Templates when having most of the report with similar structures. This makes the work to move faster and consistant across.

Report Formats

--> All the reports should have page layout set in a printable manner. (Landscape/Portrait, Fit in 1 page wide or/and 1 page tall are different options).
--> All the reports should have page numbers in the footer.
--> All the reports should have Last Refreshed Timestamp in the header or footer.
--> All the above can be standardized by using templates

Report CELL Formats

--> All Numeric should be given Number format as per the language Eg. For German #.##00 for English #,##00.
--> Number cells should have a Right Alignment while Text cells should have Left Alignment.
--> Cell showing Percentage should carry the % text (either Column Header or in each cell).
--> Indenting should ALWAYS be done using the Indenting Tool and NOT by using " ".