Collaborative Editor Frame Embedding with Unique Identifiers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing document editors face challenges in securely and efficiently managing changes across heterogeneous document types in collaborative changelog-based web document editors, particularly in maintaining isolation and security between different frames and domains while enabling real-time collaborative editing.

Innovation Solution

The solution involves embedding frames within each other, with unique embed identifiers assigned to each frame, allowing for secure communication and operational transformation of mutations across frames, ensuring that changes are properly attributed and applied, while maintaining a changelog for revision history and security.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If multiple frames are embedded to support heterogeneous document types, then document versatility is improved, but frame isolation and security management become more complex

Engineering Contradiction:
Improvedocument type supportVSAvoidframe management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system segments the collaborative editing system into multiple independent frames, each handling a specific document type or third-party application. Each frame is assigned a unique embed identifier that segments the mutation handling process, allowing independent processing of changes in each frame while maintaining overall system coordination through the trusted frame.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A trusted frame is introduced as an intermediary between untrusted third-party frames and the core document editing system. The trusted frame receives mutations from untrusted frames, validates and processes them through operational transformation rules, and returns instructions to the trusted frames. This intermediary layer enables heterogeneous document types to be integrated without compromising system security or increasing management complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If real-time collaborative editing is enabled across frames, then editing speed is improved, but security risks between frames increase

Engineering Contradiction:
Improvecollaborative editing speedVSAvoidframe security
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The trusted frame serves as a security intermediary that mediates all communication between frames. Mutations from untrusted frames are routed through the trusted frame, which applies operational transformation rules to ensure security and consistency. This allows real-time collaborative editing to proceed at high speed while the intermediary maintains security boundaries.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

Operational transformation rules are established in advance before frames interact. These pre-defined rules specify how mutations from different frames should be processed, validated, and transformed. By having security and consistency rules predetermined, the system can process real-time collaborative edits quickly without performing complex security checks during each interaction.

Inventive Principle:
Principle #10Preliminary action

3Measurement precision

If unique embed identifiers are assigned to each frame, then mutation tracking precision is improved, but system complexity increases

Engineering Contradiction:
Improvemutation attribution accuracyVSAvoididentifier management complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

Each frame is assigned a unique embed identifier that segments the mutation tracking process. This segmentation allows the system to precisely attribute mutations to specific frames without requiring complex global tracking mechanisms. The unique identifiers enable simple, scalable mutation attribution as the system grows.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The embed identifier serves multiple functions simultaneously: it uniquely identifies the frame, tracks mutations from that frame, routes instructions back to the correct frame, and enables operational transformation processing. This multi-functionality reduces the need for separate tracking mechanisms, thereby reducing overall system complexity despite the precision it provides.

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

4Adaptability or versatility

If third-party applications are embedded in frames, then application versatility is improved, but security control becomes more difficult

Engineering Contradiction:
Improvethird-party application supportVSAvoidunauthorized data access
Core Design Contradiction:
Adaptability or versatilityVSObject-affected harmful factors

Solution Approach 1:

The trusted frame acts as a security intermediary between untrusted third-party applications and the core system. All mutations from third-party applications must pass through the trusted frame, which applies operational transformation rules to prevent unauthorized data access while allowing legitimate collaborative editing functionality.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system applies operational transformation rules as a preliminary defensive measure before processing mutations from third-party applications. These rules preemptively prevent harmful actions by transforming or rejecting mutations that would violate security constraints, thereby protecting against unauthorized data access before threats can materialize.

Inventive Principle:
Principle #9Preliminary anti-action

Data Source

PatentUS9286276B2System and method of document embedding in collaborative editors
Publication Date: 2016.03.15 GOOGLE LLC
  • US9286276B2 patent drawing
  • US9286276B2 patent drawing
  • US9286276B2 patent drawing

AI summary

A device embeds a first frame in a second frame. A first mutation defining a first change made to a document within the first frame is generated. A second mutation defining a second change made to the document within the second frame is generated. The first mutation and a first embed identifier assigned to the first mutation and the second mutation and a second embed identifier assigned to the second mutation are transmitted to a remote server. A first instruction relating to the document and including the first embed identifier and a second instruction relating to the document and including the second embed identifier are received from the remote server. The first instruction, based on the first embed identifier, is transmitted by the device to the first frame. The second instruction, based on the second embed identifier, is transmitted by the device to the second frame.