Download as pdf or txt
Download as pdf or txt
You are on page 1of 59

POP300

How to Redesign ccBPM Processes Using


SAP NetWeaver Process Orchestration
Tobias Breyer, Prashant Gautam, Meghna Shishodiya, Volker Stiehl
October/November/December, 2013

Disclaimer
This presentation outlines our general product direction and should not be relied on in making a
purchase decision. This presentation is not subject to your license agreement or any other agreement
with SAP. SAP has no obligation to pursue any course of business outlined in this presentation or to
develop or release any functionality mentioned in this presentation. This presentation and SAP's
strategy and possible future developments are subject to change and may be changed by SAP at any
time for any reason without notice. This document is provided without a warranty of any kind, either
express or implied, including but not limited to, the implied warranties of merchantability, fitness for a
particular purpose, or non-infringement. SAP assumes no responsibility for errors or omissions in this
document, except if such damages were caused by SAP intentionally or grossly negligent.

2013 SAP AG or an SAP affiliate company. All rights reserved.

Agenda
Redesigning ccBPM processes: challenge and chance
Introducing BPMN
Model comparison: BPEL vs. BPMN

Redesigning use cases

Receiver determination
Providing synchronous interfaces via ccBPM
Message header access
Attachment handling
Alerting
System error handling
Outbound Exactly Once In Order handling

Demo: How to start processes with multiple interfaces


Key takeaways
2013 SAP AG or an SAP affiliate company. All rights reserved.

Redesigning ccBPM
processes:
challenge and chance

Redesigning ccBPM processes is a challenge and a chance


Moving from ccBPM to SAP NetWeaver BPM is a challenge
BPEL to BPMN transformation (no automatic translation possible, block concept vs. flow concept)
Different Feature Sets of the BPM engines
PI Double Stack to Process Orchestration Java-only transformation
What about ABAP mappings and local ABAP-based services?

Moving from ccBPM to SAP NetWeaver BPM is a chance


Lower TCO of a Java-only solution (simplified administration, integrated monitoring, faster SP updates)
Lower TCD due to integrated toolset in SAP NetWeaver Developer Studio
Benefit from advanced BPM/BRM feature set
Integration of human-centric processes and business rules
Benefit from process analytics
High Scalability of SAP NetWeaver BPM
IBM Whitepaper WP102045: 2,800 concurrent users / 112,000 tasks per hour (peak)/ ~85,000 SAPS system
Time for cleaning up
2013 SAP AG or an SAP affiliate company. All rights reserved.

3-layer architecture for process-driven applications


Business Layer
Gold nugget, differentiating factor
Covers business processes
Addresses mainly human interactions
Stateful Integration Layer
Covers stateful integration processes
Aggregator, Resequencer
Rosetta Net as an example for well-defined
stateful message exchanges

Stateless Integration & Service Layer


Connectivity and message transfer
Data structure adaptations
Infrastructure services
2013 SAP AG or an SAP affiliate company. All rights reserved.

Introducing BPMN

Business Process Model and Notation


The primary goal of BPMN is to provide a notation that is readily understandable by all
business users, from the business analysts that create the initial drafts of the processes,
to the technical developers responsible for implementing the technology that will perform
those processes, and finally, to the business people who will manage and monitor those
processes. Thus, BPMN creates a standardized bridge for the gap between the business
process design and process implementation.
OMG, BPMN 2.0 Specification

First published in 2002


Official standard of the Object Management Group (OMG) since 2006
SAP, Oracle and IBM worked on specification and implementations since 2007
Current Version: BPMN 2.0 (released in January 2011)
2013 SAP AG or an SAP affiliate company. All rights reserved.

Business Process Model and Notation Key shapes


Activity:
A step in a process
Represents work or action to be performed
Statement

Gateway

Event

2013 SAP AG or an SAP affiliate company. All rights reserved.

Gateway:
Controls flow branching, merging and parallel actions
Pure logic does not do the decision itself
Control flow

Event:
A signal that something has happened
Can start, pause and resume or interrupt and redirect a process or activity
Throw/catch

Business Process Model and Notation Activities

User Task:
Activity that has to be processed by a natural person
Typically associated with a user interface (JSF, JSP, servlet,)
Service Task:
Activity that is processed by a system
Defined via an interface description (e.g. WSDL)
Typically calling a web service or an EJB
Sub-Process:
A compound (decomposable) activity that holds a BPMN modeled sub-process
Can be shown collapsed or expanded
Can be embedded (local) or referenced (global)
Used for structuring processes
Subroutine
Call Activity:
Used to call a global sub-process or a global single task
Subroutine call
2013 SAP AG or an SAP affiliate company. All rights reserved.

10

Business Process Model and Notation Gateways


Exclusive Choice (data-based):
Only one path can be taken
Each gate has a Boolean data expression
if-then-else, switch
Parallel Split/Fork (also AND gateway):
Splits sequence flow in parallel streams
Multithreading
Exclusive/Uncontrolled Merge:
Merge exclusive alternative incoming sequence flows to one outgoing
sequence flow

Parallel Join:
Merge parallel alternative incoming sequence flows to one outgoing
sequence flow
Waiting for all threads to finish
Event-based Exclusive Choice:
Only one path can be taken
Decision is based on events, not data condition
2013 SAP AG or an SAP affiliate company. All rights reserved.

11

Business Process Model and Notation Events

Message Start Event:


Waits for a message and creates a new process instance or indicates start of
a sub-process
Intermediate Timer Event:
Pauses the sequence flow of a process or a sub-process for/until a specific
time
Intermediate Message Event:
Waits for and receives a message
Error End Event:
Stops the process or sub-process immediately and throws an error
Message End Event:
Ends a sequence flow in a process or a sub-process and sends a message
Termination:
Stops the process or sub-process immediately

2013 SAP AG or an SAP affiliate company. All rights reserved.

12

Business Process Model and Notation Orchestration and


collaboration
Pool:
A Pool contains a single BPMN- Process
A sequence flow is constrained in exactly one pool
A Process diagram may contain several pools
A pool generally represents a logical collection of roles, organizational units and systems
Lane:
A pool may be divided into lanes
A lane generally represents a role or an organizational unit
Orchestration:
Modeling a process flow of control in a single
internal (active) pool
Representation as sequence flow
Execution Sequence
Collaboration:
Modeling interaction between pools (not flow of control!)
Representation as message flow
Very powerful means for integration processes
2013 SAP AG or an SAP affiliate company. All rights reserved.

13

Business Process Model and Notation Data Objects

Data Object:
An artifact that stores data in the process context
Can be a single object or a list of objects ( )
XML Schema Definition used to define data objects
Comparable to Variables in programming languages

Data Object

2013 SAP AG or an SAP affiliate company. All rights reserved.

14

Explaining BPMN semantics: Tokens traversing the sequence flow

2013 SAP AG or an SAP affiliate company. All rights reserved.

15

Explaining BPMN semantics: Tokens traversing the sequence flow

2013 SAP AG or an SAP affiliate company. All rights reserved.

16

Model comparison:
BPEL vs. BPMN

Comparing BPEL with BPMN

Switch

Control

Block

Loop

Transformations and
Container Operations
Covered by Mappings

Superfluous in BPMN
2013 SAP AG or an SAP affiliate company. All rights reserved.

Fork

Wait
18

Example: flight booking coordination

2013 SAP AG or an SAP affiliate company. All rights reserved.

19

Direct BPEL to BPMN-translation

2013 SAP AG or an SAP affiliate company. All rights reserved.

20

Example: flight booking coordination using BPMN

Multiple
Bookings

Confirmation

Booking

2013 SAP AG or an SAP affiliate company. All rights reserved.

Booking
Confirmation

Failure

Cancel
Booking

21

Example: flight booking coordination

2013 SAP AG or an SAP affiliate company. All rights reserved.

22

Example: flight booking coordination using SAP NW PO (Variant 1)

2013 SAP AG or an SAP affiliate company. All rights reserved.

23

Example: flight booking coordination using SAP NW PO (Variant 2)

2013 SAP AG or an SAP affiliate company. All rights reserved.

24

Redesigning use cases

Redesigning usage of Receiver Determination

What is problematic about this redesign?


Process is not really stateful indicates a stateless integration
Integration logic buried in modeled processes, instead of configured integration
Reduced performance inherited from ccBPM design

How can you do better?


Move Receiver Determination steps and specified receivers at Send Steps into Integration Flows
Use Content-Based Routing in Integration Flows
Use Enhanced Receiver Determination / Dynamic Message Router

2013 SAP AG or an SAP affiliate company. All rights reserved.

26

Redesigning the provisioning of synchronous interfaces via ccBPM

What you need to know


ccBPM provides synchronous interfaces by means of the Sync-Async-Bridge
ccBPM and BPM are asynchronous in nature and cannot guarantee response times for such patterns
Sync/Async-Bridges typically create only short-lived stateful process instances (seconds, not days)

Why should you be careful with such redesigns?


This pattern puts a heavy burden on your system
The short-lived data creates administrative effort, e. g. for archiving and deletion

How can you do better?


Decide whether you really need the modeled approach, monitoring, and persistence of BPM here
Other alternatives exist, which usually perform better, with less administrative effort
Check out the alternatives on next slide
2013 SAP AG or an SAP affiliate company. All rights reserved.

27

Options for implementing typical scenarios without BPM


Sync/Async & Async/Sync Bridge
Check out the Sync/Async-Bridge & Async/Sync-Bridge in the JMS Adapter set of Adapter Modules
ResponseOnewayBean, RequestResponseBean, WaitResponseBean, NotifyResponseBean
Despite the name, the modules can be applied with other adapters as well

Message Translator Pattern


Check out whether Operation Mappings support your use-case
Use Operation Mappings with sequences of Mapping Program calls

Content Enricher Pattern involving RFC, JDBC, SOAP Adapter


Check out the Lookup Channels supported by Operation Mappings

Content Enricher & Filter Pattern involving RFC, EJB, Enterprise Services
Check out the Service Composer Perspective in SAP NetWeaver Developer Studio
Supports Projection, Simplification and Sequential Execution of Services

2013 SAP AG or an SAP affiliate company. All rights reserved.

28

Redesigning message header access

?
Typical use cases when accessing the message header in ccBPM
MessageId as unique identifier for correlation purposes
Adapter-specific header fields (e.g. filename for file adapter, JMS correlation id for JMS adapter, business
information for B2B adapter) for monitoring purposes and adapter-specific handling

How can you achieve the same in a cleaner way with SAP NetWeaver BPM?
Leave adapter-specifics to SAP NetWeaver PI components, e. g. Operation Mappings, Alert Engine
Hide adapter- and XI-protocol specifics from BPM, abstract it through the business payload

What are the benefits?


Separation of concerns
Process content can remain untouched in case of changes to the messaging configuration

2013 SAP AG or an SAP affiliate company. All rights reserved.

29

Redesigning message header access detailed procedure


1. In Enterprise Services Repository (ESR): define data type for storing relevant header data

2. Use Mapping API to access header, e. g. encapsulated in a User Defined Function (UDF)

3. Use the UDF in a Message Mapping

4. Configure Integration Flow using mapping of step 3 to provide enhanced business data
including the message header to BPM
5. In BPM, extract the data from the Message Event into the Process Context
2013 SAP AG or an SAP affiliate company. All rights reserved.

30

Redesigning message attachment handling

?
What you need to know
ccBPM can route attachments through a process and manipulate them using Operation Mappings
ccBPM attachment routing cannot be turned off (transparent feature)
BPM supports attachments at tasks which can be manipulated through UI

What options do you have in an SAP NetWeaver Process Orchestration installation?


Enterprise Content Management Integration (ECMI)
Operation Mapping APIs allow access to InputAttachments/OutputAttachments to move attachments from/to
main payload

What do you need in relation and what should be avoided?


Use e. g. JPR proxies and Web services to store/read attachments to/from ECM (details next slide)
Do not send complete attachments to BPM, supply relevant parts or identifiers instead
(cf. Claim Check pattern)
2013 SAP AG or an SAP affiliate company. All rights reserved.

31

Redesigning message attachment handling detailed procedure


ECM
1
Storage

Enterprise
Content Mgmt.
Java
API

Attachment
Capable Adapter
(HTTP, email)

Integration Flow

Web service
enabled EJB
(local) Web service
call

JPR Server
Proxy ImplemenJava
tation (Java)

BPM

API

All running on SAP NetWeaver Process Orchestration


2013 SAP AG or an SAP affiliate company. All rights reserved.

32

Redesigning alerting

What you need to know


ccBPM use case is to notify administrators of technical errors and provide helpful information
ccBPM supports raising Alerts to the ABAP Alert Management, including data from process context
BPM supports Notification Activities sending customizable emails to internal and external recipients

Why should you be careful with such redesigns?


Alert consolidation is not possible / only in the administrators email inbox.
Misses technical, adapter-specific details that help in solving the issue
Integration of issue tracking systems difficult (e. g. SAP Solution Manager)

How can you do better?


Evaluate Component-Based Message Alerting for alerting technical errors within PI to administrators
Possible consumers: Solution Manager, standard batch job for email distribution of alerts, or self-developed
consumers accessing alerts via standard web service

Use Notification Activities for business-related errors that require business users for resolution
2013 SAP AG or an SAP affiliate company. All rights reserved.

33

Redesigning system error handling

?
What you need to know
ccBPM supports handling technical errors, but provides no access to further details, such as error message
BPM supports handling modeled Faults only, providing access to the fault message

Handling System Errors will be possible with SAP NetWeaver Process


Orchestration 7.4 SP5 or 7.31 SP10, scheduled for December 2013
Using standard boundary event of type TechnicalError
Provides details about the error for use in notification and error handling

How can you implement system error handling before 7.4 SP5 / 7.31 SP10?
Implement a Web service wrapping the original service and which maps system errors to a Fault
Refer to SCN document DOC-3081 (http://scn.sap.com/docs/DOC-3081)
2013 SAP AG or an SAP affiliate company. All rights reserved.

34

Redesigning outbound Exactly Once In Order sending (EOIO)

?
What you need to know
ccBPM supports specifying a Queue Name, so that messages are sent with Quality of Service EOIO
BPM supports no specification of Quality of Service

How can you achieve EOIO for common cases in a cleaner way?
1. Send one bulk message containing all messages with EOIO requirements
within one process instance in a single Automated Activity
2. In the associated Integration Flow use Interface Splits / Split Mappings with
Maintain Order at Runtime

What are the prerequisites?


Ordered delivery possible only within one process instance, not across instances
Scenario has no requirements concerning queue names, as they cannot be specified
Implementation of Note 1870107
2013 SAP AG or an SAP affiliate company. All rights reserved.

35

What are the determining factors of a successful redesign?

Provide business value through new or improved scenarios


Improve scalability and performance of your scenario
Improve end user experience
Reduce administrative efforts

Follow software engineering practices in integration architectures


Loose Coupling principle
Separation of Concerns principle
Reuse principle

2013 SAP AG or an SAP affiliate company. All rights reserved.

36

How to start processes with


multiple interfaces

Multiple interfaces for starting a process

Fork

followed by RECEIVE steps


with Start Process semantics
2013 SAP AG or an SAP affiliate company. All rights reserved.

38

Multiple interfaces for starting a process

2013 SAP AG or an SAP affiliate company. All rights reserved.

39

Multiple interfaces for starting a process


Messages to BPM

2013 SAP AG or an SAP affiliate company. All rights reserved.

40

Multiple interfaces for starting a process


Aggregated message from BPM

2013 SAP AG or an SAP affiliate company. All rights reserved.

41

Multiple interfaces for starting a process

2013 SAP AG or an SAP affiliate company. All rights reserved.

42

Multiple interfaces for starting a process

2013 SAP AG or an SAP affiliate company. All rights reserved.

43

Multiple interfaces for starting a process

2013 SAP AG or an SAP affiliate company. All rights reserved.

44

Multiple interfaces for starting a process

2013 SAP AG or an SAP affiliate company. All rights reserved.

45

Multiple interfaces for starting a process

2013 SAP AG or an SAP affiliate company. All rights reserved.

46

Multiple interfaces for starting a process

2013 SAP AG or an SAP affiliate company. All rights reserved.

47

Multiple interfaces for starting a process

2013 SAP AG or an SAP affiliate company. All rights reserved.

48

Multiple interfaces for starting a process

2013 SAP AG or an SAP affiliate company. All rights reserved.

49

Demo
Multiple interfaces for starting a process

Good to know
ccBPM

SAP NetWeaver BPM

Block: in ccBPM the scope of a correlation condition can be


limited to the block (a local correlation).

Correlations in SAP NetWeaver BPM are activated as soon


as a process instance is running and the variables of the
correlation condition contain meaningful values. A scope
change can be realized by modifying the correlation condition,
so that new messages will not be consumed anymore.

Block: nested blocks can contain receive steps

In SAP NetWeaver BPM receive steps are only allowed in


referenced subprocesses

ccBPM allows the usage of one interface within several


processes

SAP NetWeaver BPM doesnt support the reuse of inbound


start interfaces in more than one conditional-start process
model

Acknowledgements are supported in both cases (provisioning


as well as consumption)

No acknowledgement support

Abstract interfaces are being used for the communication


between the integration server and the ccBPM engine

Up to SAP NetWeaver Process Orchestration 7.31 SP 8 no


abstract interfaces were supported. Starting with SP 9 you
can reuse your existing abstract interfaces as well.

2013 SAP AG or an SAP affiliate company. All rights reserved.

51

SAP NetWeaver Process Orchestration


Enterprise integration patterns speed up the migration
Providing best practices and guidelines on how to
implement common integration and business requirements on
SAP NetWeaver Process Orchestration

Enterprise integration patterns


Do help in solving recurring problems faced in the
integration of enterprise applications
See Enterprise Integration Patterns: Designing, Building,
and Deploying Messaging Solutions
by Gregor Hohpe and Bobby Woolf

Enterprise integration patterns on Process


Orchestration
Blog on SCN describing how to best implement enterprise
integration patterns on PI/PO
See SAP Process Orchestration patterns on SCN
2013 SAP AG or an SAP affiliate company. All rights reserved.

52

SAP NetWeaver Process Orchestration


Migration of Directory Content
Migrate classical PI scenarios to
integrated configuration objects (ICOs)

Using the new directory content migration tool, you


could considerably reduce the migration effort

Supporting both Java-only and dual-stack


target systems
Source PI system as of XI 3.0 and newer
Tool runs in target system
Automatic directory objects matching and
migration checks
Renaming of objects via renaming rules
Mass change support for communication
channels

Check out TechEd hands-on session


POP262: Migration Tool from Double
Stack to Single Stack Integration
Scenarios
2013 SAP AG or an SAP affiliate company. All rights reserved.

53

Key Takeaways

Key Takeaways
Migrating to SAP NetWeaver Process Orchestration is
highly attractive for the following reasons:
Lower TCO of a Java-only solution
Lower TCD due to integrated toolset in SAP NetWeaver
Developer Studio
Benefit from advanced BPM/BRM feature set
An automated migration of existing BPEL based
processes to BPMN is not possible due to the
fundamental differences between the notations
SAP supports the migration by providing the content
migration tool, ready-to-use Enterprise Integration
Patterns, and many online articles/blogs
2013 SAP AG or an SAP affiliate company. All rights reserved.

55

Further Information

SAP Public Web


http://scn.sap.com/community/process-orchestration
http://www.sap.com/platform/netweaver/components/process-orchestration

SAP Education and Certification Opportunities


Course BIT800
www.sap.com/education and search for BIT800 SAP NetWeaver Process Orchestration Introduction

Watch SAP TechEd Online


www.sapteched.com/online

2013 SAP AG or an SAP affiliate company. All rights reserved.

56

SAP TechEd Virtual Hands-on Workshops and SAP TechEd Online


Continue your SAP TechEd education after the event!
SAP TechEd Virtual Hands-on Workshops

SAP TechEd Online

Access hands-on workshops post-event


Available January March 2014
Complementary with your SAP TechEd registration

Access replays of keynotes, Demo Jam, SAP TechEd


LIVE interviews, select lecture sessions, and more!
View content only available online

http://saptechedhandson.sap.com/

2013 SAP AG or an SAP affiliate company. All rights reserved.

http://sapteched.com/online

57

Feedback
Please complete your session evaluation for POP300.

Thanks for attending this SAP TechEd session.

2013 SAP AG or an SAP affiliate company. All rights reserved.


No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP AG.
The information contained herein may be changed without prior notice.
Some software products marketed by SAP AG and its distributors contain proprietary software components of other software vendors.
National product specifications may vary.
These materials are provided by SAP AG and its affiliated companies ("SAP Group") for informational purposes only, without representation or warranty of any kind, and
SAP Group shall not be liable for errors or omissions with respect to the materials. The only warranties for SAP Group products and services are those that are set forth
in the express warranty statements accompanying such products and services, if any. Nothing herein should be construed as constituting an additional warranty.
SAP and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP AG in Germany and
other countries.
Please see http://www.sap.com/corporate-en/legal/copyright/index.epx#trademark for additional trademark information and notices.

2013 SAP AG or an SAP affiliate company. All rights reserved.

59

You might also like