Data-Centric Execution Engine for Business Logic Automation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software applications often require users to write code or rely on resource-intensive methods to extend functionality, which can be time-consuming and non-portable, limiting user flexibility and efficiency in modifying applications.

Innovation Solution

A data-centric approach using an execution engine that accesses a commingled application model with a data model and business logic model, where business logic rules are associated with an index tree, allowing the engine to identify and execute relevant actions based on events, thereby enabling users to extend application functionality without coding.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If users write code to extend application functionality, then customization capability is improved, but time consumption and resource requirements increase

Engineering Contradiction:
Improvecustomization capabilityVSAvoidtime consumption
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent introduces a visual modeling tool as an intermediary between users and application functionality. Users create extensions through visual models rather than direct code writing, and the system automatically generates the underlying code. This mediator resolves the contradiction by providing customization capability while eliminating the time-consuming manual coding process.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system enables self-service by automatically generating executable code from user-created visual models. The code generation happens automatically without requiring users to manually write or understand programming code, thus providing customization capability while saving significant time and resources.

Inventive Principle:
Principle #25Self-service

2Adaptability or versatility

If users create application extensions, then functionality is extended, but portability decreases due to system-specific configuration

Engineering Contradiction:
Improvefunctionality extensionVSAvoidportability
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The patent uses visual models as portable representations of application extensions. These models can be copied and transferred between different systems or users. The visual model format serves as a portable copy that can be instantiated on different platforms, resolving the portability issue while maintaining functionality extension capability.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The visual modeling approach creates universal models that can serve multiple purposes and be used across different systems. The models are not tied to a specific implementation platform, allowing the same model to be deployed on different systems, thus improving portability while maintaining the ability to extend functionality.

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

3Ease of operation

If code generation is used to allow users to extend applications, then ease of use is improved, but difficulty in determining which code to use increases

Engineering Contradiction:
Improveease of useVSAvoidcode selection difficulty
Core Design Contradiction:
Ease of operationVSDifficulty of detecting and measuring

Solution Approach 1:

The patent segments the generated code into distinct components that correspond to specific elements in the visual model. Each part of the visual model generates a corresponding segment of code, making it easy to identify and modify specific portions. This segmentation resolves the difficulty of determining which code to use by creating a direct, traceable mapping between model elements and code segments.

Inventive Principle:
Principle #1Segmentation

4Ease of operation

If model engine approach is implemented, then user-friendly extension is improved, but processing delays occur when model changes require full regeneration

Engineering Contradiction:
Improveuser-friendly extensionVSAvoidprocessing speed
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The system performs preliminary actions by maintaining a mapping between visual model elements and generated code segments. When the model changes, the system can identify only the affected segments rather than regenerating the entire code base. This preliminary organization of information enables incremental updates, improving processing speed while maintaining user-friendly model-based extension.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements dynamic code generation where the system adapts to model changes in real-time. Instead of static full-regeneration approaches, the system dynamically identifies and updates only the necessary code segments based on model changes. This dynamic approach maintains the user-friendly model interface while eliminating processing delays associated with full regeneration.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS7599901B2Processing data-centric business models
Publication Date: 2009.10.06 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7599901B2 patent drawing
  • US7599901B2 patent drawing
  • US7599901B2 patent drawing

AI summary

The present invention extends to methods, systems, and computer program products for processing data-centric business models. An execution engine accesses a commingled data-centric application model that includes a data model for a data store and a business logic model for interacting with data entities contained in the data store. The execution engine receives an event related to the data store and identifies an involved data entity corresponding to the received event. The execution engine identifies a business logic rule indicated as affecting the involved data entity. The execution engine establishes a context for evaluating the identified business logic rule. The execution engine evaluates the conditions of the business logic rule in accordance with the established context. The execution engine executes any appropriate actions indicated in the business logic rule as a result of the conditions of the business logic rule being satisfied.