Runtime Metadata Generation for Mobile App Data Synchronization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developing mobile device applications is tedious and time-consuming due to the need for extensive code writing to support synchronization of data between mobile devices and servers, which affects maintainability, readability, and scalability.

Innovation Solution

A framework for generating runtime metadata that allows developers to write minimal application-specific code by parsing metadata files to instantiate classes representing application databases and data records, creating accessible metadata objects for database and property metadata.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If developers write extensive code to support data synchronization between mobile devices and servers, then data synchronization functionality is achieved, but development time and complexity increase

Engineering Contradiction:
Improvedata synchronization functionalityVSAvoiddevelopment time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by automatically generating boilerplate code for data synchronization, event handling, and data access operations before the developer needs to write them. The code generator creates pre-configured templates based on database schemas, eliminating the need for developers to manually write repetitive synchronization code from scratch.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses copying by generating code templates and patterns that can be reused across different parts of the application. Once a synchronization pattern is established for one database table, the same template structure is copied and adapted for other tables, reducing development time while maintaining consistent functionality.

Inventive Principle:
Principle #26Copying

2Reliability

If developers write extensive code to support data synchronization, then data synchronization is achieved, but code maintainability and readability decrease

Engineering Contradiction:
Improvedata synchronization functionalityVSAvoidcode maintainability
Core Design Contradiction:
ReliabilityVSEase of manufacture

Solution Approach 1:

The system extracts the repetitive and maintenance-heavy portions of synchronization code and replaces them with automatically generated templates. By taking out the boilerplate code writing task from the developer's responsibilities, the remaining code becomes more focused on business logic and easier to maintain.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The generated code uses universal templates and patterns that work across multiple database tables and synchronization scenarios. This multi-functionality means that the same code structure handles various synchronization cases, improving readability and maintainability through consistency.

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

3Reliability

If developers write extensive code for data synchronization, then synchronization functionality is achieved, but application scalability is reduced

Engineering Contradiction:
Improvedata synchronization functionalityVSAvoidapplication scalability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The system enables dynamic adaptation by generating code that can automatically adjust to different database schemas and synchronization requirements. The code generator creates flexible templates that can be configured for various data models, allowing the application to scale to new database structures without requiring extensive manual code rewriting.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system segments the synchronization code into modular, independently configurable units. Each database table and synchronization operation is handled by separate generated code modules, making it easier to add, remove, or modify synchronization behavior for specific tables without affecting the entire application.

Inventive Principle:
Principle #1Segmentation

4Reliability

If developers manually create code for database representation classes, then database functionality is implemented, but development effort and time increase

Engineering Contradiction:
Improvedatabase functionalityVSAvoiddevelopment efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system implements self-service by automatically generating database representation classes, event classes, and data access code from database schemas. The code generator serves itself by reading the schema definitions and producing the necessary code structures without requiring manual intervention for each class creation.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system performs preliminary code generation actions by creating database representation classes before the application runtime. This pre-generation of classes based on schema definitions eliminates the need for developers to manually create these foundational structures during application development.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7840605B2System and method for generating runtime metadata for use in the development of mobile device applications
Publication Date: 2010.11.23 MALIKIE INNOVATIONS LTD
  • US7840605B2 patent drawing
  • US7840605B2 patent drawing
  • US7840605B2 patent drawing

AI summary

A system and method for generating runtime metadata for use in the development of mobile device applications. A metadata file, such as an XML file that is used to capture the metadata for a database associated with a mobile device application, is used to generate initialization code. This initialization code, when executed, creates runtime metadata for the application database in terms of a first object (e.g. classID object) through which metadata associated with the application database is accessible and at least one second object (e.g. propertyID object) through which metadata associated with a property of a data record of the application database is accessible.