Remote Debugging Service via Gateway Mediator

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Remote debugging in cloud-computing environments is challenging due to the dynamic nature of server allocation, limited access to remote machines, and the difficulty in establishing direct network connections, especially when developers do not own or control the servers where their software is running.

Innovation Solution

A system that includes a controller to identify machines running software instances, agents to facilitate communication and configure machines for debugging, and a security mechanism to ensure only authenticated developers can access the remote machines, along with a connector to manage connections through public and private networks, enabling selective and secure remote debugging.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If direct network connection is used between developer's machine and cloud server, then debugging speed is improved, but network accessibility and security are worsened

Engineering Contradiction:
Improvedebugging speedVSAvoidnetwork security risk
Core Design Contradiction:
SpeedVSObject-affected harmful factors

Solution Approach 1:

The patent introduces a gateway server as an intermediary component that mediates between the developer's machine and the cloud server. The gateway server establishes a tunnel through which debugging data is transmitted, allowing developers to debug cloud-based software without requiring direct network access to the cloud server. This resolves the contradiction by maintaining debugging speed while eliminating direct network connection security risks.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If cloud server dynamically allocates machines for software running, then resource utilization is improved, but developer's ability to identify and access debugging machines is worsened

Engineering Contradiction:
Improveresource utilizationVSAvoidmachine identification difficulty
Core Design Contradiction:
ProductivityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent implements a feedback mechanism where the gateway server receives information from the cloud server about which machines are running the developer's software. The gateway server then uses this feedback information to automatically establish the appropriate debugging connection to the correct machine. This resolves the contradiction by maintaining dynamic resource allocation while enabling the developer to automatically identify and access the correct debugging target through the gateway's intelligent routing.

Inventive Principle:
Principle #23Feedback

3Reliability

If cloud server administrator limits developer access to servers, then server security is improved, but remote debugging capability is worsened

Engineering Contradiction:
Improveserver securityVSAvoidremote debugging accessibility
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The gateway server acts as an authorized intermediary that the cloud server administrator can trust. The gateway server is granted specific permissions to access and debug software on cloud servers, while the developer's machine maintains limited access through the gateway. This resolves the contradiction by maintaining server security through controlled access while enabling remote debugging capabilities through the gateway's mediating role.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP2815320B1Remote debugging as a service
Publication Date: 2018.05.16 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP2815320B1 patent drawingFigure 1
  • EP2815320B1 patent drawingFigure 2
  • EP2815320B1 patent drawingFigure 3

AI summary

Debugging capabilities for software running in a cloud-computing environment are disclosed. A controller identifies which machines in the cloud are running instances of software to be debugged. An agent is deployed onto the machines in the cloud to facilitate communication with the developer's machine. When the developer wants to debug software on the agent's machine, the agent downloads and installs a monitor onto the machine. The agent configures the machine for remote debugging via the monitor. A security mechanism ensures that only authenticated developers can access the monitor and the remote machine for debugging. A controller automatically determines which machines can be debugged, updates a list of processes available for debugging on the machines, and identifies how to connect a developer's debugging client to the machines. The controller permits remote debugging only upon request from an authenticated developer and only for those processes that the developer is permitted to debug.