Thursday, August 15, 2013

Oracle Human Task - Business rules based worker assignment

In Oracle BPM/SOA 11g, the Human Workflow allows worker assignment based on Oracle business rules.

This tutorial covers the scenario in a step-by-step manner.
http://beatechnologies.wordpress.com/tag/rule-based-routing-in-human-workflow/

The rules engine provides the following functions to facilitate different type of assignments
  • CreateResourceList
  • CreateSupervisoryList
  • CreateManagementChainList
  • CreateApprovalGroupList
  • CreateJobLevelList
  • CreatePositionList
More about it here (Oracle BPM Implementation Guide)



My observation is that each human task has to have a separate business rule component. This is odd considering I can have identical business rule logic for multiple tasks. One solution is to link a generic dictionary across all the BR components. However, each task will still required to have a separate rules component.


Monday, April 29, 2013

BPM 11g interaction with Events (EDN)


The 'events' in SOA/BPM 11g suite are represented as 'signals' in a BPMN process.

Here is a tutorial documenting the interaction between BPMN process and events.

http://niallcblogs.blogspot.com/2010/11/bpm-signal-events-and-oracle-edn.html
http://niallcblogs.blogspot.com/2010/11/bpm-signal-events-and-edn-part-2.html

Monday, April 15, 2013

Jdeveloper Memory Usage Tweaks

Jdeveloper is a memory hog.

Update 1:
I also encountered a strange issue. Jdeveloper 11.1.1.3 64-bit (yes, its 2 yrs old at this point) does not work well with JDK jdk1.6.0_30.

"Unable to launch the Java Virtual Machine" - Discussed here


Tweak Jdev memory settings
http://bexhuff.com/2012/09/jdeveloper-memory-and-performance

Tweak Java for better UI performance
http://themindstorms.wordpress.com/2009/01/21/advanced-jvm-tuning-for-low-pause/


Sunday, September 23, 2012

SOA 11g Human Workflow Overview


Although workflow is already part of other oracle products (EBS, Siebel…), Oracle has redesigned the workflow based on “Open standards” that can provide consistent user experience, ease of customization and many other advantages… 

In this post, I am going to discuss about SOA 11g Human workflow. 
Features
Architecture
Concepts
Tutorial

Overview
In SOA 10g, human workflow is an independent component. It had to be deployed and configured separately. In SOA 11g, it’s tightly integrated with other components through the SCA architecture. The main components of SOA 11g human workflow are shown in the following figure.  On the left are the workflow initiators (typically BPEL or a mediator). However, the Human Task component is also exposed as a SOAP service that can be invoked independently. In the middle is the core human workflow component that is formed by a combination of workflow services. We will discuss about these services later. On the right, there are the client applications that present the user the necessary web (or another) interfaces to act on the task.

BPEL invokes human task component when a manual task needs to be performed
A task is created in the Human Task service component. (The task metadata is used by the component to manage lifecycle of the task)
The Human task service component identifies the necessary users/roles/groups using an identity service and assigns the task
These tasks are presented to the user through the client apps. (Oracle BPM worklist is the default app)

(Credit: http://docs.oracle.com/cd/E23943_01/dev.1111/e10224/bp_introhwf_shared.htm)

Human workflow Features
Here is a list of features that are supported by human workflow.  (http://docs.oracle.com/cd/E23943_01/dev.1111/e10224/bp_introhwf_shared.htm#CIHGEFCI). 

Human interactions with processes, including assignment and routing of tasks to the correct users or groups
Deadlines, escalations, notifications, and other features required for ensuring the timely performance of a task (human activity)
Presentation of tasks to end users through a variety of mechanisms, including a worklist application (Oracle BPM Worklist)
Organization, filtering, prioritization, and other features required for end users to productively perform their tasks
Reports, reassignments, load balancing, and other features required by supervisors and business owners to manage the performance of tasks

These descriptions are at 1000 foot level. The real question is what’s behind the curtain that’s providing these capabilities? Let’s dive into the human workflow architecture to understand the inner workings. 


Architecture
At the core, the human workflow is made up of several workflow services that are orchestrated to provide the different capabilities. 

Service Name
Description
Task Service
Primary service that manages the lifecycle of a Task. This service is invoked by the BPEL to initiate a Task.
Task Routing Service
Task Routing, Assigning and escalations are taken care by this service
Task Query Service
Queries tasks based on several criteria. (Used by client apps)
Task Metadata Service
Provides metadata of the task
Identity Service
This service is part of security infrastructure of the weblogic server.
Notification Service
Sends notifications through User Messaging services
User Metadata Service
Maintains metadata about workflow users. (Vacations, preferences, delegation rules…)
Runtime Config Service
Manages metadata used by task service
Evidence service
Provides storage services for audit trail. Supports digital signatures.

The following figure shows how the different components of human workflow are tied together with SOA 11g infrastructure components.

(Credit: http://docs.oracle.com/cd/E23943_01/dev.1111/e10224/bp_introhwf_shared.htm)

These services are weaved together to provide the features described above. For example, task service uses identity service to retrieve the user information to assign the tasks. Similarly, worklist application depends on the Task query service to retrieve tasks for a specific user.


(Credit: http://docs.oracle.com/cd/E23943_01/dev.1111/e10224/bp_introhwf_shared.htm)

Many of these services are exposed through SOAP web services or EJB’s.  The list is available here. (http://docs.oracle.com/cd/E23943_01/dev.1111/e10224/bp_workflow.htm#BABFFDDF)

Service name
SOAP WSDL location
Task Service http://host:port/integration/services/TaskService/TaskServicePort?WSDL
Task Query Service http://host:port/integration/services/TaskQueryService/TaskQueryService?WSDL
Identity Service http://host:port/integration/services/IdentityService/configuration?WSDL
http://host:port/integration/services/IdentityService/identity?WSDL
Task Metadata Service http://host:port/integration/services/TaskMetadataService/TaskMetadataServicePort?WSDL
User Metadata Service http://host:port/integration/services/UserMetadataService/UserMetadataService?WSDL
Task Report Service http://host:port/integration/services/TaskReportService/TaskReportServicePort?WSDL

Here the Task service and Task Query services are loaded into SOAPUI.



These services enable access for 3rd party applications to perform actions on the tasks. For example, a custom worklist application can be integrated into a 3rd party vendor portal.

A tutorial on how to use the Human task web services is available here.

This is the "behind the scenes" overview of Human workflow...

Here is good tutorial about Human workflow from Oracle development team 
http://redstack.wordpress.com/2010/01/08/human-workflow-in-11g/


Tuesday, May 22, 2012

Fusion Apps - A beginners guide

Unfortunately there is no guide available...

But this should do a good job of explaining where we stand.






Source:
http://www.oug.org/fusionapps/ypufa_map_13.png
http://www.oug.org/fusionapps/

Sunday, May 6, 2012

Oracle SOA/BPM Suite 11g (11.1.1.6) Pre-built Virtual Machine - Now available

Update1#
www.evita.no/ikbViewer/soa-bloggen/artikkel/77050/new-virtualbox-image-for-soa/bpm-first-impressions

========================================================================
Oracle released the new version of SOA/BPM suite (11.1.1.6.0 - 11g-r1-ps5) pre-built virtual machine image.
This replaces the existing SOA/BPM suite (11.1.1.3.0 - 11g-r1-ps2) on Oracle Linux (32-bit) 5 Update 4.

The new release includes the following components:
  • Oracle Linux (64-bit) EL 5 Update 5
  • Oracle Database XE 11.2.0
  • Oracle SOA Suite 11.1.1.6.0 (includes Service Bus)
  • Oracle BPM Suite 11.1.1.6.0
  • Oracle WebCenter Content (Enterprise Content Management) 11.1.1.6.0
  • Oracle WebCenter 11.1.1.6.0
  • Oracle JDeveloper 11.1.1.6.0
  • Oracle JRockit R28.2.0-79-146777-1.6.0_29s
  • Oracle Java SDK 1.6.0_29-b11

Major changes include:
  • Upgrading the OS to 64-bit (I love this because I can make full use of system resources. Say 16GB ram, extend with AIA/PIP)
  • Including OSB, WebCenter out-of-box
  • Ability to run as a server (No GUI)
  • Improved GUI tool to manage domains (Restricts one domain per VM instance)

The VM image is available here; http://www.oracle.com/technetwork/middleware/soasuite/learnmore/vmsoa-172279.html
Here is the doc; http://www.oracle.com/technetwork/middleware/soasuite/learnmore/soabpmvirtualboxreadme-1612068.pdf
You will need to install Oracle Virtual box and import the image.

Things to know before starting:

  • The pre-built image comes as a 7zip file, that is split into 7 files (~2GB each). Oracle did not include the scripts for combining these files. Here is the script that I used to combine them.
  • echo combining parts into oel5u5-64bit-soabpm-11gr1-ps5-2-0-M.7z...
    copy /B oel5u5-64bit-soabpm-11gr1-ps5-2-0-M.7z.001+oel5u5-64bit-soabpm-11gr1-ps5-2-0-M.7z.002+oel5u5-64bit-soabpm-11gr1-ps5-2-0-M.7z.003+oel5u5-64bit-soabpm-11gr1-ps5-2-0-M.7z.004+oel5u5-64bit-soabpm-11gr1-ps5-2-0-M.7z.005+oel5u5-64bit-soabpm-11gr1-ps5-2-0-M.7z.006+oel5u5-64bit-soabpm-11gr1-ps5-2-0-M.7z.007 oel5u5-64bit-soabpm-11gr1-ps5-2-0-M.7z
  • Once imported into VirtualBox, the VM consists of 2 files, approximately 15GB each. You will require 30GB of disk space in total. In addition, the image is setup to grow based on extensions (AIA / OER / OSR...)
  • The VM image only supports one running domain per instance. During initial setup, while importing the image to VM, you will be prompted for domain setup. This is where the domain configuration is done. If more domains are needed, you need to re-import the VM to virtual box (with a different name).
  • Available domains are: dev_bpm, dev_bpm_spaces, wc_spaces, dev_soa, dev_soa_osb (I chose this one)
  • Credentials
  • Administrative Login - weblogic/welcome1
    BPM Workspace - weblogic/welcome1
    Oracle XE Database - All passwords are set to welcome1
    OS Login - oracle/oracle, root/oracle

Setting up the VM:

  • Combine the files and extract OVM image. Use the commands provided above to combine the files into one image. Then use extract the OVM image using winrar or other software.
  • Import the OVM image into VirtualBox. In VirtualBox, goto File > Import Appliance and choose the OVM file extracted in the previous step.
  • Configure the VM settings - Tune the VM to work with your hardware. All the details are mentioned in the doc provided by oracle (link).
  • Configuring the domains - Details available in oracle doc.





Thoughts: This pre-built image serves as an excellent platform for learning SOA suite without having to spend hours building your own. Although the machine is limited to running one domain, it can be modified to support multiple domains in a single instance.