Monday, March 30, 2009

Hello World in BPEL PM

Your first program was "Hello World" in C, C++ or Java - why not BPEL PM? This would be a good opportunity for you to review XML, Web Services as well - these are necessary pre-requisites for learning BPEL! This short demo (approx 12 minutes) shows how you can create a HelloWorld Synchronous BPEL PM process and then compares the wsdl with an Asynchronous BPEL PM process. The reason for the comparison is to show you how an async web service wsdl is different from a sync web service wsdl. This also illustrates your first BPEL PM design pattern (structure of a sync vs async bpel pm process and hints at the difference in bpel activities used between invokation of a sync vs async web service).

References to product documentation (BPEL PM Developers Guide):
1. Read Introduction to BPEL in the BPEL PM Developers Guide
2. Read Getting Started with BPEL Process Manager
3. Read Manipulating XML Data in BPEL

For extra credit:
Relate what you see in the Synchronous Interaction design pattern and Asynchronous Interaction design pattern to what you saw in the Hello World BPEL PM process (it is the service side BPEL PM process).


Learn BPEL Process Manager hands-on!

Ready to start?

What do you need?


Hardware
CPU: Pentium 4 @ 1Ghz minimum
OS: Windows 2003 (with latest service pack) or Windows XP (with service pack 1a or greater)
Ram: 2Gb recommended - 1.5 GB Ram minimum or 2GB if JDeveloper is on the same machine
HDD: 3 GB of available disk space required prior to install of software
It is strongly recommended that you use a mouse. Using a "normal" mouse will be much easier than using the built-in mouse on your laptop.
Swap Space: 1536 MB minimum
Monitor: Configured to display at least 256 colors


Software
Internet Explorer 6.0 (note Internet Explorer 7.0 will not work with the tutorial - more recent versions of SOA Suite support the browser) .If you have IE7 on the same machine, please uninstall IE7 prior to installing SOA Suite – this will make the installation go smoothly. I have heard reports that IE7 caused installation problems.


You need Oracle JDeveloper Studio, SOA Suite and an Oracle XE Database



Before you start - a couple of pointers



Note: This install procedure will get you to use Oracle SOA Suite 10.1.3.1. For production deployments and for formal development it is recommended to use Oracle SOA Suite 10.1.3.3.1 with JDeveloper 10.1.3.3. From a tutorial point of view, you can just go with the instructions as outlined here and later when you get on a real project apply the 10.1.3.3 and 10.1.3.3.1 patches for Oracle SOA Suite and download JDeveloper 10.1.3.3.

Note: If you have any virus checker please DISABLE it prior to installing the software. For example, I have heard of issues with AVG Anti virus software causing installation issues. When the virus software was disabled prior to installation, everything worked smoothly.

Note: this tutorial walks you through BPEL PM on Oracle OC4J Application Server. There is very little difference between doing BPEL PM on OC4J versus Weblogic - the only differences in the areas of adapter configuration, start/stop etc.

Note: If you have an installation of a previous version of Oracle BPEL Process Manager Developer install (BPEL PM 10.1.2.0.2, BPEL PM 10.1.2.0.0) save the following files in a safe location (say on your desktop) for future use
C:\windows\odbc.ini
C:\windows\odbcinst.ini
C:\windows\polite.ini
Also make note of your ORACLE_HOME environment variable settings.
This installation of Oracle SOA Suite procedure will override these files and env setting.

Install JDeveloper Studio 10.1.3.2.0


You need JDeveloper to install certain parts of the SOA Order Booking application and use the design-time environment. Because the version of Oracle SOA Suite is 10.1.3.1.0, you need the corresponding version of Jdeveloper (i.e. Jdeveloper 10.1.3.2.0 or 10.1.3.1.0).


For this quick start, you need JDeveloper 10.1.3.2.0 or 10.1.3.1.0 Studio edition. If you already have it installed, then skip to step “Install Oracle SOA Suite 10.1.3.1.0”. Before you do, ensure you have 10.1.3.1.0 (not to be confused with 10.1.3.0.0) and that it is the Studio edition, not the J2EE or Java edition. You can verify these details in JDeveloper from the Help > About menu option.


You can download JDeveloper Studio from:http://www.oracle.com/technology/products/jdev/index.html

File name: jdevstudio10132.zip (508 Mb) – PREFERRED or jdevstudio10131.zip (430 Mb) Unzip Oracle Jdeveloper into a location on your machine.

Do not install Jdeveloper into a directory path that includes a space (eg C:\Program Files\Jdev). If you do, you receive an error when you compile BPEL Processes.



Start Jdeveloper by clicking Jdev_oracle_home\Jdev\bin\jdev.exe or creating a shortcut. Note: If you have an older install of JDeveloper do not try to install the new version on top of it. On a given machine you can have more than one install of JDeveloper


Install Oracle SOA Suite 10.1.3.1.0


If you already have Oracle SOA Suite 10.1.3.1.0 installed, then skip this step. Please make sure you use the defaults as noted below for the class tutorial.


The tutorial assumes the following:



  • The AS Instance Name is soademo.

  • The AS Administrator Password is welcome1.

  • The default port is 8888.


To download Oracle SOA Suite 10.1.3.1.0:
From the following page, select the Download and install Oracle SOA Suite 10.1.3.1 link:http://www.oracle.com/technology/soa You will use the download titled Windows x86 (570 MB)The file name is soa_windows_x86_101310_disk1.zip
On the download page, select Oracle SOA Suite 10.1.3.1.
http://www.oracle.com/technology/software/products/ias/htdocs/101310.html


When you install Oracle SOA Suite, ensure you do the following:
· Select Basic Install.
· Set the AS Instance Name to soademo.
· Set the AS Administrator Password to welcome1.
· Install into the default directory structure – you will end up with files in C:\product\10.1.3.1\*
The Oracle SOA Suite installation sets the ORACLE_HOME environment variable for your computer. In some cases, this setting can cause a conflict with the Oracle Database. Specifically you may get errors from your Oracle Net Listener. If this is the case, then reset the ORACLE_HOME environment variable to your database location. On Windows, you may need to restart your PC.

Start at the Middle - with Oracle BPEL Process Manager



This is a picture that shows all the key Oracle SOA, Process Management and Event technologies. How do you go about learning all these different components? I would suggest that BPEL Process Manager - the cornerstone of Oracle SOA - is the right place to start. This is the most mature product of the Oracle SOA stack and traces its origins to an aquisition by Oracle in 2004 of Collaxa. In fact, when you look under the covers at some of the source code - they still refer to collaxa libraries - that never does change does it?!


Let us briefly review the technologies on this slide:


•First, Oracle SOA builds on top of messaging and J2EE infrastructure. Oracle remains committed to a ‘hot pluggable’ strategy running on top of multiple application servers, including WebSphere and JBoss as well as both the Oracle and WebLogic app-servers today. Likewise, you can plug in your favorite messaging infrastructure, such as MQ Series or TIBCO, or use Oracle's Oracle AQ or JMS implementations (Oracle now has WebLogic JMS in its arsenal). In addition, you will see Oracle leverage the Coherence and JRockit components within the core platform, offering high performance Java/J2EE distributed caching and high performance, low latency JVM with deterministic garbage collection for guaranteed response times for Java apps. This is going to be really cool.

•The next layer is connectivity where Oracle has a broad set of adapters. Broadly we classify these into technology, mainframe, application adapters and then adapters provided by third party partners. All these adapters are used by BPEL PM as needed - the most commonly used are Database adapters, JMS/AQ Adapters, Ebusiness Suite adapters. For partner connectivity, you would use the Oracle B2B product, supporting partner protocols such as EDI, AS2, RosettaNet and vertical-specific adapters such as HL7, etc. Typically, you would see BPEL PM being used for orchestration within the enterprise applications - and it interacts with partners through the B2B component.

•For message and data integration, the Oracle Service Bus is the re-branded Aqualogic Service Bus and provides a leading standalone ESB. For those of you who have heard of Oracle Enterprise Service Bus in SOA 10g, you needn'd be worried by this. The old Oracle Enterprise Service Bus becomes the Mediator component in SOA 11g.

•Oracle BPEL Process Manager is next and it is the strategic product for service orchestration. If you are coming in from a BEA WLI background you will find this to be a very easy product to master as you are familiar with the key concepts around service orchestration.


•On the right hand side are the Governance components - design time governance (Repository, Web Services Manager) and run time governance (Service Registry, Enterprise Manager). You might look for services to orchestrate by browsing the Repository and put in your BPEL-PM based services into the Repository for others to leverage. At run time these might be invoked by a dynamic lookup through a UDDI registry. The BPEL-PM based services might be secured using Oracle web services manager. And you might monitor the uptime and response time of your BPEL PM based services through Enterprise Manager.

•At the top are Oracle BAM which provides Business Activity Monitoring through real-time, business user friendly dashboards and Oracle CEP, the re-branded Web Logic Event Server for doing queries, aggregation and correlation of events across disparate event streams. The way I think about BAM is like looking through the front windshield while driving. BAM dashboards tell you what is happening NOW! Business Intelligence dashboards tell you what happened in the past. In BPEL PM, you add "sensors" to your process flow and you can render data on the process dashboards in real-time within 2-5 seconds of the event occuring. Moreover, from BAM you can instantiate BPEL-PM processes and take action to address the adverse business condition.

• BPA Suite, our OEM relationship with IDS Scheer for their ARIS toolset, offers sophisticated process modeling capabilites and the new BPM Suite (formerly Aqualogic BPM) enables business users or less technical IT staff to participate in the process modeling, design, simulation and monitoring lifecycle. Of course, JDeveloper is the strategic IDE. The BEA components use Eclipse today. You could model your organizational goals, objectives, products and services, functional org structure, data and business process in BPA Suite - then share a common metadata model with IT - so that the developer building the bpel pm process in JDeveloper is working off the same model that the business analyst put together. This is referred to as "round trip" between BPA and JDeveloper. The common metadata model is simply BPEL with annotations format. BPA models are developed in BPMN.
Now that you have an understanding of the different SOA, Process and Event technologies get your hands dirty by working through a tutorial. Enhance your understanding by reading the relevant product documentation!



Tuesday, March 24, 2009

This blog will enable you to ramp up on Oracle SOA and Process Management technologies. The picture below from oracle's otn website shows these technologies in the context of the entire Oracle Fusion Middleware suite of products.