KR20150079640A - 실시간 통신 및 경험 공유 세션 동안 서비스를 업데이트하는 기법 - Google Patents

실시간 통신 및 경험 공유 세션 동안 서비스를 업데이트하는 기법 Download PDF

Info

Publication number
KR20150079640A
KR20150079640A KR1020157010811A KR20157010811A KR20150079640A KR 20150079640 A KR20150079640 A KR 20150079640A KR 1020157010811 A KR1020157010811 A KR 1020157010811A KR 20157010811 A KR20157010811 A KR 20157010811A KR 20150079640 A KR20150079640 A KR 20150079640A
Authority
KR
South Korea
Prior art keywords
computing device
service
information
sharing session
experience sharing
Prior art date
Application number
KR1020157010811A
Other languages
English (en)
Other versions
KR102078894B1 (ko
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 KR20150079640A publication Critical patent/KR20150079640A/ko
Application granted granted Critical
Publication of KR102078894B1 publication Critical patent/KR102078894B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/12Messaging; Mailboxes; Announcements
    • H04L65/4007
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1083In-session procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/401Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/401Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference
    • H04L65/4015Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference where at least one of the additional parallel sessions is real time or time sensitive, e.g. white board sharing, collaboration or spawning of a subconference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/18Information format or content conversion, e.g. adaptation by the network of the transmitted or received information for the purpose of wireless delivery to users or terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/822Collecting or measuring resource availability data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/16Communication-related supplementary services, e.g. call-transfer or call-hold
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/50Service provisioning or reconfiguring

Landscapes

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

Abstract

본 명세서에는 통신 호 동안 경험 공유 세션에서 서비스를 업데이트하기 위한 도구 및 기법에 대한 대표적인 실시예가 개시되어 있다. 하나의 예시적인 기법에 따르면, 제1 컴퓨팅 장치는 통신 호를 개시하고 제2 컴퓨팅 장치에 대한 성능 정보를 수신한다. 제2 컴퓨팅 장치에 대한 성능 정보는 제2 컴퓨팅 장치에 의해 지원되는 서비스의 속성을 나타내는 정보를 포함한다. 또한, 제1 컴퓨팅 장치는 서비스가 제1 컴퓨팅 장치 및 제2 컴퓨팅 장치에 의해 지원되는 지를 판정하기 위해 성능 정보를 평가한다. 제1 컴퓨팅 장치는 서비스를 포함하는 경험 공유 세션을 개시한다. 서비스에 대한 업데이트 정보를 포함하는 업데이트 메시지가 수신되고, 수신된 업데이트 정보에 기초하여, 서비스의 콘텐츠가 업데이트된다.

Description

실시간 통신 및 경험 공유 세션 동안 서비스를 업데이트하는 기법{UPDATING SERVICES DURING REAL-TIME COMMUNICATION AND SHARING-EXPERIENCE SESSIONS}
인터넷의 사용이 사람들이 정보를 교환하는 도구로서 성장함에 따라, 인터넷 기술은 인터넷을 통해 오디오 및 비디오를 통신하기 위한 다양한 도구를 제공하도록 적응되어 왔다. 몇몇 전통적인 도구는 실시간 비디오 및 오디오를 통신할 수 있다. 이들 전통적인 도구가 실시간 비디오 및 오디오를 통신할 수 있을지라도, 이들 도구의 통신 능력은 제한된다.
본 명세서에서 설명된 다른 혁신들 중에서, 본 설명은 서비스의 상호작용을 구현하기 위해 하나 이상의 통신 호(communication call) 동안 경험 공유 세션(sharing-experience sessions)에서 서비스를 업데이트하는 도구 및 기법의 다양한 대표적 실시예를 나타낸다.
일 실시예에서, 제1 컴퓨팅 장치는 하나 이상의 다른 컴퓨팅 장치와의 통신 호를 시작하고 통신 호 상의 컴퓨팅 장치들 간에 실시간 음성 및/또는 오디오 통신 데이터를 교환한다. 또한, 통신 호 동안, 통신 호에 대한 당사자인 컴퓨팅 장치들은 제각기의 컴퓨팅 장치에 의해 지원되는 서비스 및/또는 액션을 나타내는 성능 정보를 교환한다. 또한 통신 호 동안, 수신된 성능 정보가 나타내는 바와 같이, 서비스의 적어도 하나의 공통 액션을 지원하는 것으로 판정된 컴퓨팅 장치들 간에 상호작용하는 경험 공유 세션이 개시된다. 서비스의 상호작용은 경험 공유 세션에 대한 컴퓨팅 장치들 집합 상에서 공통적으로 지원되는 액션이 서비스의 각 인스턴스에 의해 수행되는 것에 응답하여, 경험 공유 세션 동안 컴퓨팅 장치들 간에 서비스에 대한 업데이트 메시지를 교환함으로써 구현된다.
하나의 예시적인 기법에 따르면, 제1 컴퓨팅 장치는 통신 호를 개시하고 제2 컴퓨팅 장치에 대한 성능 정보를 수신한다. 제2 컴퓨팅 장치에 대한 성능 정보는 제2 컴퓨팅 장치에 의해 지원되는 서비스의 속성을 나타내는 정보를 포함한다. 또한, 제1 컴퓨팅 장치는 서비스가 제1 및 제2 컴퓨팅 장치에 의해 지원되는 지를 판정하기 위해 성능 정보를 평가한다. 또한, 제1 컴퓨팅 장치는 서비스를 포함하는 경험 공유 세션을 개시한다. 서비스에 대한 업데이트 정보를 포함하는 업데이트 메시지가 수신되고, 이 수신된 업데이트 정보에 기초하여 서비스의 콘텐츠가 업데이트된다.
또 다른 예시적인 기법에 따르면, 제1 컴퓨팅 장치는 통신 호를 개시하고 제2 컴퓨팅 장치에 대한 성능 정보를 수신한다. 제1 컴퓨팅 장치는 제1 및 제2 컴퓨팅 장치가 서비스의 적어도 하나의 상호 액션을 지원하는 지를 판정하기 위해 제2 컴퓨팅 장치에 대한 성능 정보를 평가한다. 또한, 제1 컴퓨팅 장치는 서비스를 포함하는 경험 공유 세션을 개시하고 서비스의 상호 액션(들) 중 하나를 수행한다. 서비스의 상호 액션에 대한 업데이트 정보를 포함하는 업데이트 메시지도 전송된다.
또 다른 예시적인 기법에 따르면, 제1 컴퓨팅 장치는 통신 호를 개시하고 제2 컴퓨팅 장치에 대한 성능 정보를 수신한다. 제1 컴퓨팅 장치는 제1 및 제2 컴퓨팅 장치가 서비스의 제1 및 제2 액션 모두를 지원하는 지를 판정하기 위해 성능 정보를 평가한다. 제1 컴퓨팅 장치는 서비스를 포함하는 경험 공유 세션을 개시하고 서비스에 대한 업데이트 정보를 포함하는 업데이트 메시지를 수신한다. 수신된 업데이트 정보에 기초하여, 서비스의 제1 액션이 수행된다. 또한, 제1 컴퓨팅 장치는 서비스의 제2 액션을 수행하고, 제2 액션의 수행에 기초하여, 서비스에 대한 업데이트 정보를 포함하는 제2 업데이트 메시지가 전송된다.
본 요약부는 이하에서 더 설명되는 선택된 개념들을 간단하게 소개하고자 하는 것이다. 본 요약부는 청구대상의 핵심적인 특징이나 필수적인 특징들을 밝히고자 함이 아니며, 청구 대상의 범위를 제한하고자 함도 아니다. 본 기술에 대한 전술한 및 다른 목적, 특징 및 장점은 첨부한 도면을 참조하는 후속하는 상세한 설명으로부터 보다 명확해질 것이다.
도 1은 경험 공유 세션에 대한 서비스의 콘텐츠를 업데이트하기 위한 예시적인 컴퓨팅 장치를 나타내는 다이아그램이다.
도 2는 경험 공유 세션에 대한 서비스의 콘텐츠를 업데이트하는 예시적인 방법의 흐름도이다.
도 3은 통신 호 동안 하나 이상의 서비스를 위한 하나 이상의 경험 공유 세션을 제공할 수 있는 예시적인 컴퓨팅 장치를 나타낸다.
도 4는 경험 공유 세션 동안 서비스에 대한 업데이트 메시지를 전송하는 예시적인 방법의 흐름도이다.
도 5는 통신 호 동안 경험 공유 세션에서 서비스를 업데이트하기 위한 업데이트 메시지를 수신 및 전송할 수 있는 예시적인 컴퓨팅 장치를 나타내는 다이아그램이다.
도 6은 통신 호 동안 경험 공유 세션에 이용가능한 다양한 지원되는 서비스를 제공하는 애플리케이션을 원격으로 론칭할 수 있는 예시적인 컴퓨팅 장치를 나타내는 다이아그램이다.
도 7은 서비스의 액션의 실행에 기초하여 서비스에 대한 업데이트 메시지를 전송하는 예시적인 방법의 흐름도이다.
도 8은 개시되어 있는 임의 실시예를 수행할 수 있는 예시적인 이동 장치를 나타내는 개략도이다.
도 9는 개시되어 있는 임의의 실시예에 대한 적절한 구현 환경의 일반화된 예를 나타내는 개략도이다.
도 10은 개시되어 있는 임의의 실시예에 대한 적절한 컴퓨팅 환경의 일반화된 예를 나타내는 개략도이다.
경험 공유 세션에 대한 서비스의 콘텐츠를 업데이트하기 위한 예시적인 시스템
장치의 사용자가 이 사용자 장치에 의해 렌더링 또는 제공되는 콘텐츠를 원격 장치의 다른 사용자와 실시간으로 공유하는 것이 바람직할 수 있다. 또한, 사용자는 원격 장치의 사용자와 실시간 오디오 및/또는 비디오 통신 그 이상을 공유하기를 원할 수 있다. 실시간 오디오 및/또는 비디오 세션 동안, 사용자는 상호작용하는 경험 공유 세션에 참여하기를 원할 수 있는데, 이 세션에서, 사용자는 양쪽 사용자들이 그들의 각 장치에서 실시간으로 상호작용하여 다룰 수 있는 가상 객체 또는 데이터와 같은 상호작용 콘텐츠를 공유할 수 있다.
도 1은 경험 공유 세션에 대한 서비스(140)의 콘텐츠(170)를 업데이트하는 예시적인 컴퓨팅 장치를 나타내는 다이아그램이다. 도 1에서, 컴퓨팅 장치(100)는 하나 이상의 컴퓨팅 장치(120)와의 통신 호(110)를 개시한다. 컴퓨팅 장치(100,120)는 동일한 폼 팩터/장치 유형 또는 상이한 폼 팩터를 가질 수 있다. 통신 호(110) 동안, 컴퓨팅 장치(100)는 하나 이상의 컴퓨팅 장치(120)가 통신 호(110)에 참여하기 위한 성능 정보(130)를 수신한다. 이 성능 정보(130)는 하나 이상의 컴퓨팅 장치(120)에 의해 지원되는 하나 이상의 서비스의 하나 이상의 속성을 나타낸다. 예를 들어, 서비스의 속성은 서비스의 식별자, 서비스의 버전 번호, 또는 서비스에 의해 지원되는 하나 이상의 액션 및/또는 커맨드일 수 있다. 몇몇 구현에서, 서비스는 다양한 복잡성 레벨을 갖는 가상 객체의 상호작용하는 실시간 공유 및 제어, 및/또는 애플리케이션 콘텐츠 또는 상태의 공유를 제공할 수 있다. 복잡성의 레벨은 복잡성의 상위 레벨에서부터 복잡성의 하위 레벨까지 이를 수 있다.
컴퓨팅 장치(100)는 서비스(140)와 같은 하나 이상의 서비스가 하나 이상의 컴퓨팅 장치(120) 각각에 의해 지원되고 또한 컴퓨팅 장치(100)에 의해서도 지원되며 서비스(140)를 위한 경험 공유 세션(150)과 같은 하나 이상의 경험 공유 세션에 이용가능한지를 판정하기 위해, 경험 공유 모듈(125)을 사용하여 수신된 성능 정보(130)를 평가한다. 경험 공유 모듈(125)을 사용하는 컴퓨팅 장치(100)는 하나 이상의 컴퓨팅 장치(120) 각각에 의해 지원되는 서비스(140)를 위한 경험 공유 세션(150)과 같은 하나 이상의 경험 공유 세션을 개시할 수 있다. 경험 공유 세션은 하나 이상의 업데이트 메시지(160)와 같은 하나 이상의 메시지를 전송 및/또는 수신하기 위해 컴퓨팅 장치(100)와 하나 이상의 컴퓨팅 장치(120) 간의 통신 채널을 사용할 수 있다. 경험 공유 세션에서, 서비스는 공유 책의 독서 경험, 가상 객체 공유, 게이밍, 원격 하이라이팅 등과 같은 하나 이상의 상호작용 경험을 제공할 수 있다. 경험 공유 세션은 상이한 상호작용 경험을 위한 다수의 서비스를 포함할 수 있다.
서비스의 예시적인 구현에서, 서비스는 경험 공유 세션 동안 가상 객체와의 상호작용을 제공한다. 이 서비스에 대한 경험 공유 세션 동안, 다양한 장치들 간의 통신 호를 통해, 사용자들은 빌딩의 평면도에 대해 통신하기 위해 통신 호의 오디오 및 비디오 성능을 이용할 수 있고, 또한 사용자들은 논의되고 있는 빌딩의 평면도의 3차원 모델을 보여주는 가상 객체와 상호작용하기 위한 서비스의 성능을 이용할 수 있다. 빌딩 모델은 서비스의 콘텐츠를 디스플레이, 조작 및 업데이트하기 위한 성능을 제공하는 서비스의 지원되는 액션들을 이용하여 상호작용될 수 있다.
도 1을 참조하면, 하나 이상의 업데이트 메시지(160) 중 적어도 하나의 수신에 응답하여, 컴퓨팅 장치(100)는 서비스의 콘텐츠(170)를 업데이트한다. 예를 들어, 업데이트 메시지는 컴퓨팅 장치에 의해 수신될 수 있고 서비스에 의해 제공되는 콘텐츠는 업데이트 메시지 내에 제공된 정보에 의해 제어 및/또는 안내되는 상태에 놓이게 될 수 있다. 예를 들어, 상호작용 빌딩 모델에 대한 경험 공유 세션의 예에서, 하나의 사용자가 일반적인 성능에 따라 사용자의 장치에서 빌딩 모델과 상호작용하는 경우, 장치는 자동으로 다른 사용자의 각 장치상의 빌딩 모델의 변화를 반영하는 메시지를 다른 참여 장치에 전송하여, 다른 사용자가 그 모델의 변화를 실시간 상호작용 경험으로 볼 수 있게 된다. 몇몇 구현에서, 원격 장치에서 서비스를 업데이트하기 위해 전송된 업데이트 메시지는 서비스에 의해 해석될 수 있고 변화를 효율적인 방식으로 전달할 수 있는 데이터를 포함한다. 업데이트 메시지는 수신된 경우 서비스의 업데이트 동작을 제어할 수 있고 업데이트 메시지는 경험 공유 세션에 참여하는 컴퓨팅 장치들에 걸쳐 서비스의 상태를 재구성 또는 반영하기에 충분한 정보를 포함할 수 있다.
경험 공유 세션에 대한 서비스의 콘텐츠를 업데이트하는 예시적인 방법
도 2는 경험 공유 세션에 대한 서비스의 콘텐츠를 업데이트하는 예시적인 방법(200)의 흐름도이다. 도 2에서, 제1 컴퓨팅 장치는 210에서 통신 호를 개시한다. 예를 들어, 제1 컴퓨팅 장치는 통신 호를 시작하기 위한 초대를 하나 이상의 다른 컴퓨팅 장치에 전송할 수 있다. 통신 호는 이 통신 호 상에서 컴퓨팅 장치들 간의 데이터 채널을 통한 데이터 전송을 통해 실시간 통신을 지원할 수 있다. 통신 호에 대한 데이터 채널은 음성 통신, 비디오 통신, 및 경험 공유 세션에 사용되는 정보 중 하나 이상을 지원할 수 있다. 예를 들어, 통신 호는 통신 데이터를 교환하기 위해 VOIP(voice over internet protocol)를 사용하는 두 개의 컴퓨팅 장치 사이에서 인터넷을 통해 스트리밍되는 비디오 및 음성 호일 수 있다. 몇몇 구현에서, 통신 호는 컴퓨팅 장치에서 컴퓨터 실행가능 명령어를 사용하여 통신 호의 기능을 구현하는 통신 호 모듈에 의해 개시 및 수행될 수 있다.
통신 호를 개시하는 몇몇 구현에서, 제2 컴퓨팅 장치는 전송된 초대의 수락을 전송하고, 이 수락은 제1 컴퓨팅 장치에 의해 수신된다. 초대의 수락에 응답하여, 제1 컴퓨팅 장치와 제2 컴퓨팅 장치 간의 통신 호는 승인 및/또는 시작될 수 있고, 통신 호 동안 데이터 채널을 통해 제1 컴퓨팅 장치와 제2 컴퓨팅 장치 간에 통신이 전달될 수 있다. 호출 및/또는 초대된 제2 컴퓨팅 장치가 초대를 수락하여 통신 호를 시작하면, 제1 컴퓨팅 장치 및 제2 컴퓨팅 장치는 각 컴퓨팅 장치에 의해 지원되는 오디오 및/또는 비디오 포맷, 지원되는 대역폭, 해상도 지원 등을 결정하는 것을 포함할 수 있는 미디어 협상을 수행할 수 있다. 미디어 협상이 완료된 후, 오디오 및/또는 비디오 스트림은 미디어 협상의 결과에 따라 통신 호에 참여하는 컴퓨팅 장치들 간에 전송될 수 있다.
몇몇 구현에서, 통신 호를 개시하는 경우, 제1 컴퓨팅 장치는 또 다른 컴퓨팅 장치와의 통신 호를 시작하기 위한 요청을 수신할 수 있고 제1 컴퓨팅 장치는 제1 컴퓨팅 장치와 제2 컴퓨팅 장치 간의 통신 호를 시작하기 위한 요청의 수락을 전송할 수 있다. 제1 컴퓨팅 장치로부터의 수락을 수신한 것에 응답하여, 제2 컴퓨팅 장치는 제1 컴퓨팅 장치와의 통신 호를 시작할 수 있다.
220에서, 제2 컴퓨팅 장치에 대한 성능 정보가 수신된다. 제2 컴퓨팅 장치에 대한 성능 정보는 제2 컴퓨팅 장치에 의해 지원되는 서비스의 속성들을 나타내는 정보를 포함한다. 예를 들어, 제2 컴퓨팅 장치는 하나 이상의 서비스를 지원할 수 있고, 각 서비스는 하나 이상의 액션 및/또는 커맨드를 갖는다. 제2 컴퓨팅 장치는 자신이 지원하는 하나 이상의 서비스에 대한 정보를 전송할 수 있다. 예를 들어, 성능 정보는 서비스 식별자, 서비스 버전 번호, 지원되는 액션, 지원되는 커맨드, 서비스에 이용가능한 하드웨어 등을 포함할 수 있다. 서비스 식별자는 컴퓨팅 장치에 의해 지원되는 서비스를 유일하게 식별할 수 있다. 또한, 성능 정보는 서비스를 위한 데이터가 조직화되게 하는 하나 이상의 스키마에 대한 정보를 포함할 수 있다. 성능 정보는 또한 장치에 이용가능한 처리 용량, 메모리 용량, 디스플레이 해상도 및 네트워크 연결 속도에 대한 정보도 포함할 수 있다.
서비스는 다양한 버전을 가질 수 있고, 서비스 버전 번호는 서비스의 버전을 유일하게 식별할 수 있다. 예를 들어, 서비스는 제1 버전의 지원되는 액션들의 집합을 가질 수 있다. 제2 버전에서, 서비스는 제1 버전의 지원되는 액션들의 집합 중 하나 이상을 지원할 수 있고 제1 버전에 의해 지원되지 않는 하나 이상의 액션을 지원할 수 있다. 버전 식별자는 서비스가 컴퓨팅 장치들 간에 호환되어 사용될 수 있는지를 판정하는데 사용될 수 있다. 예를 들어, 다양한 장치 상의 서비스의 버전들은 호환성에 대해 비교될 수 있다.
성능 정보는 제2 컴퓨팅 장치에 이용가능한(예를 들어, 그에 의해 지원되는) 하나 이상의 서비스에 의해 지원되는 하나 이상의 액션에 대한 정보를 포함할 수 있다. 서비스는 이 서비스에 이용가능한 액션들의 한 세트를 가질 수 있고, 서비스는 컴퓨팅 장치에서 완전히 또는 부분적으로 지원될 수 있다. 예를 들어, 서비스는 제1 장치에서 제1 세트의 이용가능한 액션들을 지원할 수 있고, 제2 장치는 서비스의 제2 세트의 이용가능한 액션들을 지원할 수 있다. 제1 및 제2 세트의 이용가능한 액션들은 세트들 간에 공통적인 하나 이상의 상호 액션, 또는 양 세트에 공통적이지 않고 (하나의 액션 세트에는 포함되나 다른 액션 세트에는 포함되지 않는) 하나 이상의 액션을 포함할 수 있다. 예를 들어, 소형 디스플레이 스크린을 갖는 제1 장치는 서비스를 부분적으로 지원할 수 있고, 제2 장치에서 서비스에 의해 공유되는 정보의 소비를 허용하는 서비스의 액션을 지원할 수 있지만, 큰 스크린을 갖는 장치는 서비스를 완전히 지원할 수 있고 사용자가 가상 객체와 실시간으로 상호작용 및 수정할 수 있게 해주는 다수의 액션을 지원할 수 있다.
성능 정보는 단일 서비스와 관련될 수 있다. 또는, 성능 정보는 다수의 서비스와 관련될 수 있다. 예를 들어, 제2 컴퓨팅 장치에 대한 성능 정보는 제2 컴퓨팅 장치에 의해 지원되는 제1 서비스의 속성 및 제2 서비스의 속성을 나타낸다.
몇몇 구현에서, 성능 정보는 다양한 시기에서 전송 및/또는 수신된다. 예를 들어, 성능 정보는 통신 호의 개시 동안 및/또는 미디어 협상 동안 전송될 수 있다. 또한, 예를 들어, 성능 정보는 요청시 전송 또는 수신될 수 있다. 몇몇 구현에서, 컴퓨팅 장치는 다른 컴퓨팅 장치의 성능 정보의 일부 또는 전부를 요청 및/또는 수신할 수 있다. 예를 들어, 컴퓨팅 장치는 다른 장치에 의해 지원되는 서비스의 서비스 식별자 세트를 요청할 수 있고, 그 다른 장치는 요청에 응답하여 성능 정보를 전송할 수 있다. 또한, 예를 들어, 제1 컴퓨팅 장치는 또 다른 장치에 의해 지원되는 서비스의 하나 이상의 액션 및/또는 커맨드에 대한 정보 및/또는 그 또 다른 장치에서의 서비스의 버전 또는 버전들에 대한 정보와 같은 특정 서비스에 대한 성능 정보를 요청할 수 있다. 제2 컴퓨팅 장치에 대한 성능 정보를 수신하는 것 외에 또는 그 대신에, 제1 컴퓨팅 장치는 제1 컴퓨팅 장치에 대한 성능 정보를 제2 컴퓨팅 장치(및/또는 또 다른 컴퓨팅 장치)에 전송하여, 제1 컴퓨팅 장치에 의해 지원되는 서비스(들)의 속성을 나타낸다.
보다 일반적으로, 컴퓨팅 장치는 하나 이상의 경험 공유 세션의 서비스에 대한 성능들을 협상한다. 상이한 엔드포인트들은 상이한 폼 팩터(예를 들어, 데스크탑 컴퓨터, 스마트폰, 태블릿) 또는 리소스를 가질 수 있다. 주어진 서비스에 대해, 컴퓨팅 장치에 의해 지원되는 액션, 커맨드, 포맷 등은 하드웨어 성능에 대한 정보와 함께 다른 컴퓨팅 장치들과 교환될 수 있다. 액션 세트, 커맨드, 포맷 등은 서비스에 특정될 수 있고 컴퓨팅 장치 및 다른 서비스에 대해 불투명할 수 있다.
또는, 액션, 커맨드, 포맷 등은 스키마를 따를 수 있다. 이 경우, 다수의 서비스는 동일한 스키마를 사용할 수 있다. 예를 들어, 서비스에 대한 데이터는 스키마를 따르고, 액션 또는 커맨드는 스키마에 정의된 것들로부터 선택될 수 있다. 성능 협상의 일부로서, 컴퓨팅 장치는 어떤 스키마가 지원되는지를 나타낼 수 있다.
도 2를 참조하면, 230에서, 제1 컴퓨팅 장치는 서비스가 제1 및 제2 컴퓨팅 장치에 의해 지원되는 지를 판정하기 위해 제2 컴퓨팅 장치에 대한 성능 정보를 평가한다. 예를 들어, 서비스의 하나 이상의 속성에 대한 정보가 평가되고 제1 컴퓨팅 장치의 성능 정보에 비교되어 서비스가 제1 및 제2 컴퓨팅 장치 모두에 의해 지원되는 지 및/또는 서비스가 경험 공유 세션을 가능하게 하는 제1 및 제2 컴퓨팅 장치에서 상호 속성을 가지는 지를 판정한다. 예를 들어, 제2 컴퓨팅 장치의 성능 정보는 자신이 지원하는 서비스의 식별자를 포함할 수 있고, 이 식별자는 제1 컴퓨팅 장치에 의해 지원되는 하나 이상의 서비스의 식별자와 비교되어 제1 컴퓨팅 장치도 식별된 서비스를 지원하는 지를 판정할 수 있다. 각 컴퓨팅 장치에 대해 비교된 서비스 식별자가 동일한 서비스를 식별하는 경우, 컴퓨팅 장치는 그 서비스를 지원하는 것으로 판정될 수 있다.
몇몇 구현에서, 제2 컴퓨팅 장치에 대한 성능 정보에 표시된 서비스의 하나 이상의 액션은 제1 컴퓨팅 장치에 의해 지원되는 서비스의 하나 이상의 액션과 비교될 수 있다. 장치의 유형, 서비스의 버전 또는 다른 요인에 따라, 상이한 장치들은 서비스에 대한 상이한 액션 세트들을 지원할 수 있다. 제2 컴퓨팅 장치에 의해 지원되고 제1 컴퓨팅 장치에 의해서도 지원되는 적어도 하나의 액션(예를 들어, 상호 액션)이 있는 경우, 서비스는 제1 및 제2 컴퓨팅 장치에 의해 지원될 수 있고, 액션은 경험 공유 세션에 이용가능하고 및/또는 그 경험 공유 세션을 가능하게 한다. 제1 및 제2 컴퓨팅 장치에 의해 지원되는 상호 액션은 경험 공유 세션 동안 서비스를 제공하는데 사용될 수 있다.
몇몇 구현에서, 제1 컴퓨팅 장치와 제2 컴퓨팅 장치 간에 성능 정보가 교환되고 제1 및 제2 컴퓨팅 장치 모두에 의해 지원되는 서비스 및/또는 서비스의 액션이 없는 경우, 제1 및 제2 장치 사이에 서비스를 위한 경험 공유 세션은 실행되지 않는다. 이 경우, 공통적인 서비스가 지원되지 않기 때문에 제1 및 제2 장치는 서비스에 대한 메시지의 교환을 가능하게 하는 서비스의 경험 공유 세션을 개시할 수 없다.
240에서, 제1 컴퓨팅 장치는 서비스를 포함하는 경험 공유 세션을 개시한다. 예를 들어, 제1 컴퓨팅 장치는 제1 컴퓨팅 장치와 제2 컴퓨팅 장치 간에 서비스가 제공되게 하는 경험 공유 세션을 시작하기 위한 요청을 전송할 수 있다. 경험 공유 세션을 개시하는 몇몇 구현에서, 제2 컴퓨팅 장치는 제1 컴퓨팅 장치로부터 전송된 경험 공유 세션을 시작하기 위한 요청을 수신한 것에 응답하여 수락을 전송한다. 이와 달리, 제2 컴퓨팅 장치는 경험 공유 세션을 수립하기 위한 요청을 전송하고, 제1 컴퓨팅 장치는 경험 공유 세션의 개시의 일부로서 요청의 수락을 전송한다. 경험 공유 세션을 시작하기 위한 요청이 수락된 이후, 경험 공유 세션은 그 수락에 응답하여 시작될 수 있다. 경험 공유 세션이 시작되어 통신 채널이 승인되고 이 통신 채널은 제1 컴퓨팅 장치와 제2 컴퓨팅 장치 간에 서비스의 기능을 제공하기 위한 메시지를 교환하는데 이용가능하게 된다. 몇몇 구현에서, 제1 및 제2 컴퓨팅 장치 모두는 컴퓨팅 장치들 간의 경험 공유 세션의 개시 동안 및 경험 공유 세션 동안 통신 호 내에 있다. 몇몇 구현에서, 서비스를 위한 경험 공유 세션을 시작하기 위한 요청이 이 요청을 수신하는 컴퓨팅 장치에 의해서도 지원되는 서비스의 적어도 하나의 액션을 지원하는 컴퓨팅 장치로부터 전송될 수 있다. 경험 공유 세션의 개시는 서비스 및/또는 다른 작업을 위한 애플리케이션을 론칭하는 것을 포함할 수 있다.
동일한 경험 공유 세션 내에서, 제1 컴퓨팅 장치는 제2 서비스, 제3 서비스 등을 개시할 수 있다. 이것은 컴퓨팅 장치들이 경험 공유 세션으로부터 설정, 리소스 등을 재사용할 수 있게 해주고, 새로운 경험 공유 세션을 수립하기 위한 추가의 메시지를 피할 수 있게 해준다. 이와 달리, 제1 컴퓨팅 장치는 제2 서비스에 대한 제2 경험 공유 세션, 제3 서비스를 위한 제3 경험 공유 세션 등을 개시한다.
250에서, 서비스에 대한 업데이트 정보를 포함하는 업데이트 메시지가 수신된다. 예를 들어, 서비스에 대한 경험 공유 세션 동안, 제2 컴퓨팅 장치는 제1 컴퓨팅 장치에서 서비스를 업데이트하기 위한 정보를 갖는 메시지를 전송할 수 있다. 제1 컴퓨팅 장치는 제2 컴퓨팅 장치에 의해 전송된 업데이트 정보를 갖는 업데이트 메시지를 수신할 수 있다. 이 업데이트 메시지는 제2 컴퓨팅 장치 상에서 서비스의 상태를 변경시키는 액션이 수행되는 것에 응답하여 제2 컴퓨팅 장치 상의 서비스에 의해 전송될 수 있다.
260에서, 수신된 업데이트 정보에 기초하여, 서비스의 콘텐츠는 업데이트된다. 예를 들어, 업데이트 메시지의 업데이트 정보는 수신된 경우 제1 컴퓨팅 장치의 서비스의 기능을 제어할 수 있다. 예를 들어, 업데이트 메시지는 서비스에 의해 해석될 수 있고 서비스의 상태를 변경시킬 수 있거나, 디스플레이된 가상 객체를 변경시킬 수 있거나, 또는 서비스의 기능이 수행되게 할 수 있다. 일반적으로, 업데이트 메시지 내의 정보는 업데이트 메시지를 전송한 장치상의 서비스에 의해 수행되는 서비스의 콘텐츠 또는 기능에 대한 변경을 반영하도록 수신 장치상의 서비스의 상태 또는 콘텐츠를 재구성하는 정보일 수 있다. 제1 컴퓨팅 장치는 또한 제1 컴퓨팅 장치에서의 서비스의 액션(들)의 수행에 응답하여 하나 이상의 업데이트 메시지를 전송할 수 있다. 이러한 업데이트 메시지는 예를 들어 제2 컴퓨팅 장치에서 액션의 수행을 지시하는 업데이트 정보를 포함한다.
업데이트 메시지는 데이터의 지능적 교환을 구현하기 위해 가벼울 수 있다. 이 경우, 업데이트 메시지 페이로드는 수신 서비스가 수신 컴퓨팅 장치에서의 업데이트된 상태를 판정할 수 있도록 해석될 수 있는 데이터의 양을 전달할 수 있다. 예를 들어, 하나의 예시적인 서비스는 공유된 책 읽기 서비스인데, 이 서비스에서 책은 다수의 장치에서 이 다수의 장치들 중 하나 이상으로부터 수신된 업데이트에 기초하여 유사한 상태를 반영하도록 렌더링된다. 책 읽기 서비스에서, 가상의 책이 특정 컴퓨팅 장치에서 새로운 페이지로 넘어가는 경우, 이 특정 컴퓨팅 장치는 이 새로운 페이지의 페이지 번호를 갖는 업데이트 메시지를 경험 공유 세션 내의 다른 컴퓨팅 장치에 전송할 수 있다.
업데이트 메시지를 수신하는 컴퓨팅 장치는 전송 컴퓨팅 장치에서 수정된 대로 업데이트 메시지 정보를 사용하여 서비스의 상태 및/또는 콘텐츠를 재구성할 수 있다. 예를 들어, 책 읽기 서비스에서, 다른 참여 컴퓨팅 장치는 업데이트 메시지에 표시된 페이지를 디스플레이하기 위해 그들 각자의 가상 책의 페이지를 넘길 수 있다. 서비스는 업데이트 메시지를 해석할 수 있고 새로운 페이지를 독립적으로 렌더링할 수 있다. 예를 들어, 고급 장치에 대해, 서비스는 이전 페이지에서 새로운 페이지로 이동하는 애니메이션 효과를 제공할 수 있는 반면, 저급 장치에서의 서비스는 단순히 텍스트를 변경한다. 몇몇 구현에서, 업데이트 메시지는 서비스가 정보를 제공함에 따라 서비스의 업데이트된 상태에 의해 디스플레이되는 정보를 포함하지 않는다. 예를 들어, 가상 책의 페이지가 넘겨지는 경우, 페이지의 컬러는 업데이트 메시지로부터 생략될 수 있는데, 그 이유는 책 읽기 경험을 위한 서비스가 컬러 정보를 제공할 수 있기 때문이다. 따라서, 업데이트 메시지는 서비스의 상태를 재생성하고/하거나 서비스의 상태를 전송 컴퓨팅 장치상의 서비스의 상태와 동기화시키기 위한, 수신 컴퓨팅 장치상에서 서비스에 의해 해석될 수 있는 시맨틱 데이터를 전달할 수 있다.
경험 공유 세션의 또 다른 예에서, 제1 컴퓨팅 장치의 사용자는 이벤트의 비디오를 캡처한다. 경험 공유 세션은 비디오 방송을 위한 하이라이팅 기능을 구현하는 하나 이상의 액션을 제공하는 서비스를 위한 것이다. 이 예에서, 제1 컴퓨팅 장치에 의해 지원되는 서비스를 사용하여, 사용자는 다양한 가입자의 컴퓨팅 장치에 캡처된 비디오를 방송할 수 있다. 제2 컴퓨팅 장치는 비디오 방송을 수신하는 컴퓨팅 장치들 중 하나일 수 있다. 수신 컴퓨팅 장치의 사용자는 비디오 캡처 내의 영역을 원격으로 하이라이팅할 수 있고, 하이라이팅된 영역은 제1 컴퓨팅 장치를 비롯하여, 비디오 방송에 걸쳐 반영될 수 있다. 서비스는 경험 공유 세션에 참여하는 다양한 다른 컴퓨팅 장치로부터 전송된 업데이트 메시지를 수신 및 해석함으로써 제1 컴퓨팅 장치에서 비디오 방송의 영역을 하이라이팅할 수 있다. 업데이트 메시지는 프레임 타임스탬프, 프레임 번호 또는 다른 타이밍 정보, 및 하이라이팅된 영역에 대한 조정 정보를 포함할 수 있다. 경험 공유 세션에서 서비스의 업데이트는 컴퓨팅 장치들의 다수의 사용자가 통신 호 내에서 실시간으로 통신할 수 있게 하는 것과 더불어, 서비스의 공유된 데이터에 대해 참여 및 조작할 수 있게 해준다.
경험 공유 세션의 몇몇 구현에서, 경험 공유 세션이 시작된 이후, 경험 공유 세션의 서비스를 지원하는 각 참여 장치는 서비스의 결과적인 상호작용 경험을 렌더링 및/또는 제공하고, 장치에서의 변동 및/또는 업데이트를 반영하는 업데이트 메시지를 전송 및/또는 수신하며, 서비스의 업데이트된 상태를 렌더링해야 할 수 있고, 서비스의 콘텐츠는 사용자가 보고 및/또는 소비할 수 있게 장치에 디스플레이되도록 렌더링될 수 있다. 결과적으로, 각 참여 컴퓨팅 장치는 자신이 가지고 있는 서비스의 카피 및/또는 인스턴스를 통해 동작할 수 있고, 이들 카피 및/또는 인스턴스는 다른 참여 컴퓨팅 장치상의 서비스의 다른 카피와 동기화될 수 있다. 동기화는 경험 공유 세션에 참여하는 컴퓨팅 장치들 상에서 서비스의 각 카피의 상태를 제어하는 업데이트 메시지를 교환함으로써 구현될 수 있다.
통신 호 동안 서비스에 대한 경험 공유 세션을 제공하는 예시적인 시스템
도 3은 통신 호 동안 하나 이상의 서비스에 대한 하나 이상의 경험 공유 세션에 참가할 수 있는 예시적인 컴퓨팅 장치(300)를 나타내는 다이아그램이다. 도 3에서, 컴퓨팅 장치(300)는 통신 호 모듈을 사용하여 컴퓨팅 장치(310)와의 통신 호(305)를 개시한다. 통신 호(305)를 개시하는 경우, 컴퓨팅 장치(300)는 통신 호(305)를 시작하기 위한 초대(315)를 컴퓨팅 장치(310)에 전송한다. 컴퓨팅 장치(310)는 이 초대(315)를 수신하고 컴퓨팅 장치(300)에 의해 수신되는 초대(315)의 수락(320)을 전송함으로써 초대(315)를 수락한다. 초대(315) 및 수락(320)은 하나 이상의 통신 채널(325)을 사용하여 데이터로서 전송될 수 있다. 수락(320)에 응답하여, 컴퓨팅 장치는 하나 이상의 통신 채널(325)을 사용하여 컴퓨팅 장치(310)와의 통신 호(305)를 시작한다. 통신 호(305)는 컴퓨팅 장치들(300,310) 간의 실시간 음성 및/또는 비디오 통신을 지원하는 비디오 호이다. 통신 호(305)는 VOIP(voice over internet protocol)와 같은 인터넷 기술을 이용하여 구현될 수 있다.
컴퓨팅 장치(300)가 통신 호(305)에 참여하는 경우, 컴퓨팅 장치(300)에 의해 지원되는 서비스들(330) 중 하나의 서비스는 통신 호(305)에 참여하는 또 다른 컴퓨팅 장치가 그 서비스를 또한 지원한다면 경험 공유 세션에 이용가능하다. 통신 호(305)에 참여하는 동안, 컴퓨팅 장치(300)는 컴퓨팅 장치(310)의 성능 정보에 대한 요청(335)을 전송한다. 요청(335)에 응답하여, 컴퓨팅 장치(310)는 컴퓨팅 장치(300)에 의해 수신되는 자신의 성능 정보(340)를 전송한다. 컴퓨팅 장치(310)에 대한 성능 정보(340)는 컴퓨팅 장치(310)에 의해 지원되는 서비스 A(350)의 속성에 대한 정보(340-A), 서비스 B(351)의 속성에 대한 정보(340-B) 및 서비스 J(355)의 속성에 대한 정보(340-C)를 포함한다. 컴퓨팅 장치(300)는 또한 자신의 성능 정보(342)를 컴퓨팅 장치(310)에 전송할 수 있다. 컴퓨팅 장치(300)에 대한 성능 정보는 컴퓨팅 장치(300)에 의해 지원되는 서비스 A(350)의 속성에 대한 정보(342-A), 서비스 B(351)의 속성에 대한 정보(342-B) 및 서비스 C(352)의 속성에 대한 정보(342-C)를 포함한다.
컴퓨팅 장치(300)가 성능 정보(340)를 수신한 후, 컴퓨팅 장치(300)는 컴퓨팅 장치(310)에 의해 지원되는 (성능 정보(340)에 의해 표시되는) 서비스들(345) 중 어느 서비스가 컴퓨팅 장치(300)에 의해 지원되는지를 평가할 수 있다. 도 3에서, 성능 정보(342)는 컴퓨팅 장치(300)가 서비스 A(350), 서비스 B(351) 및 서비스 C(352)를 지원함을 나타낸다. 성능 정보(340)는 컴퓨팅 장치(310)가 서비스 A(350), 서비스 B(351) 및 서비스 J(355)를 지원함을 나타낸다. 서비스 A(350)는 컴퓨팅 장치(300) 및 컴퓨팅 장치(310) 상에서 액션 D, E(360-361)를 지원한다.
서비스 B(351)는 컴퓨팅 장치(300) 상에서 액션 F,G,H(363-365)를 지원한다. 그러나, 서비스 B(351)는 컴퓨팅 장치(310) 상에서 액션 F,G(363-364)를 지원하지만, 컴퓨팅 장치(310)상에서 액션 H(365)는 지원하지 않는다. 컴퓨팅 장치(300) 및 컴퓨팅 장치(310)는 모두 서비스 A,B(350-351)를 지원하고 서비스 A,B(350-351)는 컴퓨팅 장치(300,310) 모두에 의해 지원되는 액션 F,G를 포함하기 때문에, 컴퓨팅 장치(300)는 서비스 A,B(350,351) 각각은 컴퓨팅 장치들 간의 경험 공유 세션에 이용가능하다고 판정한다. 컴퓨팅 장치(310)는 서비스 J(355)를 지원하지만 컴퓨팅 장치(300)는 서비스 J(355)를 지원하지 않기 때문에, 컴퓨팅 장치(310)는 서비스 J(355)는 컴퓨팅 장치들 간의 경험 공유 세션에 이용가능하지 않은 것으로 판정한다. 또한, 컴퓨팅 장치(300)는 서비스 C(352)를 지원하지만 컴퓨팅 장치(310)는 서비스 C(352)를 지원하지 않기 때문에, 컴퓨팅 장치(300)는 서비스 C(352)는 컴퓨팅 장치들 간의 경험 공유 세션에 이용가능하지 않은 것으로 판정한다.
컴퓨팅 장치(300)는 컴퓨팅 장치들 간의 경험 공유 세션에 이용가능한 것으로 판정된 하나 이상의 서비스에 대해 컴퓨터 장치(310)와의 하나 이상의 경험 공유 세션을 개시할 수 있다. 서비스가 장치들 간의 경험 공유 세션에 이용가능하지 않은 것으로 판정되면, 컴퓨팅 장치(300)는 이용가능하지 않은 서비스에 대해 경험 공유 세션을 개시하지 않는다.
서비스 A(350)는 경험 공유 세션에 이용가능한 것으로 판정됨에 따라, 컴퓨팅 장치(300)는 서비스 A(350)에 대해 경험 공유 세션(370)을 개시한다. 컴퓨팅 장치(300)에 의한 경험 공유 세션(370)의 개시는 경험 공유 세션(370)을 시작하기 위한 초대(372)를 전송하는 것과 초대(372)의 수락을 수신하는 것을 포함한다. 초대(372)의 수락(374)은 컴퓨팅 장치(310)로부터 컴퓨팅 장치(300)로 전송된다. 경험 공유 세션(370)의 개시는 또한 컴퓨팅 장치(310)로부터의 수락(374)을 수신한 것에 응답하여 경험 공유 세션(370)을 시작하는 것을 포함한다. 경험 공유 세션(370)은 컴퓨팅 장치(300)에서 지원되는 서비스 A(350)가 컴퓨팅 장치(310)에 의해 전송되었으며 서비스 A(350)에 사용되도록 생성된 하나 이상의 메시지(375)를 해석함으로써 업데이트될 수 있게 한다. 또한, 경험 공유 세션(370)은 컴퓨팅 장치(310)에서 지원되는 서비스 A(350)가 서비스 A(350)에 사용되도록 생성되어 컴퓨팅 장치(300)에 의해 전송된 하나 이상의 메시지(375)를 해석함으로써 업데이트될 수 있게 한다.
메시지들(375) 중 하나의 메시지는 이 메시지를 수신하는 컴퓨팅 장치에서 서비스 A(350)의 상태를 제어 및/또는 변경시키는 정보를 갖는 업데이트 메시지일 수 있다. 예를 들어, 서비스 A(350)는 물리적 객체 또는 구조의 3차원 모델(3-D 모델)이 3차원으로 배향될 수 있게 하여 3-D 모델이 서비스 A(350)를 지원하는 컴퓨팅 장치의 디스플레이 상에서 다양한 각도로 보여질 수 있게 한다. 컴퓨팅 장치(310)의 사용자는 결과적으로 컴퓨팅 장치(310)에 의해 렌더링 및 디스플레이되는 3-D 모델의 배향을 변경시키는 서비스 A(350)에 의해 지원되는 액션 D(360)를 호출하기 위해 사용자 인터페이스를 사용할 수 있다. 컴퓨팅 장치(310)에서 액션 D(360)를 호출함으로써 서비스가 업데이트되는 것에 응답하여, 컴퓨팅 장치(310)는 컴퓨팅 장치(300)상의 서비스 A(350)에 업데이트 메시지를 전송할 수 있다. 업데이트 메시지는 서비스 A(350)의 결과적인 상태를 생성하기 위해 컴퓨팅 장치(300)에서 서비스 A(350)의 액션 D(360)를 호출하기 위한 정보를 포함할 수 있다.
서비스 B(351)가 경험 공유 세션에 이용가능한 것으로 판정됨에 따라, 컴퓨팅 장치(300)는 또한 서비스 B(351)에 대한 경험 공유 세션(380)을 개시한다. 경험 공유 세션(380)은 컴퓨팅 장치(300)에 의해 지원되는 서비스 B(351)가 서비스 B(351)에 의해 사용되도록 생성되어 컴퓨팅 장치(310)에 의해 전송된 하나 이상의 메시지(385)를 해석함으로써 업데이트되게 한다. 컴퓨팅 장치(310)가 서비스 B(351)의 액션 H(365)를 지원하지 않기 때문에, 액션 H(365)의 기능은 경험 공유 세션(380)에 이용가능하지 않고, 컴퓨팅 장치(300)는 경험 공유 세션(380) 동안 액션 H(365)를 호출하기 위한 메시지를 전송하지 않는다. 그러나, 경험 공유 세션(380)은 컴퓨팅 장치(300)에 의해 지원되는 서비스 B(351)가 경험 공유 세션(380)에 참여하는 컴퓨팅 장치 각각에 의해 지원되는 하나 이상의 액션, 예를 들어 액션 F(363) 및 액션 G(364)의 기능을 호출하기 위해 생성되어 컴퓨팅 장치(310)에 의해 전송된 하나 이상의 메시지(385)를 해석함으로써 업데이트되게 한다.
경험 공유 세션 동안 서비스에 대한 업데이트 메시지를 전송하는 예시적인 방법
도 4는 경험 공유 세션 동안 서비스에 대한 업데이트 메시지를 전송하는 예시적인 방법(400)의 흐름도이다. 도 4에서, 410에서 제1 컴퓨팅 장치는 통신 호를 개시한다. 예를 들어, 제1 컴퓨팅 장치는 하나 이상의 컴퓨팅 장치와의 통신 호를 시작하기 위한 초대를 데이터 통신 채널을 통해 전송하고, 그 초대는 초대된 하나 이상의 컴퓨팅 장치에 의해 수락된다. 초대에 대한 수락을 수신한 것에 응답하여, 제1 컴퓨팅 장치는 초대를 수락한 컴퓨팅 장치(들)와의 통신 호를 시작한다. 통신 호는 인터넷 또는 다른 통신 기술을 사용하여 실시간 음성 및/또는 비디오 통신을 지원할 수 있다. 통신 호의 몇몇 구현에서, 컴퓨팅 장치에 사용자 선택이 수신된 것에 응답하여, 비디오 및/또는 오디오는 사용자 선택을 수신하는 컴퓨팅 장치에서의 통신 호에 대해 인에이블 또는 디스에이블될 수 있다. 오디오 및 비디오 모두를 지원하는 통신 호에 참여하는 컴퓨팅 장치는 통신 호 동안 오디오 및/또는 비디오를 제공하도록 또는 오디오 및/또는 비디오를 제공하지 않도록 구성될 수 있다.
420에서, 제2 컴퓨팅 장치에 의해 지원되는 서비스를 나타내는 제2 컴퓨팅 장치에 대한 성능 정보가 수신된다. 예를 들어, 제2 컴퓨팅 장치는 제1 컴퓨팅 장치와의 통신 호에 참여하는 컴퓨팅 장치일 수 있다. 제2 컴퓨팅 장치는 경험 공유 세션에 사용될 수 있는 하나 이상의 서비스를 지원할 수 있다. 제2 컴퓨팅 장치는 자신이 지원하는 하나 이상의 서비스의 속성에 대한 정보를 제1 컴퓨팅 장치에 전송할 수 있다. 몇몇 구현에서, 제2 컴퓨팅 장치는 제1 컴퓨팅 장치로부터의 성능 정보에 대한 요청에 응답하여 성능 정보를 전송한다. 또 다른 구현에서, 제2 컴퓨팅 장치는 통신 호의 개시에 응답하여 통신 호 동안 성능 정보를 자동으로 제1 컴퓨팅 장치에 전송한다.
430에서, 제1 컴퓨팅 장치는 제1 및 제2 컴퓨팅 장치가 경험 공유 세션에 대한 서비스의 적어도 하나의 상호 액션(mutual action)을 지원하는지를 결정하기 위해 제2 컴퓨팅 장치의 성능 정보를 평가한다. 예를 들어, 서비스의 상호 액션은 제1 및 제2 컴퓨팅 장치 모두가 서비스에 대해 지원하는 액션일 수 있다. 몇몇 구현에서, 성능 정보는 제2 컴퓨팅 장치에 의해 지원되는 서비스 및 액션에 대한 정보를 포함한다. 제1 컴퓨팅 장치는 자신이 지원하는 서비스 및 액션에 대한 정보를 제2 컴퓨팅 장치의 성능 정보와 비교하여, 제1 및 제2 컴퓨팅 장치가 공통으로 지원하고 경험 공유 세션에 호환가능한 서비스 및 액션을 결정한다. 컴퓨팅 장치들에 의해 공통으로 지원되는 서비스는 상호 서비스일 수 있고, 컴퓨팅 장치들에 의해 공통으로 지원되는 액션은 상호 액션일 수 있다. 제1 컴퓨팅 장치가 제2 컴퓨팅 장치는 주어진 서비스에 대한 임의의 상호 액션을 지원하지 않는 것으로 판정하면, 제1 컴퓨팅 장치는 제1 및 제2 컴퓨팅 장치에 의해 지원되는 상호 액션을 갖는 다른 서비스에 대한 경험 공유 세션을 시작할지 여부를 평가할 수 있다.
440에서, 제1 컴퓨팅 장치는 서비스를 포함하는 경험 공유 세션을 개시한다. 예를 들어, 제1 컴퓨팅 장치는 지원되는 상호 서비스를 판정하였기 때문에, 식별된 상호 서비스는 제1 컴퓨팅 장치와 제2 컴퓨팅 장치 간의 경험 공유 세션에 이용가능하다. 몇몇 구현에서, 제1 컴퓨팅 장치는 경험 공유 세션을 시작하기 위한 초대를 제2 컴퓨팅 장치에 전송할 수 있고, 그 초대는 제2 컴퓨팅 장치에 의해 수락된다. 수락을 수신한 것에 응답하여, 제1 컴퓨팅 장치는 초대와 연관된 및/또는 식별된 경험 공유 세션을 시작한다.
450에서, 제1 컴퓨팅 장치는 서비스의 적어도 하나의 상호 액션 중 하나를 수행한다. 예를 들어, 경험 공유 세션 동안, 제1 컴퓨팅 장치는 제1 및 제2 컴퓨팅 장치 모두에 의해 지원되는 것으로 식별된 주어진 액션을 수행한다. 주어진 상호 액션이 수행되고 서비스는 수행된 액션의 결과에 따라 제1 컴퓨팅 장치에서 업데이트된다.
460에서, 서비스의 주어진 액션에 대한 업데이트 정보를 포함하는 업데이트 메시지가 전송된다. 예를 들어, 서비스의 상호 액션이 수행되는 것에 응답하여, 제1 컴퓨팅 장치는 제2 컴퓨팅 장치에서 서비스를 업데이트하기 위해 제2 컴퓨팅 장치에 의해 지원되는 상호 액션을 수행하도록 제2 컴퓨팅 장치에서 서비스에 의해 사용될 수 있는 업데이트 정보를 제2 컴퓨팅 장치에 전송할 수 있다. 제1 컴퓨팅 장치는 또한 제2 컴퓨팅 장치로부터 업데이트 메시지를 수신할 수 있고, 업데이트 메시지 내의 업데이트 정보에 기초하여, 제1 컴퓨팅 장치에서 서비스의 콘텐츠를 업데이트한다.
통신 호 동안의 예시적인 경험 공유 세션
도 5는 통신 호 동안 경험 공유 세션에서 서비스를 업데이트하기 위한 업데이트 메시지를 수신 및 전송할 수 있는 예시적인 컴퓨팅 장치(500)를 나타내는 다이아그램이다. 도 5에서, 컴퓨팅 장치(500)는 컴퓨팅 장치(510)와의 통신 호(505)에 있다. 512에서, 컴퓨팅 장치(510)는 서비스의 상태를 업데이트하기 위해 가상 객체(520)를 제1 방향으로 회전시키는 컴퓨팅 장치(500)에 의해서도 지원되는 액션(515)을 수행한다. 서비스의 상태가 업데이트된 경우, 가상 객체(520)는 컴퓨팅 장치(510)에서 수행된 액션에 따라 회전된 대로 디스플레이된다. 도 5에서, 서비스는 다수의 장치상의 서비스의 사용자가 3차원 가상 객체를 실시간으로 조작할 수 있게 해주며, 그에 따라 경험 공유 세션에 참여하는 장치의 사용자는 공통적인 관점에서 3차원 객체를 볼 수 있다. 컴퓨팅 장치(510)에서 액션(515)이 수행되는 것에 응답하여, 컴퓨팅 장치(510)는 컴퓨팅 장치(500)에서 디스플레이되는 가상 객체(520)를 업데이트하기 위한 업데이트 메시지를 전송하고, 서비스의 상태는 컴퓨팅 장치(500)에서 업데이트된다. 가상 객체(520)는 장치의 성능에 기초하여 다른 장치에서 다르게 디스플레이될 수 있다. 예를 들어, 가상 객체(520)는 컴퓨팅 장치(510)에서보다 컴퓨팅 장치(500)에서 보다 자세히 디스플레이된다.
서비스의 몇몇 구현에서, 서비스를 지원하는 장치의 성능에 따라, 서비스는 완전히 또는 부분적으로 지원될 수 있다. 서비스를 위해 수행되는 액션들은 서비스가 경험 공유 세션에 참여하는 장치들에서 유사한 및/또는 동일한 상태로 있도록 서비스의 상태를 업데이트할 수 있지만, 다양한 장치에서의 서비스의 콘텐츠는 각 컴퓨팅 장치상에서의 서비스의 렌더링 성능에 따라 디스플레이될 수 있다.
가상 객체(520)는 통신 세션(505) 동안 업데이트되고, 컴퓨팅 장치(500)는 통신 세션의 비디오(530)를 디스플레이한다. 비디오(530)는 컴퓨팅 장치(510)에 의해 캡처되고 컴퓨팅 장치(500)에 전송되는 실시간 스트리밍 비디오이다. 비디오(530)는 컴퓨팅 장치(510)의 카메라(535)를 이용하여 캡처될 수 있다. 또한, 컴퓨팅 장치(500)는 통신 호(505)의 일부로서 카메라(540)를 이용하여 실시간 비디오를 캡처하여 컴퓨팅 장치(510)로 전송할 수 있다. 컴퓨팅 장치(500) 및 컴퓨팅 장치(510)는 하나 이상의 경험 공유 세션 동안 통신 호(505)의 일부로서 음성 데이터와 같은 실시간 오디오(545)를 통신할 수 있다.
547에서, 컴퓨팅 장치(500)는 컴퓨팅 장치(500)에서 서비스의 상태를 업데이트하기 위해 가상 객체(520)를 제2 방향으로 회전시키는 액션(550)을 수행한다. 액션(550)이 수행되는 것에 응답하여, 컴퓨팅 장치(500)는 컴퓨팅 장치(510)에서 가상 객체(520)를 업데이트하기 위해 서비스에 대한 경험 공유 세션의 일부로서 업데이트 메시지(560)를 전송한다.
컴퓨팅 장치(500)상에서 서비스의 카피(copy)에 의해 지원되는 액션(565)은 컴퓨팅 장치(510)상에서 서비스의 카피에 의해 지원되지 않고, 컴퓨팅 장치(500)와 컴퓨팅 장치(510) 사이에서 서비스에 대한 경험 공유 세션의 일부로서 수행되지 않는다.
경험 공유 세션 동안 애플리케이션의 예시적인 원격 론칭
도 6은 통신 호(605) 동안 경험 공유 세션에서 서비스를 업데이트하기 위해 업데이트 메시지를 교환할 수 있는 서비스를 제공하는 애플리케이션을 원격으로 론칭할 수 있는 예시적인 컴퓨팅 장치(600)를 나타내는 다이아그램이다. 도 6에서, 컴퓨팅 장치(600)는 컴퓨팅 장치(610)와의 통신 세션(605) 내에 있다. 장치(600)의 사용자는 애플리케이션의 콘텐츠 및 상태를 경험 공유 세션(615)을 사용하여 컴퓨팅 장치(610)의 원격 사용자와 공유할 수 있다. 경험 공유 세션(615)을 시작하기 위해, 컴퓨팅 장치(600)는 초대(620)를 전송한다. 초대(620)를 수신한 것에 응답하여, 컴퓨팅 장치(610)는 사용자가 초대를 수락하거나 그 초대를 거절하기 위한 사용자 인터페이스 옵션을 디스플레이할 수 있다. 625에 도시되어 있는 바와 같이, 컴퓨팅 장치(610)는 경험 공유 세션(615)의 시작을 승인하기 위해 초대(620)의 수락을 전송한다.
몇몇 구현에서, 경험 공유 세션에 대한 초대의 수락은 장치상에서 경험 공유 세션에 이용가능한 하나 이상의 서비스의 사용을 승인할 수 있다. 예를 들어, 수락은 경험 공유 세션에 대한 초대에 식별된 서비스의 사용을 승인할 수 없거나 수락은 수락된 경험 공유 세션에 사용되도록 승인된 하나 이상의 서비스를 식별할 수 있다. 도 6에서, 경험 공유 세션(615)에 대해, 625에 도시되어 있는 바와 같이 수락은 컴퓨팅 장치(600) 및 컴퓨팅 장치(610)에 공통적으로 이용가능한 서비스를 승인한다. 이러한 식으로, 세션의 초대/수락에 대한 프로토콜이 완료된 후, 서비스는 별도의 초대없이, 또는 사용자로부터의 간단한 승인 절차를 거쳐 신속히 론칭될 수 있다.
도 6에서, 컴퓨팅 장치(600) 및 컴퓨팅 장치(610) 모두에 이용가능한 서비스는 애플리케이션(630)에 의해 제공되는 서비스 및 애플리케이션(635)에 의해 제공되는 서비스이다. 하나 이상의 경험 공유 세션과 동시에, 컴퓨팅 장치(600)와 컴퓨팅 장치(610) 간의 통신 호(605)는 VOIP 및/또는 비디오 전송 기술과 같은 하나 이상의 통신 기술을 사용하여 장치(600)와 장치(610) 간에 실시간 스트리밍 비디오 및/또는 오디오 데이터(640)를 제공할 수 있다. 컴퓨팅 장치(600)는 경험 공유 세션(615)을 사용하여 애플리케이션(635)의 서비스의 콘텐츠를 공유할 수 있다. 예를 들어, 컴퓨팅 장치(600)의 사용자는 이 사용자가 컴퓨팅 장치(600)에서 조작하는 애플리케이션의 콘텐츠를 경험 공유 세션(615)의 일부로서 컴퓨팅 장치(610)의 원격 사용자와 공유하기를 원할 수 있다.
645에서, 컴퓨팅 장치(600)는 애플리케이션(635)에 의해 제공되는 서비스의 액션을 수행하고 컴퓨팅 장치(610)에서 서비스의 카피를 업데이트하기 위해 업데이트 메시지(647)를 컴퓨팅 장치(610)에 전송한다. 업데이트 메시지(647)와 연관된 서비스를 제공하는 애플리케이션이 컴퓨팅 장치(610)에서 론칭되지 않거나 실행되지 않은 경우, 애플리케이션 및/또는 서비스는 서비스에 대한 업데이트 메시지(647)를 수신한 것에 응답하여 활성화될 수 있다. 서비스가 론칭되어 이용가능해진 이후, 서비스의 카피는 업데이트 메시지(647)의 업데이트를 사용하는 상태로 설정되어, 컴퓨팅 장치(600)상에서 서비스의 카피의 상태를 반영한다. 몇몇 구현에서, 컴퓨팅 장치(610)에서 애플리케이션 및/또는 서비스를 론칭하기 전에, 컴퓨팅 장치(610)는 액션의 허용 또는 거절을 나타내는 사용자 선택의 수신에 기초하여 액션을 허용 또는 거절할 수 있다. 사용자는 컴퓨팅 장치(610) 상에서 사용자 인터페이스에 의해 제공되는 옵션을 선택함으로써 액션의 허용 또는 거절을 나타낼 수 있다.
650에서, 컴퓨팅 장치(610)는 애플리케이션(630)에 의해 제공되는 서비스에 대한 업데이트 메시지(655)를 컴퓨팅 장치(600)에 전송한다. 애플리케이션(630)에 의해 제공되는 서비스에 대한 업데이트 메시지(655)를 수신한 것에 응답하여, 애플리케이션(630)의 서비스의 인스턴스는 컴퓨팅 장치(610)에서의 서비스의 상태를 반영하도록 컴퓨팅 장치(600)에서 업데이트될 수 있다. 몇몇 구현에서, 애플리케이션(630)이 론칭 및/또는 활성화되지 않은 경우, 애플리케이션(630)은 애플리케이션(630)에 의해 제공된 서비스에 대한 업데이트 메시지를 수신한 것에 응답하여 론칭 및 활성화될 수 있다. 지도 애플리케이션에 대해, 예를 들어, 업데이트 메시지는 컴퓨팅 장치의 현재 위치를 나타낼 수 있어, 경험 공유 세션에서 그 위치가 컴퓨팅 장치 각각에 디스플레이된다. 또는, 장치 위치 대신, 원하는 목적지의 위치가 경험 공유 세션에서 컴퓨팅 장치들 간에 공유될 수 있다.
서비스의 액션의 수행에 기초하여 서비스에 대한 업데이트 메시지를 전송하는 예시적인 방법
도 7은 서비스의 액션의 수행에 기초하여 서비스에 대한 업데이트 메시지를 전송하는 예시적인 방법(700)에 대한 흐름도이다. 도 7에서, 710에서 제1 컴퓨팅 장치는 통신 호를 개시한다. 예를 들어, 제1 컴퓨팅 장치는 제2 컴퓨팅 장치가 통신 호를 시작하기 위한 초대를 수락한 것에 응답하여 통신 호를 시작한다.
720에서, 제2 컴퓨팅 장치에 의해 지원되는 서비스의 하나 이상의 속성을 나타내는 정보를 포함하는 제2 컴퓨팅 장치에 대한 성능 정보가 수신된다. 예를 들어, 제2 컴퓨팅 장치는 자신이 지원하는 서비스에 대한 성능 정보를 전송하며, 이 성능 정보는 제1 컴퓨팅 장치에 의해 수신된다. 몇몇 구현에서, 성능 정보가 요청될 수 있다. 예를 들어, 제1 컴퓨팅 장치는 지원되는 서비스에 대한 식별자들 중 하나 이상을 포함하는 성능 정보 및/또는 서비스에 의해 지원되는 버전 번호 및/또는 액션과 같은 지원되는 서비스에 대한 보다 상세한 정보를 요청할 수 있다.
730에서, 제1 컴퓨팅 장치는 제1 및 제2 컴퓨팅 장치 모두가 서비스의 제1 액션 및 제2 액션을 지원하는지를 결정하기 위해 제1 컴퓨팅 장치의 성능 정보 및 제2 컴퓨팅 장치의 성능 정보를 평가한다. 예를 들어, 제1 컴퓨팅 장치는 제2 컴퓨팅 장치의 성능 정보에서 지원되는 것으로 표시된 액션들을 제1 컴퓨팅 장치에 의해 지원되는 (제1 컴퓨팅 장치에서의 성능 정보에 의해 표시된) 액션들과 비교하여 제1 및 제2 컴퓨팅 장치 모두에 의해 지원되는 액션들을 판정한다. 이 비교에 기초하여, 제1 컴퓨팅 장치는 제1 액션이 제1 및 제2 컴퓨팅 장치 모두에 의해 지원되고, 제2 액션이 제1 및 제2 컴퓨팅 장치 모두에 의해 지원됨을 확인할 수 있다. 몇몇 구현에서, 제1 액션은 제2 액션과는 다른 액션일 수 있다. 몇몇 구현에서, 상호 지원되는 액션은 제1 및 제2 장치상에서 동일한 또는 다른 서비스 버전에 의해 지원되는 액션일 수 있다. 예시적인 구현에서, 서비스의 제1 버전은 제1 컴퓨팅 장치상에서 특정 액션을 지원할 수 있고, 서비스의 제2 버전은 제2 컴퓨팅 장치 상에서 그 특정 액션을 지원할 수 있다. 액션이 지원되는 방식은 서비스의 버전마다 다를 수 있다.
740에서, 제1 컴퓨팅 장치는 서비스를 포함하는 경험 공유 세션을 개시한다. 예를 들어, 제1 컴퓨팅 장치는 제1 및 제2 액션을 지원하는 서비스에 대한 경험 공유 세션을 시작한다. 몇몇 구현에서, 제1 컴퓨팅 장치는 제2 컴퓨팅 장치에 전송된 경험 공유 세션을 시작하기 위한 초대의 수락을 수신한 것에 응답하여 경험 공유 세션을 시작한다.
750에서, 서비스에 대한 업데이트 정보를 포함하는 업데이트 메시지가 수신된다. 예를 들어, 경험 공유 세션 동안, 제2 컴퓨팅 장치에서 서비스를 업데이트하는 경우 서비스의 제1 액션이 수행될 수 있다. 제2 컴퓨팅 장치에서 제1 액션이 수행되는 것에 응답하여, 제2 컴퓨팅 장치는 제1 컴퓨팅 장치에서 액션을 재생성하기 위한 정보를 갖는 업데이트 메시지를 전송한다. 예를 들어, 업데이트 정보는 제1 컴퓨팅 장치가 제1 액션을 수행하게 하여, 제1 컴퓨팅 장치에서의 서비스의 콘텐츠가 제2 컴퓨팅 장치에서의 서비스의 인스턴스와 유사한 및/또는 동일한 상태에 놓이게 하는 데이터를 포함한다.
760에서, 서비스의 제1 액션은 수신된 업데이트 정보에 기초하여 수행된다. 예를 들어, 제1 컴퓨팅 장치에서의 서비스는 제2 컴퓨팅 장치로부터 전송된 업데이트 정보를 수신하여 이 업데이트 정보에 따라 서비스의 상태를 업데이트하기 위해 수신된 업데이트 정보를 사용하여 지시된 액션을 수행한다.
770에서, 제1 컴퓨팅 장치는 서비스의 제2 액션을 수행한다. 예를 들어, 제1 컴퓨팅 장치의 사용자는 사용자 인터페이스를 사용하여 제1 컴퓨팅 장치에서 서비스의 제2 액션이 수행되게 한다. 서비스의 제2 액션의 수행은 서비스의 상태를 변화시킨다.
780에서, 제2 액션의 수행에 기초하여, 서비스에 대한 제2 업데이트 정보를 포함하는 제2 업데이트 메시지가 전송된다. 예를 들어, 제2 액션의 수행에 응답하여, 제1 컴퓨팅 장치는 경험 공유 세션 동안 업데이트 메시지를 제2 컴퓨팅 장치에 전송하여, 제2 컴퓨팅 장치는 업데이트 정보를 이용하여 제1 컴퓨팅 장치에서 행해진 액션을 반영하도록 제2 컴퓨팅 장치에서 서비스의 상태를 업데이트한다. 제2 업데이트 정보는 제1 업데이트 정보와 다를 수 있는데, 그 이유는 제2 업데이트 정보는 제2 업데이트 정보에 의해 지시된 대로 제2 컴퓨팅 장치에서 제2 액션을 호출 및/또는 수행함으로써 제1 컴퓨팅 장치에서 서비스의 인스턴스에 의해 행해진 액션을 재생성하는데 사용될 수 있는 정보를 포함하기 때문이다.
경험 공유 세션의 몇몇 구현에서, 경험 공유 세션은 통신 호 동안 종료될 수 있다. 통신 호는 경험 공유 세션이 종료된 후에 계속될 수 있다. 그러나, 이전에 개시된 경험 공유 세션의 참가자들 간에 전송될 메시지들은 더 이상 인증되지 않는다. 경험 공유 세션이 종료된 후, 경험 공유 세션 동안 수신된 서비스의 콘텐츠 및/또는 데이터는 저장될 수 있다. 예를 들어, 경험 공유 세션의 데이터는 컴퓨터에서 컴퓨터 판독가능 매체에 로컬로 저장될 수 있고 및/또는 데이터는 클라우드 저장소 등과 같은 온라인 저장소에 원격으로 저장될 수 있다.
경험 공유 세션의 몇몇 구현에서, 경험 공유 세션 동안, 경험 공유 세션이 시작된 후 추가의 장치들이 경험 공유 세션에 참가하거나 그 세션에의 참가를 시작할 수 있다. 또한, 경험 공유 세션 동안, 경험 공유 세션에 대한 당사자인 컴퓨팅 장치는 경험 공유 세션에 적어도 2개의 다른 컴퓨팅 장치가 남아있다면 경험 공유 세션이 종료되지 않아도 그 경험 공유 세션을 떠날 수 있다. 몇몇 구현에서, 경험 공유 세션의 마지막 두 참가자 중 하나가 경험 공유 세션을 떠나는 경우, 경험 공유 세션은 종료될 수 있다.
예시적인 이동 장치
도 8은 일반적으로 참조번호(802)로 도시되어 있는 다양한 선택적 하드웨어 및 소프트웨어 컴포넌트들을 포함하는 예시적인 이동 장치(800)를 나타내는 시스템도이다. 용이한 도시를 위해 모든 연결관계가 도시되어 있지는 않지만, 이동 장치의 임의의 컴포넌트(802)는 임의의 다른 컴포넌트와 통신할 수 있다. 이동 장치는 다양한 컴퓨팅 장치(예를 들어, 셀룰러폰, 스마트폰, 핸드헬드 컴퓨터, PDA 등) 중 임의의 컴퓨팅 장치일 수 있고 셀룰러 또는 위성 네트워크와 같은 하나 이상의 이동 통신 네트워크(804)와의 양방향 무선 통신을 허용할 수 있다.
도시되어 있는 이동 장치(800)는 신호 코딩, 데이터 처리, 입/출력 처리, 전력 제어 및/또는 다른 기능과 같은 작업을 수행하기 위한 제어기 또는 프로세서(810)(예를 들어, 신호 프로세서, 마이크로프로세서, ASIC 또는 다른 제어 및 처리 로직 회로)를 포함할 수 있다. 운영 체제(812)는 컴포넌트(802)의 할당 및 사용을 제어할 수 있고 하나 이상의 애플리케이션 프로그램(814,815)을 지원할 수 있다. 애플리케이션(815)은 경험 공유 세션 동안 서비스를 업데이트하는 것과 같은, 본 명세서에 기술된 기법들 중 하나 이상을 구현하는 하나 이상의 소프트웨어 모듈을 포함할 수 있다. 애플리케이션 프로그램은 공통 이동 컴퓨팅 애플리케이션(예를 들어, 이메일 애플리케이션, 캘린더, 연락처 관리자, 웹 브라우저, 메시징 애플리케이션), 또는 임의의 다른 컴퓨팅 애플리케이션을 포함할 수 있다. 애플리케이션(814)을 획득 및 업데이트하기 위해 애플리케이션 스토어에 액세스하는 기능(813)이 또한 사용될 수 있다.
도시되어 있는 이동 장치(800)는 메모리(820)를 포함할 수 있다. 메모리(820)는 고정식 메모리(822) 및/또는 이동식 메모리(824)를 포함할 수 있다. 고정식 메모리(822)는 RAM, ROM, 플래시 메모리, 하드디스크, 또는 다른 잘 알려져 있는 메모리 저장 기술을 포함할 수 있다. 이동식 메모리(824)는 플래시 메모리 또는 GSM 통신 시스템에 잘 알려져 있는 가입자 식별 모듈(SIM) 카드, 또는 "스마트 카드"와 같은 다른 잘 알려져 있는 메모리 저장 기술을 포함할 수 있다. 메모리(820)는 운영 체제(812) 및 애플리케이션(814)을 구동시키는 데이터 및/또는 코드를 저장하는데 사용될 수 있다. 예시적인 데이터는 하나 이상의 유선 또는 무선 네트워크를 통해 하나 이상의 네트워크 서버 또는 다른 장치로 전송되고 및/또는 그로부터 수신되는 웹 페이지, 텍스트, 이미지, 소리 파일, 비디오 데이터, 또는 다른 데이터 세트를 포함할 수 있다. 메모리(820)는 IMSI(International Mobile Subscriber Identity)와 같은 가입자 식별자, 및 IMEI(International Mobile Equipment Identifier)와 같은 장비 식별자를 저장하는데 사용될 수 있다. 이러한 식별자들은 사용자 및 장비를 식별하도록 네트워크 서버로 전송된다.
이동 장치(800)는 터치스크린(832), 마이크로폰(834), 카메라(836), 물리적 키보드(838) 및/또는 트랙볼(840)과 같은 하나 이상의 입력 장치(830), 및 스피커(852)와 디스플레이(854)와 같은 하나 이상의 출력 장치(850)를 지원할 수 있다. (도시되어 있지 않은) 다른 가능한 출력 장치는 압전 또는 다른 햅틱 출력 장치를 포함할 수 있다. 몇몇 장치는 둘 이상의 입/출력 기능을 수행할 수 있다. 예를 들어, 터치스크린(832) 및 디스플레이(854)는 하나의 입/출력 장치에서 결합될 수 있다. 입력 장치(830)는 NUI(Natural User Interface)를 포함할 수 있다. NUI는 마우스, 키보드, 원격 제어 등과 같은 입력 장치에 의해 부과되는 인공적인 제약으로부터 자유로운 "자연스런(natural)" 방식으로 사용자가 장치와 상호작용할 수 있게 해주는 임의의 인터페이스 기술이다. NUI 메소드의 예는 음성 인식, 터치 및 스타일러스 인식, 스크린 상의 또한 이 스크린에 인접한 제스처 인식, 에어(air) 제스처, 머리 및 안구 추적, 음성 및 말하기, 비전(vision), 터치, 제스처 및 머신 지능에 의존하는 NUI 메소드를 포함한다. NUI의 다른 예는 가속도계/자이로스코프, 안면 인식, 3D 디스플레이, 머리, 안구 및 시선 추적, 이머시브(immersive) 증강 현실 및 가상 증강 현실(이들 모두는 보다 자연스런 인터페이스를 제공함)을 사용하는 모션 제스처 검출, 및 전기장 감지 전극(EEG 및 관련 메소드)을 사용하여 뇌 활동을 감지하는 기술을 포함한다. 따라서, 하나의 특정 예에서, 운영 체제(812) 또는 애플리케이션(814)은 사용자가 음성 명령을 통해 장치(800)를 조작할 수 있게 해주는 음성 사용자 인터페이스의 일부로서 음성 인식 소프트웨어를 포함할 수 있다. 또한, 장치(800)는 게임 애플리케이션 또는 다른 애플리케이션에 입력을 제공하기 위해 사용자의 공간 제스처를 통한 사용자 상호작용을 가능하게 하는, 예를 들어 제스처를 검출하고 해석하는 입력 장치를 포함할 수 있다.
당업계에 잘 알려져 있는 바와 같이, 무선 모뎀(860)이 안테나(미도시)에 연결될 수 있고 프로세서(810)와 외부 장치 간의 양방향 통신을 지원할 수 있다. 모뎀(860)은 일반적으로 도시되어 있고 이동 통신 네트워크(804)와 통신하는 셀룰러 모뎀 및/또는 다른 무선 기반 모뎀(예를 들어, 블루투쓰(864) 또는 Wi-Fi(862))을 포함할 수 있다. 무선 모뎀(860)은 전형적으로 단일 셀룰러 네트워크 내에서, 셀룰러 네트워크 간에, 또는 이동 장치와 공중 전화 교환망(PSTN) 간에 데이터 및 음성 통신을 위한 GSM 네트워크와 같은 하나 이상의 셀룰러 네트워크와 통신하도록 구성된다.
이동 장치는 적어도 하나의 입/출력 포트(880), 전원(882), GPS 수신기와 같은 위성 네비게이션 시스템 수신기(884), 가속도계(886), 및/또는 USB 포트, IEEE 1394(파이어와이어) 포트 및/또는 RS-232 포트와 같은 물리적 커넥터(890)를 더 포함할 수 있다. 임의의 컴포넌트가 삭제될 수 있고 다른 컴포넌트가 추가될 수 있기 때문에, 도시되어 있는 컴포넌트들(802)이 요구되는 것은 아니며, 즉 모두 포함되는 것은 아니다.
예시적인 구현 환경
도 9는 설명된 실시예, 기법 및 기술이 구현될 수 있는 적절한 구현 환경(900)의 일반화된 예를 나타내는 다이아그램이다.
예시적인 환경(900)에서, 다양한 유형의 서비스(예를 들어, 컴퓨팅 서비스)가 클라우드(910)에 의해 제공된다. 예를 들어, 클라우드(910)는 인터넷과 같은 네트워크를 통해 연결되는 다양한 유형의 사용자 및 장치에 클라우드 기반 서비스를 제공하는, 로컬로 위치하거나 분산될 수 있는 컴퓨팅 장치들의 모음을 포함할 수 있다. 구현 환경(900)은 컴퓨팅 작업을 달성하기 위해 다양한 방식으로 사용될 수 있다. 예를 들어, 몇몇 작업(예를 들어, 사용자 입력을 처리하는 작업 및 사용자 인터페이스를 제시하는 작업)은 로컬 컴퓨팅 장치(예를 들어, 연결된 장치(930,940,950)에서 수행될 수 있는 한편 다른 작업(예를 들어, 후속 처리에 사용될 데이터의 저장)은 클라우드(910)에서 수행될 수 있다.
예시적인 환경(900)에서, 클라우드(910)는 다양한 스크린 기능을 갖는 연결된 장치(930,940,950)에 서비스를 제공한다. 연결된 장치(930)는 컴퓨터 스크린(935)(중간 크기의 스크린)을 갖는 장치를 나타낸다. 예를 들어, 연결된 장치(930)는 데스크탑 컴퓨터, 랩탑, 노트북, 넷북 등과 같은 개인용 컴퓨터일 수 있다. 연결된 장치(940)는 이동 장치 스크린(945)(예를 들어, 작은 크기의 스크린)을 갖는 장치를 나타낸다. 예를 들어, 연결된 장치(940)는 이동 전화기, 스마트폰, PDA, 태블릿 컴퓨터 등일 수 있다. 연결된 장치(950)는 큰 스크린(955)을 갖는 장치를 나타낸다. 예를 들어, 연결된 장치(950)는 텔레비전 스크린(예를 들어, 스마트 텔레비전) 또는 텔레비전에 연결된 다른 장치(예를 들어, 셋탑 박스 또는 게이밍 콘솔) 등일 수 있다. 연결된 장치(930,940,950) 중 하나 이상은 터치스크린 기능을 포함할 수 있다. 터치스크린은 다양한 방식으로 입력을 받아들일 수 있다. 예를 들어, 용량성 터치스크린은 물체(예를 들어, 손가락팁 또는 스타일러스)가 표면을 가로질러 흐르는 전류를 왜곡하거나 방해하는 경우 터치 입력을 검출한다. 또 다른 예로서, 터치스크린은 광 센서를 이용하여 이 광 센서로부터의 빔이 방해되는 경우 터치 입력을 검출할 수 있다. 스크린의 표면과의 물리적 접촉이 몇몇 스크린에 의한 입력 검출에 반드시 필요한 것은 아니다. 스크린 기능이 없는 장치도 예시적인 환경(900)에 사용될 수 있다. 예를 들어, 클라우드(910)는 디스플레이가 없는 하나 이상의 컴퓨터(예를 들어, 서버 컴퓨터)에 서비스를 제공할 수 있다.
서비스는 서비스 제공자(920) 또는 온라니 서비스의 다른 제공자(미도시)를 통해 클라우드(910)에 의해 제공될 수 있다. 예를 들어, 클라우드 서비스는 특정 연결된 장치(예를 들어, 연결된 장치(930,940,950))의 스크린 크기, 디스플레이 기능 및/또는 터치스크린 기능에 맞게 맞춤화될 수 있다.
예시적인 환경(900)에서, 클라우드(910)는 본 명세서에 기술된 기술 및 솔루션을 적어도 부분적으로 서비스 제공자(920)를 이용하여 다양한 연결된 장치(930,940,950)에 제공한다. 예를 들어, 서비스 제공자(920)는 다양한 클라우드 기반 서비스에 대한 중앙집중 솔루션을 제공할 수 있다. 서비스 제공자(920)는 사용자 및/또는 장치(예를 들어, 연결된 장치(930,940,950) 및 이들 각각의 사용자)에 대한 서비스 가입을 관리할 수 있다. 클라우드(910)는 통신 호 동안 경험 공유 세션에서 서비스를 업데이트하기 위해 하나 이상의 업데이트 메시지(925)를 교환함으로써 하나 이상의 서비스를 제공할 수 있다.
예시적인 컴퓨팅 환경
도 10은 설명한 혁신들이 구현될 수 있는 적절한 컴퓨팅 환경(1000)의 일반화된 예를 나타낸다. 컴퓨팅 환경(1000)은 사용 또는 기능의 범위에 대해 어떠한 제한도 두려하지 않는데, 그 이유는 혁신들은 다양한 범용 또는 전용 컴퓨팅 시스템에서 구현될 수 있기 때문이다. 예를 들어, 컴퓨팅 환경(1000)은 다양한 컴퓨팅 장치(예를 들어, 데스크 컴퓨터, 랩탑 컴퓨터, 서버 컴퓨터, 태블릿 컴퓨터, 미디어 플레이어, 게임 시스템, 이동 장치 등) 중 어떤 것이라도 될 수 있다.
도 10을 참조하면, 컴퓨팅 환경(1000)은 하나 이상의 처리 장치(1010, 1015) 및 메모리(1020,1025)를 포함한다. 도 10에서, 이 기본적인 구성(1030)은 점선 내에 포함된다. 처리 장치(1010,1015)는 컴퓨터 실행가능 명령어를 실행한다. 처리 장치는 범용 중앙 처리 장치(CPU), 주문형 집적 회로(ASIC) 내의 프로세서 또는 임의의 다른 유형의 프로세서일 수 있다. 멀티 프로세싱 시스템에서, 처리 능력을 증가시키기 위해 다수의 처리 장치가 컴퓨터 실행가능 명령어를 실행한다. 예를 들어, 도 10은 중앙 처리 장치(1010) 및 그래픽 처리 장치 또는 코-프로세싱 장치(1015)를 보여준다. 유형의 메모리(1020,1025)는 처리 장치에 의해 액세스가능한, 휘발성 메모리(예를 들어, 레지스터, 캐시, RAM), 비휘발성 메모리(예를 들어, ROM, EEPROM, 플래시 등), 또는 이 둘의 조합일 수 있다. 메모리(1020,1025)는 본 명세서에서 설명된 하나 이상의 혁신을 구현하는 소프트웨어(1080)를, 처리 장치(들)에 의해 실행되기에 적합한 컴퓨터 실행가능 명령어들의 형태로 저장한다.
컴퓨팅 시스템은 추가의 특징을 가질 수 있다. 예를 들어, 컴퓨팅 환경(1000)은 저장소(1040), 하나 이상의 입력 장치(1050), 하나 이상의 출력 장치(1060) 및 하나 이상의 통신 연결부(1070)를 포함한다. 버스, 제어기 또는 네트워크와 같은 상호연결 메카니즘(미도시)이 컴퓨팅 환경(1000)의 컴포넌트들을 상호연결한다. 전형적으로, 운영 체제 소프트웨어(미도시)는 컴퓨팅 환경(1000)에서 실행되는 다른 소프트웨어에 대한 동작 환경을 제공하고, 컴퓨팅 환경(1000)의 컴포넌트들의 활동을 조정한다.
유형의 저장소(1040)는 이동식일 수 있거나 또는 고정식일 수 있으며, 자기 디스크, 자기 테이프 또는 카세트, CD-ROM, DVD 또는 유형의 방식으로 정보를 저장하는데 사용될 수 있고 컴퓨팅 환경(1000) 내에서 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 저장소(1040)는 경험 공유 서비스에서의 서비스를 업데이트하는 것과 같은 본 명세서에서 기술된 하나 이상의 혁신을 구현하는 소프트웨어(180)의 명령어들을 저장한다.
입력 장치(들)(1050)는 키보드, 마우스, 펜, 트랙볼과 같은 터치 입력 장치, 음성 입력 장치, 스캐닝 장치, 또는 컴퓨팅 환경(1000)에 입력을 제공하는 또 다른 장치일 수 있다. 비디오 인코딩을 위해, 입력 장치(들)(1050)는 카메라, 비디오 카드, TV 튜너, 또는 아날로그 혹은 디지털 형태의 비디오 입력을 수용하는 유사한 장치, 또는 비디오 샘플을 컴퓨팅 환경(1000) 내로 판독하는 CD-ROM 또는 CD-RW일 수 있다. 출력 장치(들)(1060)는 디스플레이, 프린터, 스피커, CD-라이터, 또는 컴퓨팅 환경(1000)으로부터 출력을 제공하는 또 다른 장치일 수 있다.
통신 연결부(들)(1070)는 통신 매체를 통해 또 다른 컴퓨팅 개체와의 통신을 가능하게 한다. 통신 매체는 컴퓨터 실행가능 명령어, 오디오 또는 비디오 입력 또는 출력과 같은 정보, 또는 그 밖의 다른 데이터를 변조 데이터 신호로 운반한다. 변조 데이터 신호는 신호에 정보를 인코딩하도록 하나 이상의 특성이 설정 또는 변경된 신호이다. 예를 들어, 통신 매체는 전기적, 광학적, RF 또는 그 밖의 다른 캐리어를 사용할 수 있다.
개시되어 있는 방법들 중 일부의 동작들이 편의상 특정의 순차적 순서로 기술되어 있지만, 이 설명의 방식은 이하에서 특정 순서가 요구되지 않는다면 재정렬을 포함함을 이해해야 한다. 예를 들어, 순차적으로 기술된 동작들은 일부 경우 재정렬될 수 있거나 동시에 수행될 수 있다. 또한, 간단함을 위해, 첨부된 도면은 기술되어 있는 방법이 다른 방법과 연계하여 사용될 수 있는 다양한 방식 모두를 나타내지 않을 수 있다.
기술되어 있는 모든 방법은 하나 이상의 컴퓨터 판독가능 저장 매체(예를 들어, 하나 이상의 광학 매체 디스크, 휘발성 메모리 컴포넌트(예를 들어, DRAM 또는 SRAM), 또는 비휘발성 메모리 컴포넌트(예를 들어, 플래시 메모리 또는 하드 드라이브)와 같은 컴퓨터 판독가능 매체)에 저장되고 컴퓨터(예를 들어, 컴퓨팅 하드웨어를 포함하는 스마트폰 또는 다른 이동 장치를 비롯한, 임의의 상업적으로 입수가능한 컴퓨터)에서 실행되는 컴퓨터 실행가능 명령어들로서 구현될 수 있다. 쉽게 이해되어야 하는 바와 같이, 컴퓨터 판독가능 저장 매체라는 용어는 변조된 데이터 신호와 같은 통신 연결을 포함하지 않는다. 개시되어 있는 기법을 구현하기 위한 임의의 컴퓨터 실행가능 명령어, 및 개시되어 있는 실시예의 구현 동안 생성 및 사용된 임의의 데이터는 하나 이상의 컴퓨터 판독가능 매체에 저장될 수 있다. 컴퓨터 실행가능 명령어는 예를 들어 웹 브라우저 또는 다른 소프트웨어 애플리케이션(예를 들어, 원격 컴퓨팅 애플리케이션)을 통해 액세스 또는 다운로드되는 소프트웨어 애플리케이션 또는 전용 소프트웨어 애플리케이션의 일부일 수 있다. 이러한 소프트웨어는 예를 들어 단일 로컬 컴퓨터(예를 들어, 임의의 적절한 상업적 입수가능한 컴퓨터)에서 또는 네트워크 환경에서 (예를 들어, 인터넷, 광역 네트워크, 근거리 네트워크, 클라이언트 서버 네트워크(예컨대, 클라우드 컴퓨팅 네트워크) 또는 그와 같은 다른 네트워크를 통해) 하나 이상의 네트워크 컴퓨터를 사용하여 실행될 수 있다.
명료성을 위해, 소프트웨어 기반 구현의 소정의 선택된 측면만이 기술되어 있다. 당업계에 잘 알려져 있는 다른 세부사항은 생략된다. 예를 들어, 개시되어 있는 기술은 임의의 특정 컴퓨터 언어 또는 프로그램에 국한되지 않음을 이해해야 한다. 예를 들어, 개시되어 있는 기술은 C++, 자바, 펄, 자바스크립트, 아도베 플래시, 또는 임의의 다른 적절한 프로그래밍 언어로 작성된 소프트웨어에 의해 구현될 수 있다. 마찬가지로, 개시되어 있는 기술은 임의의 특정 컴퓨터 또는 하드웨어 타입에 국한되지 않는다. 적절한 컴퓨터 및 하드웨어의 소정의 세부사항은 잘 알려져 있어 본 명세서에서 자세히 설명될 필요는 없다.
본 명세서에서 기술되어 있는 임의의 기능은 소프트웨어 대신 하나 이상의 하드웨어 로직 컴포넌트에 의해 적어도 일부 수행될 수 있다. 제한이 아닌 예로서, 사용될 수 있는 예시적인 유형의 하드웨어 로직 컴포넌트는 필드 프로그램가능 게이트 어레이(FPGA), 프로그램 특정 집적 회로(ASIC), 프로그램 특정 표준 제품(ASSP), 시스템 온 칩 시스템(SOC), 복합 프로그램가능 로직 장치(CPLD) 등을 포함한다.
또한, (예를 들어, 컴퓨터로 하여금 임의의 개시되어 있는 방법을 수행하게 하는 컴퓨터 실행가능 명령어들을 포함하는) 임의의 소프트웨어 기반 실시예는 적절한 통신 수단을 통해 업로드, 다운로드 또는 원격으로 액세스될 수 있다. 이러한 적절한 통신 수단은 예를 들어 인터넷, 월드와이드웹, 인트라넷, 소프트웨어 애플리케이션, (광섬유 케이블을 포함하는) 케이블, 자기 통신, (RF, 마이크로웨이브 및 적외선 통신을 포함하는) 전자기 통신, 전기 통신, 또는 이와 같은 다른 통신 수단을 포함한다.
개시되어 있는 방법, 장치 및 시스템은 임의의 방식에 국한되는 것으로 해석되어서는 안된다. 대신, 본 개시물은 개시되어 있는 다양한 실시예의 모든 신규하고 자명하지 않은 특징 및 측면들 각각 및 이들의 서로에 대한 다양한 조합 및 하위조합에 관한 것이다. 개시되어 있는 방법, 장치 및 시스템은 임의의 특정 측면 또는 특징 또는 이들의 조합에 국한되지 않으며, 또한 개시되어 있는 실시예는 임의의 하나 이상의 특정 장점이 제공되거나 문제들이 해결될 것을 요구하지 않는다. 개시되어 있는 발명의 원리들이 적용될 수 있는 다수의 가능한 실시예를 고려하면, 예시된 실시예는 본 발명의 바람직한 예에 불과하며 본 발명의 범주를 제한하는 것으로 여겨져서는 안된다. 그 보다, 본 발명의 범주는 이하의 청구항에 의해 정의된다. 따라서, 이들 청구항 및 이들의 등가물의 범주에 속하는 모든 것을 본원의 발명으로 청구한다.

Claims (10)

  1. 제1 컴퓨팅 장치를 통해, 통신 호(communications call)를 개시하는 단계와,
    제2 컴퓨팅 장치에 대한 성능 정보(capability information)를 수신하는 단계- 상기 제2 컴퓨팅 장치에 대한 상기 성능 정보는 상기 제2 컴퓨팅 장치에 의해 지원되는 서비스의 속성을 나타내는 정보를 포함함 -와,
    상기 제1 컴퓨팅 장치를 통해, 상기 서비스가 상기 제1 컴퓨팅 장치 및 상기 제2 컴퓨팅 장치에 의해 지원되는 지를 판정하기 위해 상기 제2 컴퓨팅 장치에 대한 상기 성능 정보를 평가하는 단계와,
    상기 제1 컴퓨팅 장치를 통해, 상기 서비스를 포함하는 경험 공유 세션(sharing-experience session)을 개시하는 단계와,
    상기 서비스에 대한 업데이트 정보를 포함하는 업데이트 메시지를 수신하는 단계와,
    상기 수신된 업데이트 정보에 기초하여, 상기 서비스의 콘텐츠를 업데이트하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 통신 호는 적어도 VOIP를 사용하여 비디오 통신 및 음성 통신을 지원하는 호를 포함하는 방법.
  3. 제1항에 있어서,
    상기 제2 컴퓨팅 장치에 대한 상기 성능 정보는 상기 서비스의 식별자, 상기 서비스의 버전 식별자 및 상기 서비스의 액션 식별자 중 하나 이상을 포함하는 방법.
  4. 제1항에 있어서,
    상기 제2 컴퓨팅 장치에 대한 상기 성능 정보는 상기 서비스에 대하여, 상기 제2 컴퓨팅 장치에서 지원되는 액션, 상기 제2 컴퓨팅 장치에서 지원되는 커맨드 및 상기 서비스를 위한 데이터가 조직화되게 하는 하나 이상의 스키마 중 하나 이상을 나타내는 정보를 포함하는 방법.
  5. 제1항에 있어서,
    상기 제2 컴퓨팅 장치에 대한 상기 성능 정보는 상기 제2 컴퓨팅 장치에 대한 장치 성능을 나타내고, 상기 장치 성능은 처리 용량, 메모리 용량, 디스플레이 해상도 및 네트워크 연결 속도 중 하나 이상을 포함하는 방법.
  6. 제1항에 있어서,
    상기 경험 공유 세션을 개시하는 단계는 상기 경험 공유 세션을 수립하기 위한 요청의 수락을 전송하는 단계 또는 상기 경험 공유 세션을 수립하기 위한 요청의 수락을 수신하는 단계를 포함하는 방법.
  7. 제1항에 있어서,
    상기 서비스의 콘텐츠를 업데이트하는 단계는 상기 제1 컴퓨팅 장치의 디스플레이에서 가상 객체를 변경하는 단계를 포함하는 방법.
  8. 제1항에 있어서,
    상기 경험 공유 세션을 개시하는 단계는 상기 서비스에 대한 애플리케이션을 론칭하는 단계를 포함하는 방법.
  9. 프로세서 및 메모리를 포함하는 컴퓨팅 장치로서,
    상기 메모리는 상기 컴퓨팅 장치로 하여금 방법을 수행하게 하는 컴퓨터 실행가능 명령어들을 저장하고, 상기 방법은
    제1 컴퓨팅 장치인 상기 컴퓨팅 장치를 통해, 통신 호를 개시하는 단계와,
    제2 컴퓨팅 장치에 대한 성능 정보를 수신하는 단계- 상기 제2 컴퓨팅 장치에 대한 상기 성능 정보는 상기 제2 컴퓨팅 장치에 의해 지원되는 서비스 나타냄 -와,
    상기 제1 컴퓨팅 장치를 통해, 상기 제1 컴퓨팅 장치 및 상기 제2 컴퓨팅 장치가 상기 서비스의 적어도 하나의 상호 액션을 지원하는 지를 판정하기 위해 상기 제2 컴퓨팅 장치에 대한 상기 성능 정보를 평가하는 단계와,
    상기 제1 컴퓨팅 장치를 통해, 상기 서비스를 포함하는 경험 공유 세션을 개시하는 단계와,
    상기 제1 컴퓨팅 장치를 통해, 상기 서비스의 상기 적어도 하나의 상호 액션 중 주어진 액션을 수행하는 단계와,
    상기 서비스의 상기 주어진 상호 액션에 대한 업데이트 정보를 포함하는 업데이트 메시지를 전송하는 단계
    를 포함하는
    컴퓨팅 장치.
  10. 제1 컴퓨팅 장치로 하여금 방법을 수행하게 하는 컴퓨터 실행가능 명령어들을 저장하는 컴퓨터 판독가능 저장 매체로서,
    상기 방법은
    상기 제1 컴퓨팅 장치를 통해, 통신 호를 개시하는 단계와,
    제2 컴퓨팅 장치에 대한 성능 정보를 수신하는 단계- 상기 제2 컴퓨팅 장치에 대한 상기 성능 정보는 상기 제2 컴퓨팅 장치에 의해 지원되는 서비스의 속성을 나타내는 정보를 포함함 -와,
    상기 제1 컴퓨팅 장치를 통해, 상기 제1 컴퓨팅 장치 및 상기 제2 컴퓨팅 장치 모두가 상기 서비스의 제1 액션 및 제2 액션을 지원하는 지를 판정하기 위해 상기 제2 컴퓨팅 장치에 대한 상기 성능 정보 및 상기 제1 컴퓨팅 장치에 대한 성능 정보를 평가하는 단계와,
    상기 제1 컴퓨팅 장치를 통해, 상기 서비스를 포함하는 경험 공유 세션을 개시하는 단계와,
    상기 서비스에 대한 제1 업데이트 정보를 포함하는 제1 업데이트 메시지를 수신하는 단계와,
    상기 수신된 제1 업데이트 정보에 기초하여, 상기 서비스의 상기 제1 액션을 수행하는 단계와,
    상기 제1 컴퓨팅 장치를 통해, 상기 서비스의 상기 제2 액션을 수행하는 단계와,
    상기 제2 액션의 수행에 기초하여, 상기 서비스에 대한 제2 업데이트 정보를 포함하는 제2 업데이트 메시지를 전송하는 단계- 상기 제2 업데이트 정보는 상기 제2 컴퓨팅 장치에서 상기 제2 액션의 수행을 지시하는 데이터를 포함함 -
    를 포함하는
    컴퓨터 판독가능 저장 매체.
KR1020157010811A 2012-10-26 2013-10-23 실시간 통신 및 경험 공유 세션 동안 서비스를 업데이트하는 기법 KR102078894B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/662,379 2012-10-26
US13/662,379 US9112930B2 (en) 2012-10-26 2012-10-26 Updating services during real-time communication and sharing-experience sessions
PCT/US2013/066446 WO2014066543A2 (en) 2012-10-26 2013-10-23 Updating services during real-time communication and sharing-experience sessions

Publications (2)

Publication Number Publication Date
KR20150079640A true KR20150079640A (ko) 2015-07-08
KR102078894B1 KR102078894B1 (ko) 2020-02-19

Family

ID=49517774

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157010811A KR102078894B1 (ko) 2012-10-26 2013-10-23 실시간 통신 및 경험 공유 세션 동안 서비스를 업데이트하는 기법

Country Status (6)

Country Link
US (1) US9112930B2 (ko)
EP (1) EP2912562B1 (ko)
JP (1) JP6506171B2 (ko)
KR (1) KR102078894B1 (ko)
CN (1) CN104854574B (ko)
WO (1) WO2014066543A2 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3023117A1 (fr) * 2014-06-30 2016-01-01 Orange Procede et dispositif d' etablissement d' une communication
US9420440B2 (en) 2014-07-21 2016-08-16 Xiaomi Inc. Calling methods and devices
CN104158985B (zh) * 2014-07-21 2015-11-11 小米科技有限责任公司 通话方法、装置和系统
US10057305B2 (en) 2014-09-10 2018-08-21 Microsoft Technology Licensing, Llc Real-time sharing during a phone call
US10078482B2 (en) * 2015-11-25 2018-09-18 Samsung Electronics Co., Ltd. Managing display of information on multiple devices based on context for a user task
KR20170086869A (ko) * 2016-01-19 2017-07-27 삼성전자주식회사 음성통화 중 영상을 전송하는 방법 및 장치
KR20170091913A (ko) 2016-02-02 2017-08-10 삼성전자주식회사 영상 서비스 제공 방법 및 장치
JP6508251B2 (ja) * 2017-04-27 2019-05-08 トヨタ自動車株式会社 音声対話システムおよび情報処理装置
JP6644288B1 (ja) * 2019-05-30 2020-02-12 株式会社toraru 体験共有システム、体験共有方法
JP7359055B2 (ja) * 2020-03-26 2023-10-11 株式会社オートネットワーク技術研究所 車載情報処理装置、情報処理方法及びクライアントプログラム
US11516105B2 (en) * 2020-05-22 2022-11-29 Salesforce.Com, Inc. Interspersed message batching in a database system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070002840A1 (en) * 2005-06-21 2007-01-04 Lg Electronics Inc. Terminal, method and system for performing combination service using terminal capability version
JP2010055304A (ja) * 2008-08-27 2010-03-11 Ntt Communications Kk 端末装置、プログラムダウンロード方法、プログラム、記録媒体、及びプログラム提供システム
KR20100064708A (ko) * 2008-12-05 2010-06-15 건국대학교 산학협력단 클라이언트 단말 장치, 협업 서비스 장치, 실시간 스트리밍장치, 협업 서비스 시스템 및 그 방법

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0962630A (ja) * 1995-08-22 1997-03-07 Fujitsu Ltd 汎用アプリケーションプログラム共有システム
JP3725424B2 (ja) * 1998-08-31 2005-12-14 富士通株式会社 サービス割り当て装置
US20030154398A1 (en) * 2002-02-08 2003-08-14 Eaton Eric Thomas System for providing continuity between session clients and method therefor
US20050064821A1 (en) * 2003-09-22 2005-03-24 Telefonaktiebolaget Lm Ericsson (Publ) Alternative service management
EP1700498B1 (en) * 2003-12-30 2010-06-09 Telefonaktiebolaget LM Ericsson (publ) Method and communication system for automatically discovering the common multimedia service capability
US7783729B1 (en) * 2004-03-19 2010-08-24 Single Touch Interactive, Inc. Transmitting mobile device data
US7849135B2 (en) * 2004-04-09 2010-12-07 At&T Mobility Ii Llc Sharing content on mobile devices
US7493082B2 (en) * 2004-05-12 2009-02-17 Nokia Corporation Methods, apparatus and computer program instructions for enhancing service discovery at a mobile terminal
US7840681B2 (en) * 2004-07-30 2010-11-23 International Business Machines Corporation Method and apparatus for integrating wearable devices within a SIP infrastructure
JP4874993B2 (ja) * 2005-01-11 2012-02-15 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 通信システムにおける初期メディアの容易化
KR100700607B1 (ko) * 2005-06-21 2007-03-28 엘지전자 주식회사 단말 능력 버전을 이용한 컴비네이션 서비스 수행 방법 및시스템
KR100754217B1 (ko) * 2006-05-29 2007-09-03 삼성전자주식회사 네트워크 디바이스간의 서비스 제공 방법 및 그 방법을수행할 수 있는 네트워크 디바이스와 저장 매체
WO2008033826A2 (en) * 2006-09-11 2008-03-20 Nms Communications Corporation Fallback mobile communication
US9253222B2 (en) 2007-02-22 2016-02-02 Match.Com. L.L.C. Synchronous delivery of media content in a collaborative environment
US7991830B2 (en) * 2007-02-28 2011-08-02 Red Hat, Inc. Multiple sessions between a server and multiple browser instances of a browser
US8601386B2 (en) 2007-04-20 2013-12-03 Ingenio Llc Methods and systems to facilitate real time communications in virtual reality
US7860525B2 (en) * 2007-04-25 2010-12-28 Nokia Corporation System, method, and computer program product for service and application configuration in a network device
JP2009017033A (ja) * 2007-07-02 2009-01-22 Nippon Telegr & Teleph Corp <Ntt> 映像通信端末、映像通信方法、映像通信プログラムおよび映像通信プログラムを記録した記録媒体
US8572256B2 (en) * 2007-07-16 2013-10-29 Qualcomm Incorporated Method for supporting multiple diversified data applications with efficient use of network resources
US7970350B2 (en) * 2007-10-31 2011-06-28 Motorola Mobility, Inc. Devices and methods for content sharing
US8352371B2 (en) * 2008-04-30 2013-01-08 General Instrument Corporation Limiting access to shared media content
US20100008265A1 (en) 2008-07-14 2010-01-14 Carl Johan Freer Augmented reality method and system using logo recognition, wireless application protocol browsing and voice over internet protocol technology
CA2681446C (en) * 2008-10-22 2016-03-22 Research In Motion Limited Method and apparatus for managing synchronization configuration files
US20100131868A1 (en) 2008-11-26 2010-05-27 Cisco Technology, Inc. Limitedly sharing application windows in application sharing sessions
US8300082B2 (en) * 2008-12-15 2012-10-30 At&T Intellectual Property I, Lp Apparatus and method for video conferencing
JP2010199716A (ja) * 2009-02-23 2010-09-09 Fujitsu Ten Ltd 車載装置及び通信制御方法
JP5243336B2 (ja) * 2009-04-24 2013-07-24 日本電信電話株式会社 通信システム、通信端末、通信方法、および通信プログラム
US8929887B2 (en) 2009-08-20 2015-01-06 T-Mobile Usa, Inc. Shared book reading
US8478812B2 (en) * 2009-09-29 2013-07-02 Core Wireless S.A.R.L. Method and apparatus for providing device compatibility information
US20110165869A1 (en) * 2010-01-04 2011-07-07 Retalika, Ltd. Apparatus and Methods Thereof for Effective Exporting of Services from an Old User Device to a New User Device
US20110271211A1 (en) * 2010-04-30 2011-11-03 Jones Boland T Systems, methods, and computer programs for controlling presentation views in an online conference
KR20120014318A (ko) * 2010-08-09 2012-02-17 주식회사 팬택 휴대용 단말기 간 어플리케이션을 공유하는 장치 및 그 방법
KR20120015931A (ko) * 2010-08-13 2012-02-22 삼성전자주식회사 휴대용 전자 장치 및 그것의 디스플레이 미러링 방법
US20120170572A1 (en) 2011-01-03 2012-07-05 Samsung Electronics Co., Ltd. Method for Enhancing Phone Conversations
US8868072B2 (en) 2011-02-11 2014-10-21 Vodafone Ip Licensing Limited Method and system for facilitating communication between wireless communication devices
US8392526B2 (en) * 2011-03-23 2013-03-05 Color Labs, Inc. Sharing content among multiple devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070002840A1 (en) * 2005-06-21 2007-01-04 Lg Electronics Inc. Terminal, method and system for performing combination service using terminal capability version
JP2010055304A (ja) * 2008-08-27 2010-03-11 Ntt Communications Kk 端末装置、プログラムダウンロード方法、プログラム、記録媒体、及びプログラム提供システム
KR20100064708A (ko) * 2008-12-05 2010-06-15 건국대학교 산학협력단 클라이언트 단말 장치, 협업 서비스 장치, 실시간 스트리밍장치, 협업 서비스 시스템 및 그 방법

Also Published As

Publication number Publication date
CN104854574B (zh) 2020-02-07
JP2016502781A (ja) 2016-01-28
WO2014066543A2 (en) 2014-05-01
KR102078894B1 (ko) 2020-02-19
WO2014066543A3 (en) 2014-08-21
EP2912562A4 (en) 2015-10-28
EP2912562B1 (en) 2018-02-28
US9112930B2 (en) 2015-08-18
JP6506171B2 (ja) 2019-04-24
US20140122726A1 (en) 2014-05-01
EP2912562A2 (en) 2015-09-02
CN104854574A (zh) 2015-08-19

Similar Documents

Publication Publication Date Title
KR102078894B1 (ko) 실시간 통신 및 경험 공유 세션 동안 서비스를 업데이트하는 기법
CN110597774B (zh) 一种文件分享方法、系统、装置、计算设备及终端设备
CA2900052C (en) Collaboration system with whiteboard access to global collaboration data
RU2679242C2 (ru) Продолжение задач между устройствами
US9479549B2 (en) Collaboration system with whiteboard with federated display
EP4130963A1 (en) Object dragging method and device
CN112558825A (zh) 一种信息处理方法及电子设备
US20130311947A1 (en) Network image sharing with synchronized image display and manipulation
KR102394296B1 (ko) 다수의 디바이스 상에 컴퓨팅 환경의 제시
CN106572139B (zh) 多终端控制方法、终端、服务器和系统
JP2016525736A (ja) 空間的イベントマップを備えた共同システム
CN105493501A (zh) 虚拟视觉相机
US10044979B2 (en) Acquiring regions of remote shared content with high resolution
US11394757B2 (en) Communication terminal, communication system, and method of sharing data
CN112527222A (zh) 一种信息处理方法及电子设备
US20210055904A1 (en) Communication terminal, communication system, method of sharing data, and recording medium
CN114616813A (zh) 用于配对的用户计算设备的电话会议接口和控件
CN112527174A (zh) 一种信息处理方法及电子设备
CN114071425A (zh) 电子设备间的协同方法、协同系统和电子设备
CN112055252A (zh) 多屏互动方法、装置、计算机可读介质及电子设备
WO2022116033A1 (zh) 协同操作方法、装置、终端及存储介质
CN105224185B (zh) 数据共享方法及移动终端
US11070713B2 (en) Network-controlled 3D video capture
CN108513090B (zh) 群组视频会话的方法及装置
KR20120079636A (ko) 다자간 회의에서 문서 작업 공유 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant