ActiveVOS ActiveVOS ‐ ‐ Server Architecture Server Architecture March 2009
2
TopicsTopics
ActiveVOS ‐ Server Architecture
– Core Engine, Managers, Expression Languages
– BPEL4People
People Activity
WS‐HT Human Tasks
– Deployment
– Services
– Administration
ProcessProcess ActivityActivity
Common Utilities:Common Utilities:Timer, Work,Timer, Work,URN MappingURN Mapping
Process Process Creation &Creation &
ManagementManagement
ActiveVOS BPEL EngineActiveVOS BPEL Engine
Adm
in and EventAdm
in and EventHandling
Handling
DeploymentPlans
Process StateQueues and Queues and
AlarmsAlarms
Policy Policy ManagementManagement
Partner Partner AddressingAddressing
Web Services
Web Services
Receive and InvokeReceive and Invoke
Handlers
Handlers
Web/Application ServerWeb/Application Server
Queues
TaskTaskManagementManagement
Alarms
Managers
Managers
ExpressionExpressionProcessingProcessing
MUWS
MUWS
Other Services
Other Services
JMS, REST, PO
JO, ...
JMS, REST, PO
JO, ...
DirectoryServices
InboxInbox
Alerts,Alerts,Exception Exception
ManagementManagement
3
ActiveVOS Architecture OverviewActiveVOS Architecture Overview
Core ActiveVOS Engine
– Process
Definition, validation and execution
WS‐BPEL 2.0 and BPEL4WS 1.1 compliant
BPEL4People
– Extensible Expression Execution
XPath 1.0, XQuery (XPath 2.0), JavaScript, ...
Server Engine Managers
– Alarm Manager
– Cluster Manager
– Deployment Manager
– Process Manager
– Queue Manager
– Storage Manager
– Task Manager
– Complex Event Processing
Service framework
– Policy driven
– Publishes endpoints which Receive and Reply to callers in conjunction with engine
– Invokes of endpoints
– Publishes administrative, WS‐HT APIs
– Robust interface allows wide variety of service types. WS, JMS, POJO, REST...
Utilities and Other Services
– Work and Timer Managers
– URN Mapping
– Identity Services
– Email Services
Deployment Handling
Administration
4
ActiveVOS ServerActiveVOS Server
ProcessProcess ActivityActivity
Common Utilities:Common Utilities:Timer, Work,Timer, Work,URN MappingURN Mapping
Process Process Creation &Creation &
ManagementManagement
ActiveVOS BPEL EngineActiveVOS BPEL Engine
Adm
in and EventAdm
in and EventHandling
Handling
DeploymentPlans
Process StateQueues and Queues and
AlarmsAlarms
Policy Policy ManagementManagement
Partner Partner AddressingAddressing
Web Services
Web Services
Receive and InvokeReceive and Invoke
Handlers
Handlers
Web/Application ServerWeb/Application Server
Queues
TaskTaskManagementManagement
Alarms
Managers
Managers
ExpressionExpressionProcessingProcessing
MUWS
MUWS
Other Services
Other Services
JMS, REST, PO
JO, ...
JMS, REST, PO
JO, ...
DirectoryServices
InboxInbox
Alerts,Alerts,Exception Exception
ManagementManagement
5
ActiveVOS ServerActiveVOS Server
ProcessProcess ActivityActivity
Common Utilities:Common Utilities:Timer, Work,Timer, Work,URN MappingURN Mapping
Process Process Creation &Creation &
ManagementManagement
ActiveVOS BPEL EngineActiveVOS BPEL Engine
Adm
in and EventAdm
in and EventHandling
Handling
DeploymentPlans
Process StateQueues and Queues and
AlarmsAlarms
Policy Policy ManagementManagement
Partner Partner AddressingAddressing
Web Services
Web Services
Receive and InvokeReceive and Invoke
Handlers
Handlers
Web/Application ServerWeb/Application Server
Queues
TaskTaskManagementManagement
Alarms
Managers
Managers
ExpressionExpressionProcessingProcessing
MUWS
MUWS
Other Services
Other Services
JMS, REST, PO
JO, ...
JMS, REST, PO
JO, ...
DirectoryServices
InboxInbox
Alerts,Alerts,Exception Exception
ManagementManagement
6
Core ActiveVOS BPEL EngineCore 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
Managers perform operations on behalf of engine
Manages failover and inter‐engine facilitiesCluster Manager
Manages timers for on alarms and waitsAlarm Manager
Manages interaction with persistent storageStorage Manager
Manages Receive Queues and correlationsQueue Manager
Creates Process and Manages Process State saving and restoration
Process Manager
Manages human tasksTask Manager
7
ProcessProcess
BPEL Process Definitions
– Installed into the engine via astandardized deployment format(or directly through API)
– Utilize a visitor pattern on thedefinition objects for creationof 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
8
ActivitiesActivities
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)
9
ActiveVOS Server ActiveVOS Server –– Expression ProcessingExpression Processing
ProcessProcess ActivityActivity
Common Utilities:Common Utilities:Timer, Work,Timer, Work,URN MappingURN Mapping
Process Process Creation &Creation &
ManagementManagement
ActiveVOS BPEL EngineActiveVOS BPEL Engine
Adm
in and EventAdm
in and EventHandling
Handling
DeploymentPlans
Process StateQueues and Queues and
AlarmsAlarms
Policy Policy ManagementManagement
Partner Partner AddressingAddressing
Web Services
Web Services
Receive and InvokeReceive and Invoke
Handlers
Handlers
Web/Application ServerWeb/Application Server
Queues
TaskTaskManagementManagement
Alarms
Managers
Managers
ExpressionExpressionProcessingProcessing
MUWS
MUWS
Other Services
Other Services
JMS, REST, PO
JO, ...
JMS, REST, PO
JO, ...
DirectoryServices
InboxInbox
Alerts,Alerts,Exception Exception
ManagementManagement
10
Expression ProcessingExpression 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
11
Example: Custom function integrationExample: Custom function integration
Evaluate XPATH Expression with Custom Function
ActiveVOS Engine Runtime Environment
User definedCustomFunctions
ActiveVOS BPEL EngineActiveVOS BPEL Engine
BPEL Process
Custom Function Evaluation Flow
XPATH Language Environment
Expression Language Factory
XQUERY Language Environment
JAVA SCRIPT Language EnvironmentEvaluate Custom
Function
BPEL Function Context
Function Context Factory
Custom Function Context
Expression Evaluation Function Evaluation
Entity Instantiation
12
ActiveVOS Server ActiveVOS Server –– BPEL4PeopleBPEL4People
ProcessProcess ActivityActivity
Common Utilities:Common Utilities:Timer, Work,Timer, Work,URN MappingURN Mapping
Process Process Creation &Creation &
ManagementManagement
ActiveVOS BPEL EngineActiveVOS BPEL Engine
Adm
in and EventAdm
in and EventHandling
Handling
DeploymentPlans
Process StateQueues and Queues and
AlarmsAlarms
Policy Policy ManagementManagement
Partner Partner AddressingAddressing
Web Services
Web Services
Receive and InvokeReceive and Invoke
Handlers
Handlers
Web/Application ServerWeb/Application Server
Queues
TaskTaskManagementManagement
Alarms
Managers
Managers
ExpressionExpressionProcessingProcessing
MUWS
MUWS
Other Services
Other Services
JMS, REST, PO
JO, ...
JMS, REST, PO
JO, ...
DirectoryServices
InboxInbox
Alerts,Alerts,Exception Exception
ManagementManagement
13
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)
BPEL4PeopleBPEL4People
14
BPEL4People BPEL4People ‐‐ Task ManagementTask Management
Task Management Environment– Performs task state and lifecycle processing (deadlines, escalation)
Handles notifications triggered by escalationsLifecycle handling built as BPEL processes
– Enforces role operations, who can do what and whenUses integrated identity services
• Providers supplied for LDAP, LDIF and XML• Easy addition of custom providers
– Exposes services layer for interacting with tasksStandard Robust WS‐HT APITask information contains rendering information provided by developer for generalizing integrationsActiveVOS Inbox uses WS‐HT API (task list client)
15
BuiltBuilt‐‐in Task Inbox Applicationin 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
16
ActiveVOS Server ActiveVOS Server –– DeploymentDeployment
ProcessProcess ActivityActivity
Common Utilities:Common Utilities:Timer, Work,Timer, Work,URN MappingURN Mapping
Process Process Creation &Creation &
ManagementManagement
ActiveVOS BPEL EngineActiveVOS BPEL Engine
Adm
in and EventAdm
in and EventHandling
Handling
DeploymentPlans
Process StateQueues and Queues and
AlarmsAlarms
Policy Policy ManagementManagement
Partner Partner AddressingAddressing
Web Services
Web Services
Receive and InvokeReceive and Invoke
Handlers
Handlers
Web/Application ServerWeb/Application Server
Queues
TaskTaskManagementManagement
Alarms
Managers
Managers
ExpressionExpressionProcessingProcessing
MUWS
MUWS
Other Services
Other Services
JMS, REST, PO
JO, ...
JMS, REST, PO
JO, ...
DirectoryServices
InboxInbox
Alerts,Alerts,Exception Exception
ManagementManagement
17
DeploymentDeployment
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
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, …
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
18
DeploymentDeployment
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
19
ActiveVOS Server ActiveVOS Server –– Services and AdministrationServices and Administration
ProcessProcess ActivityActivity
Common Utilities:Common Utilities:Timer, Work,Timer, Work,URN MappingURN Mapping
Process Process Creation &Creation &
ManagementManagement
ActiveVOS BPEL EngineActiveVOS BPEL Engine
Adm
in and EventAdm
in and EventHandling
Handling
DeploymentPlans
Process StateQueues and Queues and
AlarmsAlarms
Policy Policy ManagementManagement
Partner Partner AddressingAddressing
Web Services
Web Services
Receive and InvokeReceive and Invoke
Handlers
Handlers
Web/Application ServerWeb/Application Server
Queues
TaskTaskManagementManagement
Alarms
Managers
Managers
ExpressionExpressionProcessingProcessing
MUWS
MUWS
Other Services
Other Services
JMS, REST, PO
JO, ...
JMS, REST, PO
JO, ...
DirectoryServices
InboxInbox
Alerts,Alerts,Exception Exception
ManagementManagement
20
Service LayerService LayerExposes key runtime interfaces
Process endpoints (“My Role” deployments)
Administrative API:
Engine Admin, MUWS, Event Listeners
WS‐HT API
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
REST Support
EJB
Policy driven – transports and capabilities are driven by policy attachments
Partner Addressing supports partner lookups (e.g. By principal)
Adm
in and EventAdm
in and EventHandling
Handling
Policy Policy ManagementManagement
Partner Partner AddressingAddressing
Web Services
Web Services
Receive and InvokeReceive and Invoke
Handlers
Handlers
MUWS
MUWS
Other Services
Other Services
JMS, REST, PO
JO, ...
JMS, REST, PO
JO, ...
21
Service Handler FactoriesService Handler Factories
ActiveVOS Service Engine Architecture
Entity Instantiation
Outbound Service Invoke Flow
Inbound Service Request Flow
ActiveVOS BPEL EngineActiveVOS BPEL Engine
BPEL Process
WSReceiveHandler
JMSReceiveHandler
...ReceiveHandler
RESTReceiveHandler
Receive Handler Factory
Receive Handler
WSInvokeHandler
Process Invoke Handler
JMSInvokeHandler
POJOInvokeHandler
Invocation Handler
RESTInvokeHandler
...InvokeHandler
Invoke Handler Factory
Receive and invoke handler factory architecture allows for extensible service framework
22
Simplified Request Dispatch FlowSimplified Request Dispatch Flow
Partner AddressingPartner Addressing
Receive HandlerReceive Handler Lookup Correlated Lookup Correlated ReceiveReceive
Deployment PlanDeployment Plan
QueuedQueuedReceivesReceives
Not FoundNot Found FoundFound
Create?Create?
NoNoFaultFault
YesYes
New ProcessNew Process
Dispatch ReceiveDispatch ReceiveTo ProcessTo Process
And Queue ReplyAnd Queue Reply
ProcessProcessReply ActivityReply Activity
Receive Activity Receive Activity
QueuedQueuedReply Reply
WebWebServiceServiceRequestRequest
Queue ManagerQueue Manager
23
Administrative APIAdministrative 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, ...
24
Administration Administration ‐‐ Process Exception ManagementProcess 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
25
ConclusionConclusion
ActiveVOS is built on a world class architecture and componentsRobust BPEL engine
– Utilizes Managers for flexible implementation of surrounding functionality
Extensible expression language integration with custom functions
BPEL4People extension for standardized workflowDeployment considers many scenarios for binding and process directivesService handling delivers ease of service creation and interfacingPolicy driven architecture for proper process governanceRich administrative functionality
– Process exception management handles unexpected faults– Alerting and monitoring facilitates enterprise management