Automated Communication Interface Broker for Software Module Integration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In software engineering, managing communication links between numerous modules in large software applications is error-prone and leads to complex, hard-to-maintain 'spaghetti code', requiring extensive manual implementation and frequent redesign due to evolving needs.

Innovation Solution

A mechanism using a global module, such as an Exchange for Coupling or Communication Interfaces (ECI/BCI), automates the creation and management of communication code by registering and looking up services, eliminating the need for manual implementation of communication code between modules, and generating necessary code at compile-time.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If manual implementation of communication code is used between modules, then flexibility in customization is improved, but device complexity and error-proneness increase

Engineering Contradiction:
Improveflexibility in customizationVSAvoidcomplexity of communication links
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system enables automatic generation of communication code between modules without manual intervention. The communication interface mechanism automatically creates the necessary code links, eliminating the need for developers to manually implement communication logic while maintaining system flexibility through configurable module interfaces.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

Communication code is generated at compile-time before the software runs. This preliminary action ensures that all communication links between modules are pre-established and validated, reducing runtime errors and simplifying the development process while maintaining adaptability.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If manual creation of communication links is performed, then adaptability to changing needs is improved, but loss of time and productivity decrease

Engineering Contradiction:
Improveadaptability to evolving needsVSAvoidtime for creating and maintaining communication code
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

Communication code is automatically generated at compile-time based on module interface definitions. When modules need to communicate, the system pre-generates the necessary communication links during compilation, eliminating manual coding time while maintaining adaptability through interface-based design.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

A communication interface mechanism acts as an intermediary between modules, automatically managing the creation and maintenance of communication links. This mediator handles the complexity of link management, allowing developers to focus on module functionality while the system handles communication overhead.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of operation

If communication code is manually implemented, then ease of understanding individual modules is improved, but difficulty of tracking dependencies increases

Engineering Contradiction:
Improveease of understanding module functionalityVSAvoiddifficulty of tracking communication dependencies
Core Design Contradiction:
Ease of operationVSDifficulty of detecting and measuring

Solution Approach 1:

Communication link generation is extracted from manual implementation and automated by the system. This separation allows module code to remain simple and focused on business logic, while the communication infrastructure is automatically generated and managed, making dependencies traceable through the generation process.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The communication interface mechanism serves as an intermediary layer that automatically manages dependencies between modules. This intermediary tracks and documents all communication links, making dependencies visible and manageable without complicating individual module code.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Reliability

If extensive manual implementation of communication code is used, then reliability of custom communication logic is improved, but manufacturing precision and error rate worsen

Engineering Contradiction:
Improvereliability of communication logicVSAvoidprecision of communication code implementation
Core Design Contradiction:
ReliabilityVSManufacturing precision

Solution Approach 1:

The system automatically generates communication code, eliminating manual errors. This self-service approach ensures consistent, error-free generation of communication links while maintaining reliability through validated interface definitions and automated link creation processes.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

Communication code is generated at compile-time with validation, ensuring precision before runtime. This preliminary generation and validation process catches errors early, ensuring reliable communication links while maintaining high precision in the generated code.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11275567B1Making communication interfaces pluggable by using mechanisms comprising of exchange/broker for communication interfaces
Publication Date: 2022.03.15 CHILUVURI RAJU
  • US11275567B1 patent drawing
  • US11275567B1 patent drawing
  • US11275567B1 patent drawing

AI summary

A large software application comprises of multiple modules that communicate or exchange data with each other. To facilitate communication between modules, each module implements interfaces, and it is required to create communication code to allow communication and collaboration between these interfaces. To allow collaboration between modules today, the necessary communication code (that facilitates communication between any two interfaces) is created and managed manually. It is desirable to invent tools, methods, and mechanisms to automate various tasks and activities necessary to create and manage the communication code. Current invention discloses such novel tools, methods, and mechanisms to facilitate communication between modules, by allowing communication between modules through their interfaces. To facilitate communication between the interfaces, the interfaces also include and provide the necessary information (e.g. look-up keys) to the novel tools to look up and find each pair of interfaces (i.e. two interfaces) that need to communicate with each other and to facilitate the necessary communication between the two interfaces.