Title: Workflow: Connecting People and Processes
1Workflow Connecting People and Processes
2Goals of this Presentation
- Briefly describe what Ensemble is
- Briefly describe the architecture of Ensemble
Workflow - Ensemble workflow production demonstration
- Development and configuration tools
- Runtime user interaction and system monitoring
- Reporting
3What Is Ensemble ?
- Ensemble is a comprehensive platform for rapidly
developing, deploying, and monitoring enterprise
application integration solutions connected
apps. - Ensemble makes it possible to rapidly leverage
enterprise applications, legacy data, and
disparate information technologies in a wide
variety of new ways - Data Coordination
- Business Process Orchestration
- Composite Application Development
- Business Activity Monitoring
4Four Aspects of Integration
Composite Applications
ApplicationIntegration
Business Process / Work Flow
Ensemble Universal Integration Platform
Technology
Data
Application
5Ensemble Architecture
Rules Engine
Workflow Engine
Persistent Object Engine
6What Is Workflow ?
- Workflow makes it possible to incorporate human
interaction into automated business processes. - Workflow within the enterprise might include
order entry, order fulfilment, contract approval,
or help desk activities.
7Workflow is a Seamless Part of Ensemble
- Completely embedded in Ensemble
- Automatic integration with business processes
- Automatic integration with composite applications
- Ease of management (monitored, controlled and
reportable) - There is no difference between Workflow
production and non Workflow production within
Ensemble - Ease of development and customization
8Workflow Engine Features
- Fully integrated with Ensembles BPM engine
- Fully integrated with Ensembles composite
application development environment - Can call out to external systems to notify them
of events within the human workflow, or to obtain
additional information needed by the human
workflow. - Leverages Ensemble persistent storage to support
long-running business processes
9Workflow Engine Architecture
10Workflow Life Cycle
- Business process sends a task request to workflow
operation - Workflow operation receives that task request and
creates a task for an appropriate workflow role - The Workflow Engine distributes tasks among
workflow users - Workflow user accepts and completes the task
- Workflow engine sends a task response object back
to the business process
11Workflow Tasks
- A Workflow Task is an item of work that is
performed offline in support of an ongoing
business process - Workflow task is a special task request message
object inside Ensemble - Ensemble uses a special business operation to
send task request to the Workflow Engine - Ensemble workflow tasks can be exposed in a
variety of ways, for example via XML documents,
Web services, .NET, Java, C objects, or as
relational structures
12Task Request
- Provides the information that the Workflow Engine
needs to process the task - Defines a common set of properties
- Defines a set of actions which can be performed
on the task - Defines fields which user needs to fill to
complete the task - Can specify how the task has to be distributed,
e.g. assign task to a particular user
13Task Response
- The Workflow Engine instantiates a task response
object as soon as it receives a task request, to
- Preserve instructions provided in the task
request - Provide class methods that control task
distribution - Record response values
14Workflow Task Management
- All tasks are sent as messages, so their status
can be viewed using the Visual Trace message
tracing tool - Tasks can expire, be reassigned or be cancelled
either manually or automatically - The Workflow Engine oversees task distribution
and ensures that a task response is returned to
the caller - The Workflow Portal allows workflow users to
accept and complete workflow tasks - The Workflow Engine API allows manage tasks
programmatically
15Workflow Task Distribution Strategies
- There is a work list for each user
- Assignment by user role
- First come, first served
- Assignment by user name
- Assignment by a user-defined ranking
- Assignment by current user workload
- Custom strategies
16Workflow Users and Roles
- Workflow users are Ensemble Users (Workflow users
must first be defined as Ensemble users) - Workflow user must have the same name as Ensemble
user - A Workflow Role is a list of users that can
fulfill a certain task - Roles can be created
- Programmatically
- Automatically, by configuring the associated
Workflow Operation - Manually, using the Workflow Portal
17Workflow Portal
- The Workflow Portal is a completely browser based
- Allows to define workflow roles and users
- Allows to view and accept tasks
- Allows workflow users to update and complete
tasks - Allows reassign tasks to different users
18Workflow Portal Customization
- The Workflow Portal is highly customizable
- Portal pages are generated from metadata, which
may be contained within reusable template files
or defined at runtime - Supports both default and user-defined forms in
workflow screens - The portal is easily styled to match corporate
standards - It is possible to create a complete custom UI
19Development Productivity Features
- Ensemble Studio is used for development
- Workflow can be easily included into business
processes, using the BPL Visual Editor to update
a business process diagram - It is easy to create corporate dashboards and
event triggers to display current workflow status
using Ensembles BAM (Business Activity
Monitoring) tools - All tasks are sent as messages, so system
administrators can view the status of tasks using
the Visual Trace message tracing tool
20The Workflow Engine API
- The Workflow Engine API is expressed as the set
of class methods of EnsLib.Workflow.Engine - Methods fall into categories
- Task management (e.g. assign tasks, complete
tasks, send task to a particular role, etc.) - Metric collection (e.g. calculate active load for
role, calculate active tasks, calculate tasks
durations (max, min, avg), etc.) - Informative (e.g. list roles for a particular
user, list all tasks for the user, list all users
and roles, etc.)
21How to get further assistance
- Using Workflow with Ensemble in Documentation
- Class Documentation (EnsLib.Workflow.Engine,
etc.) - HelpDesk and other samples in ENSDEMO
- Ask the friendly folks from InterSystems o)
22Workflow Connecting People and Processes
Maxim Vershinin (Maxim.Vershinin_at_InterSystems.com)