# US 12,003,590 B2 · Performance-enhancing cross-system request handling via shared memory cache

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,003,590 B2
- Document ID: US12003590B2
- Status: Granted
- Kind: B2
- Application number: 17/968,648
- Filed: 2022-10-18
- Published: 2024-04-18
- Granted: 2024-06-04
- Earliest claimed: 2022-10-18
- Assignees: Sap SE
- Applicants: Sap SE
- Inventors: Andre Klahre; Michael Hettich; Nitish Kumar; Christine Schaefer
- Web page: https://patentgrep.com/patent/US12003590B2

## CPC

- H04L 67/34: {involving the movement of software or configuration parameters (network booting or remote initial program loading [RIPL] G06F9/4416)}
- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- H04L 67/565: Conversion or adaptation of application format or content (adding application control or application functional data H04L67/561)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

In a scenario involving a primary and secondary server, resource requests can be managed to avoid sending multiple requests to the secondary server. In particular, requests for data object attributes can be queued when another request has already been made. Hashkey and locking mechanisms can be used to support scenarios involving multiple users and multiple data object instances. Performance of the overall system landscape can thus be improved by effectively consolidating resource requests.

## Claims

### Claim 1

A computer-implemented method comprising:
at a primary server, from a client computer with a user interface comprising a plurality of facets, receiving a plurality of resource requests for attributes of a same data object instance stored at a secondary server to be displayed in the plurality of facets at the client computer;
for a first resource request out of the resource requests for attributes of the same data object instance, requesting requested attributes of the data object instance from the secondary server;
for a second resource request out of the resource requests for attributes of the same data object instance, responsive to determining that the first resource request for the data object instance has already been made, queuing the second resource request without relaying it to the secondary server;
for the first resource request, acquiring a lock;
for the second resource request, waiting on the lock, wherein the lock is released responsive to fulfilling the first resource request;
receiving the requested attributes of the data object instance from the secondary server;
storing the received requested attributes of the data object instance; and
fulfilling the queued, second resource request with the stored received requested attributes of the data object instance already received from the secondary server.

### Claim 2 (depends on 1)

The method of claim 1 wherein:
the requested attributes are stored in a shared memory cache; and
the second resource request reads one or more of the requested attributes from the shared memory cache.

### Claim 3 (depends on 1)

The method of claim 1 wherein:
the lock is identified via a hashkey calculated based on an identifier of the data object instance and a user identifier.

### Claim 4 (depends on 1)

The method of claim 1 wherein:
determining whether a first request has already been made comprises calculating a hashkey based on an identifier of the data object instance and a user identifier.

### Claim 5 (depends on 1)

The method of claim 1 further comprising:
after fulfilling the second resource request, dequeuing the second resource request.

### Claim 6 (depends on 1)

The method of claim 1 wherein:
the primary server is part of a first platform; and
the secondary server is part of a second platform of a different type than the first platform.

### Claim 7 (depends on 6)

The method of claim 6 wherein:
the first platform supports finer grained access to data object instance attributes than the second platform.

### Claim 8 (depends on 1)

The method of claim 1 wherein:
the secondary server provides product version information; and
the data object instance represents the product version information.

### Claim 9 (depends on 1)

The method of claim 1 wherein:
the secondary server does not support fine-grained access to attributes of the data object instance.

### Claim 10 (depends on 1)

The method of claim 1 wherein:
the requested attributes of the data object instance comprise a full set of attributes of the data object instance; and
the attributes of the first resource request are a proper subset of the full set of attributes.

### Claim 11 (depends on 1)

The method of claim 1 wherein:
the second resource request comprises a request for at least one attribute of the same data object instance that is not requested by the first resource request.

### Claim 12 (depends on 1)

The method of claim 1 wherein:
the plurality of facets display different attributes of the data object instance.

### Claim 13 (depends on 1)

The method of claim 1 wherein:
the requested attributes of the data object instance are included in an integrated hybrid object that comprises attributes managed natively and attributes managed at the secondary server, whereby data federation without replication is implemented.

### Claim 14 (depends on 1)

The method of claim 1 wherein:
the first resource request comprises an OData request.

### Claim 15

A system comprising:
a client computer displaying a plurality of facets in a user interface, wherein the client computer is configured to send a plurality of resource requests for attributes of a data object instance to be displayed in the plurality of facets;
a primary server computer configured to receive and fulfill the resource requests for attributes of the data object instance from the client computer, wherein the primary server computer is configured to queue a second resource request for attributes of the data object instance responsive to determining that a first resource request for attributes of the data object instance has already been received;
wherein:
the primary server computer comprises a shared memory and is further configured to store the attributes of the data object instance received as a result of the first resource request to a secondary server computer in the shared memory and provide access to the attributes in the shared memory to the queued, second resource request, whereby a separate resource request to the secondary server computer for the second resource request for attributes of the data object instance is avoided;
a lock is identified by a hashkey computed based on a user identifier associated with both the first resource request and the second resource request; and
the second resource request is queued via the lock.

### Claim 16 (depends on 15)

The system of claim 15 wherein:
the primary server computer operates as a RESTful Web service.

### Claim 17 (depends on 15)

The system of claim 15 wherein:
the hashkey is further based on an identifier of the data object instance.

### Claim 18

One or more non-transitory computer-readable media having stored therein computer-executable instructions that when executed by a computing system, cause the computing system to perform:
at a primary server, from a client computer with a user interface comprising a plurality of facets, receiving a plurality of resource requests for attributes of a same data object instance stored at a secondary server to be displayed in the plurality of facets at the client computer;
for a first resource request out of the resource requests for attributes of the same data object instance, requesting a full set of requested attributes of the data object instance from the secondary server;
for a second resource request out of the resource requests for attributes of the same data object instance, responsive to determining that the first resource request for the data object instance has already been received, queuing the second resource request without relaying it to the secondary server, wherein the queuing employs a lock identified by a hashkey calculated via a user identifier associated with both the first resource request and the second resource request;
receiving the full set of requested attributes of the data object instance from the secondary server;
storing the received full set of requested attributes of the data object instance; and
fulfilling the queued, second resource request from the stored full set of requested attributes of the data object instance already received from the secondary server, whereby a second resource request to the secondary server is avoided.
