Automated Parallel Development System for Web Applications

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for developing and deploying web applications are manual, error-prone, and slow, as they require sequential testing and implementation of changes, which hinders the overall development process due to the lack of automated frameworks for parallel development and resource management.

Innovation Solution

An automated system that allows for parallel development by creating a main trunk and branches, enabling non-technical users to manage and deploy resources across development, testing, and production environments, with features like initializing parallel streams, promoting resources, and merging changes, using a graphical user interface for collaborative decision-making and visual merging processes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual sequential processes are used for development, testing, and deployment, then error rates are reduced through careful manual review, but development speed and productivity deteriorate due to sequential execution

Engineering Contradiction:
Improveerror reductionVSAvoiddevelopment speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system segments the application lifecycle into distinct parallel streams (development streams and production stream) that can be worked on simultaneously. Each stream is isolated but can be merged when ready, allowing multiple developers to work on different features or fixes without blocking each other, thus improving productivity while maintaining reliability through structured merge processes

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions by creating development streams that replicate the production environment structure in advance. Resources are prepared and tested in these preliminary streams before being merged into production, allowing validation and error detection before actual deployment, thereby maintaining reliability while enabling parallel development

Inventive Principle:
Principle #10Preliminary action

2Productivity

If parallel development of multiple resources is enabled, then productivity improves through simultaneous work, but system complexity increases due to resource dependencies and conflicts

Engineering Contradiction:
Improveparallel development capabilityVSAvoidresource management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system introduces an intermediary merge process that automatically detects and resolves resource conflicts between parallel streams. This intermediary mechanism handles the complexity of resource dependencies by providing automated conflict detection, resolution strategies, and validation, allowing parallel development while managing complexity through centralized coordination

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system implements feedback mechanisms that automatically detect resource conflicts and dependency issues during the merge process. Validation rules and automated checks provide feedback about potential problems before deployment, allowing developers to resolve issues systematically rather than dealing with runtime failures, thus managing complexity through continuous validation

Inventive Principle:
Principle #23Feedback

3Productivity

If automated frameworks are implemented for parallel development, then productivity and speed improve, but ease of operation deteriorates due to increased automation complexity

Engineering Contradiction:
Improvedeployment speedVSAvoiduser interaction complexity
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The system enables self-service through automated resource provisioning, environment replication, and conflict resolution mechanisms. Development streams are automatically created and configured to mirror production, and merge processes automatically detect and resolve conflicts without requiring deep technical knowledge, thus improving productivity while maintaining ease of operation through automation of complex tasks

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system uses copying to replicate the production environment structure into development streams, allowing automated validation and testing before deployment. This copying approach enables automated frameworks to work with standardized structures, improving productivity through automation while maintaining ease of operation by using familiar production-like environments

Inventive Principle:
Principle #26Copying

4Adaptability or versatility

If multiple versions of resources are maintained in parallel, then adaptability improves for simultaneous feature development, but loss of information increases due to potential conflicts and synchronization issues

Engineering Contradiction:
Improveparallel feature developmentVSAvoidresource conflict errors
Core Design Contradiction:
Adaptability or versatilityVSLoss of information

Solution Approach 1:

The system implements feedback through automated conflict detection and validation during merge operations. When multiple versions of resources exist in parallel streams, the system automatically checks for conflicts and provides feedback about potential information loss or inconsistencies, allowing developers to resolve issues before deployment and preventing information loss that would occur with unchecked merges

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9141382B2Automated methods and systems for developing and deploying projects in parallel
Publication Date: 2015.09.22 HSBC TECHNOLOGY & SERVICES USA INC
  • US9141382B2 patent drawing
  • US9141382B2 patent drawing
  • US9141382B2 patent drawing

AI summary

Embodiments of the invention are directed to system and method for managing parallel development of projects. One embodiment of the invention is a method of automatically managing processes in the parallel development of an application through a graphical user interface. The graphical user interface manages the automated processes, which are able to complete their tasks without further user interaction. The automated processes managed by the graphical user interface include, provisioning a first development environment and second development environment. The processes also includes deploying a second release of an application to the second development environment, and merging modifications to the second source code and the second content of the second release into a first source code and a first content of the first release. After the releases have been merged together, the process automatically deploys the third release of the application to a production environment for use by users.