Friday 29 March 2013

Transparent replacement of Oracle workflow in Oracle Forms Applications by SOA

Yesterday I did a presentation about a project I did last year, where we replaced Oracle Workflow in an Oracle Forms application by SOASuite.
Often Oracle Workflow standalone edition, is used closely integrated within an Oracle Forms/Reports application. This means that you'll run in several issues:

  1. How do you start the proces in SOASuite from your Forms or database triggers?
  2. How do you handle end-user interactions: create notifications/tasks to your end users?
  3. What to do with the process-block activity?
  4. What to do with the automatic activities: the custom application services you call from the workflow process?
  5. And how to transform your workflow process to BPEL?
Then there were two main issues:
  1. Reset & Restart functionality, a.k.a. Expedite in Workflow
  2. Long running database transactions
About the latter I wrote two articles how we solved that technically:
I tried to upload my presentation to SlideShare, but that did not work properly. But the pdf of the presentation can also be found on the website of the Oracle Usersgroup Holland.
For non-Dutch visitors: it's in Dutch.

Friday 8 March 2013

Fusion Middleware Community Forum 2013

A few weeks ago I went to the Fusion Middleware Community Forum 2013. Unfortunately I wasn't in the opportunity to write anything about it, until now.

First it was great to meet many peers in our interest-area. Not only because it was in a splendid environment:
And we had a social event on tuesday in a little castle:

(Sorry my phone had a little difficulty with the little amout of light). And there we had a nice diner where I could sit beside one of the few women (Simone Geib) and a former co-worker from an earlier customer that I got re-acquainted with (Arnoud Roth). So I had to share my attention.

Anyway, there were many interesting subjects, but to name the ones that interested me the most:
  • BPM Suite PS6: what's new?
  • BPM Process Accelarators
  • B2B11g presentation
  • ADF11g Mobile demo, especially related to SOA and BPM
  • What's new in SOASuite, 'Fast Data' (in stead of Big Data), Cloud and Mobile.
  • SOASuite 12c sneak preview
  • Workshops on BPM Suite PS6
I'm not going to write now on everything. But I'll try to follow up later.

BPM Suite PS 6: what's new?

Well a lot. And they call it  'Model to Execution'. It occurred to me that in the latest patch sets not much changed on the SOA part. Actually it is considered stable. I've seen in the SOASuite12c sneak preview a lot of nice new features, but I can't write about that. However I must say that there were quite some things that I felt like waiting for them for about 6 or 7 years already. Let me put it this way: I did not like Cobol since it does not has functions. And although I do like BPEL, I do miss something like that.  

But on BPM11g a lot changed every Patch Set. PS5 was a major one, where amongst others we've got:
  • Correlation Sets, like we had in BPEL for years
  • Import of Oracle Workflow schema's (and I believe Visio?)
  • Alter Flow (change the route of an already running instance to an earlier or later activity)
  • And improvements in Process Composer
  • Mark activities as 'Draft': so to be implemented
Now in PS6 they put a lot of effort in Process Composer. What I do like in that tool is that it really enables you to have a joined modelling environment with your Business/Process Analysts. Earlier in BPM10g it turns out that the developers modelled the processes based on designs/functional requirements of the BA's delivered in MS Word documents. Now they can model them theirselves. The implementation, however, is done by the developers (as it should). Think about the screens, the services, etc.

Until now there were a few lacks in modelling in Process Composer:
  • Simulation had to be done in Studio: so in JDeveloper
  • Taskscreens had to be build in ADF by a developer
  • Execution could only be done after real deployment in the test environment
These are the major areas addressed in Composer. Now I don't have screendumps at hand. I could make them, but I'm not sure I'm allowed to publish them. As soon as I've got clearance or when it's GA (Global Available), I'll settle my self to install it and create pictures.
But let me brievely describe them.

Simulation can now be done in Process Composer. And that is a great thing, since now the Analyst can model the flow and see how it will behave, without waiting for a developer to import the model in JDeveloper and do the simulation. I think they ported the whole tool from BPM Studio to Composer, because it's all there: Assign resources, define probabilities on flow-paths, create simulation models, execute what-if's etc. 

Webforms: Oracle incorporated an external tool that allows you to define screens within Composer. You can declaritively define screens, with all the necessary artefacts (date, number, textfields, radiobuttons, etc.) including tabs, tables and repeatable areas, just by drag-and-drop on a canvas. If you're familiar with BPM10g or Aqualogic BPM 6 or before, then you might recognise the Business Object Presentations in it. Since it really does look like it, with a slightly different look&feel, I at first thought it was a port of that part of the product to the Composer. But actually it is an external product that Oracle incorporated in the tool (as far as I know they did not acquire it (yet)).  Now, the beauty of it is that it not only is a Mock that allows the BA to discuss with the developer on how the screen should look like in ADF. It is really a usable screen. Along as you build up your screen, it will create the underlying dataobjects that is needed to provide the screen with input and after submit will get you the output. But you can also use existing dataobjects from your process to build up your Webform. In the end it can really be used in production. It will be embedded in a ADF form with the basic controls of a BPM task. So you can leave it that way and use it in production in case it suffice. Or you can ask a developer to recreate the screen in ADF if you have additional requirements. But you don't have to wait for the end result of the developer. You're able to go further with your model, put it even in production and plug in the ADF form in a later stage (even after go-live!).

Question: can you edit the webforms in Studio? No, in Studio you still should use ADF to create your forms. When you import the project into BPM Studio, the Webforms artefacts will be imported in the project as a zip-file. With large signs "Do not open!" on it. Don't even think about it. We've been assured that the moment you open the zip, a personal email will go to the BPM Product managers and the development team... And you're excluded from further use... So now you've been warned.

Now, a developer could create a template project, with business objects definitions (basically xsd's that in my opion should reside in a structured way in the MDS) together with the service exposures and service references needed in a BPM process. Based on that a Process Analyst can create the complete flow, including all the service calls, task forms, completely ready to execute. And than comes the third great part: he can do it himself really in the Process Composer. There will be a run/test button that will wrap up the project and do a sort of background-test-deployment to a seperate test-domain/partition in the SOASuite. And then you can really step by step execute the flow. At each Webform you can choose to really execute it with a authorised user from the Organisation Model, or just choose  an outcome. Then the flow will go further executing all the service references and so on. 
Mark that it is really a sort of test deploy. It won't get deployed to the default or other partion of the SOASuite. For that you should import the project into Studio, version it in for instance Subversion and use your deployment framework to deploy it to the correct environment for further testing.

And that is Model to Execution with BPM Process Composer. I really think they did a great job. A Webforms editor in Studio would have been nice. Or a Webforms to ADF converter. Or even better: create an ADF alternative for the online Webforms-composer... But you'll find that BPM11g is coming more and more mature. I'm really looking forward to have my fingers on it and use it with a customer in the Netherlands. Any customer over here who is interested?

SOA/BPM Mobile

Lately two of my colleagues gave a presentation on our Teammeeting about ADF and Apex mobile. In fact they turned out to be right given the nice ADF Mobile demo by Mr. Forms Grant Ronald. He brought it well...
Now it brought me with the question: ADF Mobile is nice but how about BPM Mobile. Because there is where I see the most interesting area of mobile apps in the business. You have a business process and there are people on the road who are in fact executing your business model. For instance last week my dishwasher broke down (it really did) and we had to buy a new one. Now I could have installed it myself, if I would give myself the time. But then I had to bring a way the old one myself. So for a relatively small amount a mechanic was coming over to bring my new dishwasher, removed the old one and installed the new one. 
Would'nt it be great if he could get his order as a task in his iPhone or Android, together with the address and all the details, may be a pdf with the order attached? That he could link to the navigator to be routed to my address? And after the install just push a button to complete the task and get the new order?
After that the process could go further with for instance a complete order subprocess.

So I wondered if there were plans to create a mobile version of the BPM Worklist Application. It turns out there aren't any. What they do plan is to deliver REST services on the BPM API's. 
For now you could build those REST services your self. It's one of the things on my wish-list to figure out.
Then you could create a dedicated ADF-Mobile app calling those REST services. And then it should not be rocket science to have the app build. Thinking about it, maybe this is actually the way to go.
One of the major issues with ADF mobile (as I see) is the deployment. You have to have your hands on the phone that needs the app. There is no way to deploy it using a market-mechanism.


It was very good to have a slot about B2B11g. I think it is a hardly known, very under-lightened piece of SOASuite. That could really lighten much of the hard work of interacting with peer-companies or geographically dis-located enterprise-departments. Although to me it was not very  new. It was hosted by Simone Geib (product manager of SOASuite) but actually co-presented and demoed by Krishnaprem Bathia, someone I knew from my days at the Dutch Collection Bureau of the Department of Justice. Back then we worked closely together to get B2B10g with the ebXML adapter working for the customer. And it was nice to be able to ask him some questions.

One of the things I would put up for improvement is that in the current release you need to have an agreement for every document-exchange-capability with your trading partner. There is a generation button that allows you to create an agreement for every document that a trading-partner is configured to be allowed to receive or send. But then you might get a lot of agreements each having a validity period and for each you have to provide the correct identifiers and so on. It would be nice to be able to group multiple capabilities into a small number of agreements. So you could releate a group of capabilities to a certian project or delivery or contract that have a particular effectivenes period. So you could have a TP that will have some capabilities that from let's say april the first will be effective. Then there is a follow-up project that allows the TP to have additional capabilities starting from september the 1st. Be able to group them into an agreement will improve the insight in and the management of agreements of the TP.
Besides the generation button in the UI, you could also use the selfservice API's/Ant tasks of B2B, like I demonstrated in my earlier post

Last year I had a project with an energy net management company in the Netherlands. And it had to exchange messages with around 80 trading partners. Looking into all the URL's it seemed to me that no other used B2B11g. But it seems unlikely to me that no other uses SOASuite. So they have B2B11g in the house. 

BPM Process Accelarators

Last week I delivered the OPN bootcamp on AIA 11g. And the week before I saw this presentation and they seem to have some in common. However they are seperate initiatives within Oracle.
With BPM Process Accelerators they create standard solutions on common Business Processes. And they are shared (haven't heard about license costs), to be reused. They will include best practices on BPM Process Modelling and common usages. It seemed to me that the library of models is very filled at the moment. But it can be very helpful as a startup for many cases. Probably most companies have about the same processes like employee-hiring, procurement, declarations, etc. Although everyone does the job in their own way, it helps if you have a template on how someone else did it.

BPM11g PS6 Workshops

Well here we got to play with the Webforms, Simulator and Model Execution within Process Composer. Some presentations on use and bestpractices. Only a pity that there was little time. We had the whole thursday and friday morning. But in the afternoon we had to leave, while the presentors couldn't get enough of it. They're were good and many thanks to them. I hope I can finish the workshop soon completely and maybe deliver them myself. So, show your interest.