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.

Wednesday, April 11, 2012

I hit a speed bump...


My Virtual Box image is corrupted and I have lost all my progress on Fusion Application Installation... lets say 40 hrs of it... :(

Why didn't I back up?
- I did, the corruption started there.

I use my old machine as a Storage Server. After a major milestone during the installation, I bring down the virtual machine and take a backup of the VM Image. Now the VM image refuses to start-up...

I believe the culprit is a 6 year old Hard disk.

(Luckily, I took a backup of VM after IDM installation and configuration)

At-least I don't have to start from scratch...

Friday, March 23, 2012

Fusion Applications Topology


While installing Fusion Applications, I came across this list of Domains/Managed servers.

A total of 9 Domains (Common, CRM, Financial, HCM, SCM, Data Hub, Accounting Hub, Contracts, Incentive Compensation) with 39 Application Managed Servers and 28 Middleware Managed Servers.

The common domain (Figure2, bottom) itself has 1 weblogic domain, 4 application managed servers and 8 Middleware managed servers.

Hefty requirements heh?




Sunday, March 18, 2012

Fusion Applications Installation with screenshots

Here is the blog that has done a good job of illustrating fusion applications installation with screenshots. It covers all the way from installing Oracle Enterprise Linux on a Virtual Box to Provisioning the environment.
http://www.oratraining.com/blog/2012/02/oracle-fusion-applications-installation-step-by-step-guide/

In addition, Oracle provides documentation (surprisingly with screenshots) for enterprise deployment
Oracle Fusion Applications Enterprise Deployment Guide
http://docs.oracle.com/cd/E25054_01/fusionapps.1111/e16684/toc.htm


I have personally attempted the installation.
- Installed and configured all Identity management components.
- Everything was successful until provisioning the actual Environment

My setup:
Oracle Virtual Box + Oracle Enterprise Linux 5.7 64x
12GB Ram + 4 Core processor + 350 GB Harddisk + 25GB SSD Swap


Tuesday, February 7, 2012

Oracle Identity Management vs. Oracle Identity and Access Management


Oracle naming convention for their products confuses a lot of people. Well, I am one of them. I recently started looking into the Fusion Applications (11.1.1.5.0) and found that the identity management is split into 2 separate installations.

One is the Oracle Identity Management and the other Oracle Identity and Access Management.

As of 11g (11.1.1.5.0)

Oracle Identity Management includes:

  • Oracle Internet Directory
  • Oracle Directory Integration Platform
  • Oracle Virtual Directory
  • Oracle Directory Services Manager
  • Oracle Identity Federation
  • Oracle HTTP Server (hmm...)

Oracle Identity and Access Management includes:
  • Oracle Access Manager Server (also includes WebGate)
  • Oracle Adaptive Access Manager
  • Oracle Identity Manager
  • Oracle Identity Navigator
  • Oracle Security Token Service
  • Oracle Entitlements Server
All of these can be logically divided in to 3 categories.

- Directory Service
Access Management 
Identity Management