Developer Interface for Dynamic Component Sharing via Communication Bus

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software development limitations restrict reusability to code or compiled binary files, hindering the ability to reuse active programs loaded in memory for enhanced functionality, such as sharing data between components.

Innovation Solution

A method and system utilizing a communication bus to register, share, and generate new programs by combining components, including dynamic linked libraries (DLL) and executable programs (EXE), allowing for data sharing and component management through a developer interface based on Extensible Mark-up Language (XML).

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If software reusability is limited to code or compiled binary files, then implementation simplicity is maintained, but reusability and functionality enhancement are restricted

Engineering Contradiction:
Improvesoftware reusabilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements a universal component registration and sharing mechanism that allows any active program to be registered as a component and reused across multiple applications. The communication bus enables any program to publish and consume components, making the system universally applicable beyond traditional code or binary file reuse scenarios.

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

Solution Approach 2:

The patent introduces a communication bus as an intermediary layer between programs and components. This mediator handles component registration, discovery, and invocation, abstracting the complexity of direct program-to-program communication and enabling simplified component reuse while managing system complexity centrally.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If active programs are reused for enhanced functionality, then reusability and functionality are improved, but data sharing and component management complexity increases

Engineering Contradiction:
Improvefunctionality enhancementVSAvoidcomponent management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent enables programs to automatically register their components with the communication bus and discover needed components autonomously. Components self-publish their interfaces and capabilities, reducing the need for manual configuration and management overhead despite the enhanced functionality achieved through active program reuse.

Inventive Principle:
Principle #25Self-service

3Productivity

If a developer interface is provided for generating new programs from components, then productivity and ease of operation are improved, but interface complexity and implementation difficulty increase

Engineering Contradiction:
Improveprogram generation efficiencyVSAvoidinterface complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the program generation process into discrete component selection and combination steps through the developer interface. The interface presents available components in a structured manner, allowing developers to build new programs by selecting and configuring individual components rather than writing code from scratch, thereby improving productivity while managing interface complexity through modular design.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8739117B2Method and system for providing developer interface
Publication Date: 2014.05.27 NHN ENTERTAINMENT
  • US8739117B2 patent drawing
  • US8739117B2 patent drawing
  • US8739117B2 patent drawing

AI summary

A method and system for generating a developer interface using a loaded program. The method of generating a developer interface may share a plurality of components included in a loaded program through a communication interface, and generate a new program using components selected from among the plurality of shared components through the developer interface.