Transcript Slide 1
ActiveVOS - Server Architecture
March 2009
Topics
– Administration
2
Inbox
– Services
Admin and Event
Handling
– Deployment
MUWS
WS-HT Human Tasks
Web Services
People Activity
Partner
Addressing
Expression
Processing
Alerts,
Exception
Management
Common Utilities:
Timer, Work,
URN Mapping
ActiveVOS BPEL Engine
Process
Creation &
Management
Queues and
Alarms
Directory
Services
Deployment
Plans
Managers
– BPEL4People
Task
Management
Policy
Management
Receive and Invoke
Handlers
Other Services
– Core Engine,
Managers,
Expression Languages
JMS, REST, POJO, ...
ActiveVOS - Server
Architecture
Process
State
Queues
Process
Web/Application Server
Activity
Alarms
ActiveVOS Architecture Overview
Core ActiveVOS Engine
– Policy driven
– Process
Definition, validation and execution
WS-BPEL 2.0 and BPEL4WS 1.1 compliant
BPEL4People
– Publishes endpoints which Receive and
Reply to callers in conjunction with
engine
– Invokes of endpoints
– Extensible Expression Execution
– Publishes administrative, WS-HT APIs
XPath 1.0, XQuery (XPath 2.0), JavaScript,
...
– Robust interface allows wide variety of
service types. WS, JMS, POJO, REST...
Server Engine Managers
– Alarm Manager
– URN Mapping
– Deployment Manager
– Identity Services
– Process Manager
– Storage Manager
– Task Manager
– Complex Event Processing
3
Utilities and Other Services
– Work and Timer Managers
– Cluster Manager
– Queue Manager
Service framework
– Email Services
Deployment Handling
Administration
ActiveVOS Server
Partner
Addressing
Task
Management
Expression
Processing
Alerts,
Exception
Management
Common Utilities:
Timer, Work,
URN Mapping
Directory
Services
Deployment
Plans
ActiveVOS BPEL Engine
Admin and Event
Handling
MUWS
Web Services
Process
Creation &
Management
Queues and
Alarms
Managers
Receive and Invoke
Handlers
Other Services
JMS, REST, POJO, ...
Inbox
4
Policy
Management
Process
State
Queues
Process
Web/Application Server
Activity
Alarms
ActiveVOS Server
Partner
Addressing
Task
Management
Expression
Processing
Alerts,
Exception
Management
Common Utilities:
Timer, Work,
URN Mapping
Directory
Services
Deployment
Plans
ActiveVOS BPEL Engine
Admin and Event
Handling
MUWS
Web Services
Process
Creation &
Management
Queues and
Alarms
Managers
Receive and Invoke
Handlers
Other Services
JMS, REST, POJO, ...
Inbox
5
Policy
Management
Process
State
Queues
Process
Web/Application Server
Activity
Alarms
Core ActiveVOS BPEL Engine
Factory creates engine with appropriate configuration
– Engine Configuration – points to managers, expression languages, function
extensions and specific processing directives
– Configuration loaded from an XML file called aeEngineConfig.xml by default or
can be passed to factory
6
Managers perform operations on behalf of engine
Process Manager
Creates Process and Manages Process State saving and
restoration
Queue Manager
Manages Receive Queues and correlations
Alarm Manager
Manages timers for on alarms and waits
Cluster Manager
Manages failover and inter-engine facilities
Storage Manager
Manages interaction with persistent storage
Task Manager
Manages human tasks
Process
BPEL Process Definitions
– Installed into the engine via a
standardized deployment format
(or directly through API)
– Utilize a visitor pattern on the
definition objects for creation
of implementation classes
– Cached as part of overall deployment plan for process
Process Implementations
– Handle activity execution scheduling and event notifications
– Are themselves derived from the scope activity
Visitors and definitions can be extended for custom activities
– BPEL4People implementation is an example of a extension
7
Activities
Activity Implementations are associated with definition objects at
construction
All activities have a state, and transition through one or more standard
states
– Inactive, Ready to Execute, Executing, Finished, Faulted and Dead Path
– State changes trigger events which can have registered listeners
– Activity state is key to depicting proper visualizations of process
– ActiveVOS consoles and debuggers depict state visually
Each activity has an execute method to do the actual execution
– Activities set object completed state when their work is done, not always when
execute is complete (some work can be asynchronous from actual execute – e.g.
Receive)
8
ActiveVOS Server – Expression Processing
Partner
Addressing
Task
Management
Expression
Processing
Alerts,
Exception
Management
Common Utilities:
Timer, Work,
URN Mapping
Directory
Services
Deployment
Plans
ActiveVOS BPEL Engine
Admin and Event
Handling
MUWS
Web Services
Process
Creation &
Management
Queues and
Alarms
Managers
Receive and Invoke
Handlers
Other Services
JMS, REST, POJO, ...
Inbox
9
Policy
Management
Process
State
Queues
Process
Web/Application Server
Activity
Alarms
Expression Processing
Engine Configuration allows installation of multiple Expression Languages
– Expression languages are registered with a namespace, which is used in the BPEL
process to designate the language to use
– Expression languages support both analysis and runtime execution
– All expression languages can support custom function contexts
Registration is by namespace and associates those entries with a function context
Once a context is registered it can be used in any BPEL process
Built in support for XPath, XQuery and JavaScript
– XPath is supported via JAXEN
– XQuery is supported through SAXEN
– JavaScript is supported through Rhino
Also has support for BSF
– An example is provided for Python
10
Example: Custom function integration
ActiveVOS BPEL Engine
User defined
Custom
Functions
BPEL Process
Evaluate XPATH Expression with
Custom Function
JAVA SCRIPT Language
Environment
Expression Evaluation
Custom
Function
Context
BPEL Function
Context
Function Evaluation
ActiveVOS Engine Runtime Environment
Custom Function Evaluation Flow
11
Function Context
Factory
XQUERY Language
Environment
Evaluate Custom Function
Expression Language
Factory
XPATH Language
Environment
Entity Instantiation
ActiveVOS Server – BPEL4People
Partner
Addressing
Task
Management
Expression
Processing
Alerts,
Exception
Management
Common Utilities:
Timer, Work,
URN Mapping
Directory
Services
Deployment
Plans
ActiveVOS BPEL Engine
Admin and Event
Handling
MUWS
Web Services
Process
Creation &
Management
Queues and
Alarms
Managers
Receive and Invoke
Handlers
Other Services
JMS, REST, POJO, ...
Inbox
12
Policy
Management
Process
State
Queues
Process
Web/Application Server
Activity
Alarms
BPEL4People
BPEL4People (B4P) – WS-BPEL Extension for People
– Integrates human tasks into BPEL processes
– Defines a new activity (People Activity) which invokes
a WS-HT task service
– Tasks can be defined
Locally in the BPEL
process
Outside of the BPEL process, allowing them to be shared by more than one process
Web Services Human Task (WS-HT)
– Integrates human tasks into service-oriented applications
– Human tasks are services ‘implemented’ by people
– Specifies a human task schema definition
– Defines an API for manipulating tasks (task inbox)
13
BPEL4People - Task Management
Task Management Environment
– Performs task state and lifecycle processing (deadlines, escalation)
Handles notifications triggered by escalations
Lifecycle handling built as BPEL processes
– Enforces role operations, who can do what and when
Uses integrated identity services
• Providers supplied for LDAP, LDIF and XML
• Easy addition of custom providers
– Exposes services layer for interacting with tasks
Standard Robust WS-HT
API
Task information contains rendering information provided by developer for
generalizing integrations
ActiveVOS Inbox uses WS-HT API (task list client)
14
Built-in Task Inbox Application
Inbox Application
– Web application which uses WS-HT for presenting tasks to users
– Task lists
Filters (claimed, started, …)
– Custom sorting
Actions to claim, and start work
in list
– Task Detail
Built-in complete task detail handling
– Owners and administrators can claim, start, revoke, forward, complete and fault
tasks
Attachment and comment
support
Customizable either whole page or work
item via XSL
Can be used as a starting point for more complex task inbox
– WS-HT allows for a rich set of rendering capabilities
15
ActiveVOS Server – Deployment
Partner
Addressing
Task
Management
Expression
Processing
Alerts,
Exception
Management
Common Utilities:
Timer, Work,
URN Mapping
Directory
Services
Deployment
Plans
ActiveVOS BPEL Engine
Admin and Event
Handling
MUWS
Web Services
Process
Creation &
Management
Queues and
Alarms
Managers
Receive and Invoke
Handlers
Other Services
JMS, REST, POJO, ...
Inbox
16
Policy
Management
Process
State
Queues
Process
Web/Application Server
Activity
Alarms
Deployment
Business Process Archive (*.BPR file)
– Contains processes and process deployment descriptors as well as resources like
WSDL, Schema and Style Sheets
Process Deployment Descriptor
– Describes Partner Link associations and policies
Partner Role
Endpoint References
Static
Defined in deployment descriptor
Dynamic
Mapped in Process (i.e. assign to partnerRole)
Invoke
Transmitted in SOAP headers of Partner (WS-Addressing)
Principal
Lookup from Partner Definition based on Authenticated
Principal
My Role – Service information for installing
process endpoints
– Service Name, Allowable Roles, Binding and Policies
– BPEL4People - Logical People Group Assignment
Maps logical people groups to users or groups
– Process Specific directives
Persistence (None, Full, …),suspend on uncaught fault, data indexes, …
17
Deployment
Multiple deployment interfaces
– Administrative console page for uploading a BPR
– Web service for accepting a BPR
– Directory scanner for looking for new, modified or removed deployments
– Direct Administrative API call can be used for custom deployment
High availability and clustering
Application Servers:
Red Hat JBoss Enterprise Application Platform 4.3
Red Hat JBoss Enterprise SOA Platform 4.3
Apache Tomcat 5.x
BEA WebLogic Server 9.2
Oracle WebLogic 10.3
IBM WebSphere Server 6.1
Database Servers: MySQL 5.x, Oracle Database 10g, Microsoft SQL Server
2005, IBM DB2 8.x, 9.x
18
ActiveVOS Server – Services and Administration
Partner
Addressing
Task
Management
Expression
Processing
Alerts,
Exception
Management
Common Utilities:
Timer, Work,
URN Mapping
Directory
Services
Deployment
Plans
ActiveVOS BPEL Engine
Admin and Event
Handling
MUWS
Web Services
Process
Creation &
Management
Queues and
Alarms
Managers
Receive and Invoke
Handlers
Other Services
JMS, REST, POJO, ...
Inbox
19
Policy
Management
Process
State
Queues
Process
Web/Application Server
Activity
Alarms
Service Layer
Exposes key runtime interfaces
Administrative API:
Engine Admin, MUWS, Event Listeners
WS-HT API
EJB
Policy
driven – transports and capabilities are driven by policy attachments
Partner
20
Admin and Event
Handling
REST Support
MUWS
Web Services
Receive and Invoke Handlers are pluggable
Web service support implemented using Axis
WS-Addressing
WS-Security
WS-Reliable Messaging
POJO – plain old java objects
JMS Support
Policy
Management
Receive and Invoke
Handlers
Other Services
Process endpoints (“My Role” deployments)
JMS, REST, POJO, ...
Addressing supports partner lookups (e.g. By principal)
Partner
Addressing
Service Handler Factories
ActiveVOS Service Engine Architecture
WS
Receive
Handler
JMS
Receive
Handler
REST
Receive
Handler
ActiveVOS BPEL Engine
...
Receive
Handler
BPEL Process
Inbound Service Request Flow
Receive Handler Factory
Receive Handler
Outbound Service Invoke Flow
Receive and invoke handler
factory architecture allows for
extensible service framework
Entity Instantiation
WS
Invoke
Handler
Process
Invoke
Handler
POJO
Invoke
Handler
JMS
Invoke
Handler
Invoke Handler Factory
Invocation Handler
21
REST
Invoke
Handler
...
Invoke
Handler
Simplified Request Dispatch Flow
Queue Manager
Web
Service
Request
Receive Handler
Lookup Correlated
Receive
Deployment Plan
Partner Addressing
Fault
Queued
Receives
Not Found
Found
Create?
No
Yes
New Process
Dispatch Receive
To Process
And Queue Reply
Queued
Reply
Process
Receive Activity
Reply Activity
22
Administrative API
Allows process maintenance interactions
– Suspend, Resume, Terminate, Process State Request, Process List, etc.
– Registers process and engine event listeners
Can also dispatch events to Web services
Interfaces
– Available directly through engine factory for in-process usage
– Most methods are also exposed via a Web service, which will be the
recommended interface
– OASIS WSDM/MUWS
API usage examples
– Consoling, debugging, external management, ...
23
Administration - Process Exception Management
Process Exception Management
– Some critical processes can’t be allowed to fail because of programming or
environmental errors
– Developers and Administrators need to be able to take corrective action to
ensure process success
ActiveVOS - Process Exception Management
– Allows suspending processes on uncaught faults
Configurable at per process
level with an engine default
– Integrates an alerting service so that appropriate actions can be taken
– Set of robust API for fixing a problem (changing data, retrying activities and
scopes, coercing an activity into completing normally)
– Administrative Consoling for manually fixing a problem
– Easy filtering of processes in a suspended/faulting state
24
Conclusion
ActiveVOS is built on a world class architecture and components
Robust BPEL engine
– Utilizes Managers for flexible implementation of surrounding functionality
Extensible expression language integration with custom functions
BPEL4People extension for standardized workflow
Deployment considers many scenarios for binding and process directives
Service handling delivers ease of service creation and interfacing
Policy driven architecture for proper process governance
Rich administrative functionality
– Process exception management handles unexpected faults
– Alerting and monitoring facilitates enterprise management
25