25
ActiveVOS ActiveVOS Server Architecture Server Architecture March 2009

ActiveVOS Server Architecture - Informatica ActiveVOS · PDF fileURN Mapping Process Creation & ... BEA WebLogic Server 9.2 ... – Suspend, Resume, Terminate, Process State Request,

Embed Size (px)

Citation preview

ActiveVOS ActiveVOS ‐‐ Server ArchitectureServer 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