Вы находитесь на странице: 1из 26

Page 1 of 26

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 instances
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

For Internal Use Only

Page 2 of 26
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 Microsofts 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 users 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.

For Internal Use Only

Page 3 of 26
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.

For Internal Use Only

Page 4 of 26

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.

For Internal Use Only

Page 5 of 26

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

For Internal Use Only

Page 6 of 26
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 ids 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 documents 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
For Internal Use Only

Page 7 of 26
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
vendors 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.

For Internal Use Only

Page 8 of 26

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

For Internal Use Only

Page 9 of 26
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

For Internal Use Only

Page 10 of 26

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

For Internal Use Only

Page 11 of 26
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.

For Internal Use Only

Page 12 of 26

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

For Internal Use Only

Page 13 of 26
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.

For Internal Use Only

Page 14 of 26

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.

For Internal Use Only

Page 15 of 26
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).

For Internal Use Only

Page 16 of 26

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 isnt 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:

For Internal Use Only

Page 17 of 26

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


C3 (node)

Description
Used by Cube.

DATASOURCES (C3 sub-

DataSource objects: names, hierarchies

For Internal Use Only

Page 18 of 26
node)

contained in the document.

DATAPROVIDERS (C3 subnode)

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
DATASOURCES node

DSManager (leaf)

Description

DataSource objects: names, hierarchies contained in


the document.
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)

For Internal Use Only

Page 19 of 26

Node and/or leave name

Description

DATAPROVIDERS (C3 subnode)

Data coming from DataProviders

DP0 (DataProviders subnode)

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
DP0 (DataProviders subnode)

Description

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.

For Internal Use Only

Page 20 of 26
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
SESSION (CDZ subnode)

State (leaf)

Description

Information linked to the document state, which state


is linked to the Query Specification and to the Report
Specification.
Document state can be:

Initial (document is just created)


Created DP
Defined query
Waiting for Context or Prompt
execution
Executed query
Defined report.

For Internal Use Only

Page 21 of 26

DRILL for Drill Engine (node)

Node and/or leave name


DRILL (node)

Description
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


RE (node)

Used by Repeng.

DOCSPEC (leaf)

Tools

Description

XML of the Report Specification and formula


tokenized form. Also called serial form (cube
team).

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.

For Internal Use Only

Page 22 of 26

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;

For Internal Use Only

Page 23 of 26

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.

For Internal Use Only

Page 24 of 26

Tools
WiReportServer
(communication, orchestration)

1
Query spec
(xml)

4
Report spec
(xml)

Cube
DP 2 Calculator
(orchestrate
data fetching)

QF

(build and execute


calculation plan
from report spec
and DP)

Report output
(xml)

RepEng
(page rendering in xml)

6
Dico

Facilitate communication
between RepEng and
Calculator using iterators

DP : Data provider

QT

CS

(generate SQL)

(execute SQL)

QF : Query facility
QT : Query technique
CS : Connection server
RepEng : Report Engine

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

For Internal Use Only

Page 25 of 26
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;

For Internal Use Only

Page 26 of 26

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.

For Internal Use Only

Вам также может понравиться