Service Graph Manager for Interaction Violation Detection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In software development, service interaction violations often go undetected in development environments, leading to issues when services are moved to QA or production environments.
Innovation Solution
A service graph manager tool is implemented to monitor service interactions, detect rule violations, and suggest changes to allow interactions, which can be automatically applied.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If service interaction rules are enforced in development environment, then service interaction violations are detected early, but development friction increases
Solution Approach 1:
The system performs preliminary actions by establishing a service interaction graph and defining service interaction rules before actual service interactions occur in the development environment. This allows the system to proactively detect and prevent violations before they impact production, resolving the contradiction by enabling early detection without requiring reactive fixes later
Solution Approach 2:
The service interaction graph acts as an intermediary data structure that mediates between service interaction rules and actual service interactions. It stores and manages the relationships between services, allowing the system to enforce rules while providing a structured way to handle violations through suggested graph modifications rather than direct rejections
2Ease of operation
If service interaction rules are not enforced in development environment, then development friction is reduced, but service interaction violations go undetected until QA environment
Solution Approach 1:
The system implements feedback by monitoring service interactions against the service interaction graph and providing real-time notifications to developers when rule violations occur. The feedback includes suggested modifications to the service interaction graph, enabling developers to understand and fix issues immediately rather than discovering them later in QA or production environments
3Adaptability or versatility
If service interaction violations are detected late in QA or production environment, then development environment flexibility is maintained, but issue remediation time increases
Solution Approach 1:
The system performs preliminary validation of service interactions against defined rules before services are deployed to QA or production environments. By detecting and addressing violations in the development environment through the service interaction graph, the system prevents issues from reaching later stages, thereby reducing remediation time while maintaining development flexibility
Solution Approach 2:
The system enables self-service by automatically analyzing service interactions against the service interaction graph and generating suggested modifications when violations occur. Developers can independently resolve issues by applying suggested graph modifications without requiring extensive manual analysis or waiting for QA feedback, thus reducing remediation time while preserving development autonomy
Data Source
AI summary
In an example embodiment, interactions among services in a service proxy are recorded in an interaction log. A service graph manager then parses the interaction log. The service graph manager reads each interaction and then processes the interaction to determine if it violates the rules. If so, the service graph manager reports the violation to the software developer and also recommends an action to remedy the violation. In an example embodiment, this recommendation takes the form of an indication of which files to modify to allow the service interaction (e.g., which rule(s) to modify to ensure that the service interaction is not a violation). The software developer can then approve the proposed action, which can then be automatically implemented to ensure that once the service is sent to a quality assurance environment there will be no rules violation from the corresponding interaction(s).


