Remote Debugging Platform for Managed Package Code

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional debugging schemes for customized managed package code are inefficient, requiring multiple code versions and frequent transfers between developer and subscriber computers, leading to resource consumption and bandwidth issues, while also posing challenges in managing proprietary code access and versioning.

Innovation Solution

A platform allows developers to log into subscriber computers using subscriber credentials to debug executable code without transferring it, enabling real-time modifications and reducing the need for multiple code versions, while implementing access controls and licensing mechanisms to manage debugging sessions and protect proprietary interests.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If conventional debugging schemes are used with multiple code versions and transfers between developer and subscriber computers, then debugging capability is provided, but resource consumption and bandwidth usage increase

Engineering Contradiction:
Improvedebugging capabilityVSAvoidresource consumption
Core Design Contradiction:
Ease of operationVSLoss of energy

Solution Approach 1:

The patent introduces a remote debugging tool that acts as an intermediary between the developer and the subscriber's data processing system. This tool allows the developer to connect to and debug code directly in the subscriber's environment without transferring code versions between systems. The remote debugging tool establishes a communication channel that enables real-time debugging while minimizing resource consumption and bandwidth usage associated with conventional code transfer methods.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If code is transferred between developer and subscriber computers for debugging, then debugging can be performed, but bandwidth usage increases

Engineering Contradiction:
Improvedebugging accessVSAvoidbandwidth usage
Core Design Contradiction:
Ease of operationVSQuantity of substance

Solution Approach 1:

The remote debugging tool serves as a mediator that eliminates the need for extensive code transfers between developer and subscriber computers. Instead of transferring multiple code versions, the tool enables the developer to access and debug code directly in the subscriber's environment through a network connection, significantly reducing bandwidth consumption.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If multiple versions of code are managed for debugging, then debugging flexibility is improved, but device complexity increases

Engineering Contradiction:
Improvedebugging flexibilityVSAvoidversion management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The remote debugging tool simplifies version management by enabling direct access to the code running in the subscriber's environment. Instead of managing multiple local versions of code, the developer can interact with the actual deployed code through the remote debugging interface, reducing the complexity associated with tracking and managing multiple code versions across different systems.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Productivity

If developer accesses subscriber code directly, then debugging efficiency improves, but security and access control challenges arise

Engineering Contradiction:
Improvedebugging efficiencyVSAvoidsecurity risk
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

The remote debugging tool acts as a secure intermediary that enables developer access to subscriber code while maintaining security controls. The tool implements authentication mechanisms where the developer logs in using subscriber credentials, and the subscriber's data processing system controls what code and resources the developer can access. This approach maintains debugging efficiency while mitigating security risks through controlled access.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system implements differential access rights where the developer's access to specific code portions is controlled by the subscriber's data processing system. Different sections of code can have different access permissions, allowing the developer to debug only the necessary portions while protecting proprietary or sensitive code segments. This localized access control maintains security while enabling efficient debugging where needed.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10547601B2System and method to allow third-party developer to debug code in customer environment
Publication Date: 2020.01.28 SALESFORCE INC
  • US10547601B2 patent drawing
  • US10547601B2 patent drawing
  • US10547601B2 patent drawing

AI summary

A platform is provided to allow the developer to log into a subscriber's computer system by using the credential of the developer or the subscriber to view and to debug at least a portion of executable code that is used by the subscriber. The executable code used by the subscriber may be part of managed package code, at least portions of which are customized for various subscribers. Cooperative debugging may be provided between developer and subscriber with lifting of code encapsulation for the developer in the subscriber implementation. The developer and the subscriber may be granted debugging licenses each authorizing a limited number of debugging sessions, and each debugging session run by the developer may be counted against the debugging license of either the developer or the subscriber. Debugging licenses may be transferred between the developer and the subscriber.