Top Banner
Page 1 of 26 For Internal Use Only Process Flow: View a Web Intelligence document instance (HTML viewer) Step: 1 The Web Client sends a request in a URL via the Web Server to the Web Application Server Map Process Web Client In an HTML 4.0 compliant browser, InfoView provides a list of Web Intelligence Document Instances (scheduled Web Intelligence documents) for which a user has view permissions. In an HTML frameset, selecting a Web Intelligence document instance is a matter of clicking on the hyperlinked report name. JavaScript initiates an HTTP GET request and appends several arguments to the URL including the document instance’s InfoObject id. The id is used to uniquely identify this instance from all others. The following requests a Web Intelligence document using the ASP.Net- based InfoView GET /businessobjects/Enterprise115/InfoView/Webi/webi_view.asp
26
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 2. ViewInstance

Page 1 of 26

For Internal Use Only

Process Flow: View a Web Intelligence document instance (HTML viewer)

Step: 1 The Web Client sends a request in a URL via the Web Server to the Web Application Server

Map

Process Web Client

In an HTML 4.0 compliant browser, InfoView provides a list of

Web Intelligence Document Instances (scheduled Web Intelligence

documents) for which a user has view permissions.

In an HTML frameset, selecting a Web Intelligence document

instance is a matter of clicking on the hyperlinked report name.

JavaScript initiates an HTTP GET request and appends several

arguments to the URL including the document instance’s

InfoObject id. The id is used to uniquely identify this instance from

all others.

The following requests a Web Intelligence document using the

ASP.Net- based InfoView

GET

/businessobjects/Enterprise115/InfoView/Webi/webi_view.asp

Page 2: 2. ViewInstance

Page 2 of 26

For Internal Use Only

x?id=3542&instId=3542&windowProperty=fullscreen=yes,loc

ation=no,scrollbars=yes,menubars=no,toolbars=no,resizable=y

es&shortcutID=2757 HTTP/1.1

Web Server

A 3rd party Web Server, typically Internet Information Server (IIS)

or Tomcat Apache, logs the page request and forwards it to the Web

Application Server.

Web Application Server

The Web Application Server is a collection of files written by

Business Objects in either Java or ASP.Net. The selected solution is

determined by the choice of Web Server as Microsoft’s Internet

Information Server supports ASP.Net and Tomcat Apache

processes Java pages.

Tools Web Client

AppSight

In circumstances where observing the user interacting with their

system is not possible, AppSight is a tool used to record users

interacting with their system. Similar to the black box recorder on

an airplane, it records the user’s movements and choices and can

later be played back by support personal to resolve issues.

http://www.appsight.com

HTTPAnalyzer

HTTP Analyzer is a sniffer tool that monitors and inspects

HTTP/HTTPS traffic in real time. It displays a wide range of

information, including: header, content, cookies, query strings, post

data, request and response stream, and redirection URLs.

http://www.httpanalyzer.com

Web Server

Most vendors provide a set of monitoring tools for their Web

Servers. Both Internet Information Services (IIS) and Apache

Tomcat provide log files as a means to capture their respective

workloads, though the level of detail and options do differ.

Page 3: 2. ViewInstance

Page 3 of 26

For Internal Use Only

Internet Information Server Log File Location

[Install Path]\System32\Logs\

By default, new log files created daily, though the size, occurrence

and details recorded are configurable through the IIS Manager.

Apache Tomcat Logs File Location

[Install Path]\Program Files\Business Objects\Tomcat\Logs

The Administration utility allows the Administrator to set the level

in addition to the location of the log files.

Page 4: 2. ViewInstance

Page 4 of 26

For Internal Use Only

Configuration InfoView relies on an HTTP Session to establish a valid connection

with Servers such as the CMS.

Configuring HTTP Sessions

Used to track the movement and progression of a Web Client

through a series of page requests, which are by nature stateless,

these HTTP Session are configurable. The shorter the time value,

the fewer system resources are held. However too short a number

may affect the length of time a method call waits before timing out

during the processing of a Java or ASP.Net page as well as limiting

the the length of time a Web Client has to work with a document

before requiring the Web Client to sign in once more.

HTTP Session (ASP.Net): The default value of 20 minutes of

inactivity can be changed by editing the Web.Config file and

altering the Session element.

HTTP Session (Java): The web.xml file allows editing the default

time out of the HTTP session by changing the checkInterval

element.

Page 5: 2. ViewInstance

Page 5 of 26

For Internal Use Only

Step: 2 The Web Application Server receives a request to view a Web Intelligence Document instance.

Map

Process Web Application Server

The Web Application Server is comprised of a series of Java-based or

ASP.Net files running on a 3rd party Web Server. While the files that

initiate the processing differ between Java and ASP.Net (View.do vs

webi_view.aspx), both viewers are written to process requests for Web

Intelligence Documents.

The viewer page pulls the Document Instance InfoObject ID from the

querystring (objID in jsp/id in ASP.Net) and use the ID to call a

component that invokes the Central Management Server (CMS).

Java

GET

/businessobjects/enterprise115/desktoplaunch/InfoView/CrystalEnterprise_Webi

/view.do?objId=2757&logonToken=VW2K3R2PP@3600JFifqFGhMF2HQhOl

3597JpO3SnaZEBgfIjaBONEOFF HTTP/1.1

Asp.net

GET

/businessobjects/Enterprise115/InfoView/Webi/webi_view.aspx?id=2757&wind

owProperty=fullscreen=yes,location=no,scrollbars=yes,menubars=no,toolbars=n

o,resizable=yes HTTP/1.1

If the component is unable to connect to the Central Management

Server (CMS) an error is returned and returned to the client.

Tools Business Objects trace

Page 6: 2. ViewInstance

Page 6 of 26

For Internal Use Only

Adding a command line trace parameter to the CMS instructs the server

to log its actions. With a timestamp, the trace shows a range of

information including method calls, InfoObject id’s pulled from

memory, or calls are made to the System Repository.

The following are selected line items from a trace log after requesting a

Web Intelligence document.

CInfoStoreSubsystem::Query(proc=Select SI_ID, SI_KIND from

CI_INFOOBJECTS WHERE SI_ID=2862,chk=false,srv=true,qry=false): Start

Object was found in cache. obj ID=2862

Step: 3 The CMS checks the system Database to verify user rights.

Map

Process If the information about the Web Intelligence Document Instance is

not already in memory, the Central Management Server (CMS) uses

the document’s InfoObejct ID to query the system repository using a

SQL syntax. The Central Management Server (CMS) retrieves a set of

metadata including view permissions.

Tools Business Objects trace

Adding a command line trace parameter to the CMS causes the server

to log the actions it performs. Writing a Timestamp and ProcessID, the

Page 7: 2. ViewInstance

Page 7 of 26

For Internal Use Only

trace shows a range of information including method calls and when

the CMS interacts with the System Repository.

The following is an example from the trace file.

Security::IsAllowed( U=12,R=3,Ob=2862,Own=12,T=262,

bLogonFromServer=0 ) : hard-coded result=true

Querytiming Parameter

This additional CMS command line parameter captures queries made

to the System Repository from the CMS.

The following are selected lines from the log file generated by the

querytiming parameter:

SELECT SI_PROGID, SI_FILES FROM CI_INFOOBJECTS,

CI_APPOBJECTS WHERE SI_ID = 2862

SELECT SI_MACHINE, SI_MACHINECHOICE from CI_INFOOBJECTS,

CI_APPOBJECTS WHERE SI_ID=2862

SELECT SI_TITLE, SI_UPDATE_TS, SI_TIMESTAMP, SI_INSTANCE

FROM CI_INFOOBJECTS WHERE SI_ID=2862

3rd Party Tracing

As the System Repository can be installed on a several platforms, the

vendor’s database solution may also come with its own tracing

utilities. For example, Microsoft provides a utility called Profiler that

captures server load to SQL Server. Profiler displays SQL Statements

in addition to other metrics such as statement duration, paging,

deadlocks and locking.

Page 8: 2. ViewInstance

Page 8 of 26

For Internal Use Only

Step: 4 The CMS sends a response back to the Web Application Server to confirm the user rights.

Map

Process Metadata about the Web Intelligence Document is returned to View.do

(Java) or webi_view.aspx (ASP.Net). Additional information, including

Export and Refresh permissions are returned. If an error occurs, the

exception is caught and displayed in a client pop-up window.

A redirect is initiated to ViewDocument.aspx (ViewDocument.jsp in

Java) with a number of arguments appended to the URL (querystring).

The following are examples of java and asp.net solutions.

Java:

GET

/businessobjects/Enterprise115/InfoView/Webi/viewer/ViewD

ocument.aspx?id=2757&iventrystore=widtoken&kind=Webi&

ViewType=H&entSession=CE_ENTERPRISESESSION&lang

=en&objRights=EXR&windowProperty=fullscreen%3dyes%2

clocation%3dno%2cscrollbars%3dyes%2cmenubars%3dno%2

ctoolbars%3dno%2cresizable%3dyes HTTP/1.1

ASP.Net:

GET

/businessobjects/enterprise115/desktoplaunch/viewers/cdz_adv

/viewDocument.jsp?id=2757&kind=Webi&iventrystore=widto

ken&ViewType=H&entSession=CE_ENTERPRISESESSION

&lang=en&objId=2757&logonToken=VW2K3R2PP@3634JS

Page 9: 2. ViewInstance

Page 9 of 26

For Internal Use Only

NAdk3I50j67sL03631JatuZwFuLaL8R6dmONEOFF

HTTP/1.1

Tools HTTPAnalyzer

HTTP Analyzer is a sniffer tool that allows you to monitor and inspect

HTTP/HTTPS traffic in real time. It displays a wide range of

information, including: header, content, cookies, query strings, post data,

request and response streams, redirection URLs and more.

http://www.httpanalyzer.com

Page 10: 2. ViewInstance

Page 10 of 26

For Internal Use Only

Step: 5 The Web Application Server sends a request to the Web Intelligence Report Server requesting the report page of the instance.

Map

Process The ViewDocument page continues to build the look and feel of

the page but ultimately requests a processing page

(DHTMLView.aspx for ASP.Net, ViewCDZDocument.jsp for

Java) to build the contents of the report.

Report Engine

To work with a report, an instance of the Report Engine is

required. Created from the Enterprise Session, the Report Engine

is reused during the lifetime of the Enterprise Session (also

known as a Logon Session or User Session). The Enterprise

session is established when first logging into InfoView, and it

contains a range of user and security settings.

The Report Engine creates a proxy SDK Document Instance after

locating the Web Intelligence Servers through the SDK or OCA

library. It is upon creating the SDK Document Instance that the

Web Intelligence Session is created.

Web Intelligence Session

Page 11: 2. ViewInstance

Page 11 of 26

For Internal Use Only

A Web Intelligence Session (also known as a Cadenza Session or

Document Session) is initialized. Created specifically for that

document, the session is not reused.

The Web Intelligence Session is used for:

• Creating and managing temporary folders on the Web

Intelligence Server

• Storing local copies of Web Intelligence Document (.wid)

files

• Storing Universes

A Web Intelligence Session is dependent upon an Enterprise

Session. Considered a child session, the Web Intelligence Session

inherits user and security settings from its parent Enterprise

Session.

When a Session InfoObject is created, the license count is

incremented.

Caching

The Web Intelligence Server checks its cache to see if a version

of the document exists. If one does, the report is returned to the

client by way of the Web Application Server.

Two caches exist: a session and shared.

A session cache (also known as a private cache) is used when

• a shared cache is not enabled

• pages are refreshed

• real-time functions are used.

A sub folder is created and named after storage token under the

sessions folder. This new folder holds a set of temporary files that

contains both formatting and data for the report. The folder is

cleared periodically and automatically deleted, along with all

other session sub folders, when the Web Intelligence Report

Server is stopped.

Page 12: 2. ViewInstance

Page 12 of 26

For Internal Use Only

A shared cache is populated and used by other document requests

if a Session cache has been refreshed and the shared cache

configuration option is enabled. The folder contains a copy of the

.wid file stored from the Input File Repository Server.

Tools Business Objects trace

Adding the command line trace parameter to the Web Intelligence

Report Server causes the server to log specific actions. The –trace

includes a range of information including back bone related

entries during the initialization and shutdown, file and folder

creation/ access and method calls.

The following is an excerpt from the trace file showing

points of file creation and folder access

Writing File------>:2862.wid

Writing PublishDate-->:1172691350

open o_read \Data\storage\docs\00000049\00000003.wid

Classic Webi Trace

In a pipe delimited format, the Classic BO Trace is used to record

in explicit detail, the operations of the Web Intelligence Report

Server. Once the tracing levels have been set, the trace will

identify a range of operations including working with sub

Page 13: 2. ViewInstance

Page 13 of 26

For Internal Use Only

components and creating and opening files.

Working with this trace requires a BO_Trace.ini file to be created.

Three optional environment variables may also be set:

Environment Variables

BO_TRACE_CONFIGDIR = c:\mypath

BO_TRACE_CONFIGFILE=c:\mypath\BO_TRACE.INI

BO_TRACE_LOGDIR= C:\MyLogFolder

BO_TRACE.INI

active=true;

important=’<<’; (options are <<,<=,==,>=,>> where << logs

informational lines to >> which is critical/error lines)

size=10000;

keep=true;

The following is an excerpt from the classic trace file showing

the creation and folder access

Writing File------>:2862.wid

Writing PublishDate-->:1172691350

open o_read \Data\storage\docs\00000049\00000003.wid

FileMon

Sysinternals provides a range tools to analyze a system. FileMon

is a tool that monitors in real time the files that have been

accessed. FileMon captures the creation of files in the private

and/or shared cache.

http://www.sysinternals.com

Configuration Caching Configuration Options.

The following default values are assigned to the following Web

Intelligence Report Server properties upon installation. The values

are optimized for an installation on a single machine with up to

twenty simultaneous client connections.

Page 14: 2. ViewInstance

Page 14 of 26

For Internal Use Only

Universe Cache Size: Maximum number of universes in the

public cache. When the number is exceeded the older cached

file is deleted

Enable Viewing Caching: Controls the rendering (public)

document cache. The session (private) cache always exists.

Enable Real Time Caching: Allows cache to be generated

when user views the document. If not, scheduling needs to be

used.

Document Cache Duration: Cleans the cache when it becomes

obsolete (in minutes)

Document Cache Size: Cleans the cache when it becomes the

configured size.

Document Scan Interval: How often the cleaning thread is

activated. This example is every 2 hours

Maximum Number of Downloaded Documents To Cache: sets

the Maximum number of .wid files to be downloaded from the

repository.

Page 15: 2. ViewInstance

Page 15 of 26

For Internal Use Only

Maximum Binary File Size: The maximum size that can be

exchanged between the server and the SDK (Binary).

Maximum Character File Size: The maximum size that can be

exchanged between the server and SDK (Character).

Page 16: 2. ViewInstance

Page 16 of 26

For Internal Use Only

Step: 6 The Web Intelligence Report Server requests a report from the Output FRS

Map

Process First querying the repository for the location and name of the report,

the Web Intelligence Report Server then requests the .wid report from

the Output File Repository which is streamed to the web Intelligence

Report Server if it isn’t already located in the Session cache.

The .wid file contains the constituent files necessary to construct the

output that will be later rendered and returned to the client.

Web Intelligence Document File Structure

The .wid file is a compound file.

Readable with a zip file editor, the logical structure of a .wid file is a

tree structure organized as follows:

Page 17: 2. ViewInstance

Page 17 of 26

For Internal Use Only

The root folder is the .wid name.

Nodes represented by folders can be accessed by direct address (API).

Each node corresponds to a Web Intelligence Report Server

(WiReportServer) macro component including: C3 for Cube, CDZ for

WiReportServer, Drill for Drill Engine, RE or Repeng for Report

Enginge. Leaves are structured binary streams that must be traversed

sequentially.

The following sections describe each node of the file.

Data Root

Node and/or leaf name Description

Data (root)

BO_Checksum (leaf) Data insuring integrity of the file.

C3 for Cube (node)

Node and/or leaf name Description

C3 (node) Used by Cube.

DATASOURCES (C3 sub- DataSource objects: names, hierarchies…

Page 18: 2. ViewInstance

Page 18 of 26

For Internal Use Only

node) contained in the document.

DATAPROVIDERS (C3 sub-node)

Description and data coming from DataProviders or queries.

Description (leaf) Main C3 document version (currently 2.0) and a string tag “cdzDocument”.

Document (leaf) Document properties: some flags including autoSynchronize=on/off.

DocumentFormula (leaf) List of anonymous formulas found in document reports. (User may set a formula without giving name.

DocumentVariable (leaf) List of variables, tokenized form, also called serial form (format is locale independant).

DocumentVariable_Data (leaf) Domain for variables having custom sort.

DATASOURCES (C3 sub-node)

Node and/or leave name

Description

DATASOURCES node DataSource objects: names, hierarchies contained in the document.

DSManager (leaf) Number of DataSources, last key id (for key generation).

For each DataSource (DS):

• DSKey(DS0, DS1, …DSn)

• DS type (QT) and universe connection string=”Repold=12;UnivId=…)

• Hierarchies contained by the DS: “DS0.DH5”

• Database connection string=”4;ODBC17;SQLServer…”

• Others DS info such as: repold, name, long name, comments…

• DS properties: max =rowfetched, maxfetchtime

• Database (DB) date format, DB number format, DB decimal separator, maxOperandsForInList.

• Flag: allowMultiSelectContext.

DATAPROVIDERS (C3 sub-node)

Page 19: 2. ViewInstance

Page 19 of 26

For Internal Use Only

Node and/or leave name Description

DATAPROVIDERS (C3 sub-node)

Data coming from DataProviders…

DP0 (DataProviders sub-node)

Name of the DataProvider used in the document. In case of multi DataProviders there will be several storage nodes DP0, DP1...

Description (leaf) .wid version.

DPManager (leaf) List of the Data Providers.

SynchroManager (leaf)f For each synchronization: name, key and source objects.

SynchroManager_Data (leaf) For each synchronization object having custom sort: domain (similar to DocumentVariable_Data).

DPO (DATAPROVIDERS sub-node)

Node and/or leave name

Description

DP0 (DataProviders sub-node)

Name of the DataProvider used in our document. In case of multiple Dataproviders there will be several nodes DP0, DP1...

DP_Data (leaf) Query result also called local cube. Contains Node set of the domain. Node set contains indexes for dimension(compressed with RLE), or hard-coded values for the measures: DP_Key, DP_Key value, Number of values, frequency of the values cube name, node set (rows, columns, indexes…).

DP_Generic (leaf) XML of the query.

Page 20: 2. ViewInstance

Page 20 of 26

For Internal Use Only

For each query: query description, query xml format, server parameters, local DS information (DSx.Dpy object description)

DP_QT (leaf) Information related to the query execution:prompts description, SQL query expression tree (binary format).

CDZ for WiReportServer (node)

Node and/or leave name Description

CDZ (node) Used by WiReportServer. Contains information related to the workflows.

SESSION (CDZ sub-node) Information linked to the document state. Document state is linked to the Query Specification and to the Report Specification.

_PROPERTIES (leaf) Document properties and options: name,description… DP information is also duplicated (DP list, queries name).

MDPWORKFLOWINFOS (leaf) Information linked to the current command execution. Information is used to resume an interrupted command in case, for example, of prompt or context execution.

SESSION (CDZ sub-node)

Node and/or leave name

Description

SESSION (CDZ sub-node)

Information linked to the document state, which state is linked to the Query Specification and to the Report Specification.

State (leaf) Document state can be:

• Initial (document is just created)

• Created DP

• Defined query

• Waiting for Context or Prompt execution

• Executed query

• Defined report.

Page 21: 2. ViewInstance

Page 21 of 26

For Internal Use Only

DRILL for Drill Engine (node)

Node and/or leave name Description

DRILL (node) Used by Drill engine.

Drill_Infos (leaf) Drill Infos such as Drill Setting, and per report: Report_Id, Drill_Bar. Per Drill_Block: Block_Id and Drill_Hierarchies. Per Drill_Hierarchies: Dim_Key and Hier_Key. Drill_Dimensions. Query filters, Drill parameters.

RE for Repeng (Node)

Node and/or leave name Description

RE (node) Used by Repeng.

DOCSPEC (leaf) XML of the Report Specification and formula tokenized form. Also called serial form (cube team).

Tools Business Objects trace

Adding the command line trace parameter to the Web Intelligence

Report Server causes the server to log the actions it performs. Writing

a Timestamp and ProcessID, the trace shows a range of information

including file access and shared or private session folder access.

The following is an excerpt from the classic trace file showing the

creation and folder access

:cached output found

Reading File------>:2863.wid

Reading PartID-->:Blob1.xml.

Classic Webi Trace

In a pipe delimited format, the Classic BO Trace is used to record in

explicit detail, the operations of the Web Intelligence Report Server.

Once the tracing levels have been set, the trace will identify a range of

operations including working with sub components and creating and

opening files.

Page 22: 2. ViewInstance

Page 22 of 26

For Internal Use Only

Once the tracing levels have been set, the trace will identify a range of

operations including working with sub components and creating and

opening files. Errors in the workflow can also be easily found as they

are tagged with |E|.

Working with this trace requires a BO_Trace.ini file to be created and

three environment variables to be set:

Environment Variables

The following environment variables can be set to override the

default location ([windows install path]\system32) of the log file.

BO_TRACE_CONFIGDIR = c:\mypath

BO_TRACE_CONFIGFILE=c:\mypath\BO_TRACE.INI

BO_TRACE_LOGDIR= C:\MyLogFolder

BO_TRACE.INI

active=true;

important=’<<’; (options are <<,<=,==,>=,>> where << logs

informational lines to >> which is critical/error lines)

size=10000;

keep=true;

Page 23: 2. ViewInstance

Page 23 of 26

For Internal Use Only

Step: 7 The Web Intelligence Report Server sends the output to the Report.jsp/Report.aspx page in the Web Application Server.

Map

Process Using the files contained in the .wid file, the Web Intelligence Report

Server delegates the stages of initialization, retrieving and rendering to

different components.

The Report Specification, an xml description of the reports header,

footer and body is used by the Report Engine, a sub component of the

Web Intelligence Report Server, to generate the output of the report.

Page 24: 2. ViewInstance

Page 24 of 26

For Internal Use Only

Tools

Tools Business Objects trace

Adding the command line trace parameter to the Web Intelligence

Report Server causes the server to log the actions it performs. Writing

a Timestamp and ProcessID, the trace shows a range of information

including file access and shared or private session folder access.

The following is an excerpt from the classic trace file showing the

creation and folder access

:cached output found

Reading File------>:2863.wid

Reading PartID-->:Blob1.xml.

Classic Webi Trace

In a pipe delimited format, the Classic BO Trace is used to record in

explicit detail, the operations of the Web Intelligence Report Server.

Once the tracing levels have been set, the trace will identify a range of

operations including working with sub components and creating and

opening files.

Once the tracing levels have been set, the trace will identify a range of

WiReportServer (communication, orchestration)

Cube RepEng (page rendering in xml)

DP (orchestrate data fetching)

Calculator (build and execute calculation plan from report spec

and DP)

QF

QT (generate SQL)

CS (execute SQL)

Report spec (xml)

Report output (xml)

1

3

4

2 5

6

7

Facilitate communication between RepEng and

Calculator using iterators

DP : Data provider

QF : Query facility

QT : Query technique

CS : Connection server

RepEng : Report Engine

Query spec (xml)

Dico

Page 25: 2. ViewInstance

Page 25 of 26

For Internal Use Only

operations including working with sub components and creating and

opening files. Errors in the workflow can also be easily found as they

are tagged with |E|.

Working with this trace requires a BO_Trace.ini file to be created.

Three optional environment variables can also be set:

Environment Variables

The following environment variables can be set to override the

default location ([windows install path]\system32) of the log file.

BO_TRACE_CONFIGDIR = c:\mypath

BO_TRACE_CONFIGFILE=c:\mypath\BO_TRACE.INI

BO_TRACE_LOGDIR= C:\MyLogFolder

BO_TRACE.INI

active=true;

important=’<<’; (options are <<,<=,==,>=,>> where << logs

informational lines to >> which is critical/error lines)

size=10000;

keep=true;

Page 26: 2. ViewInstance

Page 26 of 26

For Internal Use Only

Step: 8 The Web Application Server sends the rendered HTML page to the Web Client via the Web Server.

Map

Process The Web Application Server renders the report as HTML in

Report.aspx (ASP.Net) or Report.jsp (Java) and passes the completed

report to the Web Client via the Web Application Server.