Context Data Structure for MVC Application State Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In the MVC design pattern, defining relationships between data elements and managing application state is cumbersome, often requiring significant redundant code and leading to inefficient data transport and potential user interface flickering in client-server systems.

Innovation Solution

The extended MVC design pattern introduces the concept of context, which establishes a structured storage place for data related to a controller, using a design-time data structure to create a run-time data structure that reduces redundant storage and improves data consistency by declaratively defining relationships, allowing for efficient data transport and minimizing code redundancy.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If predefined relationships are defined through dependencies in a relational database, then data relationships can be established, but for data without predefined relationships (e.g., model-view relationships), significant redundant code is required to define relationships and enable data transport

Engineering Contradiction:
Improveease of defining data relationshipsVSAvoidcode redundancy for data transport
Core Design Contradiction:
Ease of manufactureVSDevice complexity

Solution Approach 1:

The patent introduces a context as an intermediary data structure that mediates between the model and view. The context automatically manages data relationships and transport between model and view without requiring explicit application code, thus reducing code redundancy while maintaining the ability to define relationships.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The context is designed to be self-managing, automatically handling data transport and relationship maintenance between model and view. This self-service mechanism eliminates the need for developers to write redundant code for data synchronization, as the context autonomously manages these relationships.

Inventive Principle:
Principle #25Self-service

2Ease of operation

If application code is written to memorize and administrate application state using state variables, then the current status of user interaction can be tracked, but this requires significant code for managing state

Engineering Contradiction:
Improveability to track application stateVSAvoidcode for memorizing and administrating state
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent merges the state management functionality into the context data structure. Instead of separate state variables requiring management code, the context itself holds and manages the application state, combining data storage and state tracking into a single unified structure that reduces code complexity.

Inventive Principle:
Principle #5Merging (Combining)

3Reliability

If the client sends a request to the server to rebuild a current page, then the page can be updated, but this causes flickering on the display device

Engineering Contradiction:
Improvepage update capabilityVSAvoiddisplay flickering
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The context is prepared and data is organized on the server side before the client requests page rendering. This preliminary preparation allows the server to send only the necessary delta information rather than rebuilding the entire page, thus preventing flicker while maintaining update capability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent extracts only the changed or necessary data portions from the full page context and sends them to the client as delta information. This selective extraction avoids transmitting unnecessary data that would cause complete page rebuilds and flickering, while still achieving the required page updates.

Inventive Principle:
Principle #2Taking out (Extraction)

4Object-affected harmful factors

If mechanisms are implemented to send only delta information to the client, then flickering is reduced, but application-specific coding must be developed on both client and server sides

Engineering Contradiction:
Improvedisplay flickeringVSAvoidapplication-specific coding on client and server
Core Design Contradiction:
Object-affected harmful factorsVSDevice complexity

Solution Approach 1:

The context data structure serves multiple functions: it manages model-view relationships, tracks application state, and enables delta information extraction. This universal, multi-functional design eliminates the need for separate application-specific coding mechanisms on both client and server sides, as the context handles all these tasks through its standardized interface.

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

Data Source

PatentUS7600215B2Using interrelated data at run time
Publication Date: 2009.10.06 SAP SE
  • US7600215B2 patent drawing
  • US7600215B2 patent drawing
  • US7600215B2 patent drawing

AI summary

Methods, systems and computer program products implementing techniques for using interrelated data at run time. The techniques include establishing a model, the model implementing application logic of an application; establishing at least one view for presenting the model; establishing at least one controller for manipulating the model; and establishing at least one storage area, the storage area relating to the controller and storing an instance of a first data structure, the instance of the first data structure comprising application data having been stored in the storage area by an access method, the first data structure having been declared prior to execution of the application.