Co-locating Tightly Coupled Components to Reduce Remote Invocation Overhead

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In service-oriented architecture, the interaction of tightly coupled components across disparate servers introduces significant remote invocation overhead, leading to decreased efficiency in application operations due to increased serializing, deserializing, and network processing burdens.

Innovation Solution

A system and method that monitors interactions between components, analyzes data to identify tightly coupled components, evaluates server resources, and requests the co-location of these components on the same server to minimize remote interface processing overhead, utilizing a component monitor, analysis facility, and relocation agent within a WebSphere-based application server architecture.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If components are distributed across disparate servers to achieve flexibility in service-oriented architecture, then adaptability is improved, but remote invocation overhead increases resulting in decreased productivity

Engineering Contradiction:
ImproveflexibilityVSAvoidapplication efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The system dynamically monitors component interactions and automatically determines co-location opportunities based on runtime data. The architecture transitions from static component placement to dynamic adjustment, where components are reorganized based on observed coupling patterns and performance metrics, resolving the contradiction between distributed flexibility and centralized efficiency

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system implements continuous monitoring of component interactions and uses this feedback to identify tightly coupled components that should be co-located. The feedback loop collects data on component coupling, analyzes interaction patterns, and triggers co-location decisions when remote invocation overhead is detected, thereby improving productivity while maintaining architectural flexibility

Inventive Principle:
Principle #23Feedback

2Adaptability or versatility

If tightly coupled components are placed on separate servers, then system adaptability is improved, but remote invocation overhead increases causing loss of time

Engineering Contradiction:
Improvesystem adaptabilityVSAvoidremote invocation overhead
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system performs preliminary analysis of component interactions to identify tightly coupled components before deployment issues arise. By monitoring and analyzing component coupling patterns in advance, the system proactively determines co-location opportunities, preventing time loss from remote invocations before they occur

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system changes the physical location parameter of components based on analyzed interaction data. When components are identified as tightly coupled, their deployment location parameter is modified to place them on the same server, thereby reducing remote invocation overhead and time loss while preserving system adaptability

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS8904002B2Reducing overhead in component interactions
Publication Date: 2014.12.02 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US8904002B2 patent drawing
  • US8904002B2 patent drawing
  • US8904002B2 patent drawing

AI summary

Systems, methods and computer program products are provided for reducing overhead in component interactions comprising monitoring interactions between components residing within a domain boundary; storing data indicative of the interactions; analyzing the data to determine whether there is a first component on a first server and a second component on a second server within the domain boundary that are coupled and dislocated that should be co-located; evaluating available server resources; determining whether the first and second components can be co-located based upon the evaluation of available server resources; and conveying a request to co-locate the first and second components if it is determined that the first and second components can be co-located.