Persistent Viewport Architecture for Document Collaboration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-user collaboration environments, existing technologies fail to maintain the correct position of a passive user's viewport when a virtual document is updated by another user, leading to disruption and confusion as the viewed content appears to jump or become inaccessible.

Innovation Solution

The persistent viewports architecture identifies an element-of-interest in the content and uses it to recalculate and maintain the viewport's position, employing a reference element such as a paragraph, header, or image to ensure the element-of-interest remains visible within the viewport, even after document updates.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Stability of the object's composition

If the viewport position is maintained using fixed coordinates, then the initial viewport position is stable, but the viewport becomes misaligned when the document is updated by another user

Engineering Contradiction:
Improveviewport position stabilityVSAvoidviewport-content alignment reliability
Core Design Contradiction:
Stability of the object's compositionVSReliability

Solution Approach 1:

The system pre-establishes a mapping between content elements and viewport positions. When the document is updated, this pre-established mapping allows the viewport to quickly reposition to the correct location without manual intervention or complex real-time calculations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system continuously monitors document updates and automatically adjusts viewport positions based on the updated content structure. This feedback mechanism ensures the viewport remains aligned with the intended content even after modifications by other users.

Inventive Principle:
Principle #23Feedback

2Reliability

If the viewport automatically jumps to updated content, then content visibility is maintained, but user focus and context are disrupted

Engineering Contradiction:
Improvecontent visibility reliabilityVSAvoiduser viewing experience
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

Instead of moving the entire viewport or forcing a global view change, the system makes localized adjustments only to the extent necessary to maintain visibility of the element-of-interest. This preserves the user's overall context and focus while ensuring critical content remains visible.

Inventive Principle:
Principle #3Local quality

3Reliability

If the system tracks and recalculates viewport position based on content updates, then element-of-interest visibility is maintained, but system complexity increases

Engineering Contradiction:
Improveelement visibility reliabilityVSAvoidviewport management system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system introduces content elements as intermediary references between the viewport and the document content. By tracking these intermediary elements rather than directly managing complex coordinate transformations, the system simplifies viewport position management while maintaining reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP3234808B1Persistent viewports
Publication Date: 2022.05.25 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP3234808B1 patent drawingFigure 1
  • EP3234808B1 patent drawingFigure 2
  • EP3234808B1 patent drawingFigure 3

AI summary

A persistent viewports architecture that provides a persistent and correctly-positioned viewport to a user when a collaboration document is being updated. The architecture identifies and utilizes a user's element-of-interest in content of the document to determine and recalculate the correct position of the user viewport. The architecture tracks a topmost element of the content (or section of content) from the viewport and employs the topmost element as a reference element. The topmost element can be one or more of a paragraph, a header, string of text, and an image. When the underlying document is to be updated, the viewport performs a lookup of reference element, and after finding the reference element, adjusts the X and Y offsets of the viewport so that the element-of-interest is inside the viewport.