Computing Resource Broker for IDE Distributed Compilation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing integrated development environments (IDEs) are limited in their ability to utilize distributed computing resources, requiring software development operations to be performed on a single computer system, which restricts scalability and flexibility in resource allocation for developers.

Innovation Solution

A computing resource broker system that intermediates between IDEs and multiple computing resources, managing authentication, resource allocation, and software development operations across a network, allowing developers to select and utilize various computing resources for tasks like compilation, build, and debug through a unified interface.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If software development operations are performed on a single computer system, then the system is simple to operate, but the scalability and flexibility of resource allocation are limited

Engineering Contradiction:
Improveresource allocation flexibilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a computing resource broker as an intermediary component that manages communication and coordination between the IDE and multiple distributed computing resources. The broker handles authentication, resource selection, and operation routing, enabling the IDE to access diverse computing resources without directly managing their complexity. This mediator approach resolves the contradiction by providing resource allocation flexibility through the broker while keeping the IDE interface simple.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If multiple distributed computing resources are utilized, then scalability and resource flexibility improve, but authentication and resource management complexity increase

Engineering Contradiction:
Improvesoftware development efficiencyVSAvoidauthentication management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The computing resource broker implements universal authentication mechanisms that work across multiple different computing resources with varying authentication protocols. The broker provides a unified authentication interface that handles diverse authentication methods (Kerberos, SSL, certificates, etc.) internally, allowing the IDE to authenticate with a single standardized process while accessing multiple distributed resources. This multi-functional approach enables high productivity through resource diversity while masking authentication complexity behind a universal interface.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Adaptability or versatility

If computing resources are distributed across different locations and ownership, then resource versatility increases, but system integration complexity increases

Engineering Contradiction:
Improvecomputing resource diversityVSAvoidsystem integration complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The broker serves as a mediating layer that abstracts the heterogeneity of distributed computing resources with different locations, owners, and configurations. It provides a standardized interface for resource access, handling the complexity of integrating diverse systems while presenting a unified view to the IDE. This enables the system to leverage versatile distributed resources without the IDE needing to manage the integration complexity directly.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The broker implements universal protocols and interfaces that enable communication with various computing resources regardless of their location or ownership. It provides multi-functional capabilities including authentication, resource selection, operation routing, and result aggregation, allowing diverse distributed resources to be integrated through a single standardized interface rather than requiring separate integration logic for each resource.

Inventive Principle:
Principle #6Universality (Multi-functionality)

4Ease of operation

If a unified interface is provided for accessing distributed resources, then ease of operation is improved, but the complexity of managing multiple resources increases

Engineering Contradiction:
ImproveIDE usabilityVSAvoidresource broker complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The broker acts as an intermediary that absorbs the complexity of managing multiple distributed resources while presenting a simple unified interface to the IDE. It handles resource selection, authentication, and operation routing internally, allowing developers to interact with diverse computing resources through familiar IDE commands without needing to understand the underlying complexity of resource management.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8234620B1Method and system for software development using distributed computing resources
Publication Date: 2012.07.31 ORACLE AMERICAN INC
  • US8234620B1 patent drawing
  • US8234620B1 patent drawing
  • US8234620B1 patent drawing

AI summary

A method for software development that includes receiving, by a computing resource broker, a request to perform a software development operation on a software program using a computing resource, wherein the request is from an integrated development environment (IDE) used to develop the software program, obtaining an authentication protocol for the computing resource from a repository managed by the computing resource broker, authenticating with the computing resource using the authentication protocol, wherein the computing resource broker is authenticated to use the computing resource, sending a request to perform the software development operation to the computing resource, receiving a result of performing the software development operation from the computing resource, and sending the result to the IDE, wherein the result is displayed to a developer of the software program.