Dynamic Web IDE With Multiple Language Server Instances

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Web-based integrated development environments (IDEs) are limited by having only one language backend server with a single set of validation rules, restricting developers' ability to switch and apply different validation rules during editing sessions.

Innovation Solution

Implementing a dynamic web-based IDE that allows multiple language server instances coupled to a single backend server, enabling developers to switch and apply different sets of validation rules by establishing bi-directional communication connections using protocols like JSON-RPC and WebSockets, allowing real-time evaluation and multi-tenant editing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a single language backend server with one set of validation rules is used, then the system structure is simple, but the adaptability is limited and developers cannot switch between different validation rules

Engineering Contradiction:
Improveability to switch validation rulesVSAvoidsystem structure
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the backend server into multiple language server instances, where each instance is responsible for a specific set of validation rules. This segmentation allows the system to support multiple validation rule sets while maintaining manageable complexity through clear separation of concerns. Each language server instance can be independently configured and managed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates a universal backend server architecture that can serve multiple functions by hosting multiple language server instances. Each instance can handle different validation rules, making the system multi-functional and adaptable to various development needs without requiring separate backend servers for each rule set.

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

2Adaptability or versatility

If multiple language server instances are implemented, then adaptability and flexibility improve, but system complexity increases

Engineering Contradiction:
Improveflexibility in applying validation rulesVSAvoidnumber of server instances
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent merges multiple language server instances into a single unified backend server environment. This consolidation allows the system to benefit from multiple validation rule sets while avoiding the complexity of managing entirely separate server infrastructures. The instances share common resources and management mechanisms.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent introduces a language server manager as an intermediary component that coordinates communication between the web browser and multiple language server instances. This mediator handles the complexity of instance management, rule selection, and communication routing, shielding developers from the underlying system complexity while providing flexible access to multiple validation rules.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If bi-directional communication connections are established for real-time evaluation, then productivity improves, but system complexity increases

Engineering Contradiction:
Improvereal-time evaluation capabilityVSAvoidcommunication protocol implementation
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements bi-directional communication connections that provide real-time feedback between the web browser and language server instances. This feedback mechanism enables immediate validation rule evaluation as developers write code, significantly improving productivity by providing instant feedback without requiring manual compilation or testing cycles.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent establishes bi-directional communication connections in advance during web session initialization. By setting up these communication channels beforehand using protocols like JSON-RPC and WebSockets, the system eliminates the need for complex on-demand connection management during development, reducing operational complexity while maintaining real-time evaluation capabilities.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11797271B2Dynamic web-based integrated development environment
Publication Date: 2023.10.24 INTUIT INC
  • US11797271B2 patent drawing
  • US11797271B2 patent drawing
  • US11797271B2 patent drawing

AI summary

Certain aspects of the present disclosure provide techniques for establishing a web session between a computing device and a web-based integrated development environment to create and/or update files (e.g., content files and/or resource files). In the web session, content file(s) can be evaluated in real-time with one or more resource files. Further, in the web session, a set of validation rules of a resource file can be updated by the computing device. To stablish the web session, a first communication connection is established between the computing device and the web-based integrated development environment. With the first communication established, a second communication connection is established for real-time, bi-directional communication between the computing device and a language server instance of the web-based integrated development environment.