If you can't read please download the document
Upload
rafal-rusin
View
4.378
Download
3
Embed Size (px)
Citation preview
Task Handling
Using Open Source Components
(Apache HISE, Apache Camel)
Rafa Rusin [email protected]
Warsjava 2010-10-23
Introduction to WS Human Task
Specification describes an XML language to enable the integration of human beings in SOA systems
Human tasks are services "implemented" by people, like transation service or approval service
Human task definition (htd) specifies various task properties, like task name, people assignments (potential owners, administrators), task renderings (to present task subject and contents), timeouts, escalations and notifications.
WS Human Task Example
Creating sample Human Task Definition (HTD file)
Fred ...
{htd:getInput("ClaimApprovalRequest")/cla:cust/cla:id/text()} {$outcome} ]]>
Task Operations
Task Operations Service is specified in WSDL formatIt contains 74 operations to perform by various types of users, like Task Owners, Business Administrators, etc.
Authentication is required to access those operations
(for example WS Security)
Example operationlisting tasks
ALL ACTUALOWNER 10
Task Operations: Basic Task Lifecycle
Basic Task lifecycle consists of claim, start and complete operations performed by Task Operator
123
123
123 someOutputData
Task Operations: Advanced Lifecycle
Task Operations allow various operations.
Examples are:
Forwarding, Nomination, Suspend / Resume,
Suspend Until
Additional operations are:
Managing Attachments, Renderings, Task Priority, Querying tasks
using where clause
Apache HISE
WS Human Task Implementation
HISE is Human Interactions Service Engine
http://incubator.apache.org/hise
Why Open Source?We believe it's better to not reinvent wheel in each project dealing with tasks handling
We feel it's better to start from existing project instead of developing Task Handling engine from scratch
We accept extensions to suit needs for various projects requirements
Apache HISE - Installation
What's inside:Engine (JPA based, H2 Database by default)
Camel Integration
GWT Frontend for Task Operators
Detailed instructions are in User Guidehttp://incubator.apache.org/hise/user-guide.xhtml
WAR DistributionUnzip and put htd files in WEB-INF directory
ServiceMix 4 OSGi Distributionfeatures:install hise-h2-test-example-osgi
GWT Frontend in separate web application (WAR)
Apache HISE
Claims Handling Example
Detailed instructions are in User Guidehttp://incubator.apache.org/hise/user-guide.xhtml
WAR DistributionUnzip and put htd files in WEB-INF directory
ServiceMix 4 OSGi Distributionfeatures:addUrl mvn:org.apache.hise/hise-karaf/1.0.0-SNAPSHOT/xml/features
features:addUrl mvn:org.apache.hise.examples/claims-handling-karaf/1.0.0-SNAPSHOT/xml/features
features:install claims-handling-example-osgi
Apache HISE
Claims Handling Example
We pick ServiceMix 4 OSGi example
Task Operations is exposed under http://localhost:8181/cxf
Apache HISE - Camel Integration
Camel integration is done using simple Camel Context
HISE exposes two direct Camel endpoints for each Task
Apache HISE
Claims Handling Example
After installing example, we can copy approve.xml file to input directory to create a task
Then, we can resolve it using either call to Task Operations Web Service or GWT frontend
After Task is processed, outcome is sent to output directory (as specified in Camel Context)
123 Edmund Zorn 1234 usa 2 2009-01-02T12:00:00
Apache HISE GWT Frontend
We can manipulate tasks using GWT Frontent application. Following screenshot shows how it looks like
Apache HISE
Future Plans & Summary
Release 1.0 version (it's almost out)
Extend Camel usage We plan to expose Task Operations directly over Camel
Adding Forms to GWT Frontend using Renderings
Simplify GWT Frontent by integrating directly with Camel
Our community is growing.
We have 7 current committers and 3 pending to vote.
HISE has commercial application
(it's running in production)