Pluggable Model Framework Extension Points

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing MVC architecture applications are limited in their ability to seamlessly integrate new model types and functionalities without requiring significant modifications to the underlying code, restricting their flexibility and compatibility with diverse back-end systems.

Innovation Solution

A pluggable model framework is introduced, which includes extension points that allow plug-ins to interface with the application, enabling the addition of model-specific functionality and supporting the integration of new model types, such as a model import wizard, through a development tool, editor framework, and user interaction framework.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If the MVC architecture application uses a fixed model structure, then the code stability and simplicity are maintained, but the ability to integrate new model types and back-end systems is limited

Engineering Contradiction:
Improveability to integrate new model typesVSAvoidcode modification requirements
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The application is segmented into modular components: a core MVC framework and separate plug-in modules. Each plug-in encapsulates specific model type functionality (e.g., EJB models, JDBC models, XML models) that can be independently added or removed. This segmentation allows new model types to be integrated without modifying the core application code, as they are loaded as separate, self-contained units through the extension points.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The MVC framework is designed with universal extension points that can accommodate multiple types of models through a common interface. The framework provides unified methods (e.g., getModel(), setModel()) that work with any model type, whether built-in or added via plug-in. This multi-functionality allows the same core code to support diverse back-end systems and model types without requiring separate code paths or modifications.

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

2Adaptability or versatility

If the application allows seamless integration of new model types through plug-ins, then the flexibility and compatibility are enhanced, but the system architecture becomes more complex

Engineering Contradiction:
Improveflexibility and compatibilityVSAvoidframework structure
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

Extension points serve as intermediaries between the core MVC framework and external plug-in modules. These extension points provide a standardized interface (e.g., getModelType(), createModel(), destroyModel()) that mediates all interactions between the framework and diverse model types. This intermediary layer shields the core framework from the complexity of different model implementations, allowing the framework to remain simple while supporting high flexibility and compatibility.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system architecture is made dynamic through the plug-in mechanism, which allows the application to adapt its functionality at runtime. New model types can be loaded and registered dynamically without requiring application restart or code recompilation. The framework dynamically discovers and integrates plug-ins through the extension points, enabling the system to evolve and accommodate new requirements while maintaining a stable core structure.

Inventive Principle:
Principle #15Dynamics

3Adaptability or versatility

If developers need to add model-specific functionality such as import wizards, then the functionality completeness is improved, but the ease of operation deteriorates due to code modification requirements

Engineering Contradiction:
Improvemodel-specific functionalityVSAvoidease of adding functionality
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The framework provides pre-configured extension points and standardized interfaces that are prepared in advance for common model-specific functionalities. Import wizards, editors, and other model-specific tools can be implemented as plug-ins that attach to these pre-established extension points. This preliminary preparation eliminates the need for developers to modify core code when adding new functionality, as the framework already provides the necessary hooks and integration mechanisms.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The plug-in architecture enables self-service addition of model-specific functionality. Developers can independently create and install plug-ins containing import wizards, custom editors, or other specialized features without requiring access to or modification of the core application code. The framework automatically integrates these plug-ins through the extension points, allowing developers to enhance functionality in a self-contained, maintenance-friendly manner.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS7469402B2Pluggable model framework
Publication Date: 2008.12.23 SAP SE
  • US7469402B2 patent drawing
  • US7469402B2 patent drawing
  • US7469402B2 patent drawing

AI summary

A pluggable model framework in a model-view-controller (MVC) environment. The pluggable model framework contains elements that relate to one or more of a development tool for an application, a metamodel that defines development objects associated with the application, a generator for generating code based on the metamodel, and an application run-time. The pluggable model framework includes an extension point that corresponds to at least one of the elements. A plug-in interfaces to the pluggable model framework by way of the extension point. The plug-in corresponds to a model used by the application.