Transactional Proxy for Runtime Object Transformation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional transaction systems cannot transform non-transactional objects into transactional objects at runtime without access to source code, and existing tools require code modifications at compile time, which is time-consuming and error-prone.

Innovation Solution

A method and apparatus that generates a transactional proxy for non-transactional objects at runtime, incorporating transactional logic and a marker, allowing the object to participate in transactions by forwarding calls to the original object, thereby enabling runtime transformation into transactional objects.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional transaction systems are used to transform non-transactional objects into transactional objects, then the objects can participate in transactions, but source code modification is required which is time-consuming and error-prone

Engineering Contradiction:
Improvetransactional integrityVSAvoidcode modification time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent introduces a transactional proxy as an intermediary component that sits between the application and the non-transactional object. The proxy handles all transactional operations (commit, rollback, begin) and forwards method calls to the original object, enabling transactional behavior without modifying the object's source code. This mediator pattern resolves the contradiction by providing transactional integrity through the proxy while avoiding time-consuming source code modifications.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent creates a copy (proxy) of the original non-transactional object that mimics its interface and behavior. The transactional proxy is generated at runtime based on the original object's class information, allowing the application to interact with the proxy as if it were the original object. This copying approach enables transactional transformation without requiring changes to the original object's source code, thus resolving the time loss contradiction.

Inventive Principle:
Principle #26Copying

2Reliability

If source code modification is performed to make objects transactional, then the objects can participate in transactions, but the process is error-prone and requires administrator access to source code

Engineering Contradiction:
Improvetransactional capabilityVSAvoidease of making transactional
Core Design Contradiction:
ReliabilityVSEase of manufacture

Solution Approach 1:

The transactional proxy acts as an intermediary that encapsulates all transactional logic and semantics. Instead of requiring administrators to modify source code to add transactional methods (commit, rollback, begin), the proxy automatically provides these capabilities by intercepting method calls and managing transaction state. This eliminates the errors associated with manual source code modification and removes the requirement for source code access.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system automatically generates transactional proxies at runtime based on the original object's class information, without requiring administrator intervention or source code access. The proxy self-configures by reading class metadata and dynamically creating the appropriate transactional wrapper. This self-service mechanism dramatically improves ease of manufacture by making the transactional transformation process automatic and error-free.

Inventive Principle:
Principle #25Self-service

3Reliability

If transactional transformation is performed at compile time, then objects can be made transactional, but the transformation cannot occur at runtime for already deployed applications

Engineering Contradiction:
Improvetransactional behaviorVSAvoidruntime transformation capability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic proxy generation that occurs at runtime rather than at compile time. When an application needs transactional behavior for a non-transactional object, the system dynamically creates a transactional proxy based on the object's class information available at runtime. This dynamic approach allows already-deployed applications to gain transactional capabilities without recompilation, resolving the contradiction between reliable transactional behavior and runtime adaptability.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the operational parameter from compile-time transformation to runtime transformation. By utilizing runtime class metadata and dynamic code generation capabilities, the system transforms the timing parameter of the transformation process. This parameter change enables already-deployed applications to be made transactional without source code modification, achieving both reliable transactional behavior and runtime versatility.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9092216B2Transactional object container
Publication Date: 2015.07.28 RED HAT INC
  • US9092216B2 patent drawing
  • US9092216B2 patent drawing
  • US9092216B2 patent drawing

AI summary

A processing device receives a transactional object at runtime of a compiled application, the transactional object comprising first transactional logic. The processing device determines a locking strategy to use for the transactional object. The processing device generates a transactional proxy for the transactional object, the transactional proxy comprising a transactional marker, a pointer to the transactional object, and second transactional logic that supersedes the first transactional logic. The processing device passes the transactional proxy to the application, wherein the application is to make calls on the transactional proxy instead of on the transactional object.