Monday, September 17, 2007

Making Sense of Fusion Middleware

The Fusion Middleware area has become more and more crowded with all of the products that are now included.

I speak from personal experience on this topic since I'm often stumbling through the various acronyms used for these products.

Most of us think that Fusion Middleware refers to Service-Oriented Architecture, Identity Management and Business Process Management since these are usually the emphasis of Oracle's presentations. In actuality there's an amazing breadth of other solutions when you dig into Oracle's offering.

To add to the complexity, some of Fusion Middleware products are further grouped into Suites for marketing purposes. That's good because the Suites are targeted to specific business needs. If you are looking for Business Process Management it's nice to find that term. The downside is that it can be confusing when the same product can be found in multiple Suites.

For example, compare the Event Driven Architecture Suite and the Service-Oriented Architecture Suite components. You will find that they both include Business Activity Monitoring, the Enterprise Service Bus, Enterprise Messaging (Java Messaging), and Business Rules. Then they add one or more other different Fusion Middleware products.

So, if we really want to understand the Fusion Middleware products it's best to break them down individually and understand their general capabilities. I've done that in a PDF file available here. Once you see it, you'll understand why I didn't just publish it here.

For those who are too busy/lazy to peruse the PDF file, here's a brief overview of the various components of the larger product groups/suites in the Fusion Middleware and what they currently include.

  • The Application Server is the core component of Fusion Middleware. It provides J2EE 1.4 support, Web Services Support, Enhanced Messaging, Transaction Management, Security Features, Clustering, Grid Computing, and Monitoring & Management.
  • The Business Integration Suite includes products like Master Data Management, XML Gateway, B2B Integration and the BPEL Server.
  • The Business Intelligence Suite includes Warehouse Builder, OBIEE, BI Publisher, BI Answers, BI Discoverer and the Hyperion products.
  • The Business Process Architecture Suite provides the ability to model, simulate and publish business process models.
  • The Business Process Management Suite is a superset of the Business Process Analysis Suite and the Service-Oriented Architecture Suite.
  • The Collaboration Suite includes groupware, unified messageing and real-time collaboration products.
  • The Content Management Suite supports content management, publishing, tracking and distribution with retention policy capability.
  • The Event Driven Architecture Suite is a marketing package that includes products that generate and report on events.
  • The Identity and Access Management Suite provides LDAP, Single-Sign On, Federation, and Virtual Directories.
  • The Middleware for SMB provides a lower-end solution that meets the needs of Small and Medium-sized busineses using the Standard Edition One of the application server.
  • The Middleware for Applications is a marketing package that includes middleware products for each of the application suites.
  • The Service Delivery Platform offers new communication options including Residential VoIP, virtual PBX and the Communication and Mobility Server.
  • The Service Oriented Architecture Suite includes those products used to define, orchestrate, monitor, secure and tune the execution of Web Services.
In my next post I want to talk about what's of interest in the Application Server 10g.

Friday, September 7, 2007

Options for Generating XML for BI Publisher

Oracle's BI Publisher is a powerful tool for producing richly formatted documents. It takes any well-formed XML data and refines it into custom invoices, checks, bar coded labels, web pages – the possibilities are limitless. The source for the XML data can be any process that can generate well-formed XML data ("well-formed" simply means that it complies with XML standards). In the Oracle Applications world, this typically means creating a duplicate of an existing report and then modifying its output to generate XML rather than text. However, there are many occasions where the report requirements don't correspond with an existing report and you'll have to look at other options to generate XML data.

BI Publisher Data Templates provide the overall best method for producing XML output that is to be used in conjunction with BI Publisher. Data Templates are themselves specially formatted XML documents that contain SQL code along with other processing instructions. They are relatively simple to construct requiring only a text editor and a working knowledge of the template elements and layout. Once complete, the Data Template is loaded into the Template Manager as part of the data definition. Everything is managed through BI Publisher thus eliminating the need to create a separate concurrent process. At runtime, execution is handled via the BI Publisher Java APIs and the entire process has been tuned to out-perform any other method for producing XML output. Keep in mind, however, that all the appropriate BI Publisher patches must be in place for Data Templates to be used and this is usually not the case.

The PL/SQL XDK (XML Developer's Kit) packages offer a powerful option for generating XML data. The XDK provides methods for creating and manipulating XML documents through the DOM or Document Object Model. The DOM methods provide a maximum amount of control when generating new documents or modifying existing ones. Unfortunately, the learning curve is somewhat intense and it takes a substantial amount of coding to perform even the simplest of tasks. The XDK probably is best suited for hardcore developers who need an advanced level of control over XML generation.

You may also choose to generate your XML data using your favorite scripting language. Since XML data is really just specially formatted text, any process that can write text output can produce XML documents for use with BI Publisher. Perl, PHP and even shell scripting can be designed to generate XML as long as you follow the guidelines set forth by the XML standards. Many of these common scripting languages also offer add-on libraries specifically designed to simplify the process of generating well-formed XML documents. Plus, if you're already familiar with any of these languages then the implementation should be reasonably straightforward. There is a downside to this method. Most likely, you'll need to access data stored in the Apps database and this can get a little tricky when the script is called from a concurrent process. You'll need to install the appropriate libraries to access the Oracle database or make system calls to SQL*Plus.

Another little known method that can be used to produce XML data in many situations is SQLX or SQL/XML. SQLX has different meanings depending on the context. Typically, SQLX refers to a set of technologies used to query information from an XML database or document. SQLX also refers a set of functions used to within a SQL query to produce XML output. SQLX functionality is available in Oracle 9i or 10g databases but the latter versions provide much more usability. SQLX scripts can be setup as SQL concurrent requests and immediately processed with BI Publisher. They can also be embedded into PL/SQL procedures so that the output is written to a file and then processed with BI Publisher or further manipulated. The SQLX functions are intuitive and with a little ingenuity and experimentation, you should be able to quickly produce XML documents to meet most BI Publisher requirements.

Posted on behalf of:
Tim Sharpe | Solution Architect