Batching Self-Referencing REST Resources in Single Payload

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current approaches to performing CRUD operations on resource graphs in RESTful architectures require multiple transactions, increasing network request costs and complicating rollback processes, especially when resources are self-referencing.

Innovation Solution

Generating a single payload with metadata describing the relationships and operations for multiple resources, allowing all operations to be executed as a single transaction on the server, which reduces network request costs and simplifies rollback processes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If multiple individual REST requests are used to perform CRUD operations on self-referencing resources, then each operation can be performed independently, but the number of network requests increases and rollback becomes complicated

Engineering Contradiction:
Improvetransaction atomicityVSAvoidnetwork request cost
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent combines multiple individual REST requests into a single batch request that processes multiple CRUD operations on self-referencing resources in one network transaction. The server receives a consolidated payload containing all operations (creates, updates, deletes) and their inter-resource references, executes them atomically, and returns a single response. This merging eliminates the need for multiple sequential network requests while maintaining transaction integrity through server-side transaction management.

Inventive Principle:
Principle #5Merging (Combining)

2Ease of operation

If multiple transactions are used to handle CRUD operations on resource graphs, then each operation can be isolated, but the complexity of rollback processes increases

Engineering Contradiction:
Improveerror handlingVSAvoidtransaction management complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent merges multiple separate transactions into a single server-side transaction that handles all CRUD operations on self-referencing resources. The server maintains transactional integrity by processing all operations within one transaction context, automatically managing rollback if any operation fails. This approach simplifies error handling because the client only needs to manage a single transaction rather than coordinating multiple transactions and their respective rollbacks.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The server acts as an intermediary that receives the batch of CRUD operations with self-referencing resource identifiers, resolves the references, and executes all operations within a single transaction. The server mediates the complexity of transaction management by handling reference resolution and transaction coordination internally, freeing the client from implementing complex rollback logic across multiple transactions.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If local references are assigned to resources without URIs, then resources can be processed in batch, but metadata generation and reference resolution become necessary

Engineering Contradiction:
Improvebatch processing efficiencyVSAvoidmetadata processing complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The client performs preliminary actions by assigning local references to resources that lack URIs and generating metadata that describes these references and the intended CRUD operations. This preliminary preparation allows the server to efficiently process the batch by resolving local references to actual resource identifiers during transaction execution. The metadata acts as a blueprint that guides the server through the batch processing without requiring complex real-time reference resolution.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9967356B2Bulk uploading of multiple self-referencing objects
Publication Date: 2018.05.08 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9967356B2 patent drawing
  • US9967356B2 patent drawing
  • US9967356B2 patent drawing

AI summary

A computer implemented method, computer program product, and system for performing create, read, update, or delete operations on a plurality of resources in a client-server environment. In an embodiment, the computer implemented method includes the steps of identifying individual resources requiring operations to be performed, assigning local references for any resources to which a URI (Uniform Resource Identifier) has not been provided by the server, generating metadata describing the local references and operations to be performed, wrapping each individual resource with the metadata to provide a plurality of wrapped resources arranging the wrapped resources into a single payload, and transmitting the single payload to the server.