copyright © 2012, oracle and/or its affiliates. all rights reserved. 1 oracle unified bpm suite...

34
Oracle Unified BPM Suite Customer Advisory Board Design Best Practices Overview

Upload: katrina-willis

Post on 30-Dec-2015

216 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Oracle Unified BPM Suite Customer Advisory Board Design Best Practices Overview

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.1

Oracle Unified BPM Suite Customer Advisory BoardDesign Best Practices Overview

Page 2: Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Oracle Unified BPM Suite Customer Advisory Board Design Best Practices Overview

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.2

The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.

Page 3: Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Oracle Unified BPM Suite Customer Advisory Board Design Best Practices Overview

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.3

Agenda

Motivation (Why These Topics)

Specific Design Topics

Exception handling

Questions and Answers, Discussion

Page 4: Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Oracle Unified BPM Suite Customer Advisory Board Design Best Practices Overview

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.4

Agenda

Motivation (Why These Topics)

Specific Design Topics– Data Design– Reusable Process– Using EDN– Multi-Instance Activity– Using the Spring Component– Human Task Integration

Exception handling

Questions and Answers, Discussion

Page 5: Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Oracle Unified BPM Suite Customer Advisory Board Design Best Practices Overview

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.5

Process Data Design Loading and Storing instance state is a significant performance driver

– Dehydration/Hydration puts pressure on the database and JVM (also GC)

– Amount of analytics data/users adds to performance considerations

– Size of “final” state impacts the time required to purge completed instances

Key Design Considerations …– Data objects should define the data needed to identify/manage the instance

Reference other data via DB Adapter, ADFbc, or service activity

– Define data objects in the scope where it is needed

– Review the amount and usefulness of analytics data produced All dimensions are sent with each measurement mark

Page 6: Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Oracle Unified BPM Suite Customer Advisory Board Design Best Practices Overview

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.6

Process Data Design Process State

SOA-INFRA Storage:CUBE_SCOPE

• Process Data ObjectsWFTASK

• Process Instance, Flex Fields• Scopes for …

• Parallel Gateway• Multi-Instance Activity

WFCOMMENTSWFATTACHMENTBPM_CUBE_PROCESSBPM_CUBE_PROCESSPERFORMANCE

Page 7: Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Oracle Unified BPM Suite Customer Advisory Board Design Best Practices Overview

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.7

Process Data DesignAnalytics Data – BI Views

Page 8: Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Oracle Unified BPM Suite Customer Advisory Board Design Best Practices Overview

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.8

Agenda

Motivation (Why These Topics)

Specific Design Topics– Data Design– Reusable Process– Using EDN– Multi-Instance Activity– Using the Spring Component– Human Task Integration

Exception handling

Questions and Answers, Discussion

Page 9: Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Oracle Unified BPM Suite Customer Advisory Board Design Best Practices Overview

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.9

Using Reusable Process via Call Activity

Reusable process is the most efficient way to reuse a flow– There is no “invoke”, the flow is “in-lined” into the current process

– Reusable process can only be used within a project

Invoking a process within the project is similar to invoking other components

– There is overhead in creating and persisting the component

– However the functionality can be exposed as a service

Calling across projects (composites) is the least efficient– Message delivery will be optimized (No SOAP message unless required)

– Creation and tracking of the composite instance is expensive

Page 10: Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Oracle Unified BPM Suite Customer Advisory Board Design Best Practices Overview

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.10

Using Reusable Process via Call Activity

Page 11: Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Oracle Unified BPM Suite Customer Advisory Board Design Best Practices Overview

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.11

Agenda

Motivation (Why These Topics)

Specific Design Topics– Data Design– Reusable Process– Using EDN– Multi-Instance Activity– Using the Spring Component– Human Task Integration

Exception handling

Questions and Answers, Discussion

Page 12: Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Oracle Unified BPM Suite Customer Advisory Board Design Best Practices Overview

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.12

Using Event Delivery Network (EDN) EDN is surfaced in BPMN 2.0 via the Signal Event

– Provides pub/sub semantics similar to JMS Events are typed via XSD

– Can be used to start, end or in-flight within a process

Benefits of Using Signals– Allows senders and receivers to be “de-coupled”

– Can be used to dynamically invoke subprocesses

Considerations/Limitations– In-flight signal catch events must be correlated (no generic subscription)

Two instances can not listen for the same in-flight event

– Signals can not be thrown/caught within the same process

Page 13: Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Oracle Unified BPM Suite Customer Advisory Board Design Best Practices Overview

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.13

Using EDN

Page 14: Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Oracle Unified BPM Suite Customer Advisory Board Design Best Practices Overview

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.14

Using EDNGenerating a Signal Start Event from the UI

Page 15: Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Oracle Unified BPM Suite Customer Advisory Board Design Best Practices Overview

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.15

Agenda

Motivation (Why These Topics)

Specific Design Topics– Data Design– Reusable Process– Using EDN– Multi-Instance Activity– Using the Spring Component– Human Task Integration

Exception handling

Questions and Answers, Discussion

Page 16: Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Oracle Unified BPM Suite Customer Advisory Board Design Best Practices Overview

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.16

Multi-Instance Activities

Enables looping construct within BPMN model– Can be configured as serial or concurrent

– Instance count can be defined using literal, collection size, or expression

Important Multi-Instance Design considerations– Minimize the number of instances – each is a unique scope

Each scope incurs persistence/purge overhead

– Asynchronous interactions require a scoped conversation

– For synchronous interactions utilize non-blocking invoke Otherwise total time will be sum of instance execution time

Declarative Looping Within BPMN

Page 17: Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Oracle Unified BPM Suite Customer Advisory Board Design Best Practices Overview

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.17

Multi-Instance Activities

Page 18: Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Oracle Unified BPM Suite Customer Advisory Board Design Best Practices Overview

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.18

Agenda

Motivation (Why These Topics)

Specific Design Topics– Data Design– Reusable Process– Using EDN– Multi-Instance Activity– Using the Spring Component– Human Task Integration

Exception handling

Questions and Answers, Discussion

Page 19: Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Oracle Unified BPM Suite Customer Advisory Board Design Best Practices Overview

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.19

Using the Spring Component

Allows Java to be invoked from WSDL based components (e.g. BPMN)– Often used for complex calculations or procedural logic

– Is an alternative to creating an “external” service (i.e. EJB or JAX-WS)

Where to put the code? Consider the scope of use …– Local use, compile source as part of the composite

– Shared use, have a separate project and deploy via SOA extension library

Use the “Predefined” Spring Beans– headerHelperBean, instanceHelperBean, loggerBean

If the code authenticates to external systems– Use the OPSS Credential Mapper APIs

Page 20: Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Oracle Unified BPM Suite Customer Advisory Board Design Best Practices Overview

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.20

Using The Spring Component

Page 21: Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Oracle Unified BPM Suite Customer Advisory Board Design Best Practices Overview

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.21

Agenda

Motivation (Why These Topics)

Specific Design Topics– Data Design– Reusable Process– Using EDN– Multi-Instance Activity– Using the Spring Component– Human Task Integration

Exception handling

Questions and Answers, Discussion

Page 22: Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Oracle Unified BPM Suite Customer Advisory Board Design Best Practices Overview

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.22

Human Task Integration

Define the task schema as a “visible” contract (a project milestone)– Isolate the task form from complex external schemas

– Look for opportunities to share task forms via hwtaskflow.xml

– Share the definition via MDS

Minimize storage space– Store keys that reference existing data, including attachments as URLs

Minimize storage space “multipliers”– Large numbers of specific user assignments (alternative app roles, groups)

– Large numbers of task data attributes (use a single complex type instead)

– Loop back path(s) in process model

Data Design

Page 23: Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Oracle Unified BPM Suite Customer Advisory Board Design Best Practices Overview

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.23

Human Task IntegrationData Design – Database Storage

Page 24: Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Oracle Unified BPM Suite Customer Advisory Board Design Best Practices Overview

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.24

Human Task Integration

Process and UI projects should be in separate applications– Avoids issues with shared MDS definitions in adf-config.xml

Try to put multiple task flows/task UIs into the same web application– Reduces memory footprint at runtime

– Needs to be balanced against team structure and division of work

– Use the task flow from human task wizard and drop handlers

If you can’t use one web application, consolidate WARs into a singe EAR– You can have multiple deployment profiles

Each WAR in a single EAR for development (speeds up redeployment) Multiple WARs in a single EAR for integration, UAT, production

Task UI Project Structure and Packaging

Page 25: Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Oracle Unified BPM Suite Customer Advisory Board Design Best Practices Overview

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.25

Human Task IntegrationTask UI Project Structure and Packaging

Use context menu on data control to update data control for changes to task schema

Page 26: Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Oracle Unified BPM Suite Customer Advisory Board Design Best Practices Overview

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.26

Human Task Integration

Disable any notifications that are not needed– Tasks have default notification for Assign, Complete, and Error

Page is rendered using org.apache.myfaces.trinidad.agent.email=true– See: http://docs.oracle.com/cd/E28271_01/web.1111/e28163/ad_output.htm#DAFFDHJE

– Default task forms may not display properly in Outlook 2010

– Use conditional logic in the page to tailor the content for email

Define a router and separate page for rendering notification email– Use the drop handler to create an email optimized form

Test with all relevant email clients

Notifications

Page 27: Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Oracle Unified BPM Suite Customer Advisory Board Design Best Practices Overview

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.27

Human Task IntegrationNotifications – Creating an Email Specific Page

• Use data control drop handler to create “email” page

• Create router that references bpmClientType property

Page 28: Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Oracle Unified BPM Suite Customer Advisory Board Design Best Practices Overview

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.28

Agenda

Motivation (Why These Topics)

Specific Design Topics– Data Design– Reusable Process– Using EDN– Multi-Instance Activity– Using the Spring Component– Human Task Integration

Exception handling

Questions and Answers, Discussion

Page 29: Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Oracle Unified BPM Suite Customer Advisory Board Design Best Practices Overview

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.29

Exception Handling

Interrupting Boundary Error Event

Non-Interrupting Boundary Timer Event

Error Boundary Event Event based Sub process

Error Event Sub-process

Within the Process Model

Page 30: Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Oracle Unified BPM Suite Customer Advisory Board Design Best Practices Overview

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.30

Manual Exception handling

Manual -> Alter FlowStudio Process Properties Workspace Alter Flow

Page 31: Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Oracle Unified BPM Suite Customer Advisory Board Design Best Practices Overview

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.31

Exception Handling

Managed by the runtime during “invoke” operations– Defines actions to take. e.g. retry 5 times followed by human intervention

How to define– Composite based

<composite faultPolicy=“MyPolicy"/>

– Component based

<component name=“MyComponent” faultPolicy=“MyPolicy”/>

– Reference based

<reference faultPolicy=“MyServiceFaults">

<name>MyService</name>

</reference>

Declarative via Fault Policy

Page 32: Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Oracle Unified BPM Suite Customer Advisory Board Design Best Practices Overview

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.32

Exception handling

Enterprise Manager– Fault action with

ora-human-intervention.

– Only for Recoverable faults (invoke operations).

– What happens if fault policy is not defined

Manual

Page 33: Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Oracle Unified BPM Suite Customer Advisory Board Design Best Practices Overview

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.33

Agenda

Motivation (Why These Topics)

Specific Design Topics– Data Design– Reusable Process– Using EDN– Multi-Instance Activity– Using the Spring Component– Human Task Integration

Exception handling

Questions and Answers, Discussion

Page 34: Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Oracle Unified BPM Suite Customer Advisory Board Design Best Practices Overview

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.34

Graphic Section Divider