Enhydra Shark Together Workflow Server and Enhydra JaWE Together Workflow Editor Workshop - PowerPoint PPT Presentation

1 / 46
About This Presentation
Title:

Enhydra Shark Together Workflow Server and Enhydra JaWE Together Workflow Editor Workshop

Description:

the Run-time control functions. the Run-time interactions with human users and IT application tools ... Main menu, main toolbar and info bar. 4 areas with components ... – PowerPoint PPT presentation

Number of Views:339
Avg rating:3.0/5.0
Slides: 47
Provided by: toge
Category:

less

Transcript and Presenter's Notes

Title: Enhydra Shark Together Workflow Server and Enhydra JaWE Together Workflow Editor Workshop


1
Enhydra Shark / Together Workflow Server and
Enhydra JaWE / Together Workflow Editor Workshop
2
Basic Introduction to Workflow Technology
3
Basic Introduction to Workflow Technology
  • What is Work Flow technology
  • What is Workflow
  • What is Workflow Management System
  • WFM systems support in three functional areas
  • the Build-time functions
  • the Run-time control functions
  • the Run-time interactions with human users and IT
    application tools
  • What is Workflow Enactment Service
  • What is Workflow Engine

4
Generic Workflow Product Structure
5
WfMC and Workflow Reference Model
Interface 1
Interface 5
Interface 4
Interface 2
Interface 3
6
Enhydra JaWE / Together Workflow Editor
7
TWE Introduction
  • Graphical application for XPDL Process Definition
    Modeling.
  • Makes creating and editing XPDL easy.
  • Uses swim lines to represent participants of the
    process.
  • Every XPDL element has property panel for editing
    element properties.
  • Final output of modeling process is a XML file
    based on XPDL schema
  • XPDL created by TWE can be interpreted by any
    XPDL workflow engine
  • Accomplished three main goals
  • Graphical representation of process definition
  • Export of process definitions to XPDL
  • Import of any valid XPDL and its graphic
    representation

8
XPDL and TWE
  • Package the top element of XPDL schema
  • External package concept
  • How does TWE support external package concept
  • How to create new XPDL and to define package
    properties in TWE

9
XPDL and TWE
  • Workflow Process Definition
  • Graph and property panel representation of
    workflow process definition in TWE
  • Start/End markers

10
XPDL and TWE
  • TypeDeclaration
  • Standard XPDL data types
  • Custom data types
  • Package scope
  • Problems with a scope - external packages and
    application definitions
  • Shark solution to scope problem
  • How to use it when defining variables
  • How to define in TWE
  • Participant
  • representation of users/roles/system
  • External package/Package/Workflow process scope
  • Where to define - best practice
  • How to define in TWE
  • TWEs Special Arbitrary expression participant
  • TWEs LDAP support

11
XPDL and TWE
  • Application
  • representation of applications to be executed at
    runtime
  • External package/Package/Workflow process scope
  • Where to define - best practice
  • How to define in TWE
  • How to use it from Activitys Tool
  • Formal parameters like a Java method parameter
    definition
  • DataField
  • Synonymous (workflow relevant data, variable)
  • Usage within workflow (conditions, actual
    parameters, )
  • Data types standard/custom
  • Scope
  • How to define in TWE
  • How to use it in conditions, actual parameters,
    deadline expressions,

12
XPDL and TWE
  • Activity
  • represents the unit of work
  • generally associated with their performers and
    application assignments.

13
XPDL and TWE
  • Different activity types
  • Manual activity
  • Tool activity
  • Route activity
  • Sub-Flow activity
  • Block activity
  • How to define in TWE
  • Transition
  • Link between two activities
  • Can describe the condition to get from the source
    to the target activity
  • Different transition types
  • Conditional/unconditional transition
  • Otherwise transition
  • Exception transition
  • Default exception transition
  • How to define in TWE
  • How does TWE validate graphical transition
    insertion

14
XPDL and TWE
  • ActivitySet
  • Group of activities and transitions inside
    process
  • Executed by block activities
  • When to use it
  • How to define in TWE
  • Extended attributes
  • Necessity for vendor specific attributes
  • Primary method to support vendor specific
    extensions.
  • Defined by the user or vendor to express any
    additional entity characteristics
  • How to define in TWE
  • "simple" part of Extended Attribute
  • "complex" part of Extended Attribute
  • Can be defined for every main main XPDL entitity

15
TWE GUI
  • Split into several parts
  • Main menu, main toolbar and info bar.
  • 4 areas with components

16
TWE GUI
  • Components
  • Graph
  • displays the selected process or activity set
  • Graph toolbar
  • Participant manipulation
  • Activity and transition manipulation
  • Standard editor functions inserting, moving,
    selecting and deleting
  • Double click, right click functionality
  • XPDL View
  • Text view of the selected element
  • Highlighting
  • Search function
  • (Graph) Overview
  • overview of the whole process graph
  • easy way to navigate

17
TWE GUI
  • External package relations
  • Relations amongst main package and its externally
    referenced packages
  • Transient package pool
  • Shows packages opened in Transient mode
  • Add/remove Transient packages
  • Copy from transient packages
  • Navigator
  • Hierarchical view of package and its main
    sub-elements
  • Package tree
  • hierarchical view of the whole package/XPDL
  • Properties
  • main details of selected element
  • Search
  • Displays references to the selected object or
    search result
  • Results in hierarchical view

18
TWE GUI
  • Problems
  • Displays information about problems in XPDL
  • Possibility to easily navigate to the problematic
    element
  • WfXML
  • Communication with workflow engine based on WfMC
    If4
  • Uploading/downloading/updating XPDL)
  • Menu Toolbar
  • File (new, open, reopen, close, save, recent
    files,)
  • Edit (cut, copy, paste, undo, redo,.)
  • Package (validation, insert process, properties,
    )
  • Process (properties, )
  • External packages
  • Settings (Language, Configuration)
  • Help

19
TWE Configuration
  • Basic configuration file
  • One property file per component
  • Configuring TWE behavior
  • Configuring graphical properties
  • Possibility to switch between different
    configuration/modes at runtime
  • Shark engine configuration
  • WfMOpen engine configuration

20
Possible TWE customizations
  • Helping XPDL developers to concentrate on
    business problem
  • Making XPDL modeling less error prone
  • Workflow engine dependent customization
  • special ext. attributes and their property panels
  • set of XPDL features it does not support
  • XPDL features interpreted in a special way
  • Introduction of new activity types
  • E.g. automated activities for sending e-mails
  • customized property panel for entering all the
    information
  • Special XPDL template for creating new workflow
    processes
  • TWE can be easily customized in order to support
    these requirements.

21
Modeling XPDLs for Shark
  • Packages script type element
  • Tool activity with sys. participant performer
    and start mode restriction
  • No activity and system participant restriction
  • Type specifics allowed data types
  • Application definition and ToolAgentClass
    extended attribute
  • Deadlines usage of additional (system)
    variables in expressions
  • PROCESS_STARTED_TIME
  • ACTIVITY_ACTIVATED_TIME
  • ACTIVITY_ACCEPTED_TIME
  • Type Declarations and External packages issue

22
Application definitions and tool agents
  • Tool agent interface
  • defined by WfMC
  • Engine access to external system in a standard
    manner
  • XPDL Application definition representation of
    real application
  • like declaring a function in programming language
  • this function is called by Tool activities
    defined in the process flow.
  • Tool activities
  • Provide information about the parameters to pass
    to the application
  • Many different XPDL application can be mapped to
    tool agent represented by the same Java class
  • Those application definitions can even They can
    define different formal parameters.

23
Deadlines, exception handling, transition
conditions
  • Deadlines
  • Defined for Activities
  • A time until activity should be finished
  • Workflow system periodically tests the deadline
    condition
  • If deadline condition is satisfied, process will
    follow the exception transition as defined in
    XPDL.
  • Exceptions
  • Special transition types to model it
  • Modeling what happens in the case of deadline
  • Modeling what happens in the case of exception in
    tool agent execution.
  • Transition conditions
  • Expressions made by the usage of variables
  • Expressions evaluated at run-time
  • Expression must evaluate in boolean value
  • Used to determine if the transition should be
    triggered or not

24
Enhydra Shark/TWS
  • Enhydra Shark / Together Workflow Server

25
Introduction to Shark
  • Workflow engine that executes processes based on
    XPDL definition.
  • Completely based on standards defined by WfMC and
    OMG
  • A library that can be embedded in
    WEB/Swing/Console application, or it can be
    deployed as CORBA service, WEB service, EJB
    service, RMI service,
  • Supports automated, manual and mixed workflow
    processes
  • Extensible work item allocation algorithms.
  • Activities are automated through an extensible
    system of Tool Agents
  • Human interactions are managed through work items
  • Through a worklist API shark clients are able to
    manage work items.
  • Fully transactional behavior with JTA support
  • Can be used in a cluster scenario
  • Easy change of DB used for persistence via DODS.
    It includes scripts for creating tables for DB2,
    HSQL, MSQL, MySQL, Oracle, PostgreSQL,

26
Introduction to Shark
  • A lot of possibilities to configure engine thanks
    to its nice architecture
  • Each shark component has an API, and default
    implementation(s)
  • Standard implementation simply replacable by the
    custom ones
  • Even the kernel itself can be tuned-up.
  • Default kernel does not use proprietary
    extensions of XPDL (extended attributes)
  • Supports ToolAgent concept defined by WfMC.
  • Comes with several useful tool agents already
    defined
  • Supports deadline handling and XPDL exception
    transitions
  • Possible callback to shark from its components
  • Can use custom Java classes as variables
  • Appearing of deadlocks is minimized thanks to the
    DODS buffer transaction.
  • Supports XPDL definition update

27
XPDL and Shark
28
XPDL and Shark
  • Process definition
  • For each XPDL definition there is a factory that
    creates process instances
  • Every process instance has unique instance Id
  • Activity definition
  • Created during process enactment, and based on
    the flow and rules defined in XPDL
  • every activity instance has unique instance Id
  • Variable definition
  • Created during process enactment based on XPDL
    definition
  • The same Id as in XPDL
  • Assigned to process/activity context
  • Value is changing in runtime through shark API or
    during tool agent execution
  • Engine executes processes based on XPDL
    definition
  • Engine interacts with the user that can update
    process/activity variables, and complete
    activity
  • Based on user input, variable values, engine
    determines which activity will be executed next

29
Shark architecture
  • The architecture is divided into three main API
    componentsshark client API, shark kernel and
    shark plug-in APIs

30
Shark client APIs - possibilities
  • API for handling XPDLs
  • Getting the list of uploaded XPDLs (and their
    versions), upload, update, delete, retrieval of
    XPDLs for the monitoring purpose (possible usage
    from the client side to graphically show the
    process flow)
  • API for obtaining the list of uploaded process's
    definitions
  • API for obtaining various runtime and XPDL
    information
  • Core API (OMG API and WAPI)
  • Instantiating processes, aborting
    processes/activities, retrieving/changing
    process/activity variables, completing activity,
  • API for deleting processes, checking deadlines
    and limits, cache handling
  • Filter builder API
  • Filters and OMGs WfXXXIterators
  • Filters and WfMCs WAPI
  • Why to use filter builders?

31
Core client API (OMG API)
32
Shark kernel
  • Implementation of special core kernel API
  • A glue that bounds client API implementations and
    internal component implementations based on
    provided configuration.
  • Handles the client requests by parsing XPDL
    definition, communicating with internal
    components and implementing its own logic to
    achieve the goal.
  • The benefit of having kernel API

33
Kernel processing
34
Kernel processing (simplified)
35
Shark plug-in APIs
  • Mandatory plug-in components and their purpose
  • Repository persistence component
  • Instance persistence component
  • Scripting component
  • Optional plug-in components and their purpose
  • Assignment component
  • UserGroup component
  • ParticipantMapping component
  • ToolAgent component
  • ApplicationMapping component
  • EventAudit component
  • Logging component
  • Caching component
  • Security component

36
TWS - shark extensions
  • TWS is shark extension that
  • Implements advanced APIs
  • Extends shark kernel to interpret extended
    attributes
  • Brings more useful implementations of plug-in
    APIs
  • Brings more useful tool agent implementations
  • Most important additional functionality
  • Possibility to use variables not defined in XPDL
  • Possibility to have transient processes and
    variables (even the ones not defined in XPDL by
    the usage of special naming convention)
  • Possibility to specify that all activities should
    not have special context, but to use the one of
    the process (for performance reasons)
  • Possibility to specify a process or activity
    behavior per definition.
  • API to find out the future and the past, and to
    navigate through process based on its XPDL
    definition

37
Swing Admin process monitoring
38
WEB Client worklist handling
39
Worklist handler
  • Application that enables a human workflow
    participant to manage the work items which have
    been assigned to them
  • Shark provides graphical Worklist Handlers
  • graphical swing worklist handle,
  • WEB based worklist handler application
  • Worklist handlers able to access shark through
  • POJO
  • EJB
  • WebService

40
Assignment manager
  • Whats the purpose of Assignment manager
  • AssignmentManager 4 method interface
  • Method to configure manager
  • Method to obtain UserGroup API implementation
  • Method to obtain ParticipantMapping API
    implementation
  • Method to actually retrieve assignments for the
    activity
  • Several assignment manager implementations coming
    with Shark
  • StandardAssignmentManager
  • HistoryRelatedAssignmentManager
  • XPDLStraightParticipantMappingAssignmentManager
  • How to handle XPDL, Participant mapping and
    UserGroup information
  • How to write your own assignment manager

41
Tool agents XPDL Application definition
42
Tool agents definition of activity Tool
  • The actual values for the application parameters
    will be determined at run-time
  • We can consider such Activity execution as a call
    to the function

43
Tool agents how it works
  • Shark kernel is passing workflow relevant data to
    tool agent and expecting tool agent to update
    some variables as the result of its call.
  • When XPDL is deployed into shark engine, and when
    tool activity is about to execute shark kernel
  • gets the current value of variables specified as
    actual parameters
  • in the case actual parameter is an expression, it
    evaluates expression using current values of all
    process variables and specified expression
    interpreter
  • provides these values to a DefaultToolAgent (if
    we do not use Application mapping)
  • DefaultToolAgent
  • reads an ext. attrib. ToolAgentClass (from
    Application definition)
  • delegates a call to appropriate tool agent
    specified by this attribute
  • Actual tool agent
  • reads additional extended attribute
  • Executes tool agent logic using variables
    provided by kernel
  • updates variable values.
  • At the end, kernel reads-back the variables which
    type is OUT or INOUT and updates process instance
    variables.

44
Tool agents
  • How to write your own tool agent
  • How to model XPDL to react upon some expected
    errors in Tool Agents
  • Two approaches when implementing tool agent
  • To expect a certain parameter at a certain
    position
  • To search for parameters by the formal parameter
    name from XPDL definition

45
Callback from shark plug-in components to shark
engine
  • In order to obtain more information required to
    do their job, plug-in components can do a
    callback to engine.
  • When doing a callback, components are using
    engines client API, as any other client
    application does.
  • Examples
  • ToolAgent implementation can query shark engine
    in order to set/get variables of some process
    instance
  • ToolAgent implementation can query shark engine
    in order to get Id of activity instance based on
    the assignment Id parameter it gets as a
    parameter
  • ToolAgent implementation can query shark engine
    in order to get the information when process
    instance was created
  • Assignment manager implementation can query shark
    engine to get information about the user that
    executed activity with a certain definition

46
Shark optimization
  • Switching-off unnecessary plug-in components
  • Checking cache parameters (if not cluster
    scenario)
  • Checking other shark configuration parameters
    depending on use case
  • Check client application code
  • How it handles user transaction
  • Which shark APIs are used for which purpose
Write a Comment
User Comments (0)
About PowerShow.com