KR20230152060A - 문서 및 미디어 url을 안전하게 공동 브라우징하기 위한 방법 및 장치 - Google Patents

문서 및 미디어 url을 안전하게 공동 브라우징하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20230152060A
KR20230152060A KR1020237031928A KR20237031928A KR20230152060A KR 20230152060 A KR20230152060 A KR 20230152060A KR 1020237031928 A KR1020237031928 A KR 1020237031928A KR 20237031928 A KR20237031928 A KR 20237031928A KR 20230152060 A KR20230152060 A KR 20230152060A
Authority
KR
South Korea
Prior art keywords
browser
browsing session
browsing
document
visitor
Prior art date
Application number
KR1020237031928A
Other languages
English (en)
Inventor
리차드 엘. 베이커
앤드류 노먼
브렌단 로넌
엘리스 올리버 존스
에드워드 에프. 하드벡
에드워드 제이. 맥고완
데보라 멘데즈
Original Assignee
글랜스 네트웍스, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 글랜스 네트웍스, 인크. filed Critical 글랜스 네트웍스, 인크.
Publication of KR20230152060A publication Critical patent/KR20230152060A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/105Multiple levels of security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/986Document structures and storage, e.g. HTML extensions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/147Digital output to display device ; Cooperation and interconnection of the display device with other functional units using display panels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/106Display of layout of documents; Previewing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/104Grouping of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/108Network architectures or network communication protocols for network security for controlling access to devices or network resources when the policy decisions are valid for a limited amount of time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/10Mixing of images, i.e. displayed pixel being the result of an operation, e.g. adding, on the corresponding input pixels
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/02Networking aspects
    • G09G2370/027Arrangements and methods specific for the display of internet documents

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Environmental & Geological Engineering (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

공동 브라우징 세션에서 문서를 안전하게 공유하는 것은 자바스크립트로 구현된 문서 뷰어가 문서 콘텐츠의 렌더링된 뷰의 HTML5 설명을 생성하고, 문서 콘텐츠의 렌더링된 뷰의 HTML5 설명을 공동 브라우징 세션에서 DOM 요소로서 전송함으로써 구현된다. 문서의 렌더링된 뷰는 공동 브라우징되는 웹 페이지 상에 오버레이되어, 공동 브라우징 세션의 참가자가 문서의 렌더링된 뷰를 공동으로 볼 수 있게 한다. 그러나, 문서 자체는 방문자의 브라우저에만 상주하므로 문서 자체가 공동 브라우징 세션에서 전송되는 것은 아니다. 미디어 URL도 공유될 수 있고, 오디오/비디오 미디어의 참가자의 뷰는 비디오가 방문자와 동기화된 상태로 각 참가자에서 로컬로 플레이되게 함으로써 동기화된다. 공동 브라우징 세션의 참가자의 라이브 비디오도 또한 구현된다.

Description

문서 및 미디어 URL을 안전하게 공동 브라우징하기 위한 방법 및 장치
관련 출원에 대한 상호 참조
본 출원은 미국 특허 가출원 번호 63/154,757(출원일: 2021년 2월 28일, 발명의 명칭: "Method and Apparatus for Securely Co-Browsing Documents and Media URLs", 전체 내용이 본 명세서에 참조에 의해 원용됨)에 대한 우선권을 주장한다.
저작권 고지
본 특허 명세서의 일부 개시 내용에는 저작권 보호 대상인 자료가 포함되어 있다. 저작권 소유자는 특허 상표청의 특허 파일 또는 기록에 나타나는 그대로 본 특허 명세서 또는 특허 개시 내용을 누군가 건식 인쇄로 복제하는 것에 대해서는 이의를 제기하지 않지만, 그 외에는 모든 저작권 권리를 보유한다.
기술 분야
본 기술 분야는 통신 세션에 관한 것으로, 보다 상세하게는 문서와 미디어 URL을 안전하게 공동 브라우징(co-browsing)하기 위한 방법 및 장치에 관한 것이다.
제1 브라우저의 콘텐츠를 지리적으로 멀리 위치된 제2 브라우저에서 공유 및 재생하는 것이 가능하다. 이를 수행하는 한 가지 방법은 제1 브라우저의 콘텐츠를 설명하는 문서 객체 모델(Document Object Model: DOM)을 제2 브라우저로 전달하는 것이다. 제2 브라우저는 제1 브라우저로부터 수신된 DOM을 사용하여 제1 브라우저의 콘텐츠를 재생성한다. 한 쌍의 컴퓨터 간에 DOM의 공유를 구현하는 것을 본 명세서에서는 공동 브라우징이라고 한다. 때때로 참가자들이 공동 브라우징 세션(co-browse session)에 참여하여 문서와 미디어 URL을 공유할 수 있게 하는 것이 유리할 수 있다. 안타깝게도 문서를 안전하게 공유하려면 예를 들어 이메일이나 파일 전송 메커니즘을 사용하거나 화면 공유 기술을 사용하여 문서 이미지를 공유하는 것에 의해 공동 브라우징 세션 외부에서 구현해야 했다. 추가로, 웹 페이지에서 렌더링된 비디오 요소의 스크럽 위치는 방문자가 페이지를 탐색하는 방식에 따라 크게 달라질 수 있어서 에이전트 측에서 동일한 비디오 요소를 플레이하는 것만으로는 두 참가자 간에 시각적 경험을 동기화하지 못할 수 있다. 혼동을 피하기 위해 공동 브라우징 세션의 에이전트 측에서는 공동 브라우징된 웹 페이지에서 비디오 요소를 렌더링하지 않도록 선택할 수 있다. 따라서, 공동 브라우징 세션에서 문서 및 미디어 URL을 안전하게 공유하기 위한 방법 및 장치를 제공하는 것이 유리할 것이다.
본 '발명의 내용'란과 '요약서'란은 아래의 상세한 설명에서 논의된 내용 중 일부 개념을 소개하기 위해 본 명세서에 제공된 것이다. 본 '발명의 내용'란과 '요약서'란은 포괄적이지 않으며, 아래 제시된 청구범위에 제시된 발명의 보호 범위를 나타내기 위해 의도된 것이 아니다.
아래에 언급된 모든 예와 특징은 기술적으로 가능한 임의의 방식으로 결합될 수 있다.
공동 브라우징 세션에서 문서를 안전하게 공유하는 것은 자바스크립트로 구현된 뷰어(viewer)가 문서의 콘텐츠로부터 문서의 렌더링된 뷰(rendered view)의 HTML5 설명(description)을 생성하고, 문서 콘텐츠의 렌더링된 뷰의 HTML5 설명을 공동 브라우징 세션의 DOM 요소로서 전송함으로써 구현된다. 문서의 렌더링된 뷰는 모달(modal)에서 공동 브라우징되는 웹 페이지 상에 오버레이되어, 이를 통해 공동 브라우징 세션의 참가자는 문서의 콘텐츠의 렌더링된 뷰를 공동으로 볼 수 있다. 그러나, 문서 자체는 방문자의 브라우저에만 상주하여서 문서 자체는 공동 브라우징 서비스, 에이전트 컴퓨터, 또는 임의의 다른 참가자의 컴퓨터에는 절대 저장되지 않는다. 공동 브라우징 세션의 임의의 참가자는 문서의 콘텐츠를 공동 브라우징 세션에서 방문자에게 전달하고 여기서 문서의 콘텐츠를 HTML5로 렌더링하고 나서 이를 공동 브라우징 세션에서 공유되는 DOM의 일부로 만드는 것에 의해 문서를 공유할 수 있다. .xls, .pdf, .docx 및 .ppt 확장자를 가진 문서를 포함하여 다수의 유형의 문서를 볼 수 있지만 이 목록은 모든 실시예를 나타내는 것이 아니다. 또한 방문자의 브라우저 내에서 실행되는 자바스크립트 기반 애플리케이션도 이러한 방식으로 공유될 수 있다. 또한 공동 브라우징 세션의 참가자 중 하나의 참가자가 미디어 URL을 선택하거나 웹사이트에 삽입하여 공유할 수 있고, 오디오/비디오 미디어의 참가자의 뷰는 비디오를 방문자와 동기화된 상태로 각각의 참가자에서 로컬로 플레이하는 것에 의해 동기화된다. 공동 브라우징 세션의 모든 참가자의 라이브 비디오도 또한 구현할 수 있다.
일 양태에서, 공동 브라우징 세션에서 문서를 안전하게 공동 브라우징하는 방법은 제1 브라우저의 콘텐츠를 설명하는 DOM과, 제1 브라우저의 콘텐츠에 대한 변경 사항을 설명하는 DOM에 대한 변경 사항이 제2 브라우저와 공유되어, 제2 브라우저가 제1 브라우저의 콘텐츠를 재생성하고 제1 브라우저의 콘텐츠와 일치하는 뷰를 가질 수 있게 하는 공동 브라우징 세션을 수립하는 단계를 포함한다. 본 방법은 공동 브라우징 세션에 포함될 문서를 선택하는 단계, 및 제1 브라우저에서 오버레이로 렌더링되는 HTML 객체를 포함하는 HTML 설명을 생성하도록 문서의 뷰를 렌더링하는 단계를 포함한다. 본 방법은 문서의 HTML 객체를 제1 브라우저의 콘텐츠를 설명하는 DOM에 통합하는 단계, 및 공동 브라우징 세션에서 HTML 객체를 DOM의 일부로서 제1 브라우저로부터 제2 브라우저로 전달하는 단계를 포함한다.
일부 구현예에서, 본 방법은 또한 파일 문서의 렌더링된 뷰의 HTML 설명을 제1 브라우저의 브라우저 RAM에 저장하는 단계, 및 공동 브라우징 세션이 종료될 때 제1 브라우저에 의해 HTML 객체를 자동으로 삭제하는 단계를 포함한다.
특정 구현예에서, 문서의 렌더링된 뷰에는 문서의 보이는 부분만이 포함된다.
일부 구현예에서, 본 방법은 또한 제1 브라우저와 제2 브라우저의 중간에 공동 브라우징 세션을 구현하는 공동 브라우징 서비스에 의해 HTML 객체를 수신하는 단계, 및 공동 브라우징 서비스에서 HTML 객체의 복사본을 저장하지 않고 HTML 객체를 제1 브라우저로부터 제2 브라우저로 전달하는 단계를 포함한다.
특정 구현예에서, 본 방법은 또한 공동 브라우징 세션에서 HTML 객체를 전송하기 전에 제1 브라우저에 의해 HTML 객체를 암호화하는 단계를 포함한다.
일부 구현예에서, 문서를 선택하는 단계는 선택된 문서의 파일 유형을 결정하는 단계; 및 제1 브라우저가 이 파일 유형을 갖는 문서를 HTML 객체로 렌더링하도록 구성된 문서 뷰어를 갖고 있는지 여부를 결정하는 단계를 포함한다. 일부 구현예에서 문서 유형은 .docx 문서, .pdf 문서, .xls 스프레드시트 및 슬라이드 프리젠테이션 중 하나이다.
특정 실시예에서, 제1 브라우저가 이 파일 유형의 문서를 HTML 객체로 렌더링하도록 구성된 문서 뷰어를 갖고 있지 않는 경우, 본 방법은 선택된 문서를 제2 파일 유형으로 변환하도록 방문자에게 프롬프트하는 단계를 더 포함한다. 다른 실시예에서, 본 방법은 또한 선택된 문서를 제2 파일 유형으로 자동으로 변환하는 단계를 포함할 수 있다. 다른 실시예에서, 본 방법은 선택된 문서 유형에 대한 문서 뷰어를 자동으로 다운로드하는 단계를 더 포함한다.
일부 구현예에서, 본 방법은 또한 제1 브라우저의 콘텐츠를 설명하는 DOM에 문서의 HTML 객체를 통합하기 전에 그리고 공동 브라우징 세션에서 HTML 객체를 DOM의 일부로서 제1 브라우저로부터 제2 브라우저로 전달하기 전에 제1 브라우저에서 로컬 미리보기(local preview)를 생성하는 단계를 포함한다.
특정 구현예에서, 본 방법은 또한 제1 브라우저의 로컬 미리보기와 관련하여 대화 상자를 제공하는 단계, 및 HTML 객체를 DOM에 포함하는 것이 대화 상자를 통해 허가된 경우에만 공동 브라우징 세션에서 제1 브라우저로부터 제2 브라우저로 HTML 객체를 DOM의 일부로 전달하기 전에 제1 브라우저의 콘텐츠를 설명하는 DOM에 문서의 HTML 객체를 통합하는 단계를 포함한다. 일부 실시예에서, 본 방법은 또한 문서의 HTML 객체를 삭제하는 단계, 및 대화 상자를 통해 허가되지 않은 경우 문서의 HTML 객체를 DOM에 통합하지 않는 단계를 포함한다.
일부 구현예에서, 제1 브라우저의 콘텐츠는 웹 페이지를 포함하고, 문서를 설명하는 HTML 객체는 제1 브라우저와 제2 브라우저에 표시된 웹 페이지의 상부에 모달에서 오버레이된다.
특정 구현예에서, 공동 브라우징 세션에 포함될 문서를 선택하는 단계는 제1 브라우저를 호스팅하는 컴퓨터에 상주하는 문서를 선택하는 단계를 포함한다.
일부 구현예에서, 공동 브라우징 세션에 포함될 문서를 선택하는 단계는 제2 브라우저를 호스팅하는 제2 컴퓨터에 상주하는 문서를 선택하는 단계, 제2 브라우저를 호스팅하는 제2 컴퓨터로부터 제1 브라우저를 호스팅하는 제1 컴퓨터로 문서의 콘텐츠를 전송하는 단계, 및 문서의 콘텐츠를 사용하여 제1 브라우저에서 HTML 객체로 문서를 렌더링하는 단계를 포함한다.
특정 구현예에서, 본 방법은 또한 선택된 문서의 복사본을 제1 브라우저를 호스팅하는 제1 컴퓨터에 저장하는 단계를 포함한다.
일부 구현예에서, 본 방법은 또한 선택된 문서의 파일 유형을 제2 브라우저에 의해 결정하는 단계, 및 제1 브라우저가 파일 유형의 문서를 렌더링하도록 구성된 문서 뷰어를 갖고 있는 경우에만 제2 브라우저에 의해 공동 브라우징 세션에 포함될 문서의 선택을 허용하는 단계를 포함한다.
특정 구현예에서, 본 방법은 또한 선택된 문서를 제2 브라우저에서 승인된 파일의 허용된 목록과 비교하는 단계, 및 선택된 문서가 승인된 파일의 목록에 있을 때에만 제2 브라우저에 의해 공동 브라우징 세션에 포함될 문서의 선택을 허용하는 단계를 포함한다.
일부 구현예에서, 본 방법은 또한 문서의 콘텐츠를 제2 브라우저를 호스팅하는 제2 컴퓨터로부터 제1 브라우저를 호스팅하는 제1 컴퓨터로 전송하기 전에 제2 컴퓨터에서 문서의 바이러스 또는 멀웨어 스캔을 수행하는 단계를 포함한다.
다른 양태에서, 스트리밍 비디오를 공동 브라우징 세션에 통합하는 방법은 제1 브라우저의 콘텐츠를 설명하는 DOM과, 제1 브라우저의 콘텐츠에 대한 변경 사항을 설명하는 DOM에 대한 변경 사항이 제2 브라우저와 공유되어, 제2 브라우저가 제1 브라우저의 콘텐츠를 재생성하고 제1 브라우저의 콘텐츠와 일치하는 뷰를 가질 수 있게 하는 공동 브라우징 세션을 수립하는 단계를 포함한다. 본 방법은 공동 브라우징 세션에서 미디어 리소스의 공개적으로 이용 가능한 위치의 URL을 공유하는 단계로서, 미디어 리소스는 스트리밍 비디오의 소스를 제공하는, 미디어 리소스의 공개적으로 이용 가능한 위치의 URL을 공유하는 단계, 공개적으로 이용 가능한 위치로부터 미디어 리소스를 검색하고 제1 브라우저에서 미디어 리소스를 로컬로 플레이하는 단계, 및 공개적으로 이용 가능한 위치로부터 미디어 리소스를 검색하고 제2 브라우저에서 미디어 리소스를 로컬로 플레이하는 단계를 포함한다. 본 방법은 또한 제1 브라우저에서 미디어 리소스를 플레이하는 것과 연관된 스트리밍 비디오 제어 정보와 스트리밍 비디오 메타데이터를 수집하는 단계; 공동 브라우징 세션에서 스트리밍 비디오 메타데이터와 스트리밍 비디오 제어 정보를 제1 브라우저로부터 제2 브라우저로 전송하는 단계; 및 제2 브라우저에 의해 스트리밍 비디오 메타데이터와 제어 정보를 사용하여 제2 브라우저에서의 미디어 리소스의 로컬 플레이와 제1 브라우저에서의 미디어 리소스의 플레이를 동기화하는 단계를 포함한다.
일부 구현예에서, 본 방법은 또한 각 참가자의 대기 시간을 검출하고 검출된 대기 시간에 기초하여 외부 오디오 소스를 로컬로 조정하여 외부 오디오 소스를 스트리밍 비디오와 동기화하는 단계를 포함한다.
특정 구현예에서, 스트리밍 비디오 메타데이터는 디스플레이되는 프레임 수를 포함한다.
일부 구현예에서 스트리밍 비디오 제어 정보는 플레이, 일시 정지(pause) 및 스크럽 동작을 포함하는 제어 동작을 포함한다.
특정 구현예에서, 본 방법은 또한 공동 브라우징 세션에서 스트리밍 비디오 메타데이터와 스트리밍 비디오 제어 동작을 제1 브라우저로부터 제2 브라우저로 전송하는 것과 연관된 전송 지연을 보상하는 단계를 포함한다.
일부 구현예에서, 전송 지연을 보상하는 단계는 제1 브라우저와 제2 브라우저의 중간에 공동 브라우징 세션을 구현하는 공동 브라우징 서비스와 제1 브라우저 사이의 제1 네트워크 지연값을 측정하는 단계, 공동 브라우징 서비스와 제2 브라우저 사이의 제2 네트워크 지연값을 측정하는 단계, 및 측정된 제1 지연값과 제2 지연값을 사용하여, 제2 브라우저에 디스플레이될 스트리밍 비디오의 프레임 수를 결정하기 위해 제2 브라우저에 의해 사용되는 스트리밍 비디오 메타데이터를 조정하는 단계를 포함한다.
특정 구현예에서, 본 방법은 또한 제2 브라우저에 의해 스트리밍 비디오 제어 동작을 입력하는 단계, 제2 브라우저에서 로컬로 플레이되는 미디어 리소스에 스트리밍 비디오 제어 동작을 로컬로 적용하는 단계, 스트리밍 비디오 제어 동작을 공동 브라우징 세션에서 제2 브라우저로부터 제1 브라우저로 전달하는 단계, 및 제1 브라우저에서 로컬로 플레이되는 미디어 리소스에 스트리밍 비디오 제어 동작을 구현하는 단계를 포함한다.
다른 양태에서, 인증되지 않은 게스트를 공동 브라우징 세션에 안전하게 입장시키는 방법은 제1 브라우저의 콘텐츠를 설명하는 DOM과, 제1 브라우저의 콘텐츠에 대한 변경 사항을 설명하는 DOM에 대한 변경 사항이 제2 브라우저와 공유되어, 제2 브라우저가 제1 브라우저의 콘텐츠를 재생성하고 제1 브라우저의 콘텐츠와 일치하는 뷰를 가질 수 있게 하는 공동 브라우징 세션을 수립하는 단계를 포함하고, 제2 브라우저는 제1 브라우저와 제2 브라우저 사이의 공동 브라우징 세션을 구현하는 공동 브라우징 서비스에 인증된 개체와 연관된다. 본 방법은 공동 브라우징 세션의 참가자 중 하나의 참가자에 의해 공동 브라우징 세션에 가입하도록 게스트 브라우저를 입장시키는 수동 프로세스를 개시하는 단계, 게스트 브라우저에 의해 게스트 액세스 웹 페이지를 로딩하는 단계로서, 게스트 액세스 웹 페이지는 게스트 이름을 입력하기 위한 제1 입력 필드를 포함하는, 로딩하는 단계, 게스트 액세스 웹 페이지의 제1 입력 필드에 게스트 이름을 입력하는 단계, 및 게스트 브라우저의 게스트 액세스 웹 페이지에 게스트 액세스 코드를 디스플레이하는 단계를 포함한다. 본 방법은 또한 게스트로부터 게스트 액세스 코드를 수신한 것에 응답하여, 공동 브라우징 서비스에 인증된 개체와 연관된 제2 브라우저의 공동 브라우징 제어부에 액세스 코드를 입력하는 단계, 및 공동 브라우징 제어부에 입력된 액세스 코드가 게스트 액세스 웹 페이지에 디스플레이된 액세스 코드와 일치하는 경우 공동 브라우징 세션에 게스트를 포함시키는 단계를 포함한다.
일부 구현예에서, 공동 브라우징 세션에 게스트를 포함시키는 단계는 공동 브라우징 세션에 가입하기 위해 게스트를 인증하는 공동 브라우징 서비스에 의해 생성된 일회성 시간 민감형 토큰과 함께 게스트 액세스 웹 페이지를 공동 브라우징 서비스 도메인 상의 페이지로 리디렉션하는 단계를 포함한다.
특정 구현예에서, 제2 브라우저는 공동 브라우징 서비스 도메인 상의 페이지를 포함하고, 게스트 액세스 웹 페이지는 공동 브라우징 서비스 도메인에 있다.
일부 구현예에서, 본 방법은 또한 게스트 액세스 웹 페이지의 URL을 제2 브라우저로부터 게스트로 전달하는 단계를 포함한다.
다른 양태에서, 웹사이트에서 방문자의 위치에 기초하고 그리고 웹사이트의 특정 양태에 대해 고객 서비스를 제공할 수 있는 에이전트의 능력에 기초하여 마스킹된 요소의 동적으로 변하는 맞춤화된 목록을 방문자에게 제공하는 방법은 방문자 브라우저의 콘텐츠를 설명하는 DOM과, 방문자 브라우저의 콘텐츠에 대한 변경 사항을 설명하는 DOM에 대한 변경 사항을 에이전트 브라우저와 공유하여 에이전트 브라우저가 방문자 브라우저의 콘텐츠를 재생성하고 방문자 브라우저의 콘텐츠와 일치하는 뷰를 가질 수 있게 하는 공동 브라우징 세션을 수립하는 단계를 포함한다. 본 방법은 방문자 브라우저에 표시된 웹사이트에서 방문자의 위치를 결정하는 단계, 에이전트의 역할을 결정하는 단계, 에이전트의 권한을 결정하는 단계, 및 에이전트의 역할과 권한에 기초하여 웹사이트의 마스킹 규칙의 동적인 목록을 생성하는 단계로서, 마스킹 규칙은, 공동 브라우징 세션에서 웹사이트의 에이전트 뷰에는 마스킹된 객체가 포함되지만, 웹사이트의 에이전트 뷰에는 마스킹된 객체의 콘텐츠가 포함되지 않도록 웹사이트의 객체 중 방문자에게 보이는 객체와, 에이전트에게 보이지 않는 객체를 지정하는, 동적 목록을 생성하는 단계를 포함한다.
다른 양태에서, 공동 브라우징 세션에 공동 브라우징 세션의 참가자의 라이브 비디오를 포함하는 방법은 제1 브라우저의 콘텐츠를 설명하는 DOM과, 제1 브라우저의 콘텐츠에 대한 변경 사항을 설명하는 DOM에 대한 변경 사항이 제2 브라우저와 공유되어, 제2 브라우저가 제1 브라우저의 콘텐츠를 재생성하고 제1 브라우저의 콘텐츠와 일치하는 뷰를 가질 수 있게 하는 공동 브라우징 세션을 수립하는 단계를 포함한다. 본 방법은 제1 브라우저를 사용하여 제1 참가자의 제1 라이브 비디오 스트림을 획득하는 단계, 제2 브라우저를 사용하여 제2 참가자의 제2 라이브 비디오 스트림을 획득하는 단계, 및 제1 라이브 비디오 스트림과 제2 라이브 비디오 스트림이 모두 제1 브라우저와 제2 브라우저 모두에 디스플레이되도록 제1 라이브 비디오 스트림과 제2 라이브 비디오 스트림을 공동 브라우징 세션에 통합하는 단계를 포함한다. 본 방법은 또한, 제1 브라우저에서, 제1 및 제2 라이브 비디오 스트림의 라이브 비디오 뷰 모드(live video viewing mode)를 선택하는 단계, 선택된 라이브 비디오 뷰 모드의 지시를 공동 브라우징 세션에서 제1 브라우저로부터 제2 브라우저로 전송하는 단계, 및 선택된 라이브 비디오 뷰 모드의 지시를 사용하여 동일한 라이브 비디오 뷰 모드를 제2 브라우저에서 구현하는 단계를 포함한다.
일부 구현예에서, 라이브 비디오 뷰 모드 중 제1 라이브 비디오 뷰 모드는 대형 형식 라이브 비디오 뷰 모드이고, 이 대형 형식 라이브 비디오 뷰 모드에서는 제1 라이브 비디오 스트림과 제2 라이브 비디오 스트림이 공동 브라우징 세션에 표시된 웹페이지에 오버레이로서 표시되고, 웹페이지는 부분적으로 회색으로 표시된다.
특정 구현예에서, 라이브 비디오 뷰 모드 중 제2 라이브 비디오 뷰 모드는 소형 형식 라이브 비디오 뷰 모드이고, 이 소형 형식 라이브 비디오 뷰 모드에서는 제1 라이브 비디오 스트림과 제2 라이브 비디오 스트림이 대형 형식 참가자 비디오 모드에 비해 크기가 감소되고, 제1 라이브 비디오 스트림과 제2 라이브 비디오 스트림은 공동 브라우징 세션에 표시된 웹페이지에 오버레이로서 표시되고, 웹페이지는 제1 라이브 비디오 스트림과 제2 라이브 비디오 스트림이 웹페이지와 상호 작용하는 동안 보일 수 있도록 부분적으로 회색으로 표시되지 않는다.
본 발명의 양태는 첨부된 청구범위에서 구체적으로 적시된다. 본 발명은 동일한 참조 부호가 유사한 요소를 나타내는 이하의 도면에서 예시로서 설명된다. 이하의 도면은 본 발명의 다양한 실시예를 단지 예시를 위한 목적으로 개시하는 것이어서, 본 발명의 범위를 제한하는 것으로 의도된 것이 아니다. 명료함을 위해 모든 도면에서 모든 구성요소에 라벨을 표시한 것은 아닐 수 있다. 도면에서,
도 1은 일부 실시예에 따라 공동 브라우징 세션에서 참가자들 사이에 문서 및 미디어 URL을 안전하게 공유할 수 있게 하는 구성요소의 네트워크의 기능 블록도이다.
도 2는 일부 실시예에 따라 공동 브라우징 세션에 표시될 문서 또는 미디어 URL을 방문자가 선택하는 방법의 흐름도이다.
도 3a는 일부 실시예에 따라 공동 브라우징 세션에 표시될 문서 또는 미디어 URL을 방문자가 선택할 수 있게 하는 것과 관련하여 구현될 수 있는 예시적인 정책 검사의 흐름도이다.
도 3b는 일부 실시예에 따라 공동 브라우징 세션에 표시될 문서를 방문자가 선택할 수 있게 하는 것과 관련하여 디스플레이될 수 있는 예시적인 방문자 그래픽 사용자 인터페이스(GUI) 요소들의 세트이다.
도 4는 일부 실시예에 따라 공동 브라우징 세션에 표시될 문서 또는 미디어 URL을 에이전트가 선택하는 방법의 흐름도이다.
도 5는 일부 실시예에 따라 공동 브라우징 세션에 표시될 문서 또는 미디어 URL을 에이전트가 선택할 수 있게 하는 것과 관련하여 구현될 수 있는 예시적인 정책 검사의 흐름도이다.
도 6a는 일부 실시예에 따라 공동 브라우징 세션에 표시될 문서 또는 미디어 URL를 방문자가 선택하는 것을 에이전트가 안내할 수 있게 하는 방법의 흐름도이다.
도 6b는 일부 실시예에 따라 문서 또는 미디어 URL을 공유하도록 방문자에 프롬프트하기 위해 에이전트가 사용할 수 있는 제어 객체를 포함하는 공동 브라우징 세션의 예시적인 에이전트 뷰이다.
도 6c는 일부 실시예에 따라 공동 브라우징 세션에서 방문자가 문서 또는 미디어 URL을 공유할 것을 요청하기 위해 에이전트가 제어 객체를 활성화할 때 보이는 공동 브라우징 세션의 예시적인 방문자(및 에이전트) 뷰이다.
도 6d는 일부 실시예에 따라 공동 브라우징 세션에서 공유할 문서 또는 미디어 URL을 선택하는 데 에이전트가 사용할 수 있는 제어 객체를 포함하고 에이전트 컴퓨터에 로컬 파일 파인더(finder)를 보여주는 공동 브라우징 세션의 예시적인 에이전트 뷰이다.
도 6e는 일부 실시예에 따라 방문자 브라우저에 의해 HTML5로 렌더링된 예시적인 문서와, 공동 브라우징 세션에서 DOM의 일부로 전송된 파일 콘텐츠의 렌더링된 뷰의 HTML5 설명을 보여주는 예시적인 스크린샷이다. 방문자와 에이전트 브라우저 모두는 문서의 동일한 뷰를 디스플레이한다.
도 7a는 일부 실시예에 따라 게스트가 기존 공동 브라우징 세션에 가입할 수 있게 하도록 설계된 예시적인 보안 입장 프로세스의 방법의 흐름도이다.
도 7b는 일부 실시예에 따라 공동 브라우징 세션에 연결할 게스트를 초대하기 위해 에이전트가 사용할 수 있는 예시적인 방법의 모음을 보여주는 블록도이다.
도 8은 일부 실시예에 따라 공동 브라우징 서비스에 인증된 추가 에이전트가 기존의 공동 브라우징 세션에 가입할 수 있게 하도록 설계된 예시적인 보안 입장 프로세스의 방법의 흐름도이다.
도 9는 일부 실시예에 따라 에이전트 권한 파라미터에 기초하여 웹사이트의 에이전트의 뷰를 마스킹하는 방법의 흐름도이다.
도 10a는 일부 실시예에 따라 공동 브라우징 세션의 참가자들 사이의 스트리밍 비디오를 동기화하는 예시적인 방법의 흐름도이다. 스트리밍 비디오의 미디어 URL은 참가자들 중 하나의 참가자에 의해 선택되어 공동 브라우징 세션에 추가되거나, 또는 참가자에 의해 능동적으로 공동 브라우징되는 웹 페이지에 포함된 요소일 수 있다.
도 10b는 일부 실시예에 따라 공동 브라우징 세션의 참가자들 간의 비디오를 동기화하는 것과 관련하여 오디오 대기 시간을 검출하고 보상하는 한 가지 방법을 도시하는 도면이다.
도 11은 일부 실시예에 따라 공동 브라우징 세션에서 오버레이된 대형 형식 라이브 참가자 뷰 비디오 스트림을 보여주는, 공동 브라우징 세션의 방문자/게스트 뷰를 우측에 두고, 공동 브라우징 세션의 에이전트 뷰를 좌측에 둔 공동 브라우징 세션의 두 가지 뷰 세트이다.
도 12는 일부 실시예에 따라 공동 브라우징 세션에서 오버레이된 소형 형식 라이브 참가자 뷰 비디오 스트림을 보여주는, 공동 브라우징 세션의 방문자/게스트 뷰를 우측에 두고, 공동 브라우징 세션의 에이전트 뷰를 좌측에 둔 공동 브라우징 세션의 두 가지 뷰 세트이다.
도 13은 일부 실시예에 따라 공동 브라우징 세션에서 최소화된 라이브 참가자 뷰 비디오 스트림 오버레이를 보여주는, 공동 브라우징 세션의 방문자/게스트 뷰를 우측에 두고, 공동 브라우징 세션의 에이전트 뷰를 좌측에 둔 공동 브라우징 세션의 두 가지 뷰 세트이다.
도 14는 일부 실시예에 따라 공동 브라우징 세션에서 방문자측 참가자 비디오를 개시하기 위해 방문자로부터 허가를 획득하는 예시적인 방법의 흐름도이다.
이하의 상세한 설명은 본 발명의 일부 실시예에 대한 완전한 이해를 제공하기 위해 수많은 구체적인 세부 사항을 제시한다. 그러나, 당업자라면 본 발명이 이러한 특정 세부 사항 없이 실시될 수 있다는 것을 이해할 수 있을 것이다. 다른 경우에, 잘 알려진 방법, 절차, 구성요소, 프로토콜, 알고리즘 및 회로는 본 발명을 모호하게 하지 않기 위해 상세하게 설명되지 않았다.
도 1은 일부 실시예에 따라 공동 브라우징 세션에서 참가자들 사이에 문서 및 미디어 URL을 안전하게 공유할 수 있게 하는 구성요소의 네트워크의 기능 블록도이다. 본 명세서에서 사용된 "방문자"라는 용어는 공동 브라우징되는 웹 세션을 갖는 고객을 의미한다. 방문자는 웹 페이지를 브라우저에 로딩하고, 방문자의 브라우저의 콘텐츠는 공동 브라우징 시스템을 통해 공동 브라우징 세션의 콘텐츠 소스가 된다. 일부 실시예에서는 다수의 방문자가 공동 브라우징 세션에 가입할 수 있다.
"에이전트"라는 용어는 본 명세서에서 공동 브라우징 시스템에 인증되었고 공동 브라우징 시스템에 의해 공동 브라우징 세션의 방문자로부터 콘텐츠를 수신하는 것이 허가된 사람을 지칭하는 데 사용된다. 다수의 에이전트가 공동 브라우징 세션에 가입할 수 있다.
"게스트"라는 용어는 본 명세서에서 공동 브라우징 시스템에 인증되지 않았지만 공동 브라우징 세션에 안전한 방식으로 입장하고 공동 브라우징 세션에서 방문자로부터 콘텐츠를 수신하는 것이 허용된 사람을 지칭하는 데 사용된다. 일부 실시예에서 게스트는 에이전트에 의해 공동 브라우징 세션에 수동으로 입장된다. 다수의 게스트가 공동 브라우징 세션에 가입할 수 있다.
"참가자"라는 용어는 본 명세서에서 공동 브라우징 세션의 모든 사용자를 지칭하는 데 사용된다. 따라서 "참가자"라는 용어는 방문자, 하나 이상의 에이전트, 및 공동 브라우징 세션에 가입하는 임의의 게스트를 지칭한다.
본 설명에 걸쳐 "방문자", "에이전트", "게스트" 및 "참가자"라는 용어는 공동 브라우징 세션(126)에 연결하기 위해 사용되는 컴퓨터 또는 모바일 디바이스를 지칭하는 데 사용된다.
도 1에 도시된 바와 같이, 일부 실시예에서 웹 서버(114)는 웹사이트(116)를 호스팅한다. 방문자(110)는 방문자 브라우저(118)를 사용하여 웹사이트(116)에 액세스하여 웹 서버(114)로부터 웹 페이지(120)를 로딩한다(화살표 1). 웹 페이지(120)는 방문자 DOM(122)에 의해 설명된다.
공동 브라우징 서비스(124)는 에이전트(112)가 에이전트 브라우저(128)에서 방문자 브라우저(118)의 콘텐츠를 볼 수 있는 공동 브라우징 세션(126)을 용이하게 한다(화살표 2 및 3). 유사하게, 게스트(111)는 공동 브라우징 세션(126)에 입장하여 게스트 브라우저(119)에서 방문자 브라우저(118)의 콘텐츠를 볼 수 있다(화살표 4).
일부 실시예에서, 웹 서버(114)로부터 방문자 브라우저(118)에 의해 로딩된 웹 페이지(120)는 공동 브라우징 자바스크립트(130)로 스크립팅된다. 대안적으로, 공동 브라우징 자바스크립트(130)는 공동 브라우징 서비스(124)로부터 방문자 브라우저(118)로 로딩될 수 있다. 공동 브라우징 세션(126)이 수립되면, 공동 브라우징 자바스크립트(130)는 방문자 브라우저(118)로부터 문서 객체 모델(방문자 DOM(122))을 캡처하고, 공동 브라우징 세션(126)에서 방문자 DOM(122)을 공동 브라우징 서비스(124)로 전달한다(화살표 2). 방문자 DOM은 방문자 브라우저(118)에 의해 로딩된 웹 페이지(120)의 객체 지향 표현이며, 이는 자바스크립트와 같은 웹 페이지의 스크립트 언어로 수정될 수 있다. 예를 들어, 아래에서 보다 상세히 논의되는 바와 같이, 자바스크립트는 HTML5를 사용하여 하나 이상의 문서의 콘텐츠를 렌더링하기 위해 방문자 브라우저(120)에서 사용될 수 있다. 공동 브라우징 세션 동안 방문자 브라우저(120)에서 문서를 HTML로 렌더링하면 문서의 동일한 뷰가 에이전트 브라우저(128)와 게스트 브라우저(119)에 보일 수 있다.
공동 브라우징 서비스(124)는 에이전트 브라우저(128)에 로딩되는 에이전트 페이지(132)를 에이전트(112)에 제공한다(화살표 3). 일부 실시예에서 에이전트 페이지(132)는 공동 브라우징 세션(126)에 에이전트의 참가를 제어하는 데 에이전트가 사용할 수 있는 에이전트 제어부(125), 에이전트 공동 브라우징 자바스크립트(134) 및 비디오 뷰어(131)를 포함한다. 게스트가 세션(126)에 있는 경우, 공동 브라우징 서비스(124)는 게스트 브라우저(119)에 로딩되는 게스트 페이지(121)를 게스트 브라우저(119)에 제공한다(화살표 4). 일부 실시예에서, 게스트 페이지(121)는 게스트가 공동 브라우징 세션(126)에 능동적으로 참가하는 능력을 제한하는 제한된 기능을 가질 수 있는 게스트 제어부(152)의 세트를 갖는다. 게스트 페이지(121)는 또한 게스트 자바스크립트(150), 비디오 뷰어(131), 및 공동 브라우징 세션에서 업데이트되고 방문자 브라우저의 콘텐츠가 게스트 브라우저(119)에서 재생성될 수 있게 하는 방문자 DOM(122)의 복사본을 포함한다. 이하의 설명은 주로 방문자와 에이전트가 공동 브라우징 세션에서 상호 작용하는 방식에 중점을 둔다.
에이전트 페이지(132)는 방문자 DOM(122)과 에이전트 공동 브라우징 자바스크립트(134)를 포함한다. 방문자(110) 상의 방문자 DOM(122)에 변경 사항이 발생함에 따라, 이러한 변경 사항은 방문자 공동 브라우징 자바스크립트(130)에 의해 캡처되고, 방문자(110)에 의해 공동 브라우징 세션(126)에서 공동 브라우징 서비스(124)로 송신되어 에이전트(112) 및 다른 참가자들에게 중계된다. 이러한 방식으로, 공동 브라우징 서비스(124)는 방문자 DOM(122)과 이 방문자 DOM(122)의 변경 사항을 공동 브라우징 세션(126) 상의 에이전트 브라우저(128) 및 다른 참가자에게 전송하여 에이전트 브라우저(128) 및 다른 참가자가 방문자 브라우저(118)의 콘텐츠와 일치하는 뷰를 가질 수 있게 한다. 이러한 특성의 예시적인 공동 브라우징 시스템에 대한 추가 세부 사항은 미국 특허 번호 9,736,214(발명의 명칭: "INTEGRATING CO-BROWSING WITH OTHER FORMS OF INFORMATION SHARING", 전체 내용이 본 명세서에 참조에 의해 원용됨)에 제공되어 있다.
도 1에 도시된 바와 같이, 일부 실시예에서, 방문자 브라우저(118)는 브라우저(소프트웨어 또는 하드웨어 가속) 비디오 뷰어(131)를 사용하여 공개적으로 볼 수 있는 URL로부터 미디어 소스를 플레이하도록 구성된 비디오 뷰어(131)를 포함한다. 일부 실시예에서, 충분한 권한을 가진 참가자는 로컬 디바이스 또는 공개적으로 볼 수 있는 웹 서버로부터 미디어 파일을 선택하고, 실시간 플레이백을 공동 브라우징 경험에 추가할 수 있다. 방문자 자바스크립트(130)는 일부 실시예에서 비디오 플레이어(131)의 메타데이터, 이벤트 및 상태를 모니터링하고, 공동 브라우징 세션(126)에서 이벤트 및 상태 정보(비디오 메타데이터)를 전송하여, 모든 참가자에 대한 스트리밍 비디오의 디스플레이를 동기화한다. 다른 참가자는 공개적으로 액세스 가능한 비디오 소스로부터 동일한 비디오를 검색하고, 메타데이터를 사용하여 자신의 비디오 뷰와 방문자의 비디오 뷰를 동기화한다. 공동 브라우징 세션에서 비디오 공유와 연관된 추가 세부사항은 도 10a 및 도 10b와 관련하여 아래에 설명된다.
방문자 공동 브라우징 자바스크립트(130)는 또한 하나 이상의 뷰어(131)를 포함하고, 각 뷰어는 특정 파일 형식을 읽고 이 파일 형식의 문서를 HTML5로 렌더링하도록 구성된다. 도 1에서 예시적인 뷰어(131)는 .xls 파일(Excel 파일)용 뷰어, .docx(Word 파일)용 뷰어, .pdf(Adobe Acrobat 파일)용 뷰어 및 비디오 뷰어를 포함한다. 단 4개의 뷰어만이 제시되지만 방문자 공동 브라우징 자바스크립트는 다양한 문서 또는 미디어 유형에 대한 다수의 뷰어를 포함할 수 있다.
일부 실시예에서, 방문자가 공유할 문서(155V)를 선택하거나 에이전트가 방문자가 공유할 문서(155A)를 선택할 때, 이 특정 파일 형식에 대한 뷰어는 파일 콘텐츠의 HTML5 설명을 생성하고 이를 방문자 브라우저(118)의 웹 페이지(120)에 대한 오버레이로서 렌더링하기 위해 방문자 브라우저(118)에서 방문자 공동 브라우징 자바스크립트(130)에 의해 선택 및 사용된다. 이를 통해 문서 렌더링을 진행 중인 공동 브라우징 세션의 일부로 볼 수 있다. HTML5 요소는 방문자의 DOM(122)의 일부가 되고, 이를 통해 공동 브라우징 세션(126)이 모든 참가자와 동일한 뷰를 공유할 수 있다. 공동 브라우징 세션의 다른 참가자 각각은 문서의 렌더링된 뷰를 브라우저에 오버레이로서 디스플레이하는 데 필요한 DOM 변경 사항과 리소스를 받는다.
문서(155V, 155A) 또는 미디어 파일의 원본 파일은 항상 방문자 컴퓨터에 남아 있다. 파일 중 방문자가 보는 부분의 렌더링만이 다른 참가자에게 송신되고 볼 수 있고, 렌더링은 웹 소켓 보안 연결을 통해 공동 브라우징 서비스에 의해 안전하게 송신된다. 렌더링은 항상 동적으로 암호화되며 결코 정적으로 암호화되지 않는다. 일부 실시예에서, 방문자 설정이 실제 문서의 공유를 허용하도록 구성된 경우, 공동 브라우징 세션의 참가자는 방문자로부터 공유 파일을 다운로드할 수 있다. 만약 공유를 허용하지 않는 경우 HTML5 요소만이 공유되고 문서는 방문자 컴퓨터에만 남아 있게 된다.
경쟁사의 공동 브라우징 서비스는 일반적으로 원본 파일을 공개적으로 볼 수 있는 서버에 업로드하고, 이 서버는 헤드리스 브라우저나 다른 플레이어에서 문서를 렌더링한 다음, 화면 공유, WebRTC 또는 기타 공동 브라우징 설명을 사용하여 참가자에게 뷰를 보낸다. 공유 파일을 공개적으로 볼 수 있는 서버에 저장하면 공유 파일이 개인 식별 정보(PII)가 공개 (주로 멀티 테넌트) 서버에 정적으로 저장될 수 있어서 보안 위험이 발생한다. 이러한 보안 위험을 완화하기 위해 이러한 유형의 아키텍처를 갖는 공동 브라우징 서비스를 사용하는 기업은 종종 내부적으로 관리되지만 공개적으로 볼 수 있는 서버에 문서 서비스를 설치하는 것에 의존한다. 이로 인해 통합, 문제 해결, 원격 관리가 복잡해지고, 소프트웨어 업데이트 프로세스가 더욱 복잡해진다. 또한 제안된 아키텍처에서는 공유 다중 테넌트 서버의 전세계 네트워크에 배포될 수 있는 가능한 확장성, 견고성, 및 글로벌 도달 범위를 손상시킬 수 있다.
본 발명의 문서/미디어 공유 아키텍처는 (1) 문서 또는 미디어 파일이 방문자(110)의 디바이스를 결코 떠나지 않고, (2) 파일이 공동 브라우징 서비스(124)에 (정적으로) 저장되지 않기 때문에 서버에 문서를 업로드하는 아키텍처보다 본질적으로 더 안전하다. 이러한 방식으로 문서를 공유할 수 있는 방법에 대한 추가 세부 사항은 도 2 내지 도 5 및 도 6a 내지 도 6e와 관련하여 아래에서 보다 상세히 논의된다.
문서를 디스플레이하는 데 필요한 리소스(CSS, 폰트, 아이콘)가 방문자의 로컬로만 발견되는 경우, 공동 브라우징 서비스의 콘텐츠 자산 관리(CAM: Content Asset Management) 시스템(180)은 각 참가자의 브라우저가 공동 브라우징 서비스(124)의 CAM 기능을 통해 방문자 브라우저로부터 이 자산을 검색할 수 있게 한다. 각 고객 사용 사례에서 CAM은 CSS, 폰트 및 아이콘과 같은 개인 식별 정보(PII)를 결코 포함하지 않는 자산 유형만을 캐시하도록 제한될 수 있다. 예시적인 공동 브라우징 시스템이 콘텐츠 자산 관리를 구현할 수 있는 방법에 대한 추가적인 세부 사항은 미국 특허 출원 번호 16/686,873(출원일: 2019년 11월 18일, 발명의 명칭: "METHOD AND APPARATUS FOR ACCESSING PROPRIETARY RESOURCES ON A CO-BROWSE SESSION", 전체 내용이 본 명세서에 참조에 의해 원용됨)에 제공되어 있다.
방문자 브라우저(118)에 의해 로딩된 웹 페이지(120)가 페이지 콘텐츠의 일부로서 리치 미디어(rich media)를 포함하는 경우가 있다. 공동 브라우징 세션의 참가자가 리치 미디어 콘텐츠의 동기화된 뷰를 가질 수 있게 하기 위해, 일부 실시예에서 공동 브라우징 자바스크립트(130)는 로컬 비디오 요소의 방문자 렌더링의 메타데이터/상태를 판독하고, 공동 브라우징 세션에서 방문자 렌더링의 메타데이터/상태를 전송할 것이다. 예시적인 메타데이터 및 상태/이벤트 정보에는 현재시간(방문자의 현재 플레이백 위치), 미디어의 높이와 폭, 및 기타 많은 속성이 포함될 수 있다. 예시적인 상태/이벤트 정보에는 플레이, 일시 정지, 종료, 진행률, 속도 변경, 검색, 정지, 일시 중지, 볼륨 변경, 대기 및 기타 다양한 이벤트가 포함될 수 있다. 에이전트 자바스크립트(134)는 리치 미디어에 대한 메타데이터/상태 정보를 사용하여 리치 미디어의 에이전트의 뷰 및 리치 미디어의 다른 참가자의 뷰를 방문자의 뷰와 로컬로 동기화한다. 이러한 방식으로 모든 참가자는 리치 미디어를 로컬로 렌더링하지만 방문자와 동기적으로 렌더링하여 각 참가자의 미디어 뷰가 방문자의 뷰와 동기화된 상태에 유지되는 것이 보장된다.
도 2는 일부 실시예에 따라 공동 브라우징 세션에 표시될 파일을 방문자가 선택하는 방법의 흐름도이다. 도 2에 도시된 바와 같이, 블록(200)에서 방문자와 참가자는 웹사이트를 공동 브라우징하고 별도로 오디오로 통신한다. 그런 다음 방문자는 공유할 문서나 미디어 파일을 선택한다(블록(205)). 문서는 엑셀 파일, 워드 파일, .pdf 파일, 모기지 계산기와 같은 자바스크립트 구현 애플리케이션, 공개적으로 볼 수 있는 미디어 파일, JPEG/BMP/PNG 파일과 같은 이미지 또는 기타 수많은 유형의 콘텐츠일 수 있다. 선택적으로, 방문자가 공유할 파일을 선택할 때, 방문자 자바스크립트는 콘텐츠의 뷰가 공동 브라우징 세션의 참가자에게 송신되기 전에, 예를 들어, 선택된 문서의 미리보기(블록(210))를 방문자에게 보여주기 위해 하나 이상의 정책 검사를 구현한다(도 3a 참조).
파일이 선택되어 공유하기에 적합하다고 결정되면, 파일 유형에 맞는 뷰어(131)를 사용하여 파일의 콘텐츠를 HTML5로 렌더링한다. 공동 브라우징 서비스(124), 웹 페이지(120)와 관련된 웹 서버(114), 또는 다른 신뢰할 수 있는 소스로부터 다운로드된 뷰어는 방문자 브라우저(118)에서 자바스크립트를 사용하여 구현된다(블록(215)). 파일의 렌더링은 방문자의 브라우저 창(220) 위에 오버레이로 디스플레이된다. 일부 실시예에서 렌더링된 파일은 모달에서 웹 페이지(120) 상부에 디스플레이된다. 파일 콘텐츠의 렌더링된 뷰의 HTML5 설명은 방문자 DOM의 일부가 되며, 방문자로부터 공동 브라우징 세션(225)의 참가자에게 전송된다.
일부 실시예에서, 파일 콘텐츠의 렌더링된 뷰의 HTML5 설명은 방문자 브라우저의 로컬 저장소가 아닌 방문자 브라우저 RAM에 저장되어서, 공동 브라우징 세션이 종료될 때 파일을 렌더링하는 데 사용된 데이터가 방문자 브라우저(118)에 의해 자동으로 해제된다(블록(230)). 사용자가 공동 브라우징 세션(126)에 표시하고 있는 파일은 결코 방문자의 컴퓨터 외부로 전송되지 않는다. 오히려, 공동 브라우징 세션의 참가자는 공동 브라우징 세션의 일부로서 파일의 렌더링을 볼 수 있지만 파일 콘텐츠의 복사본을 갖고 있지는 않다(블록(235)). 일부 실시예에서, 뷰어는 방문자가 보고 있는 파일의 일부만을 렌더링하여 볼 수 있는 파일 부분만을 렌더링하고 공동 브라우징 세션으로 전송한다. 다른 실시예에서, 뷰어는 전체 문서를 HTML5로 렌더링하고 공동 브라우징 세션의 다른 참가자에게 동일한 뷰를 렌더링하기에 충분한 모든 HTML5 요소(그리고 CAM 시스템(180)을 통해 필요한 임의의 로컬 리소스)를 전송한다.
추가로, 공동 브라우징 서비스는 파일 콘텐츠의 뷰를 렌더링하는데 필요한 DOM/HTML5 요소를 저장하지 않고 파일 콘텐츠의 렌더링된 뷰의 HTML5 설명을 방문자로부터 참가자에게 전송한다(블록(240)). 방문자로부터의 DOM 업데이트는 예를 들어 웹 소켓 보안을 사용하여 전송 시 암호화되며, 파일 콘텐츠의 렌더링된 뷰를 설명하는 DOM 요소는 공동 브라우징 서버에서 결코 정적으로 존재하지 않는다.
공동 브라우징 서비스(124)는 모든 (인증된) 참가자에게 파일 콘텐츠의 렌더링된 뷰의 HTML 설명을 다지점으로 표시하고, 이들 참가자의 브라우저는 완벽한 해상도와 확장성을 통해 문서 또는 미디어 URL의 뷰를 로컬로 렌더링한다. 따라서, 제한된 해상도를 가질 수 있고 공동 브라우징 서비스(124) 내에서 상당한 대역폭을 소비할 수 있는 선택된 문서의 콘텐츠를 화면 공유하기 위해 비디오 코덱을 사용하는 것이 아니라, 뷰어를 사용하여 파일 콘텐츠의 렌더링된 뷰의 HTML5 설명을 생성하고, 이 설명이 공동 브라우징 세션의 일부가 됨으로써 이를 통해 모든 참가자가 문서 파일이 방문자의 디바이스(110) 내에 안전하게 유지되도록 하면서 공동 브라우징 세션에서 문서 콘텐츠의 완벽하게 렌더링된 뷰를 볼 수 있게 된다.
일부 실시예에서, 에이전트(들), 방문자 및 선택적으로 게스트는 방문자, 에이전트 및 게스트 공동 브라우징 자바스크립트(130, 134, 150)를 사용하여 구현된 제스처 도구를 사용하여 보이는 문서에서 제스처를 할 수 있다. 에이전트(112)는 원격으로 페이지를 전진시키고 원격으로 문서를 스크롤하여 에이전트가 공동 브라우징 세션에서 원격으로 문서의 이동을 관리할 수 있는 권한을 가질 수 있다. 제스처는 일시적이거나 영구적일 수 있으며, 라인, 올가미(lasso), 타이핑된 정보 또는 기타 형태의 제스처와 같은 그래픽 요소를 포함할 수 있다. 방문자 또는 권한이 있는 임의의 참가자는 구현예에 따라 제스처를 저장하거나 문서를 인쇄할 수 있다.
도 3a는 일부 실시예에 따라 공동 브라우징 세션에 표시될 문서 또는 미디어 URL을 방문자가 선택할 수 있게 하는 것과 관련하여 구현될 수 있는 예시적인 정책 검사의 흐름도이다. 도 3a에 도시된 바와 같이, 방문자가 파일 파인더, 파일 피커(picker)를 사용하거나 공동 브라우징 세션과 연관된 모달에 파일을 드래그/드랍(drag/drop)하여 문서나 미디어 URL(155V)을 선택할 때(블록(300)), 방문자 공동 브라우징 자바스크립트(130)는 방문자가 허용된 파일 유형을 선택한 것을 보장하기 위해 특정 활동을 수행할 수 있다. 예를 들어, 도 3a에 도시된 바와 같이, 방문자 공동 브라우징 자바스크립트(130)는 파일 확장자 유형에 기초하여 검사를 수행하여 방문자가 이러한 유형의 파일을 렌더링하도록 구성된 뷰어를 가지고 있는지 여부를 결정할 수 있다(블록(305)). 방문자에 의해 선택된 파일 유형을 처리하도록 구성된 뷰어가 방문자에게 없는 경우, 다른 파일을 선택하거나 선택한 파일을 지원되는 파일 유형으로 변환하도록 방문자에 프롬프트할 수 있고, 예를 들어, 선택한 파일을 .pdf 형식으로 인쇄하도록 방문자에 프롬프트하거나, 선택한 파일을 .pdf로 자동으로 변환하고 파일의 .pdf 버전을 공유할 수 있다.
일부 실시예에서, 예를 들어 방문자 자바스크립트(130)를 다운로드하는 것과 관련하여 방문자가 공동 브라우징 세션(126)에 가입할 때 하나 이상의 이용 가능한 뷰어가 방문자에게 다운로드된다. 예를 들어, 일반적으로 공유되는 파일 유형에 대한 뷰어는 방문자 자바스크립트(130)를 다운로드하는 것과 관련하여 자동으로 다운로드될 수 있다. 추가적으로, 일부 구현예에서, 방문자 공동 브라우징 자바스크립트(130)는 뷰어가 볼 파일을 선택할 때 공동 브라우징 서비스(124)로부터 올바른 유형의 뷰어를 동적으로 다운로드하도록 구성될 수 있다. 파일 유형에는 많은 유형이 있다. 파일을 보기 위한 뷰어를 동적으로 다운로드함으로써, 방문자는 가능한 모든 파일 유형에 대한 뷰어를 다운로드할 필요가 없고, 공동 브라우징 세션에서 공유할 문서가 선택될 때까지 기다린 다음, 파일 유형과 방문자 브라우저 유형에 따라 필요한 뷰어를 동적으로 다운로드할 수 있다.
일부 실시예에서, 방문자가 보기 위한 파일(155V)을 선택할 때, 뷰어는 공동 브라우징 세션에서 파일 콘텐츠의 렌더링된 뷰의 HTML5 설명을 다른 참가자에게 전송하지 않고 렌더링된 파일의 미리보기를 방문자에게 보여준다(블록(310)). 이를 통해 방문자는 선택한 파일을 공유하기 전에 볼 수 있고, 방문자가 올바른 파일을 선택한 것을 확인하고, 방문자가 이 파일에서 원하는 위치로 스크롤할 수 있게 할 수 있다. 방문자 공동 브라우징 자바스크립트는 일부 실시예에서 파일 미리보기 디스플레이와 관련된 대화 상자를 방문자에게 제공하여 방문자가 표시된 파일이 공동 브라우징 세션의 모든 참가자에게 송신될 수 있음을 확인하거나 파일 공유 활동을 취소할 수 있게 한다(블록(315)). 방문자가 취소를 클릭하면 렌더링이 삭제되고 공동 브라우징 세션에서 전송되지 않는다(블록(320)). 방문자가 확인을 클릭하면(블록(325)), 파일 콘텐츠의 렌더링된 뷰를 설명하는 HTML5가 공동 브라우징 세션(126)의 참가자에게 전송된다. 문서의 경우, 각각의 참가자는 문서 콘텐츠의 HTML5 로컬 렌더링을 본다(블록(330)). 비디오 URL 또는 자바스크립트 기반 애플리케이션과 같은 다른 미디어 유형의 경우, 공동 브라우징 서비스(124)는 각각의 참가자가 미디어의 정확하고 로컬로 확장 가능한 재생산을 로컬로 렌더링하는 것을 보장한다(블록(335)). 오디오/비디오 미디어가 처리되는 특정 방식은 도 10a와 관련하여 아래에서 보다 상세히 설명된다.
일부 실시예에서, 문서는 웹 페이지(120) 상부에 오버레이된 모달로 디스플레이되고, 능동적으로 공동 브라우징되고 있는 기본 웹 페이지(120)는 모든 참가자에 대해 부분적으로 회색으로 표시된다. 다수의 문서가 공동 브라우징 세션에서 동시에 공유될 수 있지만, 일부 실시예에서는 주어진 시간에 최대 하나의 문서에만 초점이 맞춰진다. 다수의 문서가 방문자 브라우저에 로딩된 경우 참가자는 문서 간에 앞뒤로 토글하여 문서 중에서 초점을 맞춰 공동 브라우징 세션에서 오버레이로 보이는 문서를 전환할 수 있다.
도 3b는 일부 실시예에 따라 공동 브라우징 세션에서 표시할 문서를 방문자가 선택할 수 있게 하는 것과 관련하여 디스플레이될 수 있는 예시적인 방문자 GUI 요소의 세트를 포함하는 예시적인 그래픽 사용자 인터페이스(GUI)(375)이다. 도 3b에 도시된 바와 같이, 일부 실시예에서 방문자 사용자 인터페이스는 예를 들어 아이콘을 터치하거나 클릭함으로써 사용자가 선택할 수 있는 제1 아이콘(350)을 포함한다. 일부 실시예에서, 방문자가 제1 아이콘(350)과 상호 작용할 때, 모달(360)이 방문자 브라우저에서 열린다. 사용자는 이미 공유된 문서 또는 미디어 URL의 썸네일 중 하나를 모달(도 3b에서 .pdf, .xls, JPEG, MP4로 라벨이 붙은 상자)에서 선택하거나, 모달의 영역(365)으로 파일을 드래그하고 드랍하거나, 또는 제어부(370)를 사용하여 공동 브라우징 세션에 추가할 새로운 문서 또는 새로운 미디어 URL을 (브라우저의 기본 파일 피커를 사용하여) 선택할 수 있다.
도 4는 일부 실시예에 따라 공동 브라우징 세션에 표시될 문서 또는 미디어 URL을 에이전트가 선택하는 방법의 흐름도이다. 도 4에 도시된 바와 같이, 참가자는 웹사이트(116)에서 방문자의 경험을 공동 브라우징하고 있다(블록(400)). 그런 다음 에이전트는 공유할 파일 또는 미디어 URL을 선택한다(블록(405)). 선택적으로, 선택된 문서 또는 미디어 URL의 뷰가 공동 브라우징 세션 참가자에게 송신되기 전에, 문서 미리보기와 같은 하나 이상의 정책 검사가 도 5와 관련하여 보다 상세히 설명된 바와 같이 파일에 대해 구현될 수 있다(블록(410)).
에이전트가 파일을 선택하면, 에이전트 공동 브라우징 자바스크립트(134)는 파일의 콘텐츠를 공동 브라우징 세션에서 방문자(110)에게 전송한다(블록(415)). 방문자 공동 브라우징 자바스크립트(130)는 파일 유형에 맞는 뷰어(131)를 사용하여 파일의 콘텐츠를 방문자 브라우저(118)에 의해 HTML5로 로컬로 렌더링한다(블록(420)). 뷰어(131)는 방문자 브라우저에서 자바스크립트를 사용하여 구현되고, 방문자가 선택한 파일을 (도 2와 관련하여 위에서 설명한 바와 같이) 렌더링하는 것과 동일한 방식으로 파일을 렌더링한다. 구체적으로, 에이전트에 의해 선택된 파일은 방문자 브라우저(118)가 파일 콘텐츠의 HTML5 설명을 로컬로 생성할 수 있도록 하는 데 사용되고, HTML5 렌더링된 뷰는 공동 브라우징 세션의 일부로서 방문자의 브라우저 웹페이지(120)에 오버레이로서 디스플레이된다(블록(425)). 파일의 파일 콘텐츠의 렌더링된 뷰를 설명하는 HTML5는 공동 브라우징 세션(126)에서 에이전트를 포함한 다른 모든 참가자에게 전송된다. 에이전트(155A)로부터의 파일 콘텐츠 자체는 방문자 브라우저(118)에게만 송신되고, 여기서 이 파일 콘텐츠는 브라우저의 자바스크립트 RAM에 일시적으로 캐시되지만 공동 브라우징 서비스(124)를 구현하는 서버에는 결코 정적으로 저장되지 않는다.
에이전트에 의해 선택된 파일의 콘텐츠를 에이전트로부터 방문자로 전송한 다음, 공동 브라우징 세션에서 공유 DOM의 일부로서 파일 콘텐츠의 렌더링된 뷰의 HTML5 설명을 방문자가 전송함으로써, 공동 브라우징 세션의 콘텐츠 원본을 변경하지 않고도 공동 브라우징 세션의 모든 참가자가 에이전트에 의해 선택된 파일을 볼 수 있다. 구체적으로 에이전트가 문서를 로컬로 렌더링하고 DOM 공유 또는 화면 공유를 개시하여 공동 브라우징 세션의 소스가 되도록 하는 것이 아니라, 에이전트는 문서의 콘텐츠를 공동 브라우징 세션의 방문자 브라우저(118)에 전달하여, 방문자가 공동 브라우징 세션의 모든 공유 콘텐츠의 유일한 소스로 남아 있을 수 있게 한다. 또한, 방문자는 파일 콘텐츠의 로컬 복사본을 RAM에 갖고 있기 때문에 방문자는 (권한을 통해) 파일의 복사본을 로컬에 저장하거나, 원하는 경우 파일을 로컬로 인쇄할 수 있다(블록(435)). 마지막으로 공동 브라우징 서비스는 예를 들어 웹소켓 보안을 사용하여 에이전트로부터 방문자로 파일을 안전하게 전송하고, 그런 다음 파일의 복사본을 공동 브라우징 서비스(124)의 서버에 업로드하지 않고 파일 콘텐츠의 렌더링의 HTML5 설명을 방문자로부터 참가자로 전송한다(블록(445)). 이는 공동 브라우징 서비스(124)가 공유 문서에 포함될 수 있는 PII를 절대 정적으로 저장하지 않는 것을 보장한다. 방문자 브라우저(110)만이 파일 콘텐츠의 복사본을 취득하고, 방문자 브라우저 RAM에 파일 콘텐츠를 저장한다. 방문자(110)가 공동 브라우징 세션을 종료하면 콘텐츠를 캐싱하는 브라우저 RAM이 방문자의 운영 체제에서 해제된다. 이는 PII(개인 식별 정보)가 포함될 수 있는 공유 콘텐츠를 공개적으로 볼 수 있는 서버에 업로드하는 대체 아키텍처보다 본질적으로 더 안전하다.
도 5는 일부 실시예에 따라 공동 브라우징 세션에 표시될 파일을 에이전트가 선택할 수 있게 하는 것과 관련하여 구현될 수 있는 몇 가지 예시적인 정책 검사의 흐름도이다. 에이전트는 에이전트의 고용주가 공동 브라우징 세션에서 공유를 원치 않는 파일에 액세스할 수 있다. 예를 들어, 일부 파일은 방문자와 공유해서는 안 되는 내부 자료와 관련이 있을 수 있다. 추가로 에이전트는 하나의 방문자의 파일을 다른 방문자와 공유하는 것이 금지될 수 있다. 예를 들어, 은행 업무 상황에서 에이전트는 개인의 은행 명세서를 잘못된 사람과 공유하고 싶지 않을 것이다. 따라서, 일부 실시예에서는 에이전트가 공유하도록 선택한 파일이 적절하게 조사되는 것을 보장하기 위해 검사 세트를 구현한다. 도 5는 예시적인 정책 검사 세트를 보여주지만, 구현예에 따라 도 5에 도시된 정책 검사에 더하여 또는 이 정책 검사의 대안으로 다른 정책 검사를 구현할 수 있다.
도 5에 도시된 바와 같이, 에이전트가 파일 파인더, 파일 피커를 사용하여 파일을 선택하거나 또는 파일이나 URL을 모달에 스트리밍 비디오로 드래그/드랍하여 파일을 선택할 때(블록(500)), 일부 실시예에서 파일 유형에 기초하여 검사를 수행하여 선택된 파일이 방문자에 의해 처리될 수 있는지 여부를 결정한다(블록(505)). 예를 들어, 문서 확장자 파일 유형에 기초하여 검사를 수행하여 방문자 자바스크립트에 이 파일 유형의 문서를 렌더링하도록 구성된 문서 뷰어가 있는지 여부를 결정할 수 있다. 만약 문서 뷰어가 없는 경우, 예를 들어 공동 브라우징 세션에서 렌더링할 문서를 방문자에게 전송하기 전에 다른 문서를 선택하도록 에이전트에게 프롬프트하거나 또는 선택된 문서를 .pdf 파일로 인쇄하도록 에이전트에게 프롬프트함으로써 방문자 자바스크립트가 지원하는 파일 유형으로 문서를 내보내도록 에이전트에게 프롬프트할 수 있다.
추가로, 일부 실시예에서 에이전트 자바스크립트의 API는 에이전트가 선택된 파일을 공유할 권한을 갖고 있는 것을 검증하기 위해 정책 서버를 호출하는 데 사용된다(블록(510)). 정책 서버는 예를 들어 에이전트 ID, 에이전트의 역할, 에이전트의 권한, 웹사이트에서 방문자의 위치 및 방문자 ID에 기초할 수 있는, 에이전트가 공유할 수 있는 승인된 파일의 허용된 목록에 대해 선택한 파일을 검사한다(블록(515)). 일부 실시예에서, 에이전트에는 문서의 미리보기와, 문서의 콘텐츠를 방문자에게 송신하기 전에 확인/취소할 수 있는 능력이 제공된다(블록(517)). 선택적으로, 파일이 에이전트로부터 방문자로 실제로 전송되기 때문에 파일의 콘텐츠나 파일에 대한 메타데이터는 공동 브라우징 자바스크립트(130) API를 통해 회사 스캐너로 전송되어 PII 또는 가능한 바이러스/멀웨어를 검사할 수 있다(블록(520)). 파일이 모든 정책 검사를 통과하면 에이전트에 의해 선택된 파일의 콘텐츠가 공동 브라우징 세션에서 방문자 브라우저(118)로 전송되고(블록(525)) 그런 다음 방문자 브라우저는 에이전트에 의해 선택된 파일의 콘텐츠를 로컬로 HTML5로 렌더링하고, 방문자에 의해 선택된 파일을 방문자가 로컬로 렌더링하고 디스플레이한 것과 동일한 방식으로 파일의 렌더링된 뷰를 디스플레이할 것이다. 파일이 하나 이상의 정책 검사에 실패하면 에이전트에 의해 선택된 파일은 공동 브라우징 세션에서 방문자에게 전송되지 않고, 에이전트에는 실패 이유가 통보된다(블록(525)).
도 6a는 일부 실시예에 따라 공동 브라우징 세션에 표시될 파일을 방문자가 선택하는 것을 에이전트가 안내할 수 있게 하는 방법의 흐름도이다. 일부 실시예에서, 에이전트는 예를 들어 에이전트 공동 브라우징 자바스크립트(134)를 사용하여 구현된 에이전트 제어부(125) 중 하나의 제어부에 있는 버튼을 클릭함으로써 공동 브라우징 세션에서 공유할 문서를 선택하도록 방문자에게 프롬프트할 수 있다(블록(600)). 에이전트가 문서 공유를 개시하면 모달이 방문자 브라우저에서 열리고(블록(605)) 에이전트(및 다른 참가자)는 이를 공동 브라우징 경험(126)의 일부로 보게 된다. 그런 다음 에이전트는 파일을 피킹하는 방법이나 문서를 모달에 드래그-드랍하는 위치를 방문자에게 안내할 수 있다.
모달이 열리면, 일부 실시예에서 방문자는 선택된 문서를 모달 위로 드래그하고 드랍함으로써 공유할 문서를 선택할 수 있다(블록(610)). 이것이 일어나면 파일 미리보기가 방문자에게 제공되고 도 3a와 관련하여 설명된 정책 검사가 선택적으로 수행된다(도 2의 블록(210)). 방문자(110)의 뷰어(131)는 파일 콘텐츠의 렌더링된 뷰를 생성하고, 파일의 렌더링된 뷰의 HTML5 설명 및 연관된 자산은 방문자 DOM의 일부가 되어 공동 브라우징 세션의 모든 참가자에게 전송된다(블록(615)). 특히, 방문자 자바스크립트(130)에 구현된 파일 뷰어(131)를 사용하여 선택된 파일을 렌더링하고, 렌더링된 콘텐츠를 방문자의 브라우저에 오버레이로서 디스플레이하고, 파일 콘텐츠의 렌더링된 뷰의 HTML5 설명을 방문자 DOM(122)의 일부로서 공동 브라우징 세션에서 모든 참가자에게 전송한다.
사용자가 파일을 선택하는 또 다른 방법은 파일을 브라우징하는 것이다. 예를 들어, 일부 실시예에서, 방문자의 브라우저에서 열리는 모달(블록(605))은 "파일 찾기" 또는 유사한 라벨이 붙은 버튼(블록(620))을 포함한다. 방문자가 "파일 찾기" 버튼을 클릭하면 파일 관리자(윈도우즈 파일 선택 도구) 또는 파인더(애플 파일 선택 도구)가 브라우저에서 로컬로 열린다(블록(625)). 파일 선택 도구의 콘텐츠는 자바스크립트(130)에서 액세스될 수 없으므로 참가자는 파일 피커에 의해 노출된 잠재적인 PII를 볼 수 없다. 파일 관리자/파인더는 브라우저 사용자 인터페이스(UI) 내에서 열리지만 DOM 외부에서는 열리므로 이 단계는 참가자에게 보이지 않는다. 예를 들어, 방문자의 컴퓨터에서 파일 관리자/파인더가 열리면 에이전트는 방문자의 파일 구조나 방문자의 파일 중 임의의 파일을 볼 수 없다. 따라서 에이전트는 파일 관리자/파인더와 상호 작용할 수 없는 데, 이는 공동 브라우징 세션 외부에 있어서 중요한 방문자 프라이버시를 보호하기 때문이다. 방문자가 파일을 선택하면(블록(630)) 문서 미리보기가 생성되고, 파일은 선택적으로 도 3a(도 2의 블록(210))와 관련하여 설명된 정책 검사를 통해 전달된 다음, 문서의 콘텐츠가 공동 브라우징 세션에서 보여질 수 있다(블록(615)).
도 6b는 일부 실시예에 따라 문서를 공유하거나 문서를 공유하도록 방문자에게 프롬프트하는 데 에이전트가 사용할 수 있는 제어부(650)를 포함하는 공동 브라우징 세션에서 에이전트 페이지(132)의 에이전트 뷰의 예시적인 스크린샷이다. 에이전트가 문서 공유 제어부(650)를 선택하면 에이전트 페이지(132)에 문서 공유 대화 상자(660)가 디스플레이된다. 문서 공유 대화 상자(660)는 일부 실시예에서 에이전트가 공동 브라우징 세션에서 공유하도록 선택할 수 있는 허용된 문서 목록을 나타내는 썸네일 세트를 갖는다. 대화 상자(660)는 또한 방문자에게 문서 공유를 요청하는 데 에이전트가 사용할 수 있는 버튼(662)과, 공동 브라우징 세션(126)에서 공유할 문서를 브라우징하는 데 에이전트가 사용할 수 있는 버튼(664)을 포함한다. 에이전트는 에이전트가 언제든지 표시하도록 선택할 수 있는 이미 업로드된 문서의 썸네일 목록으로부터 문서를 선택할 수 있으며, 에이전트는 또한 파일을 대화 상자(660)의 영역(665)으로 드래그하고 드랍하여 문서가 공동 브라우징 세션에서 공유되도록 할 수 있다.
도 6c는 일부 실시예에 따라 공동 브라우징 세션에서 방문자가 문서를 공유하도록 요청하기 위해 에이전트가 제어부(버튼(662))를 활성화할 때 방문자(120)와 에이전트(132) 모두뿐만 아니라 임의의 다른 참가자에게 보이는 공동 브라우징 세션의 예시적인 스크린샷이다. 도 6c에 도시된 바와 같이, 에이전트가 버튼(662)을 활성화하면, 모달(670)이 방문자 브라우저(118)에 보인다. 모달(670)은 방문자 DOM(122)의 일부이기 때문에 모달은 공동 브라우징 세션에서 방문자에 의해 공유되므로 에이전트 뷰(132) 및 모든 참가자에게도 보일 것이다. 방문자는 선택된 파일을 모달(670)의 영역(680)으로 드래그/드랍할 수 있고, 또는 "파일 선택" 버튼(675)을 사용하여 도 3b와 관련하여 위에서 설명된 파일 관리자/파인더 유틸리티를 사용하여 파일을 선택할 수 있다. 파일이 선택되면, 일부 실시예에서 파일의 미리보기가 생성되고, 이 미리보기는 방문자가 공동 브라우징 세션에서 문서의 포함을 확인하거나 취소하는 데 사용할 수 있는 제어부를 포함한다.
도 6d는 공동 브라우징 세션에 포함될 문서를 브라우징하기 위해 에이전트가 문서 공유 대화 상자(660)의 버튼(664)을 선택할 때 표시되는 공동 브라우징 세션의 에이전트 뷰의 예시적인 스크린샷이다. 위에서 언급된 바와 같이, 일부 실시예에서 에이전트는 공동 브라우징 세션에 포함할 문서를 선택하는 데 에이전트가 사용할 수 있는 대화 상자(660)를 열 수 있다. 에이전트가 버튼(664)을 선택하면 에이전트가 문서를 선택하는 데 사용할 수 있는 파일 파인더/파일 피커 창(680)이 에이전트의 브라우저에서 열린다. 대화 상자(660)를 사용하면 에이전트는 문서, 자바스크립트 애플리케이션, 이미지 파일, 공개적으로 볼 수 있는 미디어 클립에 대한 URL, 또는 기타 콘텐츠 형태를 포함하여 다수의 유형의 콘텐츠의 방문자 브라우저의 로컬 렌더링을 공유할 수 있다.
도 6e는 일부 실시예에 따라 방문자 브라우저에 의해 웹사이트의 오버레이로서 렌더링되고 공동 브라우징 세션에서 전송되는 예시적인 문서를 보여주는 예시적인 스크린샷이다. 방문자, 에이전트 및 게스트 브라우저는 문서에서 정확히 동일한 부분의 뷰를 디스플레이한다. 도 6e에 도시된 바와 같이, 일부 실시예에서 선택된 문서는 공동 브라우징된 웹 페이지(120)의 상부에 모달로 표시되고, 문서가 디스플레이되고 있는 동안 능동적으로 공동 브라우징된 웹 페이지(132)가 부분적으로 회색으로 표시된다. 페이지 넘김 제어부(문서 양쪽에 있는 화살표(690R, 690L))는 문서의 페이지 간을 이동하는 데 사용된다. 문서는 또한 페이지 내에서 위/아래로 스크롤될 수도 있고, 페이지 상부의 줌 "+" 및 "-" 버튼(692)을 사용하여 뷰의 크기가 조정될 수 있다. 저장, 인쇄, 주석 달기, 필드 편집, 서명 등을 포함하여 자바스크립트 뷰어(131)가 지원하는 임의의 도구를 구현할 수 있다. 이러한 도구는 방문자에 의해, 에이전트가 공유 제어부를 갖고 있는 경우 에이전트에 의해, 그리고 선택적으로 충분한 권한이 제공되는 경우 다른 참가자에 의해 로컬로 사용될 수 있다.
도 7a는 일부 실시예에 따라 게스트가 기존 공동 브라우징 세션에 가입할 수 있게 하도록 설계된 예시적인 보안 입장 프로세스의 방법의 흐름도이다. 허가된 게스트가 공동 브라우징 세션에 가입할 수 있도록 하는 것이 유리한 많은 시나리오가 있다. 예를 들어 배우자, 친척, 변호사, 회계사 등이 공동 브라우징 세션에 안전하게 가입하여 방문자와 에이전트가 보고 있는 것과 동일한 콘텐츠를 볼 수 있도록 하는 것이 바람직할 수 있다.
도 7a에 도시된 바와 같이, 에이전트와 방문자가 공동 브라우징 세션에 참여하고(블록(700)), 에이전트가 공동 브라우징 서비스에 대해 인증되었다(블록(705))고 가정한다. 일부 실시예에서, 에이전트가 공동 브라우징 서비스(124)에 대해 인증되었다는 사실은 에이전트가 공동 브라우징 세션에 대해 수동으로 인증하는 것을 게스트에 허용하는 능력을 에이전트에 제공하는 데 활용된다. 수동 인증은 악의적인 제3자가 가로챌 수 있는 공동 브라우징 세션의 링크를 이메일로 보내는 것보다 더 안전하다.
게스트가 공동 브라우징 세션에 가입하도록 요청할 때(블록(710)) 에이전트는 에이전트 제어부(125)의 버튼을 클릭하여 게스트를 공동 브라우징 세션에 입장시키는 수동 프로세스를 개시한다. 일부 실시예에서, 게스트를 공동 브라우징 세션에 입장시키는 수동 프로세스는 게스트가 세션에 가입하기 위해 사용할 수 있는 게스트 정보를 송신하는 것을 포함한다(블록(715)). 게스트가 이미 대역 외 브리지 전화 통화 중이고 게스트(들)와 에이전트가 서로 대화하고 있다고 가정한다. 예를 들어, 에이전트는 버튼을 클릭하여 게스트 입장 프로세스를 시작할 수 있다. 클릭하면 각각의 게스트를 공개적으로 볼 수 있는 웹 페이지로 안내하는 다양한 방식을 제공하는 모달이 열린다. 에이전트는 company.com의 웹사이트처럼 보이도록 설계된 company.glance.net과 같은 브랜드의 "공동 브라우징 URL"일 수 있는 웹페이지로 게스트를 구두로 안내할 수 있다. 또는 이는 guide.company.com과 같은 회사 도메인 상의 페이지에 대한 URL일 수 있으며, 이는 자동으로 공동 브라우징 서비스 도메인 상의 회사 브랜드 페이지로 리디렉션된다(블록(717)).
대안적으로 에이전트는 게스트에게 URL을 SMS, 채팅, 문자 또는 이메일로 보낼 수 있다. SMS를 탭핑하면 자동으로 게스트의 디바이스가 오디오 브리지(audio bridge)에 연결될 수 있다. 채팅이나 이메일에는 게스트가 스마트폰 카메라로 볼 수 있는 QR 코드가 포함될 수 있으며, 이는 자동으로 음성 브리지에 전화를 걸 수 있다. 또는 랜딩 페이지에는 오디오 브리지에 전화를 거는 방법에 대한 지침이 포함될 수 있다. 공동 브라우징 세션과 별도로 오디오 스트림을 사용함으로써, 오디오는 공동 브라우징 서비스(124)에 의해 제공되는 병렬 오디오 서비스를 사용하는 것이 아니라 용이성, 경제성, 보안 및 규정 준수를 위해 기존 기업 전화 통화 라우팅 및 브리징 인프라를 통해 에이전트와 연관된 기업에 의해 호스팅될 수 있다.
게스트는 음성 세션에 가입하고 그 브라우저를 공동 브라우징 URL로 안내한다(블록(720)). 게스트가 공동 브라우징 URL로부터 웹 페이지를 로딩하면 웹 페이지는 에이전트 페이지(132)와 동일한 도메인인 공동 브라우징 서비스 도메인에서 공동 브라우징 서비스로부터 제공된다. 이는 (인증된) 게스트가 공동 브라우징 세션을 볼 수 있도록 하는 데 필요하다.
웹 페이지는 게스트의 이름을 요청한 다음, company.co-browse service.net 웹페이지에서 세션에 가입하려고 현재 시도하는 모든 게스트에게 고유한 약 4 내지 6자리 숫자 길이의 액세스 코드를 제공한다(블록(725)). 게스트는 음성 호출 시 에이전트에 대한 액세스 코드를 읽어주고(블록(730)), 에이전트는 액세스 코드를 에이전트 시스템에 타이핑한다(블록(735)). 공동 브라우징 서비스(124)는 액세스 코드를 검증하고, 공동 브라우징 세션(126)에 가입하기 위해 게스트(111)를 인증하는 공동 브라우징 서비스(124)에 의해 생성된 일회성 시간 민감형 토큰과 함께 게스트 브라우저(119)를 공동 브라우징 서비스 도메인의 페이지로 리디렉션한다(블록(740)).
악의적인 게스트도 또한 company.glance.net을 방문하여, 실행 가능하고 회사에 고유한 액세스 코드를 볼 수 있다. 그러나 사람이 이 회사의 활성 공동 브라우징 세션에서 에이전트에게 코드를 구두로 알려주지 않는 한, 이 코드는 쓸모가 없다. 따라서 액세스 코드는 company.com에서 웹사이트(116)에 대한 지원을 제공하는 에이전트에 대한 세션에 가입하기 위해 현재 대기 중인 모든 게스트를 구별할 수 있을 만큼만 길면 된다. 에이전트가 구두로 KYC(Know Your Customer)를 수행하고 게스트(111)를 입장시키기 위해 코드를 수동으로 타이핑하는 것에 의해 보안이 강화된다. 에이전트(112)의 이 순간 구두 KYC 수동 단계로 인해 액세스 코드는 매우 짧더라도 악의적인 게스트에게는 쓸모가 없다. 이는 2단계 인증의 한 형태이다.
다른 공동 브라우징 서비스는 게스트에게 링크를 보내고, 게스트는 이를 클릭하여 입장할 수 있다. 링크를 가로채는 사람은 누구나 세션에 참여할 수 있으므로 이는 본질적으로 안전하지 않는다. 게스트가 에이전트에 대한 코드를 제공하도록 요구하고, 에이전트가 공동 브라우징 세션 동안 코드를 입력하도록 요구함으로써 공동 브라우징 서비스에서 에이전트의 인증 상태를 활용하여 허가된 게스트만을 안전하게 입장시킬 수 있다.
도 7b는 일부 실시예에 따라 공동 브라우징 세션에 연결하도록 게스트를 초대하기 위해 에이전트가 사용할 수 있는 방법의 예시적인 모음을 도시한다. 도 7b에 도시된 바와 같이, 일부 실시예에서 에이전트는 공동 브라우징 URL을 게스트에 보내지는 채팅 스트림 또는 문자 메시지에 복사/붙여넣음으로써 공동 브라우징 URL을 게스트에게 전달할 수 있다(블록(792)). 에이전트는 또한 에이전트 시스템에 게스트 전화번호를 타이핑할 수 있으며, 이를 통해 에이전트 시스템은 게스트에게 자동으로 전화를 걸어 공동 브라우징 URL을 갖는 문자 메시지를 게스트에게 보낸다(블록(794)). 에이전트는 또한 버튼을 클릭하여 공동 브라우징 URL 및 선택적으로 오디오 세션에 대한 전화 접속 정보를 갖는 이메일을 게스트에게 보낼 수 있다(블록(796)). 에이전트는 또한 게스트에게 공동 브라우징 URL로 이동하도록 구두로 초대할 수도 있다(블록(798)). 따라서, 에이전트가 게스트를 수동으로 초대하여 공동 브라우징 세션에 가입시키는 방법은 많이 있으며, 도 7b에 도시된 방법의 모음은 단지 예시적으로 제공된 것이다.
도 8은 일부 실시예에 따라 게스트와 달리 공동 브라우징 서비스(124)에 이미 인증된 추가 에이전트가 제1 에이전트의 허가 없이 활성 공동 브라우징 세션에 가입할 수 있게 하도록 설계된 예시적인 입장 프로세스의 흐름도이다. 도 8에서 에이전트와 방문자는 공동 브라우징 세션에 참여한다(블록(800)). 추가 에이전트는 다양한 방식으로 즉시 세션에 가입할 수 있다.
제1 에이전트는 종종 공동 브라우징 서비스(124) 외부의 일부 방법을 사용하여 제2 에이전트에게 알린다. 예를 들어 제1 에이전트는 채팅, 슬랙(Slack)을 사용하거나 일부 내부 프로세스를 사용하여 제2 에이전트에게 방문자와의 상호 작용에 가입해야 함을 알릴 수 있다. 제2 에이전트는 CRM 또는 콜센터 데스크톱에서 활성 상호 작용을 조회할 수 있다. 또는 제1 에이전트가 공동 브라우징 세션 키를 식별하는 메타데이터가 포함된 링크를 보낼 수 있다. 에이전트가 공동 브라우징 세션을 찾아 가입하는 몇 가지 예시적인 방법에 대한 추가 정보는 미국 특허 번호 9,736,213(발명의 명칭: "INTEGRATING CO-BROWSING WITH OTHER FORMS OF INFORMATION SHARING", 전체 내용이 본 명세서에 참조에 의해 원용됨)에 개시되어 있다. 이러한 메커니즘 중 임의의 메커니즘을 사용하면 다른 에이전트가 인증된 에이전트로서 할 수 있는 권한을 갖고 있기 때문에 제2 에이전트가 세션을 단순히 직접 클릭하기만 하면 된다.
일부 실시예에서, 제1 에이전트는 제2 에이전트를 음성 통화에 추가한 다음, 제1 에이전트가 공동 브라우저 뷰어에서 언제든지 볼 수 있는 공동 브라우징 세션 키를 에이전트에게 알릴 수 있다. 키는 일반적으로 4 내지 6자리 숫자의 활성 세션 식별자이다. 마찬가지로, 일부 실시예에서 인증된 감독자는 예를 들어 에이전트에게 안내를 "속삭이거나" 단순히 품질을 모니터링하도록 에이전트(들)에게 알리거나 알리지 않고 공동 브라우징 세션에 "조용히" 가입할 수 있다.
제1 에이전트는 음성 세션에 제2 에이전트를 추가하고, 공동 브라우징 세션을 식별하는 4 내지 6자리 숫자의 공동 브라우징 세션 ID 코드를 제2 에이전트에게 제공한다(블록(805)). 그런 다음 인증된 제2 에이전트는 공동 브라우징 세션 ID 코드를 사용하여 공동 브라우징 세션을 찾고 가입한다(블록(815)). (이것은 (블록(725))에서 언급된 4 내지 6자리 숫자의 액세스 코드가 아니라는 점에 유의해야 한다.) 선택적으로, 제2 에이전트가 공동 브라우징 세션에 가입하려고 할 때, 예를 들어 공동 브라우징 세션 ID 코드가 에이전트에게 이용 가능한 경우, 제1 에이전트는 공동 브라우징 서비스에 의해 제2 에이전트가 세션에 가입할 수 있게 해 달라고 요청받을 수 있다(블록(810)). 추가로 인증된 에이전트가 활성 공동 브라우징 세션에 대한 에이전트 권한이 있는 참가자로 가입할 수 있게 하는 데 다수의 다른 연결 시나리오도 마찬가지로 이용 가능할 수 있다.
일부 실시예에서, 공동 브라우징 세션(126)은 방문자(110)가 세션을 떠나는 순간 종료되며, 이는 세션 동안 공유된 문서 콘텐츠를 일시적으로 캐싱하기 위해 방문자 브라우저(118)에서 사용된 메모리를 즉시 해제한다. 따라서, 공유 문서나 미디어 소스에 포함된 PII는 세션이 종료된 후 정적으로 콘텐츠로 남아 있지 않는다. 마지막 남은 에이전트가 떠나면 세션도 종료된다. 게스트는 마음대로 오고 갈 수 있지만, 도 7a와 관련하여 논의된 바와 같이 가입할 때마다 유효한 (랜덤한) 액세스 코드를 사용하여 에이전트와 구두로 인증해야 한다. 일부 실시예에서, 공동 브라우징 서비스는 공동 브라우징 세션에서 제1, 제2, 제3, ... 에이전트를 구별하지 않거나, 방문자 및 게스트와의 상호 작용과 관련된 에이전트의 역할을 제어하지 않는다. 세션을 계속하려면 적어도 하나의 에이전트가 존재하여야 하며, 각각의 에이전트는 이 에이전트가 운영하는 콜센터에서 수립한 규칙에 기초하여 제공된 역할에 따라 권한을 갖게 된다. 따라서, 공동 브라우징 시스템은 에이전트가 수행하는 역할과 무관하며, 에이전트가 운영하는 콜센터의 기존 전송 프로세스에 따라 다수의 에이전트가 방문자와 상호 작용하며 가입, 전송 및 상승될 수 있다.
도 9는 일부 실시예에 따라 에이전트 권한 파라미터에 기초하여 웹사이트의 에이전트의 뷰를 마스킹하는 방법의 흐름도이다. 일부 웹사이트는 수백 또는 수천 페이지로 매우 복잡하며, 특정 에이전트는 웹사이트의 하위 세트에서만 방문자에게 지원을 제공하도록 허가될 수 있다. 예를 들어, 보험 회사는 주택 보험, 건강 보험, 생명 보험을 제공할 수 있다. 특정 에이전트는 올바른 건강 보험 보장 범위를 찾는 것과 관련하여 방문자에게 지원을 제공할 수 있는 라이센스를 받을 수 있지만 주택 보험이나 생명 보험을 구입하려는 방문자에게 지원을 제공하도록 훈련받지는 않았을 수도 있다.
도 9에서, 상이한 에이전트는 웹사이트(116)의 상이한 부분에 대해 지원을 제공하는 권한이 서로 달라, 주어진 에이전트가 웹사이트의 일 양태에 대해서는 지원을 제공하는 권한을 부여받을 수 있지만 웹사이트의 다른 양태에 대해서는 방문자 지원을 제공하는 권한을 부여받지 않았을 수 있다고 가정한다(블록(900)). 일부 실시예에서, 에이전트 자바스크립트(134)의 API는 내부 company.com 정책 서버를 호출하여 특정 에이전트의 역할과 권한에 기초하여 이 순간 웹사이트(116)의 마스킹 규칙(통상적으로 CSS 선택기)의 목록, 및 공동 브라우징될 웹 페이지에서 방문자의 위치를 수집하기 위해 사용된다(블록(905)). 공동 브라우징에서 마스킹을 사용하면 웹사이트의 특정 요소의 콘텐츠가 방문자에게 보일 수 있지만 에이전트에게는 보이지 않을 수 있고, 마스킹된 요소 자체는 일반적으로 에이전트 페이지(132)에 보일 수 있지만 마스킹된 요소의 콘텐츠는 방문자 브라우저(118)를 결코 떠나지 않으며, 마스킹된 요소의 콘텐츠는 에이전트에게는 보이지 않을 수 있다. 이러한 방식으로 PII는 공동 브라우징 서비스(124)의 어떤 부분에도 결코 영향을 미치지 않는다. 예를 들어, 방문자 브라우저(118)의 웹 페이지(120)가 방문자의 사회 보장 번호를 보여주는 요소를 포함하는 경우, 이 요소의 콘텐츠는 에이전트가 방문자의 사회 보장 번호를 보는 것을 방지하기 위해 마스킹될 수 있다. 유사하게 회사는 "구매"와 같은 활동 버튼을 마스킹할 수 있다. 에이전트는 버튼을 볼 수 있지만 에이전트가 제어부를 공유하더라도 에이전트는 버튼을 클릭할 수 없다.
일부 실시예에 따르면, 정책 서버는 에이전트의 신원, 웹사이트에서 에이전트의 위치를 검사하고, 에이전트 ID 및 웹사이트에서 에이전트의 위치에 기초하여 마스킹된 요소의 목록을 동적으로 제공하고, 에이전트가 지원을 제공하는 것이 허가되지 않은 웹사이트의 마스킹 규칙(전형적으로 CSS 선택기)의 맞춤화된 목록을 반환한다(블록(910)). 일부 실시예에서, API로부터 에이전트에 의해 수신된 마스킹 규칙은 방문자 공동 브라우징 자바스크립트(130)로 송신되고, 방문자 공동 브라우징 자바스크립트(130)가 초기 DOM을 공동 브라우징 참가자에게 보내기 전에 적용된다. 이렇게 하면 에이전트가 지원할 권한이 없는 콘텐츠를 보는 것을 방지할 수 있다. 또한 이 PII 콘텐츠는 공동 브라우징 서비스(124)에 결코 영향을 미치지 않는다. 이를 방문자 브라우저(118)에 대해 완전히 로컬이라고 한다.
도 10a는 일부 실시예에 따라 공동 브라우징 세션의 참가자들 사이에 스트리밍 비디오 경험을 동기화하는 예시적인 방법의 흐름도이다. 화면 공유 기술을 사용하여 공동 브라우징 세션에서 방문자로부터 참가자에게 전송해야 하는 정보의 양이 상대적으로 많기 때문에 기존에 공동 브라우저에서는 비디오를 구현하기가 어려웠다.
일부 실시예에 따르면, 방문자로부터 비디오의 화면 공유를 캡처하여 공동 브라우징 세션에서 에이전트와 게스트에 전송하는 대신, 각각의 참가자는 공동 브라우징 세션 동안 볼 수 있는 공개적으로 이용 가능한 비디오 소스에 로컬로 액세스한다. 방문자와 다른 참가자 각각은 로컬로 비디오를 플레이한다. 방문자는 다른 모든 참가자에게 비디오가 플레이되는 방식에 대한 마스터 제어부 역할을 하여 비디오의 디스플레이가 모든 참가자에 대해 동기화되도록 한다.
도 10a에 도시된 바와 같이, 공동 브라우징 세션과 관련하여 비디오가 디스플레이되어야 하는 경우(블록(1000)), 공개적으로 이용 가능한 비디오 위치(URL)가 공동 브라우징 세션의 모든 참가자에게 전송된다(블록(1005)). 각 참가자의 비디오 뷰어(131)는 비디오 스트림의 공개 서버에 로컬로 연결된다(블록(1010)). 그런 다음 각 참가자는 로컬로 동시에 비디오 플레이를 시작한다. 각 참가자는 공개적으로 이용 가능한 비디오 소스로부터 직접 비디오를 검색하고 로컬로 비디오 플레이를 시작하기 때문에, 공동 브라우징 세션 동안 디스플레이될 비디오를 포함하면 공동 브라우징 세션(126)을 통한 비디오의 전송을 요구하지 않아서 공동 브라우징 서비스의 대역폭 요구 사항을 줄일 수 있다. 아마도 보다 중요한 것은 수많은 불리한 네트워크와 디바이스 조건에도 불구하고 스트리밍 비디오를 신뢰성 있게 렌더링하는 방법을 구현하기 위해 브라우저에 수년에 걸쳐 투자한 모든 노력이 각 참가자의 비디오 뷰어(131)에 의해 호출될 수 있고 이 참가자의 순간 네트워크와 디바이스 제약에 대해 최적화될 수 있다는 것이다. 모든 참가자에게 동일한 콘텐츠를 화면 공유하는 공동 브라우징 서비스는 업무를 잘 수행하기 위해 이러한 모든 트릭을 구현해야 한다. 제안된 방법은 중복된 (그리고 지속적인) 개발 노력을 피한다.
각 참가자의 비디오를 동기화하기 위해, 일부 실시예에서 방문자의 비디오 뷰는 마스터로서 사용되고 다른 모든 참가자에게 디스플레이되는 비디오는 방문자의 뷰와 동기화된다. 예를 들어, 일부 실시예에서 방문자 비디오 뷰어(131)는 HTML5 비디오 태그를 사용하여 미디어를 플레이하고, 이는 디스플레이되는 프레임 수와 같은 메타데이터, 플레이, 일시 정지, 스크럽 동작 및 이벤트와 같은 제어 동작을 방문자 공동 브라우징 자바스크립트(130)에 노출한다(블록(1015)). 이 맥락에서 스크럽 동작은 비디오의 플레이백 위치를 새로 선택된 위치로 수동으로 이동하는 것을 의미하는 데 사용된다. 방문자 공동 브라우징 자바스크립트(130)는 관련 메타데이터 및 제어 동작을 공동 브라우징 세션의 참가자에게 전달한다(블록(1020)).
참가자는 참가자 사이트에 표시된 비디오 프레임을 방문자 사이트에 표시된 동일한 비디오 프레임과 동기화하기 위해 메타데이터 및 제어 동작을 사용한다(블록(1025)). 선택적으로, 예를 들어 방문자로부터 네트워크를 통해 에이전트/게스트에게 메타데이터를 전송하는 것과 연관된 특정 전송 지연을 대역 외 브리지 전화 통화에 존재하는 예상 지연과 일치시키도록 취함으로써 네트워크 지연을 위해 에이전트와 게스트의 비디오 뷰를 동기화할 수 있다(블록(1030)). 선택적으로, 네트워크 지연은 또한 공동 브라우징 서비스를 통해 측정될 수 있으며, 방문자에게 표시되는 비디오 프레임과 에이전트/게스트의 프레임 동기화를 보다 정확하게 조정하는 데 사용될 수도 있다.
도 10b는 일부 실시예에 따라 공동 브라우징 세션의 참가자 간의 비디오를 동기화하는 것과 관련하여 오디오 대기 시간을 검출하고 보상하는 한 가지 방법을 도시하는 도면이다. 도 10b에 도시된 바와 같이, 공동 브라우징 세션의 각 참가자는 스트리밍 비디오 소스로부터 오디오/비디오 미디어 파일의 스트림을 로컬로 수신한다. 일부 실시예에서, 각각의 동기화된 참가자(i)는 방문자로부터 참가자까지의 참가자의 오디오 경로에 대해 고유하고 동적인 대기 시간(Li)을 모니터링한다(블록(1050)). 도 10b에서, 방문자로부터 에이전트까지의 네트워크 경로에 대한 제1 대기 시간 값(L1)이 있고, 방문자로부터 게스트까지의 네트워크 경로에 대한 제2 대기 시간 값(L2)이 있다고 가정한다.
참가자(i) 비디오 스트리밍 비디오 뷰어(131)는 검출된 대기 시간(Li)과 일치하도록 비디오 플레이백을 지속적으로 조정하여, 참가자가 비디오와 동기화된 브리지된 전화 통화를 통해 방문자 뷰어(131)로부터 오디오를 들을 수 있도록 한다(블록(1055)). 일부 경우에, 방문자의 뷰어(131)는 브리지된 통화를 통해 오디오를 전송하지 않거나 매우 적게 오디오를 전송할 수 있다. 만약 그렇다면, 참가자는 참가자의 비디오 뷰어(131)에서 오디오를 활성화하고 아마도 일시적으로 전화 오디오를 음소거하도록 방문자에게 프롬프트한 후 이를 로컬로 듣는 것을 선택할 수 있다(블록(1060)).
도 10a에 도시된 바와 같이, 충분한 권한을 가진 참가자는 참가자의 브라우저에서 로컬로 플레이되는 비디오에 대한 제어 동작을 발행할 수 있다(블록(1035). 예를 들어, 방문자, 게스트 또는 에이전트는 비디오 플레이 시작, 일시 정지, 재시작 또는 새로운 시간적 비디오 위치로의 스크럽 등의 제어 동작을 발행할 수 있다. 모든 제어 동작은 참가자 자바스크립트에 의해 로컬로 캡처되고, 다른 참가자에 의해 구현되도록 공동 브라우징 세션(126)으로 전달된다. 제어 동작을 로컬로 구현함으로써 활동을 하는 참가자는 대기 시간을 느끼지 않으며, 공동 브라우징 세션에서 제어 동작을 전송하면 공동 브라우징 세션의 모든 참가자가 다른 모든 참가자와 동기화를 유지할 수 있다.
스트리밍 비디오(위에 설명됨)에 더하여 방문자, 에이전트 및 게스트의 라이브 비디오를 공동 브라우징 세션에서 오버레이로서 공동 브라우징 세션에 추가할 수 있다. 일부 실시예에 따르면, 라이브 비디오가 방문자 브라우저의 대부분(대형 형식 라이브 비디오)을 차지하거나, 방문자 브라우저의 작은 구획(소형 형식 라이브 비디오)을 차지하거나, 또는 방문자 브라우저에서 최소 면적(도구 모음만 있고 비디오는 없는 최소화된 형식)을 차지하도록 최소화되도록 방문자, 에이전트 및 게스트의 라이브 비디오를 제어할 수 있다. 모드에 관계없이 모든 참가자에게는 방문자가 보는 것과 동일한 형식의 라이브 비디오가 제공된다. 이러한 방식으로 라이브 비디오로 인해 숨겨질 수 있는 임의의 공동 브라우징된 콘텐츠를 모든 사람이 알 수 있다. 일반적으로, 방문자와 에이전트(및 가능하게는 다른 참가자)는 공동 브라우징 또는 공유 문서 콘텐츠를 드러내기 위해 디폴트로 모드를 대형 형식으로 변경하거나 소형 형식 또는 최소화된 형식 오버레이로 전환하는 권한을 갖는다. 이 권한이 없으면 방문자가 아닌 참가자가 의도치 않게 라이브 비디오 플레이어에서 다룬 콘텐츠에 대해 논의해야 할 때마다 마찰이 발생한다.
도 11은 일부 실시예에 따라 공동 브라우징 세션에 오버레이된 대형 형식 참가자 비디오 스트림을 보여주는, 공동 브라우징 세션의 대형 형식 에이전트 뷰를 좌측에 두고, 공동 브라우징 세션의 방문자/게스트 뷰를 우측에 둔 공동 브라우징 세션의 두 가지 뷰 세트이다. 도 11에 도시된 바와 같이, 일부 실시예에서 대형 형식으로 제공될 라이브 비디오를 선택하면 공동 브라우징 세션에서 공동 브라우징되고 있는 기본 웹 페이지(120)가 배경에서 부분적으로 흐려지게 된다. 이를 통해 참가자는 웹사이트가 아닌 라이브 비디오에 집중할 수 있지만, 웹사이트는 여전히 참가자의 스크롤 활동과 같은 활동에 응답한다. 방문자 뷰에서는 방문자 카메라의 소형 디스플레이와, 모든 다른 참가자의 더 대형 뷰가 방문자에게 제공된다. 에이전트 뷰에서는 에이전트 카메라의 소형 디스플레이와, 모든 다른 참가자의 더 대형 뷰가 에이전트에게 제공된다. 최소화/최대화 버튼을 클릭하면 대형 형식(도 11)과 소형 형식(도 12) 간에 토글된다.
도 12는 일부 실시예에 따라 공동 브라우징 세션에 오버레이된 소형 형식 참가자 비디오 스트림을 보여주는, 공동 브라우징 세션의 에이전트 뷰를 좌측에 두고, 공동 브라우징 세션의 방문자/게스트 뷰를 우측에 둔 공동 브라우징 세션의 두 가지 뷰 세트이다. 도 12에 도시된 바와 같이, 소형 형식 라이브 비디오 모드를 선택하면 비디오 오버레이의 크기가 줄어들면서 여전히 웹 페이지(120)에 대한 오버레이로서 구현된다. 그러나, 웹 페이지(120)는 더 이상 부분적으로 회색으로 표시되지 않아 참가자가 웹 페이지를 동시에 보고 상호 작용할 수 있으면서도 여전히 서로를 볼 수 있다. 공동 브라우징 세션(126)에 다수의 참가자가 있는 경우, 제한된 수의 참가자의 라이브 비디오 스트림이 라이브 비디오 오버레이에 표시될 수 있다. 일부 실시예에서 에이전트는 항상 방문자에게 표시되고, 에이전트와 방문자는 다른 게스트에게 표시되지만, 다른 참가자의 뷰는 각 사람에 의해 스크롤될 수 있다. 일부 실시예에서 비디오 오버레이의 위치는 에이전트, 방문자 또는 충분한 권한을 가진 다른 참가자에 의해 이동되어 웹 페이지에 재배치될 수 있으며, 예를 들어 비디오 오버레이 아래에 위치된 웹 페이지(120)의 일부에 액세스하거나 일부를 보는 것이 가능하다.
도 13은 일부 실시예에 따라 공동 브라우징 세션에서 최소화된 비디오 스트림 오버레이를 보여주는, 공동 브라우징 세션의 에이전트 뷰를 좌측에 두고, 공동 브라우징 세션의 방문자/게스트 뷰를 우측에 둔 공동 브라우징 세션의 두 가지 뷰 세트이다. 도 13에 도시된 바와 같이, 비디오 오버레이가 각 방문자와 에이전트 뷰의 왼쪽 하위 코너로 최소화되었다. 이는 비디오 오버레이가 웹 페이지(120)에서 최소한의 공간을 차지할 수 있게 해준다. 일부 실시예에서, 비디오 오버레이가 최소화되면 모든 비디오 스트림과 웹캠 조명이 꺼진다. 비디오가 재개되면 각 참가자는 로컬 웹캠 활성화를 허가하여 개별 비디오 스트림을 로컬로 재시작해야 한다.
일부 실시예에서, 대형 형식 라이브 비디오가 공동 브라우징 세션에서 사용되고 있고, 방문자 브라우저 창의 크기가 변경되면, 비디오 오버레이의 크기도 유사하게 조정될 것이다. 예를 들어, 방문자 브라우저가 더 작아지면 비디오 오버레이의 크기가 조정되거나 선택적으로 더 적은 수의 동시 참가자 비디오 스트림이 표시될 수 있다. 방문자 브라우저의 폭이 줄어들면 다수의 참가자가 나란히 표시되는 대신 참가자가 모두 단일 열에 표시되거나, 참가자의 선택이 라이브 비디오 피드의 단일 열을 사용하여 표시될 수 있다. 유사하게, 소형 형식 비디오에서는 비디오 오버레이는 방문자의 브라우저 창(118)의 크기에 따라 한 명 또는 두 명의 참가자만큼 적은 참가자를 보여줄 수 있다. 이는 특히 화면이 작은 스마트폰을 사용하는 방문자와 관련된다.
도 14는 일부 실시예에 따라 공동 브라우징 세션에서 방문자측 참가자 비디오를 개시하기 위해 참가자로부터 허가를 획득하는 예시적인 방법의 흐름도이다. 모든 참가자가 공동 브라우징 세션(126)에 포함된 라이브 비디오 뷰를 원하는 것은 아닐 수 있다. 도 14는 공동 브라우징 세션에 방문자의 라이브 영상을 포함하도록 방문자로부터 허가를 획득하는 것과 관련하여 설명하고 있지만, 다른 에이전트나 게스트와 같은 다른 참가자의 라이브 비디오를 포함하도록 허가를 얻는 데에도 동일한 프로세스가 사용될 수 있다.
도 14에 도시된 바와 같이, 방문자가 공동 브라우징 세션을 시작하거나 가입할 때(블록(1400)) 방문자는 방문자의 카메라를 활성화해 달라고 요청받는다(블록(1405)). 카메라를 활성화해 달라고 방문자에게 요청하는 것이 요구되는데, 그 이유는 일부 실시예에서 브라우저는 디폴트로 브라우저가 공동 브라우징 서비스(124)에 처음 연결될 때 사용자에게 카메라를 활성화하도록 프롬프트하기 때문이다.
방문자가 카메라를 활성화해 달라는 것을 거부하면(블록(1410)) 방문자 카메라는 활성화되지 않으며(블록(1415)) 공동 브라우징 세션에 처음 가입할 때 방문자의 라이브 비디오가 포함되지 않는다. 에이전트 및/또는 다른 참가자의 라이브 비디오가 공동 브라우징 세션에 계속 포함될 수 있다. 일부 실시예에서, 방문자가 초기에 블록(1405)에서 카메라를 활성화해 달라는 것을 거부하기로 선택한 경우, 방문자는 카메라를 활성화하기 위해 블록(1405)으로 돌아갈 수 없다. 오히려, 방문자는 공동 브라우징 세션에서 카메라 사용을 명시적으로 허용하려면 고급 옵션에 액세스해야 한다.
카메라를 활성화해 달라는 것이 허여되면(블록(1420)), 일부 실시예에서 방문자는 공동 브라우징 세션에서 카메라 뷰를 공유해 달라고 요청받는다(블록(1425)). 공동 브라우징 세션에서 카메라 뷰를 공유해 달라는 것이 허여되면(블록(1430)) 방문자가 가입할 때 방문자 카메라 뷰로부터 라이브 비디오가 공동 브라우징 세션의 라이브 비디오 오버레이에 추가된다(블록(1435)). 공동 브라우징 세션에서 카메라 뷰를 공유해 달라는 것이 무시되거나("취소")(블록(1406)) 또는 철회되는 경우(블록(1440)) 방문자 카메라 뷰로부터 라이브 비디오는 공동 브라우징 세션에서 라이브 비디오 오버레이에 추가되지 않고(블록(1445)) 웹캠 조명이 켜지지 않는다. 에이전트가 에이전트의 웹캠을 재활성화하면 에이전트 웹캠만이 공동 브라우징 세션에서 비디오를 전송한다(블록(1450)). 각각의 다른 참가자는 로컬 웹캠 온/오프 버튼을 클릭하여 웹캠을 수동으로 재활성화해야 한다(블록(1455)). 일부 실시예에서, 방문자가 모달을 닫으면(블록(1406))(예를 들어, 모달의 X 버튼을 클릭하거나 탭하면) 웹캠은 꺼진 상태로 유지되지만 방문자는 자신의 웹캠 아이콘을 "ON"으로 클릭하여 공동 브라우징 세션 동안 블록(1405)으로 돌아갈 수 있다(블록(1407)). 브라우저는 공동 브라우징 서비스 도메인에 대한 웹캠에 액세스하게 해 달라고 다시 요청한다. "허용"을 클릭하면 카메라 조명이 켜지고 방문자는 웹캠의 미리보기를 볼 수 있다. 그런 다음 방문자는 공동 브라우징 세션에 다시 가입하기 전에 이 기능을 켜 두거나 끄도록 선택할 수 있다. 방문자가 카메라 액세스를 허용하면 브라우저는 가상 서버의 도메인을 "허용 목록"에 저장하므로 향후 세션에서 방문자에게 프롬프트하지 않는다(블록(1407)).
일부 실시예에서, 세션 동안 방문자는 카메라 온/오프 버튼을 토글하여 카메라를 턴오프하거나 턴온할 수 있다. 카메라가 켜질 때마다 프로세스는 방문자의 브라우저가 카메라를 활성화해 달라고 요청하는 블록(1405)으로 돌아간다(블록(1460)).
본 명세서에 설명된 일부 양태, 특징 및 구현예에는 컴퓨터, 전자 구성요소, 광학 구성요소 등의 기계와, 컴퓨터 구현 절차 및 단계 등의 프로세스가 포함될 수 있다. 당업자에게는 컴퓨터로 구현되는 절차 및 단계가 비일시적 유형적인 컴퓨터 판독 가능 매체에 컴퓨터 실행 가능 명령어로서 저장될 수 있다는 것이 명백할 것이다. 또한, 당업자라면 컴퓨터 실행 가능 명령어가 다양한 유형적인 프로세서 디바이스, 즉 물리적 하드웨어에서 실행될 수 있다는 것을 이해할 수 있을 것이다. 설명의 편의를 위해 컴퓨터 또는 데이터 저장 시스템의 일부일 수 있는 모든 단계, 디바이스 또는 구성요소가 본 명세서에 설명된 것은 아니다. 당업자라면 본 발명의 내용과 당업자에 일반적으로 이용 가능한 지식을 고려하여 이러한 단계, 디바이스 및 구성요소를 이해할 수 있을 것이다. 따라서 대응하는 기계 및 프로세스가 가능하고 본 발명의 범위 내에 속한다.
본 명세서에서 사용된 용어는 주제 적격성의 한계 내에서 광범위하게 해석되도록 의도된다. "논리적" 및 "가상적"이라는 용어는 예를 들어 다른 특징의 추상화, 제한 없이 유형적인 특징의 추상화인 특징을 지칭하는 데 사용된다. "물리적"이라는 용어는 전자 하드웨어를 포함하지만 이로 국한되지 않는 유형적인 특징을 지칭하는 데 사용된다. 예를 들어, 다수의 가상 컴퓨팅 디바이스가 하나의 물리적 컴퓨팅 디바이스에서 동시에 동작할 수 있다. "논리적"이라는 용어는 특수 목적의 물리적 회로 요소, 펌웨어, 소프트웨어, 비일시적 유형적인 컴퓨터 판독 가능 매체에 저장되고 다목적 유형적인 프로세서에 의해 구현되는 컴퓨터 명령어, 및 이들의 임의의 조합을 지칭하는 데 사용된다.
본 명세서에 설명된 방법은 컴퓨터와 같은 전자 디바이스의 CPU에 포함된 제어 논리부에서 실행되도록 구성된 소프트웨어로 구현될 수 있다. 본 명세서에 설명된 기능은 비일시적 유형적인 컴퓨터 판독 가능 매체에 저장되는 프로그램 명령어 세트로서 구현될 수 있다. 이러한 방식으로 구현될 때, 컴퓨터 프로그램은 컴퓨터에 의해 실행될 때 컴퓨터로 하여금 위에서 설명된 기능을 구현하는 방법을 수행하게 하는 명령어 세트를 포함한다. 프로그래밍 가능 논리 회로는 읽기 전용 메모리 칩, 컴퓨터 메모리, 디스크 또는 기타 저장 매체와 같은 비일시적 유형적인 컴퓨터 판독 가능 매체에 일시적으로 또는 영구적으로 고정될 수 있다. 소프트웨어로 구현되는 것에 더하여, 본 명세서에 설명된 논리 회로는 개별 구성요소, 집적 회로, 전계 프로그래밍 가능 게이트 어레이(FPGA) 또는 마이크로프로세서와 같은 프로그래밍 가능 논리 디바이스와 함께 사용되는 프로그래밍 가능 논리 회로, 또는 임의의 이들의 조합을 포함하는 임의의 다른 디바이스를 사용하여 구현될 수 있다. 이러한 모든 실시예는 본 발명의 범위 내에 속하도록 의도된다.
도면에 도시되고 본 명세서에 설명된 실시예의 다양한 변경과 수정이 본 발명의 사상과 범위 내에서 이루어질 수 있다. 따라서, 위에 설명에 포함되고 첨부 도면에 도시된 모든 사항은 본 발명을 제한하는 의미가 아니라 본 발명을 예시하는 의미로 해석되어야 한다.
청구하는 바는 다음과 같다:

Claims (35)

  1. 공동 브라우징 세션에서 문서를 안전하게 공동 브라우징하는 방법으로서,
    제1 브라우저의 콘텐츠를 설명하는 DOM과, 상기 제1 브라우저의 콘텐츠에 대한 변경 사항을 설명하는 DOM에 대한 변경 사항이 제2 브라우저와 공유되어, 상기 제2 브라우저가 상기 제1 브라우저의 콘텐츠를 재생성하고 상기 제1 브라우저의 콘텐츠와 일치하는 뷰를 가질 수 있게 하는 공동 브라우징 세션을 수립하는 단계;
    상기 공동 브라우징 세션에 포함될 문서를 선택하는 단계;
    상기 제1 브라우저에서 오버레이로 렌더링되는 HTML 객체를 포함하는 HTML 설명을 생성하도록 상기 문서의 뷰를 렌더링하는 단계;
    상기 문서의 HTML 객체를 상기 제1 브라우저의 콘텐츠를 설명하는 DOM에 통합하는 단계; 및
    상기 공동 브라우징 세션에서 상기 HTML 객체를 상기 DOM의 일부로서 상기 제1 브라우저로부터 상기 제2 브라우저로 전달하는 단계
    를 포함하는, 공동 브라우징 세션에서 문서를 안전하게 공동 브라우징하는 방법.
  2. 제1항에 있어서, 상기 파일 문서의 렌더링된 뷰의 HTML 설명을 상기 제1 브라우저의 브라우저 RAM에 저장하는 단계; 및
    상기 공동 브라우징 세션이 종료할 때, 상기 제1 브라우저에 의해 상기 HTML 객체를 자동으로 삭제하는 단계
    를 더 포함하는, 공동 브라우징 세션에서 문서를 안전하게 공동 브라우징하는 방법.
  3. 제1항에 있어서, 상기 문서의 렌더링된 뷰는 상기 문서의 볼 수 있는 부분만을 포함하는, 공동 브라우징 세션에서 문서를 안전하게 공동 브라우징하는 방법.
  4. 제1항에 있어서, 상기 제1 브라우저와 제2 브라우저의 중간에 상기 공동 브라우징 세션을 구현하는 공동 브라우징 서비스에 의해 상기 HTML 객체를 수신하는 단계; 및
    상기 공동 브라우징 서비스에서 상기 HTML 객체의 복사본을 저장하지 않고 상기 HTML 객체를 상기 제1 브라우저로부터 상기 제2 브라우저로 전달하는 단계
    를 더 포함하는, 공동 브라우징 세션에서 문서를 안전하게 공동 브라우징하는 방법.
  5. 제4항에 있어서, 상기 공동 브라우징 세션에서 상기 HTML 객체를 전송하기 전에, 상기 제1 브라우저에 의해 상기 HTML 객체를 암호화하는 단계를 더 포함하는, 공동 브라우징 세션에서 문서를 안전하게 공동 브라우징하는 방법.
  6. 제1항에 있어서, 상기 문서를 선택하는 단계는 선택된 문서의 파일 유형을 결정하는 단계; 및 상기 제1 브라우저가 이 파일 유형을 갖는 문서를 상기 HTML 객체로 렌더링하도록 구성된 문서 뷰어를 갖고 있는지 여부를 결정하는 단계를 더 포함하는, 공동 브라우징 세션에서 문서를 안전하게 공동 브라우징하는 방법.
  7. 제6항에 있어서, 상기 제1 브라우저가 상기 파일 유형의 문서를 상기 HTML 객체로 렌더링하도록 구성된 문서 뷰어를 갖고 있지 않는 경우, 상기 방법은 상기 선택된 문서를 제2 파일 유형으로 변환하도록 방문자에게 프롬프트하는 단계를 더 포함하는, 공동 브라우징 세션에서 문서를 안전하게 공동 브라우징하는 방법.
  8. 제6항에 있어서, 상기 제1 브라우저가 상기 파일 유형의 문서를 상기 HTML 객체로 렌더링하도록 구성된 문서 뷰어를 갖고 있지 않는 경우, 상기 방법은 상기 선택된 문서를 제2 파일 유형으로 자동으로 변환하는 단계를 더 포함하는, 공동 브라우징 세션에서 문서를 안전하게 공동 브라우징하는 방법.
  9. 제6항에 있어서, 상기 제1 브라우저가 상기 파일 유형의 문서를 상기 HTML 객체로 렌더링하도록 구성된 문서 뷰어를 갖고 있지 않는 경우, 상기 방법은 상기 선택된 문서 유형에 대한 문서 뷰어를 자동으로 다운로드하는 단계를 더 포함하는, 공동 브라우징 세션에서 문서를 안전하게 공동 브라우징하는 방법.
  10. 제6항에 있어서, 상기 문서 유형은 .docx 문서, .pdf 문서, .xls 스프레드시트, 및 슬라이드 프리젠테이션 중 하나인, 공동 브라우징 세션에서 문서를 안전하게 공동 브라우징하는 방법.
  11. 제1항에 있어서, 상기 문서의 HTML 객체를 상기 제1 브라우저의 콘텐츠를 설명하는 DOM에 통합하기 전에 그리고 상기 HTML 객체를 DOM의 일부로서 상기 공동 브라우징 세션에서 상기 제1 브라우저로부터 상기 제2 브라우저로 전달하기 전에 상기 제1 브라우저에서 로컬 미리보기(local preview)를 생성하는 단계를 더 포함하는, 공동 브라우징 세션에서 문서를 안전하게 공동 브라우징하는 방법.
  12. 제11항에 있어서, 상기 제1 브라우저의 로컬 미리보기와 관련된 대화 상자를 제공하는 단계, 및 상기 HTML 객체를 DOM에 포함시키는 것이 상기 대화 상자를 통해 허가된 경우에만 상기 공동 브라우징 세션에서 상기 HTML 객체를 DOM의 일부로서 상기 제1 브라우저로부터 상기 제2 브라우저로 전달하기 전에 상기 문서의 HTML 객체를 상기 제1 브라우저의 콘텐츠를 설명하는 DOM에 통합하는 단계를 더 포함하는, 공동 브라우징 세션에서 문서를 안전하게 공동 브라우징하는 방법.
  13. 제12항에 있어서, 상기 대화 상자를 통해 허가되지 않은 경우 상기 문서의 HTML 객체를 삭제하고, 상기 문서의 HTML 객체를 상기 DOM에 통합하지 않는 단계를 더 포함하는, 공동 브라우징 세션에서 문서를 안전하게 공동 브라우징하는 방법.
  14. 제1항에 있어서, 상기 제1 브라우저의 콘텐츠는 웹 페이지를 포함하고, 상기 문서를 설명하는 HTML 객체는 상기 제1 브라우저와 상기 제2 브라우저에 표시된 웹 페이지의 상부에 모달로 오버레이되는, 공동 브라우징 세션에서 문서를 안전하게 공동 브라우징하는 방법.
  15. 제1항에 있어서, 상기 공동 브라우징 세션에 포함될 문서를 선택하는 단계는 상기 제1 브라우저를 호스팅하는 컴퓨터에 상주하는 문서를 선택하는 단계를 포함하는, 공동 브라우징 세션에서 문서를 안전하게 공동 브라우징하는 방법.
  16. 제1항에 있어서, 상기 공동 브라우징 세션에 포함될 문서를 선택하는 단계는 상기 제2 브라우저를 호스팅하는 제2 컴퓨터에 상주하는 문서를 선택하는 단계;
    상기 문서의 콘텐츠를 상기 제2 브라우저를 호스팅하는 제2 컴퓨터로부터 상기 제1 브라우저를 호스팅하는 제1 컴퓨터로 전송하는 단계; 및
    상기 문서의 콘텐츠를 사용하여 상기 제1 브라우저에서 상기 문서를 상기 HTML 객체로 렌더링하는 단계
    를 포함하는, 공동 브라우징 세션에서 문서를 안전하게 공동 브라우징하는 방법.
  17. 제16항에 있어서, 선택된 문서의 복사본을 상기 제1 브라우저를 호스팅하는 제1 컴퓨터에 저장하는 단계를 더 포함하는, 공동 브라우징 세션에서 문서를 안전하게 공동 브라우징하는 방법.
  18. 제16항에 있어서, 선택된 문서의 파일 유형을 상기 제2 브라우저에 의해 결정하는 단계, 및 상기 제1 브라우저가 상기 파일 유형의 문서를 렌더링하도록 구성된 문서 뷰어를 가질 때에만 상기 제2 브라우저에 의해 상기 공동 브라우징 세션에 포함할 문서의 선택을 허용하는 단계를 더 포함하는, 공동 브라우징 세션에서 문서를 안전하게 공동 브라우징하는 방법.
  19. 제16항에 있어서, 선택된 문서를 상기 제2 브라우저에서 승인된 파일의 허용된 목록과 비교하는 단계, 및 상기 선택된 문서가 상기 승인된 파일의 목록에 있는 경우에만 상기 제2 브라우저에 의해 상기 공동 브라우징 세션에 포함할 문서의 선택을 허용하는 단계를 더 포함하는, 공동 브라우징 세션에서 문서를 안전하게 공동 브라우징하는 방법.
  20. 제16항에 있어서, 상기 제2 브라우저를 호스팅하는 제2 컴퓨터로부터 상기 제1 브라우저를 호스팅하는 제1 컴퓨터로 상기 문서의 콘텐츠를 전송하기 전에, 상기 제2 컴퓨터에서 상기 문서의 바이러스 또는 멀웨어 스캔을 수행하는 단계를 더 포함하는, 공동 브라우징 세션에서 문서를 안전하게 공동 브라우징하는 방법.
  21. 공동 브라우징 세션에서 스트리밍 비디오를 통합하는 방법으로서,
    제1 브라우저의 콘텐츠를 설명하는 DOM과, 상기 제1 브라우저의 콘텐츠에 대한 변경 사항을 설명하는 DOM에 대한 변경 사항이 제2 브라우저와 공유되어, 상기 제2 브라우저가 상기 제1 브라우저의 콘텐츠를 재생성하고 상기 제1 브라우저의 콘텐츠와 일치하는 뷰를 가질 수 있게 하는 공동 브라우징 세션을 수립하는 단계;
    상기 공동 브라우징 세션에서 미디어 리소스의 공개적으로 이용 가능한 위치의 URL을 공유하는 단계로서, 상기 미디어 리소스는 상기 스트리밍 비디오의 소스를 제공하는, 상기 미디어 리소스의 공개적으로 이용 가능한 위치의 URL을 공유하는 단계;
    상기 공개적으로 이용 가능한 위치로부터 상기 미디어 리소스를 검색하고 상기 제1 브라우저에서 상기 미디어 리소스를 로컬로 플레이하는 단계;
    상기 공개적으로 이용 가능한 위치로부터 상기 미디어 리소스를 검색하고 상기 제2 브라우저에서 상기 미디어 리소스를 로컬로 플레이하는 단계;
    상기 제1 브라우저에서 상기 미디어 리소스를 플레이하는 것과 연관된 스트리밍 비디오 메타데이터와 스트리밍 비디오 제어 정보를 수집하는 단계;
    상기 공동 브라우징 세션에서 상기 스트리밍 비디오 메타데이터와 스트리밍 비디오 제어 정보를 상기 공동 브라우징 세션에서 상기 제1 브라우저로부터 상기 제2 브라우저로 전송하는 단계; 및
    상기 제2 브라우저에 의해 상기 스트리밍 비디오 메타데이터와 제어 정보를 사용하여 상기 제2 브라우저에서의 미디어 리소스의 로컬 플레이와 상기 제1 브라우저에서의 미디어 리소스의 플레이를 동기화하는 단계
    를 포함하는, 공동 브라우징 세션에서 스트리밍 비디오를 통합하는 방법.
  22. 제21항에 있어서, 상기 참가자 각각의 대기 시간을 검출하고, 검출된 대기 시간에 기초하여 외부 오디오 소스를 로컬로 조정함으로써 상기 외부 오디오 소스를 상기 스트리밍 비디오와 동기화하는 단계를 더 포함하는, 공동 브라우징 세션에서 스트리밍 비디오를 통합하는 방법.
  23. 제21항에 있어서, 상기 스트리밍 비디오 메타데이터는 디스플레이되는 프레임 수를 포함하는, 공동 브라우징 세션에서 스트리밍 비디오를 통합하는 방법.
  24. 제21항에 있어서, 상기 스트리밍 비디오 제어 정보는 플레이, 일시 정지 및 스크럽 동작을 포함하는 제어 동작을 포함하는, 공동 브라우징 세션에서 스트리밍 비디오를 통합하는 방법.
  25. 제21항에 있어서, 상기 공동 브라우징 세션에서 상기 제1 브라우저로부터 상기 제2 브라우저로 상기 스트리밍 비디오 메타데이터와 스트리밍 비디오 제어 동작을 전송하는 것과 연관된 전송 지연을 보상하는 단계를 더 포함하는, 공동 브라우징 세션에서 스트리밍 비디오를 통합하는 방법.
  26. 제25항에 있어서, 전송 지연을 보상하는 단계는 상기 제1 브라우저와 제2 브라우저의 중간에 공동 브라우징 세션을 구현하는 공동 브라우징 서비스와 상기 제1 브라우저 사이의 제1 네트워크 지연값을 측정하는 단계, 상기 공동 브라우징 서비스와 상기 제2 브라우저 사이의 제2 네트워크 지연값을 측정하는 단계, 및 측정된 제1 지연값과 제2 지연값을 사용하여, 상기 제2 브라우저에 디스플레이될 스트리밍 비디오의 프레임 수를 결정하기 위해 상기 제2 브라우저에 의해 사용되는 스트리밍 비디오 메타데이터를 조정하는 단계를 포함하는, 공동 브라우징 세션에서 스트리밍 비디오를 통합하는 방법.
  27. 제21항에 있어서,
    상기 제2 브라우저에 의해 스트리밍 비디오 제어 동작을 입력하는 단계;
    상기 제2 브라우저에서 로컬로 플레이되는 미디어 리소스에 상기 스트리밍 비디오 제어 동작을 로컬로 적용하는 단계;
    상기 공동 브라우징 세션에서 상기 제2 브라우저로부터 상기 제1 브라우저로 상기 스트리밍 비디오 제어 동작을 전달하는 단계; 및
    상기 제1 브라우저에서 로컬로 플레이되는 미디어 리소스에 상기 스트리밍 비디오 제어 동작을 구현하는 단계
    를 더 포함하는, 공동 브라우징 세션에서 스트리밍 비디오를 통합하는 방법.
  28. 공동 브라우징 세션에 인증되지 않은 게스트를 안전하게 입장시키는 방법으로서,
    제1 브라우저의 콘텐츠를 설명하는 DOM과, 상기 제1 브라우저의 콘텐츠에 대한 변경 사항을 설명하는 DOM에 대한 변경 사항이 제2 브라우저와 공유되어, 상기 제2 브라우저가 상기 제1 브라우저의 콘텐츠를 재생성하고 상기 제1 브라우저의 콘텐츠와 일치하는 뷰를 가질 수 있게 하는 공동 브라우징 세션을 수립하는 단계로서, 상기 제2 브라우저는 상기 제1 브라우저와 제2 브라우저 중간에 상기 공동 브라우징 세션을 구현하는 공동 브라우징 서비스에 인증된 개체와 연관된, 상기 공동 브라우징 세션을 수립하는 단계;
    상기 공동 브라우징 세션의 참가자 중 하나의 참가자에 의해 상기 공동 브라우징 세션에 가입하도록 게스트 브라우저를 입장시키는 수동 프로세스를 개시하는 단계;
    상기 게스트 브라우저에 의해 게스트 액세스 웹 페이지를 로딩하는 단계로서, 상기 게스트 액세스 웹 페이지는 상기 게스트의 이름을 입력하기 위한 제1 입력 필드를 포함하는, 상기 게스트 액세스 웹 페이지를 로딩하는 단계;
    상기 게스트 액세스 웹 페이지의 제1 입력 필드로부터 상기 게스트의 이름의 지시를 수신하는 단계;
    상기 게스트 브라우저의 게스트 액세스 웹 페이지에 게스트 액세스 코드를 디스플레이하는 단계;
    상기 게스트로부터 게스트 액세스 코드를 수신한 것에 응답하여, 상기 공동 브라우징 서비스에 인증된 개체와 연관된 제2 브라우저의 공동 브라우징 제어부에 상기 액세스 코드를 입력하는 단계; 및
    상기 공동 브라우징 제어부에 입력된 액세스 코드가 상기 게스트 액세스 웹 페이지에 디스플레이된 액세스 코드와 일치할 때 상기 공동 브라우징 세션에 상기 게스트를 포함시키는 단계
    를 포함하는, 공동 브라우징 세션에 인증되지 않은 게스트를 안전하게 입장시키는 방법.
  29. 제28항에 있어서, 상기 공동 브라우징 세션에 상기 게스트를 포함시키는 단계는 상기 공동 브라우징 세션에 가입시키기 위해 상기 게스트를 인증하는 공동 브라우징 서비스에 의해 생성된 일회성 시간 민감형 토큰과 함께 상기 게스트 액세스 웹 페이지를 공동 브라우징 서비스 도메인 상의 페이지로 리디렉션하는 단계를 포함하는, 공동 브라우징 세션에 인증되지 않은 게스트를 안전하게 입장시키는 방법.
  30. 제29항에 있어서, 상기 제2 브라우저는 상기 공동 브라우징 서비스 도메인 상의 페이지를 포함하고, 상기 게스트 액세스 웹 페이지는 상기 공동 브라우징 서비스 도메인 상에 있는, 공동 브라우징 세션에 인증되지 않은 게스트를 안전하게 입장시키는 방법.
  31. 제28항에 있어서, 상기 게스트 액세스 웹 페이지의 URL을 상기 제2 브라우저로부터 상기 게스트로 전달하는 단계를 더 포함하는, 공동 브라우징 세션에 인증되지 않은 게스트를 안전하게 입장시키는 방법.
  32. 웹사이트에서 방문자의 위치에 기초하여 그리고 상기 웹사이트의 특정 양태에 대해 고객 서비스를 제공하는 에이전트의 능력에 기초하여 마스킹된 요소의 동적으로 변하는 맞춤화된 목록을 방문자에게 제공하는 방법으로서,
    방문자 브라우저의 콘텐츠를 설명하는 DOM과, 상기 방문자 브라우저의 콘텐츠에 대한 변경 사항을 설명하는 DOM에 대한 변경 사항을 에이전트 브라우저와 공유하여 상기 에이전트 브라우저가 상기 방문자 브라우저의 콘텐츠를 재생성하고 상기 방문자 브라우저의 콘텐츠와 일치하는 뷰를 가질 수 있게 하는 공동 브라우징 세션을 수립하는 단계;
    상기 방문자 브라우저에 표시된 웹사이트에서 방문자의 위치를 결정하는 단계;
    에이전트의 역할을 결정하는 단계;
    에이전트의 권한을 결정하는 단계; 및
    상기 에이전트의 역할과 권한에 기초하여 상기 웹사이트의 마스킹 규칙의 동적 목록을 생성하는 단계로서, 상기 마스킹 규칙은 상기 공동 브라우징 세션에서 상기 웹사이트의 에이전트 뷰에는 마스킹된 객체가 포함되지만, 상기 웹사이트의 에이전트 뷰에는 상기 마스킹된 객체의 콘텐츠가 포함되지 않도록 상기 웹사이트의 객체 중 상기 방문자에게 보이는 객체와, 상기 에이전트에 보이지 않는 객체를 지정하는, 상기 웹사이트의 마스킹 규칙의 동적 목록을 생성하는 단계
    를 포함하는, 마스킹된 요소의 동적으로 변하는 맞춤화된 목록을 방문자에게 제공하는 방법.
  33. 공동 브라우징 세션에서 공동 브라우징 세션에 참가자의 라이브 비디오를 포함시키는 방법으로서,
    제1 브라우저의 콘텐츠를 설명하는 DOM과, 상기 제1 브라우저의 콘텐츠에 대한 변경 사항을 설명하는 DOM에 대한 변경 사항이 제2 브라우저와 공유되어, 상기 제2 브라우저가 상기 제1 브라우저의 콘텐츠를 재생성하고 상기 제1 브라우저의 콘텐츠와 일치하는 뷰를 가질 수 있게 하는 공동 브라우징 세션을 수립하는 단계;
    상기 제1 브라우저를 사용하여 제1 참가자의 제1 라이브 비디오 스트림을 획득하는 단계;
    상기 제2 브라우저를 사용하여 제2 참가자의 제2 라이브 비디오 스트림을 획득하는 단계;
    상기 제1 라이브 비디오 스트림과 상기 제2 라이브 비디오 스트림이 모두 상기 제1 브라우저와 상기 제2 브라우저 모두에 디스플레이되도록 상기 공동 브라우징 세션에 상기 제1 라이브 비디오 스트림과 상기 제2 라이브 비디오 스트림을 통합하는 단계;
    상기 제1 브라우저에서 상기 제1 및 제2 라이브 비디오 스트림의 라이브 비디오 뷰 모드를 선택하는 단계;
    상기 공동 브라우징 세션에서 상기 제1 브라우저로부터 상기 제2 브라우저로 선택된 라이브 비디오 뷰 모드의 지시를 전송하는 단계; 및
    상기 선택된 라이브 비디오 뷰 모드의 지시를 사용하여 동일한 라이브 비디오 뷰 모드를 상기 제2 브라우저에서 구현하는 단계
    를 포함하는, 공동 브라우징 세션에 참가자의 라이브 비디오를 포함시키는 방법.
  34. 제33항에 있어서, 상기 라이브 비디오 뷰 모드 중 제1 라이브 비디오 뷰 모드는 대형 형식 라이브 비디오 뷰 모드이고, 상기 대형 형식 라이브 비디오 뷰 모드에서 상기 제1 라이브 비디오 스트림과 상기 제2 라이브 비디오 스트림은 상기 공동 브라우징 세션에 표시되는 웹페이지에 오버레이로서 표시되고, 상기 웹페이지는 부분적으로 회색으로 표시되는, 공동 브라우징 세션에 참가자의 라이브 비디오를 포함시키는 방법.
  35. 제34항에 있어서, 상기 라이브 비디오 뷰 모드 중 제2 라이브 비디오 뷰 모드는 소형 형식 라이브 비디오 뷰 모드이고, 상기 소형 형식 라이브 비디오 뷰 모드에서 상기 제1 라이브 비디오 스트림과 상기 제2 라이브 비디오 스트림은 상기 대형 형식 참가자 비디오 모드에 비해 크기가 감소되고, 상기 제1 라이브 비디오 스트림과 상기 제2 라이브 비디오 스트림은 상기 공동 브라우징 세션에 표시되는 상기 웹페이지에 오버레이로서 표시되고, 상기 웹페이지는 상기 제1 라이브 비디오 스트림과 상기 제2 라이브 비디오 스트림이 상기 웹페이지와 상호 작용하는 동안 보일 수 있도록 부분적으로 회색으로 표시되지 않는, 공동 브라우징 세션에 참가자의 라이브 비디오를 포함시키는 방법.
KR1020237031928A 2021-02-28 2022-02-28 문서 및 미디어 url을 안전하게 공동 브라우징하기 위한 방법 및 장치 KR20230152060A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163154757P 2021-02-28 2021-02-28
US63/154,757 2021-02-28
PCT/US2022/018095 WO2022183097A2 (en) 2021-02-28 2022-02-28 Method and apparatus for securely co-browsing documents and media urls

Publications (1)

Publication Number Publication Date
KR20230152060A true KR20230152060A (ko) 2023-11-02

Family

ID=83007290

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237031928A KR20230152060A (ko) 2021-02-28 2022-02-28 문서 및 미디어 url을 안전하게 공동 브라우징하기 위한 방법 및 장치

Country Status (5)

Country Link
US (1) US20220278992A1 (ko)
KR (1) KR20230152060A (ko)
CN (1) CN117157641A (ko)
AU (1) AU2022227026A1 (ko)
WO (1) WO2022183097A2 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3108351B1 (en) 2014-05-30 2019-05-08 Apple Inc. Activity continuation between electronic devices
DK201870364A1 (en) 2018-05-07 2019-12-03 Apple Inc. MULTI-PARTICIPANT LIVE COMMUNICATION USER INTERFACE
US11128792B2 (en) 2018-09-28 2021-09-21 Apple Inc. Capturing and displaying images with multiple focal planes
US11893214B2 (en) 2021-05-15 2024-02-06 Apple Inc. Real-time communication user interface
US11907605B2 (en) 2021-05-15 2024-02-20 Apple Inc. Shared-content session user interfaces
US11360634B1 (en) * 2021-05-15 2022-06-14 Apple Inc. Shared-content session user interfaces
US11812135B2 (en) 2021-09-24 2023-11-07 Apple Inc. Wide angle video conference

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6101510A (en) * 1997-01-29 2000-08-08 Microsoft Corporation Web browser control for incorporating web browser functionality into application programs
US7941534B2 (en) * 1997-04-14 2011-05-10 Carlos De La Huerga System and method to authenticate users to computer systems
US5946697A (en) * 1997-04-22 1999-08-31 Microsoft Corporation Rapid transfer of HTML files
US6907449B2 (en) * 1998-09-22 2005-06-14 Qwest Communications International, Inc. Conferencing system for simultaneous broadcast of audio and transmission of documents via push technology
US6807559B1 (en) * 2000-04-06 2004-10-19 Attachmate Corporation System and method for applet management
WO2002003189A1 (en) * 2000-06-30 2002-01-10 Zinio Systems, Inc. System and method for encrypting, distributing and viewing electronic documents
US7028306B2 (en) * 2000-12-04 2006-04-11 International Business Machines Corporation Systems and methods for implementing modular DOM (Document Object Model)-based multi-modal browsers
WO2002056278A2 (en) * 2001-01-12 2002-07-18 Discourse Technologies Inc Method and system for online teaching using web pages
US20040205514A1 (en) * 2002-06-28 2004-10-14 Microsoft Corporation Hyperlink preview utility and method
US7849401B2 (en) * 2003-05-16 2010-12-07 Justsystems Canada Inc. Method and system for enabling collaborative authoring of hierarchical documents with locking
US20060075228A1 (en) * 2004-06-22 2006-04-06 Black Alistair D Method and apparatus for recognition and real time protection from view of sensitive terms in documents
US20070079227A1 (en) * 2005-08-04 2007-04-05 Toshiba Corporation Processor for creating document binders in a document management system
US20110313899A1 (en) * 2006-01-05 2011-12-22 Drey Leonard L Method of Governing Content Presentation
WO2009094372A1 (en) * 2008-01-22 2009-07-30 Authentium, Inc. System and method for protecting data accessed through a network connection
US8924863B2 (en) * 2008-09-30 2014-12-30 Lenovo (Singapore) Pte. Ltd. Collaborative web navigation using document object model (DOM) based document references
US11704473B2 (en) * 2009-09-30 2023-07-18 Georgia Tech Research Corporation Systems and methods to facilitate active reading
US8615569B2 (en) * 2010-10-25 2013-12-24 Gregory A. Pearson, Inc. Dynamic content delivery systems and methods for providing same
EP2783296A4 (en) * 2011-11-22 2015-06-03 Trimble Navigation Ltd BETWEEN THE WEB BROWSER OF A CLIENT DEVICE AND A SERVER DISTRIBUTED 3D MODELING SYSTEM
US9166882B1 (en) * 2011-12-13 2015-10-20 Amazon Technologies, Inc. Remote browsing session management
US9015581B2 (en) * 2012-03-26 2015-04-21 Vistaprint Schweiz Gmbh Self-adjusting document layouts using system optimization modeling
US10067730B2 (en) * 2012-07-10 2018-09-04 Recursive Labs, Inc. Systems and methods for enabling replay of internet co-browsing
CN108647331A (zh) * 2012-07-19 2018-10-12 格兰斯电讯网络有限公司 协同浏览与其他形式的信息共享的集成
US9311283B2 (en) * 2012-08-16 2016-04-12 Realnetworks, Inc. System for clipping webpages by traversing a dom, and highlighting a minimum number of words
US8943197B1 (en) * 2012-08-16 2015-01-27 Amazon Technologies, Inc. Automated content update notification
US9092747B2 (en) * 2012-09-27 2015-07-28 International Business Machines Corporation Statement of work analysis and resource participation assessment
JP6207165B2 (ja) * 2013-02-06 2017-10-04 キヤノン株式会社 通信装置、制御方法及びプログラム
US20140298154A1 (en) * 2013-03-29 2014-10-02 Xiaopeng He Method and framework for content viewer integrations
US10306467B2 (en) * 2013-04-11 2019-05-28 Uniloc 2017 Llc Shared state among multiple devices
JP6168839B2 (ja) * 2013-05-15 2017-07-26 キヤノン株式会社 情報処理装置、その制御方法、プログラム
US9595168B2 (en) * 2013-06-28 2017-03-14 Realnetworks, Inc. Online social gaming with incentives
US20150006274A1 (en) * 2013-06-28 2015-01-01 EveryMove, Inc. Lifestyle Rewards System and Method
JP6370033B2 (ja) * 2013-07-29 2018-08-08 キヤノン株式会社 情報処理装置、情報処理方法、プログラム
US10038748B2 (en) * 2013-08-30 2018-07-31 Egain Corporation Method and system for multi-domain co-browsing in a C2C co-browse architecture through co-browsing functionality provided in a browser extension on a host
US9361280B2 (en) * 2013-11-26 2016-06-07 Yahoo! Inc. Web application theme preview based on live previews
US20150309993A1 (en) * 2014-04-24 2015-10-29 Jeffrey Charles Wilde Agile Enterprise Globalization
US20150332309A1 (en) * 2014-05-13 2015-11-19 Ispot.Tv, Inc. Advertisement scoring system and method
US9402111B2 (en) * 2014-09-17 2016-07-26 Ispot.Tv, Inc. Television audience measurement method and apparatus
WO2016049186A1 (en) * 2014-09-25 2016-03-31 Osix Corporation Computer-implemented methods, computer readable media, and systems for co-editing content
US9325734B1 (en) * 2014-09-30 2016-04-26 Shape Security, Inc. Distributed polymorphic transformation of served content
US10417309B2 (en) * 2014-10-16 2019-09-17 Liquidtext, Inc Facilitating active reading of digital documents
US11063956B2 (en) * 2014-11-14 2021-07-13 Adobe Inc. Protecting documents from cross-site scripting attacks
US20160182673A1 (en) * 2014-12-22 2016-06-23 Barak KINARTI Dynamic cache injector
US20160203199A1 (en) * 2015-01-12 2016-07-14 Point Inside, Inc. Location coordinate conversion service, method and system
US10521472B2 (en) * 2015-02-27 2019-12-31 Realnetworks, Inc. Composing media stories method and system
US10769351B2 (en) * 2015-05-08 2020-09-08 Citrix Systems, Inc. Rendering based on a document object model
US9846970B2 (en) * 2015-12-16 2017-12-19 Intel Corporation Transitioning augmented reality objects in physical and digital environments
US10375020B2 (en) * 2017-01-18 2019-08-06 Cisco Technology, Inc. Security policy for HTTPS using DNS
US10404688B2 (en) * 2017-01-31 2019-09-03 Glance Networks, Inc. Method and apparatus for enabling co-browsing of third party websites
KR101891140B1 (ko) * 2017-12-16 2018-08-23 세타랩 주식회사 테스트 자동화를 위한 기법
US10862940B1 (en) * 2018-07-31 2020-12-08 Glance Networks, Inc. Low latency live video on a communication session
US11281744B2 (en) * 2018-09-12 2022-03-22 Citrix Systems, Inc Systems and methods for improved remote display protocol for HTML applications
US10761907B2 (en) * 2018-09-28 2020-09-01 Atlassian Pty Ltd Systems and methods for automatically detecting desktop applications to access content when multiple access options are available
US11475146B2 (en) * 2018-11-08 2022-10-18 Citrix Systems, Inc. Systems and methods for a privacy screen for secure SaaS applications
US11188960B2 (en) * 2019-03-15 2021-11-30 Swapretail, Inc. Systems and methods for managing direct exchange
US11200374B2 (en) * 2019-09-19 2021-12-14 Intuit Inc. Methods to create and use responsive forms with externalized configurations and artifacts
US11856045B2 (en) * 2019-10-12 2023-12-26 Breezeway Logic Llc Computing and communication systems and methods

Also Published As

Publication number Publication date
WO2022183097A3 (en) 2022-10-06
US20220278992A1 (en) 2022-09-01
WO2022183097A2 (en) 2022-09-01
AU2022227026A1 (en) 2023-08-31
CN117157641A (zh) 2023-12-01

Similar Documents

Publication Publication Date Title
US20220278992A1 (en) Method and Apparatus for Securely Co-Browsing Documents and Media URLs
US11159626B2 (en) Session transfer between resources
US11218460B2 (en) Secure authentication for accessing remote resources
KR102047389B1 (ko) 공유되는 아이템 계정 선택 기법
US8732853B1 (en) Web-based system providing sharable content item links with link sharer specified use restrictions
US9781089B2 (en) Authenticating a user account with a content management system
US20210286861A1 (en) User Experience Container Level Identity Federation and Content Security
JP2014531650A (ja) グループ・オプトイン・リンク
JP2020504353A (ja) 画面共有体験のための共有保護
US20200126513A1 (en) System and method for web enabled application execution and management
US11336710B2 (en) Dynamically-generated encode settings for media content
US20130080560A1 (en) System and Method for Sharing Digital Data on a Presenter Device to a Plurality of Participant Devices
US11212325B2 (en) Collaborative browsing service using a cloud-based browser
JP7022257B2 (ja) プレフィックスキャッシュを介して待ち時間マスキングを行うためのシステムおよび方法
US9800635B2 (en) System for selectively displaying information in a secured manner and method thereof
US20170353443A1 (en) Systems and methods for accessing multiple resources via one identifier
CN114885116B (zh) 基于云会议桌面的群组讨论方法及相关设备
US10673919B1 (en) Concurrent input monitor and ingest
KR102198799B1 (ko) 다자간 회의 제공 장치 및 상기 장치에서의 콘텐츠 공유 방법
WO2024131568A1 (zh) 会话信息处理方法及相关设备
US20220382825A1 (en) Method and system for web page co-browsing
JP2024032191A (ja) サーバ装置、ファイル共有プログラム及びファイル共有システム
AU2014233547A1 (en) Systems and methods for accessing and controlling media stored remotely
AU2013270565A1 (en) Systems and methods for accessing and controlling media stored remotely
US20160150016A1 (en) Method and device for communicating via a shared interaction space