How to Redesign ccBPM Processes Using SAP NetWeaver Process Orchestration

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.
2
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.
3
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.
5
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.
6
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.
8
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
9
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 administrator„s 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 doesn‟t 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