Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
alex_bundschuh
Product and Topic Expert
Product and Topic Expert

We have lately published the so-called Pipeline Concept for Cloud Integration as part of the Migration Guide for SAP Process Orchestration. This can be seen as another building block supporting you in your transition to the cloud. The pipeline concept has been a joint effort of development, consulting, Center of Excellence experts, product management, and selected customers with whom we have validated the concept at a very early stage.

In the Pipeline Concept documentation, we describe the concept in detail. Furthermore, you find an integration package with the set of integration flows and a groovy script collection on the SAP Business Accelerator Hub to setup your pipeline on Cloud Integration.

Feel free to apply the concept to your migration projects. You can use the material that we provide as template, feel free to adapt to your needs, hence we call it a concept and not a final solution. If you are a partner supporting your customers within their migration projects or if you even have your own migration tool in your portfolio, feel free to apply the concept for your own tool.

What are the benefits?

Cloud integration is very flexible in terms of modeling and running your integration scenarios allowing the design of a rich variety of integration patterns. SAP Process Orchestration in contrary has a very strict pipeline designed for reliable message processing providing decoupling, splitting and restarting capabilities out of the box guaranteeing Exactly Once processing. Those requirements are still valid for interfaces in Cloud Integration and are all addressed with the pipeline concept.

In a nutshell, key achievements of the pipeline concept are as follows:

  • Ensures decoupling and Exactly Once processing for asynchronous processing, also for split scenarios and in case of restart
  • Provides sophisticated restart capabilities, i.e., automatic retries as well as manual retry options
  • Simplifies operations by separating errors into different generic queues separated by routing, mapping and receiver system delivery
  • Requires lower number of JMS queues to take into account the resource limits of an SAP Integration Suite tenant which at the end also simplifies operations
  • Allows isolation and tuning of parallelization for individual receiver systems
  • Allows reusability of artifacts across multiple flows by using generic flow concept
  • Simplifies integration flow model especially for content based router and recipient list scenarios
  • Simplifies configuration on the backend sender side, e.g., just one ALE port on SAP S/4HANA system required
  • Supports packaging in IDoc and proxy, multi-message mappings, and maintain order at runtime in a generic manner

What is it all about?

The pipeline concept allows you to set up your asynchronous integration scenarios in Cloud Integration in a similar way how messages are processed in SAP Process Orchestration, namely in pipelines. Other than in Cloud Integration where you are very flexible in orchestrating the message flows, pipelines in SAP Process Orchestration are rather static, i.e., each pipeline consists of a fixed number of pipeline steps whereas the order is fixed, e.g., for a message processed within the SAP Process Orchestration runtime, first the receiver is determined, then the interface, and then the mapping is carried out.

The pipeline concept is mainly addressed to existing SAP Process Orchestration customers which plan to migrate their scenarios to the Cloud Integration capability of SAP Integration Suite. However, it can also be generally applied to any asynchronous integration scenario that you like to implement and run on Cloud Integration. In case of the migration use case, it can be seen as an alternative approach or in conjunction with the individual migration of single integration scenarios supported by the migration tool within SAP Integration Suite or migration tools provided by partners to overcome its shortcomings.

The pipeline concept may not apply to all customers, it depends on your individual situation, i.e., the number or the type of integration scenarios that you have. If you have a low number of integration scenarios to be migrated to Cloud Integration, then you may rather opt for creating individual integration flows for each of your source integration scenarios. If you have however a very large number of scenarios, the pipeline concept may help you to accelerate your migration project itself and to reduce effort and cost in terms of operating and monitoring your integration scenarios in the Cloud Integration.

One of the shortcomings that we address with the pipeline concept is the JMS queue handling in Cloud Integration for asynchronous integration scenarios. Resources on an SAP Integration Suite tenant are limited, so you need to properly model your integration flows in such a way to best suit the resource limits of your tenants, see Run an Integration Flow Under Well-Defined Boundary Conditions for instance. If you migrate your asynchronous integrated configuration scenarios in SAP Process Orchestration to integration flows in Cloud Integration one-by-one and use an own JMS queue for each integration flow to ensure exactly once delivery, you end up in a very high number of JMS queues. The pipeline concept reduces the number of JMS queues required to run your integration scenarios on Cloud Integration. A proper usage of JMS queues and ProcessDirect adapters and relying on the Partner Directory to be able to dynamically configure your integration flows, help to reduce the number of required JMS queues to four. If you count in four more JMS queues for the retry and dead letter handling, you end up at eight JMS queues required.

What’s the approach?

The pipeline concept defines a sequence of integration flows each representing a pipeline step. We distinguish between a set of generic integration flows which can be commonly used across all scenarios and scenario-specific integration flows. The generic integration flows are used across all integration scenarios and hence need to be deployed only once. The scenario-specific integration flows handle the scenario-specific message conversions and mappings. They can be created as copy of the templates provided.

In general, the integration flows are decoupled using JMS queues. This ensures that messages can be restarted which is a prerequisite for guaranteed delivery. To call the scenario-specific integration flows however we use the ProcessDirect adapter. Replacing the ProcessDirect connection with a JMS connection was not an option because then we would end up again in far too many JMS queues.

01_Pipelines.png

One key element of the pipeline concept is the usage of the Partner Directory. The Partner Directory on the one hand helps to define the message processing behavior, e.g., you can define scenario-specific maximum number of retries or receiver-specific outbound queues. On the other side, you use the Partner Directory to dynamically configure the generic integration flows. Latter helps to reduce the number of required JMS queues.

Another key element is the usage of XSLT mappings to carry out the receiver determination and interface split pipeline steps. The idea was nicked from the extended receiver determination capability in SAP Process Orchestration where you can run an operation mapping to determine your receivers in a content-based router or recipient list pattern. On the one hand, this dramatically simplifies the integration flow models of the receiver determination and interface split. Instead of a combination of multicast branches and multiple routers for all your content-based router xpath expressions which easily blows up your integration flow model, we simply run the xpath expressions within an XSLT mapping. So, the model becomes very neat and better readable. On the other side, we prefer XSLT over graphical message mapping because XSLT mappings are supported in the Partner Directory. So, the usage of XSLT in combination with the Partner Directory also contributes to the reduction of the number of required JMS queues.

If you like to learn more about the pipeline concept, check out the Pipeline Concept chapter as part of the migration guide for SAP Process Orchestration.

If you like to apply the pipeline concept, you find the integration package at the SAP Business Accelerator Hub.

Also check out my blog series where I describe how to apply the pipeline concept for a particular integration scenario. The first blog post covers a general use case with multiple receivers and multiple receiver interfaces.

And here's the complete list of blogs in the blog series:

 

 

8 Comments
s4_hipartner
Discoverer
0 Kudos

Hi Alex,

Nice blog, the concept is really interesting for SAP PO migrations and responsible use of JMS queues. We have also used similar patterns for SAP PO migrations, but using a DataStore, not JMS.

Is there any reason to use JMS over the DS, for these Async Patterns, other than performance and being able to do the manual retry from the queue?

It would be really interesting to elaborate a bit on that.

Thanks in advance. 

 

MauricioMiao
Contributor
0 Kudos

Hi @alex_bundschuh ,

The link for the pipeline help documentation is broken, can you help please?

Regards

Mauricio

 

alex_bundschuh
Product and Topic Expert
Product and Topic Expert
0 Kudos

@MauricioMiao for me the link works, maybe it was a temporary issue

Alex

alex_bundschuh
Product and Topic Expert
Product and Topic Expert
0 Kudos

@s4_hipartner yes, the reason for using JMS is performance, if you have high message load then it's recommended to use JMS instead of data store

Alex

BHerbold
Explorer
0 Kudos

Hello Alex,

Thank you for the interesting concept.

  • Regarding the seven steps, this would imply that a message needs to be paid for seven times.
  • Next, I always consider it problematic to directly transfer the logic of an old system into a new one by one to one manner.
  • I think that "the elephant in the room" is being ignored by SAP: Many communication adapters already offer a queuing capability via JMS. The number of JMS queues is limited. Now, each communication channel uses its own JMS queue. This raises the question of whether the technical approach itself is correct, or if SAP should create more practical solutions.
  • The B2B solution already relies on TPM. Now, the next solution is being developed, which has similar approaches, but seems to start over from scratch. I miss a more generalist approach.
  • In addition, the XI-Adapter needs the quality of service configured differently from Process Orchestration. Therefore, you will still face the challenge of configuring different endpoints in sending SAP systems.

I did some related suggestions for improvement SAP influence:

Possibility to customize the JMS Queue in asynchronous adapters
https://influence.sap.com/sap/ino/#/idea/321756

Different instances of one iFlow with different configurations
https://influence.sap.com/sap/ino/#/idea/321757

Remove quality of service configuration from XI Sender adapter
https://influence.sap.com/sap/ino/#/idea/321760

Regards
Bernd

MichalKrawczyk
Active Contributor
0 Kudos

hi Alex, 

Thank you for the blog 🙂 Here's a blog on how to test SAP Pipeline concept out of the box:

https://community.sap.com/t5/technology-blogs-by-members/sap-pipeline-concept-and-b2b-tpm-testing/ba...

Best Regards,

Michal Krawczyk 

vinaymittal
Contributor
0 Kudos

Thanks for publishing this , but Why are we trying to make simple things complex? When there are so many useful things that SAP can do with SAP CI which are in queue since more than 2 years why are we working on things like this. 

SAP PO was very rigid and SAP CI simplified things to a great deal. This particular pipeline not only makes things more complex and rigid than SAP PO but also takes away all the flexibility. This will leave a consultant puzzled like they were while learning SAP PO. Of all the integration flows I have worked on  Interface determination are not needed for even 0.1 % of the scenarios. The problems this design claims to solve were already solved! This just packages those solution into a more rigid and complex setup.

  • Ensures decoupling and Exactly Once processing for asynchronous processing, also for split scenarios and in case of restart - JMS queue already ensures this this is nothing new
  • Provides sophisticated restart capabilities, i.e., automatic retries as well as manual retry options - Every JMS queue inherently provides restart capability I am afraid I cannot find the sophistication
  • Simplifies operations by separating errors into different generic queues separated by routing, mapping and receiver system delivery - Generic Queues? the default 30 queues that we get have a limit of 10GB if a customer choses to go live with these pipelines and route 90% of their integrations like (400-1000) through 8 queues and each queue has a max size of 300mb upto 90% of total queue size (9GB) than that will never work! Messages will overflow and will get lost. 
  • Requires lower number of JMS queues to take into account the resource limits of an SAP Integration Suite tenant which at the end also simplifies operations - We can use just 2 queues as well by writing more complex logic than this but using lesser number of queues without increasing queue size doesnt solve anything
  • Allows isolation and tuning of parallelization for individual receiver systems - this works in individual queues as well
  • Allows reusability of artifacts across multiple flows by using generic flow concept - Process direct has always existed and enabled generic flows
  • Simplifies integration flow model especially for content based router and recipient list scenarios - again increased complexity
  • Simplifies configuration on the backend sender side, e.g., just one ALE port on SAP S/4HANA system required - this was always an option by having a single port in we21 and then routing it to multiple iflows in SAP CI nothing new here

    SAP should address the low number of queues in Integration suite. If a customer is paying 6000$ for a license and then paying additional fee for the additional bandwidth which again goes in thousands SAP should remove a limit on default 30 queues. With memory being so cheap now a days restricting a tenant to 32 GB of logging space and 10GB of queues doesn't really cut it. 
alex_bundschuh
Product and Topic Expert
Product and Topic Expert
0 Kudos

@vinaymittal thanks for your comment but I have to say that I do not fully agree with you, in my (and many customers' and partners') opinion the pipeline concept actually makes async message processing less complex: it comes with in-built decoupling, restart capabilities and error handling, it reduces the number of required JMS queues to a minimum, it allows to process async messages in a common way and hence simplifies monitoring and operation, it simplifies modeling of scenarios with multiple receivers i.e. content-based routing and recipient list, etc.,

And as such addresses customers' demand, as said we have validated the concept with multiple customers before publishing it, we have done changes based on the customers' feedback, most of the customers have come up with similar approaches and were looking for such a solution from SAP.

I agree, there are still some shortcomings however those will be addressed in future, we regularly enhance the provided integration package, right now we implement a sort of custom exit for custom error handling, etc., and we have plans to improve monitoring capabilities in general where the pipeline concept would benefit as well. Furthermore, we plan to enhance the migration tool so that integration artifacts such as the scenario-specific integration flows and the Partner Directory objects are automatically generated.

Btw, our partners Figaf and INT4 already support the pipeline concept in their migration and regression test tools. Like us, they are convinced that this is the right way to go.

So stay tuned

Alex