Apache HISE + Apache Camel

Embed Size (px)

Citation preview

Task Handling
Using Open Source Components
(Apache HISE, Apache Camel)

Rafa Rusin [email protected]

Warsjava 2010-10-23

[email protected]

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)