Thursday, April 8, 2010

First BPEL process on RiftSaw

  1. Deploy the BPEL Designer plugin
  2. Follow  the instructions at http://chathuriwimalasena.blogspot.com/2009/09/developing-simple-bpel-project-with.html to create and deploy the application
  3. In the Section "For 3.1.2 Designing Deployment Descriptor", in Step 2, make sure that all your files are under bpelContent folder. If not the AssociatedPort, Service and Binding appear blank.
  4. Also follow the PDF at http://www.eclipse.org/resources/resource.php?id=429 to create service, port and binding.
  5. To deploy, right click on "bpel-deploy.xml" and select "Make Deployable". This pops the server where you would like to deploy.(assuming that you have already configured the server).
  6. I could successfully test it with SoapUI
  7. Log in to the console to manage the process instances at http://localhost:8080/bpel-console. The default userid/password is admin/password
My Initial Thoughts
  • Having worked on a commercial tool - Oracle SOA Suite 11g, JBoss-RiftSaw comes as a welcoming experience. At no time did I get the feeling that it was inferior to the Oracle BPEL. So, I am going to move forward to evaluate other features.

BPEL2.0 for JBoss - RiftSaw

JBoss released RiftSaw an open source BPEL 2.0 engine that can be deployed on JBoss container.
http://www.jboss.org/riftsaw You can go through the feature list here.

Download the BPEL Designer plugin from http://www.jboss.org/tools

Note : Before you install, please check the Release Notes for the Known Issues. The one known issue (copied below) alarms me and IMO RiftSaw2.0 is NOT yet production ready till this issue is fixed. However, the features and plugin are very promising for an open source application and I hope Redhat will make it more stable in the future releases.

RIFTSAW-186 - an unusual timing issue where the ODE engine removes the process instance before the final response message has been sent. There appears to be some form of synchronization issue in the ODE engine, but only occurs under very specific circumstances.

Installation
  • Follow the installation instructions provided on the website http://docs.jboss.com/riftsaw/publish/en-US/html/index.html. Additionally, please check the following(as I thought some were missing or not obvious)
  • On Windows, I set the C:\riftsaw-2.0.0.Final\install\deployment.properties
    • org.jboss.as.home=C:\\jboss-soa-p-standalone.5.0.0\\jboss-esb
    • org.jboss.esb.home=C:\\jboss-soa-p-standalone.5.0.0\\jboss-esb
    • database=oracle


  • Set the C:\riftsaw-2.0.0.Final\db\jdbc\oracle.properties

  • For Oracle, copy ojdbc14.jar to C:\riftsaw-2.0.0.Final\db\drivers

Monday, April 5, 2010

JPDL or BPEL

This is the question that any Architect developing solutions on JBoss SOA platform encounters. I found some useful insight on this by the JBPM founder http://processdevelopments.blogspot.com/2007/04/bpel-compared-to-jpdl.html which very much states that JBPM-BPEL is more suited to orchestrate web services while JBPM-JPDL is more suited to orchestrate business objects.(POJOs or EJB)

IMHO, I think BPEL over JPDL is better for the following reasons
  1. BPEL is a specification that all vendors comply to.
  2. Portability. Any solution that complies to BPEL specification should be portable across another vendor's BPEL engine. This is as long as we do not implement any vendor's BPEL extensions which are not portable. Parallels in portability can be drawn to EJB here. I believe that the specification is going to be more mature over the period of time as all the major vendors IBM, Oracle and Microsoft support it.
  3. I would think that the same specification would grow to make a natural fit for POJOs so that there is only one robust business process/workflow engine that does not differentiate between a Web Service and a POJO Service.

ESB and BPEL plugins for Eclipse

I downloaded JDeveloper3.0 expecting that it would make the development with SOA easier. Unfortunately, it does not come with ESB or BPEL plugins. Please do not go through the hassle of installing the BPEL plugin 0.4 as pointed at http://jboss-soa.blogspot.com/2010/04/bpel-designer-for-jboss-eclipse-plugin.html

Instead you may be better off by getting the latest Eclipse and download the plugins from JBoss - http://download.jboss.org/jbosstools/updates/nightly/trunk/. Get the JBoss BPEL Editor (1.0) and JBoss ESB Tools plugins.

Thursday, April 1, 2010

Working with jBPM-BPEL in JBoss

If you install JBoss SOA Platform Standalone 5.0, it comes with ESB and jBPM-jPDL. The default support for BPEL is missing. To support BPEL you need to download the jbpm-bpel-1.1.GA.zip which was created in 2007. Unfortunately this is not certified with 5.0 and the last version that is supported is 4.2.2.

Note(update on April6 2010) : All the tasks below have become redundant as JBoss released RiftSaw2.0 on March31. http://www.jboss.org/riftsaw. This is a BPEL engine that supports 2.0 spec. It also comes with a BPEL designer as Eclipse plugin. So, you should be using this till it is packaged with the JBoss SOA Platform.

So I installed JBoss 4.2.2 in the same machine to deploy the jBPM BPEL. When you try to install it on the same machine you will come across  the port binding conflicts. You will have to patiently resolve them. If you have a choice you will be better off to install on a separate machine.

To install the jbpm-bpel, you need to extract the jbpm-bpel-1.1.GA.zip.  In the jbpm-bpel-1.1.GA\config\jbpm.hibernate.cfg.xml, you need to update the following properties
  • hibernate.connection.datasource should point to the correct datasource. In my case it is Oracle, so java:/OracleDS
  • org.hibernate.dialect.HSQLDialect should point to the correct dialect. Since it is Oracle, I set it to org.hibernate.dialect.Oracle10gDialect
To deploy the ear file, do the following
  • Update the oracle-ds.xml to connect to the databse.
  • Copy the [DB]-ds.xml to the C:\jboss-4.2.2.GA\server\default\deploy folder.
  • Update the jbpm-bpel-1.1.GA\config\build.properties file
  • Run ant deploy.ear. This deploys the ear file in JBoss
Go to http://localhost:9090/jbpm-bpel/ to see the console
Click on "Database Connection" and "Create Schema". This will create the schema.

Now you are all set to start working on BPEL.
I found the document BPEL quickstart with Eclipse Designer useful to start.

BPEL Designer for JBoss - Eclipse Plugin 0.4 - Installation

The BPEL Designer for JBoss comes as a plugin for Eclipse. I installed this on JBoss Developer Studio 3.0 which is build on Eclipse 3.5.

Note(Update on April6, 2010) : You should not be installing the 0.4 plugin as JBoss release RiftSaw2.0 and BPEL designer as an Eclipse Plugin.

Instructions
  • The plugin 0.4 version is available at http://download.eclipse.org/technology/bpel/update-site/ Use this as the site URL to install the plugin from in Eclipse
  • When you try to install, Eclipse throws the error "Cannot complete the install because one or more required items could not be found.Software being installed: BPEL Visual Designer 0.4.0 (org.eclipse.bpel.feature.feature.group 0.4.0)Missing requirement: BPEL Visual Designer 0.4.0 (org.eclipse.bpel.feature.feature.group 0.4.0) requires 'javax.wsdl [1.4.0,1.5.0)' but it could not be found"
  • This is because of the missing WSDL4J.jar version (1.4 or 1.5). The default version that comes with Eclipse plugin is 1.5.1. You should delete this jar file
  • And copy http://download.eclipse.org/tools/orbit/downloads/drops/R200 90529135407/bundles/javax.wsdl_1.4.0.v200806030407.jar to the plugins folder
  • Now start "eclipse -clean" and then install the plugin