Thursday 5 April 2012

OBI EE 10g / 11g - Tutorials - Section 01 - Basic Architecture

The first thing you should do before your first OBI EE installation is to identify the basic components of OBI EE and understand the relation between them. This is generally known as the architecture of OBI EE.

Oracle BI EE has four (4) primary components -
1> Oracle BI Server
2> Oracle BI Presentation Server and Oracle BI Java Host
3> Oracle BI Scheduler
4> Oracle BI Cluster Controller 

[Note : In case of Microsoft Windows environments the second component is broken into two windows services. For the Linux and Linux like operating systems they are started from a single process.]

Along with these primary components there are some other secondary Oracle BI objects that are closely involved in the configuration of basic architecture. They are -
6> Repository File (RPD), It hold the relationship among the data in physical and business views.
7> Presentation Catalog File (Webcat). It hols the metadata about the viewing objects like a request or dashboard.
8> BI Plug-in (analytics.ear), It needs to be deployed on a web server application server to complete the total architecture.

Each of these primary components have ability to listen service-requests from its immediate client application and send response to those requests. The basic listen ports for these components are as follows :-
1> Oracle BI Server : 9703
2> Oracle BI Presentation Server : 9710
3> Oracle BI Java Host : 9810
4> Oracle BI Scheduler : 9705
5> Oracle BI Cluster Controller : 9706

[Note : All of these ports are configurable and if you want to change them for extra security they can all be changed. I will provide the location of each of these setting at the end of this section]

Now let us discuss the journey of an user request from component to componet. 

The user normally access OBI EE application using its HTTP plugin "analytics/saw.dll" deployed in either IIS or in some other JAVA based application servers. 

[ Additional Information : In case of IIS you will be creating a virtual directory name analytics which will point to your application directory at ORACLEBI_HOME/web/app. In case of default installation the ORACLEBI_HOME will be C:\OracleBI thus the full path will be C:\OracleBI\web\app. In case of a java application server like Oracle Application Server or Weblogic, you have to deploy the Enterprise Archive File (ear) or Web Archive File (war) on the oc4j or managed server instance. The default name of this archive file is analytics and this can be found under ORACLEBI_HOME/web directory.]

The analytics plugin then send the requrst to the BI Presentation service. If this is the first request from the user (i.e. login and session creation request), the Presentation Service sends the request to the Cluster Controller. Cluster Controller has the track of the lightly loaded servers and it gets a session from these server and send that reference back to the Presentation Service. Finally Presentation Service directly communicated with the BI Server to fullfill the user login request. Once the login is complete all the communication is directly happen between Presentation Service and BI Server and the Cluster Controller does not have any role on it. 

Now let us understand what happens when the use executes a report request through the analytics plugin. 
-> Same like the earlier one The plugin will route the request to the Presentation Server. 
-> The presentation server will check if the user has access to the report or not. (Defined in Webcat Folder)
-> If the access is there then the Presnetaion Service will sent the Logical SQL of the report to the BI Server. (Cache will be consulted before sending the query to BI Server)
-> BI Server will check if the user has access to the requested Logical columns or not. (Defined in RPD)
-> If access is present, it will add the filter and send the Physical SQL to the Databases. (Cache will be consulted before sending the query to Database)
-> Database then send the rows fullfilling the Physical SQL to BI Server.
-> BI Server will cache the result and send them back to Presentation Server.
-> Presentation Server will generate the reports, if chart is present in the report then Javahost and CORDA chart engine will be involved to serve the chart generation.
-> The final report with all the report components will be sent back to the user through the web plugin.

In case user needs report alert or schedule dispatch of reports, the BI Scheduler component will be involded. It will store the defination of the scheduled jobs (iBots) in the database tables and pool them time by time to execute automatically.

Once you finish reading this section try to do these things as hands on.
1> Start all OBI EE components from windows services. [If you are in linux environment the scripts to run OBI EE can be found under ORACLEBI_HOME/setup directory]

2> Run the application server where the OBI EE plugin "analytics" is deployed. The default is OC4J.

3> Check the OBI EE login page at http://localhost:9704/analytics/saw/dll?Dashboard and login to the default repository and webcat combination. Credentials are Administrator/Administrator.

4> View the logs files.
-> BI Server Log = NQServer.log under ORACLEBI_HOME/server/Log
-> Query Log = NQQuery.log under ORACLEBI_HOME/server/Log
-> Cluster Log = NQCluster.log under ORACLEBI_HOME/server/Log
-> Scheduler Log = NQScheduler.log under ORACLEBI_HOME/server/Log
-> Presentation Service Log = sawlog0.log under ORACLEBIDATA_HOME/web/log
-> Java Host = jhost0.log.N under ORACLEBIDATA_HOME/web/log/javahost
[Note N is the number of the log file]

Location of the configuration files
BI Server = ORACLEBI_HOME/server/Config/NQSConfig.INI
Presentation Service = ORACLEBIDATA_HOME/web/config/instanceconfig.xml
Cluster Controller =  ORACLEBI_HOME/server/Config/NQClusterConfig.INI
Java Host =  ORACLEBI_HOME/web/javahost/config/config.xml
BI Scheduler =  ORACLEBIDATA_HOME/scheduler/config/instanceconfig.xml
Section 02 : Physical Layer

No comments:

Post a Comment

Blog Archive