So Just What Does WebLogic Server Do Within OBIEE 11g?

So now I'm back from my travels, I'm working on the joint OBIEE11g masterclass that I'm running with Tony Heljula, at the RM BI Forum in May. One of the topics that I'm leading on is architecture and internals, and a section I'm adding to the presentation is on common questions about the new architecture; one of which is "what exactly does WebLogic in OBIEE11g, why is it so important, and why is WebLogic the only application server option now?"

To understand the role of WebLogic, it's worth taking a look back to the role that application servers played in previous versions of OBIEE, and Siebel Analytics before that. The diagram below shows the Siebel Analytics/OBIEE 10g front-end architecture, with what is now the Oracle BI Presentation Server ("Oracle BI Web") connecting through to the outside world through what is now the Oracle BI Plugin ("SAW Bridge")

NewImage

The "SAW" (Siebel Analytics Web) "Bridge" acted as a routing point between the user's Web browser, and the Presentation Server which was written in C++. The SAW Bridge was a Java application that could either run in a J2EE application server, or in Microsoft IIS, and did little else other than provide a bridge between the internet world and the C++ world of the BI Server and Presentation Server. Later on, after Oracle acquired Siebel and then started adding Java-based components such as Oracle BI Publisher and Oracle BI Office (the server element of the OBIEE plugin to Microsoft Office), the use of a J2EE application server became mandatory (although you could still run the Oracle BI Plugin in IIS, if you wanted to), with a free bundled version of OC4J included with OBIEE 10g+, and the option to switch to Oracle Application Server (with OC4J still under the covers) or an alternative J2EE server such as BEA WebLogic, IBM Websphere and so on.

Fast-forward now to OBIEE 11g, and the J2EE server plays a much wider part. OBIEE 11g has the concept of an Oracle BI Domain, which describes the complete set of components and configuration files for a single OBIEE environment (such as DEV, TEST, PROD etc). Each Oracle BI Domain has one Oracle WebLogic Domain, containing WebLogic plus all of the Java Components, and one Oracle Instance, containing all of the System Components, the new name for all the "legacy" C components such as the BI Server, Presentation Server, Cluster Controller and so on. The WebLogic Domain can span over multiple physical servers, something you set up using the Universal Installer and a process called Horizontal Scale-out.

NewImage

So, getting  back to the question; what does WebLogic do, and why is it so much more "in your face" in this release compared to 10g? Also, where does Fusion Middleware come in to this, and why can't we currently use WebSphere, IIS or other application servers in it's place?

At a high level, WebLogic provides the following functions for OBIEE 11g:

  • It hosts the WebLogic LDAP server, the default "authentication provider" (i.e., user directory) for OBIEE 11g, which is where users and groups are now stored instead of holding them in the RPD file
  • It also provides other security providers used by OBIEE, which I'll cover in more detail in a moment
  • It hosts the much wider range of java components that you get with OBIEE 11g now, including ones for web service and SOA integration which themselves make use of WebLogic integration functionality
  • It hosts the WebLogic Admin Server, Oracle Enterprise Manager Fusion Middleware Control, two web-based admin tools for OBIEE 11g, and the MBeans that Enterprise Manager and the Admin Console use to perform their administration functions

As such, it performs a similar role to OC4J/Oracle Application Server in OBIEE 10g, but it does it all on a much more "enterprise" scale as it uses the BEA tooling that Oracle adopted across all of Fusion Middleware over the last couple of years, and it also uses the BEA JRockit JVM which scales better than the old Orion-derived OC4J JVM that Oracle Application Server used to use.

It's also worth making the distinction between Oracle Fusion Middleware, and Oracle WebLogic Server. Fusion Middleware 11g is a middleware platform which runs currently on just Oracle WebLogic Server, which is why OBIEE 11g is restricted to WebLogic for the time being. Fusion Middleware provides services and APIs that initially, in the case of OBIEE 11g, make use of WebLogic functionality to provide, for example, the flexible security arrangements that you now get with 11g.

So security is a good example of how we can make the distinction between what WebLogic provides, and what Fusion Middleware provides. The diagram below shows Oracle Platform Security Services, the security API that comes with Oracle Fusion Middleware:

NewImage

OBIEE 11g security works in two parts; OPSS is the framework within Fusion Middleware that works with three security "stores";

  • An Identity Store, which by default uses the WebLogic Server LDAP Server
  • A Policy Store, which by default is stored in a file
  • A Credential Store, again which by default is held in a file

All of these stores can however be moved to another security provider; Oracle Internet Directory, for example, so that the constant here is Fusion Middleware provides the LDAP server and the connectivity options that make it possible to use OID, or Active Directory, instead of the WLS LDAP Server.

Now at the moment, it's a general restriction in Fusion Middleware 11g that only WebLogic Server can be used as the host application server, as presumably some of the Fusion Middleware functionality has not yet been decoupled from WebLogic. Once Fusion MIddleware can make use of other J2EE application servers, then you'll find that OBIEE probably will be able to to as well, probably from around the time of version 11.1.1.6, maybe later in 2012.

For now though, that's what WebLogic Server does for OBIEE, and next I'll be answering another common question with OBIEE 11g - What Does Enterprise Manager do, and just exactly what happens when you press the "Activate" button after making a configuration change?