Distributed UI Build System for Unified Application Assembly

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional application development systems face challenges in providing a harmonized and unified user interface across multiple teams, where changes in one child application can affect others, and require all teams to contribute to the same code repository, leading to integration issues and cumbersome build processes.

Innovation Solution

A distributed user interface development system that allows each team to have their own code repository, with an application frame repository hosting a user interface and linked code versioning repositories, enabling independent development and testing, while an application builder module assembles the unified web-based application during build time, ensuring consistency and isolation of team-specific processes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If all teams contribute to the same code repository, then integration and testing can be performed from a common repository, but changes in one child application can affect other child applications and integration issues are difficult to detect until the application is integrated

Engineering Contradiction:
Improveintegration reliabilityVSAvoidcode repository management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the code repository into multiple independent repositories, each owned by a specific team or child application. This segmentation allows teams to develop independently without affecting others, while the build system orchestrates integration by pulling from these separate repositories, thus maintaining integration reliability while reducing repository management complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a build system as an intermediary that mediates between multiple independent code repositories and the final integrated application. The build system retrieves code from separate repositories, performs integration, and manages the build process, thereby enabling teams to work independently while ensuring reliable integration without requiring direct access to a shared repository.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If multiple teams develop child applications separately, then team-specific development processes can be isolated, but the build process becomes challenging and cumbersome when bringing functionality together

Engineering Contradiction:
Improveteam-specific development efficiencyVSAvoidbuild process complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The build system acts as an intermediary that automates the complex process of integrating code from multiple separate repositories. It handles the orchestration of pulling code, resolving dependencies, and assembling the final application, thereby maintaining team-specific development independence while simplifying the build process through automated mediation.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The build system performs preliminary actions by pre-configuring integration rules, dependency relationships, and build parameters before the actual build process. This preliminary setup enables the build system to automatically and efficiently integrate code from multiple repositories without requiring complex manual intervention during the build execution.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If all code is integrated in a common repository, then testing can be performed from a common repository, but it is difficult to identify bugs introduced by specific teams at an earlier stage

Engineering Contradiction:
Improvebug detection capabilityVSAvoidtime to identify and isolate bugs
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

By segmenting the codebase into separate repositories for each team or child application, the patent enables precise identification of bug sources. When a bug is detected in the integrated application, the segmented structure allows rapid tracing to the specific team's repository, significantly reducing the time required to identify and isolate the problematic code compared to searching through a monolithic common repository.

Inventive Principle:
Principle #1Segmentation

4Adaptability or versatility

If teams use separate code repositories, then independent development and testing can be performed, but the application integration and harmonization becomes more complex

Engineering Contradiction:
Improveindependent team development freedomVSAvoidapplication integration complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The build system serves as an intermediary that manages the complexity of integrating applications from separate repositories. It handles the coordination of multiple independent development processes, resolves dependencies between child applications and the parent application, and automates the harmonization process, thereby maintaining team independence while reducing integration complexity through automated mediation.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10216493B2Distributed UI development harmonized as one application during build time
Publication Date: 2019.02.26 SAP SE
  • US10216493B2 patent drawing
  • US10216493B2 patent drawing
  • US10216493B2 patent drawing

AI summary

A system and method to develop a harmonized UI application is presented, giving the teams the freedom of having their own code repository and bringing the functionality together during build steps to have one consistent application facing the external consumers. Multiple applications are reachable via the same web address in the same context without having each team to contribute to the same code repository. Team-specific development processes are isolated from a central build process, allowing each team to develop and test their part of the overall application.