activevos - server architecture

25
ActiveVOS - Server Architecture ActiveVOS - Server Architecture March 2009

Upload: jersey

Post on 12-Jan-2016

70 views

Category:

Documents


1 download

DESCRIPTION

ActiveVOS - Server Architecture. March 2009. Topics. ActiveVOS - Server Architecture Core Engine, Managers, Expression Languages BPEL4People People Activity WS-HT Human Tasks Deployment Services Administration. Directory Services. Policy Management. Alerts, Exception - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: ActiveVOS - Server Architecture

ActiveVOS - Server ArchitectureActiveVOS - Server Architecture

March 2009

Page 2: ActiveVOS - Server Architecture

2

TopicsTopicsActiveVOS - Server

Architecture

– Core Engine, Managers, Expression Languages

– BPEL4PeoplePeople 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

Admin and Event

Admin and Event

H

andlingH

andling

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

ExpressionExpression ProcessingProcessing

MU

WS

MU

WS

Other Services

Other Services

JMS, REST, PO

JO, ...

JMS, REST, PO

JO, ...

DirectoryServices

InboxInbox

Alerts,Alerts,Exception Exception

ManagementManagement

Page 3: ActiveVOS - Server Architecture

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 ExecutionXPath 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

Page 4: ActiveVOS - Server Architecture

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

Admin and Event

Admin and Event

H

andlingH

andling

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

ExpressionExpression ProcessingProcessing

MU

WS

MU

WS

Other Services

Other Services

JMS, REST, PO

JO, ...

JMS, REST, PO

JO, ...

DirectoryServices

InboxInbox

Alerts,Alerts,Exception Exception

ManagementManagement

Page 5: ActiveVOS - Server Architecture

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

Admin and Event

Admin and Event

H

andlingH

andling

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

ExpressionExpression ProcessingProcessing

MU

WS

MU

WS

Other Services

Other Services

JMS, REST, PO

JO, ...

JMS, REST, PO

JO, ...

DirectoryServices

InboxInbox

Alerts,Alerts,Exception Exception

ManagementManagement

Page 6: ActiveVOS - Server Architecture

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

Page 7: ActiveVOS - Server Architecture

7

ProcessProcess

BPEL Process Definitions– Installed into the engine via a

standardized 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

Page 8: ActiveVOS - Server Architecture

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)

Page 9: ActiveVOS - Server Architecture

9

ActiveVOS Server – Expression ProcessingActiveVOS Server – Expression Processing

ProcessProcess ActivityActivity

Common Utilities:Common Utilities:Timer, Work,Timer, Work,

URN MappingURN Mapping

Process Process Creation &Creation &

ManagementManagement

ActiveVOS BPEL EngineActiveVOS BPEL Engine

Admin and Event

Admin and Event

H

andlingH

andling

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

ExpressionExpression ProcessingProcessing

MU

WS

MU

WS

Other Services

Other Services

JMS, REST, PO

JO, ...

JMS, REST, PO

JO, ...

DirectoryServices

InboxInbox

Alerts,Alerts,Exception Exception

ManagementManagement

Page 10: ActiveVOS - Server Architecture

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 contextsRegistration is by namespace and associates those entries with a function contextOnce 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

Page 11: ActiveVOS - Server Architecture

11

Example: Custom function integrationExample: Custom function integration

Evaluate XPATH Expression with Custom Function

ActiveVOS Engine Runtime Environment

User definedCustom

Functions

ActiveVOS BPEL EngineActiveVOS BPEL Engine

BPEL Process

Custom Function Evaluation Flow

XPATH Language Environment

Expression Language Factory

XQUERY Language Environment

JAVA SCRIPT Language Environment

Evaluate Custom

Function

BPEL Function Context

Function Context Factory

Custom Function Context

Expression Evaluation Function Evaluation

Entity Instantiation

Page 12: ActiveVOS - Server Architecture

12

ActiveVOS Server – BPEL4PeopleActiveVOS Server – BPEL4People

ProcessProcess ActivityActivity

Common Utilities:Common Utilities:Timer, Work,Timer, Work,

URN MappingURN Mapping

Process Process Creation &Creation &

ManagementManagement

ActiveVOS BPEL EngineActiveVOS BPEL Engine

Admin and Event

Admin and Event

H

andlingH

andling

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

ExpressionExpression ProcessingProcessing

MU

WS

MU

WS

Other Services

Other Services

JMS, REST, PO

JO, ...

JMS, REST, PO

JO, ...

DirectoryServices

InboxInbox

Alerts,Alerts,Exception Exception

ManagementManagement

Page 13: ActiveVOS - Server Architecture

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 processOutside 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

Page 14: ActiveVOS - Server Architecture

14

BPEL4People - Task ManagementBPEL4People - Task 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)

Page 15: ActiveVOS - Server Architecture

15

Built-in Task Inbox ApplicationBuilt-in Task Inbox Application

Inbox Application

– Web application which uses WS-HT for presenting tasks to users

– Task listsFilters (claimed, started, …)

– Custom sorting

Actions to claim, and start work in list

– Task DetailBuilt-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

Page 16: ActiveVOS - Server Architecture

16

ActiveVOS Server – DeploymentActiveVOS Server – Deployment

ProcessProcess ActivityActivity

Common Utilities:Common Utilities:Timer, Work,Timer, Work,

URN MappingURN Mapping

Process Process Creation &Creation &

ManagementManagement

ActiveVOS BPEL EngineActiveVOS BPEL Engine

Admin and Event

Admin and Event

H

andlingH

andling

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

ExpressionExpression ProcessingProcessing

MU

WS

MU

WS

Other Services

Other Services

JMS, REST, PO

JO, ...

JMS, REST, PO

JO, ...

DirectoryServices

InboxInbox

Alerts,Alerts,Exception Exception

ManagementManagement

Page 17: ActiveVOS - Server Architecture

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 AssignmentMaps 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

Page 18: ActiveVOS - Server Architecture

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 clusteringApplication 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

Page 19: ActiveVOS - Server Architecture

19

ActiveVOS Server – Services and AdministrationActiveVOS Server – Services 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

Admin and Event

Admin and Event

H

andlingH

andling

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

ExpressionExpression ProcessingProcessing

MU

WS

MU

WS

Other Services

Other Services

JMS, REST, PO

JO, ...

JMS, REST, PO

JO, ...

DirectoryServices

InboxInbox

Alerts,Alerts,Exception Exception

ManagementManagement

Page 20: ActiveVOS - Server Architecture

20

Service LayerService Layer Exposes 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-AddressingWS-SecurityWS-Reliable Messaging

POJO – plain old java objectsJMS SupportREST SupportEJB

Policy driven – transports and capabilities are driven by policy attachments Partner Addressing supports partner lookups (e.g. By principal)

Admin and Event

Admin and Event

H

andlingH

andling

Policy Policy ManagementManagement

Partner Partner AddressingAddressing

Web Services

Web Services

Receive and InvokeReceive and Invoke

Handlers

Handlers

MU

WS

MU

WS

Other Services

Other Services

JMS, REST, PO

JO, ...

JMS, REST, PO

JO, ...

Page 21: ActiveVOS - Server Architecture

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

WSInvoke

Handler

Process Invoke

Handler

JMSInvoke

Handler

POJOInvoke

Handler

Invocation Handler

RESTInvoke

Handler

...Invoke

Handler

Invoke Handler Factory

Receive and invoke handler factory architecture allows for extensible service framework

Page 22: ActiveVOS - Server Architecture

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

Page 23: ActiveVOS - Server Architecture

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, ...

Page 24: ActiveVOS - Server Architecture

24

Administration - Process Exception ManagementAdministration - 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

Page 25: ActiveVOS - Server Architecture

25

ConclusionConclusion

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