Job Flow Object Translation Between Federated and External Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The challenge lies in efficiently managing and collaborating on large datasets and task routines across different programming languages in distributed development environments, where reproducibility, accountability, and data reuse are desired, but existing systems struggle with language compatibility and data format conversions.

Innovation Solution

A system that includes a processor and storage to execute job flows defined in federated areas, retrieving and converting task routines between different programming languages, and managing data sets through conversion operations such as type changes, byte orderings, and serialization, enabling the execution of task routines written in various languages and formats.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If task routines are developed in different programming languages in distributed environments, then programming flexibility and developer preference are improved, but language compatibility and data format conversion complexity increase

Engineering Contradiction:
Improveprogramming flexibilityVSAvoiddata format conversion complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements a job flow object as an intermediary that standardizes data exchange between task routines written in different programming languages. The job flow object acts as a mediator that translates and harmonizes data formats, allowing task routines in Python, R, Java, and other languages to exchange data without direct compatibility requirements. This resolves the contradiction by maintaining programming flexibility while managing conversion complexity through a standardized intermediate format.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system dynamically changes data format parameters based on the requirements of different programming languages. When a task routine in a specific language executes, the system adjusts data format parameters (such as data types, serialization formats, and structure) to match that language's expectations. This allows the same job flow to accommodate multiple programming languages without requiring complex permanent conversion mechanisms for each language pair.

Inventive Principle:
Principle #35Parameter changes

2Ease of operation

If job flow objects are exchanged between federated areas and external storage spaces, then data accessibility and collaboration are improved, but network transmission overhead and synchronization complexity increase

Engineering Contradiction:
Improvedata accessibilityVSAvoidnetwork transmission overhead
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The system performs preliminary actions by pre-processing and serializing job flow objects into a standardized format before storage. This preliminary preparation includes validating the job flow structure, converting data to appropriate formats, and organizing metadata. When job flow objects are retrieved from external storage, this pre-processing work eliminates the need for complex conversion and validation operations, reducing network transmission overhead and improving accessibility.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements a copying mechanism where job flow objects are replicated between federated areas and external storage spaces in a standardized format. Rather than transmitting and converting complex data structures, the system creates and manages copies of the job flow objects in their serialized form. This copying approach simplifies network transmission and improves data accessibility while maintaining consistency across different storage locations.

Inventive Principle:
Principle #26Copying

3Adaptability or versatility

If mid-flow data sets are converted between different programming language formats, then language interoperability is improved, but conversion time and processing overhead increase

Engineering Contradiction:
Improvelanguage interoperabilityVSAvoidconversion time
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The system efficiently handles mid-flow data set conversions by dynamically changing format parameters based on the target programming language. Rather than performing complex full-format conversions, the system adjusts specific parameters such as data type representations, serialization formats, and structure layouts to match the requirements of the target language. This parameter-based approach maintains language interoperability while significantly reducing conversion time and processing overhead compared to complete format transformations.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10747517B2Automated exchanges of job flow objects between federated area and external storage space
Publication Date: 2020.08.18 SAS INSTITUTE INC
  • US10747517B2 patent drawing
  • US10747517B2 patent drawing
  • US10747517B2 patent drawing

AI summary

An apparatus includes a processor to: receive a job flow definition; retrieve the most recent versions of a set of task routines for the defined job flow; translate, into an intermediate representation, executable instructions of each task routine implementing an interface for data input and/or output during execution; translate executable instructions of the job flow definition that defines the interface for each task routine into an intermediate representation; compare each intermediate representation from a task routine to the corresponding intermediate representation from the job flow definition to determine if there is a match; and in response to there being a match for each comparison and to the executable instructions of the job flow definition being written in a secondary programming language, translate the executable instructions of the job flow definition into a primary programming language, and store the resulting translated form of the job flow definition in a federated area.