IP Library Granted Patent US 12,375,412
Granted Patent B2
US 12,375,412 · App. 18/227,529 · Granted Jul 29, 2025

Asynchronous processing of product lifecycle management (PLM) integration messages

Inventors: Michael Hettich (Heidelberg, DE); Andre Klahre (Angelbachtal, DE)
Assignee: SAP SE
H04L47/2441H04L69/22
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,375,412
App. No.
18/227,529
Granted
Jul 29, 2025
Kind
B2
Abstract

In an example embodiment, asynchronous message processing is performed in a PLM system integration (PLMSI), at least for large message payloads. A processing decision is made as to whether to process a payload synchronously versus asynchronously. In the case of asynchronous processing, this processing can be started in a separate thread from the synchronous communication connection used to transmit the message and payload. The synchronous communication connection (which may be implemented in, for example, Hypertext Transfer Protocol (HTTP)) can be closed after the message was successfully received to prevent connection timeouts.

Claims (38)

1. A system comprising:

at least one hardware processor; and

a computer-readable medium storing instructions that, when executed by the at least one hardware processor, cause the at least one hardware processor to perform operations comprising:

receiving, from an external product data management (PDM) system, a synchronous request to process a payload of a message;

breaking up the payload into a plurality of smaller message packages and storing the smaller message packages in a queue for processing;

sending a command to a request processor to process the payload of the message asynchronously by processing the smaller message packages in parallel once each smaller message package has been determined to be successfully validated; and

while the payload of the message is being processed asynchronously, sending a synchronous response, to the external PDM system, to the synchronous request.

2. The system of claim 1 , wherein the operations further comprise:

determining that the payload of the message should be processed asynchronously.

3. The system of claim 2 , wherein the determining is performed by examining a header attribute of the synchronous request.

4. The system of claim 2 , wherein the determining is performed by passing one or more variables relating to the payload and/or the request processor into a machine learning model trained to output a classification regarding whether to process a payload synchronously or asynchronously.

5. The system of claim 4 , wherein the one or more variables include payload size.

6. The system of claim 5 , wherein the one or more variables further include one or more of a deepness of an object data structure in the payload, a processing workload of the request processor, and an available memory capacity of the request processor.

7. The system of claim 1 , wherein the plurality of smaller message packages are processed out-of-order.

8. A method comprising:

receiving, from an external product data management (PDM) system, a synchronous request to process a payload of a message;

breaking up the payload into a plurality of smaller message packages and storing the smaller message packages in a queue for processing;

sending a command to a request processor to process the payload of the message asynchronously by processing the smaller message packages in parallel once each smaller message package has been determined to be successfully validated; and

while the payload of the message is being processed asynchronously, sending a synchronous response, to the external PDM system, to the synchronous request.

9. The method of claim 8 , further comprising:

determining that the payload of the message should be processed asynchronously.

10. The method of claim 9 , wherein the determining is performed by examining a header attribute of the synchronous request.

11. The method of claim 9 , wherein the determining is performed by passing one or more variables relating to the payload and/or the request processor into a machine learning model trained to output a classification regarding whether to process a payload synchronously or asynchronously.

12. The method of claim 11 , wherein the one or more variables include payload size.

13. The method of claim 12 , wherein the one or more variables further include one or more of a deepness of an object data structure in the payload, a processing workload of the request processor, and an available memory capacity of the request processor.

14. The method of claim 8 ,

wherein the plurality of smaller message packages are processed out-of-order.

15. A non-transitory machine-readable medium storing instructions which, when executed by one or more processors, cause the one or more processors to perform operations comprising:

receiving, from an external product data management (PDM) system, a synchronous request to process a payload of a message;

breaking up the payload into a plurality of smaller message packages and storing the smaller message packages in a queue for processing;

sending a command to a request processor to process the payload of the message asynchronously by processing the smaller message packages in parallel once each smaller message package has been determined to be successfully validated; and

while the payload of the message is being processed asynchronously, sending a synchronous response, to the external PDM system, to the synchronous request.

16. The non-transitory machine-readable medium of claim 15 , wherein the operations further comprise:

determining that the payload of the message should be processed asynchronously.

17. The non-transitory machine-readable medium of claim 16 , wherein the determining is performed by examining a header attribute of the synchronous request.

18. The non-transitory machine-readable medium of claim 16 , wherein the determining is performed by passing one or more variables relating to the payload and/or the request processor into a machine learning model trained to output a classification regarding whether to process a payload synchronously or asynchronously.

19. The non-transitory machine-readable medium of claim 18 , wherein the one or more variables include payload size.

20. The non-transitory machine-readable medium of claim 19 , wherein the one or more variables further include one or more of a deepness of an object data structure in the payload, a processing workload of the request processor, and an available memory capacity of the request processor.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 28, 2023
From: HETTICH, MICHAEL; KLAHRE, ANDRE
To: SAP SE
Reel/Frame 064420/0265 →
Continuity (1)
Related Publication 20250039100A1 · Jan 30, 2025
References Cited (8)
US 8412741B2 · Hein · 2013 [cited by examiner]
US 10802762B1 · Gray · 2020 [cited by examiner]
US 20060026214A1 · Berg · 2006 [cited by examiner]
US 20090192857A1 · Morse · 2009 [cited by examiner]
US 20140279869A1 · Wu · 2014 [cited by examiner]
Sylvain Kubler et al. “Towards data exchange interoperability in building lifecycle management”, 2014 IEEE Emerging Technology and Factory Automation (ETFA), 8 pages. (Year: 2014). [cited by examiner]
Sylvain Kubler et al. “P2P Data synchronization for product lifecycle management”, available online Nov. 22, 2014, 17 pages. (Year: 2014). [cited by examiner]
Adam Kotwasinski. “Large Message Handling with Kafka: Chunking vs. External Store”, publicly posted on medium.com on May 23, 2018, 23 pages. (Year: 2018). [cited by examiner]