KR102545025B1 - Persistent viewports - Google Patents
Persistent viewports Download PDFInfo
- Publication number
- KR102545025B1 KR102545025B1 KR1020177016478A KR20177016478A KR102545025B1 KR 102545025 B1 KR102545025 B1 KR 102545025B1 KR 1020177016478 A KR1020177016478 A KR 1020177016478A KR 20177016478 A KR20177016478 A KR 20177016478A KR 102545025 B1 KR102545025 B1 KR 102545025B1
- Authority
- KR
- South Korea
- Prior art keywords
- viewport
- interest
- user system
- update
- passive user
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0485—Scrolling or panning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
- G06F40/106—Display of layout of documents; Previewing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/101—Collaborative creation, e.g. joint development of products or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/403—Arrangements for multi-party communication, e.g. for conferences
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/14—Display of multiple viewports
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/34—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators for rolling or scrolling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Resources & Organizations (AREA)
- Entrepreneurship & Innovation (AREA)
- Strategic Management (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Economics (AREA)
- Marketing (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Operations Research (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
본 지속적 뷰포트 아키텍처는 협업 문서가 업데이트될 때 사용자에게 영구적이며 올바르게 위치된 뷰포트를 제공한다. 본 아키텍처는 문서의 콘텐츠 내에서 사용자의 관심-요소를 식별하고 사용하여, 사용자의 뷰포트의 올바른 위치를 결정하고 재계산한다. 본 아키텍처는 뷰포트에서 콘텐츠(또는 콘텐츠 섹션)의 최상단 요소를 추적하고 이 최상단 요소를 기준 요소로 사용한다. 이 최상단 요소는 단락, 머리글, 텍스트 문자열 및 이미지 중 하나 이상일 수 있다. 기본 문서가 업데이트될 때, 뷰포트는 상기 기준 요소 검색을 수행하고, 기준 요소를 찾은 후에, 관심-요소가 상기 뷰포트 내에 있도록 뷰포트의 X 및 Y 좌표 오프셋들을 조정한다.This persistent viewport architecture provides the user with a persistent, correctly positioned viewport as the collaborating document is updated. The architecture identifies and uses the user's interest-elements within the document's content to determine and recalculate the correct position of the user's viewport. This architecture tracks the topmost element of the content (or section of content) in the viewport and uses this topmost element as the reference element. This top-level element can be one or more of paragraphs, headings, text strings, and images. When the underlying document is updated, the viewport performs the reference element search and, after finding the reference element, adjusts the viewport's X and Y coordinate offsets so that the element of interest is within the viewport.
Description
문서 크기(예를 들어, 길이)가 장치의 물리적 스크린이 디스플레이할 수 있는 크기를 초과하는 경우, 스크롤 바와 같은 사용자 상호작용 제어 요소가 도입되어 뷰포트(viewport)를 생성할 수 있으며, 이 뷰포트를 통해서 문서를 보고 읽을 수 있다. 사용자가 스크롤 바의 스크롤 썸 제어 요소(scroll thumb control element)의 위치를 이동시킬 때에, 문서가 뷰포트를 통해 이동 중인 것처럼 사용자에게 보이지만, 사용자는 본질적으로 문서에 걸쳐서 뷰포트를 이동한다. 이러한 방식은 운영 체제 또는 애플리케이션이 해당 장치의 디스플레이가 수용할 수 있는 것보다 큰 문서의 탐색을 용이하게 하는 일 방식이다. 이러한 기법은 단일-사용자 환경에서 적용되지만, 다수의 사용자가 대응하는 사용자 뷰포트들을 통해 동일한 문서를 편집할 수 있는 다중-사용자 협업 툴의 환경에서는 문제가 된다. If the document size (e.g., length) exceeds what the device's physical screen can display, user interaction control elements such as scroll bars can be introduced to create a viewport through which a viewport can be created. You can view and read the document. When the user moves the position of the scroll bar's scroll thumb control element, the document appears to the user as if it is moving through the viewport, but the user is essentially moving the viewport across the document. This is one way an operating system or application can facilitate navigation of documents that are larger than the device's display can accommodate. This technique works in a single-user environment, but becomes problematic in multi-user collaboration tool environments where multiple users may edit the same document through corresponding user viewports.
다음은 본 명세서에 기술된 일부 신규한 구현예에 대한 기본적인 이해를 제공하기 위해 간략화된 요약을 제공한다. 이러한 요약은 포괄적인 개요는 아니며 핵심/중요 요소들을 식별하거나 본 발명의 범위를 규정하기 위한 것이 아니다. 이러한 요약의 유일한 목적은 나중에 제시되는 보다 상세한 설명에 대한 서막으로서 일부 개념들을 단순화된 형태로 제시하는 것이다. The following provides a simplified summary to provide a basic understanding of some of the novel implementations described herein. This summary is not a comprehensive overview and is not intended to identify key/critical elements or to delineate the scope of the invention. Its sole purpose is to present some concepts in a simplified form as a prelude to the more detailed description that is presented later.
본 지속적 뷰포트 아키텍처는 가상 문서가 업데이트 중일 때 수동적 사용자(및 능동적 사용자)에게 영구적이며 올바르게-위치된 수동적 사용자 뷰포트를 제공한다. 본 아키텍처는 협업 세션에도 적용될 수 있다. 본 아키텍처는 문서의 콘텐츠 내에서 사용자의 관심-요소를 식별하고 사용하여, 수동적 사용자 뷰포트의 올바른 위치를 결정하고 재계산한다. 또한, 본 아키텍처는 상기 수동적 사용자 뷰포트로부터 콘텐츠(또는 콘텐츠 섹션)의 최상단 요소를 추적하고 이 최상단 요소를 기준 요소로 사용한다. 이 최상단 요소는 예를 들어, 단락, 머리글, 텍스트 문자열 및 이미지 중 하나 이상일 수 있다. The present persistent viewport architecture provides a persistent, correctly-positioned passive user viewport to passive users (and active users) when the virtual document is being updated. This architecture can also be applied to collaboration sessions. The present architecture identifies and uses the user's interest-elements within the document's content to determine and recalculate the correct position of the passive user's viewport. Also, the present architecture tracks the topmost element of the content (or section of content) from the passive user viewport and uses this topmost element as the reference element. This top-most element can be, for example, one or more of paragraphs, headings, text strings, and images.
기본 가상 문서가 업데이트 예정일 때, 수동적 사용자 뷰포트는 상기 기준 요소 검색을 수행하고, 기준 요소를 찾은 후에, 상기 관심-요소가 상기 수동적 사용자 뷰포트 내에 있도록 상기 수동적 사용자 뷰포트의 X 및 Y 좌표 오프셋들을 조정한다.When the underlying virtual document is due to be updated, the passive user viewport performs the reference element search and, after finding the reference element, adjusts the X and Y coordinate offsets of the passive user viewport so that the interest-element is within the passive user viewport. .
본 지속적 뷰포트 아키텍처는 시스템으로서 구현될 수 있으며, 상기 시스템은 가상 문서의 콘텐츠 내에서 관심-요소를 식별하도록 구성된 요소 컴포넌트(element component)로서, 상기 관심-요소는 (예를 들어, 협업 세션(collaboration session)의) 수동적 사용자에게 프리젠테이션되는 상기 가상 문서의 수동적 사용자 뷰포트(viewport) 내에 존재하는, 상기 요소 컴포넌트; (예를 들어, 상기 협업 세션의) 능동적 사용자로부터 상기 가상 문서의 업데이트를 수신 및 프로세싱하도록 구성된 업데이트 컴포넌트(update component); 및 상기 능동적 사용자에 의한 상기 업데이트로 인한 상기 콘텐츠의 임의의 위치 변화에 관계없이, 상기 수동적 사용자의 상기 수동적 사용자 뷰포트 내에 상기 관심-요소가 유지되게 상기 수동적 사용자 뷰포트를 이동시키도록 구성된 뷰포트 컴포넌트(viewport component)를 포함한다. The persistent viewport architecture may be implemented as a system, wherein the system is an element component configured to identify an interest-element within the content of a virtual document, wherein the interest-element is (e.g., a collaboration session). the element component, present within a passive user viewport of the virtual document being presented to the passive user (of a session); an update component configured to receive and process updates of the virtual document from an active user (eg, of the collaboration session); and a viewport component configured to move the passive user viewport such that the interest-element is maintained within the passive user viewport of the passive user, regardless of any position change of the content due to the update by the active user. component).
본 지속적 뷰포트 아키텍처는 방법으로서 구현될 수 있으며, 상기 방법은, 가상 문서의 콘텐츠 내에서 관심-요소를 식별하는 동작으로서, 상기 관심-요소는 (예를 들어, 상기 협업 세션의) 수동적 사용자 시스템 상에 프리젠테이션되는 상기 가상 문서의 수동적 사용자 뷰포트 내에 존재하는, 상기 식별하는 동작; (예를 들어, 상기 협업 세션의) 능동적 사용자 시스템으로부터 상기 가상 문서의 콘텐츠에 대한 업데이트를 수신하는 동작; 및 상기 능동적 사용자 시스템에 의한 상기 업데이트로 인한 상기 콘텐츠의 임의의 위치 변화에 관계없이, 상기 수동적 사용자 시스템의 상기 수동적 사용자 뷰포트 내에 상기 관심-요소를 유지시키는 동작을 포함한다.The present persistent viewport architecture may be implemented as a method, the operation of identifying an element of interest within the content of a virtual document, the interest-element on a passive user system (e.g., of the collaboration session). the act of identifying, present within a passive user viewport of the virtual document being presented to; receiving updates about content of the virtual document from an active user system (eg, of the collaboration session); and maintaining the interest-element within the passive user viewport of the passive user system regardless of any positional change of the content due to the update by the active user system.
본 지속적 뷰포트 아키텍처는 또 다른 시스템으로서 구현될 수 있으며, 상기 또 다른 시스템은 가상 문서의 콘텐츠 내에서 관심-요소를 식별하기 위한 수단으로서, 상기 관심-요소는 예를 들어, 협업 세션의 수동적 사용자 시스템 상에 프리젠테이션되는 상기 가상 문서의 수동적 사용자 뷰포트 내에 존재하는, 상기 식별 수단; 상기 관심-요소에 대한 상기 수동적 사용자 뷰포트의 위치를 계산하기 위한 수단; 상기 수동적 사용자 시스템의 상기 수동적 사용자 뷰포트의 콘텐츠 내에서 기준 요소를 식별하기 위한 수단; 상기 협업 세션의 능동적 사용자 시스템으로부터 상기 가상 문서의 업데이트를 수신하기 위한 수단; 및 상기 능동적 사용자 시스템에 의한 상기 업데이트로 인한 상기 콘텐츠의 임의의 위치 변화에 관계없이, 상기 수동적 사용자 시스템의 상기 수동적 사용자 뷰포트 내에 상기 관심-요소가 포함되게 상기 수동적 사용자 뷰포트를 이동시키기 위한 수단을 포함한다. The present persistent viewport architecture may be implemented as another system as a means for identifying interest-elements within the content of a virtual document, where the interest-elements are, for example, the passive user system of a collaboration session. said means for identification, being within a passive user viewport of said virtual document being presented thereon; means for calculating the position of the passive user viewport relative to the interest-factor; means for identifying a reference element within content of the passive user viewport of the passive user system; means for receiving updates of the virtual document from an active user system of the collaboration session; and means for moving the passive user viewport so that the element of interest is included within the passive user viewport of the passive user system, regardless of any change in position of the content due to the update by the active user system. do.
전술한 목적 및 관련된 목적을 달성하기 위해, 이하의 설명 및 첨부된 도면과 관련하여 소정의 예시적인 양태들이 본 명세서에 기술된다. 이러한 양태들은 본 명세서에 개시된 원리들이 실시될 수 있고 모든 양태들 및 이의 균등사항들이 청구된 청구 대상의 범위 내에 있도록 되는 다양한 방식들을 나타낸다. 다른 이점들 및 신규한 특징들은 도면들과 함께 고려될 때 다음의 상세한 설명으로부터 명백해질 것이다.To the accomplishment of the foregoing and related objectives, certain exemplary aspects are described herein in conjunction with the following description and accompanying drawings. These aspects represent the various ways in which the principles disclosed herein may be practiced and all aspects and equivalents thereof fall within the scope of the claimed subject matter. Other advantages and novel features will become apparent from the detailed description that follows when considered in conjunction with the drawings.
도 1은 개시된 아키텍처에 따른 시스템을 도시한다.
도 2는 개시된 아키텍처에 따라 뷰포트 지속성(viewport persistence)을 위해서 고려될 수 있는 콘텐츠의 요소들의 보다 상세한 도면을 도시한다.
도 3은 개시된 지속적인 뷰포트 아키텍처의 시스템의 다른 구현예를 도시한다.
도 4는 개시된 아키텍처에 따른 방법을 도시한다.
도 5는 개시된 아키텍처에 따른 대안적인 방법을 도시한다.
도 6은 개시된 아키텍처에 따른 또 다른 대안적인 방법을 도시한다.
도 7은 개시된 아키텍처에 따라 지속적인 뷰포트를 실행하는 컴퓨팅 시스템의 블록도를 도시한다.1 shows a system according to the disclosed architecture.
2 shows a more detailed diagram of elements of content that may be considered for viewport persistence in accordance with the disclosed architecture.
3 illustrates another implementation of a system of the disclosed persistent viewport architecture.
4 shows a method according to the disclosed architecture.
5 shows an alternative method according to the disclosed architecture.
6 shows another alternative method according to the disclosed architecture.
7 shows a block diagram of a computing system implementing a persistent viewport in accordance with the disclosed architecture.
문서가 장치의 물리적 스크린이 표시할 수 있는 길이보다 길 때, 뷰포트를 생성하도록 스크롤 바가 나타날 수 있다. 사용자가 스크롤 위치를 이동시킬 때, 사용자는 본질적으로 문서에 걸쳐서 뷰포트를 이동한다. 이러한 방식이 통상적으로 사용되지만, 이러한 방식은, 예를 들어, 협업 애플리케이션, 서비스 및/또는 툴에서, 다수의 사용자가 동시에 동일한 문서를 편집하거나, 사용자가 문서를 읽거나 편집하는 동안에 문서의 콘텐츠가 변경되는 경우에는 사용되지 않는다. 일부 다른 사용자들이 동일한 문서의 콘텐츠를 업데이트하는 동안 뷰포트의 위치를 유지하는 것은 어렵다.When a document is longer than the device's physical screen can display, a scroll bar may appear to create a viewport. When the user moves the scroll position, the user essentially moves the viewport across the document. While this approach is commonly used, this approach can be used, for example, in collaborative applications, services and/or tools, where multiple users are editing the same document at the same time, or the content of a document is being read or edited by a user. Not used if changed. It is difficult to maintain the position of the viewport while some other users are updating the content of the same document.
일부 기존의 애플리케이션은 사용자 뷰포트에 대한 X 및 Y 좌표로서 픽셀들에서 측정된 문서(표현된 바와 같은 가상 문서)의 하단으로부터의 상대적인 오프셋을 유지한다. 문서가 어떠한 방식으로든 업데이트되면, 상기 X 및 Y 픽셀 오프셋들은 오래된 값이 된다. 이러한 기존 구현 방식에서, X 및 Y 좌표가 문서의 하단을 기준으로 하는 경우,(능동적인(편집) 사용자가 콘텐츠를 추가, 첨부 및/또는 삭제함으로써) 문서의 길이를 변경하는 것은 수동적인 사용자의 뷰포트 경험에 영향을 줄 수 있다. 이러한 프로세스는 기존 시스템에서, X 및 Y 좌표가 문서 상단을 기준으로 하는 경우에도, 동일한 방식으로 적용된다(이러한 경우, 현 수동적인 사용자의 뷰포트보다 앞선 문서 부분에서 변경이 발생한다). 즉, (예를 들어, 동적 웹 페이지 업데이트 또는 일부 다른 사용자가 동일한 페이지를 편집하는 것을 통해서) 문서의 길이가 변경되면, 이는 기존 사용자의 뷰포트가 올바르지 않게 위치되게 한다. 즉, 기존 사용자가 읽고 있었던 문서 부분은 더 이상 X 및 Y 좌표에서 존재하지 않게 되는데, 이는 일부 다른 사용자가 업데이트 부분(예를 들어, 더 많은 텍스트, 더 많은 이미지, 텍스트, 이미지, 머리말 등의 콘텐츠 제거)을 추가했기 때문이다. 이러한 뷰포트 혼란은, 사용자가 바로 전에 보고 있던 콘텐츠가 뷰포트 내의 새로운 위치로 점프하거나 뷰포트에서 전혀 보이지 않게 되거나 해당 문서 내의 다른 위치로 점프하는 것처럼 보이는 것과 같이, 사용자를 혼란(산만)하게 할 수 있다. Some existing applications keep the relative offset from the bottom of the document (virtual document as represented) measured in pixels as X and Y coordinates relative to the user's viewport. If the document is updated in any way, the X and Y pixel offsets become outdated. In this existing implementation, where the X and Y coordinates are relative to the bottom of the document, changing the length of the document (by an active (editing) user adding, attaching, and/or deleting content) is a passive user's effort. It can affect the viewport experience. This process applies the same way in legacy systems, even when the X and Y coordinates are relative to the top of the document (in this case, the change occurs in the part of the document that precedes the currently passive user's viewport). That is, if the length of the document changes (eg, through a dynamic web page update or some other user editing the same page), this causes the existing user's viewport to be positioned incorrectly. That is, the part of the document that the original user was reading no longer exists at the X and Y coordinates, which means that some other user may have updated the part (e.g. more text, more images, content such as text, images, headings, etc.) removed) was added. This viewport clutter can confuse (distract) the user, such that the content the user was viewing just before jumps to a new location in the viewport, becomes completely invisible in the viewport, or appears to jump to another location within the document.
개시된 아키텍처는 해당 문서가 다른 사용자에 의해 업데이트된 후에도 현재 보여지고 있는 콘텐츠 상에서(또는 걸쳐서) 해당 뷰포트를 지속(또는 유지)시킴으로써 이러한 문제를 해결한다. 이러한 기능은 네트워크(예를 들어, 인터넷)를 통한 동시 협업을 가능하게 한다. 사용자의 뷰포트를 결정하기 위해 문서의 상단 좌측 코너 또는 하단에 대한 X 및 Y 픽셀 오프셋을 사용하는 대신, 지속적인 뷰포트 아키텍처는 콘텐츠 내의 관심-요소를 사용하여 현재 보여지고 있는 콘텐츠 상에서의 뷰포트의 위치를 신속하게 재계산한다. The disclosed architecture solves this problem by persisting (or maintaining) the viewport over (or over) the content currently being viewed even after the document is updated by another user. This capability enables simultaneous collaboration over a network (eg, the Internet). Instead of using the X and Y pixel offsets to the top left corner or bottom of the document to determine the user's viewport, the persistent viewport architecture uses interest-elements within the content to quickly determine the viewport's position relative to the content currently being viewed. recalculate accordingly.
지속적인 뷰포트 아키텍처는 뷰포트의 최상단 요소를 기준 요소로 추적한다. 이러한 요소는 단락, 머리말, 이미지, 텍스트 문자열 또는 기타 적합한 콘텐츠 구조 중 적어도 하나 일 수 있다. 문서가 업데이트될 때에, 뷰포트는 메모리 내에서 이러한 기존 요소를 검색하고 가상 문서 상에서 기준 요소를 찾은 다음, 상기 관심-요소 또는 기준 요소가 여전히 해당 뷰포트 내에 위치하도록 해당 뷰포트의 X 및 Y 오프셋들을 조절한다. The persistent viewport architecture tracks the topmost element of the viewport as the base element. These elements can be at least one of paragraphs, headings, images, text strings, or other suitable content structures. When the document is updated, the viewport searches for this existing element in memory, finds the reference element on the virtual document, and adjusts the viewport's X and Y offsets so that the element-of-interest or reference element is still within that viewport. .
본 아키텍처는 임의의 종류의 문서(예를 들어, HTML(하이퍼텍스트 마크업 언어) 페이지 또는 예컨대, 협업 프로세싱 하에 있는 임의의 다른 문서)에 적용될 수 있다. 관심-요소에 대한 검색이 메모리(예를 들어, 캐시)에 저장된 요소들을 갖는 해시 세트를 통해 이루어질 수 있는 한편, 사용자 협업을 용이하게 하는 브라우저 및 임의의 적합한 오피스 애플리케이션이 본 개시된 아키텍처를 포함할 수 있다. The present architecture can be applied to any kind of document (eg HTML (Hypertext Markup Language) pages or any other document, eg, under collaborative processing). While retrieval for an element-of-interest may be through a hash set with elements stored in memory (eg, a cache), browsers and any suitable office applications that facilitate user collaboration may incorporate the presently disclosed architecture. there is.
이제, 도면들이 참조되며, 이러한 도면들에서, 동일한 참조 번호는 도면 전체에 걸쳐 동일한 요소를 나타내기 위해 사용된다. 이하의 설명에서, 설명을 위해서, 다수의 특정 세부 사항들이 본 발명의 완전한 이해를 제공하기 위해 제시된다. 그러나, 명백하게는, 새로운 구현예들이 이러한 특정 세부 사항들 없이도 실시될 수 있다. 다른 실례들에서, 잘 알려진 구조들 및 장치들은 이들의 설명을 용이하게 하기 위해 블록도 형태로 도시된다. 본 발명은 청구된 청구 대상의 사상 및 범위 내에 있는 모든 변경사항들, 균등사항들 및 대안사항들을 포함한다.Reference is now made to the drawings, in which like reference numbers are used throughout the drawings to indicate like elements. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. Obviously, however, new implementations may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to facilitate a description thereof. This invention includes all modifications, equivalents and alternatives falling within the spirit and scope of the claimed subject matter.
도 1은 본 개시된 아키텍처에 따른 시스템(100)을 도시한다. 시스템(100)은 능동적 및 수동적 사용자들의 협업 세션(collaboration session)(102)을 가능하게 하는 협업 서비스의 일부로서 동작한다. (문서 협업의 맥락에서 기술되지만, 본 시스템은 비-협업 구현에도 적용된다는 것을 이해해야 한다.) 따라서, 이러한 헤드-투-헤드(head-to-head) 실례(일 수동적 사용자 및 일 능동적 사용자)에서, 시스템(100)은 수동적 모드의 수동적 사용자 시스템(104) 및 능동적 모드의 능동적 사용자 시스템(106)을 포함하지만, 이러한 협업 세션은 3명 이상의 사용자를 포함할 수 있다는 것을 이해해야 한다.1 shows a
능동적 사용자는 콘텐츠의 변경 또는 업데이트를 실행하기 위해서 가상 문서의 "능동적" 인스턴스를 현재 편집하고 있는 중인 반면, 수동적 사용자는 가상 문서의 "수동적" 인스턴스를 편집하지 않고 상기 능동적 사용자에 의한 편집 프로세스 동안 능동적 가상 문서의 콘텐츠의 동일한 또는 상이한 인스턴스를 단순히 보고 있는 중이다. 수동적 사용자가 능동적 사용자가 되고 능동적 사용자가 수동적 사용자가 되는 경우에도 본 프로세스는 동일하게 적용된다. 수동적 사용자 시스템에 따라 기술된 기능은, 지속적 뷰포트 기능이 동일한 가상 문서에 대해서 작업하는 협업 세션의 모든 사용자들에 대해 동시적으로 동작되도록, 능동적 사용자 시스템(106)에도 동일하게 적용된다. 따라서, 능동적 모드 및 수동적 모드는, 이러한 능동적 모드 및 수동적 모드가 가상 문서를 현지 편집중인 사람이 누구인지에 따라서 스위칭되도록, 협업 세션 사용자들에 대해서 신속하게 전환될 수 있다. 이러한 구현예에서, 임의의 소정 시점에서 오직 한 명의 사용자만이 능동적 사용자가 될 수 있지만, 매 능동적 사용자에 대해 한 명 이상의 수동적 사용자가 있을 수 있다.An active user is currently editing the "active" instance of a virtual document in order to effect a change or update of content, whereas a passive user is not editing a "passive" instance of a virtual document and is actively editing during the editing process by the active user. You are simply viewing the same or a different instance of the virtual document's content. The same applies to cases where a passive user becomes an active user and an active user becomes a passive user. The functionality described according to the passive user system applies equally to the
본 설명을 위해, 수동적 사용자 시스템(104) 내의 특정 항목들에는 참조 부호 "P"가 붙으며, 능동적 사용자 시스템(106) 내의 특정 항목들에는 참조 부호 "A"가 붙는다. 예를 들어, 수동적 사용자 시스템(104) 내의 가상 문서의 인스턴스는 "-P" 접미사를 포함할 것이고, 능동적 사용자 시스템(106) 내의 가상 문서는 "-A" 접미사를 포함할 것이다.For purposes of this description, certain items within the
수동적 사용자 시스템(104)에 대한 설명을 계속하면, 협업 세션(102)은 가상 문서(108)의 편집을 수반한다. 수동적 사용자 시스템(104) 상의 가상 문서(108)의 인스턴스는 가상 문서(108-P)로 지정되고, 능동적 사용자 시스템(106) 상의 가상 문서(108)는 가상 문서(108-A)로 지정된다. 유사하게, 가상 문서(108)는 수동적 사용자 시스템(104) 상에서는 콘텐츠(110-P)로서 지정되고 능동적 사용자 시스템(106) 상에서는 콘텐츠(110-A)로서 지정된 콘텐츠(110)를 포함한다.Continuing the description of the
수동적 사용자 시스템(104) 상에서의 수동적 사용자(112)에 대한 수동적 모드 동안, 요소 컴포넌트(element component)(114)는 가상 문서(108-P)의 콘텐츠(110-P) 내의 관심-요소(EOI)(116)를 식별하도록 제공 및 구성된다. 관심-요소(116)는 협업 세션(102)의 일부로서, 수동적 사용자 뷰포트(118)(또한, VIEWPORT-P로 지정됨)에서 보여진다.During the passive mode for a
EOI(116)는 수동적 사용자 뷰포트(118)의 콘텐츠(110-P)의 콘텐츠 섹션 (CONTENT1-P) 내의 요소들(E) 중 임의의 하나 이상일 수 있다. 동일한 요소들이 능동적 사용자 시스템(106)의 콘텐츠(110-A)의 동일한 콘텐츠 섹션(CONTENT1-A) 내에 존재한다; 그러나, 능동적 사용자 시스템(106)은 능동적 모드에 있을 때 섹션 (CONTENT1-A) 내의 EOI를 식별할 필요가 없다. 그러나, 일 다른 구현예에서, 능동적 사용자(120)의 수동적 모드 상태를 준비하기 위해 능동적 모드에 있을 때 요소들이 또한 추적될 수 있다.
협업 세션(102)에 따라서, 능동적 사용자 시스템(106)의 가상 문서(108-A) 내의 콘텐츠(110-A)는 수동적 사용자(112)에 의해, 수동적 사용자 시스템(104)의 가상 문서(108-P) 내의 콘텐츠(110-P)로서 보여질 수 있다. 능동적 사용자(120)는 능동적 사용자 뷰포트(122)를 이동시켜 편집할 부분들과 관련하여 콘텐츠(110-A)를 정독할 수 있다. 수동적 사용자 뷰포트(118)가 가상 문서(108-A) 내의 능동적 사용자 뷰포트(122)의 콘텐츠 위치에 동기화되지 않을 수 있다. 따라서, 능동적 사용자(120)는 수동적 사용자(112)가 보고 있지 않은 콘텐츠(110-A)의 섹션 또는 영역을 볼 수 있고, 그 반대로도 될 수 있다.In accordance with the
여기서, 능동적 사용자(120)는 콘텐츠(110-A)의 섹션(126-A)에서 업데이트(124-A)를 생성한다. 업데이트 생성은 예를 들어, 콘텐츠 요소 이동, 삭제, 새로운 요소들의 첨부 및 삽입과 같은 동작들을 포함할 수 있다. 이러한 동작은 능동적 사용자 시스템(106)으로부터 모든 수동적 사용자 시스템들(예컨대, 수동적 사용자 시스템(104))으로의 업데이트 신호를 생성한다.Here,
콘텐츠 섹션(126-A)(예를 들어, 텍스트의 단락) 내에서의 능동적 사용자(120)에 의한 업데이트(124-A)는 편집이 이루어질 때에 능동적 사용자(120)의 뷰포트(122) 내에 나타나고 표현될 수 있다. 업데이트 컴포넌트(128)는 업데이트 신호를 프로세싱하고, 수동적 사용자 시스템(104)에 대해 동작하여 상기 업데이트(124-A)를 가상 문서(108-P)의 콘텐츠(126-P) 내에 업데이트(124-P)로서 삽입하도록 제공 및 구성될 수 있다.Updates 124-A by
수동적 사용자(112)가 업데이트(124-P)가 적용된 콘텐츠(126-P)의 부분을 포함하지 않는 콘텐츠(110-P)의 섹션들 또는 영역들 상에 수동적 뷰포트(118)를 이동시킨 경우가 있을 수 있다. 따라서, 가상 문서(108-P)로 전파된 바와 같은 업데이트(124-P)는 수동적 사용자(112)가 콘텐츠(110-P)를 보고 있는 수동적 사용자 뷰포트(118) 외부에서 발생한다. 업데이트 삽입에 의한 문서 길이의 이러한 변화는 또한, 예를 들어, 능동적 사용자(120)의 가상 문서(108-A)에서의 콘텐츠(110-A)의 일부(예를 들어, 이미지)의 삭제 또는 콘텐츠(110-A)의 일부를 가상 문서(108-A)의 다른 영역으로 이동시키는 것에 의해서 초래될 수도 있다. If
그러나, 본 지속적 뷰포트 아키텍처는, 수동적 사용자(112)에 의해 수행되는(예를 들어, 정독, 검토, 스크롤링, 등) 작업(예: 보기, 검토, 등)을 방해하지 않도록 하기 위해서, 업데이트(124-P)가 수동적 사용자 가상 문서(108-P)에 적용되는 동안 및 적용된 이후에 콘텐츠(110-P)의 일부분 상에 수동적 사용자 뷰포트(118)의 위치를 유지시키도록 동작한다. However, the present persistent viewport architecture may be updated (124) in order not to interfere with actions (eg, viewing, reviewing, etc.) -P) to maintain the position of the
이러한 뷰포트 지속성은 수동적 사용자(112)가 수동적 사용자 뷰포트(118)에서 보고 있는 콘텐츠 섹션(CONTENT1-P) 내의 관심-요소(116)를 요소 컴포넌트(114)가 식별함으로써 달성된다. 관심-요소(116)는 콘텐츠 섹션(CONTENT1-P) 내의 임의의 요소가 될 수 있다. 관심-요소(116)의 식별은 궁극적으로 수동적 사용자의 시야 내에서 유지되도록 될 콘텐츠 섹션(CONTENT1-P)을 식별한다. 요소 컴포넌트(114)는 또한 수동적 사용자의 수동적 사용자 뷰포트(118)의 콘텐츠 내에서 기준 요소(RE)(130)를 식별하도록 구성된다. 기준 요소(130)는 예를 들어, 단락, 머리말, 이미지 또는 텍스트의 문자열 중 적어도 하나를 포함한다.This viewport persistence is achieved by the
수동적 사용자(112)에게 긍정적인 보기 경험을 제공하기 위해, 요소 컴포넌트(114)는 수동적 사용자 시스템(104)의 수동적 사용자 뷰포트(118) 내의 콘텐츠 (CONTENT1-P)의 최상단 요소를 기준 요소(130)로서 식별하도록 더 구성된다. 뷰 포인트 컴포넌트(132)는 능동적 사용자 시스템(106)에 의해 전파되는 업데이트(124-A)로 인한 콘텐츠(CONTENT1-P)의 임의의 위치 변화에 상관없이, 수동적 사용자(112)의 수동적 사용자 뷰포트(118) 내에서 관심-요소(116)를 유지하도록 수동적 사용자 뷰포트(118)를 이동시키도록 제공 및 구성된다. 뷰포트 컴포넌트(132)는 관심-요소(116)에 대한 수동적 사용자 뷰포트(118)의 위치를 계산하도록 구성된다. 뷰포트 컴포넌트(132)는 관심-요소(116)가 상주하는 콘텐츠(110-P)의 사전정의된 섹션(예를 들어, CONTENT21-P)을 포함하도록 수동적 요소 뷰포트(118)를 이동시키도록 구성된다. To provide a positive viewing experience for
요소 컴포넌트(114)는 수동적 사용자(112)의 수동적 사용자 뷰포트(118) 내에서의 가상 문서(108-P)의 뷰의 변화에 기초하여, 메모리 내의 해시 세트 및 콘텐츠 요소들을 업데이트 및 유지하도록 구성된다.The
뷰포트 컴포넌트(132)는 관심-요소(116)가 상주하는 콘텐츠(CONTENT1-P)의 사전규정된 섹션을 포함하도록 뷰포트(수동적 사용자 뷰포트(118))를 이동시키도록 구성된다. 일 실시예에서, 뷰포트 컴포넌트(132)는 관심-요소(116)에 대한 뷰포트(수동적 사용자 뷰포트(118))의 위치를 계산하도록 구성된다. 다른 실시예에서, 뷰포트 컴포넌트(132)는 기준 요소(130)에 대한 뷰포트(수동적 사용자 뷰포트(118))의 위치를 계산하도록 구성된다. 이러한 포지셔닝은 수동적 사용자 뷰포트(118)의 상단 경계를 기준 요소(130)보다 위로 이동시키는 것을 포함할 수 있는데, 여기서 예를 들어, 기준 요소(130)는 단락의 첫 번째 문장의 텍스트 문자열이거나, 상기 기준 요소(130)는 이어서 수동적 사용자 뷰포트(118) 내에 포함되는 이미지이거나, 기준 요소(130)는 다중-주제의 워드 프로세싱 문서 내의 주제 머리말(topic header)과 같은 머리말 텍스트이다.
뷰포트 지속성은 능동적 사용자 시스템(106)으로부터의 업데이트 전파 동안에 수동적 사용자 뷰포트(118) 내로 작업물에 대한 사용자의 초점을 유지시킴으로써 사용자 효율성을 향상시키는 기술적 효과를 갖는다. 이로써, 수동적 사용자(112)는 이전에 보고 있던 컨텐츠로 돌아가기 위해서 가상 문서(108-P)를 재탐색할 필요가 없다. Viewport persistence has the technical effect of improving user efficiency by maintaining the user's focus on the work within the
달리 말하면, 시스템(100)은 가상 문서(108-P)의 콘텐츠(110-P) 내에서 관심-요소(116)를 식별하도록 구성된 요소 컴포넌트(114)를 포함한다. 관심-요소(116)는 협업 세션(102)의 수동적 사용자 시스템(104)의 수동적 사용자 뷰포트(118)를 통해서 수동적 사용자(112)에게 가상 문서(108-P) 내에서 실시간으로(currently) 표현된다. 업데이트 컴포넌트(128)는 협업 세션(102)의 능동적 사용자 시스템(106)으로부터 가상 문서(108-A)의 업데이트(124-A)를 수신하도록 제공 및 구성된다. 뷰포트 컴포넌트(132)는 능동적 사용자 시스템(106)에 의해서 업데이트(124-A)가 수동적 사용자 시스템(104)으로 전파되는 것으로부터 기인되는 콘텐츠(110-P)의 임의의 위치 변화(또는 가상 문서의 길이 변화)에 관계없이, 수동적 사용자 시스템(104)의 수동적 사용자 뷰포트(118) 내에 상기 관심-요소(116)를 유지시키도록 수동적 사용자 뷰포트(118)를 이동시키도록 제공 및 구성된다. In other words,
요소 컴포넌트(114)는 수동적 사용자 시스템(104)의 수동적 사용자 뷰포트(118)의 콘텐츠(CONTENT1-P) 내에서 기준 요소(130)를 식별하도록 구성된다. 기준 요소(130)는 단락, 머리말, 이미지 또는 텍스트 문자열 중 적어도 하나를 포함할 수 있다. 요소 컴포넌트(114)는 수동적 요소 시스템(104)의 수동적 사용자 뷰포트(118) 내에서의 콘텐츠(CONTENT1-P)의 다수의 가능한 최상단 요소들 중 하나를 상기 기준 요소(130)로서 식별하도록 구성된다.The
요소 컴포넌트(114)는 수동적 요소 시스템(104)의 뷰포트(수동적 사용자 뷰포트(118)) 내에서의 가상 문서(108-P)의 뷰 변화에 기초하여, 메모리 내의 해시 세트 및 콘텐츠 요소들(또는 콘텐츠 요소들의 요소 태그들 또는 식별자들)을 업데이트 및 유지하도록 구성된다. The
뷰포트 컴포넌트(132)는 관심-요소(116)가 상주하는 콘텐츠(CONTENT1-P)의 사전규정된 섹션을 포함하도록 뷰포트(수동적 사용자 뷰포트(118))를 이동시키도록 구성된다. 뷰포트 컴포넌트(132)는 관심-요소(116)에 대한 뷰포트(수동적 사용자 뷰포트(118))의 위치를 계산하도록 구성된다.
협업 세션(102)의 모든 컴퓨팅 시스템들은 동일한 지속적 뷰포트 컴포넌트들(예를 들어, 요소 컴포넌트(114), 업데이트 컴포넌트(128) 및 뷰포트 컴포넌트(132))을 포함할 수 있음을 이해해야 한다. 이로써, 이러한 컴포넌트들은 업데이트가 능동적 사용자 시스템에 의해서 수동적 사용자 시스템들로 전파되는 동안에, 이러한 수동적 사용자 시스템들에 대해 동작하여 지속적 뷰포트를 가능하게 한다. It should be appreciated that all computing systems in
일 실시예에서, 그리고 전술한 바와 같이, 협업 프로세싱을 위한 능동적 사용자 동작 모드는 단순히 한 사용자가 가상 문서(108)를 편집하는 것에 의해 개시될 수 있고, 따라서, 이러한 동작은 자동으로 다른 사용자들이 수동적 사용자들이 되게 하며, 이로써, 이러한 수동적 사용자들은 상기 능동적 사용자가 편집하는 때와 동시에 편집하도록 허용되지 않는다.In one embodiment, and as described above, an active user mode of operation for collaborative processing may be initiated simply by one user editing the
그러나, 다른 구현예에서, 협업 서비스가 협업 세션의 다수의 "능동적" 사용자들로부터의 동시적 업데이트들을 프로세싱할 수 있지만, 이 경우에, 종국적으로 가상 문서(108)에 대한 업데이트를 완료하기 위해서 이러한 업데이트들이 순차적으로 큐잉될 수 있다. 예를 들어, 사용자 그룹들(예를 들어, 쌍들)이 가상 문서(108)의 특정 콘텐츠 섹션들에 대해 작업을 하도록 할당될 수 있다. 이 경우에, 본 아키텍처는 본 명세서에서 기술된 바와 같은, 수동적/능동적 그룹 사용자들(쌍들) 각각의 각 뷰포트에서 뷰를 유지한다. 이러한 보다 "능동적인" 구현예에서, 입력들 및/또는 능동적/수동적 모드들은, 단일 능동적 사용자 및 수동적 사용자들로서의 나머지 세션 사용자들이 임의의 소정의 시간에 동기적으로 구현되는 것과는 달리, "비동기적으로" 그리고 고속으로 발생할 수 있다. However, in another implementation, the collaboration service may process concurrent updates from multiple “active” users of a collaboration session, but in this case, in order to eventually complete updates to the
능동적 사용자(120)가 업데이트(124-A)를 수행하고 이 업데이트가 수동적 사용자 뷰포트(118)의 조정을 초래할 때에, 수동적 사용자(112)는 수동적 사용자 뷰포트(118)가 조정되었거나 조정될 것이라는 것이라는 통지사항(140)을 (상기 업데이트(124-P)와 함께 또는 상기 업데이트 이전에) 수신하고 이 통지사항이 표시될 수 있다. 또한, 통지사항(140)은 능동적 사용자 뷰포트(118)의 가상 문서(108-P) 내의 업데이트(124-P)의 위치로 바로 점프하여 상기 업데이트(124-P)를 볼 수 있는 옵션을 제공할 수 있다. 예를 들어, 능동적 사용자(120)가 큰 텍스트 블록을 붙여 넣고 있는 경우에, 수동적 사용자 콘텐츠(110-P)가 조정되면, 수동적 사용자(112)로 하여금 능동적 사용자의 뷰포트의 위치로 점프하여(뷰포트들을 동기화하여) 수동적 사용자(112)가 바로 전에 붙여 넣은 컨텐츠를 볼 수 있도록 하게 하는 통지사항(140)을 또한 수신할 것이다. When an
또한, 통지사항(140)은 수동적 사용자의 가상 문서(108-P) 내로의 즉시 삽입을 허용하는 옵트-인(opt-in) 옵션 또는 수동적 사용자의 가상 문서(108-P) 내로의 즉시 삽입을 금지하는 옵트-아웃(opt-out) 옵션을 수동적 사용자(112)에게 나타낼 수도 있다. 능동적 사용자(120)(능동적 사용자 시스템(106))로부터의 업데이트(124-A)를 옵트-인(수락)하기로 선택하면, 수동적 사용자(112)에게 수동적 사용자 뷰포트(118)를 통해 업데이트(124-P)가 자동적으로 탐색되어질 수 있다. 옵트- 아웃을 선택한다면, 이는 수동적 사용자의 가상 문서(108-P)로의 삽입을 일시적으로 지연시킬 수 있다. 이렇게 삽입이 지연될 때, 예를 들어, 수동적 사용자의 가상 문서(108-P)로의 최종 입력을 위해, 능동적 사용자 시스템(106)으로부터의 업데이트(124-A)는 수동적 사용자 시스템(104) 내에서 큐잉될 수 있다.
통지사항(140)은 수동적 사용자 뷰포트(118) 내에서 표시될 수 있으며, 수동적 뷰포트(118) 외부에서는, 단순히 업데이트가 수신되었거나 삽입 준비가 되었음을 나타내는 사운드 또는 임의의 다른 적합한 형태의 매체로서 표현될 수 있다.The
도 2는 본 개시된 아키텍처에 따라 뷰포트 지속성을 위해서 고려될 수 있는 콘텐츠(110-P)의 요소들(202)의 보다 상세한 도면(200)을 도시한다. 여기서, 가상 문서(108-P)는 이미지(204), 머리말(206), 첫 번째 단락(208) 및 두 번째 단락(210)을 포함한다. 콘텐츠(110-P)의 다른 요소는 가상 문서(108-P)의 일부일 수 있으며, 수동적 사용자 뷰포트(118) 외부에 있다. 일 실시예에서, 관심-요소는 가상 문서(108-P) 내의 콘텐츠(110-P)의 가장 큰 부분으로 식별될 수 있으며, 여기서 가장 큰 부분은 면적당 픽셀의 수에 따라 규정될 수 있다. 따라서, 일 경우에, 관심-요소는 예를 들어 이미지(204) 또는 첫 번째 단락(208)일 수 있다. 또한, 관심-요소가 기준 요소일 수도 있다. 여기서, 픽셀 면적에 있어서 가장 큰 것인, 이미지(204)가 또한 기준 요소일 수 있다. 또한, 대안적으로, 이미지(204)는 수동적 사용자 뷰포트(118) 내의 최상단 요소이기 때문에, 이미지(204)가 기준 요소일 수 있다.2 shows a more detailed diagram 200 of elements 202 of content 110-P that may be considered for viewport persistence in accordance with the presently disclosed architecture. Here, the virtual document 108 -P includes an
또한, 관심-요소가 콘텐츠(110-P) 내의 텍스트(212)의 문자열인 경우도 있을 수 있다. 그러나, 이러한 예에서, 이미지(204)가 최상단 요소이기 때문에, 관심 요소는 최상단 요소가 아니다. 그러나, 최상단 요소에서 이미지(204)를 식별함으로써, 텍스트(212)의 문자열은 여전히 뷰포트(118) 내에서 유지될 수 있다.There may also be cases where the interest-element is a string of
수동적 사용자 뷰포트(118)의 치수들은 또한 콘텐츠(110-P)의 특정 영역 또는 부분이 수동적 사용자 뷰포트(118) 내에 있는 지의 여부에 영향을 미칠 수 있다. 수동적 사용자 뷰포트(118)를 생성하는 애플리케이션은 자동적으로, 수동적 사용자 뷰포트(118)의 크기를 규정할 수 있다. 또한, 특정 장치(예를 들어, 핸드헬드 장치, 데스크탑 장치, 등)도 수동적 사용자 뷰포트(118)의 크기에 영향을 미칠 수 있다. 예를 들어, 스마트 폰의 (능동적 또는 수동적) 뷰포트는 일반적으로 데스크탑 컴퓨터의 (능동적 또는 수동적) 뷰포트보다 치수면에서 훨씬 작다. 스마트 폰의 경우에, 뷰포트는 수동적 사용자(112)가 콘텐츠를 볼 수 있는 능력을 향상시키기 위해 실제로는 전체 디스플레이 치수로 확장될 수 있는 반면, 데스크톱 컴퓨터의 뷰포트는 데스크톱 컴퓨터의 디스플레이보다 훨씬 작을 수 있지만 수동적 사용자(112)가 여전히 충분히 잘 볼 수 있도록 한다. The dimensions of the
다른 구현예에서, 관심-요소 또는 기준 요소로서 콘텐츠 내의 가장 큰 부분(예를 들어, 이미지(204))을 선택하기보다는, 사용자는 관심-요소 및/또는 기준 요소를 사전에 식별할 수 있다. 사용자는 다른 사용자들에 의한 업데이트들에 관계없이 임의의 시점에서 수동적 사용자 뷰포트 내에서 유지되도록 콘텐츠 내의 특정 부분(예를 들어, 이미지)을 선택할 수 있다. 따라서, 요소 컴포넌트(114)는 수동적 사용자가 관심 요소 및/또는 심지어는 기준 요소를 선택할 수 있도록 구성될 수 있다. 이 경우에, 관심-요소 및/또는 기준 요소로서 콘텐츠의 해당 부분을 태그(tag)하거나 마크(mark)하도록, 수동적 사용자가 상호작용할 수 있는 콘텐츠의 각각의 식별 가능하고 독립적인 부분에 대한 활성상태의 선택가능한 태그 객체(214)가 제공될 수 있다. 따라서, 다른 사용자들에 의해 입력된 임의의 업데이트들은 해당 태그된 콘텐츠를 수동적 사용자가 보는 것을 방해하는 방식으로 수동적 사용자 뷰포트(118)에는 어떠한 영향도 미치지 않을 것이다. 태그된 콘텐츠는 수동적 사용자 뷰포트(118) 내에서 최상단 요소로서(수동적 사용자 활동은 상기 최상단 요소 아래에 있음), 가운데에 있는 요소(수동적 사용자 활동은 상기 가운데에 있는 요소 위 또는 아래에 있음) 또는 심지어 가장 하단의 요소(수동적 사용자 활동은 상기 가장 하단의 요소 위에 있음)로서 자동적으로 표현된다. In other implementations, rather than selecting the largest portion within the content (eg, image 204 ) as a factor of interest or criterion, the user may pre-identify the factor of interest and/or criterion. A user may select a particular portion within the content (eg, an image) to remain within the passive user viewport at any point in time regardless of updates by other users. Accordingly,
관심-요소 및/또는 기준 요소를 식별하는 다른 방식은 예를 들어, 텍스트 문자열, 단락 또는 텍스트의 섹션, 및 단락의 섹션을 강조처리(또는 밑줄처리, 굵게 보여줌, 주석을 담, 등)하는 것과 같이, 컨텐츠에 대한 일반적으로 알려진 편집/주석 처리를 적용하는 것일 수 있다. 이러한 식별을 가능하게 하는 사용자 입력은 예를 들어, 음성 명령 및/또는 입력 장치 제어에 의해 이루어질 수 있다. 사용자가 콘텐츠의 특정 부분과 광범위하게 (예를 들어, 뷰어의 체류 시간에 기초하여) (수동적으로) 상호작용하고 있는 중이면, 이는 사용자가 수동적 사용자 뷰포트 내에서 해당 콘텐츠를 유지하기로 선택한 것으로 해석될 수 있다.Other ways to identify elements of interest and/or criteria include, for example, highlighting (or underlining, bolding, annotating, etc.) text strings, paragraphs or sections of text, and sections of paragraphs. Likewise, it may be to apply a commonly known editing/commenting process to the content. User input enabling such identification may be, for example, by voice command and/or input device control. If the user is (passively) interacting extensively (e.g., based on the viewer's dwell time) with a particular piece of content, this is interpreted as the user choosing to keep that content within the passive user's viewport. It can be.
도 3은 본 개시된 지속적 뷰포트 아키텍처의 시스템(300)의 다른 구현예를 나타낸다. 이 예시적인 구현예에서, 아키텍처는 (예를 들어, 협업 세션에서) 능동적 사용자에 의해서 이루어진 업데이트들에 응답하여 수동적 사용자의 뷰포트를 지속시키기보다는, 본 아키텍처는 능동적 사용자(리더(leader))가 모든 수동적 사용자들(청중)에 의해서 보여질 콘텐츠에 영향을 주는 리더-청중 모드(leader-aduience mode)로 동작한다. 3 illustrates another implementation of the
여기에서, 리더(302)는 청중 사용자들의 뷰포트(미도시)를 (리더 뷰포트(304-L)("L"은 리더에 대한 것임)를 통해서) 리더 컴퓨팅 시스템(leader computing system)(312)의 프리젠테이션 가상 콘텐츠들(presentation virtual contents)(310-L)의 프리젠테이션 콘텐츠(308-L)의 특정 리더 요소(306-L)로 향하게 한다. 이로써, 이러한 경우에, 리더(302)(능동적 사용자(120)와 유사함)는 프리젠테이션 콘텐츠(308-L)를 (수동적) 사용자들인 청중에게 프리젠테이션한다. 청중 사용자들에게는 프리젠테이션 동안 청중 사용자 뷰포트(도시되지 않음) 내에서 리더 프리젠테이션 가상 문서들(310-L)을 정독할 수 있는 유연성이 부여될 수 있는 한편, 리더(302)가 해당 시간에 중요하다고 생각하는 콘텐츠에 청중의 이목이 향하게 함으로써, 청중 사용자(들)의 이목이 상기 프리젠테이션 콘텐츠(308-L)의 특정 부분들에 집중되도록 리더(302)는 보장할 수 있다. Here, the
따라서, 리더(302)는 콘텐츠의 일부(예를 들어, 첫 번째 단락(208))를 태그하거나 간단히 클릭할 수 있고, 이러한 클릭 및/또는 태그 동작은 이어서 요소 컴포넌트(114)에 의해, 일부 또는 모든 청중 뷰포트를 상기 태크된 콘텐츠(예를 들어, 첫 번째 단락(208))로 향하게 하도록 해석될 수 있다. Accordingly,
또한, 이러한 기능은 리더(302)가 프리젠테이션 가상 문서들(310-L)을 돌아 점프할 수 있게 하여, 리더(302)가 청중 사용자들이 보기를 원하는 콘텐츠 및/또는 페이지들을 청중 뷰포트에서 즉시 프리젠테이션할 수 있다. 따라서, 이러한 프리젠테이션은 청중 앞에서 사용되는 전형적인 대형 스크린보다는, 사용자 컴퓨팅 디바이스(예를 들어, 스마트폰, 태블릿, 랩탑, 등)를 통해서 실현될 수 있다.Additionally, this functionality allows the
이어서, 업데이트 컴포넌트(128)는 리더(302)가 프리젠테이션 가상 문서들(310-L)에 대한 업데이트를 추가적으로 할 수 있게 한다. 이에 응답하여, 각 청중 사용자 시스템의 뷰포트 컴포넌트(132)는 청중 사용자 뷰포트를 업데이트가 이루어진 특정 리더 콘텐츠 위치로 이동시킨다. 대안적으로, 각 청중 사용자 시스템의 뷰포트는, 청중 사용자 뷰포트를 리더-특정된 콘텐츠로 향하도록 하기 이전에, 일시적으로(예를 들어, 수 초) 지연될 수 있다. 이러한 약간의 지연은 현재 보여지고 있는 콘텐츠에 대한 사용자 이목을 방해하지 않음으로써 현재 보여지고 있는 콘텐츠에 대한 사용자의 이해를 향상시킨다.The
본 개시된 아키텍처에서, 특정 컴포넌트들은 재배열되고, 결합되고, 생략될 수 있고, 추가적인 컴포넌트들이 포함될 수 있음을 이해해야 한다. 또한, 일부 구현예들에서, 컴포넌트들 중 전부 또는 일부는 클라이언트 상에 있지만, 다른 구현예들에서는, 일부 컴포넌트들이 서버 상에 상주하거나 로컬 또는 원격 서비스에 의해 제공될 수 있다. 예를 들어, 클라이언트 장치 내에서, 요소 컴포넌트(114), 업데이트 컴포넌트(128) 및 뷰포트 컴포넌트(132)는 각각의 클라이언트 장치 내에서 단일 서비스로서 구현될 수 있다. 클라우드 구현예에서, 이러한 컴포넌트들(114, 128, 132) 중 하나 이상은 이러한 컴포넌트(들)를 로컬 방식으로 (소프트웨어 방식 및/또는 하드웨어 방식으로) 사용할 수 없는 사용자 디바이스들에 대한 클라우드 서비스로서 구현될 수 있다.It should be understood that in the presently disclosed architecture, certain components may be rearranged, combined, or omitted, and additional components may be included. Also, in some implementations, all or some of the components are on the client, while in other implementations, some of the components reside on a server or may be provided by a local or remote service. For example, within a client device,
이러한 대안적인 구현예에서, 프리젠테이션과 연관된 가상 문서들의 콘텐츠 내에서 능동적 사용자(리더)에 의해 특정된 관심-요소―상기 관심-요소는 상기 능동적 사용자의 뷰포트 내에 있음―를 식별하도록 구성된 요소 컴포넌트; 상기 가상 문서들과 연관된 상기 능동적 사용자로부터의 업데이트 또는 태그를 프로세싱하도록 구성된 업데이트 컴포넌트; 및 상기 능동적 사용자에 의한 수동적 사용자 뷰포트의 임의의 위치 변화에 관계없이 상기 수동적 사용자들(예를 들어, 청중 사용자들)의 뷰포트들의 상기 능동적 사용자의 관심-요소와 연관된 콘텐츠로의 이동을 구현하도록 구성된 뷰포트 컴포넌트를 포함하는 시스템이 제공될 수 있다.In this alternative implementation, an element component configured to identify an interest-element specified by an active user (reader) within content of virtual documents associated with a presentation, wherein the interest-element is within the active user's viewport; an update component configured to process an update or tag from the active user associated with the virtual documents; and implement movement of the passive users' (eg, audience users') viewports to content associated with the active user's interest-element regardless of any positional change of the passive user's viewport by the active user. A system may be provided that includes a viewport component.
이러한 대안적인 구현예에서, 프리젠테이션의 가상 문서들의 콘텐츠 내에서의 관심-요소―상기 관심-요소는 리더 뷰포트를 통해 리더에 의해서 지정됨―의 리더-특정된 식별사항을 수신하는 단계; 상기 업데이트 컴포넌트를 통해 상기 리더- 특정된 식별사항을 프로세싱하고 상기 업데이트에 대하여 청중 사용자 시스템들을 업데이트하는 단계; 대응하는 청중 사용자들에 의한 청중 사용자 뷰포트들에 의해 개시된 임의의 위치 변화에 관계없이 상기 관심-요소를 포함하도록 상기 청중 사용자 뷰포트들을 이동시키는 단계를 포함하는 방법이 제공될 수 있다. In this alternative implementation, receiving a reader-specific identification of an interest-element within the content of the virtual documents of the presentation, the interest-element specified by the reader via the reader viewport; processing the leader-specified identification via the update component and updating audience user systems with respect to the update; A method may be provided that includes moving the audience user viewports to include the interest-element regardless of any position change initiated by the audience user viewports by corresponding audience users.
본 개시된 아키텍처는 선택 사양적으로 가상 문서의 특정 콘텐츠를 선택하거나 보여주는 것과 같이, 개인 정보를 노출시키는 것을 사용자가 동의하거나 동의하지 않게 할 수 있는 프라이버시 컴포넌트(미도시)를 포함할 수 있다. 프라이버시 컴포넌트 추적 정보, 및 획득되었을 수도 있거나, 유지되거나 및/또는 액세스가능한 개인 정보와 같은 사용자 정보의 승인되고 안전한 프로세싱를 가능하게 한다. 사용자는 개인 정보들의 부분들의 수집에 대한 통지 및 이러한 수집 프로세스를 동의할지 동의하지 않을지의 기회를 제공받을 수 있다. 이러한 동의는 여러 가지 형식을 취할 수 있다. 이러한 개인 정보 수집 동의는 데이터가 수집되기 이전에 사용자가 적극적인 조치를 취하도록 할 수 있게 한다. 이와 달리, 개인 정보 수집 반대는 데이터가 수집되기 전에 사용자가 데이터 수집을 방지하기 위한 적극적인 조치를 취하도록 할 수 있게 한다. The disclosed architecture may optionally include a privacy component (not shown) that allows a user to consent or not consent to revealing personal information, such as selecting or showing specific content of a virtual document. The privacy component enables authorized and secure processing of user information, such as tracking information, and personal information that may have been obtained, maintained and/or accessible. The user may be provided with notice of the collection of pieces of personal information and an opportunity to consent or disagree with this collection process. This consent can take several forms. Consent to the collection of such personal information allows users to take active steps before data is collected. In contrast, Opposing Personal Data Collection allows users to take active steps to prevent data collection before data is collected.
본 명세서에서는, 본 개시된 아키텍처의 신규 양태들을 수행하기 위한 예시적인 방법들을 나타내는 흐름도들의 세트가 포함된다. 설명의 단순화를 위해, 본 명세서에서, 예를 들어, 플로우 차트 또는 흐름도의 형태로 도시된 하나 이상의 방법들은 일련의 동작들로 도시되고 기술되었지만, 일부 동작들은 이러한 방법들에 있어서 다른 순서로 발생하고/하거나 본 명세서에서 도시되고 설명된 것과는 다른 동작들과 동시에 발생할 수 있으므로, 이러한 방법들은 그 동작들의 순서에 의해서 제한되지 않는다는 것이 인정 및 이해되어야 한다. 예를 들어, 당업자는 일 방법이 상태도에서와 같이, 일련의 상호 관련된 상태들 또는 이벤트들로서 대안적으로 표현될 수 있다는 것을 이해하고 인식할 것이다. 더욱이, 일 방법에서 예시된 동작들 모두가 새로운 구현예를 위해 필요한 것은 아니다. Included herein is a set of flow diagrams illustrating example methods for performing novel aspects of the disclosed architecture. For simplicity of explanation, while one or more methods herein, illustrated in the form of, for example, a flow chart or flow diagram, are shown and described as a series of acts, some acts may occur in a different order in such methods. It should be appreciated and understood that such methods are not limited by the order of the operations, as/or may occur concurrently with other operations than those shown and described herein. For example, those skilled in the art will understand and appreciate that a methodology could alternatively be represented as a series of interrelated states or events, such as in a state diagram. Moreover, not all of the operations illustrated in one method are required for a new implementation.
도 4는 본 개시된 아키텍처에 따른 방법을 도시한다. 400에서, 관심-요소가 가상 문서의 콘텐츠 내에서 식별된다. 관심-요소는 수동적 사용자 시스템 상에 나타난 가상 문서의 뷰포트 내에 있다. 402에서, 가상 문서의 콘텐츠에 대한 업데이트가 능동적 사용자 시스템으로부터 수신된다. 404에서, 관심-요소는 능동적 사용자 시스템에 의한 업데이트로 인해 콘텐츠의 임의의 위치 변화에 관계없이 수동적 사용자 시스템의 뷰포트 내에서 유지된다.4 illustrates a method according to the presently disclosed architecture. At 400, an interest-element is identified within the content of the virtual document. The element-of-interest is within the viewport of the virtual document presented on the passive user's system. At 402, updates to the content of the virtual document are received from the active user system. At 404, the interest-element remains within the viewport of the passive user system regardless of any positional changes of the content due to updates by the active user system.
상기 방법은 관심-요소에 대한 뷰포트의 위치를 계산하는 단계를 더 포함할 수 있다. 상기 방법은 상기 업데이트에 응답하여 상기 수동적 사용자 시스템의 상기 뷰포트의 콘텐츠 내에서 기준 요소를 식별하는 단계를 더 포함할 수 있다. 이 방법은 수동적 사용자 시스템의 뷰포트 내의 최상단 요소를 기준 요소로서 식별하는 단계를 더 포함할 수 있다.The method may further include calculating a position of the viewport relative to the element-of-interest. The method may further include identifying a reference element within content of the viewport of the passive user system in response to the update. The method may further include identifying a top-most element in the viewport of the passive user system as a reference element.
이 방법은 업데이트에 응답하여 기준 요소를 식별하고 상기 뷰포트 내에 관심-요소를 지속시키도록 상기 콘텐츠 내에서의 오프셋을 조정하는 단계를 더 포함할 수 있다. 이 방법은 해시 세트 및 콘텐츠의 요소들을 저장하는 메모리 내에서 관심-요소를 검색하는 단계를 더 포함할 수 있다. 이러한 방법은 수동적 사용자 시스템들의 대응하는 뷰포트들 내에서 관심-요소의 위치를 유지하면서 수동적 사용자 시스템들의 애플리케이션들 간에 상기 업데이트를 동기화하는 단계를 더 포함할 수 있다.The method may further include identifying a reference element in response to the update and adjusting an offset within the content to persist the interest-element within the viewport. The method may further include retrieving the element-of-interest within a memory storing the hash set and elements of the content. The method may further include synchronizing the update between applications of the passive user systems while maintaining the position of the element-of-interest within the corresponding viewports of the passive user systems.
상기 방법은 뷰포트 내에 관심-요소를 포함시키도록 뷰포트의 위치를 이동시키는 단계를 더 포함할 수 있다. 이 방법은 수동적 사용자 시스템의 뷰포트 외부에 있는 가상 문서의 부분에서 상기 업데이트를 수신하는 단계를 더 포함할 수 있다. 이 방법은 수동적 사용자들, 및 협업 편집 하에서 문서들을 업데이트하는 능동적 사용자 간의 협업 세션에 적용된다. The method may further include moving the position of the viewport to include the element-of-interest within the viewport. The method may further include receiving the update at a portion of the virtual document that is outside the viewport of the passive user's system. This method applies to collaborative sessions between passive users and active users updating documents under collaborative editing.
도 5는 본 개시된 아키텍처에 따른 다른 방법을 도시한다. 500에서, 가상 문서의 콘텐츠 내에서 관심-요소가 식별된다. 관심-요소는 협업 세션의 수동적 사용자 시스템 상에 나타난 가상 문서의 뷰포트 내에 있다. 502에서, 관심-요소에 대한 뷰포트의 위치가 계산된다. 504에서, 수동적 요소 시스템의 뷰포트의 콘텐츠 내에서 기준 요소가 식별된다. 506에서, 협업 세션의 능동적 사용자 시스템으로부터 가상 문서의 콘텐츠에 대한 업데이트가 수신된다. 508에서, 능동적 사용자 시스템에 의한 업데이트로 인해 콘텐츠의 임의의 위치 변화에 관계없이 수동적 사용자 시스템의 뷰포트 내에 관심-요소가 포함되도록 상기 뷰포트가 유지된다.5 illustrates another method according to the presently disclosed architecture. At 500, an interest-element is identified within the content of the virtual document. The interest-element is within the viewport of the virtual document presented on the passive user's system of the collaboration session. At 502, the position of the viewport relative to the element-of-interest is calculated. At 504, a reference element is identified within the content of the passive element system's viewport. At 506, an update to the content of the virtual document is received from the active user system of the collaboration session. At 508, updates by the active user system maintain the viewport such that the interest-element is contained within the viewport of the passive user system regardless of any change in position of the content.
상기 방법은 수동적 사용자 시스템의 뷰포트 내에서 최상단 요소를 기준 요소로서 식별하는 단계를 더 포함할 수 있다. 상기 방법은 상기 뷰포트 내에서 상기 관심-요소를 유지하도록 오프셋에 따라 상기 뷰포트를 조정하는 단계를 더 포함할 수 있다. 이 방법은 수동적 사용자 시스템의 대응하는 협업 뷰포트들 내에서 상기 관심-요소의 위치를 유지하면서, 협업 세션의 일부로서 수동적 사용자 시스템들의 애플리케이션들 간에 상기 업데이트를 동기화하는 단계를 더 포함할 수 있다.The method may further include identifying a topmost element within the viewport of the passive user system as a reference element. The method may further comprise adjusting the viewport according to the offset to keep the interest-element within the viewport. The method may further include synchronizing the update between applications of the passive user systems as part of a collaboration session, while maintaining the location of the interest-element within the corresponding collaboration viewports of the passive user system.
또한, 도 6은 본 개시된 아키텍처에 따른 또 다른 대안적 방법을 도시한다. 600에서, 프레젠테이션의 가상 문서들의 콘텐츠 내에서의 관심-요소의 리더-특정된 식별사항이 수신된다. 관심-요소는 리더 뷰포트를 통해 리더에 의해 지정된다. 602에서, 리더-특정된 식별사항이 업데이트 컴포넌트를 통해 프로세싱되고 청중 사용자 시스템들이 상기 업데이트에 따라서 업데이트된다. 604에서, 해당 청중 사용자들에 의한 청중 사용자 뷰포트들에 의해 개시된 임의의 위치 변화에 관계없이 청중 사용자 뷰포트들은 관심-요소를 포함하도록 이동된다.6 also illustrates another alternative method according to the presently disclosed architecture. At 600, a reader-specific identification of an interest-element within the content of the virtual documents of the presentation is received. Interest-elements are designated by the reader through the reader viewport. At 602, the leader-specific identification is processed via an update component and audience user systems are updated according to the update. At 604, the audience user viewports are moved to include the interest-element regardless of any position change initiated by the audience user viewports by the audience users in question.
본원에서 사용된 바와 같이, "컴포넌트"라는 용어는 컴퓨터-관련 엔티티, 하드웨어, 소프트웨어 및 유형의 하드웨어의 조합, 소프트웨어 또는 실행중인 소프트웨어를 지칭한다. 예를 들어, 컴포넌트는 다음으로 한정되지 않지만, 하나 이상의 마이크로프로세서, 칩 메모리, 대용량 저장 장치(예를 들어, 광학 드라이브, 고체상 드라이브, 자기 저장 매체 드라이브 등), 컴퓨터들, 및 휴대용 컴퓨팅 및 컴퓨팅-가능한 장치들(예를 들어, 휴대 전화, 태블릿, 스마트폰 등)과 같은 유형의 컴포넌트일 수 있다. 소프트웨어 컴포넌트는 마이크로프로세서 상에서 실행되는 프로그램, 객체(방법을 사용하여 변수 및 동작의 상태를 유지하는 소프트웨어 개체), 실행가능한 데이터 구조(휘발성 또는 비휘발성 저장 매체에 저장됨), 모듈(프로그램의 일부), 실행 스레드(독립적으로 관리될 수 있는 인스트럭션들의 최소 시퀀스) 및/또는 프로그램을 포함할 수 있다.As used herein, the term “component” refers to a computer-related entity, hardware, software and a combination of tangible hardware, software or software in execution. For example, components include, but are not limited to, one or more microprocessors, chip memory, mass storage devices (eg, optical drives, solid-state drives, magnetic storage media drives, etc.), computers, and portable computing and computing- It may be a tangible component such as possible devices (eg, mobile phone, tablet, smartphone, etc.). A software component is a program that runs on a microprocessor, objects (software objects that use methods to maintain the state of variables and operations), executable data structures (stored on volatile or nonvolatile storage media), modules (parts of a program). , a thread of execution (a minimal sequence of instructions that can be independently managed) and/or a program.
예시적으로 말하자면, 서버상에서 실행되는 애플리케이션 및 서버는 모두 컴포넌트일 수 있다. 하나 이상의 컴포넌트가 프로세스 및/또는 실행 스레드 내에 상주할 수 있으며, 컴포넌트는 하나의 컴퓨터 상에서 로컬화되고/되거나 둘 이상의 컴퓨터들 간에 분산될 수 있다. "예시적인"이라는 단어는 본 명세서에서 실례, 예 또는 예시로서 제공되는 것을 의미하기 위해 사용될 수 있다. 본 명세서에서 "예시적인" 것으로 설명된 임의의 양태 또는 설계는 다른 양태 또는 설계보다 반드시 바람직하거나 유리한 것으로 해석되지 않아야 한다.By way of example, both the server and the application running on the server may be components. One or more components can reside within a process and/or thread of execution and a component can be localized on one computer and/or distributed between two or more computers. The word "exemplary" may be used herein to mean serving as an example, example, or illustration. Any aspect or design described herein as “exemplary” should not be construed as necessarily preferred or advantageous over other aspects or designs.
이제, 도 7을 참조하면, 본 개시된 아키텍처에 따라 지속적 뷰포트를 실행하는 컴퓨팅 시스템(700)의 블록도가 도시되어 있다. 대안적으로 또는 부가적으로, 본 명세서에 기술된 기능들은 적어도 부분적으로, 하나 이상의 하드웨어 로직 컴포넌트들에 의해 수행될 수 있다. 예를 들어, 비한정적으로 말하자면, 사용될 수 있는 하드웨어 로직 컴포넌트들의 예시적인 타입들은 FPGA(Field-Programmable Gate Arrays), ASIC(Application-Specific Integrated Circuit), ASSP(Application-Specific Standard Products), SOC(System-on-a-Chip), CPLD(Complex Programmable Logic Device), 등을 포함하며, 이러한 컴포넌트들에서는, 디지털 및/또는 혼합 신호 및 기타 기능들이 기판에서 구현될 수 있다. Referring now to FIG. 7 , a block diagram of a computing system 700 implementing a persistent viewport in accordance with the presently disclosed architecture is shown. Alternatively or additionally, the functions described herein may be performed, at least in part, by one or more hardware logic components. By way of example and not limitation, example types of hardware logic components that may be used include Field-Programmable Gate Arrays (FPGAs), Application-Specific Integrated Circuits (ASICs), Application-Specific Standard Products (ASSPs), System Systems (SOCs) -on-a-Chip), Complex Programmable Logic Devices (CPLDs), etc., in these components, digital and/or mixed signal and other functions may be implemented on the board.
본 발명의 다양한 양태들에 대한 추가적인 컨텍스트를 제공하기 위해, 도 7 및 이하의 설명은 다양한 양태들이 구현될 수 있는 적합한 컴퓨팅 시스템(700)의 간단하고 일반적인 설명을 제공하기 위한 것이다. 위의 설명은 하나 이상의 컴퓨터 상에서 실행될 수 있는 컴퓨터 실행가능한 인스트럭션들의 일반적인 맥락에서 이루어졌지만, 당업자는 새로운 구현예는 또한 다른 프로그램 모듈들과 조합하여 및/또는 하드웨어 및 소프트웨어의 조합으로서 실현될 수 있다는 것을 인식할 것이다. To provide additional context for various aspects of the present invention, FIG. 7 and the discussion below are intended to provide a brief and general description of a suitable computing system 700 in which various aspects may be implemented. While the above description has been made in the general context of computer-executable instructions that can be executed on one or more computers, one skilled in the art will appreciate that new implementations may also be realized in combination with other program modules and/or as a combination of hardware and software. will recognize
다양한 양태들을 구현하기 위한 컴퓨팅 시스템(700)은 마이크로프로세싱 유닛(들)(704)(또한, 마이크로프로세서(들) 및 프로세서(들)로서 지칭됨), 시스템 메모리(706)와 같은 (그 상에 데이터가 전자적으로 및/또는 광학적으로 저장 및 검색될 수 있는 임의의 물리적 장치 또는 재료인) 컴퓨터 판독가능 저장 매체(상기 컴퓨터 판독가능 저장 매체/매체들은 또한 자기 디스크, 광학 디스크, 고체상 드라이브, 외부 메모리 시스템 및 플래시 메모리 드라이브를 포함함), 및 시스템 버스(708)를 갖는 컴퓨터(702)를 포함한다. 마이크로프로세싱 유닛(들)(704)은 단일 프로세서, 멀티-프로세서, 단일-코어 유닛, 및 프로세싱 및/또는 저장 회로들의 멀티-코어 유닛과 같은 다양한 상업적으로 입수가능한 마이크로프로세서들 임의의 것일 수 있다. 또한, 당업자는 본 신규한 시스템들 및 방법들이 미니컴퓨터, 메인프레임 컴퓨터뿐만 아니라 개인용 컴퓨터(예를 들어, 데스크탑, 랩톱, 태블릿 PC, 등), 파지식 컴퓨팅 장치, 마이크로프로세서-기반 또는 프로그램가능한 소비자 전자 장치 등을 포함하는 다른 컴퓨터 시스템 구성들을 사용하여 실시될 수 있다는 것을 이해할 것이며, 이러한 장치들 각각은 하나 이상의 관련 장치들에 동작가능하게 연결될 수 있다.Computing system 700 for implementing various aspects includes microprocessing unit(s) 704 (also referred to as microprocessor(s) and processor(s)), such as system memory 706 (on which Computer-readable storage medium (which is any physical device or material on which data can be stored and retrieved electronically and/or optically) (also referred to as magnetic disks, optical disks, solid-state drives, external memory system and flash memory drives), and a
컴퓨터(702)는 무선 통신 장치들, 셀룰러 전화들, 및 기타 모바일-가능 장치들과 같은 휴대용 및/또는 이동가능한 컴퓨팅 시스템들을 위한 클라우드 컴퓨팅 서비스를 지원할 시에 데이터센터 및/또는 컴퓨팅 자원들(하드웨어 및/또는 소프트웨어) 내에서 채용되는 몇몇 컴퓨터들 중 하나일 수 있다. 클라우드 컴퓨팅 서비스는 다음으로 한정되지 않지만, 서비스로서의 인프라(IaaS), 서비스로서의 플랫폼(PasS), 서비스로서의 소프트웨어(SasS), 서비스로서의 스토리지(SasS), 서비스로서의 데스크탑(DasS), 서비스로서의 데이터(DaaS), 서비스로서의 보안(SaaS) 및 서비스로서의 API(예를 들어, 애플리케이션 프로그램 인터페이스)(AasS)를 포함한다.
시스템 메모리(706)는 휘발성(VOL) 메모리(710)(예를 들어, 랜덤 액세스 메모리(RAM)) 및 비휘발성 메모리(NON-VOL)(712)(ROM, EPROM, EEPROM, 등)과 같은 컴퓨터 판독가능 저장 매체를 포함할 수 있다. BIOS(basic input/output system)는 비휘발성 메모리(712)에 저장될 수 있으며, 예를 들어, 기동 동안, 컴퓨터(702) 내의 컴포넌트들 간에 데이터 및 신호의 통신을 실현하는 기본 루틴을 포함한다. 휘발성 메모리(710)는 또한 데이터를 캐싱하기 위한 정적 RAM과 같은 고속 RAM을 포함할 수 있다.
시스템 버스(708)는 다음으로 한정되지 않지만, 시스템 메모리(706)를 포함하는 시스템 컴포넌트들을 마이크로프로세서(들)(704)로 연결하는 인터페이스를 제공한다. 시스템 버스(708)는 다양한 상업적으로 입수가능한 버스 아키텍처 중 임의의 것을 사용하여, 메모리 버스(메모리 제어기를 구비하거나 구비하지 않음) 및 주변장치 버스(예를 들어, PCI, PCIe, AGP, LPC, 등)로 더 상호접속될 수 있는 몇몇 타입의 버스 구조들 중 임의의 것일 수 있다.
컴퓨터(702)는 머신 판독가능 저장 서브시스템(들)(714) 및 상기 저장 서브시스템(들)(714)을 시스템 버스(708) 및 다른 원하는 컴퓨터 컴포넌트들 및 회로들에 인터페이스하기 위한 저장 인터페이스(들)(716)를 더 포함한다. 저장 서브시스템(714)(들)(물리적 저장 매체)은 예를 들어, 하드 디스크 드라이브(HDD), 자기 플로피 디스크 드라이브(FDD), SSD(Solid State Drive), 플래시 드라이브 및/또는 광 디스크 저장 드라이브(예를 들어, CD-ROM 드라이브 DVD 드라이브) 중 하나 이상을 포함할 수 있다. 저장 인터페이스(들)(716)는 예를 들어, EIDE, ATA, SATA 및 IEEE 1394와 같은 인터페이스 기술을 포함할 수 있다.The
하나 이상의 프로그램 및 데이터는 메모리 서브시스템(706), 머신 판독가능 및 분리식 메모리 서브시스템(718)(예를 들어, 플래시 드라이브 폼 팩터 기술) 및/또는 저장 서브시스템(들)(714)(예를 들어, 광학, 자기, 고체상) 내에 저장될 수 있으며, 상기 하나 이상의 프로그램 및 데이터는 운영 체제(720), 하나 이상의 애플리케이션 프로그램(722), 다른 프로그램 모듈(724) 및 프로그램 데이터(726)를 포함한다.One or more programs and data may be stored in
운영 체제(720), 하나 이상의 애플리케이션 프로그램(722), 다른 프로그램 모듈(724) 및/또는 프로그램 데이터(726)는 예를 들어, 도 1의 시스템(100)의 항목들 및 컴포넌트들, 도 2의 도면(200)의 항목들 및 컴포넌트들, 도 3의 시스템(300)의 항목들 및 컴포넌트들, 및 도 4 내지 도 6의 흐름도들에 의해 표현된 방법들을 포함할 수 있다.
일반적으로, 프로그램은 특정 태스크, 기능을 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 방법, 데이터 구조, 다른 소프트웨어 컴포넌트, 등을 포함한다. 운영 체제(720), 애플리케이션들(722), 모듈들(724), 및/또는 데이터(726) 중 전부 또는 일부는 또한 예를 들어, 휘발성 메모리(710) 및/또는 비휘발성 메모리와 같은 메모리 내에 캐시될 수 있다. 본 개시된 아키텍처는 다양한 상업적으로 입수가능한 운영 체제들 또는 운영 체제들의의 조합(예를 들어, 가상 머신)으로 구현될 수 있음을 이해해야 한다.Generally, a program includes routines, methods, data structures, other software components, etc. that perform particular tasks, functions, or implement particular abstract data types. All or a portion of
저장 서브시스템(들)(714) 및 메모리 서브시스템(706 및 718)은 데이터, 데이터 구조, 컴퓨터 실행가능한 인스트럭션 등의 휘발성 및 비휘발성 저장을 위한 컴퓨터 판독가능 매체 역할을 한다. 이러한 인스트럭션들은 컴퓨터 또는 다른 머신에 의해 실행될 때, 컴퓨터 또는 다른 머신으로 하여금 방법의 하나 이상의 동작을 수행하게 할 수 있다. 컴퓨터 실행가능한 인스트럭션은, 예를 들어, 범용 컴퓨터, 특수 목적 컴퓨터 또는 특수 목적 마이크로프로세서 장치(들)로 하여금 특정 기능 또는 기능 그룹을 수행하게 하는 인스트럭션 및 데이터를 포함한다. 컴퓨터 실행 가능 인스트럭션은 예를 들어, 어셈블리 언어 또는 심지어 소스 코드와 같은 이진 중간 포맷 인스트럭션일 수 있다. 동작을 수행하기 위한 인스트럭션은 하나의 매체에 저장될 수 있거나 여러 매체에 걸쳐서 저장될 수 있으며, 이로써 인스트럭션들은, 이러한 인스트럭션들 모두가 동일한 매체 상에 존재하는지에 상관없이, 하나 이상의 컴퓨터 판독가능 저장 매체/매체들 상에서 집합적으로 나타난다. Storage subsystem(s) 714 and
컴퓨터 판독가능 저장 매체들(매체)는 전파된 신호 그 자체를 배제하고, 컴퓨터(702)에 의해 액세스될 수 있으며, 분리식 및/또는 비분리식일 수 있는 휘발성 및 비휘발성 매체 및/또는 외부 매체를 포함한다. 컴퓨터(702)에 대해서, 다양한 유형의 저장 매체는 임의의 적합한 디지털 포맷으로 된 데이터를 저장한다. 당업자라면, 본 개시된 아키텍처의 신규한 방법(동작)을 수행하기 위한 컴퓨터 실행가능 인스트럭션을 저장하기 위한 다른 유형의 컴퓨터 판독가능 매체, 예를 들어, 지프(zip) 드라이브, 고체상 드라이브, 자기 테이프, 플래시 메모리 카드, 플래시 드라이브, 카트리지 등이 사용될 수 있음을 이해해야 한다. Computer-readable storage media (medium), excluding the propagated signal itself, can be accessed by
사용자는 키보드 및 마우스와 같은 외부 사용자 입력 장치(728)를 사용하여 뿐만 아니라, 음성 인식에 의해 실현되는 음성 명령에 의해 컴퓨터(702), 프로그램 및 데이터와 상호 작용할 수 있다. 다른 외부 사용자 입력 장치들(728)은 마이크로폰, IR(적외선) 원격 제어기, 조이스틱, 게임 패드, 카메라 인식 시스템, 스타일러스 펜, 터치 스크린, 제스처 시스템(예를 들어, 안구 운동, 손(들), 손가락(들), 팔(들), 머리, 등과 관련된 바와 같은 신체 포즈), 등을 포함할 수 있다. 사용자는 예컨대 컴퓨터(702)가 휴대용 컴퓨터인 경우에, 터치패드, 마이크로폰, 키보드, 등과 같은 온보드(onboard) 사용자 입력 장치(730)를 사용하여 컴퓨터(702), 프로그램 및 데이터와 상호작용할 수 있다.A user may interact with the
이들 및 다른 입력 장치는 시스템 버스(708)를 통해 입/출력(I/O) 장치 인터페이스(들)(732)를 통해 마이크로프로세싱 유닛(들)(704)에 연결되지만, 병렬 포트, IEEE 1394 직렬 포트, 게임 포트, USB 포트, IR 인터페이스, 단거리 무선 통신(예를 들어, 블루투스) 및 다른 개인 영역 네트워크(PAN) 기술 등과 같은 다른 인터페이스들에 의해 접속될 수 있다. 상기 I/O 장치 인터페이스(들)(732)는 또한, 사운드 카드 및/또는 온보드 오디오 프로세싱 능력을 갖추어서, 프린터, 오디오 장치, 카메라 장치 등과 같은 출력 주변 장치(734)의 사용을 가능하게 한다.These and other input devices are connected to the microprocessing unit(s) 704 through an input/output (I/O) device interface(s) 732 via the
하나 이상의 그래픽 인터페이스(들)(736)(일반적으로 그래픽 프로세싱 유닛 (GPU)라고도 함)는 컴퓨터(702)와 외부 디스플레이(들)(738)(예를 들어, LCD, 플라즈마 디스플레이) 및/또는 온보드 디스플레이(740)(예를 들어, 휴대용 컴퓨터 경우에서임) 간에 그래픽 및 비디오 신호를 제공한다. 그래픽 인터페이스(들)(736)는 또한 컴퓨터 시스템 보드의 일부로서 제조될 수 있다.One or more graphics interface(s) 736 (commonly referred to as a graphics processing unit (GPU)) may be connected to the
컴퓨터(702)는 하나 이상의 네트워크 및/또는 다른 컴퓨터로의 유선/무선 통신 서브시스템(742)을 통한 논리적 접속을 사용하여 네트워크 환경(예를 들어, IP 기반)에서 동작할 수 있다. 다른 컴퓨터들은 워크스테이션, 서버, 라우터, 퍼스널 컴퓨터, 마이크로프로세서-기반 엔터테인먼트 장치, 피어 장치(peer device) 또는 다른 공통 네트워크 노드를 포함할 수 있으며, 통상적으로 컴퓨터(702)와 관련하여 설명된 요소들 전부 또는 일부를 포함할 수 있다. 상기 논리적 접속은 근거리 통신망(LAN), 광역 네트워크(WAN), 핫스폿 등으로의 무선/유선 연결을 포함할 수 있다. LAN 및 WAN 네트워킹 환경은 사무실과 회사에서 흔히 볼 수 있으며 인트라넷과 같은 전사적(enteprise-wide) 컴퓨터 네트워크들을 실현하며, 이러한 네트워크들 모두는 인터넷과 같은 글로벌 통신 네트워크에 연결될 수 있다.
네트워킹 환경에서 사용될 때, 컴퓨터(702)는 유선/무선 통신 서브시스템(742)(예를 들어, 네트워크 인터페이스 어댑터, 온보드 송수신기 서브시스템, 등)을 통해서 네트워크에 접속되어, 유선/무선 네트워크, 유선/무선 프린터, 유선/무선 입력 장치(744), 등과 통신할 수 있다. 컴퓨터(702)는 네트워크를 통해 통신을 확립하기 위한 모뎀 또는 다른 수단을 포함할 수 있다. 네트워크 환경에서, 컴퓨터(702)에 관련된 프로그램 및 데이터는 분산형 시스템과 관련된 바와 같은, 원격 메모리/저장 장치에 저장될 수 있다. 도시된 네트워크 접속은 예시적인 것이며 컴퓨터들 간의 통신 링크를 확립하기 위한 다른 수단이 사용될 수 있음을 알 것이다.When used in a networking environment,
컴퓨터(702)는 무선 통신 환경(예를 들어, IEEE 802.11 공중 변조 기법)에서 동작 가능하게 배치된 무선 장치와 같은, 표준 IEEE 802.xx 패밀리와 같은 무선 기술을 사용하는 유선/무선 장치 또는 개체와 통신할 수 있는데, 이러한 장치는 예를 들어, 프린터, 스캐너, 데스크탑 및/또는 휴대용 컴퓨터, PDA, 통신 위성, 무선으로 검출 가능한 태그와 연관된 장비 또는 위치의 임의의 부분(예를 들어, 키오스크, 신문 스탠드, 화장실) 및 전화일 수 있다. 상기 통신은 적어도, 핫스팟용 Wi-Fi™(무선 컴퓨터 네트워킹 장치들의 상호 운용성을 인증하는 데 사용됨), WiMax 및 Bluetooth™ 무선 기술을 포함한다. 따라서, 이러한 통신은 종래의 네트워크를 갖는 사전정의된 구조일 수도 있거나, 간단히 적어도 2 개의 장치들 간의 애드 호크 통신일 수도 있다. Wi-Fi 네트워크는 IEEE 802.1x(a, b, g, 등)라는 무선 기술을 사용하여 안전하고 안정적이며 빠른 무선 연결을 제공한다. Wi-Fi 네트워크를 사용하여 컴퓨터들을 서로 연결하거나, 인터넷에 연결하거나, 유선 네트워크(IEEE 802.3 관련 기술 및 기능을 사용함)에 연결할 수 있다.
본 지속적 뷰포트 아키텍처는 가상 문서의 콘텐츠 내에서 관심-요소를 식별하기 위한 수단으로서, 상기 관심 요소는 협업 세션의 수동적 사용자 시스템 상에 표시된 가상 문서의 뷰포트 내에 존재하는, 상기 식별하는 수단; 상기 협업 세션의 능동적 사용자 시스템으로부터 상기 가상 문서의 콘텐츠에 대한 업데이트를 수신하기 위한 수단; 및 상기 능동적 사용자 시스템에 의한 상기 업데이트로 인한 상기 콘텐츠의 임의의 위치 변화에 관계없이 상기 수동적 사용자 시스템의 상기 뷰포트 내에 상기 관심-요소를 유지하기 위한 수단을 포함하는 시스템으로서 구현될 수 있다. The persistent viewport architecture includes means for identifying an element of interest within the content of a virtual document, the element of interest being present in a viewport of the virtual document displayed on a passive user system of a collaboration session; means for receiving updates about the content of the virtual document from an active user system of the collaboration session; and means for maintaining the interest-element within the viewport of the passive user system regardless of any position change of the content due to the update by the active user system.
본 지속적 뷰포트 아키텍처는, 가상 문서의 콘텐츠 내에서 관심-요소를 식별하기 위한 수단으로서, 상기 관심 요소는 협업 세션의 수동적 사용자 시스템 상에 표시된 가상 문서의 뷰포트 내에 존재하는, 상기 식별하는 수단; 상기 관심-요소에 대한 상기 뷰포트의 위치를 계산하는 수단; 상기 수동적 사용자 시스템의 상기 뷰포트의 콘텐츠 내에서 기준 요소를 식별하는 수단; 상기 협업 세션의 능동적 사용자 시스템으로부터 상기 가상 문서의 콘텐츠에 대한 업데이트를 수신하기 위한 수단; 및 상기 능동적 사용자 시스템에 의한 상기 업데이트로 인한 상기 콘텐츠의 임의의 위치 변화에 관계없이 상기 수동적 사용자 시스템의 상기 뷰포트 내에 상기 관심-요소가 포함되도록 상기 뷰포트를 유지시키기 위한 수단을 포함하는 시스템으로서 구현될 수 있다. The persistent viewport architecture includes means for identifying an element of interest within the content of a virtual document, the element of interest being present in a viewport of the virtual document displayed on a passive user system of a collaboration session; means for calculating the position of the viewport relative to the interest-element; means for identifying a reference element within the content of the viewport of the passive user system; means for receiving updates about the content of the virtual document from an active user system of the collaboration session; and means for maintaining the viewport such that the element of interest is included within the viewport of the passive user system regardless of any change in position of the content due to the update by the active user system. can
또 다른 구현예에서, 본 지속적 뷰포트 아키텍처는, 프리젠테이션의 가상 문서들의 콘텐츠 내에서의 관심-요소의 리더-특정된 식별사항을 수신하기 위한 수단으로서, 상기 관심-요소는 리더 뷰포트를 통해 리더에 의해서 지정된, 상기 수단; 상기 업데이트 컴포넌트를 통해 상기 리더-특정된 식별사항을 프로세싱하고 상기 업데이트에 따라서 청중 사용자 시스템들을 업데이트하기 위한 수단; 및 해당 청중 사용자들에 의한 상기 청중 사용자 뷰포트들에 의해 개시된 임의의 위치 변경에 관계없이 청중 사용자 뷰포트들이 상기 관심-요소를 포함하도록 상기 청중 사용자 뷰포트들을 이동시키는 수단을 포함하는 시스템으로서 구현될 수 있다. In another implementation, the present persistent viewport architecture is a means for receiving a reader-specific identification of an element of interest within the content of virtual documents of a presentation, the element of interest to a reader via a reader viewport. designated by the means; means for processing the leader-specific identification via the update component and updating audience user systems according to the update; and means for moving the audience user viewports such that they contain the interest-factor regardless of any position change initiated by the audience user viewports by the corresponding audience users. .
전술한 내용은 본 개시된 아키텍처의 예들을 포함한다. 물론, 모든 고려가능한 컴포넌트 및/또는 방법들의 조합을 기술하는 것은 가능하지 않지만, 당업자는 많은 다른 조합들 및 변경들이 가능하다는 것을 인식할 수 있다. 따라서, 본 신규한 아키텍처는 첨부된 청구 범위의 사상 및 범위 내에 있는 그러한 모든 변경사항, 변형사항 및 대체사항을 포함하는 것으로 의도된다. 또한, 용어 "포함한다"가 상세한 설명 또는 청구 범위에서 사용되는 한, 이러한 용어는 배타적이지 않게 해석되어야 하며, 이러한 바는 "포함하는"이 청구항의 전제부와 본문 간에 있는 전이어(transitional word)로서 사용되는 경우에도 그러하다.What has been described above includes examples of the disclosed architecture. Of course, it is not possible to describe every conceivable combination of components and/or methods, but one skilled in the art may recognize that many other combinations and variations are possible. Accordingly, this novel architecture is intended to embrace all such changes, modifications and substitutions that fall within the spirit and scope of the appended claims. Also, so long as the term "comprises" is used in the description or claims, such terms are to be interpreted non-exclusively, such that "comprising" is a transitional word between the preamble and the body of a claim. Even when used as
Claims (20)
가상 문서의 콘텐츠에서 관심-요소를 식별하는 단계 - 상기 관심-요소는 수동적 사용자 시스템 상에 프리젠테이션되는 상기 가상 문서의 뷰포트(viewport) 내에 존재함 - 와,
능동적 사용자 시스템으로부터 상기 가상 문서의 상기 콘텐츠에 대한 업데이트를 수신하는 단계와,
상기 업데이트가 상기 수동적 사용자 시스템 상의 상기 뷰포트에서 상기 관심-요소의 위치를 변경할지와, 상기 관심-요소가 상기 뷰포트 내에 유지되기 위해 상기 뷰포트의 위치가 조정되어야 하는지 판정하는 단계와,
상기 업데이트가 상기 수동적 사용자 시스템 상의 상기 뷰포트에서 상기 관심-요소의 위치를 변경할 것이며, 상기 관심-요소가 상기 뷰포트 내에 유지되기 위해 상기 뷰포트의 위치가 조정되어야 한다는 판정에 기초하여, 상기 수동적 사용자 시스템에 의해 업데이트 표시가 디스플레이되게 하는 단계 - 상기 업데이트 표시는 상기 업데이트를 상기 수동적 사용자 시스템에 프리젠테이션된 상기 가상 문서에 포함하는 것을 지연시키는 옵션을 제공함 - 와,
상기 업데이트 표시에 대한 응답으로 선택을 수신하는 단계와,
상기 선택 수신에 응답하여, 상기 수동적 사용자 시스템이 상기 업데이트의 입력을 지연하게 하고 상기 수동적 사용자 시스템 상에 프리젠테이션된 상기 가상 문서에 입력하기 위해 상기 업데이트를 큐잉하게 하는 단계를 포함하는,
방법.
A method in which each step is performed by a computing system,
identifying an element of interest in the content of the virtual document, the element of interest being present in a viewport of the virtual document being presented on a passive user system;
receiving updates about the content of the virtual document from an active user system;
determining whether the update changes the position of the element-of-interest in the viewport on the passive user system and whether the position of the viewport must be adjusted in order for the element-of-interest to remain within the viewport;
Based on determining that the update will change the position of the element-of-interest in the viewport on the passive user system, and that the position of the viewport must be adjusted in order for the element-of-interest to remain within the viewport, the passive user system causing an update indication to be displayed, the update indication providing an option to delay inclusion of the update in the virtual document presented to the passive user system;
receiving a selection in response to the update indication;
in response to receiving the selection, causing the passive user system to delay input of the update and queue the update for input to the virtual document presented on the passive user system.
method.
상기 관심-요소에 대한 상기 뷰포트의 위치를 계산하는 단계를 더 포함하는,
방법.
According to claim 1,
further comprising calculating the position of the viewport relative to the element-of-interest.
method.
상기 업데이트에 응답하여 상기 수동적 사용자 시스템의 상기 뷰포트의 상기 콘텐츠 내에서 기준 요소(reference element)를 식별하는 단계를 더 포함하는,
방법.
According to claim 1,
identifying a reference element within the content of the viewport of the passive user system in response to the update.
method.
상기 수동적 사용자 시스템의 상기 뷰포트 내에서의 최상단 요소를 상기 기준 요소로서 식별하는 단계를 더 포함하는,
방법.
According to claim 3,
identifying a topmost element within the viewport of the passive user system as the reference element.
method.
상기 업데이트에 응답하여 기준 요소를 식별하고 상기 뷰포트 내에 상기 관심-요소를 유지하기 위해 상기 콘텐츠에서의 오프셋을 조정하는 단계를 더 포함하는,
방법.
According to claim 1,
identifying a reference element in response to the update and adjusting the offset in the content to keep the interest-element within the viewport.
method.
해시 세트(hashset) 및 콘텐츠 요소들을 저장하는 메모리에서 상기 관심-요소를 검색하는 단계를 더 포함하는,
방법.
According to claim 1,
further comprising retrieving the interest-element in a memory that stores a hashset and content elements.
method.
상기 수동적 사용자 시스템의 대응하는 뷰포트 내에서의 상기 관심-요소의 위치를 유지하면서 상기 수동적 사용자 시스템의 애플리케이션들 간에 상기 업데이트를 동기화하는 단계를 더 포함하는,
방법.
According to claim 1,
synchronizing the update between applications of the passive user system while maintaining the position of the element-of-interest within a corresponding viewport of the passive user system.
method.
상기 뷰포트 내에 상기 관심-요소가 포함되도록 상기 뷰포트의 위치를 변위시키는 단계를 더 포함하는,
방법.
According to claim 1,
further comprising displacing the position of the viewport so that the element-of-interest is included within the viewport.
method.
상기 수동적 사용자 시스템의 상기 뷰포트의 외부에 있는, 상기 가상 문서의 부분에서 상기 업데이트를 수신하는 단계를 더 포함하는,
방법.
According to claim 1,
receiving the update at a portion of the virtual document that is outside the viewport of the passive user system.
method.
가상 문서의 콘텐츠에서 관심-요소를 식별하는 단계 - 상기 관심-요소는 협업 세션(collaboration session)의 수동적 사용자 시스템 상에 프리젠테이션되는 상기 가상 문서의 뷰포트(viewport) 내에 존재함 - 와,
상기 관심-요소에 대한 상기 뷰포트의 위치를 계산하는 단계와,
상기 수동적 사용자 시스템의 상기 뷰포트의 상기 콘텐츠에서 기준 요소를 식별하는 단계와,
상기 협업 세션의 능동적 사용자 시스템으로부터 상기 가상 문서의 상기 콘텐츠에 대한 업데이트를 수신하는 단계와,
상기 업데이트가 상기 수동적 사용자 시스템 상의 상기 뷰포트에서 상기 관심-요소의 위치를 변경할지와, 상기 관심-요소가 상기 뷰포트 내에 유지되기 위해 상기 뷰포트의 위치가 조정되어야 하는지 판정하는 단계와,
상기 업데이트가 상기 수동적 사용자 시스템 상의 상기 뷰포트에서 상기 관심-요소의 위치를 변경할 것이며, 상기 관심-요소가 상기 뷰포트 내에 유지되기 위해 상기 뷰포트의 위치가 조정되어야 한다는 판정에 기초하여, 상기 수동적 사용자 시스템에 의해 업데이트 표시가 디스플레이되게 하는 단계 - 상기 업데이트 표시는 상기 업데이트를 상기 수동적 사용자 시스템에 프리젠테이션된 상기 가상 문서에 포함하는 것을 지연시키는 옵션을 제공함 - 와,
상기 업데이트 표시에 대한 응답으로 선택을 수신하는 단계와,
상기 선택 수신에 응답하여, 상기 수동적 사용자 시스템이 상기 업데이트의 입력을 지연하게 하고 상기 수동적 사용자 시스템 상에 프리젠테이션된 상기 가상 문서에 입력하기 위해 상기 업데이트를 큐잉하게 하는 단계를 포함하는,
방법.
A method in which each step is performed by a computing system,
identifying an element of interest in the content of the virtual document, the element of interest being present in a viewport of the virtual document being presented on a passive user system of a collaboration session;
calculating the position of the viewport relative to the interest-element;
identifying a reference element in the content of the viewport of the passive user system;
receiving updates about the content of the virtual document from an active user system of the collaboration session;
determining whether the update changes the position of the element-of-interest in the viewport on the passive user system and whether the position of the viewport must be adjusted in order for the element-of-interest to remain within the viewport;
Based on determining that the update will change the position of the element-of-interest in the viewport on the passive user system, and that the position of the viewport must be adjusted in order for the element-of-interest to remain within the viewport, the passive user system causing an update indication to be displayed, the update indication providing an option to delay inclusion of the update in the virtual document presented to the passive user system;
receiving a selection in response to the update indication;
in response to receiving the selection, causing the passive user system to delay input of the update and queue the update for input to the virtual document presented on the passive user system.
method.
상기 수동적 사용자 시스템의 상기 뷰포트 내에서의 최상단 요소를 상기 기준 요소로서 식별하는 단계를 더 포함하는,
방법.
According to claim 10,
identifying a topmost element within the viewport of the passive user system as the reference element.
method.
상기 뷰포트 내에 상기 관심-요소를 유지하기 위해 오프셋에 따라 상기 뷰포트를 조정하는 단계를 더 포함하는,
방법.
According to claim 10,
further comprising adjusting the viewport according to the offset to keep the interest-element within the viewport.
method.
상기 수동적 사용자 시스템의 대응하는 협업 뷰포트 내에서의 상기 관심-요소의 위치를 유지하면서 상기 협업 세션의 일부로서 상기 수동적 사용자 시스템의 애플리케이션들 간에 상기 업데이트를 동기화하는 단계를 더 포함하는,
방법.
According to claim 10,
synchronizing the updates between applications of the passive user system as part of the collaboration session while maintaining the position of the interest-element within a corresponding collaboration viewport of the passive user system.
method.
적어도 하나의 프로세서와,
상기 적어도 하나의 프로세서에 동작 가능하게 연결되어 있으며, 상기 적어도 하나의 프로세서에 의해 실행될 경우에 상기 시스템으로 하여금 방법을 수행하게 하는 명령어가 저장되어 있는 메모리를 포함하되,
상기 방법은,
가상 문서의 콘텐츠에서 관심-요소를 식별하는 단계 - 상기 관심-요소는 수동적 사용자 시스템 상에 프리젠테이션되는 상기 가상 문서의 뷰포트(viewport) 내에 존재함 - 와,
능동적 사용자 시스템으로부터 상기 가상 문서의 상기 콘텐츠에 대한 업데이트를 수신하는 단계와,
상기 업데이트가 상기 수동적 사용자 시스템 상의 상기 뷰포트에서 상기 관심-요소의 위치를 변경할지와, 상기 관심-요소가 상기 뷰포트 내에 유지되기 위해 상기 뷰포트의 위치가 조정되어야 하는지 판정하는 단계와,
상기 업데이트가 상기 수동적 사용자 시스템 상의 상기 뷰포트에서 상기 관심-요소의 위치를 변경할 것이며, 상기 관심-요소가 상기 뷰포트 내에 유지되기 위해 상기 뷰포트의 위치가 조정되어야 한다는 판정에 기초하여, 상기 수동적 사용자 시스템에 의해 업데이트 표시가 디스플레이되게 하는 단계 - 상기 업데이트 표시는 상기 업데이트를 상기 수동적 사용자 시스템에 프리젠테이션된 상기 가상 문서에 포함하는 것을 지연시키는 옵션을 제공함 - 와,
상기 업데이트 표시에 대한 응답으로 선택을 수신하는 단계와,
상기 선택 수신에 응답하여, 상기 수동적 사용자 시스템에 대한 상기 수동적 사용자 시스템의 상기 뷰포트가 상기 업데이트의 입력을 지연하게 하고 상기 수동적 사용자 시스템 상에 프리젠테이션된 상기 가상 문서에 입력하기 위해 상기 업데이트를 큐잉하게 하는 단계를 포함하는,
시스템.
As a system,
at least one processor;
a memory operatively connected to the at least one processor and having stored therein instructions which, when executed by the at least one processor, cause the system to perform a method;
The method,
identifying an element of interest in the content of the virtual document, the element of interest being present in a viewport of the virtual document being presented on a passive user system;
receiving updates about the content of the virtual document from an active user system;
determining whether the update changes the position of the element-of-interest in the viewport on the passive user system and whether the position of the viewport must be adjusted in order for the element-of-interest to remain within the viewport;
Based on determining that the update will change the position of the element-of-interest in the viewport on the passive user system, and that the position of the viewport must be adjusted in order for the element-of-interest to remain within the viewport, the passive user system causing an update indication to be displayed, the update indication providing an option to delay inclusion of the update in the virtual document presented to the passive user system;
receiving a selection in response to the update indication;
In response to receiving the selection, cause the viewport of the passive user system to the passive user system to delay input of the update and queue the update for input to the virtual document presented on the passive user system. Including the steps of
system.
상기 방법은, 상기 관심-요소에 대한 상기 뷰포트의 위치를 계산하는 단계를 더 포함하는,
시스템.
According to claim 14,
The method further comprises calculating the position of the viewport relative to the interest-element.
system.
상기 방법은, 상기 업데이트에 응답하여 상기 수동적 사용자 시스템의 상기 뷰포트의 상기 콘텐츠 내에서 기준 요소를 식별하는 단계를 더 포함하는,
시스템.
According to claim 14,
the method further comprising identifying a reference element within the content of the viewport of the passive user system in response to the update.
system.
상기 방법은, 상기 수동적 사용자 시스템의 상기 뷰포트 내에서의 최상단 요소를 상기 기준 요소로서 식별하는 단계를 더 포함하는,
시스템.
According to claim 16,
The method further comprises identifying a topmost element within the viewport of the passive user system as the reference element.
system.
상기 방법은, 상기 업데이트에 응답하여 상기 기준 요소를 식별하고 상기 뷰포트 내에 상기 관심-요소를 유지하기 위해 상기 콘텐츠에서의 오프셋을 조정하는 단계를 더 포함하는,
시스템.
According to claim 16,
the method further comprising identifying the reference element in response to the update and adjusting an offset in the content to maintain the interest-element within the viewport.
system.
상기 방법은, 해시 세트 및 콘텐츠 요소들을 저장하는 메모리에서 상기 관심-요소를 검색하는 단계를 더 포함하는,
시스템.
According to claim 14,
The method further comprises retrieving the interest-element in a memory storing a hash set and content elements.
system.
상기 방법은, 상기 수동적 사용자 시스템의 대응하는 뷰포트 내에서의 상기 관심-요소의 위치를 유지하면서 상기 수동적 사용자 시스템의 애플리케이션들 간에 상기 업데이트를 동기화하는 단계를 더 포함하는,
시스템.
According to claim 14,
the method further comprising synchronizing the update between applications of the passive user system while maintaining the location of the element-of-interest within a corresponding viewport of the passive user system.
system.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/573,784 US10191890B2 (en) | 2014-12-17 | 2014-12-17 | Persistent viewports |
US14/573,784 | 2014-12-17 | ||
PCT/US2015/065923 WO2016100413A1 (en) | 2014-12-17 | 2015-12-16 | Persistent viewports |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170098830A KR20170098830A (en) | 2017-08-30 |
KR102545025B1 true KR102545025B1 (en) | 2023-06-16 |
Family
ID=55085912
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177016478A KR102545025B1 (en) | 2014-12-17 | 2015-12-16 | Persistent viewports |
Country Status (5)
Country | Link |
---|---|
US (1) | US10191890B2 (en) |
EP (1) | EP3234808B1 (en) |
KR (1) | KR102545025B1 (en) |
CN (1) | CN107111638B (en) |
WO (1) | WO2016100413A1 (en) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11861561B2 (en) | 2013-02-04 | 2024-01-02 | Haworth, Inc. | Collaboration system including a spatial event map |
US10126927B1 (en) * | 2013-03-15 | 2018-11-13 | Study Social, Inc. | Collaborative, social online education and whiteboard techniques |
US10409904B2 (en) * | 2014-06-26 | 2019-09-10 | D2L Corporation | Methods and systems for providing an electronic form |
US10997189B2 (en) | 2015-03-23 | 2021-05-04 | Dropbox, Inc. | Processing conversation attachments in shared folder backed integrated workspaces |
JP2018524661A (en) * | 2015-05-06 | 2018-08-30 | ハワース, インコーポレイテッドHaworth, Inc. | Virtual workspace viewport follow mode in collaborative systems |
WO2016183551A1 (en) | 2015-05-14 | 2016-11-17 | Walleye Software, LLC | Query task processing based on memory allocation and performance criteria |
US10776755B2 (en) | 2016-12-29 | 2020-09-15 | Dropbox, Inc. | Creating projects in a content management system |
US10970656B2 (en) | 2016-12-29 | 2021-04-06 | Dropbox, Inc. | Automatically suggesting project affiliations |
US10402786B2 (en) | 2016-12-30 | 2019-09-03 | Dropbox, Inc. | Managing projects in a content management system |
US10198469B1 (en) | 2017-08-24 | 2019-02-05 | Deephaven Data Labs Llc | Computer data system data source refreshing using an update propagation graph having a merged join listener |
US11126325B2 (en) * | 2017-10-23 | 2021-09-21 | Haworth, Inc. | Virtual workspace including shared viewport markers in a collaboration system |
US11226939B2 (en) * | 2017-12-29 | 2022-01-18 | Dropbox, Inc. | Synchronizing changes within a collaborative content management system |
US10929088B2 (en) * | 2019-03-19 | 2021-02-23 | Cisco Technology, Inc. | Active area of interest tracking in a multiuser digital whiteboard session |
US11042275B2 (en) | 2019-04-08 | 2021-06-22 | Microsoft Technology Licensing, Llc | Calling attention to a section of shared data |
US11205013B2 (en) | 2019-10-22 | 2021-12-21 | Microsoft Technology Licensing, Llc | Controlling disclosure of identities in communication sessions |
US11262886B2 (en) | 2019-10-22 | 2022-03-01 | Microsoft Technology Licensing, Llc | Structured arrangements for tracking content items on a shared user interface |
JP2023073154A (en) * | 2021-11-15 | 2023-05-25 | 富士通株式会社 | Display control method and display control program |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060166689A1 (en) | 2005-01-24 | 2006-07-27 | Catherine Phillips | Apparatus, and associated method, for selectably delaying synchronization of database copies in a radio communication system |
US20080168388A1 (en) | 2007-01-05 | 2008-07-10 | Apple Computer, Inc. | Selecting and manipulating web content |
US20110252339A1 (en) | 2010-04-12 | 2011-10-13 | Google Inc. | Collaborative Cursors in a Hosted Word Processor |
US20140244165A1 (en) | 2013-02-28 | 2014-08-28 | Research In Motion Limited | Repositionable graphical current location indicator |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5867156A (en) | 1995-11-08 | 1999-02-02 | Intel Corporation | Automatic viewport display synchronization during application sharing |
US6182115B1 (en) * | 1998-03-06 | 2001-01-30 | International Business Machines Corp. | Method and system for interactive sharing of text in a networked environment |
US20030179230A1 (en) * | 2002-03-25 | 2003-09-25 | Gerry Seidman | Method and apparatus for providing remote peer-to-peer collaborative user interfaces |
US8832569B2 (en) * | 2006-01-25 | 2014-09-09 | International Business Machines Corporation | Scrolling chat for participation in multiple instant messaging conversations |
US7774703B2 (en) * | 2006-02-09 | 2010-08-10 | Microsoft Corporation | Virtual shadow awareness for multi-user editors |
US7761393B2 (en) * | 2006-06-27 | 2010-07-20 | Microsoft Corporation | Creating and managing activity-centric workflow |
US8015496B1 (en) | 2007-10-26 | 2011-09-06 | Sesh, Inc. | System and method for facilitating visual social communication through co-browsing |
US8555193B2 (en) | 2008-01-17 | 2013-10-08 | Google Inc. | System for intelligent automated layout and management of interactive windows |
US8381123B2 (en) * | 2008-06-27 | 2013-02-19 | Microsoft Corporation | Positioning and realizing of virtualized visible content within a viewport |
US8108779B1 (en) * | 2008-12-16 | 2012-01-31 | Adobe Systems Incorporated | Collaborative editing operations |
US8689095B2 (en) | 2009-02-09 | 2014-04-01 | Microsoft Corporation | Grid presentation in web-based spreadsheet services |
US20100257457A1 (en) * | 2009-04-07 | 2010-10-07 | De Goes John A | Real-time content collaboration |
US8527602B1 (en) * | 2009-05-28 | 2013-09-03 | Google Inc. | Content upload system with preview and user demand based upload prioritization |
US20110010640A1 (en) * | 2009-07-10 | 2011-01-13 | Novell, Inc. | Intelligent co-browsing and co-editing |
US8850353B2 (en) | 2009-08-18 | 2014-09-30 | Siemens Aktiengesellschaft | Method and system for overlaying space-constrained display with a reference pattern during document scrolling operations |
EP2558958B1 (en) | 2010-04-12 | 2016-06-08 | Google, Inc. | Row heights in electronic documents |
US8739021B2 (en) * | 2010-11-04 | 2014-05-27 | Microsoft Corporation | Version history inside document |
US20140055400A1 (en) * | 2011-05-23 | 2014-02-27 | Haworth, Inc. | Digital workspace ergonomics apparatuses, methods and systems |
US9274642B2 (en) | 2011-10-20 | 2016-03-01 | Microsoft Technology Licensing, Llc | Acceleration-based interaction for multi-pointer indirect input devices |
US9805377B2 (en) | 2012-01-17 | 2017-10-31 | ComScore. Inc. | Unified content visibility |
US9557878B2 (en) * | 2012-04-25 | 2017-01-31 | International Business Machines Corporation | Permitting participant configurable view selection within a screen sharing session |
US9046982B2 (en) * | 2012-07-03 | 2015-06-02 | International Business Machines Corporation | Representing a graphical user interface using a topic tree structure |
US20140136960A1 (en) | 2012-11-13 | 2014-05-15 | Microsoft Corporation | Content-Aware Scrolling |
US20140215352A1 (en) * | 2013-01-29 | 2014-07-31 | Stéphane Blecon | System and method for pinnable chat message |
US9063631B2 (en) | 2013-03-15 | 2015-06-23 | Chad Dustin TILLMAN | System and method for cooperative sharing of resources of an environment |
US10067927B2 (en) * | 2013-06-14 | 2018-09-04 | Microsoft Technology Licensing, Llc | Updates to shared electronic documents in collaborative environments |
US20150120834A1 (en) | 2013-10-28 | 2015-04-30 | Samsung Electronics Co., Ltd. | Method and system for real time collaboration on a canvas |
KR102208362B1 (en) * | 2013-12-16 | 2021-01-28 | 삼성전자 주식회사 | Method and apparatus for managing message of electronic device |
CA2886485C (en) * | 2014-03-31 | 2023-01-17 | Smart Technologies Ulc | Method for tracking displays during a collaboration session and interactive board employing same |
US9983854B2 (en) * | 2014-04-21 | 2018-05-29 | LogMeln, Inc. | Managing and synchronizing views in multi-user application with a canvas |
US20150341399A1 (en) * | 2014-05-23 | 2015-11-26 | Samsung Electronics Co., Ltd. | Server and method of providing collaboration services and user terminal for receiving collaboration services |
US10277643B2 (en) * | 2014-05-23 | 2019-04-30 | Samsung Electronics Co., Ltd. | Server and method of providing collaboration services and user terminal for receiving collaboration services |
US10291664B2 (en) * | 2014-05-30 | 2019-05-14 | Brigham Young University | Collaborative project modification |
US10430432B2 (en) * | 2014-06-12 | 2019-10-01 | Brigham Young University | Collaborative product lifecycle management |
US10048841B2 (en) * | 2014-06-13 | 2018-08-14 | Brigham Young University | Collaborative project management |
US9841887B2 (en) * | 2014-08-27 | 2017-12-12 | Apple Inc. | Anchoring viewport |
US20160092420A1 (en) * | 2014-09-25 | 2016-03-31 | Osix Corporation | Computer-Implemented Methods, Computer Readable Media, And Systems For Co-Editing Content |
US10151600B2 (en) * | 2014-11-25 | 2018-12-11 | Google Llc | Systems and methods for controlling viewport movement in view of user context |
-
2014
- 2014-12-17 US US14/573,784 patent/US10191890B2/en active Active
-
2015
- 2015-12-16 WO PCT/US2015/065923 patent/WO2016100413A1/en active Application Filing
- 2015-12-16 KR KR1020177016478A patent/KR102545025B1/en active IP Right Grant
- 2015-12-16 EP EP15823447.6A patent/EP3234808B1/en active Active
- 2015-12-16 CN CN201580069224.0A patent/CN107111638B/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060166689A1 (en) | 2005-01-24 | 2006-07-27 | Catherine Phillips | Apparatus, and associated method, for selectably delaying synchronization of database copies in a radio communication system |
US20080168388A1 (en) | 2007-01-05 | 2008-07-10 | Apple Computer, Inc. | Selecting and manipulating web content |
US20110252339A1 (en) | 2010-04-12 | 2011-10-13 | Google Inc. | Collaborative Cursors in a Hosted Word Processor |
US20140244165A1 (en) | 2013-02-28 | 2014-08-28 | Research In Motion Limited | Repositionable graphical current location indicator |
Also Published As
Publication number | Publication date |
---|---|
US20160179754A1 (en) | 2016-06-23 |
EP3234808A1 (en) | 2017-10-25 |
KR20170098830A (en) | 2017-08-30 |
WO2016100413A1 (en) | 2016-06-23 |
CN107111638A (en) | 2017-08-29 |
US10191890B2 (en) | 2019-01-29 |
EP3234808B1 (en) | 2022-05-25 |
CN107111638B (en) | 2020-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102545025B1 (en) | Persistent viewports | |
US8959431B2 (en) | Low resolution placeholder content for document navigation | |
EP2883164B1 (en) | Generating scenes and tours from spreadsheet data | |
JP6293142B2 (en) | Creating variations when converting data to consumer content | |
US20160092406A1 (en) | Inferring Layout Intent | |
CN106663091B (en) | Automatic summary data population | |
EP2807549B1 (en) | Presenting data driven forms | |
US11526322B2 (en) | Enhanced techniques for merging content from separate computing devices | |
US10839148B2 (en) | Coordination of storyline content composed in multiple productivity applications | |
US11151307B2 (en) | Mapping annotations to ranges of text across documents | |
US8909665B2 (en) | Subsnippet handling in search results | |
AU2013201708A1 (en) | Electronic device and method for inputting and managing user data | |
EP3341917B1 (en) | Smart flip operation for grouped objects | |
US20160364090A1 (en) | Transitioning command user interface between toolbar user interface and full menu user interface based on use context | |
US9971483B2 (en) | Contextual-based real-time text layout conversion control and management on a mobile electronic device | |
KR20160054687A (en) | Bookmark Management Method and System Using Messenger |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |