OBUG Connect, the Oracle Benelux Usergroup conference in Brussels.

Opening ceremony by Wim Coekaerts & Janny Ekelson.
Nothing much to say about this…

First keynote session was brought by Chris Leone about Oracle Fusion applications.
Applications is not my thing, but it was nice to see how everything in Fusion apps is integrated like BI and collaboration.

My first session was “The best way” by Tom Kyte, a session about doing things the “best way” or “best practices”.
Tom quoted Bryn Llewellyn on what brings you to best practices.
It depends on things from “reasoning skills” over “education” to “know oracle inside out” to “know pl/sql inside out”.

An example join two big tables(big… big tables) with little distinct values.
What will be the fastest(best) way to retrieve records for one of those distinct values: hash joins or index scans?
In a batch operation the hash joins will be the fastest, but on a screen that only shows 20 records?

So, when is something the best way?  Well, it depends…

How can you tune using TKPROF?
A best practice…
Get the facts(physical I/O, logical I/O, difference between CPU and elapsed time,…).
Infer more facts.  Know your data, know how oracle works.
Build your context.
Rule things out.
Very interesting session!

Time for lunch!

Next session was one of Lucas Jellema and Patrick Stevens: “Randstad’s modernization of organization, architecture and applications powered by Fusion Middleware”.
They explained how they transformed the IT team to work with the agile approach.
This resulted in a faster develoment(about 4 times) and a team that is more involved.
Randstad also decided to make their applications service based.
So a service layer was build around all core processes using BPEL and OSB.
The only problem is Forms, which still accesses the database directly.
The Forms application will fade away in the future to a web application in ADF…

Last session was another AMIS session by Luc Bors together with Simon Vos of bol.com: “How BOL.COM benefited from ADF”.
Bol.com decided in 2007 to move to ADF.
Some reasons to move:
– Oracle statement of direction:  exit designer
– no authorization/authentication
– forms supported datamodel, not business processes
Where did they want to go to:
– SSO
– new and extended UI
– add reporting
– no direct database access

So they introduced scrum, ADF and trained they’re inhouse (forms)developers to use JDeveloper, ADF and JHeadstart.
Now they could start to rebuild the forms application in ADF.
The pl/sql and built-ins used in forms are put in the database or, if lucky, they could use an ADF alternative.
Others(little percentage) had to be programmed in Java.

This resulted in a new application with the same functionality(allthough some additional functionality was added) as the forms application with a new look and feel.

Some interesting sessions, allthough I like to see some more demos next time.

Oracle Open World 2010: Forms in the Middle of Middleware

People attending Open World to have a closer look at fusion technologies and how to integrate them in your existing applications, need to check out the following session:

  • ID#: S315945
  • Title: Oracle Forms in the Middle of Middleware with Oracle Product Management
  • Track: Application Servers, Application Grid, and Development
  • Date: 22-SEP-10 Time: 13:00 – 14:00
  • Venue: Marriott Marquis Room: Salon 9

Together with Grant Ronald we will talk you through the possible scenario’s to modernize your existing forms applications. After each scenario we will demo the functionalities and showcase some of the success stories we’ve conducted together with our benelux customers.

The different scenario’s include upgrading to 11g to use the event-driven architecture, integrate with existing applications such as apex, .net, google maps, bpel, …

In other words if you’re using fusion technologies such as BPEL, OSB, ADF, … you can easily integrate these with your existing forms applications using the new features provided in 11g.

Business Process Integration – What, where and how

If we talk about business process integration, we would probably have a different vision and other expectations depending on our role.

For example: if we talk to the manager about business process integration, this could mean automate existing manual processes. If we talk to the sales-departement they would expect to have more insight into trends, benchmarks and action-triggered marketing campaigns.

Another example: If you talk to analysts they would think about business process modelling and defining the landscape of existing processes to be able have a clear understanding of the company’s process lifecycle and how processes, data and tasks are managed. If we talk to architects we would start discussing the usage of UML Sequence Diagrams, Class Diagrams, Canonical Data Models, …

In other words the expectations differ depending the context you would be interested in the integration aspect.

The steps that can be equal across the different stakeholders:

  1. Analyse existing business processes, data, services, organisational aspect, …
  2. Define workflow aspects such as the difference between automatic and manual steps
  3. Automate business processes
  4. Integrate business processes

The products that can be used to tackle these aspects, as well on business side as IT side, and offered within the Fusion Middleware 11g stack are: BPA Suite, BPM Suite and SOA Suite.

BPA Suite, Business Process Analysis Suite, can offer you an environment to analyse needed data, services, organisational aspects and business processes (using different types of diagrams). Besides architecting these artifacts you can also simulate the processes to be able to have a clear view on the throughput and process lifecycle without needing to automate the processes you’ve put in place in for example a non-automatic manner. Afterwards you’re able to discuss the business processes with your IT department and start implementing/automating these processes using Business Process Modeling Notation and Business Process Execution Language (BPMN and BPEL). BPMN 2.0 is now supported in 11g.

BPM Suite can then offer a unified view to as well analyst as stakeholders as developers using the same environment, the same processes and analysis. By introducing one single environment for these different stakeholders, communication and collaboration will be augmented without frustration of difference in object definitions or concepts.

After the analysis, simulation and automation has been put in place, using SOA Suite (e.g. Bpel process Manager) you can start integrating these processes within existing environments. Call out to these new processes (a deployed BPEL Process is a web service) from the Back-End. Publish these services to your existing partners and new partners, …

How to handle logging in BPEL Processes

1.1. Logging In Bpel

Logging can be performed on domain-level and system-level and you can use different mechanisms to log events, task details, …

In this post I’ve summarized the basic logging functionality you can use on bpel processes.


1.1.1. Process Logging Information

Oracle BPEL Process Manager uses the log4j tool to generate log files containing messages that describe startup and shutdown information, errors, warning messages, access information on HTTP requests, and additional information.

The log4j tool enables logging at runtime without modifying the application binary.
Instead, logging behavior is controlled by editing properties in Oracle BPEL Control
and Oracle BPEL Admin Console.

Two logging levels are supported in Oracle BPEL Process Manager:
· Domain
o Manages logging information within specific domains
· System
o Manages logging information on a system-wide level

1.1.1.1. Domain-wide Logging

These can be configured through the BPEL Console (http://hostname:port/BPELConsole) > manage BPEL domain > logging or by editing log4j-config.xml in $BPEL_HOME\integration\orabpel\domains\\config

The different domains to log about:
· .collaxa.cube.engine.deployment – deployment related logging
· .collaxa.cube.compiler – compilation related logging
· .collaxa.cube.messaging – messaging layer (as bpel used messaging services to scale)
· .collaxa.cube.security – server side security (fwrk)
· .oracle.bpel.security – inside validator logging
· .collaxa.cube.ws – everything that is related to communication (WSIF layer, SOAP, Adapters) – shows you at least a longer stack if something breaks there
· .collaxa.cube.xml – xml transformation, storage, hydration
· .collaxa.cube.services – logging for services like Notification or Human Workflow
· .collaxa.cube.engine.delivery – Delivery Service and Manager, responsible for callbacks, and first (initiating) delivery
· .collaxa.cube – cube related logging (system)

1.1.1.2. System-wide Logging

System-wide loggers are used for logging information about infrastructure, AXIS and WSIF bindings. They can be configured through the BPEL Admin Console (http://hostname:port/BPELAdmin) > logging or by editing log4j-config.xml in $BPEL_HOME\integration\orabpel\system\config

The different systems to log about:
· org.collaxa.thirdparty.apache.wsif – logger for system-wide WSIF
· org.collaxa.thirdparty.apache.axis.transport – logger to see what axis is sending on the wire
· org.collaxa.thirdparty.apache.axis – general axis related logging
· collaxa.cube.services – all BPEL PM wide services
· collaxa.cube.infrastructure – infrastructure such as DB connectors

1.1.1.3. Log Level

The following logging levels are available and listed here from highest priority to lowest priority. When a logging level is specified, all messages with a lower priority level than the one selected are ignored.

· Off
o Disables logging. This selection is the highest priority.
· Fatal
o Logs critical messages. After logging occurs, the application quits abnormally.
· Error
o Logs application error messages to a log; the application continues to run (for example, an administrator-supplied configuration parameter is incorrect and you default to using a hard-coded value).
· Warn
o Logs warning messages to a log; the application continues to run without problems.
· Info
o Logs messages in a format similar to the verbose mode of many applications.
· Debug
o Logs debugging messages that should not be printed when the application is in a production environment.
· All
o Enables all logging. This selection is the lowest priority.

1.1.2. Logging with Sensors

You can use sensors to generate application logging activity.

Note that logging with sensors impacts performance because sensor data objects are built even when logging is disabled.

You add sensors to specific activities and then extract data from variables. To do this, you must implement a custom sensor publishing action to do the log4j logging. For example, you can create a sensor on an invoke activity and create a message that is
sent to a JMS queue.

1.1.3. Logging with bpelx:exec in a Java Embedding Activity

You can also log messages by adding custom Java code to a BPEL process using the Java BPEL exec extension bpelx:exec inside a Java Embedding activity in Oracle JDeveloper.

The method addAuditTrailEntry(String):void enables you to add an entry to the audit trail.

Oracle BI & BPM

When you talk about Business Intelligence, the true added value lies in real-time reporting. The dashboards or reports presented to you need to present accurate information about e.g. stock, human resources, bench marking, etc. This real-time reporting could be augmented even more when you can take action straight away when benchmarks aren’t met, campaigns need to be organised etc. In other words tighter integration with your reporting environment to make your company more agile and lean.

So let’s have a look at both technologies briefly:

  1. BPM = Business Process Management
  2. BPM gives you the opportunity to manage the existing business processes End 2 End. In other words you will define a portfolio of all existing business processes, analyse these business processes using the standards based language BPMN (Business Process Modelling Notation), simulate these processes to check if KPI’s are met, if needed re-engineer them, to finally start automating and executing these business processes using the standards based language BPEL (Business Process Execution Language).

  3. BI = Business Intelligence
  4. BI gives you the ability to gather and provide access to real-time information. It can deliver dynamically generated content, provide insight regarding benchmarks, forecasting and actionable tasks and most important of all guide users towards insight and action. The focus of BI is moving towards insight-driven business processes, to give users the ability to optimize these processes on unified, real-time and predictive data.

So how can we make this happen, how can we provide insight-driven business processes without loosing the focus on the data?

Some of the functionalities we can perform with the Oracle BIEE Web Services:

  1. Extract results from BI and feed them to external applications
  2. Execute queries and retrieve results.
  3. Execute iBots (BI Alerts).

By invoking these web services from within bpel processes we can interact with in flight business data and react when needed.

For more information regarding this integration and interaction, have a look at Oracle BI Webservices & BPEL.

BPEL & BPEL4People, what’s the difference?

What is BPEL4People exactly and how does it relate to BPEL, the standard language to describe business processes (Business Process Execution Language).

Manoj Das has written an article in SOA Magazine, describing the need for BPEL4People.

When we want to automate a business process we need to be able to define system and human tasks within the process. E.g. before an order may be billed to the customer, the HR manager needs to approve and validate this order. This step is were Bpel4People comes in, the person needs to have the ability to approve certain tasks within the bpel process.

Using Oracle BPEL we can already use human task interaction using the Oracle extension made available. By standardizing this human taks interaction the bpel process will be supported on any operating system.

For more information regarding BPEL4People, read the following Article.

Business Course introducing ApEx and SOA for High Schools/Universities

This week me and Nathalie Roman (Oracle Fusion Middleware developer of the year) went to a High School in Antwerp to organize a 3-day theoretical and practical course about APEX and SOA.

During these 3 days we gave the students insight in what SOA and ApEx is all about and what they can achieve with it.

A short summary:

Day 1
Nathalie introduced iAdvise as an innovative Oracle Company that is active in Oracle Fusion Middleware, SOA Governance, Data Warehousing and Business Intelligence, Infrastructure and Hosting and of course front-end development using ADF, Java Open Source Technology, Client/Server technologies (such as Forms), Flex and of course ApEx. After that we did an overview for the three days and Nathalie started with her presentation on SOA.

When Nathalie was finished It was my turn. I gave the students a full presentation about ApEx with a live demo. For my demo I had an excel file with some data and asked some students to give me a realistic guess on how long it would take to build an online application starting from my excel data. Answers from 30 to 50 minutes were given so students were immediately very interested when they saw that I could make such an functional application in under 2 minutes.

In the afternoon we started with a hands-on Apex session. As I expected most of the students had no problem building some basic reports and forms, their first impression was that the tool is very quick and easy to use.

Day 2
Our second day started with the assignment of making another apex application, after that an introduction to web services and bpel was given by Nathalie. In this presentation Nathalie gave an insight in web services, the difference between synchronous and asynchronous threading and how the different API’s can be used for authentication/authorization/encryption … After an insight into web services, Nathalie explained the main differences between BPEL and ESB using some common use cases. Using these Use Cases the students could anticipate when to use which methodology when functional requirements were outlined.

For BPEL Nathalie also explained the importance of BPMN so business processes could be analyzed and automated within a governance-structure with as well IT, business as analysts as the key stakeholders. After the theoretical part we gave the students an hands-on introduction to web services and bpel processes. The bpel process was used to automate the HRM application that was build in ApEx.

Day 3
On day 3 the students made their second BPEL process and saw a little bit of ESB. In the afternoon we expanded the earlier made ApEx applications with the pl/sql webservice we made. Students learned how to call a webservice using the apex wizard and also using the manually manual option. They had to construct the soap envelope and got a better insight in the whole process.

Me and Nathalie were very satisfied after 3 days, all students were very interested in the oracle technology and a lot of students realized that you can do a lot more with sql and pl/sql then they had done before.