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
© Copyright 2024