IP Library Granted Patent US 12,445,536
Granted Patent B2
US 12,445,536 · App. 18/454,207 · Granted Oct 14, 2025

Middleware for communication between microservices and monolithic application

Inventors: Hui Li (Shanghai, CN); Xia Yu (Shanghai, CN); Dabin Feng (Shanghai, CN); Neng Gan (Shainghai, CN); Zhen Zhang (Shanghai, CN)
Assignee: SAP SE
H04L67/63G06F9/547
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,445,536
App. No.
18/454,207
Granted
Oct 14, 2025
Kind
B2
Abstract

Methods, systems, and computer-readable storage media for receiving, from a first entity, a first call, the call being received by a middleware client of a second entity, storing a set of headers associated with a workflow in a request context holder of the middleware client, and determining that a second call is to be executed from the middleware client of the second entity for the workflow, and in response: reading, by a client of the middleware client, the set of headers associated with the workflow, including the headers in a request of the second call, determining an endpoint for the second call, and transmitting the second call for receipt at the endpoint.

Claims (58)

1. A computer-implemented method for executing calls between a monolithic application and one or more microservices, the method being executed by one or more processors and comprising:

receiving, from a first middleware client of a first entity, a first call, the first call being received by a second middleware client of a second entity, the first call comprising a set of headers descriptive of a workflow being executed between a monolithic application and a set of services;

determining that the set of headers included in the first call are allowed headers, and in response:

storing the set of headers in a request context holder of the second middleware client, the request context holder storing the set of headers as a key-value pair comprising a key that identifies the workflow and a value comprising the set of headers; and

determining, by the second client, that a second call is to be executed from the second middleware client of the second entity for the workflow, and in response:

reading, by the second middleware client, the set of headers descriptive of the workflow,

including the set of headers in a request of the second call,

determining an endpoint for the second call, and

transmitting the second call for receipt at the endpoint.

2. The method of claim 1 , wherein the first entity is one of the monolithic application and a microservice.

3. The method of claim 1 , wherein determining that the set of headers included in the first call are allowed headers comprises:

comparing headers of the first call with an allow list; and

for each header matching at least one of a header name and a header pattern of the allow list, including the header in the set of headers.

4. The method of claim 1 , wherein reading the set of headers comprises reading the set of headers from the request context holder indexed based on the workflow.

5. The method of claim 1 , wherein determining the endpoint for the second call comprises:

determining a value from a uniform resource locator (URL) register using a relative URL as an index to the URL register, the value comprising a portion of the endpoint; and

providing the endpoint by combining the value and the relative URL into a full URL.

6. The method of claim 5 , wherein the URL register is stored in a URL register cache of the second middleware client and is refreshed in response to a change in the URL register.

7. The method of claim 1 , further comprising applying a resilience configuration to the second call, the resilience configuration being determined based on a set of resilience instances and a mapping that maps a relative URL to one or more resilience instances in the set of resilience instances.

8. A non-transitory computer-readable storage medium coupled to one or more processors and having instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform operations for executing calls between a monolithic application and one or more microservices, the operations comprising:

receiving, from a first middleware client of a first entity, a first call, the first call being received by a second middleware client of a second entity, the first call comprising a set of headers descriptive of a workflow being executed between a monolithic application and a set of services;

determining that the set of headers included in the first call are allowed headers, and in response:

storing the set of headers in a request context holder of the second middleware client, the request context holder storing the set of headers as a key-value pair comprising a key that identifies the workflow and a value comprising the set of headers; and

determining, by the second client, that a second call is to be executed from the second middleware client of the second entity for the workflow, and in response:

reading, by the second middleware client, the set of headers descriptive of the workflow,

including the set of headers in a request of the second call,

determining an endpoint for the second call, and

transmitting the second call for receipt at the endpoint.

9. The non-transitory computer-readable storage medium of claim 8 , wherein the first entity is one of the monolithic application and a microservice.

10. The non-transitory computer-readable storage medium of claim 8 , wherein determining that the set of headers included in the first call are allowed headers comprises:

comparing headers of the first call with an allow list; and

for each header matching at least one of a header name and a header pattern of the allow list, including the header in the set of headers.

11. The non-transitory computer-readable storage medium of claim 8 , wherein reading the set of headers comprises reading the set of headers from the request context holder indexed based on the workflow.

12. The non-transitory computer-readable storage medium of claim 8 , wherein determining the endpoint for the second call comprises:

determining a value from a uniform resource locator (URL) register using a relative URL as an index to the URL register, the value comprising a portion of the endpoint; and

providing the endpoint by combining the value and the relative URL into a full URL.

13. The non-transitory computer-readable storage medium of claim 12 , wherein the URL register is stored in a URL register cache of the second middleware client and is refreshed in response to a change in the URL register.

14. The non-transitory computer-readable storage medium of claim 8 , wherein operations further comprise applying a resilience configuration to the second call, the resilience configuration being determined based on a set of resilience instances and a mapping that maps a relative URL to one or more resilience instances in the set of resilience instances.

15. A system, comprising:

a computing device; and

a computer-readable storage device coupled to the computing device and having instructions stored thereon which, when executed by the computing device, cause the computing device to perform operations for executing calls between a monolithic application and one or more microservices, the operations comprising:

receiving, from a first middleware client of a first entity, a first call, the first call being received by a second middleware client of a second entity, the first call comprising a set of headers descriptive of a workflow being executed between a monolithic application and a set of services;

determining that the set of headers included in the first call are allowed headers, and in response:

storing the set of headers in a request context holder of the second middleware client, the request context holder storing the set of headers as a key-value pair comprising a key that identifies the workflow and a value comprising the set of headers; and

determining, by the second client, that a second call is to be executed from the second middleware client of the second entity for the workflow, and in response:

reading, by the second middleware client, the set of headers descriptive of the workflow,

including the set of headers in a request of the second call,

determining an endpoint for the second call, and

transmitting the second call for receipt at the endpoint.

16. The system of claim 15 , wherein the first entity is one of the monolithic application and a microservice.

17. The system of claim 15 , wherein determining that the set of headers included in the first call are allowed headers comprises:

comparing headers of the first call with an allow list; and

for each header matching at least one of a header name and a header pattern of the allow list, including the header in the set of headers.

18. The system of claim 15 , wherein reading the set of headers comprises reading the set of headers from the request context holder indexed based on the workflow.

19. The system of claim 15 , wherein determining the endpoint for the second call comprises:

determining a value from a uniform resource locator (URL) register using a relative URL as an index to the URL register, the value comprising a portion of the endpoint; and

providing the endpoint by combining the value and the relative URL into a full URL.

20. The system of claim 19 , wherein the URL register is stored in a URL register cache of the second middleware client and is refreshed in response to a change in the URL register.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2023
From: LI, HUI; YU, XIA; FENG, DABIN; GAN, NENG; ZHANG, ZHEN
To: SAP SE
Reel/Frame 064677/0954 →
Continuity (1)
Related Publication 20250071191A1 · Feb 27, 2025
References Cited (16)
US 6907546B1 · Haswell · 2005 [cited by examiner]
US 12212475B1 · Dickey · 2025 [cited by examiner]
US 12294524B2 · Shah · 2025 [cited by examiner]
US 20170041288A1 · Stotski · 2017 [cited by examiner]
US 20210286640A1 · Zengerle · 2021 [cited by examiner]
US 20210383248A1 · Schimpfky · 2021 [cited by examiner]
US 20230019974A1 · Iyengar · 2023 [cited by examiner]
US 20230129107A1 · Bokhman · 2023 [cited by examiner]
US 20230195528A1 · Fargo · 2023 [cited by examiner]
US 20230195547A1 · Carranza · 2023 [cited by examiner]
US 20240143335A1 · Wouhaybi · 2024 [cited by examiner]
US 20240356762A1 · Kim · 2024 [cited by examiner]
US 20240362151A1 · Kunz · 2024 [cited by examiner]
US 20240364772A1 · Josyula · 2024 [cited by examiner]
US 20250062979A1 · Srinivasan · 2025 [cited by examiner]
US 20250062990A1 · Srinivasan · 2025 [cited by examiner]