Upload
srivardan
View
226
Download
7
Tags:
Embed Size (px)
DESCRIPTION
view
Citation preview
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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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.