OBIEE 11gR1 : Architecture and Use of WebLogic Server

Although the most obvious new thing about the recently launched 11gR1 release of OBIEE is the user interface, under the covers there's been a lot of changes to the architecture, and how you perform systems management. There's still the basic concept of a BI Server, Presentation Server, RPD and so on, but it's now all managed and in some cases hosted, using WebLogic Server, the J2EE application server that Oracle have adopted following the acquisition of BEA.

For the 10g release, OC4J and in some cases, Oracle Application Server, was used in a limited form to provide a gateway between the users' browser and the C++ OBIEE server applications, and to host the BI Office and BI Publisher J2EE applications, but you generally didn't have to get too involved with it. In OBIEE 11g, WebLogic together with associated technologies such as OPMN, DMS and ODL are much more prominent and if you're going to be administering an OBIEE 11g system (including running it on your own desktop), you'll be getting to know WebLogic pretty well, together with the latest version of Oracle Enterprise Manager (or as it's called in this release, Oracle Fusion Middleware Control).

When looking at the architecture of a new product, I often like to start at the top and work down. The diagram below shows the high-level architecture for OBIEE 11g, with the diagram showing a single OBIEE "BI Domain", a container for a complete, single (and perhaps clustered) installation of OBIEE 11g.

Oracle Bi11G Domain

At this high level, components in OBIEE 11g can be divided into two types:
  • Java Components, the parts of OBIEE that are written in J2EE and run directly in the application server. These components include BI Publisher, the BI Office plugin, the BI Security Service, BI SOA Services, BI Action Services and the JMX MBeans that are used for configuring OBIEE
  • System Components, which were implemented as Windows services in 10g, and include the BI Server, BI Presentation Server, BI Scheduler and BI Cluster Controller
This is similar to how it was in 10g, in that some (more recent) components of OBIEE 10g were implemented in J2EE and installed in either OC4J or Oracle Application Server, whilst the historical core of OBIEE ran as server components that you managed through either scripts, or Windows services. In 11g, these server processes still run outside of the J2EE application server, but now they are managed through the application server administration console and are stopped and started as if they were regular J2EE components (Oracle consider these Java components and system components as "peers").

The Java Components and System Components are managed through a number of tools, including Fusion Middleware Control (aka Enterprise Manager), Weblogic Server Admin Console and OPMN. All of these components connect to a repository database, which can be any recent Oracle database and contains the schemas (scheduler, nqacct etc) that you had to create manually in 10g, plus a few others new for 11g.

If you've not used WebLogic Server before, each WebLogic installation has at least one "admin" server, and usually one or more "managed servers".

  • The Admin Server contains the admin console application, used to administer managed servers, and Fusion Middleware Control, used to administer OBIEE 11g
  • One or more Managed Servers, which contain the J2EE OBIEE applications plus the "coreapplication" System Components
When you install OBIEE 11g, you get one admin server and one managed server. You can create another managed server, either on the same box if it's big (as you used to do with multiple OC4J JVMs in 10g), or more usually on additional machines that are then managed by the original admin server. The admin server console is generally used to manage WebLogic-level tasks (starting up managed servers, communicating with the node manager etc), whilst the majority of the OBIEE administration is carried out using Fusion Middleware Control (which sometimes gets referred to as Enterprise Manager).

So whilst it looks initially a bit confusing and overwhelming, the basics are still the same. The BI Server is still a standalone C++ application, it's just that it's managed (stopped, started, monitored etc) through Fusion Middleware Control and OPMN. The various J2EE components such as BI Publisher are still J2EE, they are just installed in WebLogic now (apparently this will be extended to other J2EE application servers over time). Some key differences, especially if you're running on Windows, is that there are no longer and BI Server, BI Presentation Server etc services, and you also can't go around editing configuration files now as WebLogic manages them (actually this is only partially true, and I'll get onto that in a separate posting). More importantly, all the WebLogic overhead means that you'll need about 4GB of RAM if you're installing OBIEE 11g on your laptop, along with a database for the repository schemas as source data, which is about twice what you need for the 10g version, so now's the time to put in for a laptop upgrade.

There are some key Fusion Middleware technologies, terminology and utilities that you'll need to get to know when starting to work with OBIEE 11g.

  • WebLogic Server (often abbreviated to WLS) : this is the J2EE application server that Oracle uses across the board for all their 11g BI applications, such as Essbase 11.1.2, Discoverer 11g, BI Publisher 11g , Real Time Decisions 11g. It's also used for the upcoming Fusion ERP applications, and is the default application server that you get with JDeveloper 11g. In the past it's role in OBIEE was performed by OC4J and Oracle Application Server (which used OC4J under the covers), and both of these in 11g have been replaced by the core WebLogic Server, with JRockit (as opposed to the Sun JVM) generally used as the JVM (thanks Simon H for the clarification in the comments).
  • OPMN (or Oracle Process Manager and Notification Server to give it its full name) : You may have first come across this in Oracle Application Server 10g, where it was used to start up the various Application Server components (OC4J_BI_Forms, OC4J_Portal etc). Its since been adopted across the technology stack to start, stop and monitor processes across distributed servers, and it's used in OBIEE 11g to do the same for the system components (BI Server, BI Presentation Server, BI Scheduler and BI Cluster Controller). You can either access OPMN through the command line (opmnctl), or Oracle's recommended approach is to use a graphical interface within Fusion Middleware Control. OPMN is also used in the 11g stack to control Essbase, Discoverer and other BI components, so it's a tool that's worth learning.
  • DMS, or Dynamic Monitoring System, works alongside OPMN and provides statistics on the various components which can be persisted in a database. This will definitely be interesting when it comes to performance monitoring and optimization for 11g.
  • ODL, Oracle Diagnostic Logging, is a centralized framework for logging. Again, interesting for performance, though not all logs (nqquery.log, for example) are covered by it.
  • JPS (Java Platform Security) and CSF (Credential Store Framework) are just two parts of security in 11g. Security is a big change in 11g with users no longer stored in the RPD (including the Administrator user, which has now gone), and users, roles and groups now managed by WebLogic, linking out to LDAP servers as neccessary.
Two other changes are around patching, and upgrading. Patches are now handled by OPatch, the standard mechanism for other Oracle products. I'm in two minds about this as previous patches for 10g were dead simple - you just installed the new version over the old - but for 11g, it's a lot more complicated now and I guess OPatch, with a patch repository and ability to roll back, was inevitable at some point. There's also an Upgrade Assistant, again something common in the Oracle world, to migrate installations and metadata from previous releases.

So, one way to understand how all the components fit together is to look at how the components start up after a reboot. With OBIEE 11g, you use Oracle WebLogic Server admin console to start up the WebLogic Managed Server that contains the OBIEE components, and then you use Oracle Fusion Middleware Control to start these individual components up.

UPDATE 14-Aug-2010 : The official GA release also introduces a Windows Start Menu entry for starting all OBIEE 11g services. See this posting for full details.

  1. Once the WebLogic Server admin server is up and running, your first step is to log into the WebLogic admin console (typically, at http://localhost:7001/console) and navigate to the Server view. You then instruct the Node Manager to start WebLogic managed server, which typically takes a couple of minutes to complete.

Sshot-5-4

2. Starting the managed server will also auto-start the java components (again via Node Manager), and the system components (via OPMN), so that you should now be able to log in. On a fresh installation, you'll need to log in using the WebLogic Server administrator password that you specified during the install and configuration.

Sshot-6-4

3. If you want to stop and start any of the OBIEE components, you do this via Fusion Middleware Control (or via the OPMN command line utility, which we'll cover in a future posting). In the screenshot below, I'm showing the buttons used to stop and start all of the components together. Other screens let you stop and start individual components, something you'll still need to do if you update a configuration file, switch to a new RPD etc.

Sshot-7-4

A couple of points to notice on this. Firstly, on the left-hand side you can see the entry for the managed server (bi_server1) under bifoundation_domain, that contains the J2EE components for OBIEE. The coreapplication under Business Intelligence is the application that manages the server applications (BI Server etc) that are written in C++. Also note that one of the five components is down. Which one is it, and what is causing it? Let's take a look.
  1. Keeping with Fusion Middleware Control, I select Capacity Management > Availability from the tabs, and see that it's the Scheduler that's down.

Sshot-8-4

Now this is the one component that depends on the database to be up and running before it'll start, and although I know I've configured it (this is done automatically during the install now), it might need a restart to get it working. The recommended way to do this is to stop and start it from Fusion Middleware Control, so I highlight the BI Schedulers entry and press the Start Selected button above it.

Sshot-9-4

It starts OK, so it was probably just a problem with the database not being up when the auto-start happened. I could also have started the component using opmnctl, and this is something I'll look at more in a future posting.
  1. Finally, I want to switch off caching, as OBIEE turns it on by default for new installs but this interferes with results when I'm doing development work. In OBIEE 11g, whether caching is turned on or not is still determined by an entry in the nqsconfig.ini file, but you're meant to manage this setting via Fusion Middleware Control (if you edit it directly in the file, the admin server will overwrite your changes when you restart it, though you can disable this behaviour). To turn off caching, I navigate to the Capacity Management > Performance tab, where I can see the entry to enable the cache.

Sshot-11-3

But if you notice, it's all grayed-out. This is because you have to "lock and edit" the session first, which serialises access to these settings and stops another administrator changing things at the same time as you. I press the Lock and Edit Configuration button, and then uncheck the Cache Enabled checkbox, press Apply, then then press Activate Changes. This copies the new parameter value into the nqsconfig.ini file, but I still have to restart the BI Server system component before this becomes active, just like I had to do with OBIEE 10g.

Sshot-12-3

So there you have it, a mix of old stuff (the BI Server and Presentation Server, config files etc) and new (WebLogic Server, system components, OPMN and so on). In future postings I'll be looking at how you perform other OBIEE 11g administration and systems management tasks, and I'll also take a look at how high availability and scaling out is achieved (clue - it's much easier in 11g).

In the meantime, if you'd like to keep abreast on the news on OBIEE 11g as it becomes available, including details of our forthcoming 11g-focused training courses and services, be sure to bookmark our newly-launched OBIEE 11g Resource Centre. We'll be posting links to all our OBIEE 11g articles, and there'll be news in a few days time about a special, hands-on OBIEE 11g Training Days event we'll be running in London and Atlanta in October 2010.