KR20230162039A - 가상 회의 시스템 내에 참가자 대화들을 제시함 - Google Patents

가상 회의 시스템 내에 참가자 대화들을 제시함 Download PDF

Info

Publication number
KR20230162039A
KR20230162039A KR1020237036737A KR20237036737A KR20230162039A KR 20230162039 A KR20230162039 A KR 20230162039A KR 1020237036737 A KR1020237036737 A KR 1020237036737A KR 20237036737 A KR20237036737 A KR 20237036737A KR 20230162039 A KR20230162039 A KR 20230162039A
Authority
KR
South Korea
Prior art keywords
room
rooms
participant
virtual
interface
Prior art date
Application number
KR1020237036737A
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 스냅 인코포레이티드
Priority claimed from PCT/US2022/022365 external-priority patent/WO2022212391A1/en
Publication of KR20230162039A publication Critical patent/KR20230162039A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1813Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
    • H04L12/1827Network arrangements for conference optimisation or adaptation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/15Conference systems
    • H04N7/157Conference systems defining a virtual conference space and using avatars or agents
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1813Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
    • H04L12/1822Conducting the conference, e.g. admission, detection, selection or grouping of participants, correlating users to one or more conference sessions, prioritising transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/141Systems for two-way working between two video terminals, e.g. videophone
    • H04N7/142Constructional details of the terminal equipment, e.g. arrangements of the camera and the display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/141Systems for two-way working between two video terminals, e.g. videophone
    • H04N7/147Communication arrangements, e.g. identifying the communication as a video-communication, intermediate storage of the signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)

Abstract

본 개시내용의 양태들은 가상 회의 시스템 내에서 참가자 대화들의 개요를 제시하기 위한 프로그램 및 방법을 저장하는 컴퓨터-판독가능 저장 매체를 포함하는 시스템을 수반한다. 이러한 프로그램 및 방법은 복수의 방들을 포함하는 가상 공간을 제공하고- 복수의 방들의 각각의 방은 각각의 참가자들 사이의 가상 회의를 위해 구성됨 -; 가상 공간의 관리자에 대해, 대시보드 인터페이스의 디스플레이를 제공하고- 대시보드 인터페이스는 복수의 방들 각각에 대한 방 미리보기 엘리먼트를 포함하고, 각각의 방 미리보기 엘리먼트는 복수의 방들의 각각의 방에 대한 라이브 미리보기에 대응함 -; 복수의 방들 각각에 대한 메트릭들을 결정하고; 대시보드 인터페이스 내에 메트릭들의 디스플레이를 제공한다.

Description

가상 회의 시스템 내에 참가자 대화들을 제시함
<관련 출원에 대한 상호-참조>
본 특허 출원은, 그 전체가 본 명세서에 참조로 원용되는, 2021년 8월 3일자로 출원된 미국 특허 출원 제17/393,204호의 계속이며, 이러한 출원은 2021년 3월 30일자로 출원된, 발명의 명칭이 "PRESENTING OVERVIEW OF PARTICIPANT CONVERSATIONS WITHIN A VIRTUAL CONFERENCING SYSTEM"인 미국 임시 특허 출원 제63/168,141호의 혜택을 주장한다.
<기술 분야>
본 개시내용은, 가상 회의 시스템 내에서 참가자 대화들의 개요를 제시하는 것을 포함하는, 가상 회의 시스템들에 일반적으로 관련된다.
가상 회의 시스템은, 실시간으로 디바이스 사용자들 사이의 통신을 위해, 디바이스들 사이의 오디오 및 비디오 데이터의 수신 및 송신을 제공한다.
반드시 스케일대로 그려진 것은 아닌 도면들에서, 비슷한 번호들은 상이한 도면들에서 유사한 컴포넌트들을 설명할 수 있다. 임의의 특정 엘리먼트 또는 액트의 논의를 쉽게 식별하기 위해, 참조 번호에서의 최상위 숫자 또는 숫자들은 해당 엘리먼트가 처음 도입되는 도면 번호를 지칭한다. 일부 비제한적인 예들이 첨부 도면들의 도면들에 예시된다.
도 1은, 일부 예들에 따른, 본 개시내용이 배치될 수 있는 네트워킹된 환경의 도식적 표현이다.
도 2는 클라이언트-측 및 서버-측 기능성 양자 모두를 갖는, 일부 예들에 따른, 가상 회의 시스템의 도식적 표현이다.
도 3은, 일부 예들에 따른, 데이터베이스에 유지되는 바와 같은 데이터 구조의 도식적 표현이다.
도 4는, 일부 예시적인 실시예들에 따른, 가상 공간을 설계하기 위한 인터페이스 엘리먼트들을 갖는 가상 공간 설계 인터페이스를 예시한다.
도 5는, 일부 예시적인 실시예들에 따른, 가상 공간의 방들 사이에서 내비게이트하고 방들에 관하여 가상 회의에 참가하기 위한 인터페이스 엘리먼트들을 갖는 가상 공간 내비게이션 인터페이스를 예시한다.
도 6은, 일부 예시적인 실시예들에 따른, 가상 회의 시스템 내에서 참가자 대화의 개요를 제시하기 위한 프로세스를 예시하는 상호작용 도면이다.
도 7은, 일부 예시적인 실시예들에 따른, 가상 공간의 방들을 미리보기 위한 방 미리보기 엘리먼트들을 갖는 대시보드 인터페이스를 예시한다.
도 8은, 일부 예시적인 실시예들에 따른, 가상 회의 시스템 내에서 참가자 대화의 개요를 제시하기 위한 프로세스를 예시하는 흐름도이다.
도 9는, 일부 예들에 따른, 머신으로 하여금 본 명세서에 논의되는 방법론들 중 어느 하나 이상을 수행하게 하기 위해 명령어들의 세트가 실행될 수 있는 컴퓨터 시스템의 형태의 머신의 도식적 표현이다.
도 10은, 예들이 그 내에서 구현될 수 있는 소프트웨어 아키텍처를 도시하는 블록도이다.
가상 회의 시스템은, 실시간으로 디바이스 사용자들 사이의 통신을 위해, 디바이스들 사이의 오디오 및 비디오 데이터의 수신 및 송신을 제공한다. 가상 회의 시스템은 사용자가 실시간 통신을 위한 다수의 방들을 갖는 가상 공간을 설계 또는 선택하는 것을 허용한다. 참가자들은, 예를 들어, 상이한 대화들, 이벤트들, 세미나들 등에 관여하기 위해, 가상 공간의 상이한 방들 사이에서 스위칭할 수 있다. 일부 경우들에서, 관리자는, 개별 방들을 내비게이트할 것을 요구받지 않고, 상이한 방들에서 발생하는 상이한 참가자 대화들을 관찰하기를 원할 수 있다.
개시된 실시예들은 가상 공간의 다양한 방들에서 발생하는 참가자 대화들의 개요를 제시하는 것을 제공한다. 이러한 개요는, 가상 공간의 방들로의 미리보기들을 포함하는, 대시보드 인터페이스 내에 제시될 수 있다. 예를 들어, 각각의 방은 방의 라이브 미리보기를 제시하는 미리보기 방 엘리먼트(예를 들어, 윈도우 또는 프레임)로서 표현된다. 대시보드 인터페이스는 각각의 방을 추가로 포함한다. 주어진 방에 대해, 메트릭들은 현재 참가자들의 수, 참가자 대화들에 대한 오디오 레벨, 활성 참가자 카메라들/마이크로폰들의 수, 방에 입장/퇴장하는 참가자들의 빈도, 및/또는 방에 대한 참가자 체류의 평균 지속기간을 표시할 수 있다. 따라서, 대시보드 인터페이스는 가상 공간의 다수의 방들의 용이한 관찰을 제공한다.
도 1은 네트워크를 통해 데이터를 교환하기 위한 예시적인 가상 회의 시스템(100)을 도시하는 블록도이다. 가상 회의 시스템(100)은 클라이언트 디바이스(102)의 다수의 인스턴스를 포함하고, 이들 각각은 가상 회의 클라이언트(104) 및 다른 애플리케이션(들)(106)을 포함하는 다수의 애플리케이션을 호스팅한다. 각각의 가상 회의 클라이언트(104)는 가상 회의 클라이언트(104)의 다른 인스턴스들(예를 들어, 각각의 다른 클라이언트 디바이스들(102) 상에서 호스팅됨)에, 그리고 네트워크(112)(예를 들어, Internet)를 통해, 가상 회의 서버 시스템(108) 및 제3자 서버들(110)에 통신가능하게 연결된다. 가상 회의 클라이언트(104)는 API들(Applications Program Interfaces)을 사용하여 로컬-호스팅된 애플리케이션(106)과 또한 통신할 수 있다.
가상 회의 시스템(100)은, 실시간으로 사용자들 사이의 통신을 위해, (예를 들어, 상이한 위치들에서) 사용자 디바이스들에 의한 오디오, 비디오, 이미지, 텍스트 및/또는 다른 신호들의 수신 및 송신을 제공한다. 일부 경우들에서, 2명의 사용자들이 그들의 각각의 디바이스들에서 일-대-일 통신으로 서로 통신하기 위해 가상 회의를 이용할 수 있다. 다른 경우들에서, 실시간, 그룹 대화에 참가하기 위해 2명보다 많은 사용자들에 의해 다방향 가상 회의가 이용될 수 있다. 따라서, 다수의 클라이언트 디바이스들(102)이 가상 회의에 참가할 수 있고, 예를 들어, 클라이언트 디바이스들(102)은 오디오-비디오 콘텐츠 스트림들 및/또는 메시지 콘텐츠(예를 들어, 텍스트, 이미지들)가 참가자 디바이스들 사이에서 송신되는 그룹 대화에 참가한다.
가상 회의 클라이언트(104)는 다른 가상 회의 클라이언트들(104)과 그리고 네트워크(112)를 통해 가상 회의 서버 시스템(108)과 통신하고 데이터를 교환할 수 있다. 가상 회의 클라이언트들(104) 사이에서, 그리고 가상 회의 클라이언트(104)와 가상 회의 서버 시스템(108) 사이에서 교환되는 데이터는, 기능들(예를 들어, 기능들을 기동하는 커맨드) 뿐만 아니라, 페이로드 데이터(예를 들어, 비디오, 오디오, 다른 멀티미디어 데이터, 텍스트)를 포함한다.
가상 회의 서버 시스템(108)은 네트워크(112)를 통해 특정 가상 회의 클라이언트(104)에 서버-측 기능성을 제공한다. 예를 들어, 오디오 및/또는 비디오 스트림들을 송신하는 것에 관하여, (예를 들어, 제1 클라이언트 디바이스(102) 상에 설치된) 가상 회의 클라이언트(104)는 가상 회의 클라이언트(104)의 각각의 인스턴스를 실행하는 다른 참가자 디바이스들(예를 들어, 하나 이상의 제2 클라이언트 디바이스(102))에 의한 후속 수신을 위해 스트리밍 콘텐츠를 가상 회의 서버 시스템(108)으로 송신하는 것을 용이하게 할 수 있다.
스트리밍 콘텐츠는, 예를 들어, 사용자들(예를 들어, 얼굴들)의 실시간 비디오 및/또는 오디오 캡처 및/또는 각각의 디바이스에 의해 캡처되는 다른 시야들 및 사운드들에 대응하는, 클라이언트 디바이스들(102) 상의 센서들(예를 들어, 마이크로폰들, 비디오 카메라들)에 의해 캡처되는 오디오 및/또는 비디오 콘텐츠에 대응할 수 있다. 스트리밍 콘텐츠는, 예를 들어, 가상 회의 클라이언트(104)와 연관된 확장 애플리케이션들 및/또는 위젯들과 함께, 다른 오디오/비주얼 데이터(예를 들어, 애니메이션들, 오버레이들, 이모티콘들 등) 및/또는 메시지 콘텐츠(예를 들어, 텍스트, 스티커들, 이모티콘들, 다른 이미지/비디오 데이터)로 보완될 수 있다.
가상 회의 시스템(100)의 특정 기능들이 가상 회의 클라이언트(104)에 의해 또는 가상 회의 서버 시스템(108)에 의해 수행되는 것으로서 본 명세서에 설명되지만, 가상 회의 클라이언트(104) 또는 가상 회의 서버 시스템(108) 내의 특정 기능성의 위치는 설계 선택사항일 수 있다. 예를 들어, 가상 회의 서버 시스템(108) 내에 특정 기술 및 기능성을 초기에 배치하지만, 클라이언트 디바이스(102)가 충분한 처리 용량을 갖는 가상 회의 클라이언트(104)로 이러한 기술 및 기능성을 나중에 이동시키는 것이 기술적으로 바람직할 수 있다.
가상 회의 서버 시스템(108)은 가상 회의 클라이언트(104)에 제공되는 다양한 서비스들 및 동작들을 지원한다. 이러한 동작들은 가상 회의 클라이언트(104)에 데이터를 송신하는 동작, 그로부터 데이터를 수신하는 동작, 그에 의해 생성되는 데이터를 처리하는 동작을 포함한다. 이러한 데이터는, 예들로서, 위에-언급된 스트리밍 콘텐츠 및/또는 메시지 콘텐츠, 클라이언트 디바이스 정보, 및 소셜 네트워크 정보를 포함할 수 있다. 가상 회의 시스템(100) 내의 데이터 교환들은 가상 회의 클라이언트(104)의 UI들(user interfaces)을 통해 이용가능한 기능들을 통해 기동되고 제어된다.
이제 구체적으로 가상 회의 서버 시스템(108)을 살펴보면, API(Application Program Interface) 서버(114)가 애플리케이션 서버들(118)에 연결되어, 프로그램 방식의 인터페이스를 이에 제공한다. 애플리케이션 서버들(118)은 데이터베이스 서버(124)에 통신가능하게 연결되고, 이는 애플리케이션 서버들(118)에 의해 처리되는 가상 회의 콘텐츠와 연관된 데이터를 저장하는 데이터베이스(126)로의 액세스를 용이하게 한다. 유사하게, 웹 서버(116)는 애플리케이션 서버들(118)에 연결되고, 웹-기반 인터페이스들을 애플리케이션 서버들(118)에 제공한다. 이를 위해, 웹 서버(116)는 HTTP(Hypertext Transfer Protocol) 및 몇몇 다른 관련 프로토콜을 통해 착신 네트워크 요청들을 처리한다.
API(Application Program Interface) 서버(114)는 클라이언트 디바이스(102)와 애플리케이션 서버들(118) 사이에서 가상 회의 데이터(예를 들어, 커맨드들, 오디오/비디오 페이로드들)를 수신하고 송신한다. 구체적으로, API(Application Program Interface) 서버(114)는 애플리케이션 서버들(118)의 기능성을 기동하기 위해 가상 회의 클라이언트(104)에 의해 호출되거나 또는 질의될 수 있는 인터페이스들(예를 들어, 루틴들 및 프로토콜들)의 세트를 제공한다. API(Application Program Interface) 서버(114)는, 계정 등록, 로그인 기능성, 오디오 및/또는 비디오 콘텐츠의 스트리밍, 및/또는 애플리케이션 서버(118)를 통한 특정 가상 회의 클라이언트(104)로부터 다른 가상 회의 클라이언트(104)로의 메시지 콘텐츠의 전송 및 검색, 클라이언트 디바이스(102)의 사용자의 연락처 리스트의 검색, 사용자 그래프(예를 들어, 소셜 그래프)에 대한 사용자(예를 들어, 연락처)의 추가 및 삭제, 및 애플리케이션 이벤트(예를 들어, 가상 회의 클라이언트(104)에 관련됨)를 여는 것을 포함하는, 애플리케이션 서버(118)에 의해 지원되는 다양한 기능들을 노출시킨다.
애플리케이션 프로그램 서버(118)는, 예를 들어, 가상 회의 서버(120) 및 소셜 네트워크 서버(122)를 포함하는, 다수의 서버 애플리케이션 프로그램들 및 서브시스템들을 호스팅한다. 가상 회의 서버(120)는, 가상 회의 클라이언트(104)의 다수의 인스턴스들로부터 수신되는 오디오-비디오 피드들에 포함되는 콘텐츠(예를 들어, 스트리밍 콘텐츠)의 집성 및 다른 처리에 특히 관련되는, 다수의 가상 회의 처리 기술들 및 기능성들을 구현한다. 데이터의 다른 프로세서 및 메모리 집약적인 처리가 또한, 이러한 처리를 위한 하드웨어 요건들을 고려하여, 가상 회의 서버(120)에 의해 서버-측에서 수행될 수 있다.
소셜 네트워크 서버(122)는 다양한 소셜 네트워킹 기능 기능들 및 서비스들을 지원하고 이러한 기능들 및 서비스들을 가상 회의 서버(120)에 이용가능하게 한다. 이를 위해, 소셜 네트워크 서버(122)는 데이터베이스(126) 내에 사용자 그래프(304)(도 3에 도시됨)를 유지하고 이에 액세스한다. 소셜 네트워크 서버(122)에 의해 지원되는 기능들 및 서비스들의 예들은, 특정 사용자가 관계들을 갖는 가상 회의 시스템(100)의 다른 사용자들의 식별(예를 들어, 친구들, 동료들, 교사들, 학생들 등과 같은 연락처)을 포함한다.
하나 이상의 실시예에서, 제1 클라이언트 디바이스(102) 상에서 실행되는 가상 회의 클라이언트(104)를 통해 상호작용하는 사용자는 참가자(들)를 선택하고 가상 회의에 초청할 수 있다. 예를 들어, 참가자들은 소셜 네트워크 서버(122)에 의해 유지되는 연락처들로부터 선택될 수 있다. 다른 예에서, 참가자들은 제1 클라이언트 디바이스(102)와 연관하여(예를 들어, 로컬 메모리에 또는 클라우드-기반 사용자 계정에) 저장되는 연락처 주소록 내에 포함되는 연락처들로부터 선택될 수 있다. 다른 예에서, 참가자들은 사용자가 참가자들의 이메일 어드레스들 및/또는 전화 번호들을 수동으로 입력하는 것에 의해 선택될 수 있다.
제1 클라이언트 디바이스(102)의 사용자는 가상 회의 클라이언트(104)에 의해 제공되는 적절한 사용자 인터페이스 엘리먼트를 선택하는 것에 의해 가상 회의를 착수할 수 있고, 그렇게 함으로써 초청된 참가자들에게, 그들 각각의 디바이스들(예를 들어, 하나 이상의 제2 클라이언트 디바이스(102))에서, 가상 회의의 참가를 수락하거나 또는 거절하라고 프롬프트한다. 참가자(들)가 (예를 들어, 프롬프트를 통해) 초청을 수락하였을 때, 가상 회의 서버 시스템(108)은, 초청을 제공한 사용자를 포함하여, 참가자 클라이언트 디바이스들(102) 사이에 세션 정보가 공개되는, 초기화 절차를 수행할 수 있다. 참가자 클라이언트 디바이스들(102) 각각은 각각의 세션 정보를 가상 회의 서버 시스템(108)에 제공할 수 있고, 이는 결국 세션 정보를 다른 참가자 클라이언트 디바이스들(102)에 공개한다. 각각의 클라이언트 디바이스(102)에 대한 세션 정보는, 콘텐츠 스트림(들) 및/또는 메시지 콘텐츠에 대한 각각의 식별자들과 함께, 클라이언트 디바이스(102)에 의해 이용가능하게 되는 콘텐츠 스트림(들) 및/또는 메시지 콘텐츠를 포함할 수 있다.
도 2에 관하여 아래에 설명되는 바와 같이, 가상 회의는 하나 이상의 방(예를 들어, 가상 방)을 포함하는 가상 공간에 대응할 수 있다. 가상 공간 및 그 대응하는 방들은 초청 사용자에 의해 및/또는 다른 사용자들에 의해 적어도 부분적으로 생성되었을 수 있다. 이러한 방식으로, 최종 사용자는, 방들을 갖는 그들 자신의 가상 공간들을 생성하고, 및/또는 미리 설정된 이용가능 방들에 기초하여 가상 공간을 설계하는, 관리자로서 작용할 수 있다.
도 2는, 일부 예들에 따른, 가상 회의 시스템(100)에 관한 추가 상세사항들을 예시하는 블록도이다. 구체적으로, 가상 회의 시스템(100)은 가상 회의 클라이언트(104) 및 애플리케이션 서버들(118)을 포함하는 것으로 도시된다. 가상 회의 시스템(100)은, 가상 회의 클라이언트(104)에 의해 클라이언트-측에서 그리고 애플리케이션 서버들(118)에 의해 서버-측에서 지원되는, 다수의 서브시스템들을 구현한다. 이러한 서브시스템들은, 예를 들어, 가상 공간 설계 인터페이스(204)를 구현하는 가상 공간 생성 시스템(202), 및 가상 공간 내비게이션 인터페이스(208)를 구현하는 가상 공간 참가 시스템(206)을 포함한다.
가상 공간 생성 시스템(202)은 참가자들이 가상 회의에 관여할 수 있는 하나 이상의 가상 공간(들)을 사용자가 설계하는 것을 제공한다. 하나 이상의 실시예에서, 가상 공간은 가상 회의를 수용하도록 구성되는 하나 이상의 방을 갖는 환경에 대응한다.
가상 공간은 가상 회의를 위해 다른 사용자들을 초청하기를 원하는 최종 사용자에 의해 (예를 들어, 방들을 갖는 미리 정의된 가상 공간들의 세트 중에서) 생성 및/또는 선택될 수 있다. 또한, 가상 공간의 개별 방들은 최종 사용자에 의해 (예를 들어, 미리 정의된 방들의 세트 중에서) 신규-생성 및/또는 선택될 수 있다. 하나 이상의 실시예에서, 가상 공간 생성 시스템(202)은, 가상 공간에 포함하기 위한 방들을 생성 및/또는 선택하는 것을 포함하는, 가상 공간을 설계하기 위해 최종 사용자에 의해 사용가능한 가상 공간 설계 인터페이스(204)를 포함한다.
도 4에 관하여 아래에 논의되는 바와 같이, 가상 공간 설계 인터페이스(204)는 최종 사용자(예를 들어, 관리자로서 동작함)가 방 내의 다수의 엘리먼트들을 선택 및/또는 배치하는 것을 가능하게 한다. 엘리먼트들의 예들은, (예를 들어, 참가자들의 각각의 비디오 피드들을 디스플레이하기 위한) 참가자 비디오 엘리먼트들, (예를 들어, 참가자들이 방 안에서 텍스트-기반 메시지들, 스티커들 및/또는 반응들을 제공하기 위한) 채팅 인터페이스들, (예를 들어, 제1 방에서 하나 이상의 제2 방으로의 셔플링을 위한) 브레이크아웃 버튼들, 및/또는 특정 액션들(예를 들어, 가상 마이크로폰에 말하기, 버튼을 통해 관리자에게 질의하기 등)을 수행하기 위한 다른 사용자-정의가능 엘리먼트들을 포함하지만, 이에 제한되지 않는다.
가상 공간 참가 시스템(206)은 가상 공간 내의 참가자들 사이에서 가상 회의를 수행하도록 구성된다. 참가자들은 가상 공간을 생성한 최종 사용자(예를 들어, 관리자) 뿐만 아니라, 최종 사용자에 의해 생성/선택된 가상 공간에 관하여 가상 회의에 참가하도록 초청된 해당 사용자들을 포함할 수 있다. 가상 공간 참가 시스템(206)은, 참가자들이 가상 공간의 방들 사이에서 내비게이트하고, 방들에 관하여 가상 회의에 참가하는 것을 허용하는 가상 공간 내비게이션 인터페이스(208)(예를 들어, 도 5에 관하여 아래에 논의됨)를 포함한다.
하나 이상의 실시예에서, 가상 공간 생성 시스템(202) 및 가상 공간 참가 시스템(206)은 최종 사용자(예를 들어, 관리자)가 가상 회의를 위해 상이한 타입들의 환경들(예를 들어, 방들을 갖는 가상 공간들)을 생성하고, 참가자들이 이러한 환경들 내에서 가상 회의에 관여하는 것을 제공한다. 이러한 가상 회의의 예들은, 사업 회의, 세미나, 프레젠테이션, 교실 강의, 교사 사무실 시간, 콘서트, 레유니언, 가상 저녁식사, 탈출 방 등을 포함하지만, 이들로 제한되지 않는다.
도 3은, 특정 예들에 따른, 가상 회의 서버 시스템(108)의 데이터베이스(126)에 저장될 수 있는 데이터 구조들(300)을 예시하는 개략도이다. 데이터베이스(126)의 콘텐츠가 다수의 테이블들을 포함하는 것으로 도시되지만, 데이터는 다른 타입들의 데이터 구조들에 (예를 들어, 객체-지향 데이터베이스로서) 저장될 수 있다는 점이 인식될 것이다.
데이터베이스(126)는 가상 회의 시스템(100)의 사용자(참가자)에 관련된 프로필 데이터(302), 사용자 그래프(304) 및 사용자 테이블(306)을 포함한다. 사용자 테이블(306)은 사용자 데이터를 저장하고, 사용자 그래프(304) 및 프로필 데이터(302)에 (예를 들어, 참조용으로) 링크된다. 가상 회의 시스템(100)의 각각의 사용자는 고유 식별자(이메일 어드레스, 전화 번호, 소셜 네트워크 식별자 등)와 연관된다.
사용자 그래프(304)는 사용자들 사이의 관계들 및 연관들에 관한 정보를 (예를 들어, 소셜 네트워크 서버(122)와 함께) 저장한다. 이러한 관계들은, 단지 예를 들어, 소셜, 전문적(예를 들어, 공통 법인 또는 조직에서의 업무) 관심-기반 또는 활동-기반일 수 있다. 위에 주목된 바와 같이, 사용자 그래프(304)는 소셜 네트워크 서버(122)에 의해 적어도 부분적으로 유지되고 액세스될 수 있다.
프로필 데이터(302)는 특정 사용자에 관한 다수 타입들의 프로필 데이터를 저장한다. 프로필 데이터(302)는, 특정 사용자에 의해 명시되는 프라이버시 설정들에 기초하여, 선택적으로 사용되고, 가상 회의 시스템(100)의 다른 사용자들에게 제시될 수 있다. 프로필 데이터(302)는, 예를 들어, 사용자 이름, 전화 번호, 이메일 어드레스, 및/또는 설정들(예를 들어, 통지 및 프라이버시 설정들)은 물론, 사용자-선택 아바타 표현을 포함한다.
데이터베이스(126)는 가상 공간 테이블(308)을 추가로 포함한다. 위에 주목된 바와 같이, 가상 공간은 가상 회의를 수용하도록 구성되는 하나 이상의 방을 갖는 환경에 대응한다. 가상 공간은 사용자에 의해 신규-생성될 수 있거나, 또는 가상 회의를 위해 (예를 들어, 다른 사용자들, 시스템 관리자들 등에 의해) 이용가능하게 되는 공적 가상 공간들의 하나 이상의 세트 내에 포함될 수 있다. 가상 공간 테이블(308)은 (예를 들어, 특정 사용자가 이러한 가상 공간(들)을 공적으로 만들지 않은 경우에) 공적 가상 공간들의 하나 이상의 세트 뿐만 아니라, 사용자에 의해 생성되는 임의의 사적 가상 공간(들)을 표현하는 정보를 저장한다.
하나 이상의 실시예에서, 가상 공간 테이블(308)은 가상 공간들과 해당 가상 공간들을 선택한 사용자들(예를 들어, 사용자 테이블(306) 내) 사이의 연관성들을 저장한다. 이러한 방식으로, 특정 사용자가 연관된 하나 이상의 가상 공간을 갖는 것이 가능하다. 더욱이, 데이터베이스(126)는 가상 공간 테이블(308) 내의 가상 공간들과 연관될 수 있는 방 테이블(310)을 포함한다. 위에 주목된 바와 같이, 방이 사용자에 의해 신규-생성될 수 있거나, 또는 사용자 선택에 이용가능하게 되는 공적 방들의 하나 이상의 세트(예를 들어, 갤러리들) 내에 포함될 수 있다. 방 테이블(310)은 (예를 들어, 특정 사용자가 이러한 방(들)을 공적으로 만들지 않은 경우) 사용자에 의해 생성되는 임의의 사적 방(들) 뿐만 아니라, 방들의 하나 이상의 세트를 표현하는 정보를 저장한다. 저장된 정보는 가상 공간에서 사용하기 위한 대응하는 방을 생성하기 위해 가상 회의 시스템(100)에 의해 사용가능하다. 하나 이상의 실시예에서, 저장된 정보는 대응하는 참가자들에 의한 후속 재생을 위해 특정 가상 회의의 기록(예를 들어, 오디오 및/또는 비디오 기록)을 추가로 포함할 수 있다.
도 4는, 일부 예시적인 실시예들에 따른, 가상 공간을 설계하기 위한 인터페이스 엘리먼트들을 갖는 가상 공간 설계 인터페이스(204)를 예시한다. 가상 공간을 설계하는 것은 가상 공간에 포함시키기 위한 방들의 생성 및/또는 선택을 포함할 수 있다. 가상 공간 설계 인터페이스(204)는 메뉴 인터페이스(402), 방 엘리먼트 인터페이스(404), 엘리먼트 특성 인터페이스(406), 제어 인터페이스(408), 방 리스트 인터페이스(410), 방 캔버스 인터페이스(412), 및 관리자 이름(414)을 포함한다. 엘리먼트들(402 내지 414)은 가상 공간 설계 인터페이스(204)에 대한 인터페이스 엘리먼트들의 예에 대응하고, 추가적인, 더 적은 및/또는 상이한 인터페이스 엘리먼트들이 사용될 수 있다는 점이 주목된다.
(예를 들어, 관리자 이름(414)에 대응하는) 관리자는 가상 공간을 설계하기 위해 다양한 인터페이스 엘리먼트들을 사용할 수 있다. 하나 이상의 실시예에서, 메뉴 인터페이스(402)는 가상 공간(예를 들어, "작업공간(workspace)"), 가상 공간 내의 방들, 및/또는 방 내의 엘리먼트들에 관련된 사용자-선택가능 카테고리들(예를 들어, 메뉴 헤딩들)을 포함한다. 예를 들어, 작업공간 카테고리는, 가상 공간에 대한 설정들을 관리하고, 가상 공간에 대한 초청들을 관리하고, 가상 공간의 버전들을 관리하고, (예를 들어, 사용자들에 의한 차후 사용을 위해) 가상 공간을 공개하고, 가상 공간 공개들을 관리하고, 및/또는 가상 공간에 관하여 기록들(예를 들어, 오디오 및/또는 비디오 기록들)을 시작/관리하는 옵션들을 (예를 들어, 드롭-다운 리스트를 통해) 제시하기 위해 사용자-선택가능하다.
메뉴 인터페이스(402)의 방 카테고리는 가상 공간 내의 방에 대한 설정들을 관리하고, 방 배경을 설정하고, 방 리스트 인터페이스(410)에 열거되는 방들에 대한 순서를 설정하고, 새로운 방을 생성하고, 이용가능한 방들의 세트로부터 방을 가져오고, 방을 제거하고, 방을 공개하고, 방 공개들을 관리하고 및/또는, 방에 관하여 기록들을 시작/관리하기 위한 옵션들을 (예를 들어, 드롭-다운 리스트를 통해) 제시하기 위해 사용자-선택가능하다.
또한, 엘리먼트 카테고리는 엘리먼트들을 방에 삽입하고, 형상들을 방에 삽입하며, 전경/배경 엘리먼트들, 배열/배치 엘리먼트들, 및/또는 그룹 엘리먼트들을 위한 옵션들을 (예를 들어, 드롭다운 리스트를 통해) 제시하기 위해 사용자-선택가능하다. 엘리먼트들의 예들은, 액션 버튼, 아날로그 시계, 청중 질문 보드, 백팩 아이템, 브레이크아웃 버튼, 채팅, 폐쇄 캡션 디스플레이, 폐쇄 캡션 입력, 카운트다운, 시계, 디지털 시계, 도어벨, 양면 이미지, 피드백, 이미지, 다중 사용자 비디오 채팅, 음악, 참가자 오디오 믹서, 참가자 카운트, 참가자 비디오, 사진 스트립, 폴, 랜덤 소스, 방 미리보기, 스케줄링된 시간, 사운드 효과, 스톱워치, 사진 촬영, 텍스트, 타이머, 사용자 탐색, 비디오, 대기 리스트, 웹 미디어, 웹사이트를 포함하지만, 이에 제한되지는 않는다. 형상들의 예들은 원형, 직사각형 및 삼각형을 포함하지만, 이에 제한되지 않는다.
메뉴 인터페이스(402)의 사용자 카테고리는 가상 공간의 사용자들/참가자들을 관리하기 위한 옵션들을 (예를 들어, 드롭-다운 리스트를 통해) 제시하기 위해(예를 들어, 관리자 또는 참석자/참가자와 같은 역할들 사이를 구별하기 위해, 참가자들에 대한 태그들을 추가하기 위해) 사용자-선택가능하다. 또한, 편집 카테고리는 편집 동작들(예를 들어, 실행 취소, 재실행, 잘라내기, 복사, 붙여넣기)을 수행하기 위해 사용자-선택가능하고, 도움말 카테고리는 도움말 동작들(예를 들어, 시작되는 것, 모순되는 것, 라이브 도움말, 피드백을 제출하는 것)을 수행하기 위해 사용자-선택가능하다.
하나 이상의 실시예에서, 방 엘리먼트 인터페이스(404)는 (예를 들어, 위에-언급된 엘리먼트 카테고리를 통해 이용가능한 것들의 서브세트에 대응하는) 엘리먼트들을 현재 방에 삽입하기 위한 사용자-선택가능 아이콘들을 포함한다. 예를 들어, 엘리먼트를 선택하고 선택된 엘리먼트를, 현재 방의 레이아웃을 표현하는, 방 캔버스 인터페이스(412) 상으로 드래그하는 것에 의해 엘리먼트가 현재 방 내에 추가 및/또는 위치결정될 수 있다.
하나 이상의 실시예에서, 방 엘리먼트 인터페이스(404)는 이에 제한되는 것은 아니지만 다음을 포함하는 아이콘들을 포함한다: 방에 텍스트를 추가하기 위한 텍스트 아이콘; 단일 참가자 비디오 엘리먼트(예를 들어, 그 참가자의 비디오 피드를 디스플레이하기 위해 단일 참가자에 의해 선택가능한 인터페이스 엘리먼트)를 방에 추가하기 위한 참가자 비디오 아이콘; 다수 참가자 비디오 엘리먼트(예를 들어, 해당 참가자들에 대한 비디오 피드들을 디스플레이하기 위해 하나 이상의 참가자에 의해 선택가능한 인터페이스 엘리먼트)를 방에 추가하기 위한 다중 사용자 비디오 아이콘; (예를 들어, 텍스트, 스티커, 이모티콘 등을 사용하는 메시징을 위한) 채팅 인터페이스를 방에 추가하기 위한 채팅 아이콘; 선택된 비디오의 재생을 위한 방에 비디오 재생 엘리먼트(예를 들어, 스크린)를 추가하기 위한 비디오 재생 아이콘; 방에 대한 배경 컬러/기울기, 이미지 또는 비디오를 선택하기 위한 배경 아이콘; 사용자-정의 액션(예를 들어, 가상 마이크로폰에 말하기, 버튼을 통해 관리자에게 질의하기 등)을 수행하기 위한 방에 액션 엘리먼트(예를 들어, 버튼)를 추가하기 위한 액션 아이콘; 및/또는 현재 방과 하나 이상의 다른 방 사이에 선택된 참가자들을 셔플링하기 위한 브레이크아웃 엘리먼트(예를 들어, 버튼)를 추가하는 브레이크아웃 버튼.
하나 이상의 실시예에서, 엘리먼트 특성 인터페이스(406)는 위에-설명된 방 엘리먼트들에 대한 구성 특성들을 설정하기 위한 다양한 필드들을 포함한다. 예를 들어, 일반적으로 엘리먼트들(예를 들어, 텍스트, 단일 참가자 비디오 엘리먼트, 멀티 참가자 비디오 엘리먼트, 채팅 인터페이스, 비디오 엘리먼트, 배경 이미지, 액션 엘리먼트, 브레이크아웃 버튼)에 관하여, 엘리먼트 특성 인터페이스(406)는 엘리먼트 타이틀/명칭, 불투명도, 기울기, 스타일, 레이아웃, 경계/코너, 섀도, 상호작용(예를 들어, 참가자(들)가 어느 정도까지 엘리먼트를 삭제, 수정, 크기 조정할 수 있는지), 필터링, 풀 스크린 상태, 조건들, 액세스가능성 및 엘리먼트에 대한 액션들을 설정하기 위한 필드들을 포함한다. 단일 참가자 비디오 엘리먼트에 대해, 엘리먼트 특성 인터페이스(406)는 (예를 들어, 자동으로, 참가자 및/또는 관리자 최종 사용자에 의해 수동으로) 가상 회의 동안 사용자가 단일 참가자 비디오 엘리먼트에 배치되는 방식을 설정하기 위한 추가 필드를 포함한다. 또한, 채팅 인터페이스에 대해, 엘리먼트 특성 인터페이스(406)는 누가(예를 들어, 관리자 및/또는 참가자들) 채팅 입력을 제공할 수 있는지 및/또는 어느 타입들의 입력(예를 들어, 텍스트, 스티커, 이모티콘 등)이 이용가능한지를 설정하기 위한 추가의 특성들을 포함한다. 액션 엘리먼트에 대해, 엘리먼트 특성 인터페이스(406)는 액션 엘리먼트(예를 들어, 버튼)의 사용자 선택에 응답하여 어떤 타입의 액션이 수행될지를 설정하기 위한 추가의 특성들을 포함한다. 더욱이, 브레이크아웃 엘리먼트에 대해, 엘리먼트 특성 인터페이스(406)는 참가자들 및/또는 브레이크아웃 방들을 선택하기 위한 추가의 특성들을 포함한다.
하나 이상의 실시예에서, 엘리먼트 특성 인터페이스(406)는 방 캔버스 인터페이스(412)에 대한 구성 특성들을 설정하기 위한 필드들을 추가로 포함한다. 예를 들어, 엘리먼트 특성 인터페이스(406)는 다수의 사용자들을 시각화하기 위해 가짜 참가자들(예를 들어, 시뮬레이션된 비디오 피드들)의 수를 선택하고, 음악(예를 들어, 배경 음악)을 선택하고, 및/또는 방 내의 가상 회의에 관하여 실시간 반응을 표시하기 위해 참가자들에 대한 반응 버튼들을 선택하기 위한 필드들을 포함한다.
하나 이상의 실시예에서, 제어 인터페이스(408)는 가상 공간에 대한 제어들(예를 들어, 관리 제어들)에 대응하는 사용자-선택가능 아이콘들을 포함한다. 예를 들어, 제어 인터페이스(408)는 이에 제한되는 것은 아니지만 다음을 포함하는 아이콘들을 포함한다: 방을 설계하기 위한 감독 모드와 가상 공간 설계 인터페이스(204) 내의 방을 보기 위한 사용자 모드 사이에서 토글링하기 위한 감독 모드 아이콘(예를 들어, 사용자 모드가 아닌 동안 방 엘리먼트 인터페이스(404) 및 엘리먼트 특성 인터페이스(406)를 포함하는 감독 모드를 가짐); 가상 공간 내비게이션 인터페이스(208) 내의 방을 보기 위한 뷰 아이콘; (예를 들어, 공동-관리자들과 같은 다른 사용자(들)와의 협력 설계를 위한) 공유 스크린 아이콘; 마이크로폰을 인에이블 또는 디스에이블하기 위한 마이크로폰 아이콘; 도움말 아이콘(예를 들어, 시작되는 것, 모순되는 것, 라이브 도움말, 피드백을 제출하는 것); (예를 들어, 가상 공간을 방문할 참가자들에게 전송하기 위한 초청 링크를 디스플레이하기 위한) 초청 아이콘; (예를 들어, 가상 회의를 위한 최종 사용자의 비디오 및 오디오 디바이스들을 선택하고, 사용자 아바타를 선택하기 위한) 설정 아이콘; 및/또는 가상 공간 설계 인터페이스(204)를 나가기 위한 나가기 아이콘.
하나 이상의 실시예에서, 방 리스트 인터페이스(410)는 가상 공간에 대한 방들의 리스트를 디스플레이한다. 각각의 열거된 방은 선택된 방을 (예를 들어, 감독 모드에서) 편집하고 및/또는 (예를 들어, 사용자 모드에서) 보도록 스위칭하기 위해 사용자 선택가능하다. 위에 주목된 바와 같이, 방들의 리스트는 메뉴 인터페이스(402)의 방 카테고리 내의 옵션들을 통해 (예를 들어, 방들을 추가, 가져오기 및/또는 제거하는 것에 의해) 수정될 수 있다.
도 5는, 일부 예시적인 실시예들에 따른, 가상 공간의 방들 사이에서 내비게이트하고 방들에 관하여 가상 회의에 참가하기 위한 인터페이스 엘리먼트들을 갖는 가상 공간 내비게이션 인터페이스(208)를 예시한다. 가상 공간 내비게이션 인터페이스(208)는 제어 인터페이스(502), 방 리스트 인터페이스(504), 현재 방 인터페이스(506), 참가자 비디오 엘리먼트(508) 및 참가자 비디오 엘리먼트(510)를 포함한다. (삭제된) 엘리먼트들(502 내지 514)은 가상 공간 내비게이션 인터페이스(208)에 대한 인터페이스 엘리먼트들의 예에 대응하고, 추가적인, 더 적은 및/또는 상이한 인터페이스 엘리먼트들이 사용될 수 있다는 점이 주목된다.
하나 이상의 실시예에서, 제어 인터페이스(502)는 가상 공간에 대한 제어들(예를 들어, 관리 제어들)에 대응하는 사용자-선택가능 아이콘들을 포함한다. 예를 들어, 제어 인터페이스(408)는 이에 제한되는 것은 아니지만 다음을 포함하는 아이콘들을 포함한다: 현재 방을 편집하기 위해 가상 공간 설계 인터페이스(204)로 리다이렉트하기 위한 편집 아이콘; 현재 방에 대한 볼륨 레벨을 조정하기 위한 볼륨 아이콘; (예를 들어, 다른 사람들이 방에 반드시 참여하지 않고 방을 보는 것을 허용하기 위한) 공유 스크린 아이콘; 마이크로폰을 음소거 및 음소거 해제하기 위한 마이크로폰 아이콘; 도움말 아이콘(예를 들어, 시작되는 것, 모순되는 것, 라이브 도움말, 피드백을 제출하는 것); (예를 들어, 가상 공간을 방문할 참가자들에 대한 초청 링크를 디스플레이하기 위한) 초청 아이콘; (예를 들어, 가상 회의를 위한 최종 사용자의 비디오 및 오디오 디바이스들을 선택하고, 사용자 아바타를 선택하기 위한) 설정 아이콘; 및/또는 가상 공간 설계 인터페이스(204)를 나가기 위한 나가기 아이콘.
하나 이상의 실시예에서, 방 리스트 인터페이스(504)는 가상 공간에 대한 방들의 리스트를 디스플레이한다. 각각의 열거된 방은 (예를 들어, 가상 회의를 위해) 선택된 방으로 스위칭하기 위해 사용자 선택가능하다. 선택된 방은 현재 방 인터페이스(506) 내의 현재 방으로서 제시된다. 이러한 방식으로, 참가자는 가상 공간 내에서 이용가능한 다수의 방들 사이에서 내비게이트할 수 있다. 대안적으로 또는 또한, 가상 공간(예를 들어, 평면도) 및 그것의 대응하는 방들의 맵 뷰를 묘사하는 가상 공간 맵 인터페이스(도시되지 않음)를 통해 방들 사이의 내비게이션이 가능하며, 각각의 방은 그것을 내비게이트하기 위해 사용자 선택가능하다. 대안적으로 또는 또한, 방 내에 내비게이션 버튼(도시되지 않음)을 위치시키는것에 의해 방들 사이의 내비게이션이 추가로 가능하며, 여기서 버튼의 사용자 선택은 다른 방(예를 들어, 미리 정의된 방)으로 내비게이트하는 것을 초래한다. 위에 주목된 바와 같이, 가상 공간 설계 인터페이스(204)는 가상 공간 및 그의 대응하는 방들의 설계를 허용한다. 이와 같이, 방들 사이의 내비게이션은 가상 공간의 설계에 적어도 부분적으로 기초한다(예를 들어, 가상 공간은 위에-언급된 방 리스트 인터페이스(504), 가상 공간 맵/플로어 플랜 인터페이스 및/또는 내비게이션 버튼 중 하나 이상을 포함할 수 있다).
현재 방 인터페이스(506)에 관하여, 각각의 참가자는 각각의 참가자 비디오 엘리먼트로서 표현된다. 위에 주목된 바와 같이, 참가자 비디오 엘리먼트는 해당 참가자의 비디오 피드를 디스플레이하기 위해 단일 참가자에 의해 선택가능한 인터페이스 엘리먼트(예를 들어, 박스)에 대응한다. 도 5의 예는 참가자 비디오 엘리먼트(508)에 연관된 제1 참가자 및 참가자 비디오 엘리먼트(510)에 연관된 제2 참가자를 포함한다. 하나 이상의 실시예에서, 제1 참가자의 관점에 관하여, 제2 참가자의 피드를 보여주는 참가자 비디오 엘리먼트(510)는 참가자 버튼(들)(512)을 포함할 수 있다. 예를 들어, 참가자 버튼(들)(512)은 제2 참가자에 관하여 미리 정의된 액션(예를 들어, 측 대화를 착수하고, 제1 참가자가 방을 이동할 때 제2 참가자가 제1 참가자를 따르도록 지정함)을 수행하도록 제1 참가자에 의해 선택가능하다.
도 5의 예가 2명의 참가자들을 예시하고 있지만, 현재 방 인터페이스(506)가 가상 회의에 대한 추가적인 참가자들을 수용하는 것이 가능하다. 추가적인 참가자들은 가상 공간 설계 인터페이스(204)에 의해 설계되는 참가자 비디오 엘리먼트들(예를 들어, 박스들)의 위치결정에 기초하여 (예를 들어, 자동으로 및/또는 드래깅에 의해 수동으로) 위치결정될 수 있다.
하나 이상의 실시예에서, 가상 공간 내비게이션 인터페이스(208)는 주어진 참가자가 관리자인지 또는 다른 참가자(예를 들어, 참석자)인지에 기초하여 변할 수 있다. 예를 들어, 일부 참가자 비디오 엘리먼트들은 관리자들을 위해 (예를 들어, 가상 공간 설계 인터페이스(204)를 통해) 지정될 수 있는 반면, 다른 참가자 비디오 엘리먼트들은 다른 참가자들을 위해 지정된다. 가상 회의 서버 시스템(108)은 예를 들어, 가상 공간 설계 인터페이스(204)에 의해 제공되는 메뉴 인터페이스(402)의 사용자 카테고리를 통해 참가자들에게 배정되는 위에-설명된 태그들에 기초하여, 이러한 관리자 또는 다른 참가자 역할들 사이를 구별하도록 구성된다.
도 6은, 일부 예시적인 실시예들에 따른, 가상 회의 시스템 내에서 참가자 대화의 개요를 제시하기 위한 프로세스(600)를 예시하는 상호작용 도면이다. 설명의 목적들을 위해, 프로세스(600)는 본 명세서에서 제1 클라이언트 디바이스(602), 하나 이상의 제2 클라이언트 디바이스(들)(604) 및 가상 회의 서버 시스템(108)을 참조하여 설명된다. 제1 클라이언트 디바이스(602) 및 제2 클라이언트 디바이스(들)(604) 각각은 각각의 클라이언트 디바이스(102)에 대응할 수 있다. 프로세스(600)는 제1 클라이언트 디바이스(602), 제2 클라이언트 디바이스(들)(604) 및 가상 회의 서버 시스템(108)으로 제한되지 않는다. 더욱이, 프로세스(600)의 하나 이상의 블록(또는 동작)은 제1 클라이언트 디바이스(602), 제2 클라이언트 디바이스(들)(604) 또는 가상 회의 서버 시스템(108)의 하나 이상의 다른 컴포넌트에 의해 및/또는 다른 적합한 디바이스들에 의해 수행될 수 있다. 추가로 설명의 목적들을 위해, 프로세스(600)의 블록들(또는 동작들)은 직렬로 또는 선형으로 발생하는 것으로서 본 명세서에서 설명된다. 그러나, 프로세스(600)의 다수의 블록들(또는 동작들)이 병렬로 또는 동시에 발생할 수 있다. 또한, 프로세스(600)의 블록들(또는 동작들)은 도시되는 순서로 수행될 필요가 없고 및/또는 프로세스(600)의 하나 이상의 블록(또는 동작)은 수행될 필요가 없고 및/또는 다른 동작들로 대체될 수 있다. 프로세스(600)는 그 동작들이 완료될 때 종료될 수 있다. 또한, 프로세스(600)는 방법, 절차, 알고리즘 등에 대응할 수 있다.
제1 클라이언트 디바이스(602) 및 제2 클라이언트 디바이스(들)(604) 각각은 그 상에 설치되는 가상 회의 클라이언트(104)의 인스턴스들을 갖는다. 도 6의 예에서, 제1 클라이언트 디바이스(602) 및 하나 이상의 제2 클라이언트 디바이스(들)(604)는 가상 회의 서버 시스템(108)의 각각의 제1 참가자 및 각각의 하나 이상의 제2 참가자(들)와 연관된다. 예를 들어, 제1 참가자는 가상 회의 서버 시스템(108)의 제1 사용자 계정과 연관될 수 있고, 제2 참가자(들)는 가상 회의 서버 시스템(108)의 제2 사용자 계정(들)과 연관될 수 있다.
위에 주목된 바와 같이, 제1 참가자 및 제2 참가자(들)는 제1 참가자 및 제2 참가자(들)에 대한 각각의 사용자 계정과 연관된 고유 식별자(예를 들어, 이메일 어드레스, 전화 번호)에 기초하여 가상 회의 서버 시스템(108)에 의해 식별될 수 있다. 하나 이상의 실시예에서, 가상 회의 서버 시스템(108)은 특정 사용자가 관계를 갖는 연락처를 식별하도록 구성되는 소셜 네트워크 서버(122)를 구현하고 및/또는 이와 함께 작동한다. 예를 들어, 제1 참가자 및 제2 참가자(들)는 가상 회의 서버 시스템(108)에 관하여 연락처일 수 있다.
본 명세서에 설명되는 바와 같이, 가상 회의 시스템(100)은 가상 공간 내의 참가자 대화의 개요를 관리자에게 제시하는 것을 제공한다. 예를 들어, 이러한 개요는 대시보드 인터페이스 내에 제시된다. 대시보드 인터페이스는 가상 공간의 방들로의 미리보기들을 포함하고, 각각의 방에 대한 대화들에 관련된 각각의 메트릭들을 추가로 포함한다.
동작들 606 내지 608에서, 가상 회의 서버 시스템(108)은 (예를 들어, 관리자의) 제1 클라이언트 디바이스(602) 및 (예를 들어, 다른 참가자들, 참석자들의) 하나 이상의 제2 클라이언트 디바이스(들)(604)를 포함하는 참가자 디바이스들 사이의 실시간 통신을 제공한다. 실시간 통신은 복수의 방들을 포함하는 가상 공간 내에서 발생할 수 있다. 주어진 시간에, 상이한 참가자들은 가상 공간의 상이한 방들에 있을 수 있다. 각각의 참가자는 각각의 참가자 비디오 엘리먼트(예를 들어, 각각의 비디오 피드에 대응하는 도 5의 엘리먼트들(508-510))에 의해 그들의 현재 방 내에 표현될 수 있다.
도 6의 예에서, 동작 606은 제1 참가자(예를 들어, 관리자)가 방 내의 다른 참가자들과 반드시 회의하고 있는 것은 아닐 수 있다는 것을 예시하기 위해 점선으로서 묘사된다. 본 명세서에 논의되는 바와 같이, 제1 참가자는 그 대신에(또는 또한) 대시보드 인터페이스를 통해 방을 관찰하고 있을 수 있다. 예시적인 대시보드 인터페이스가 도 7에 묘사되고, 이는 아래에 추가로 논의된다.
동작 610에서, 가상 회의 서버 시스템(108)은 제1 클라이언트 디바이스(602) 상에 대시보드 인터페이스의 디스플레이를 제공한다. 가상 공간에서의 각각의 방에 대해, 대시보드 인터페이스는 방의 라이브 비디오-오디오 피드에 대응하는 방 미리보기 엘리먼트를 디스플레이한다.
방 미리보기 엘리먼트들은 제1 참가자가 방들 각각 내의 가상 회의들을 관찰하는 것을 허용하며, 제1 참가자가 이러한 방들을 내비게이트할 것을 요구하지 않는다. 가상 회의 서버 시스템(108)은 방 미리보기 엘리먼트들로 하여금 대시보드 인터페이스 내의 미리 정의된 위치들에(예를 들어, 각각의 윈도우들 또는 프레임들로서) 디스플레이되게 할 수 있다. 예를 들어, 제1 참가자(예를 들어, 관리자)는 (예를 들어, 가상 공간 설계 인터페이스(204)를 통해) 가상 공간의 설계 동안 대시보드 인터페이스를 구성했을 수 있다.
가상 공간 내의 가상 회의 동안, 제1 참가자는 미리 정의된 제스처(예를 들어, 드래그 제스처, 핀치 제스처 등)를 통해 방 미리보기 엘리먼트들을 위치 조정 및/또는 크기 조정할 수 있다. 또한, 각각의 방 미리보기 엘리먼트는 미리보기되고 있는 방을 내비게이트하기 위해 (예를 들어, 누름 제스처를 통해) 제1 참가자에 의해 선택가능하다.
하나 이상의 실시예에서, 방 미리보기 엘리먼트들 중 하나 이상은 (예를 들어, 가상 공간 설계 인터페이스(204)를 통해 관리자에 의해 설정된 구성 특성들에 기초하여) 뷰포트에 대응할 수 있다. 뷰포트는 각각의 방의 일부에 대한 라이브 피드에 대응할 수 있다. 이러한 방식으로, 방 미리보기 엘리먼트에 의해 제공되는 각각의 방의 미리보기는 방의 전체 뷰(예를 들어, 방으로 내비게이트할 때 제시됨)보다 작을 수 있다. 또한, 방 미리보기 엘리먼트는 제2 방의 다른 부분에 관하여 라이브 피드를 보여주도록 뷰포트를 조정하기 위한 인터페이스 엘리먼트들(예를 들어, 화살표 제어들, 줌 제어들 등)을 포함할 수 있다. 대안적으로 또는 또한, 가상 회의 서버 시스템(108)은 미리 정의된 제스처(예를 들어, 드래그 제스처, 핀치 제스처 등)를 통해 방에 관하여 라이브 피드를 위치 조정 및/또는 크기 조정하도록 뷰포트를 구성할 수 있다.
방 오디오에 관하여, 각각의 방들 각각으로부터의 오디오 출력은 대시보드 인터페이스 내에서 혼합될 수 있다. 하나 이상의 실시예에서, 가상 회의 서버 시스템(108)은 미리 정의된 제스처(예를 들어, 허버링 제스처)에 응답하여 특정 방에 대한 오디오 레벨을 증가시키는 것을 제공한다. 예를 들어, 제1 참가자가 방 미리보기 엘리먼트에 관하여 허버링 제스처를 수행하는 것에 응답하여, 가상 회의 서버 시스템(108)은 그 방에 대응하는 오디오 레벨을 증가시키는 것을 제공한다. 이러한 방식으로, 제1 참가자는, 선택된 방으로 내비게이트할 것이 요구되지 않고, 선택된 방에 대한 가상 회의를 관찰하는 것이 추가로 가능하다.
방 미리보기 엘리먼트들을 제시하는 것 외에도, 가상 회의 서버 시스템(108)은 각각의 방에 대한 실시간 메트릭들을 디스플레이하도록 구성된다. 따라서, 블록 612에서, 가상 회의 서버 시스템(108)은 복수의 방들에 대한 메트릭들을 결정한다. 가상 회의 서버 시스템(108)은 각각의 방에 대한 참가자 상호작용들 및/또는 참가자 비디오 피드들을 모니터링하고 분석하는 것에 의해 메트릭들을 결정할 수 있다.
비-제한적인 예로서, 메트릭들은 다음 중 하나 이상을 표시할 수 있다: 복수의 방들 각각에 대한 현재 참가자들의 수; 복수의 방들 각각에 대한 참가자 대화에 대응하는 오디오 레벨(예를 들어, 증가된 참가자 대화/참여를 제안하는 더 높은 오디오 레벨을 가짐); (예를 들어, 참가자 참여의 양을 제안하기 위해) 복수의 방들 각각에 대해 활성인 참가자 카메라들 또는 참가자 마이크로폰들의 수; 복수의 방들 각각에 대한 참가자들 출입의 빈도; 및/또는 복수의 방들 각각에 대한 참가자 체류의 평균 지속기간.
가상 회의 서버 시스템(108)은 대시보드 인터페이스 내에 메트릭들의 디스플레이를 제공한다(동작 614). 예를 들어, 각각의 방에 대한 메트릭들이 방에 대한 대응하는 방 미리보기 엘리먼트에 인접하여 디스플레이될 수 있다.
따라서, 본 명세서에 설명되는 가상 회의 시스템(100)은 가상 공간 내의 참가자 대화에 대한 대시보드 인터페이스(예를 들어, 개요)를 제공한다. 대시보드 인터페이스는 가상 공간의 방들로의 미리보기들을 포함하고, 각각의 방에 대한 대화들에 관련된 각각의 메트릭들을 추가로 포함한다. 이러한 개요(예를 들어, 대시보드 인터페이스)를 제시하지 않고, 관리자는 그렇지 않으면 방들을 관찰하기 위해 방들 사이에 수동으로 스위칭할 것이 요구될 수 있다. 가상 회의 시스템(100)은 관리자에 의한 이러한 추가적인 노력들을 감소시키고, 그렇게 함으로써 참가자들에 대한 시간을 절약하고 가상 회의 시스템(100)에 대한 계산 리소스/처리 전력을 감소시킨다.
도 7은, 일부 예시적인 실시예들에 따른, 가상 공간의 방들을 미리보기 위한 방 미리보기 엘리먼트들을 갖는 대시보드 인터페이스(700)를 예시한다. 대시보드 인터페이스(700)는, 예를 들어, 도 5의 가상 공간 내비게이션 인터페이스(208)를 통해, 가상 공간의 제1 참가자(예를 들어, 관리자)에게 이용가능할 수 있다.
도 7의 예에서, 대시보드 인터페이스(700)는 3개의 방 미리보기 엘리먼트들(704-708)을 묘사한다. 방 미리보기 엘리먼트들(704-708) 각각은 가상 공간 내의 각각의 방의 라이브 비디오-오디오 피드(예를 들어, 그 안의 참가자들을 포함함)에 대응한다. 방 미리보기 엘리먼트들(704-708) 중 하나 이상은 그 각각의 방의 일부만을 단지 보여주는 뷰포트에 대응할 수 있다. 대안적으로, 방 미리보기 엘리먼트들(704-708) 중 하나 이상이 (예를 들어, 그 방으로 내비게이트하는 뷰와 유사하게) 그 각각의 방의 전체를 보여줄 수 있다. 도 7의 예에서, 대시보드 인터페이스(700)는 제1 참가자(예를 들어, 관리자)의 비디오 피드에 대응하는 참가자 비디오 엘리먼트(702)를 또한 포함한다.
위에 주목된 바와 같이, 각각의 방들 각각으로부터의 오디오 출력이 혼합될 수 있다. 미리 정의된 제스처(예를 들어, 방 미리보기 엘리먼트들(704-708) 중 하나 위에서의 허버링 제스처)에 응답하여, 대응하는 방으로부터의 오디오 출력이 증가될 수 있다. 더욱이, 방 미리보기 엘리먼트들(704-708) 중 하나의 (예를 들어, 제1 참가자에 의한) 사용자 선택에 응답하여, 가상 회의 서버 시스템(108)은 제1 참가자를 선택과 연관된 방으로 내비게이트하는 것을 제공한다.
도 7의 예에 도시되지 않았지만, 대시보드 인터페이스(700)는 방 미리보기 엘리먼트들(704-708) 각각과 연관하여(예를 들어, 그에 인접하여, 또는 그 위에 오버레이로서) 실시간 메트릭들을 더 디스플레이할 수 있다. 위에 주목된 바와 같이, 메트릭들은 각각의 방에 대한 참가자 상호작용들 및/또는 참가자 비디오 피드들을 모니터링하고 분석하는 것에 기초할 수 있다.
도 8은, 일부 예시적인 실시예들에 따른, 가상 회의 시스템 내에서 참가자 대화의 개요를 제시하기 위한 프로세스(800)를 예시하는 흐름도이다. 설명의 목적들을 위해, 프로세스(800)는 도 1 및 도 2의 제1 클라이언트 디바이스(602), 제2 클라이언트 디바이스(들)(604) 및 가상 회의 서버 시스템(108)을 참조하여 본 명세서에 주로 설명된다. 그러나, 프로세스(800)의 하나 이상의 블록(또는 동작)은 하나 이상의 다른 컴포넌트에 의해, 및/또는 다른 적합한 디바이스들에 의해 수행될 수 있다. 추가로 설명의 목적들을 위해, 프로세스(800)의 블록들(또는 동작들)은 직렬로 또는 선형으로 발생하는 것으로서 본 명세서에서 설명된다. 그러나, 프로세스(800)의 다수의 블록들(또는 동작들)이 병렬로 또는 동시에 발생할 수 있다. 또한, 프로세스(800)의 블록들(또는 동작들)은 도시되는 순서로 수행될 필요가 없고 및/또는 프로세스(800)의 하나 이상의 블록(또는 동작)은 수행될 필요가 없고 및/또는 다른 동작들로 대체될 수 있다. 프로세스(800)는 그 동작들이 완료될 때 종료될 수 있다. 또한, 프로세스(800)는 방법, 절차, 알고리즘 등에 대응할 수 있다.
가상 회의 서버 시스템(108)은 복수의 방들을 포함하는 가상 공간을 제공하며, 복수의 방들 중 각각의 방은 각각의 참가자들 사이의 가상 회의를 위해 구성된다(블록 802). 가상 회의 서버 시스템(108)은, 방과 연관된 각각의 방 미리보기 엘리먼트에 대해, 방의 각각의 참가자들에 대응하는 참가자 비디오 엘리먼트들의 디스플레이를 제공할 수 있다. 참가자 비디오 엘리먼트들은 각각의 참가자들에 대한 비디오 피드들을 포함할 수 있다.
가상 회의 서버 시스템(108)은 (예를 들어, 제1 클라이언트 디바이스(602)에서) 가상 공간의 관리자에게 대시보드 인터페이스의 디스플레이를 제공하고, 대시보드 인터페이스는 복수의 방들 각각에 대한 방 미리보기 엘리먼트를 포함하고, 각각의 방 미리보기 엘리먼트는 복수의 방들의 각각의 방에 대한 라이브 미리보기에 대응한다(블록 804). 각각의 방 미리보기 엘리먼트는 각각의 방의 일부에 대한 라이브 피드를 갖는 뷰포트를 포함할 수 있다. 각각의 방 미리보기 엘리먼트는 각각의 방의 다른 부분에 대한 라이브 피드를 보여주도록 뷰포트를 조정하기 위한 사용자-선택가능 인터페이스 엘리먼트를 포함할 수 있다.
가상 회의 서버 시스템(108)은 복수의 방들 각각에 대한 메트릭들을 결정한다(블록 806). 이러한 메트릭들은, 복수의 방들 각각에 대한 참가자들의 수, 복수의 방들 각각에 대한 참가자 대화에 대응하는 오디오 레벨, 복수의 방들 각각에 대해 활성인 참가자 카메라들 또는 참가자 마이크로폰들의 수 중 적어도 하나, 복수의 방들 각각에 대해 출입하는 참가자들의 빈도, 및/또는 복수의 방들 각각에 대한 참가자 체류의 평균 지속기간 중 하나 이상을 표시할 수 있다. 가상 회의 서버 시스템(108)은 대시보드 인터페이스 내에 메트릭의 디스플레이를 제공한다(블록 808).
도 9는, 머신(900)으로 하여금 본 명세서에 논의되는 방법론들 중 어느 하나 이상을 수행하게 하기 위한 명령어들(910)(예를 들어, 소프트웨어, 프로그램, 애플리케이션, 애플릿, 앱, 또는 다른 실행가능 코드)가 실행될 수 있는 머신(900)의 도식적 표현이다. 예를 들어, 명령어들(910)은 머신(900)으로 하여금 본 명세서에 설명되는 방법들 중 어느 하나 이상을 실행하게 할 수 있다. 명령어들(910)은, 일반적인 비-프로그래밍된 머신(900)을, 설명되고 예시된 기능들을 설명된 방식으로 수행하도록 프로그래밍된 특정 머신(900)으로 변환한다. 머신(900)은 독립형 디바이스로서 동작할 수 있거나 또는 다른 머신들에 연결(예를 들어, 네트워킹)될 수 있다. 네트워킹된 배치에서, 머신(900)은 서버-클라이언트 네트워크 환경에서 서버 머신 또는 클라이언트 머신의 용량에서 동작하거나, 또는 피어-투-피어(또는 분산형) 네트워크 환경에서 피어 머신으로서 동작할 수 있다. 머신(900)은, 이에 제한되는 것은 아니지만, 서버 컴퓨터, 클라이언트 컴퓨터, PC(personal computer), 태블릿 컴퓨터, 랩톱 컴퓨터, 넷북, STB(set-top box), PDA(personal digital assistant), 엔터테인먼트 미디어 시스템, 셀룰러 전화, 스마트폰, 모바일 디바이스, 웨어러블 디바이스(예를 들어, 스마트워치), 스마트 홈 디바이스(예를 들어, 스마트 기기), 다른 스마트 디바이스들, 웹 어플라이언스(web appliance), 네트워크 라우터, 네트워크 스위치, 네트워크 브리지, 또는 머신(900)에 의해 취해질 액션들을 명시하는 명령어들(910)을, 순차적으로 또는 다른 방식으로, 실행할 수 있는 임의의 머신을 포함할 수 있다. 추가로, 단지 단일의 머신(900)만이 예시되지만, "머신(machine)"이라는 용어는 본 명세서에 논의되는 방법론들 중 어느 하나 이상을 수행하기 위해 개별적으로 또는 공동으로 명령어들(910)을 실행하는 머신들의 컬렉션을 포함하는 것으로 또한 취해질 수 있다. 머신(900)은, 예를 들어, 클라이언트 디바이스(102) 또는 가상 회의 서버 시스템(108)의 부분을 형성하는 다수의 서버 디바이스 중 어느 하나를 포함할 수 있다. 일부 예들에서, 머신(900)은 클라이언트 및 서버 시스템들 양자 모두를 또한 포함할 수 있고, 특정 방법 또는 알고리즘의 특정 동작들은 서버-측에서 수행되고 특정 방법 또는 알고리즘의 특정 동작들은 클라이언트-측에서 수행된다.
머신(900)은, 버스(940)를 통해 서로 통신하도록 구성될 수 있는, 프로세서들(904), 메모리(906), 및 I/O(input/output) 컴포넌트들(902)을 포함할 수 있다. 예에서, 프로세서들(904)(예를 들어, CPU(Central Processing Unit), RISC(Reduced Instruction Set Computing) 프로세서, CISC(Complex Instruction Set Computing) 프로세서, GPU(Graphics Processing Unit), DSP(Digital Signal Processor), ASIC(Application Specific Integrated Circuit), RFIC(Radio-Frequency Integrated Circuit), 다른 프로세서, 또는 이들의 임의의 적합한 조합)은, 예를 들어, 명령어들(910)을 실행하는 프로세서(908) 및 프로세서(912)를 포함할 수 있다. "프로세서(processor)"라는 용어는 명령어들을 동시에 실행할 수 있는 2개 이상의 독립적 프로세서들(때때로 "코어들(cores)"이라고 지칭됨)을 포함할 수 있는 멀티-코어 프로세서들(multi-core processor)을 포함하는 것으로 의도된다. 도 9는 다수의 프로세서들(904)을 도시하지만, 머신(900)은 단일-코어를 갖는 단일 프로세서, 다수의 코어들을 갖는 단일 프로세서(예를 들어, 멀티-코어 프로세서), 단일 코어를 갖는 다수의 프로세서들, 다수의 코어들을 갖는 다수의 프로세서들, 또는 이들의 임의의 조합을 포함할 수 있다.
메모리(906)는 메인 메모리(914), 정적 메모리(916), 및 저장 유닛(918)을 포함하며, 양자 모두는 버스(940)를 통해 프로세서들(904)에 액세스가능하다. 메인 메모리(906), 정적 메모리(916), 및 저장 유닛(918)은 본 명세서에 설명되는 방법론들 또는 기능들 중 어느 하나 이상을 구현하는 명령어들(910)을 저장한다. 명령어들(910)은, 머신(900)에 의한 그 실행 동안에, 완전히 또는 부분적으로, 메인 메모리(914) 내에, 정적 메모리(916) 내에, 저장 유닛(918) 내의 머신-판독가능 매체(920) 내에, 프로세서들(904) 중 적어도 하나 내에(예를 들어, 프로세서의 캐시 메모리 내에), 또는 이들의 임의의 적합한 조합으로 또한 존재할 수 있다.
I/O 컴포넌트들(902)은 입력을 수신하고, 출력을 제공하고, 출력을 생성하고, 정보를 송신하고, 정보를 교환하고, 척도들을 캡처하는 것 등을 위해 매우 다양한 컴포넌트들을 포함할 수 있다. 특정 머신에 포함되는 구체적인 I/O 컴포넌트들(902)은 머신의 타입에 의존할 것이다. 예를 들어, 모바일 폰들과 같은 휴대용 머신들은 터치 입력 디바이스 또는 다른 이러한 입력 메커니즘들을 포함할 수 있는 반면, 헤드리스 서버 머신(headless server machine)은 이러한 터치 입력 디바이스를 포함하지 않을 가능성이 있을 수 있다. I/O 컴포넌트들(902)은 도 9에 도시되지 않은 많은 다른 컴포넌트들을 포함할 수 있다는 점이 인식될 것이다. 다양한 예들에서, I/O 컴포넌트들(902)은 사용자 출력 컴포넌트들(928) 및 사용자 입력 컴포넌트들(926)을 포함할 수 있다. 사용자 출력 컴포넌트들(926)은, 시각적 컴포넌트(예를 들어, PDP(plasma display panel), LED(light-emitting diode) 디스플레이, LCD(liquid crystal display), 프로젝터, 또는 CRT(cathode ray tube)와 같은 디스플레이), 음향 컴포넌트들(예를 들어, 스피커들), 햅틱 컴포넌트들(예를 들어, 진동 모터, 저항 메커니즘들), 다른 신호 생성기들 등을 포함할 수 있다. 사용자 입력 컴포넌트들(928)은 영숫자 입력 컴포넌트들(예를 들어, 키보드, 영숫자 입력을 수신하도록 구성되는 터치 스크린, 포토-옵티컬 키보드(photo-optical keyboard), 또는 다른 영숫자 입력 컴포넌트들), 포인트-기반 입력 컴포넌트들(예를 들어, 마우스, 터치패드, 트랙볼, 조이스틱, 모션 센서, 또는 다른 포인팅 기구), 촉각 입력 컴포넌트들(예를 들어, 물리적 버튼, 터치들 또는 터치 제스처들의 위치 및/또는 힘을 제공하는 터치 스크린, 또는 다른 촉각 입력 컴포넌트들), 오디오 입력 컴포넌트들(예를 들어, 마이크로폰) 등을 포함할 수 있다.
추가의 예들에서, I/O 컴포넌트들(902)은, 매우 다양한 다른 컴포넌트들 중에서, 생체인식 컴포넌트들(930), 모션 컴포넌트들(932), 환경 컴포넌트들(934), 또는 위치 컴포넌트들(936)을 포함할 수 있다. 예를 들어, 생체인식 컴포넌트들(930)은 표현들(예를 들어, 손 표현들, 얼굴 표현들, 음성 표현들, 신체 제스처들, 또는 시선-추적)을 검출하는, 생체신호들(예를 들어, 혈압, 심박수, 체온, 발한, 또는 뇌파)을 측정하는, 사람을 식별하는(예를 들어, 음성 식별, 망막 식별, 얼굴 식별, 지문 식별, 또는 뇌전도-기반 식별), 등을 하는 컴포넌트들을 포함할 수 있다. 모션 컴포넌트들(932)은 가속도 센서 컴포넌트들(예를 들어, 가속도계), 중력 센서 컴포넌트들, 회전 센서 컴포넌트들(예를 들어, 자이로스코프)을 포함한다.
환경 컴포넌트들(934)은, 예를 들어, (정지 이미지/사진 및 비디오 능력을 갖는) 하나 이상의 카메라, 조명 센서 컴포넌트(예를 들어, 광도계), 온도 센서 컴포넌트(예를 들어, 주변 온도를 검출하는 하나 이상의 온도계), 습도 센서 컴포넌트, 압력 센서 컴포넌트(예를 들어, 기압계), 음향 센서 컴포넌트(예를 들어, 배경 잡음을 검출하는 하나 이상의 마이크로폰), 근접 센서 컴포넌트(예를 들어, 근처의 객체를 검출하는 적외선 센서), 가스 센서(예를 들어, 안전을 위해 유해성 가스의 농도를 검출하거나 또는 대기 중의 오염 물질을 측정하는 가스 검출 센서), 또는 주변의 물리적 환경에 대응하는 표시들, 척도들, 또는 신호들을 제공할 수 있는 다른 컴포넌트를 포함한다.
카메라들에 관하여, 클라이언트 디바이스(102)는, 예를 들어, 클라이언트 디바이스(102)의 전방 표면 상의 전방 카메라들 및 클라이언트 디바이스(102)의 후방 표면 상의 후방 카메라들을 포함하는 카메라 시스템을 가질 수 있다. 전방 카메라들은, 예를 들어, 클라이언트 디바이스(102)의 사용자의 정지 이미지들 및 비디오(예를 들어, "셀카들(selfies)")를 캡처하기 위해 사용될 수 있고, 이는 다음으로 위에 설명된 증강 데이터(예를 들어, 필터들)로 증강될 수 있다. 후방 카메라들은, 예를 들어, 더 전통적인 카메라 모드에서 정지 이미지들 및 비디오들을 캡처하기 위해 사용될 수 있고, 이러한 이미지들은 증강 데이터로 유사하게 증강된다. 전방 및 후방 카메라들 외에도, 클라이언트 디바이스(102)는 360° 사진들 및 비디오들을 캡처하기 위한 360° 카메라를 또한 포함할 수 있다.
추가로, 클라이언트 디바이스(102)의 카메라 시스템은 클라이언트 디바이스(102)의 전방 및 후방 측면들 상에 이중 후방 카메라들(예를 들어, 주 카메라 뿐만 아니라 심도-감지 카메라), 또는 심지어 삼중, 사중 또는 오중 후방 카메라 구성들을 포함할 수 있다. 이러한 다수의 카메라 시스템들은, 예를 들어, 광각 카메라, 초-광각 카메라, 텔레포토 카메라, 매크로 카메라 및 심도 센서를 포함할 수 있다.
위치 컴포넌트들(936)은, 위치 센서 컴포넌트들(예를 들어, GPS 수신기 컴포넌트), 고도 센서 컴포넌트들(예를 들어, 고도계들 또는 고도가 도출될 수 있는 기압을 검출하는 기압계들), 배향 센서 컴포넌트들(예를 들어, 자력계들) 등을 포함한다.
매우 다양한 기술들을 사용하여 통신이 구현될 수 있다. I/O 컴포넌트들(902)은 머신(900)을 각각의 연결 또는 접속들을 통해 네트워크(922) 또는 디바이스들(924)에 연결하도록 동작가능한 통신 컴포넌트들(938)을 추가로 포함한다. 예를 들어, 통신 컴포넌트들(938)은 네트워크 인터페이스 컴포넌트, 또는 네트워크(922)와 인터페이스하기에 적합한 다른 디바이스를 포함할 수 있다. 추가의 예들에서, 통신 컴포넌트들(938)은 유선 통신 컴포넌트들, 무선 통신 컴포넌트들, 셀룰러 통신 컴포넌트들, NFC(Near Field Communication) 컴포넌트들, Bluetooth® 컴포넌트들(예를 들어, Bluetooth®Low Energy), Wi-Fi® 컴포넌트들, 및 다른 양상들을 통해 통신을 제공하는 다른 통신 컴포넌트들을 포함할 수 있다. 디바이스들(924)은 다른 머신 또는 매우 다양한 주변 디바이스들(예를 들어, USB를 통해 연결되는 주변 디바이스) 중 임의의 것일 수 있다.
더욱이, 통신 컴포넌트들(938)은 식별자들을 검출할 수 있거나 또는 식별자들을 검출하기 위해 동작가능한 컴포넌트들을 포함할 수 있다. 예를 들어, 통신 컴포넌트들(938)은 RFID(Radio Frequency Identification) 태그 판독기 컴포넌트들, NFC 스마트 태그 검출 컴포넌트들, 광학 판독기 컴포넌트들(예를 들어, UPC(Universal Product Code) 바코드와 같은 1차원 바코드들, QR(Quick Response) 코드, Aztec 코드, Data Matrix, Dataglyph, MaxiCode, PDF417, Ultra Code, UCC RSS-2D 바코드와 같은 다차원 바코드들, 및 다른 광학 코드들을 검출하는 광학 센서), 또는 음향 검출 컴포넌트들(예를 들어, 태그된 오디오 신호들을 식별하는 마이크로폰들)을 포함할 수 있다. 또한, IP(Internet Protocol) 지오로케이션을 통한 위치, Wi-Fi® 신호 삼각측량을 통한 위치, 특정 위치를 표시할 수 있는 NFC 비컨 신호 검출을 통한 위치 등과 같은, 다양한 정보가 통신 컴포넌트(938)를 통해 도출될 수 있다.
다양한 메모리들(예를 들어, 메인 메모리(914), 정적 메모리(916), 및/또는 프로세서들(904)의 메모리) 및/또는 저장 유닛(918)은 본 명세서에 설명되는 방법론들 또는 기능들 중 어느 하나 이상을 구현하는 또는 그에 의해 사용되는 명령어들 및 데이터 구조들(예를 들어, 소프트웨어)의 하나 이상의 세트를 저장할 수 있다. 이러한 명령어들(예를 들어, 명령어들(910))은 프로세서들(904)에 의해 실행될 때, 다양한 동작들로 하여금 개시된 예들을 구현하게 한다.
명령어들(910)은, 송신 매체를 사용하여, 네트워크 인터페이스 디바이스(예를 들어, 통신 컴포넌트들(938)에 포함되는 네트워크 인터페이스 컴포넌트)를 통해 그리고 몇몇 잘 알려진 전송 프로토콜들 중 어느 하나(예를 들어, HTTP(hypertext transfer protocol))를 사용하여, 네트워크(922)를 통해 송신되거나 또는 수신될 수 있다. 유사하게, 명령어들(910)은 디바이스들(924)에 대한 연결(예를 들어, 피어-투-피어 연결)을 통해 송신 매체를 사용하여 송신되거나 또는 수신될 수 있다.
도 10은, 본 명세서에 설명되는 디바이스들 중 어느 하나 이상에 설치될 수 있는, 소프트웨어 아키텍처(1004)를 예시하는 블록도 1000이다. 이러한 소프트웨어 아키텍처(1004)는, 프로세서들(1020), 메모리(1026), 및 I/O 컴포넌트들(1038)을 포함하는 머신(1002)과 같은, 하드웨어에 의해 지원된다. 이러한 예에서, 소프트웨어 아키텍처(1004)는, 각각의 레이어가 특정 기능성을 제공하는, 레이어들의 스택으로서 개념화될 수 있다. 소프트웨어 아키텍처(1004)는 운영 체제(1012), 라이브러리들(1010), 프레임워크들(1008), 및 애플리케이션들(1006)과 같은 레이어들을 포함한다. 동작적으로, 애플리케이션들(1006)은 소프트웨어 스택을 통해 API 호출들(1050)을 기동하고 API 호출들(1050)에 응답하여 메시지들(1052)을 수신한다.
운영 체제(1012)는 하드웨어 리소스들을 관리하고 공통 서비스들을 제공한다. 운영 체제(1012)는, 예를 들어, 커널(1014), 서비스들(1016), 및 드라이버들(1022)을 포함한다. 커널(1014)은 하드웨어와 다른 소프트웨어 레이어들 사이에서 추상화 레이어(abstraction layer)로서 역할을 한다. 예를 들어, 커널(1014)은, 다른 기능성 중에서, 메모리 관리, 프로세서 관리(예를 들어, 스케줄링), 컴포넌트 관리, 네트워킹, 및 보안 설정들을 제공한다. 서비스들(1016)은 다른 소프트웨어 레이어들에 대한 다른 공통 서비스들을 제공할 수 있다. 드라이버들(1022)은 기본 하드웨어를 제어하는 것 또는 그와 인터페이싱하는 것을 담당한다. 예를 들어, 드라이버들(1022)은 디스플레이 드라이버들, 카메라 드라이버들, BLUETOOTH® 또는 BLUETOOTH® Low Energy 드라이버들, 플래시 메모리 드라이버들, 직렬 통신 드라이버들(예를 들어, USB 드라이버들), WI-FI® 드라이버들, 오디오 드라이버들, 전력 관리 드라이버들 등을 포함할 수 있다.
라이브러리들(1010)은 애플리케이션들(1006)에 의해 사용되는 공통 로우-레벨 인프라스트럭처를 제공한다. 라이브러리들(1010)은, 메모리 할당 기능들, 문자열 조작 기능들, 수학 기능들 등과 같은 기능들 제공할 수 있는 시스템 라이브러리들(1018)(예를 들어, C 표준 라이브러리)를 포함할 수 있다. 또한, 라이브러리들(1010)은, 미디어 라이브러리들(예를 들어, MPEG4(Moving Picture Experts Group-4), H.264 또는 AVC(Advanced Video Coding), MP3(Moving Picture Experts Group Layer-3), AAC(Advanced Audio Coding), AMR(Adaptive Multi-Rate) 오디오 코덱, JPG 또는 JPEG(Joint Photographic Experts Group), 또는 PNG(Portable Network Graphics)와 같은 다양한 미디어 포맷들의 제시 및 조작을 지원하는 라이브러리들), 그래픽 라이브러리들(예를 들어, 디스플레이 상의 그래픽 콘텐츠에서 2차원(2D) 및 3차원(3D)으로 렌더링하기 위해 사용되는 OpenGL 프레임워크), 데이터베이스 라이브러리들(예를 들어, 다양한 관계형 데이터베이스 기능들을 제공하는 SQLite), 웹 라이브러리들(예를 들어, 웹 브라우징 기능성을 제공하는 WebKit) 등과 같은 API 라이브러리들(1024)을 포함할 수 있다. 라이브러리들(1010)은 많은 다른 API들을 애플리케이션들(1006)에 제공하기 위해 매우 다양한 다른 라이브러리들(1028)을 또한 포함할 수 있다.
프레임워크들(1008)은 애플리케이션들(1006)에 의해 사용되는 하이-레벨 공통 인프라스트럭처를 제공한다. 예를 들어, 프레임워크들(1008)은 다양한 GUI(graphical user interface) 기능들, 하이-레벨 리소스 관리, 및 하이-레벨 위치 서비스들을 제공한다. 프레임워크들(1008)은 애플리케이션들(1006)에 의해 사용될 수 있는 광범위한 스펙트럼의 다른 API들을 제공할 수 있고, 그 중 일부는 특정 운영 체제 또는 플랫폼에 구체적일 수 있다.
예에서, 애플리케이션들(1006)은, 홈 애플리케이션(1036), 연락처 애플리케이션(1030), 브라우저 애플리케이션(1032), 북 리더 애플리케이션(1034), 위치 애플리케이션(1042), 미디어 애플리케이션(1044), 메시징 애플리케이션(1046), 게임 애플리케이션(1048), 및 제3자 애플리케이션들(1040)과 같은 다른 애플리케이션들의 광범위한 컬렉션을 포함할 수 있다. 애플리케이션들(1006)은 프로그램들에서 정의되는 기능들을 실행하는 프로그램들이다. 객체-지향 프로그래밍 언어들(예를 들어, Objective-C, Java, 또는 C++) 또는 절차적 프로그래밍 언어들(예를 들어, C 또는 어셈블리 언어)과 같은, 다양한 방식으로 구조화되는, 다양한 프로그래밍 언어들이 애플리케이션들(1006) 중 하나 이상을 생성하기 위해 이용될 수 있다. 구체적인 예에서, 제3자 애플리케이션(1040)(예를 들어, 특정 플랫폼의 벤더 이외의 엔티티에 의해 ANDROIDTM 또는 IOSTM SDK(software development kit)를 사용하여 개발되는 애플리케이션)은 IOSTM, ANDROIDTM, WINDOWS® Phone, 또는 다른 모바일 운영 체제와 같은 모바일 운영 체제 상에서 실행되는 모바일 소프트웨어일 수 있다. 이러한 예에서, 제3자 애플리케이션(1040)은 본 명세서에 설명되는 기능성을 용이하게 하기 위해 운영 체제(1012)에 의해 제공되는 API 호출들(1050)을 기동할 수 있다.
용어집
"캐리어 신호(carrier signal)"는 머신에 의한 실행을 위한 명령어들을 저장, 인코딩, 또는 운반할 수 있는 임의의 무형의 매체를 지칭하고, 이러한 명령어들의 통신을 용이하게 하기 위한 디지털 또는 아날로그 통신 신호들 또는 다른 무형의 매체를 포함한다. 명령어들은 네트워크 인터페이스 디바이스를 통해 송신 매체를 사용하여 네트워크를 통해 송신 또는 수신될 수 있다.
"클라이언트 디바이스(client device)"는 하나 이상의 서버 시스템 또는 다른 클라이언트 디바이스들로부터 리소스들을 획득하기 위해 통신 네트워크에 인터페이스하는 임의의 머신을 지칭한다. 클라이언트 디바이스는, 이에 제한되는 것은 아니지만, 모바일 폰, 데스크톱 컴퓨터, 랩톱, PDA들(portable digital assistants), 스마트폰들, 태블릿들, 울트라북들, 넷북들, 랩톱들, 멀티-프로세서 시스템들, 마이크로프로세서-기반 또는 프로그램가능한 소비자 전자기기들, 게임 콘솔들, 셋톱 박스들, 또는 사용자가 네트워크에 액세스하기 위해 사용할 수 있는 임의의 다른 통신 디바이스일 수 있다.
"통신 네트워크(communication network)"는 애드 혹 네트워크, 인트라넷, 엑스트라넷, VPN(virtual private network), LAN(local area network), 무선 LAN(WLAN), WAN(wide area network), 무선 WAN(WWAN), MAN(metropolitan area network), Internet, Internet의 일부, PSTN(Public Switched Telephone Network)의 일부, POTS(plain old telephone service) 네트워크, 셀룰러 전화 네트워크, 무선 네트워크, Wi-Fi® 네트워크, 다른 타입의 네트워크, 또는 2개 이상의 이러한 네트워크들의 조합일 수 있는, 네트워크의 하나 이상의 부분을 지칭한다. 예를 들어, 네트워크 또는 네트워크의 일부는 무선 또는 셀룰러 네트워크를 포함할 수 있고 연결은 CDMA(Code Division Multiple Access) 접속, GSM(Global System for Mobile communications) 접속, 또는 다른 타입의 셀룰러 또는 무선 연결일 수 있다. 이러한 예에서, 연결은, 1xRTT(Single Carrier Radio Transmission Technology), EVDO(Evolution-Data Optimized) 기술, GPRS(General Packet Radio Service) 기술, EDGE(Enhanced Data rates for GSM Evolution) 기술, 3G를 포함하는 3GPP(third Generation Partnership Project), 4G(fourth generation wireless) 네트워크들, UMTS(Universal Mobile Telecommunications System), HSPA(High Speed Packet Access), WiMAX(Worldwide Interoperability for Microwave Access), LTE(Long Term Evolution) 표준, 다양한 표준-설정 조직들에 의해 정의되는 다른 것들, 다른 장거리 프로토콜들, 또는 다른 데이터 전송 기술과 같은, 다양한 타입들의 데이터 전송 기술 중 임의의 것을 구현할 수 있다.
"컴포넌트(component)"는 기능 또는 서브루틴 호출들, 분기 포인트들, API들, 또는 특정 처리 또는 제어 기능들의 파티셔닝 또는 모듈화를 제공하는 다른 기술들에 의해 정의되는 경계들을 갖는 디바이스, 물리적 엔티티, 또는 로직을 지칭한다. 컴포넌트들은 그들의 인터페이스들을 통해 다른 컴포넌트들과 조합되어 머신 프로세스를 수행할 수 있다. 컴포넌트는, 다른 컴포넌트들 및 관련된 기능들 중 특정 기능을 일반적으로 수행하는 프로그램의 일부와 함께 사용하기 위해 설계되는 패키징된 기능적 하드웨어 유닛일 수 있다. 컴포넌트들은 소프트웨어 컴포넌트들(예를 들어, 머신-판독가능 매체 상에 구현되는 코드) 또는 하드웨어 컴포넌트들을 구성할 수 있다. "하드웨어 컴포넌트(hardware component)"는 특정 동작들을 수행할 수 있는 유형의 유닛(tangible unit)이고, 특정 물리적 방식으로 구성되거나 또는 배열될 수 있다. 다양한 예들에서, 하나 이상의 컴퓨터 시스템(예를 들어, 독립 컴퓨터 시스템, 클라이언트 컴퓨터 시스템, 또는 서버 컴퓨터 시스템) 또는 컴퓨터 시스템의 하나 이상의 하드웨어 컴포넌트(예를 들어, 프로세서 또는 프로세서들의 그룹)는 본 명세서에 설명되는 바와 같이 특정 동작들을 수행하기 위해 동작하는 하드웨어 컴포넌트로서 소프트웨어(예를 들어, 애플리케이션 또는 애플리케이션 부분)에 의해 구성될 수 있다. 하드웨어 컴포넌트는 또한, 기계적으로, 전자적으로, 또는 이들의 임의의 적합한 조합으로 구현될 수 있다. 예를 들어, 하드웨어 컴포넌트는 특정 동작들을 수행하도록 영구적으로 구성되는 전용 회로 또는 로직을 포함할 수 있다. 하드웨어 컴포넌트는, FPGA(Field-Programmable Gate Array) 또는 ASIC(Application Specific Integrated Circuit)와 같은 특수-목적 프로세서일 수 있다. 하드웨어 컴포넌트는, 특정 동작들을 수행하도록 소프트웨어에 의해 일시적으로 구성되는 프로그램가능한 로직 또는 회로를 또한 포함할 수 있다. 예를 들어, 하드웨어 컴포넌트는 범용 프로세서 또는 다른 프로그램가능 프로세서에 의해 실행되는 소프트웨어를 포함할 수 있다. 일단 이러한 소프트웨어에 의해 구성되면, 하드웨어 컴포넌트들은 구성되는 기능들을 수행하도록 독자적으로 맞춤화된(uniquely tailored) 구체적인 머신들(또는 머신의 구체적인 컴포넌트들)이 되고 더 이상 범용 프로세서들이 아니다. 하드웨어 컴포넌트를 기계적으로, 전용의 영구적으로 구성되는 회로에, 또는 일시적으로 구성되는 회로(예를 들어, 소프트웨어에 의해 구성됨)에 구현하기로 하는 결정이 비용 및 시간 고려사항들에 의해 주도될 수 있다는 점이 인식될 것이다. 따라서, "하드웨어 컴포넌트(hardware component)"(또는 "하드웨어-구현된 컴포넌트(hardware-implemented component)")라는 문구는 유형의 엔티티(tangible entity)를 포괄하는 것으로 이해되어야 하며, 그 엔티티는, 특정 방식으로 동작하도록 또는 본 명세서에 설명되는 특정 동작들을 수행하도록 물리적으로 구성되거나, 또는 영구적으로 구성되거나 또는(예를 들어, 하드와이어드), 또는 일시적으로 구성된다(예를 들어, 프로그래밍된다). 하드웨어 컴포넌트들이 일시적으로 구성되는(예를 들어, 프로그래밍되는) 예들을 고려할 때, 하드웨어 컴포넌트들 각각은 임의의 한 시점에서 구성되거나 또는 인스턴스화될 필요는 없다. 예를 들어, 하드웨어 컴포넌트가 특수-목적 프로세서가 되도록 소프트웨어에 의해 구성되는 범용 프로세서를 포함하는 경우에, 범용 프로세서는 상이한 때에 (예를 들어, 상이한 하드웨어 컴포넌트들을 포함하는) 각각 상이한 특수-목적 프로세서들로서 구성될 수 있다. 따라서 소프트웨어는, 예를 들어, 하나의 시점에서는 특정 하드웨어 컴포넌트를 구성하고 상이한 시점에서는 상이한 하드웨어 컴포넌트를 구성하도록 특정 프로세서 또는 프로세서들을 구성한다. 하드웨어 컴포넌트는 다른 하드웨어 컴포넌트들에 정보를 제공하고 이로부터 정보를 수신할 수 있다. 따라서, 설명된 하드웨어 컴포넌트들은 통신가능하게 연결되는 것으로서 고려될 수 있다. 다수의 하드웨어 컴포넌트들이 동시에 존재하는 경우에, 하드웨어 컴포넌트들 중 2개 이상 사이의 또는 그들 사이의 (예를 들어, 적절한 회로들 및 버스들을 통한) 신호 송신을 통해 통신이 달성될 수 있다. 다수의 하드웨어 컴포넌트들이 상이한 시간들에서 구성되거나 또는 인스턴스화되는 예들에서, 이러한 하드웨어 컴포넌트들 사이의 통신은, 예를 들어, 다수의 하드웨어 컴포넌트들이 액세스하는 메모리 구조들에서의 정보의 저장 및 검색을 통해, 달성될 수 있다. 예를 들어, 하나의 하드웨어 컴포넌트는 동작을 수행하고 해당 동작의 출력을 통신가능하게 연결되는 메모리 디바이스에 저장할 수 있다. 추가의 하드웨어 컴포넌트가 다음으로, 나중에, 저장된 출력을 검색 및 처리하기 위해 메모리 디바이스에 액세스할 수 있다. 하드웨어 컴포넌트들은 입력 또는 출력 디바이스들과의 통신을 또한 착수할 수 있고, 리소스(예를 들어, 정보의 컬렉션)에 대해 동작할 수 있다. 본 명세서에 설명되는 예시적 방법들의 다양한 동작들은, 관련 동작들을 수행하도록 영구적으로 구성되거나 또는 (예를 들어, 소프트웨어에 의해) 일시적으로 구성되는 하나 이상의 프로세서에 의해 적어도 부분적으로 수행될 수 있다. 일시적으로 또는 영구적으로 구성되든 간에, 이러한 프로세서들은 본 명세서에 설명되는 하나 이상의 동작 또는 기능을 수행하도록 동작하는 프로세서-구현 컴포넌트들을 구성할 수 있다. 본 명세서에서 사용되는 바와 같이, "프로세서-구현 컴포넌트(processor-implemented component)"는 하나 이상의 프로세서를 사용하여 구현되는 하드웨어 컴포넌트를 지칭한다. 유사하게, 본 명세서에 설명되는 방법들은 적어도 부분적으로 프로세서-구현될 수 있고, 특정 프로세서 또는 프로세서들은 하드웨어의 예이다. 예를 들어, 방법의 동작들 중 적어도 일부가 하나 이상의 프로세서 또는 프로세서-구현 컴포넌트들에 의해 수행될 수 있다. 더욱이, 하나 이상의 프로세서는 또한 "클라우드 컴퓨팅(cloud computing)" 환경에서 또는 "SaaS(software as a service)"로서 관련 동작들의 수행을 지원하도록 동작할 수 있다. 예를 들어, 동작들 중 적어도 일부는, (프로세서들을 포함하는 머신의 예로서의) 컴퓨터들의 그룹에 의해 수행될 수 있고, 이들 동작들은 네트워크(예를 들어, Internet)를 통해 그리고 하나 이상의 적절한 인터페이스(예를 들어, API)를 통해 액세스가능하다. 특정 동작들의 수행은, 단일 머신 내에 상주할 뿐만 아니라, 다수의 머신에 걸쳐 배치되는, 프로세서들 사이에 분산될 수 있다. 일부 예들에서, 프로세서들 또는 프로세서-구현 컴포넌트들은 단일의 지리적 위치에(예를 들어, 가정 환경, 사무실 환경, 또는 서버 팜(server farm) 내에) 위치될 수 있다. 다른 예들에서, 프로세서들 또는 프로세서-구현 컴포넌트들은 다수의 지리적 위치들에 걸쳐 분산될 수 있다.
"컴퓨터-판독가능 저장 매체(computer-readable storage medium)"는 머신-저장 매체 및 송신 매체 양자 모두를 지칭한다. 따라서, 이러한 용어들은 저장 디바이스들/매체 및 반송파들/변조된 데이터 신호들 양자 모두를 포함한다. "머신-판독가능 매체(machine-readable medium)", "컴퓨터-판독가능 매체(computer-readable medium)" 및 "디바이스-판독가능 매체(device-readable medium)"라는 용어들은 동일한 것을 의미하며, 본 개시내용에서 교환가능하게 사용될 수 있다.
"머신 저장 매체(machine storage medium)"는 실행가능 명령어들, 루틴들 및 데이터를 저장하는 단일의 또는 다수의 저장 디바이스들 및 매체들(예를 들어, 중앙집중형 또는 분산형 데이터베이스, 및 연관된 캐시들 및 서버들)을 지칭한다. 따라서, 이러한 용어는, 이에 제한되는 것은 아니지만, 프로세서들 내부 또는 외부의 메모리를 포함하는 고체-상태 메모리들, 및 광학 및 자기 매체를 포함하는 것으로 취해질 수 있다. 머신-저장 매체, 컴퓨터-저장 매체 및 디바이스-저장 매체의 구체적인 예들은, 예로서 반도체 메모리 디바이스들, 예를 들어, EPROM (erasable programmable read-only memory), EEPROM (electrically erasable programmable read-only memory), FPGA, 및 플래시 메모리 디바이스들; 내부 하드 디스크들 및 이동식 디스크들과 같은 자기 디스크들; 광자기 디스크들; 및 CD-ROM 및 DVD-ROM 디스크들을 포함하는 비-휘발성 메모리를 포함한다. "머신-저장 매체(machine-storage medium)", "디바이스-저장 매체(device-storage medium)", "컴퓨터-저장 매체(computer-storage medium)"라는 용어들은 동일한 것을 의미하며, 본 개시내용에서 교환가능하게 사용될 수 있다. "머신-저장 매체(machine-storage media)", "컴퓨터-저장 매체(computer-storage media)", 및 "디바이스-저장 매체(device-storage media)"라는 용어들은 반송파들, 변조된 데이터 신호들, 및 다른 이러한 매체를 구체적으로 제외하고, 이들 중 적어도 일부는 "신호 매체(signal medium)"라는 용어 하에 커버된다.
"비-일시적 컴퓨터-판독가능 저장 매체(non-transitory computer-readable storage medium)"는 머신에 의한 실행을 위한 명령어들을 저장, 인코딩, 또는 운반할 수 있는 유형의 매체를 지칭한다.
"신호 매체(signal medium)"는 머신에 의한 실행을 위한 명령어들을 저장, 인코딩 또는 운반할 수 있는 임의의 무형의 매체를 지칭하며, 소프트웨어 또는 데이터의 통신을 용이하게 하기 위해 디지털 또는 아날로그 통신 신호들 또는 다른 무형의 매체를 포함한다. "신호 매체(signal medium)"라는 용어는 임의의 형태의 변조된 데이터 신호, 반송파 등을 포함하는 것으로 취해져야 한다. "변조된 데이터 신호(modulated data signal)"라는 용어는 신호에서의 정보를 인코딩하기 위해 이러한 상황에서 설정되는 또는 변경되는 자신의 특성들 중 하나 이상을 갖는 신호를 의미한다. "송신 매체(transmission medium)", 및 "신호 매체(signal medium)"라는 용어들은 동일한 것을 의미하고 본 개시내용에서 교환가능하게 사용될 수 있다.

Claims (20)

  1. 방법으로서,
    복수의 방들을 포함하는 가상 공간을 제공하는 단계- 상기 복수의 방들의 각각의 방은 각각의 참가자들 사이의 가상 회의를 위해 구성됨 -;
    상기 가상 공간의 관리자에 대해, 대시보드 인터페이스의 디스플레이를 제공하는 단계- 상기 대시보드 인터페이스는 상기 복수의 방들 각각에 대한 방 미리보기 엘리먼트를 포함하고, 각각의 방 미리보기 엘리먼트는 상기 복수의 방들의 각각의 방에 대한 라이브 미리보기에 대응함 -;
    상기 복수의 방들 각각에 대한 메트릭들을 결정하는 단계; 및
    상기 대시보드 인터페이스 내에 상기 메트릭들의 디스플레이를 제공하는 단계를 포함하는 방법.
  2. 제1항에 있어서, 상기 메트릭들은 상기 복수의 방들 각각에 대한 참가자들의 수를 표시하는 방법.
  3. 제1항에 있어서, 상기 메트릭들은 상기 복수의 방들 각각에 대한 참가자 대화에 대응하는 오디오 레벨을 표시하는 방법.
  4. 제1항에 있어서, 상기 메트릭들은 상기 복수의 방들 각각에 대해 활성인 참가자 카메라들 또는 참가자 마이크로폰들의 수 중 적어도 하나를 표시하는 방법.
  5. 제1항에 있어서, 상기 메트릭들은 상기 복수의 방들 각각에 대해 출입하는 참가자들의 빈도를 표시하는 방법.
  6. 제5항에 있어서, 상기 메트릭들은 상기 복수의 방들 각각에 대한 참가자 체류의 평균 지속기간을 표시하는 방법.
  7. 제1항에 있어서, 각각의 방 미리보기 엘리먼트는 각각의 방의 일부에 대한 라이브 피드를 갖는 뷰포트를 포함하고,
    각각의 방 미리보기 엘리먼트는 상기 각각의 방의 다른 부분에 대한 라이브 피드를 보여주도록 상기 뷰포트를 조정하기 위한 사용자-선택가능 인터페이스 엘리먼트를 포함하는 방법.
  8. 제1항에 있어서, 추가로,
    방과 연관된 각각의 방 미리보기 엘리먼트에 대해, 상기 방의 각각의 참가자들에 대응하는 참가자 비디오 엘리먼트들의 디스플레이를 제공하는 단계를 포함하는 방법.
  9. 제8항에 있어서, 상기 참가자 비디오 엘리먼트들은 상기 각각의 참가자들에 대한 비디오 피드들을 포함하는 방법.
  10. 시스템으로서,
    프로세서; 및
    명령어들을 저장한 메모리를 포함하고, 상기 명령어들은, 상기 프로세서에 의해 실행될 때, 동작들을 수행하도록 상기 프로세서를 구성하고, 상기 동작들은,
    복수의 방들을 포함하는 가상 공간을 제공하는 동작- 상기 복수의 방들의 각각의 방은 각각의 참가자들 사이의 가상 회의를 위해 구성됨 -;
    상기 가상 공간의 관리자에 대해, 대시보드 인터페이스의 디스플레이를 제공하는 동작- 상기 대시보드 인터페이스는 상기 복수의 방들 각각에 대한 방 미리보기 엘리먼트를 포함하고, 각각의 방 미리보기 엘리먼트는 상기 복수의 방들의 각각의 방에 대한 라이브 미리보기에 대응함 -;
    상기 복수의 방들 각각에 대한 메트릭들을 결정하는 동작; 및
    상기 대시보드 인터페이스 내에 상기 메트릭들의 디스플레이를 제공하는 동작을 포함하는 시스템.
  11. 제10항에 있어서, 상기 메트릭들은 상기 복수의 방들 각각에 대한 참가자들의 수를 표시하는 시스템.
  12. 제10항에 있어서, 상기 메트릭들은 상기 복수의 방들 각각에 대한 참가자 대화에 대응하는 오디오 레벨을 표시하는 시스템.
  13. 제10항에 있어서, 상기 메트릭들은 상기 복수의 방들 각각에 대해 활성인 참가자 카메라들 또는 참가자 마이크로폰들의 수 중 적어도 하나를 표시하는 시스템.
  14. 제10항에 있어서, 상기 메트릭들은 상기 복수의 방들 각각에 대해 출입하는 참가자들의 빈도를 표시하는 시스템.
  15. 제14항에 있어서, 상기 메트릭들은 상기 복수의 방들 각각에 대한 참가자 체류의 평균 지속기간을 표시하는 시스템.
  16. 제10항에 있어서, 각각의 방 미리보기 엘리먼트는 각각의 방의 일부에 대한 라이브 피드를 갖는 뷰포트를 포함하고,
    각각의 방 미리보기 엘리먼트는 상기 각각의 방의 다른 부분에 대한 라이브 피드를 보여주도록 상기 뷰포트를 조정하기 위한 사용자-선택가능 인터페이스 엘리먼트를 포함하는 시스템.
  17. 제10항에 있어서, 상기 동작들은 추가로,
    방과 연관된 각각의 방 미리보기 엘리먼트에 대해, 상기 방의 각각의 참가자들에 대응하는 참가자 비디오 엘리먼트들의 디스플레이를 제공하는 동작을 포함하는 시스템.
  18. 제17항에 있어서, 상기 참가자 비디오 엘리먼트들은 상기 각각의 참가자들에 대한 비디오 피드들을 포함하는 시스템.
  19. 비-일시적 컴퓨터-판독가능 저장 매체로서, 상기 컴퓨터-판독가능 저장 매체는 명령어들을 포함하고, 상기 명령어들은, 컴퓨터에 의해 실행될 때, 상기 컴퓨터로 하여금 동작들을 수행하게 하고, 상기 동작들은,
    복수의 방들을 포함하는 가상 공간을 제공하는 동작- 상기 복수의 방들의 각각의 방은 각각의 참가자들 사이의 가상 회의를 위해 구성됨 -;
    상기 가상 공간의 관리자에 대해, 대시보드 인터페이스의 디스플레이를 제공하는 동작- 상기 대시보드 인터페이스는 상기 복수의 방들 각각에 대한 방 미리보기 엘리먼트를 포함하고, 각각의 방 미리보기 엘리먼트는 상기 복수의 방들의 각각의 방에 대한 라이브 미리보기에 대응함 -;
    상기 복수의 방들 각각에 대한 메트릭들을 결정하는 동작; 및
    상기 대시보드 인터페이스 내에 상기 메트릭들의 디스플레이를 제공하는 동작을 포함하는 비-일시적 컴퓨터-판독가능 저장 매체.
  20. 제19항에 있어서, 상기 메트릭들은 상기 복수의 방들 각각에 대한 참가자들의 수를 표시하는 컴퓨터-판독가능 매체.
KR1020237036737A 2021-03-30 2022-03-29 가상 회의 시스템 내에 참가자 대화들을 제시함 KR20230162039A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163168141P 2021-03-30 2021-03-30
US63/168,141 2021-03-30
US17/393,204 US11973613B2 (en) 2021-03-30 2021-08-03 Presenting overview of participant conversations within a virtual conferencing system
US17/393,204 2021-08-03
PCT/US2022/022365 WO2022212391A1 (en) 2021-03-30 2022-03-29 Presenting participant conversations within virtual conferencing system

Publications (1)

Publication Number Publication Date
KR20230162039A true KR20230162039A (ko) 2023-11-28

Family

ID=83449431

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237036737A KR20230162039A (ko) 2021-03-30 2022-03-29 가상 회의 시스템 내에 참가자 대화들을 제시함

Country Status (4)

Country Link
US (1) US11973613B2 (ko)
EP (1) EP4315838A1 (ko)
KR (1) KR20230162039A (ko)
CN (1) CN117121470A (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220321373A1 (en) * 2021-03-30 2022-10-06 Snap Inc. Breakout sessions based on tagging users within a virtual conferencing system
US11683192B2 (en) 2021-03-30 2023-06-20 Snap Inc. Updating element properties based on distance between elements in virtual conference
US11489684B2 (en) 2021-03-30 2022-11-01 Snap Inc. Assigning participants to rooms within a virtual conferencing system
US11722535B2 (en) 2021-03-30 2023-08-08 Snap Inc. Communicating with a user external to a virtual conference
US11973613B2 (en) 2021-03-30 2024-04-30 Snap Inc. Presenting overview of participant conversations within a virtual conferencing system
US11855796B2 (en) 2021-03-30 2023-12-26 Snap Inc. Presenting overview of participant reactions within a virtual conferencing system
US11943072B2 (en) 2021-03-30 2024-03-26 Snap Inc. Providing a room preview within a virtual conferencing system
US11689696B2 (en) 2021-03-30 2023-06-27 Snap Inc. Configuring participant video feeds within a virtual conferencing system
US11381411B1 (en) 2021-03-30 2022-07-05 Snap Inc. Presenting participant reactions within a virtual conferencing system
US11683447B2 (en) 2021-03-30 2023-06-20 Snap Inc. Providing side conversations within a virtual conferencing system
US11792031B2 (en) 2021-03-31 2023-10-17 Snap Inc. Mixing participant audio from multiple rooms within a virtual conferencing system
US11706042B2 (en) * 2021-09-12 2023-07-18 Zoom Video Communications, Inc. Spatial chat view dashboard
US11979244B2 (en) 2021-09-30 2024-05-07 Snap Inc. Configuring 360-degree video within a virtual conferencing system
US11880560B1 (en) 2022-07-09 2024-01-23 Snap Inc. Providing bot participants within a virtual conferencing system
US11972173B2 (en) 2022-08-31 2024-04-30 Snap Inc. Providing change in presence sounds within virtual working environment
US11740758B1 (en) 2022-08-31 2023-08-29 Snap Inc. Presenting participant reactions within a virtual working environment
US20240069708A1 (en) * 2022-08-31 2024-02-29 Snap Inc. Collaborative interface element within a virtual conferencing system
US11979442B2 (en) 2022-09-20 2024-05-07 Snap Inc. Dynamically assigning participant video feeds within virtual conferencing system

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2279472A4 (en) * 2008-04-05 2013-11-20 Social Communications Co APPARATUS AND METHODS BASED ON A SHARED VIRTUAL SPACE COMMUNICATION ENVIRONMENT
JP6490884B2 (ja) * 2011-04-28 2019-03-27 株式会社リコー 料金管理システム、料金管理方法、プログラム、プログラム提供システム、及びメンテナンスシステム
US10404946B2 (en) * 2012-09-26 2019-09-03 Waldstock, Ltd System and method for real-time audiovisual interaction with a target location
US20150245168A1 (en) * 2014-02-25 2015-08-27 Flock Inc. Systems, devices and methods for location-based social networks
US9961119B2 (en) 2014-04-22 2018-05-01 Minerva Project, Inc. System and method for managing virtual conferencing breakout groups
US20180095636A1 (en) 2016-10-04 2018-04-05 Facebook, Inc. Controls and Interfaces for User Interactions in Virtual Spaces
KR20200131478A (ko) * 2019-05-14 2020-11-24 라인플러스 주식회사 위치를 기반으로 대화방의 가입을 제어하는 방법, 시스템, 및 비-일시적인 컴퓨터 판독가능한 기록 매체
US11838336B2 (en) * 2020-08-27 2023-12-05 Varty Inc. Virtual events-based social network
US11444795B1 (en) * 2021-02-25 2022-09-13 At&T Intellectual Property I, L.P. Intelligent meeting assistant
US11683447B2 (en) 2021-03-30 2023-06-20 Snap Inc. Providing side conversations within a virtual conferencing system
WO2022212391A1 (en) 2021-03-30 2022-10-06 Snap Inc. Presenting participant conversations within virtual conferencing system
US11381411B1 (en) 2021-03-30 2022-07-05 Snap Inc. Presenting participant reactions within a virtual conferencing system
US20220321617A1 (en) 2021-03-30 2022-10-06 Snap Inc. Automatically navigating between rooms within a virtual conferencing system
US11362848B1 (en) 2021-03-30 2022-06-14 Snap Inc. Administrator-based navigating of participants between rooms within a virtual conferencing system
US11943072B2 (en) 2021-03-30 2024-03-26 Snap Inc. Providing a room preview within a virtual conferencing system
WO2022212386A1 (en) 2021-03-30 2022-10-06 Snap Inc. Presenting participant reactions within virtual conferencing system
US11689696B2 (en) 2021-03-30 2023-06-27 Snap Inc. Configuring participant video feeds within a virtual conferencing system
US11973613B2 (en) 2021-03-30 2024-04-30 Snap Inc. Presenting overview of participant conversations within a virtual conferencing system
US11489684B2 (en) 2021-03-30 2022-11-01 Snap Inc. Assigning participants to rooms within a virtual conferencing system
US11855796B2 (en) 2021-03-30 2023-12-26 Snap Inc. Presenting overview of participant reactions within a virtual conferencing system
US20220321373A1 (en) 2021-03-30 2022-10-06 Snap Inc. Breakout sessions based on tagging users within a virtual conferencing system
US11722535B2 (en) 2021-03-30 2023-08-08 Snap Inc. Communicating with a user external to a virtual conference
US11683192B2 (en) 2021-03-30 2023-06-20 Snap Inc. Updating element properties based on distance between elements in virtual conference
US11792031B2 (en) 2021-03-31 2023-10-17 Snap Inc. Mixing participant audio from multiple rooms within a virtual conferencing system
US11979244B2 (en) 2021-09-30 2024-05-07 Snap Inc. Configuring 360-degree video within a virtual conferencing system
US20230096597A1 (en) 2021-09-30 2023-03-30 Snap Inc. Updating a room element within a virtual conferencing system
US20230094963A1 (en) 2021-09-30 2023-03-30 Snap Inc. Providing template rooms within a virtual conferencing system
US20230101879A1 (en) 2021-09-30 2023-03-30 Snap Inc. Providing a door for a room within a virtual conferencing system
US20230101377A1 (en) 2021-09-30 2023-03-30 Snap Inc. Providing contact information within a virtual conferencing system

Also Published As

Publication number Publication date
US11973613B2 (en) 2024-04-30
US20220321374A1 (en) 2022-10-06
EP4315838A1 (en) 2024-02-07
CN117121470A (zh) 2023-11-24

Similar Documents

Publication Publication Date Title
US11973613B2 (en) Presenting overview of participant conversations within a virtual conferencing system
US11968055B2 (en) Assigning participants to rooms within a virtual conferencing system
US11784841B2 (en) Presenting participant reactions within a virtual conferencing system
US11943072B2 (en) Providing a room preview within a virtual conferencing system
US11689696B2 (en) Configuring participant video feeds within a virtual conferencing system
US11722535B2 (en) Communicating with a user external to a virtual conference
US20220321617A1 (en) Automatically navigating between rooms within a virtual conferencing system
US11979244B2 (en) Configuring 360-degree video within a virtual conferencing system
US11792031B2 (en) Mixing participant audio from multiple rooms within a virtual conferencing system
US11855796B2 (en) Presenting overview of participant reactions within a virtual conferencing system
US20240080215A1 (en) Presenting overview of participant reactions within a virtual conferencing system
US20230096597A1 (en) Updating a room element within a virtual conferencing system
US20230101377A1 (en) Providing contact information within a virtual conferencing system
WO2022212391A1 (en) Presenting participant conversations within virtual conferencing system
US20240069687A1 (en) Presenting participant reactions within a virtual working environment
US11880560B1 (en) Providing bot participants within a virtual conferencing system
US11979442B2 (en) Dynamically assigning participant video feeds within virtual conferencing system
US11972173B2 (en) Providing change in presence sounds within virtual working environment
US20240073050A1 (en) Presenting captured screen content within a virtual conferencing system
US20240073051A1 (en) Coordinating side conversations within virtual conferencing system
US20240073364A1 (en) Recreating keyboard and mouse sounds within virtual working environment
US20240069708A1 (en) Collaborative interface element within a virtual conferencing system
US20240073370A1 (en) Presenting time-limited video feed within virtual working environment
US20240073371A1 (en) Virtual participant interaction for hybrid event
US20240073372A1 (en) In-person participant interaction for hybrid event