Load Balancer Routing for Service Version Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Service-oriented architectures (SOAs) face complexities and drawbacks during service deployment and testing due to increased latency, network errors, and security risks when deploying test services on local machines external to the execution environment, especially with remote staging environments, leading to increased complexity and misconfiguration issues.

Innovation Solution

A method and system for managing access to resources in a shared computing environment using a load balancer to route requests based on version identifiers, allowing alternative service versions to be deployed and tested within the same environment, reducing resource duplication and enabling substitution of default versions for testing purposes, thereby balancing workload and minimizing latency and security risks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If test services are deployed on local machines external to the execution environment, then service development and testing can be performed, but latency increases and network errors occur

Engineering Contradiction:
Improveservice development capabilityVSAvoidrequest servicing reliability
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

The patent introduces a gateway as an intermediary component that bridges the local machine and remote execution environment. The gateway receives requests from the service under test, performs protocol conversion and formatting, then forwards them to the execution environment. This intermediary resolves the communication reliability issues by handling network protocol differences and ensuring proper request formatting, eliminating the need for direct connections that cause latency and timeouts.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system segments the testing architecture into distinct components: the service under test on the local machine, the gateway as a separate intermediary, and the remote execution environment with its own services. This segmentation allows each component to operate independently with optimized configurations, preventing the performance issues that arise from direct external connections while maintaining development flexibility.

Inventive Principle:
Principle #1Segmentation

2Ease of manufacture

If test services are deployed on local machines, then service testing is enabled, but security risks increase due to inability to monitor and audit

Engineering Contradiction:
Improveservice testing capabilityVSAvoidsecurity risk
Core Design Contradiction:
Ease of manufactureVSObject-affected harmful factors

Solution Approach 1:

The gateway serves as a security intermediary that all communications must pass through. It enables monitoring and auditing of requests between the local service under test and the remote execution environment. The gateway can log, validate, and control traffic, providing security oversight while still allowing flexible local testing. This eliminates the security risk of unmonitored external connections while preserving the ability to test services locally.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If dynamic mapping is maintained to reroute requests to test services, then service substitution is enabled, but system complexity increases significantly

Engineering Contradiction:
Improveservice substitution capabilityVSAvoidrouting configuration complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The service under test automatically generates properly formatted requests that include necessary routing information. The gateway uses this self-provided information to route requests without requiring complex external mapping configurations. The system serves its own routing needs through the service's own request formatting, eliminating the need for external tools to maintain and propagate complex service mappings.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent extracts the routing logic from the complex external mapping system and embeds it directly in the service under test through automatic request formatting. The service itself contains the knowledge of how to reach its dependencies, removing the need for external routing infrastructure and significantly reducing system complexity while maintaining substitution capability.

Inventive Principle:
Principle #2Taking out (Extraction)

4Ease of manufacture

If requests are rerouted from remote execution environment to local test services, then testing is enabled, but network errors and timeouts increase

Engineering Contradiction:
Improvetesting capabilityVSAvoidrequest latency
Core Design Contradiction:
Ease of manufactureVSLoss of time

Solution Approach 1:

The gateway as an intermediary optimizes the request routing path by performing protocol conversion and formatting before forwarding to the execution environment. It manages connections efficiently and can cache or pre-process requests, reducing the time spent on network communication and protocol negotiation. This intermediary role eliminates the latency and timeout issues associated with direct rerouting while enabling comprehensive testing.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9329858B2Managing access to resource versions in shared computing environments
Publication Date: 2016.05.03 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9329858B2 patent drawing
  • US9329858B2 patent drawing
  • US9329858B2 patent drawing

AI summary

The disclosed embodiments provide a system that manages access to resource versions in a shared computing environment. Routing data including locations of the resource versions is used to route a request to a resource version in the shared computing environment. For an application that is implemented by a set of resources, the routing data and the request is used to execute the application using an alternative version of a resource that is under test and default versions of other resources that are not under test.