Loosely Coupled Tool Integration via Service Contracts

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software development tools are tightly coupled, making it difficult to integrate features from different tools without breaking the integration when changes occur, requiring frequent recompilation and rework.

Innovation Solution

A service-oriented integration framework that encapsulates tools using service and data contracts, hides implementation details, and employs a backplane to facilitate integration, allowing tools to depend only on contracts rather than implementations, and supports pluggable commands to reduce coupling.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If tools are tightly coupled to integrate features, then integration functionality is achieved, but changes to one tool break the integration and require frequent recompilation

Engineering Contradiction:
Improveintegration flexibilityVSAvoidintegration stability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system divides the integration architecture into separate, independent components: tools, adapters, and a backplane. Each tool is encapsulated in its own adapter, creating modular units that can be changed independently without affecting other tools. This segmentation allows integration flexibility while maintaining stability, as changes are isolated to specific modules rather than propagating throughout the entire system.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The adapter acts as an intermediary between tools and the backplane, providing a standardized interface that abstracts the tool's internal implementation details. The adapter translates between the tool's specific methods and the standardized contract interface, enabling tools to be coupled loosely while maintaining reliable integration through the intermediary layer that handles compatibility and translation.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If tools depend on specific implementation details of each other, then integration features work, but recompilation is required whenever changes occur

Engineering Contradiction:
Improveintegration efficiencyVSAvoidrecompilation time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The contract is defined in advance with explicit method signatures, parameter types, and return types before the tool is implemented. This preliminary specification of the interface allows the tool to be implemented independently without knowing the exact implementation details of other tools, eliminating the need for recompilation when implementation details change, thereby reducing loss of time while maintaining integration efficiency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The adapter creates a copy or wrapper around the tool that implements the standardized contract interface. This copy isolates the tool's implementation details from the rest of the system, allowing the tool to be replaced or updated without affecting other components. The adapter copies the essential interface behavior while hiding implementation variations, eliminating recompilation requirements.

Inventive Principle:
Principle #26Copying

3Ease of operation

If implementation details are exposed in tool interfaces, then tools can be used directly, but coupling between tools increases and integration becomes fragile

Engineering Contradiction:
Improvetool accessibilityVSAvoidcoupling complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The implementation details are extracted from the tool interface and enclosed within the adapter. Only the essential contract interface (method names, parameters, returns) is exposed to other tools, while the internal implementation details are taken out and hidden within the adapter. This extraction reduces coupling complexity by exposing only necessary information while maintaining ease of operation through the simplified contract interface.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The contract interface provides a universal standardized interface that can work with multiple different tools through their respective adapters. Instead of exposing tool-specific implementation details, the universal contract interface allows the same client code to work with different tools by simply changing the adapter, reducing coupling complexity while maintaining ease of operation through the universal interface.

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

Data Source

PatentUS8028274B2Integrating loosely coupled tools using contracts and references
Publication Date: 2011.09.27 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8028274B2 patent drawing
  • US8028274B2 patent drawing
  • US8028274B2 patent drawing

AI summary

Various technologies and techniques are disclosed for providing an integration framework that enables tools to be integrated. The integration framework enables tools participating in the framework to be encapsulated in a manner that hides their implementations, thereby preventing them from taking deep dependencies on each other. The integration framework also enables the tools participating in the framework to carry formal type definitions called service and data contracts that describe the public behaviors they offer. The integration framework also provides support for migrating integration logic from tools into pluggable commands to further reduce coupling between the tools.