Client-Server Code Generation via Tree Hierarchy

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional client-server systems face performance issues and user experience delays due to the need for server requests for calculations, and existing solutions either increase server load, duplicate business logic, or require frustrating initial downloads and maintenance challenges.

Innovation Solution

A computer system generates first executable code for the server and second executable code for the client based on common source code, using a tree hierarchy to implement business logic, allowing calculations to be performed locally without server latency and maintaining logic synchronization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If business logic is coded in the business-logic layer to be deployed on the server, then system safety and ease of maintenance are improved, but system performance and user experience deteriorate due to server request delays

Engineering Contradiction:
Improvesystem safetyVSAvoidserver request delay
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the business logic into two parts: critical logic remains on the server for safety, while non-critical calculation logic is extracted and deployed to the client as executable code. This segmentation allows calculations to execute locally without server requests, eliminating delays while maintaining server control over core business rules.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary component - a code generation system that creates executable code from the business logic layer. This intermediary translates server-side logic into client-executable form, enabling the client to perform calculations independently while the server maintains authority over the original logic definitions.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of time

If business logic is duplicated in the user-interface layer to improve responsiveness, then user experience improves, but software bugs increase due to coordination difficulties

Engineering Contradiction:
Improvecalculation response timeVSAvoidsoftware bug risk
Core Design Contradiction:
Loss of timeVSReliability

Solution Approach 1:

The patent creates a controlled copy of the business logic for client execution. Instead of manual duplication, the system automatically generates executable code that is a faithful representation of the server-side logic. This automated copying process ensures consistency and eliminates the coordination errors that plague manual duplication approaches.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The business logic serves itself by being automatically transformed into client-executable code. The same logic that runs on the server is systematically converted and deployed to the client, allowing the client to execute calculations independently without requiring manual synchronization or coordination between separate codebases.

Inventive Principle:
Principle #25Self-service

3Loss of time

If large pieces of business logic are pushed to the client initially, then responsiveness improves, but initial download experience and maintenance difficulty worsen

Engineering Contradiction:
Improvecalculation response timeVSAvoidinitial download experience
Core Design Contradiction:
Loss of timeVSEase of manufacture

Solution Approach 1:

The patent applies partial action by deploying only the specific portions of business logic needed for client-side calculations, rather than pushing the entire business logic layer. This selective deployment reduces download size and improves initial user experience while still enabling local execution of necessary calculations.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9454390B2Executable code generated from common source code
Publication Date: 2016.09.27 INTUIT INC
  • US9454390B2 patent drawing
  • US9454390B2 patent drawing
  • US9454390B2 patent drawing

AI summary

A computer system generates first executable code in a first programming language based on common source code, where the first executable code is configured to execute at a server in the client-server environment. Then, the computer system executes the first executable to produce relational objects that constitute a tree hierarchy, where a given relational object defines a relationship between nodes and end points in the common source code. Next, the computer system generates second executable code in a second programming language based on the tree hierarchy, where the second executable code is configured to execute at a client in the client-server environment, and where the second executable code implements a subset of the common source code associated with the relational objects which is based on a user context.