Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
peter_ha3
Participant
4,501


Introduction

A customer has very specific requirement for Hybris integration with SAP ECC thru their SAP PI system. The process should be able to handle thousands of orders per second from Hybris at peek business periods.

This blog describes an architecture with RabbitMQ as an intermediate buffer system to absorb peek transaction volume and the Advantco AMQP adapter for SAP PI/PO integration.

Hybris integration options.

 

Hybris provides these three main options for integration with external systems:

  • SOAP/RESTful web services

  • Java Message Service (JMS)

  • Spring Integration


From SAP PI perspective, the SOAP/RESTful web services and the JMS options are the most obvious options as these are standard support by SAP PI but each of these options have their limitation.

SOAP/RESTful web services option: Hybris provides a RESTful API for exporting business data in JSON format. Our customer used the Advantco REST adapter to expose a RESTful service on the SAP PI system to receive incoming requests from Hybris. Although they noticed significant performance improvements comparing to the classic SOAP/XML services, their SAP PI system was not able to handle the thousands of requests per second due to the exceptional high number of threads that must be available to process these requests. This exercise did provided a conclusion that Hybris REST/JSON is the correct way to export data as it is very fast.

Java Message Service (JMS) option: SAP PI does provide a standard JMS adapter but it does not have a native JSON/XML converter.

The chosen architecture option.

To prevent flooding their SAP PI with RESTful requests, the customer decides for a buffer system to absorb the incoming requests and have their SAP PI system pulls the data from the buffer system. RabbitMQ was the ideal solution as it is a very lightweight broker which can handle huge volume of data and supports native JSON format.



To pull data from RabbitMQ, the customer uses the Advantco AMQP adapter which is fully compatible with RabbitMQ and has the support for JSON/XML conversion. The number of application threads on the SAP PI system determines how much fast data can be fetch from RabbitMQ. This scenario is different from the RESTful scenario in that the SAP PI system has a control on how much data it want to process at anytime, independent of the data volume coming from Hybris.

This architecture setup satisfy the requirements to handle thousands of orders from Hybris while preventing their SAP PI to crash because of the sheer amounts of data.

Reference:

RabbitMQ : http://www.rabbitmq.com/

Hybris : https://www.hybris.com/en/

AMQP adapter : https://www.advantco.com/product/adapter/amqp

AMQP : https://www.amqp.org/

5 Comments
0 Kudos

Hi Peter, This is a great blog. It should be very helpful for Retail industries.

iddorijsdijk
Explorer
0 Kudos

Very interesting blog. I'm wondering whether it is possible at all to connect to RabbitMQ using the default JMS connection?

peter_ha3
Participant
0 Kudos

The PI/PO adapter does not support JSON/XML conversion, you would need to handle that. On the Hybris side, one must make sure that JMS broker can handle the high peek data load from Hybris.

iddorijsdijk
Explorer
0 Kudos

I meant: you are using the Advantco adapter to 'read' from RabbitMQ. Can the same be achieved using the standard JMS adapter?

KennethEriksen
Participant
0 Kudos

According to RabbitMQ homepage they support JMS-clients, and with the following adapter module you could perform JSON/XML-conversion I believe. RabbitMQ even supports JSON over pure HTTP it seems. I have no personal experience with RabbitMQ, though.

FormatConversionBean - One Bean to rule them all!

Labels in this area