Software Modeling Framework for Multi-Framework Dependency Injection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software development frameworks lack a unified approach to accommodate various dependency injection (DI) and other software modeling frameworks, limiting their usage and extension in building new applications and machines.

Innovation Solution

A software modeling framework, referred to as the 'Links framework', which supports different types of dependency injection and software development frameworks through a service provider interface (SPI) and application provider interface (API), allowing for the incorporation of multiple DI frameworks and enabling the development of strategic component layering for various implementations, including proprietary platforms.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a unified software modeling framework is created to support multiple DI frameworks, then adaptability and versatility are improved, but device complexity increases

Engineering Contradiction:
Improvesupport for multiple DI frameworksVSAvoidframework structure
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The framework is divided into distinct segments: an abstraction layer that defines universal modeling concepts, and implementation layers that handle specific DI framework details. This segmentation allows the system to support multiple frameworks without mixing their specific implementations, resolving the contradiction by organizing complexity into manageable, isolated segments.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces intermediary components including a metadata model that acts as a mediator between different DI frameworks and the core system. This metadata model provides a standardized interface that translates between various framework-specific formats, enabling multi-framework support while shielding the core system from framework-specific complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If dynamic model generation at runtime is implemented, then adaptability is improved, but loss of time occurs during model creation

Engineering Contradiction:
Improvedynamic model generationVSAvoidmodel generation time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The framework performs preliminary actions by pre-defining a comprehensive metadata model and abstraction layer before runtime operations. This preparatory work establishes the structural framework and validation rules in advance, enabling rapid dynamic model generation at runtime without requiring complex decision-making during the actual model creation process.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system utilizes parameter changes by dynamically instantiating model objects with different configurations based on runtime requirements. Rather than creating entirely new model structures, the system adjusts parameters and properties of existing model templates, significantly reducing model generation time while maintaining adaptability.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS8863074B2Software modeling framework
Publication Date: 2014.10.14 ORACLE INT CORP
  • US8863074B2 patent drawing
  • US8863074B2 patent drawing
  • US8863074B2 patent drawing

AI summary

A system and method for providing a software modeling framework which supports different types of dependency injection and other software modeling or software development frameworks, and which allows software developers to develop models that strategically layer different components for different implementations. A service provider interface (SPI) enables different DI frameworks to be incorporated into the system; while an application provider interface (API) enable machines or implementations to be constructed. Extenders can be modeled so that, for example a particular bundle requires a handler for a particular configuration manifest entry; while a particular module provides handling of that manifest entry.