Batch Component Model for Distributed Object Environments

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current distributed object component technologies are designed for online transaction processing and lack integration with batch processing, making it inefficient to process large volumes of transactions in a single job, which is a common requirement in modern business operations.

Innovation Solution

A batch component model is introduced that applies the design principles of J2EE components to batch processing, allowing for iterative logic, deployment descriptors for resource management, and a contractual relationship between the batch component and container to optimize execution and handle failures, enabling the reuse of business logic and data components across online and batch processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If distributed object component technologies are used for online transaction processing, then transactional integrity and security are ensured, but batch processing efficiency deteriorates

Engineering Contradiction:
Improvetransactional integrityVSAvoidbatch processing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system dynamically adapts the component model based on processing mode. For online transactions, it uses traditional request-response components with ACID guarantees. For batch processing, it transforms the same components to support iterative processing with checkpointing and recovery, allowing the system to optimize for throughput while maintaining integrity through configurable transaction boundaries.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The invention changes key parameters of component behavior based on processing mode. Transaction boundaries are adjusted from strict single-request transactions to configurable batch transactions with intermediate checkpoints. Recovery mechanisms are activated selectively for batch mode, and threading models are switched from sequential request handling to parallel iterative processing, enabling efficient bulk operations while preserving data integrity.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If batch processing is implemented by stringing together single transactions, then transactional integrity is maintained, but processing efficiency deteriorates

Engineering Contradiction:
Improvetransactional integrityVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system enables continuous batch processing by eliminating the stop-start nature of sequential transaction stitching. Components process records in continuous streams with buffered I/O operations, maintaining processing flow without repeatedly entering and exiting transaction contexts. This reduces overhead while maintaining integrity through periodic checkpointing rather than after every single record.

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

The system performs preliminary actions including pre-loading data into memory buffers, pre-establishing database connections, and pre-configuring transaction boundaries before actual processing begins. Checkpoints are pre-positioned at logical boundaries, and error handling mechanisms are pre-initialized, allowing the batch process to run efficiently without repeated setup overhead for each transaction.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If one large transaction is used for batch processing, then processing speed improves, but impact on online processing increases

Engineering Contradiction:
Improvebatch processing speedVSAvoidimpact on online processing
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

The batch processing transaction is segmented into multiple smaller transactions separated by checkpoints. Each segment processes a portion of the batch and commits independently, allowing the system to achieve bulk processing efficiency while limiting the scope of any single transaction. This segmentation reduces lock duration and resource contention on online systems compared to one large transaction, while still providing throughput benefits over single-record processing.

Inventive Principle:
Principle #1Segmentation

4Adaptability or versatility

If separate batch processing systems are used, then batch processing capability is achieved, but system complexity increases

Engineering Contradiction:
Improvebatch processing capabilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The component model is designed to be universal, serving both online transaction processing and batch processing functions through the same core components. The system detects processing mode and automatically configures components accordingly, eliminating the need for separate batch processing systems. This multi-functionality reduces overall system complexity while maintaining full batch processing capability through configurable transaction boundaries and recovery mechanisms.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS8024733B2Component model for batch computing in a distributed object environment
Publication Date: 2011.09.20 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US8024733B2 patent drawing
  • US8024733B2 patent drawing
  • US8024733B2 patent drawing

AI summary

A batch component model is provided within a distributed object environment. The batch component is designed to capture the iterative logic of a batch program as it reads from one or more input streams, invokes operations on other business component functions, and generates output to one or more output streams. Deployment descriptors express declarative policies for the component that will influence how the component is managed including the streams it uses, business components it depends on, how processing costs are accounted, and the resource demands the job will put on the system. Input streams and output streams are encapsulated in objects that hide the actual source of input and output data so that the component can be redeployed in different execution environments to different physical data sources without requiring the program to be changed. A batch container enforces the deployment policies declared for the batch component.