Job Stream Processing for Monolithic Application Refactoring

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing software development processes for industries like securities, finance, and banking are inefficient due to the need for extensive time and cost associated with modifying and redeploying monolithic software applications, which require developers to understand the application's workings, write new code, integrate, test, and redeploy changes.

Innovation Solution

A system and method for software application development that utilizes a library of jobs, each configured to perform specific functions with indicators for termination success or failure, allowing for the creation of job streams that can be linked and managed to process data files efficiently, supporting rapid development and testing without the need for extensive coding or language learning.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a monolithic software application is used for data processing, then the application can handle complex processing requirements, but any modification requires extensive time for understanding, coding, integration, testing, and redeployment

Engineering Contradiction:
Improveability to modify applicationVSAvoidtime for modification and redeployment
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent divides the monolithic application into discrete, reusable components called 'jobs' that can be independently developed, tested, and deployed. Each job is a self-contained unit with defined inputs and outputs, allowing modifications without affecting the entire system. This segmentation enables parallel development and reduces the time required for changes by isolating modifications to specific job modules rather than requiring system-wide retesting.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates a universal framework that supports multiple file formats and processing functions through a standardized job interface. Jobs can be designed to handle various input formats (fixed-width, variable-length, delimited) and output requirements without requiring framework changes. This universality allows a single job to serve multiple purposes or be reused across different processing scenarios, reducing the need for custom development for each requirement.

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

2Ease of manufacture

If a monolithic software application is used, then the application structure is simple to implement, but the complexity of modification and testing increases significantly

Engineering Contradiction:
Improveease of application developmentVSAvoidcomplexity of modification process
Core Design Contradiction:
Ease of manufactureVSDevice complexity

Solution Approach 1:

By segmenting the application into independent jobs with clear interfaces, the patent reduces modification complexity. Each job can be developed, tested, and modified independently without requiring understanding of the entire monolithic structure. The standardized job interface provides simple integration rules, transforming the complex modification process into a systematic assembly of discrete components.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a job manager as an intermediary layer between the processing framework and individual jobs. This mediator handles the complexity of job coordination, error handling, and resource management, allowing developers to focus solely on job logic without dealing with system-level complexity. The job manager abstracts away the infrastructure details, simplifying both development and modification processes.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If extensive coding and testing is required for each change, then the application reliability can be maintained, but the development speed and productivity decrease

Engineering Contradiction:
Improveapplication reliabilityVSAvoiddevelopment speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

Segmenting the application into independently testable jobs enables parallel development and testing. Each job can be unit-tested in isolation before integration, allowing comprehensive testing without sequential dependency. This segmentation maintains reliability through thorough testing while improving productivity by enabling concurrent development of multiple jobs or modifications.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary testing of individual jobs before integration into the full system. Each job is tested independently with predefined test cases that verify its functionality and error handling. This preliminary action ensures that jobs are robust before being assembled into the complete processing pipeline, maintaining overall system reliability while reducing the need for extensive retesting after integration.

Inventive Principle:
Principle #10Preliminary action

4Ease of operation

If a monolithic application is deployed, then the deployment process is straightforward, but any changes require complete re-deployment of the entire application

Engineering Contradiction:
Improveease of deploymentVSAvoiddeployment time for changes
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent segments the application into independently deployable jobs that can be activated or deactivated without affecting other parts of the system. This allows selective deployment of modified jobs rather than requiring complete application re-deployment. The job manager handles the deployment coordination, enabling granular control over which jobs are active and when changes are applied to the running system.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements a dynamic deployment model where jobs can be added, modified, or removed from the active system without shutting down the entire application. The job manager dynamically loads and unloads jobs based on configuration changes, allowing the system to adapt to modifications in real-time or during maintenance windows. This dynamic approach maintains ease of operation while significantly reducing deployment time for changes.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS7788638B2Method and system for data file processing
Publication Date: 2010.08.31 CITIGROUP GLOBAL MARKETS INC
  • US7788638B2 patent drawing
  • US7788638B2 patent drawing
  • US7788638B2 patent drawing

AI summary

A library of jobs is created, with the jobs performing predetermined functions. The jobs include a termination indication, which is success or failure. Input file formats of known file types are determined and a job stream to process the input files is constructed of the jobs linked according to the termination success or failure of the preceding job.