KR102363643B1 - 공유 세션 기법 - Google Patents

공유 세션 기법 Download PDF

Info

Publication number
KR102363643B1
KR102363643B1 KR1020177006078A KR20177006078A KR102363643B1 KR 102363643 B1 KR102363643 B1 KR 102363643B1 KR 1020177006078 A KR1020177006078 A KR 1020177006078A KR 20177006078 A KR20177006078 A KR 20177006078A KR 102363643 B1 KR102363643 B1 KR 102363643B1
Authority
KR
South Korea
Prior art keywords
user
user profile
operating system
interaction
login session
Prior art date
Application number
KR1020177006078A
Other languages
English (en)
Other versions
KR20170049513A (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 KR20170049513A publication Critical patent/KR20170049513A/ko
Application granted granted Critical
Publication of KR102363643B1 publication Critical patent/KR102363643B1/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • H04L67/18
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal
    • 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/14Multichannel or multilink protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

데이터 공유 세션 기법이 설명된다. 하나 이상의 구현예에서, 컴퓨팅 장치의 오퍼레이팅 시스템에 의해, 제 1 사용자 로그인 세션은 제 1 사용자의 제 1 사용자 프로파일의 컨텍스트에서 실행되도록 개시된다. 오퍼레이팅 시스템에 의해, 제 2 사용자의 제 2 사용자 프로파일의 컨텍스트에서 제 1 사용자 로그인 세션을 실행하라는 요청이 수신된다. 오퍼레이팅 시스템에 의해, 제 2 사용자 프로파일이 컴퓨팅 장치의 오퍼레이팅 시스템의 제 1 사용자 로그인 세션 내에서 생성되는 섀도우 로그인 세션과 연관됨으로써, 오퍼레이팅 시스템과 제 2 사용자의 상호작용은 제 2 사용자 프로파일과 연관되고 오퍼레이팅 시스템과 제 1 사용자의 상호작용은 제 1 사용자 프로파일과 연관된다.

Description

공유 세션 기법{SHARED SESSION TECHNIQUES}
기존 데스크톱 퍼스널 컴퓨터부터 랩톱, 셋톱 박스, 게임 콘솔, 및 모바일 폰 및 태블릿과 같은 모바일 컴퓨팅 장치에 이르기까지 다양한 설정에서 사용자가 상호작용할 수 있는 컴퓨팅 장치의 유형이 날로 증가하고 있다. 결과적으로, 사용자는 사무실, 가정, 이동 중 사용 등과 같은 다양한 상이한 설정에서 상호작용을 지원하도록 구성될 수 있는 다양한 종류의 컴퓨팅 장치에 액세스할 수 있다.
그러나, 이들 장치와의 사용자 상호작용을 지원하기 위해 이용되는 기존 기법은 전형적으로 단일 사용자 중심이다. 예를 들어, 사용자는 컴퓨팅 장치에 로그인하여 자신과 관련된 사용자 프로파일을 사용하여 컴퓨팅 장치와 상호작용할 수 있다. 이러한 방식으로, 사용자는 사용자 맞춤 설정 및 사용자 선호사항을 사용하여 그러한 상호작용을 수행할 수 있다. 그러나, 이러한 종래 기법들은 멀티 아이덴티티(multi-idenity) 상호작용에 대한 지원을 제공하지 않고, 그러한 기존 기법들은 일대일 시나리오들로 제한되며, 따라서 파티, 회의 등과 같은 다수의 사용자를 포함할 수도 있는 일부 설정에서 불편할 수 있다.
데이터 공유 세션 기법이 설명된다. 하나 이상의 구현예들에서, 컴퓨팅 장치의 오퍼레이팅 시스템에 의해, 제 1 사용자의 제 1 사용자 프로파일(profile)의 컨텍스트에서 실행되는 제 1 사용자 로그인 세션이 개시된다. 오퍼레이팅 시스템에 의해, 제 2 사용자의 제 2 사용자 프로파일의 컨텍스트에서 제 1 사용자 로그인 세션을 실행하라는 요청이 수신된다. 오퍼레이팅 시스템에 의해, 제 2 사용자 프로파일이 컴퓨팅 장치의 오퍼레이팅 시스템의 제 1 사용자 로그인 세션에서 생성된 섀도우 로그인 세션(shadow login session)과 연관됨으로써 오퍼레이팅 시스템과 제 2 사용자의 상호작용이 제 2 사용자 프로파일과 연관되고 오퍼레이팅 시스템과 제 1 사용자의 상호작용이 제 1 사용자 프로파일과 연관된다.
하나 이상의 구현예들에서, 컴퓨팅 장치에 의해 실행가능한 하나 이상의 애플리케이션에 의해 액세스가능한 기능이 상기 컴퓨팅 장치의 오퍼레이팅 시스템에 의해 노출된다. 기능은, 안전한 데이터 공유 세션을 개시하기 위한 요청을 하나 이상의 애플리케이션으로부터 하나 이상의 애플리케이션 프로그래밍 인터페이스(API)를 통해 오퍼레이팅 시스템에서 수신하는 것을 포함하는 동작을 수행하도록 구성된다. 요청에 응답하여, 게스트와 연관된 하나 이상의 다른 컴퓨팅 장치에 의해 실행되는 하나 이상의 다른 애플리케이션과 하나 이상의 애플리케이션 사이의 네트워크 접속을 통해, 데이터 공유 세션이 개시된다.
하나 이상의 구현예들에서, 시스템은, 프로세싱 시스템과, 하나 이상의 애플리케이션과 오퍼레이팅 시스템을 구현하기 위한 프로세싱 시스템에 의해 실행가능한 명령어를 유지하도록 구성된 메모리를 포함한다. 오퍼레이팅 시스템은, 하나 이상의 다른 컴퓨팅 장치 각각에 의해 실행되는 하나 이상의 다른 애플리케이션과의 통신 채널의 생성을 개시하도록, 하나 이상의 애플리케이션에 의해 액세스가능한 기능을 노출하도록 실행가능하다. 통신 채널은, 오퍼레이팅 시스템의 관여 없이 하나 이상의 다른 애플리케이션과 하나 이상의 애플리케이션 사이의 직접 통신을 지원하도록 구성된다.
본 요약은 아래의 상세한 설명에서 더 설명되는 개념들 중 일부를 간략화된 형태로 소개하고자 제공된다. 본 요약은 특허청구되는 대상의 중요한 특징 또는 필 수적인 특징을 식별하고자 하는 것도 아니고, 특허청구되는 대상의 범주를 결정하는데 보조하는 것으로 사용되고자 하는 것도 아니다.
상세한 설명은 첨부된 도면들을 참조하여 설명된다. 도면들에서, 참조 부호의 가장 왼쪽 숫자(들)는 참조 부호가 처음 나타난 도면을 식별한다. 설명 및 도면 내의 상이한 경우들에서 동일한 참조 부호의 사용은 유사하거나 동일한 아이템을 표시할 수 있다. 도면들에 나타나는 엔티티는 하나 이상의 엔티티를 표시할 수 있고 이에 따라 설명에서 단수 또는 복수 형태의 엔티티에 대한 참조가 상호교환적으로 행해질 수 있다.
도 1은 데이터 공유 세션 기법을 채용하도록 동작가능한 예시적인 구현예에서의 환경을 도시한다.
도 2는 데이터 공유 세션을 개시하도록 애플리케이션으로부터 애플리케이션 프로그래밍 인터페이스를 통해 도 1의 오퍼레이팅 시스템에 의해 요청이 수신되는 예시적인 구현에서의 시스템을 도시한다.
도 3은 잠재적인 게스트의 발견 및 데이터 공유 세션에 참여하기 위한 잠재적인 게스트의 인증이 도 2의 오퍼레이팅 시스템의 세션 관리자 모듈에 의해 수행되는 예시적인 구현에서의 시스템을 도시한다.
도 4는 통신 채널이 세션 데이터를 직접 공유하도록 컴퓨팅 디바이스의 오퍼레이팅 시스템의 세션 관리자 모듈에 의해 생성되고 도 3의 애플리케이션에 의해 이용되는 예시적인 구현에서의 시스템을 도시한다.
도 5는 섀도우 로그인 세션이 오퍼레이팅 시스템과의 복수의 사용자 상호작용을 지원하는데 이용되는 예시적인 구현에서의 시스템을 도시한다.
도 6은 호스트에 의해 실행되는 애플리케이션들과 호스트의 게스트들 사이에서 데이터를 공유하기 위해 데이터 공유 세션이 개시되고 이용되는 예시적인 구현에서의 절차를 도시하는 흐름도이다.
도 7은 사용자 프로파일이 섀도우 로그인 세션과 연관되는 예시적인 구현에서의 절차를 도시하는 흐름도이다.
도 8은 본원에서 설명되는 기법들에 관한 실시예들을 구현하기 위해 도 1 내지 도 7을 참조하여 설명되는 바와 같은 임의의 타입의 컴퓨팅 디바이스로서 구현될 수 있는 예시적인 디바이스의 다양한 컴포넌트들을 포함하는 예시적인 시스템을 도시한다.
개요
예컨대, 컴퓨팅 장치의 애플리케이션 및 오퍼레이팅 시스템을 갖는, 컴퓨팅 장치와의 사용자 상호작용을 지원하는 기존 기법들은 전형적으로 사용자 중심적이고 이에 따라 사용자와 컴퓨팅 장치 사이의 일대일 상호작용으로 제한된다. 그 결과, 이는 복수의 사용자 시나리오(예를 들어, 공개 설정에서, 회의실에서의 미팅, 파티에서의 사용자들 등)에서 컴퓨팅 장치와의 사용자 상호작용을 제한할 수도 있다.
데이터 공유 세션 및 협업(collaboration) 기법이 설명된다. 하나 이상의 구현예들에서, 컴퓨팅 장치의 오퍼레이팅 시스템은 공통 리소스를 사용 및 공유하기 위해 다른 컴퓨팅 장치들의 애플리케이션들과 함께 해당 컴퓨팅 장치의 애플리케이션들이 이용할 수 있는 인프라스트럭처를 제공하도록 구성된다. 예를 들어, 오퍼레이팅 시스템은 통신 채널을 생성하고 데이터 공유 세션에 참여할 게스트의 인증, 브로드캐스팅, 발견, 및 애플리케이션들 사이의 직접 통신을 지원하도록 구성된 통신 채널의 생성을 위한 메커니즘을 지원하도록 구성될 수 있다.
이러한 방식으로, 애플리케이션은 이러한 기능이 구현되는 방법을 인식하지 않고 애플리케이션 프로그래밍 인터페이스(API)를 통해 이러한 기능에 액세스할 수 있고, 이로써 이러한 기능을 실행할 때 애플리케이션의 리소스 및 컴퓨팅 장치 자체를 보호할 수 있다. 오퍼레이팅 시스템 인프라스트럭처와 관련된 이러한 및 다른 기법들에 대한 더 상세한 설명은 도 2 내지 도 4 및 도 6에 대하여 발견될 수 있다.
추가적으로, 데이터 공유 세션 기법은 상호작용에 참여하는 사용자를 식별하기 위해 사용자 로그인 사이의 전환을 수반하지 않고 컴퓨팅 장치의 오퍼레이팅 시스템과의 복수의 사용자 상호작용을 지원하도록 구성될 수도 있다. 예를 들어, 오퍼레이팅 시스템은 오퍼레이팅 시스템을 사용한 사용자의 로그인 시 섀도우 로그인 세션을 생성하도록 또한 구성될 수 있다. 사용자 로그인은 오퍼레이팅 시스템으로 하여금 사용자 설정, 맞춤화(customizations), 선호사항(preferences) 등에 액세스하는 것과 같이 사용자의 프로파일의 컨텍스트에서 동작하게 할 수 있다.
오퍼레이팅 시스템과의 상호작용을 원하는 다른 사용자는, 다른 사용자 프로파일을 사용하여 오퍼레이팅 시스템의 동작을 요청하기 위한 옵션(예를 들어, "실행(run as)")을 선택할 수도 있다. 이에 응답하여, 사용자의 크리덴셜은 섀도우 로그인 세션과 연관될 수도 있다. 이러한 방식으로, 오퍼레이팅 시스템과 개별 사용자와의 상호작용은 오퍼레이팅 시스템에 의해 식별되고 사용자와 연관될 수 있다. 예를 들어, 사용자는 문서에 주석을 달거나 편집하고 그러한 주석을 자신의 식별자와 연관시키거나, 애플리케이션에 액세스하고 자신의 사용자 설정 및 프로파일을 이러한 상호작용(예를 들어, 제어기 설정, 높은 점수)의 일부분으로 이용할 수도 있다. 오퍼레이팅 시스템 인프라스트럭처와 관련된 이러한 기법들 및 다른 기법들은 도 5 내지 도 7과 관련하여 발견될 수 있다.
이러한 다른 데이터 공유 세션 기법들에 관한 추가 설명은 이어지는 섹션과 관련하여 발견될 수 있다. 이어지는 설명에서, 본원에 설명된 기법들을 채용할 수 있는 예시적인 환경이 먼저 설명된다. 그 이후 예시적인 환경뿐만 아니라 다른 환경들에서 수행될 수 있는 예시적인 절차가 설명된다. 결과적으로, 예시적 절차의 수행은 예시적인 환경으로 제한되지 않고 예시적인 환경은 예시적인 절차의 수행으로 제한되지 않는다.
예시적 환경
도 1은 본원에 설명되는 데이터 공유 세션 기법을 채용하도록 동작가능한 예시적인 구현예에서의 환경(100)을 도시한다. 도시된 환경(100)은 네트워크(106)를 통해 서로 통신가능하게 연결되는 컴퓨팅 장치(102) 및 다른 컴퓨팅 장치(104)를 포함한다.
컴퓨팅 장치들(102, 104)은 다양한 방식으로 구성될 수 있다. 예를 들어, 컴퓨팅 장치들(102, 104)은 기존 데스크탑 컴퓨터, 이동국, 엔터테인먼트 기기, 핸드 헬드 구성(예를 들어, 이동 전화 또는 태블릿)에 따라 구성된 하우징을 갖는 모바일 컴퓨팅 장치, 디스플레이 장치에 통신가능하게 연결된 셋톱 박스, 무선 전화, 도시된 바와 같은 게임 콘솔 등으로 구성될 수 있다.
따라서, 컴퓨팅 장치들(102, 104)은 실질적인 메모리 및 프로세서 리소스(예를 들어, 퍼스널 컴퓨터, 게임 콘솔)를 갖는 전체 리소스 장치에서부터 제한된 메모리 및/또는 프로세싱 리소스(예를 들어, 종래 셋톱박스, 핸드헬드 게임 콘솔)를 갖는 저-리소스 장치까지 포함할 수 있다. 또한, 단일 컴퓨팅 장치(102, 104)에 관한 경우들이 도시되지만, 컴퓨팅 장치(102, 104)는, 예컨대, 웹 서비스에 의한, 동작을 수행하도록 사업에 이용되는 복수의 서버, 원격 제어 및 셋톱 박스 조합, 이미지 캡처 장치 및 도시된 바와 같이 제스처를 캡처하도록 구성된 게임 콘솔 등과 같은 복수의 상이한 장치를 나타낼 수도 있다.
컴퓨팅 장치(102)는 프로세싱 시스템(108), 메모리(110)로 도시된 일 예시의 컴퓨터 판독가능 저장 매체, 디스플레이 장치(112)를 포함하는 것으로 도시된다. 프로세싱 시스템(108)은 메모리(110)에 저장된 명령어의 실행을 통해 동작을 수행하는 기능을 나타낸다. 개별적으로 도시되었지만, 이러한 컴포넌트들의 기능은 더 분할되거나 조합(예를 들어, 주문형 집적 회로 상에서)될 수도 있다.
컴퓨팅 장치(102) 또한 오퍼레이팅 시스템(114)을 포함하는 것으로 도시된다. 오퍼레이팅 시스템(114)은 컴퓨팅 디바이스(102)의 기본 기능을 컴퓨팅 장치(102) 상에서 실행가능한 애플리케이션(116)으로 추상화(abstract)하도록 구성된다. 예를 들어, 오퍼레이팅 시스템(114)은 어떻게 그러한 기본 기능이 구현되는지 알지 않고도 애플리케이션(116)이 기록될 수 있도록 컴퓨팅 장치(102)의 프로세싱 시스템(108), 메모리(110), 네트워크 및/또는 디스플레이(112) 기능을 추상화할 수 있다. 예를 들어, 애플리케이션(116)은 이 렌더링이 어떻게 수행될 것인지 이해하지 않고도 디스플레이 장치(112)에 의해 디코딩, 렌더링 및 디스플레이될 데이터를 오퍼레이팅 시스템(114)에 제공할 수 있다. 오퍼레이팅 시스템(114)은 또한 컴퓨팅 장치(102)의 사용자에 의해 탐색 가능한 파일 시스템 및 사용자 인터페이스를 관리하는 것과 같은 다양한 다른 기능을 나타낼 수도 있다.
오퍼레이팅 시스템(114)의 추상화된 기능에 관한 일 예시는 세션 관리자 모듈(118)로 나타난다. 세션 관리자 모듈(118)은 네트워크(106)를 통해 애플리케이션(116)과 다른 컴퓨팅 장치(104)의 애플리케이션(122) 사이에서 사용할 데이터 공유 세션(120)을 생성하도록 애플리케이션(116)에 액세스 가능한 인프라스트럭처를 노출하는 기능을 나타낸다. 예를 들어, 세션 관리자 모듈(118)은 애플리케이션들(116, 118) 사이의 보안 통신 채널을 개시하는 능력을 지원할 수 있다. 이는 사용자 인터페이스와의 상호작용, 예를 들어, 디스플레이 장치(112) 상의 출력을 통해 데이터 공유 세션(120)을 개시하는 능력을 포함할 수 있다.
그 이후, 세션 관리자 모듈(118)은 초대(invitations)를 브로드캐스팅하고 데이터 공유 세션(120)에 포함할 잠재 게스트를 발견할 수 있다. 이는, 예를 들어, 회의실 설정, 파티에서의 텔레비전 등에서, 다른 사용자가 볼 수 있는 공통 디스플레이 장치를 사용하여, 사용자의 크리덴셜의 입력이 스누핑되지 않을 수 있도록, 사용자의 인증을 포함할 수 있고, 다른 컴퓨팅 장치 상에 사용자 인터페이스를 출력하는 것과 같은 강력한 인증 기법을 이용할 수도 있다.
인증되면, 그 이후 세션 관리자 모듈(118)은 오퍼레이팅 시스템(114)의 관여 없이 네트워크(106)를 통해 애플리케이션(116)과 다른 컴퓨팅 장치(104)의 애플리케이션(122) 사이의 직접적인 보안 통신 채널을 생성하는데 사용가능한 데이터를 애플리케이션(116)에 노출할 수 있다. 예를 들어, 데이터는 다른 사용자의 식별 및 통신을 수행하는데 사용될 소켓을 참조할 수도 있다.
추가적으로, 세션 관리자 모듈(118)은 그러한 게스트에 대한 제한된 액세스, 권한, 및 시간 허가를 명시하는 능력을 제공할 수 있고, 이로써 게스트는 성공적인 인증 시, 예를 들어, 아래에서 더 설명되는 바와 같은 리스트의 특성에 포함될 수도 있는 데이터 공유 세션(120)의 생성의 일부와 같이 그러한 명시된 제한 사항의 대상인 자신만의 개인 리소스, 예를 들어, 사용자 설정, 선호사항, 및 구성 데이터에 액세스할 수 있다. 예를 들어, 인증은 사용자가 "사용자 자신임"을 판정하도록 수행되고 허가는, 예를 들어, 지시된 시간 동안, 액세스를 허락하도록 수행될 수 있다. 이는 구성가능하고 사전설정되거나, 사용자 환경에 디스플레이될 수 있고 이에 따라 일부 호스트가 액세스 권한을 부여할 때 발생할 수 있는 잠재적인 우려를 완화할 수 있다. 또한, 동적 인증 기법이 지원됨으로써 오퍼레이팅 시스템(114)이 사전 지식, (예를 들어, 오퍼레이팅 시스템(114)의 관리자 측의) 구성, 또는 오퍼레이팅 시스템(114)의 리스소의 제공 없이 게스트에게 액세스를 제공할 수도 있다.
따라서, 오퍼레이팅 시스템(114)은 다른 장치들, 예를 들어, 컴퓨팅 장치(104)를 이용하는 게스트들과 함께 호스트 머신(예를 들어, 컴퓨팅 장치(104)) 상의 공통 리소스를 사용하고 공유하는 메커니즘을 제공할 수 있다. 이러한 메커니즘은 호스트 및 게스트가 데이터 공유 세션(120)을 발견하고, 발견되고 나면 데이터 공유를 지원하기 위한 통신 채널을 수립하는 방식을 지원할 수 있다.
세션 관리자 모듈(118)은 섀도우 사용자 프로파일의 사용을 또한 지원하여 오퍼레이팅 시스템(114) 자체 내의 리소스 공유를 또한 지원할 수도 있다. 예를 들어, 세션 관리자 모듈(118)은 제 1 사용자의 프로파일의 로그인 세션의 컨텍스트에 있는 동안 "런애즈(run as)" 기능을 제공하기 위해 제 2 사용자에 의해 선택 가능한 기능을 노출시킬 수 있다. 이러한 특징의 선택은 사용자의 크리덴셜로 하여금 제 1 사용자 로그온 세션에 포함된 섀도우 로그인 세션과 연관되게 할 수 있다. 이는, 예를 들어, 오퍼레이팅 시스템(114)의 특징을 이용하여 추가 사용자에 대한 신원, 배경 등과 같은 사용자 설정 및 선호사항을 로밍(roaming)하는데 이용될 수 있다. 이는 오퍼레이팅 시스템(114)이 오퍼레이팅 시스템(114) 자체와의 개별 사용자의 상호작용, 컴퓨팅 장치(102)에서 실행되는 애플리케이션(116)에 의한 사용 등을 식별하는 오퍼레이팅 시스템(114)의 기능과 같은 다양한 기능을 지원하는데 이용될 수 있다. 이들 및 다른 특징들에 대한 추가 설명은 다음에서 발견될 수 있고 대응하는 도면들에서 도시된다.
도 2는 데이터 공유 세션을 개시하라는 애플리케이션의 요청이 애플리케이션 프로그래밍 인터페이스를 통해 오퍼레이팅 시스템에 의해 수신되는 예시적인 구현예의 시스템(200)을 도시한다. 시스템(200)은 제 1 단계, 제 2 단계, 및 제 3 단계(202, 204, 206)을 사용하여 도시된다.
제 1 단계(202)에서, 세션 관리자 모듈(118)은 애플리케이션(116)으로부터 데이터 공유 세션(120)을 개시하라는 요청을 수신한다. 예를 들어, 애플리케이션(116)은 사진, 음악 선호사항을 공유하고, 회의 자료(예를 들어, 슬라이드쇼, 문서, 이미지)에 관한 피드백을 수집하도록 콘텐츠 공유 세션을 호스팅하도록 구성될 수 있다. 예를 들어, 애플리케이션(116)은 파티에서 사용자의 위치에서 음악을 제공하는 게임 콘솔에서 개시될 수도 있고, 마케팅 자료에 관한 코멘트를 수집하거나 특정 이벤트(예를 들어, 콘서트, 스포츠 이벤트)와 연관된 사진을 공유하도록 개시될 수도 있다.
따라서, 애플리케이션(116)은 컴퓨팅 장치(102)에 의해 실행되어 애플리케이션 프로그래밍 인터페이스(API)를 통한 통신 요청(208)을 형성할 수 있다. 이러한 요청(208)은 콘텐츠를 공유하기 위한 보안 데이터 공유 세션(120)의 생성을 개시하기 위해 오퍼레이팅 시스템(114)의 세션 관리자 모듈(118)에 의해 표현되는 인프라스트럭처를 이용하는데 사용될 수 있다.
제 2 단계(204)에서, 세션 관리자 모듈(118)은 데이터 공유 세션(120)과 관련된 데이터를 저장하는데 이용될 수 있는 세션 데이터 저장소(210) 위치를 생성한다. 이 데이터는 데이터 공유 세션(120)의 목적 및 식별과 같은, 데이터 공유 세션(120)을 설명하는 데이터를 포함할 수 있다. 이는 또한 데이터 공유 세션의 생성을 개시한 사용자에 의해 명시된 특성들, 예컨대, 데이터 공유 세션(120)에 참여하도록 허가받은 게스트의 특성에 관한 리스트(212), 이전에 설명된 것과 같은 참여에 대한 제한 사항 등을 또한 포함할 수 있다.
이러한 특성들은 수동으로 또는 소셜 네트워크 서비스에서의 친구들을 통해 자동으로(예를 들어, 소셜 네트워크 서비스에서 사용자의 친구들은 데이터 공유 세션(120)에 참여하도록 자동 허가를 받을 수 있음) 명시될 수 있는 식별자를 포함할 수도 있다. 특성들은 게스트의 위치(예를 들어, 특정 지리적 위치에 위치한 사용자를 명시하는 지오펜싱을 통해), 시각, 액세스가 허가된 방법(예를 들어, 데이터 공유 세션(120)에 참여하는데 사용된 네트워크 접속의 특정 유형) 등을 또한 포함할 수도 있다. 이러한 리스트(212)는 도 3과 관련하여 더 상세히 설명되는 일 예시인, 오퍼레이팅 시스템(114)의 세션 관리자 모듈(118)에 의한 게스트의 검증/허가의 일부로서 이용될 수 있다.
제 3 단계(206)에서, 오퍼레이팅 시스템(114)의 세션 관리자 모듈(118)은 데이터 공유 세션(120)의 잠재적 게스트(216)가 수신할 수 있도록 네트워크(106)를 통해 초대(214)를 브로드캐스팅한다. 이러한 브로드캐스팅은, 예컨대, 로컬 무선 네트워크(예를 들어, Bluetooth®, Wi-Fi)를 통해서 같이 다양한 방식으로 수행될 수 있다. 다른 예시에서, 초대(214)를 브로드캐스팅하는 것은 소셜 네트워크 서비스를 이용할 수 있고, 예컨대, 소셜 네트워크 서비스의 친구들에게 자동으로 포스팅(post)할 수 있다. 이러한 방식으로, 오퍼레이팅 시스템(114)의 일부로서 세션 관리자 모듈(118)에 의해 제공된 인프라스트럭처는, 애플리케이션(116)이 잠재적 고객(216)에게 초대(214)를 브로드캐스팅하는 것을 포함하는, 데이터 공유 세션(120)의 생성 방법을 알지 않고도 이러한 동작들을 개시하도록 애플리케이션(116)에 의해 이용될 수 있다. 초대(214)는 세션 관리자 모듈(118)에 의해 사용되어 잠재적 게스트(216)를 발견할 수 있으며, 이에 관한 추가 논의는 이어지는 설명과 관련하여 알 수 있고 대응 도면에 도시된다.
도 3은 잠재적 게스트의 발견 및 데이터 공유 세션에 참여하기 위한 잠재적 게스트의 인증이 오퍼레이팅 시스템(114)의 세션 관리자 모듈(118)에 의해 수행되는 예시적 구현예에서의 시스템(300)을 도시한다. 시스템(300)은 제 1 단계, 제 2 단계 및 제 3 단계(302, 304, 306)를 사용하여 도시된다. 제 1 단계(302)에서, 세션 관리자 모듈(118)은 네트워크(106)를 통해 다른 컴퓨팅 장치(104)와 통신한다. 다른 컴퓨팅 장치(104) 또한 오퍼레이팅 시스템(308) 및 세션 관리자 모듈(310)을 포함한다. 따라서, 본 예시에서, 세션 관리자 모듈들(118, 310)은 데이터 공유 세션을 개시하는 공유 인프라스트럭처를 지원할 수 있다. 후술되는 바와 같이 세션 관리자 모듈(310)을 포함하지 않는 다른 컴퓨팅 장치(104)의 애플리케이션과 통신하는 것과 같은 다른 예가 또한 고려될 수 있다.
이 경우에 세션 관리자 모듈들(118, 310) 사이에서 서로와의 통신을 통해(예를 들어, 모듈들 사이의 그러한 통신을 위해 협상된 적절한 채널을 통해), 데이터 공유 세션(120)의 개시를 관리하도록 구성되는 세션 관리자 모듈(118)은 잠재적인 게스트(312)를 발견할 수 있다. 이전의 브로드캐스트 예시를 지속하면서, 이러한 발견은 다양한 방식으로 수행될 수 있다. 예를 들어, 세션 관리자 모듈(118)이 초대(214)를 브로드캐스팅하고 그 이후 데이터 공유 세션(120)에 참여하기를 원하는 잠재적인 게스트(216)의 응답을 수신할 수 있는 능동적인 발견 기법이 채용될 수 있다. 세션 관리자 모듈(118)이, 브로드캐스팅 초대(214)를 수신하지 않고 데이터 공유 세션(120)에 참여하려는 요청을 수신하는 수동적인 발견 기법, 예를 들어, 세션 관리자 모듈(310)이 컴퓨팅 장치(102)의 데이터 공유 세션이 이용가능한지 알지 않고도 요청을 브로드캐스팅할 수 있는, 수동적인 발견 기법이 또한 채용될 수도 있다.
제 2 단계(304)에서, 다른 컴퓨팅 장치(104)로 표현된 잠재적 게스트가 어떻게 발견되는지에 관계없이, 세션 관리자 모듈(118)은 크리덴셜(314)을 수신하여 데이터 공유 세션(120)에 포함할 컴퓨팅 장치(104)를 검증할 수 있다. 예를 들어, 세션 관리자 모듈(212)은 데이터 공유 세션(120)에 참여를 허용하기 위해 충족되어야 하는 데이터 공유 세션(120)의 특성을 기술하는 리스트(212)를 채용할 수 있다. 이러한 특성은 ID(identification)를 포함하는데, 이 ID는 직접 지정하거나 또는 소셜 네트워크 서비스의 친구를 통해 자동으로 지정될 수 있다. 특성은 게스트의 위치(예를 들어, 특정 지리적 위치에 위치한 사용자를 명시하는 지오펜싱을 통해), 시각, 액세스가 허용된 방법(예를 들어, 데이터 공유 세션(120)에 참여하는데 사용된 네트워크 접속의 특정 유형) 등을 또한 포함할 수도 있다. 검증이 컴퓨팅 장치(102)에서 수행되는 것으로 도시되지만, 이러한 검증은 컴퓨팅 장치(104)에서 (예를 들어, 제 3 자 인증 서비스를 사용하여), 제 3 자 인증 서비스 자체 등에서 전체적으로 또는 부분적으로 또한 수행될 수도 있다. 일단 검증되면, 데이터 공유 세션(120)의 생성을 개시하는 프로세스가 계속될 수 있다.
제 3 단계(306)에 도시된 바와 같이, 예를 들어, 일단 인증되면, 다른 컴퓨팅 장치(104)의 오퍼레이팅 시스템(308)의 세션 관리자 모듈(310)은 다른 컴퓨팅 장치(104)의 대응하는 애플리케이션(122)을 웨이크업 할 수 있다(316). 예를 들어, 데이터 공유 세션(120)은 컴퓨팅 장치들(102, 104)의 특정 애플리케이션들(116, 122)의 실행에 대응할 수 있다. 따라서, 사용자는 애플리케이션(116)과 상호작용하여 컴퓨팅 장치(102)의 오퍼레이팅 시스템(114)의 세션 관리자 모듈(118)로 하여금 데이터 공유 세션(120)을 개시하게 할 수 있다. 세션 관리자 모듈(118)은 발견 및 인증을 수행하기 위해 다른 컴퓨팅 장치(104)의 세션 관리자 모듈(310)과 통신할 수 있다.
일단 발견 및/또는 인증되면, 그 이후 세션 관리자 모듈(310)은 대응하는 애플리케이션(122)을 웨이크하고 데이터 공유 세션(120)에 사용될 보안 통신 채널의 세부사항을 제공할 수 있다. 다른 예들은, 발견시 애플리케이션(122)을 웨이크하여 인증을 수행하도록, 예를 들어, 사용자 인터페이스가 사용자에 의해 입력된 크리덴셜을 수신하도록 다른 컴퓨팅 장치(104)에 의해 출력됨으로써 그러한 크리덴셜이 공통 디스플레이 장치(예를 들어, 도 1의 텔레비전으로 구성된 디스플레이 장치(108))를 통해 보여질 수 없는, 강한 인증을 수행하는 것으로 고려될 수도 있다. 통신 채널은 애플리케이션들(116, 122) 사이의 직접 통신을 지원하도록 형성될 수 있으며, 이에 관한 설명은 이후의 설명에서 발견될 수 있고 대응하는 도면에 도시된다.
도 4는 통신 채널이 컴퓨팅 장치들(102, 104)의 오퍼레이팅 시스템들(114, 308)의 세션 관리자 모듈들(118, 310)에 의해 생성되고 애플리케이션들(116, 122)에 의해 이용되어 세션 데이터를 직접 공유하는 예시적인 구현예에서의 시스템(400)을 도시한다. 시스템(400)은 또한 제 1 단계, 제 2 단계 및 제 3 단계(402, 404, 406)를 사용하여 도시된다. 제 1 단계(402)에서, 이전 예시를 계속하면서, 세션 관리자 모듈들(118, 310)은 데이터 공유 세션(120)에 참여하기 위해 컴퓨팅 장치(104)의 인증을 협상한다. 그 이후, 세션 관리자 모듈(310)은 애플리케이션들(116, 122)에 의해 사용가능한 통신 채널 정보(408)를 통신하여 직접 통신 채널을 형성한다. 예를 들어, 통신 채널 정보(408)는 사용자의 식별자(예를 들어, 다중 서비스 액세스 "MSA" 식별자), 크리덴셜, 페어링 정보 등과 같은 다른 관련 데이터와 함께 통신 소켓을 명시할 수 있다.
제 2 단계(404)에서, 컴퓨팅 장치(102)의 세션 관리자 모듈(118)은 게스트(예를 들어, 컴퓨팅 장치(104))의 도착을 애플리케이션(116)에 통지하고 통신 채널 정보(408)를 애플리케이션에 노출시킨다. 따라서, 이러한 예에서, 앞서 설명된 동작들이 추상화되고 오퍼레이팅 시스템(114)에 의해 수행됨에 따라 애플리케이션(116)이 게스트를 인식하게 되는 것은 이번이 처음이다.
제 3 단계(406)에서, 애플리케이션(116)은 통신 채널 정보(408)를 사용하여 공유 세션 데이터(410)의 통신을 지원하기 위해 컴퓨팅 장치의 애플리케이션(122)과 직접 통신하기 위한 통신 채널을 개방한다. 예를 들어, 오퍼레이팅 시스템(114)은 통신 채널 정보(408)에 의해 명시된 바와 같이 소켓을 개방할 수 있다. 그 이후 소켓이 사용됨으로써 애플리케이션들(116, 122)은 각각의 운영 시스템(114, 308)을 수반하지 않고도 서로 직접 통신할 수 있다.
공유 세션 데이터(410)는 사진, 사용자 선호사항(예를 들어, 재생 목록), 장치들에 국부적으로 저장되고/되거나 장치들에 의해 원격으로 액세스 가능한 콘텐츠의 공유 등과 같은 다양한 형태를 취할 수 있다. 예를 들어, 애플리케이션(116)은 파티를 위한 음악을 제공하도록 구성될 수 있으며, 따라서 공유된 세션 데이터(410)는 다른 컴퓨팅 장치(104)의 사용자의 음악 선호사항을 기술할 수 있으며, 심지어 컴퓨팅 장치(102)에 의한 스트리밍 및 출력을 위해 음악 자체를 포함할 수도 있다. 따라서, 공유된 세션 데이터(410)는 각각의 컴퓨팅 장치들(102, 104)에 국부적으로 상주하고/하거나 "클라우드를 통해" 각각의 컴퓨팅 장치들(102, 104)에 의해 원격으로 액세스 가능할 수도 있다.
이러한 예시에서, 오퍼레이팅 시스템(114)의 세션 관리자 모듈(118)은 다른 오퍼레이팅 시스템(308)의 세션 관리자 모듈(310)과 통신한다. 다른 구현예들 또한 고려된다. 예를 들어, 컴퓨팅 장치들(102, 104)은 상이한 호환가능하지 않은 엔티티들, 예컨대 상이한 제조자들에 의해 설계된 오퍼레이팅 시스템들을 실행시킬 수 있다. 따라서, 그러한 구현예에서, 세션 관리자 모듈(118)은 다른 컴퓨팅 장치(104)의 잠재적으로 호환가능하지 않은 오퍼레이팅 시스템과의 협상없이 앞서 설명된 발견, 인증 및 통신 채널 기법을 수행하기 위해 애플리케이션(122)과 직접 상호작용할 수 있다. 또한, 단일 게스트와 함께 설명된, 이러한 기법들이 본원의 정신 및 범위를 벗어나지 않으면서 다른 사용자들과 연관된 복수의 컴퓨팅 장치와 통신 채널을 브로드캐스팅, 발견, 인증 및 형성하도록 이용될 수 있음이 쉽게 이해되어야 한다.
도 5는 오퍼레이팅 시스템과의 다중 사용자 상호작용을 지원하기 위해 섀도우 로그인 세션이 이용되는 예시적인 구현예에서의 시스템(500)을 도시한다. 시스템(500)은 또한 제 1 단계, 제 2 단계, 제 3 단계 및 제 4 단계(502, 504, 506, 508)를 사용하여 도시된다. 데이터 공유 세션은 다양한 형태를 취할 수 있다. 이전 예시들에서, 데이터 공유 세션은 오퍼레이팅 시스템의 인프라스트럭처를 이용하여 다른 컴퓨팅 장치의 애플리케이션들 사이에서 데이터 공유 세션을 시작하도록 구성된다. 본 예시에서, 데이터 공유 세션은 서로 다른 사용자 프로파일의 컨텍스트에서 실행되는 사용자 로그인 세션들 사이에서 전환하도록 사용자의 로그인/로그 아웃을 사용하지 않고도 컴퓨팅 장치의 단일 오퍼레이팅 시스템에 대한 동시의 다중 사용자 액세스를 지원하도록 구성된다.
제 1 단계(502)에서, 예를 들어, 제 1 사용자(510)는 컴퓨팅 장치(102)의 오퍼레이팅 시스템(114)에 로그인 한다(512). 이것은 사용자 이름 및 패스워드와 같은 로그인 크리덴셜을 제공하는 것을 포함할 수도 있다. 예를 들어, 제 1 사용자(510)는 복수의 다른 사용자와 회의하는 동안 스프레드시트를 디스플레이하기 위해 회의실에서 컴퓨팅 장치(102)에 로그인할 수 있다.
제 2 단계(504)에서, 오퍼레이팅 시스템(514)의 세션 관리자 모듈(118)은 로그인(512)에 응답하여, 제 1 사용자 프로파일(516)의 컨텍스트에서 실행하도록 구성되는 제 1 사용자 로그인 세션(514)을 생성한다. 예를 들어, 세션 관리자 모듈(118)은 제 1 사용자(510)와의 상호작용을 위해 오퍼레이팅 시스템(114)의 사용자 경험을 구성하기 위한 사용자 설정 및 선호사항을 찾기 위해 상술된 크리덴셜을 이용할 수 있다. 이는 시작 화면/바탕 화면의 배경 이미지, 아이콘 배열, 애플리케이션과 함께 사용되는 설정 등에 관한 설명을 포함할 수도 있다. 또한, 이는 제 1 사용자(510)에 의해 발생하는 것과 같은 콘텐츠와의 상호작용의 인식을 포함할 수 있다. 예를 들어, 이전의 예를 계속하면, 예를 들어, 제 1 사용자(510)는 회의 동안 스프레드시트에 대한 변경을 행할 수 있고, 이러한 변경이 제 1 사용자(510)에게 귀속될 수 있다. 또 다른 예에서, 예를 들어, 회의 종료시, 사용자에 의해 정의된 정해진 시간 이후 만료되는 (허가를 통해) 제한된 이용가능성은, 예를 들어, 본 예시에서 구체적으로는 스프레드 시트에 부여될 수 있다.
세션 관리자 모듈(118)은 또한, 예를 들어, 제 1 사용자 로그인 세션(514)의 생성 시 또는 추후에 제 3 단계(506)에 도시된 바와 같이 "런애즈(run as)" 요청에 응답하여, 섀도우 로그인 세션(518)을 생성할 수 있다. 예를 들어, 섀도우 로그인 세션(518)은 특정 사용자와 연관되지 않고 해당 사용자에 대한 사용자 선호사항 및 설정을 포함하지 않는 "공백" 로그인 세션으로 구성될 수도 있다. 섀도우 로그인 세션(518)은 제 1 사용자 로그인 세션(514)의 제 1 사용자 프로파일 컨텍스트를 구현하는데 사용되는 하나 이상의 스레드들로부터 분리된(예를 들어, "샌드박스된(sandboxed)") 하나의 스레드 상에 구현될 수 있다.
추가적으로, 섀도우 로그인 세션(518)은, 예컨대, 네트워크 액세스, 오퍼레이팅 시스템(114) 또는 애플리케이션(118)의 동작을 변경할 수 있는 능력 등을 제한하기 위해, 제 1 사용자 로그인 세션(514)의 제 1 사용자 프로파일(516)의 컨텍스트와 비교해 볼 때 섀도우 로그인 세션(518)의 기능이 제한되도록, 감소된 허용(permission) 세트를 받을 수도 있다. 또한, 섀도우 로그인 세션(518)의 허용 및 기능이 제 1 사용자 로그인 세션(514)으로부터 물려받도록(inherit), 섀도우 로그인 세션(518)은 제 1 사용자 로그인 세션(514) 내에서 실행되도록 구성될 수 있고, 이로써 오퍼레이팅 시스템(114)의 어떤 기능을 제한하는 것이 섀도우 로그인 세션에서 이용가능해진다.
제 3 단계(506)에서, 다른 컴퓨팅 장치(104)와 연관된 제 2 사용자(520)가 컴퓨팅 장치(102)에 대해 "런애즈" 요청(522)을 행한다. "런애즈" 요청(522)을 행하기 위해 제 2 사용자(520)가 컴퓨팅 장치(102)와 직접 상호작용하는, 예를 들어, 컴퓨팅 장치(102)의 키보드 상에 타이핑하는 것과 같이 다른 컴퓨팅 장치(104)를 중개자로 사용하지 않는, 다른 예시들이 또한 고려된다. "런애즈" 요청(522)은, 다양한 항식으로, 예컨대, 오퍼레이팅 시스템(114)과의 직접 상호작용(예를 들어, 오퍼레이팅 시스템(114)에 출력된 메뉴와의 상호작용) 및/또는 그 이후 오퍼레이팅 시스템(114)과 통신하는 애플리케이션(116)을 통한 간접 상호작용을 통해, 개시될 수 있다.
이전 예시를 계속하면, 제 2 사용자(520)는 제 2 사용자와 연관된 제 2 사용자 프로파일의 컨텍스트에서 실행되도록 스프레드시트 애플리케이션에서 옵션을 선택할 수 있다. 그 이후, 오퍼레이팅 시스템(114)은 제 1 사용자(510)에 대한 제 1 단계(502)와 관련하여 설명된 것과 유사한 방식으로 제 2 사용자(516)로부터 수신된 크리덴셜(524)을 이용하여 제 2 사용자(516)에 로그인할 수 있다.
제 4 단계(508)에서, 세션 관리자 모듈(118)은 제 2 사용자 프로파일(526)을 섀도우 로그인 세션(518)과 연관시킴으로써 제 2 사용자(516)가 섀도우 로그인 세션(518)을 통해 제 2 사용자 프로파일(526)의 컨텍스트 내에서 컴퓨팅 장치(102)와 상호작용할 수 있다. 이전 예시를 계속하면, 세션 관리자 모듈(119)은 제 2 사용자(520)의 사용자 선호사항, 설정, 식별자 등과 같은 제 2 사용자 프로파일(526)의 데이터의 위치를 찾기 위해 크리덴셜(524)을 이용할 수도 있다.
이러한 방식으로, 세션 관리자 모듈(118)은 대응하는 제 1 사용자 프로파일 및 제 2 사용자 프로파일(516, 526)을 사용하여 제 1 사용자 및 제 2 사용자(510, 520)에 의해 수행되는 상호작용을 식별할 수 있다. 예를 들어, 제 1 사용자 및 제 2 사용자(510, 520)는 스프레드시트에 대해 변경을 행하고 이들의 프로파일을 통해 사용자들과 연관된 변경을 가질 수 있다.
또 다른 예에서, 애플리케이션들(116)은, 예컨대, "클라우드로부터" 페치될 수도 있는 높은 점수, 제어기 선호사항 등을 얻기 위해, 섀도우 로그인 세션(518)에서 제 2 사용자 프로파일(526)의 컨텍스트 내에서 실행되도록 구성될 수 있다. 이러한 방식으로, 섀도우 로그인 세션(518)은 복수의 사용자에 의한 동시 사용을 지원하도록 구성될 수 있지만, 로그인들 사이의 전환 없이 오퍼레이팅 시스템(114)의 일부로서 포함되는 선호사항, 맞춤화 및 다른 로밍(roaming) 기능을 여전히 이용한다. 이러한 기술 및 다른 기술에 대한 추가 설명은 이어지는 절차에 대하여 발견될 수 있다.
예시적인 절차들
이어지는 설명은 앞에서 설명된 시스템 및 장치를 이용하여 구현될 수 있는 데이터 공유 세션 기법들을 설명한다. 절차들의 각각에 관한 양태들은 하드웨어, 펌웨어, 또는 소프트웨어, 또는 이들의 조합으로 구현될 수 있다. 절차는 하나 이상의 장치에 의해 수행되는 동작들을 명시하는 블록 세트로 도시되지만 각각의 블록에 의한 동작을 수행하도록 도시된 순서로 제한되는 것은 아니다. 이어지는 설명의 일부에서, 도 1 내지 도 5를 참조할 것이다.
도 1 내지 도 5의 예시들과 관련하여 설명된 기능, 특징, 및 개념들은 본원에 설명된 절차에 관한 맥락에서 채용될 수 있다. 또한, 상이한 절차와 관련하여 아래에서 설명되는 기능, 특징, 및 개념들은 상이한 절차들 사이에서 상호교환될 수 있고 개별 절차의 문맥에서의 구현으로 제한되지 않는다. 더욱이, 본원에서 상이한 대표 절차 및 대응 도면과 연관된 블록들은 함께 적용되거나 및/또는 상이한 방식으로 조합될 수도 있다. 따라서, 본원에서 상이한 예시적 환경, 장치, 컴포넌트 및 절차와 관련하여 설명되는 개별 기능, 특징, 및 개념은 임의의 적절한 조합으로 사용될 수 있고, 열거된 예시들에 의해 표현된 특정 조합으로 제한되지 않는다.
도 6은 데이터 공유 세션이 개시되고 호스트 및 호스트의 게스트들에 의해 실행되는 애플리케이션들 사이에서 데이터를 공유하도록 이용되는 예시적인 구현예에서의 절차(600)를 도시한다. 하나 이상의 애플리케이션으로부터 하나 이상의 애플리케이션 프로그래밍 인터페이스(API)를 통해 오퍼레이팅 시스템에서 데이터 공유 세션을 개시하기 위한 요청이 수신된다(블록 602). 예를 들어, 애플리케이션(116)은 하나 이상의 API를 통해 운영 시스템(114)의 세션 관리자 모듈(118)에 의한 수신을 위한 요청(208)을 형성할 수 있다.
요청에 응답하여, 게스트와 관련된 하나 이상의 다른 컴퓨팅 장치에 의해 실행되는 하나 이상의 다른 애플리케이션과 하나 이상의 애플리케이션 사이의 네트워크 연결을 통해 데이터 공유 세션의 생성이 개시된다(블록 604). 예를 들어, 세션 관리자 모듈(118)은 보안 통신 채널의 브로드캐스트, 발견, 인증 및 협상을 자동으로 그리고 애플리케이션(116)으로부터의 입력 없이 지원하는 인프라스트럭처를 제공할 수 있다. 예를 들어, 초대는 데이터 공유 세션의 이용가능성을 표시하는 하나 이상의 다른 컴퓨팅 장치에 의한 수신을 위해 오퍼레이팅 시스템에 의해 브로드캐스팅될 수 있다(블록 606). 이러한 초대(214)는, 예컨대, 소셜 네트워크 서비스에의 포스팅, 무선 접속 등을 통해, 잠재적인 게스트(216)에게 다양한 방식으로 브로드캐스팅될 수 있다.
데이터 공유 세션에 참여할 게스트가 오퍼레이팅 시스템에 의해 발견된다(블록 608). 이러한 발견은 수동 발견(예를 들어, 잠재적인 게스트(216)가 초대의 수락 없이 참여를 요청) 또는 초대의 사용을 포함하는 능동 발견을 포함할 수 있다.
오퍼레이팅 시스템은 게스트가 데이터 공유 세션에 참여하도록 허용되는지 검증한다(블록 610). 이것은 잠재적인 게스트(216)가 데이터 공유 세션(120)에 대한 특정 기준을 준수하는지 검증하기 위해 리스트(212)를 검사할 뿐만 아니라 사용자의 크리덴셜을 검증하는 것을 포함할 수 있다.
오퍼레이팅 시스템에 의해 하나 이상의 애플리케이션과 하나 이상의 다른 애플리케이션 사이에서 사용가능한 통신 채널을 수립하도록 구성되는 데이터가 애플리케이션 프로그래밍 인터페이스를 통해 하나 이상의 애플리케이션에 노출된다(블록 612). 이 데이터는, 예를 들어, 잠재적인 게스트(216)를 식별할 뿐만 아니라 통신하는데 사용되는 소켓을 기술하는 데이터를 포함할 수 있다. 그 이후, 예컨대, 오퍼레이팅 시스템(114)에 의한 능동적인 참여를 수반하지 않는 소켓을 통해 애플리케이션들 사이의 직접 통신을 지원하도록, 하나 이상의 다른 애플리케이션들과 하나 이상의 애플리케이션들 사이에 이용가능한 보안 통신 채널이 생성될 수 있다(블록 614).
도 7은 오퍼레이팅 시스템과의 다중 사용자 상호작용을 지원하기 위해 섀도우 로그인 세션이 이용되는 예시적인 구현예에서의 절차(700)를 도시한다. 제 1 사용자 로그인 세션은 컴퓨팅 장치의 오퍼레이팅 시스템을 사용하여 제 1 사용자의 제 1 사용자 프로파일의 컨텍스트에서 실행될 때 개시된다(블록 702). 예를 들어, 제 1 사용자(510)는 컴퓨팅 장치(102)의 오퍼레이팅 시스템(114)을 사용하여 로그인(512)을 개시할 수 있다.
제 2 사용자의 제 2 사용자 프로파일의 컨텍스트에서 제 1 사용자 로그인 세션을 실행하기 위한 요청이 오퍼레이팅 시스템에 의해 수신된다(블록 704). 이전 예시를 계속하면, 제 2 사용자(520)는 컴퓨팅 장치(102)와의 직접 상호작용 또는 다른 컴퓨팅 장치(104)를 사용하는 간접 상호작용을 통해 수행될 수 있는 컴퓨팅 장치(102)의 오퍼레이팅 시스템(114)에 대한 "런애즈" 요청(522)을 개시할 수 있다.
오퍼레이팅 시스템과의 제 2 사용자의 상호작용이 제 2 사용자 프로파일과 연관되고 오퍼레이팅 시스템과 제 1 사용자의 상호작용이 제 1 사용자 프로파일과 연관되도록, 제 2 사용자 프로파일은 오퍼레이팅 시스템에 의해 컴퓨팅 시스템의 제 1 사용자 로그인 세션 내에서 생성된 섀도우 로그인 세션과 연관된다(블록 706). 예를 들어, 섀도우 로그인 세션(518)은 제 1 사용자(510)의 로그인(512)에 응답하거나, 제 2 사용자(520)로부터의 "런애즈" 요청(522)에 응답하여 생성될 수 있다. 그 이후, 제 2 사용자 프로파일(526)과 연관된 데이터는 섀도우 로그인 세션(518)이 제 2 사용자 프로파일(526)의 컨텍스트에서 실행되도록 섀도우 로그인 세션(518)에 대해 파퓰레이팅될(populated) 수 있다. 이는 전술된 바와 같이 특정 사용자를 식별하는 것, 특정 사용자의 설정으로 애플리케이션을 실행하는 것 등과 같이, 다양한 기능을 지원하는데 이용될 수 있다.
예시적 시스템 및 장치
도 8은 본원에 설명된 다양한 기법을 구현할 수 있는 하나 이상의 컴퓨팅 시스템 및/또는 장치를 나타내는 예시적인 컴퓨팅 장치(802)를 포함하는 예시적인 시스템을 일반적으로 800으로 보여준다. 본 예시는 세션 관리자 모듈(118)을 포함하는 것으로 도시된다. 컴퓨팅 장치(802), 예를 들어, 서비스 제공자의 서버, 클라이언트와 연관된 장치(예를 들어, 클라이언트 장치), 온칩 시스템, 및/또는 임의의 다른 적합한 컴퓨팅 장치 또는 컴퓨팅 시스템일 수 있다.
예시된 컴퓨팅 장치(802)는 서로 통신가능하게 연결된 프로세싱 시스템(804), 하나 이상의 컴퓨터 판독가능 매체(806) 및 하나 이상의 I/O 인터페이스(808)를 포함한다. 도시되지는 않았지만, 컴퓨팅 장치(802)는 다양한 컴포넌트를 서로 연결하는 시스템 버스 또는 다른 데이터 및 커맨드 전달 시스템을 더 포함할 수 있다. 시스템 버스는 메모리 버스 또는 메모리 컨트롤러, 주변 버스, 범용 직렬 버스 및/또는 다양한 버스 아키텍처 중 임의의 것을 이용하는 프로세서 또는 로컬 버스와 같은 상이한 버스 구조 중 임의의 하나 또는 조합을 포함할 수 있다. 제어 및 데이터 라인과 같은 다양한 다른 예들도 고려된다.
프로세싱 시스템(804)은 하드웨어를 사용하여 하나 이상의 동작을 수행하는 기능을 나타낸다. 따라서, 처리 시스템(804)은 프로세서, 기능 블록 등과 같이 구성될 수 있는 하드웨어 요소(810)를 포함하는 것으로 도시된다. 이는 주문형 집적 회로 또는 하나 이상의 반도체를 사용하여 형성된 다른 논리 소자로서의 하드웨어에서의 구현을 포함할 수 있다. 하드웨어 요소(810)는 이들이 형성되는 재료 또는 그 안에 채용된 프로세싱 메커니즘에 의해 제한되지 않는다. 예를 들어, 프로세서는 반도체 및/또는 트랜지스터(예를 들어, 전자 집적 회로(IC))로 구성될 수 있다. 이러한 맥락에서, 프로세서 실행가능 명령어는 전자 실행가능 명령어 일 수 있다.
컴퓨터 판독가능 저장 매체(806)는 메모리/저장 장치(812)를 포함하는 것으로 도시된다. 메모리/저장 장치(812)는 하나 이상의 컴퓨터 판독가능 매체와 관련된 메모리/저장 용량을 나타낸다. 메모리/저장 컴포넌트(812)는 (RAM과 같은) 휘발성 매체 및/또는 ROM, 플래시 메모리, 광학 디스크, 자기 디스크 등의 비 휘발성 매체를 포함할 수 있다. 메모리/저장 컴포넌트(812)는 착탈식 매체(예를 들어, 플래시 메모리, 착탈식 하드 드라이브, 광학 디스크 등)뿐만 아니라 고정 매체(예를 들어, RAM, ROM, 고정 하드 드라이브 등)포함할 수 있다. 컴퓨터 판독 가능 매체(806)는 이하에서 더 설명되는 바와 같이 다양한 다른 방법으로 구성될 수 있다.
입력/출력 인터페이스(들)(808)는 사용자가 커맨드 및 정보를 컴퓨팅 장치(802)에 입력할 수 있게 하고, 또한 다양한 입력/출력 장치를 사용하여 사용자 및/또는 다른 컴포넌트 또는 장치에 정보가 제공되게 하는 기능을 나타낸다. 입력 장치의 예는, 키보드, 커서 제어 장치(예를 들어, 마우스), 마이크로폰, 스캐너, 터치 기능(예를 들어, 물리적 터치를 감지하도록 구성된 용량형 또는 기타 센서), 카메라(예를 들어, 적외선 주파수와 같은 가시적 또는 비가시적 파장을 사용하여 터치를 포함하지 않는 제스처로 동작을 인식할 수 있음) 등을 포함한다. 출력 장치의 예는 디스플레이 장치(예를 들어, 모니터 또는 프로젝터), 스피커, 프린터, 네트워크 카드, 촉각 응답 장치 등을 포함한다. 따라서, 컴퓨팅 장치(802)는 이하에서 더 설명되는 바와 같이 사용자 상호작용을 지원하기 위한 다양한 방식으로 구성될 수 있다.
다양한 기법들이 소프트웨어, 하드웨어 요소 또는 프로그램 모듈의 일반적인 맥락으로 설명될 수 있다. 일반적으로, 그러한 모듈은 특정 작업을 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 객체, 요소, 컴포넌트, 데이터 구조 등을 포함한다. 본원에서 사용되는 "모듈", "기능" 및 "컴포넌트"라는 용어는 일반적으로 소프트웨어, 펌웨어, 하드웨어 또는 이들의 조합을 나타낸다. 본원에 기술된 기술의 특징은 플랫폼 독립적이며, 이는 기술이 다양한 프로세서를 갖는 다양한 상업용 컴퓨팅 플랫폼 상에서 구현될 수 있음을 의미한다.
설명된 모듈 및 기법의 구현예는 일부 형태의 컴퓨터 판독가능 매체 상에 저장되거나 이를 거쳐 전송될 수 있다. 컴퓨터 판독가능 매체는 컴퓨팅 장치(802)에 의해 액세스될 수도 있는 다양한 매체를 포함할 수 있다. 제한이 아닌 예시로써, 컴퓨터 판독가능 매체는 "컴퓨터 판독가능 저장 매체" 및 "컴퓨터 판독가능 신호 매체"를 포함할 수 있다.
"컴퓨터 판독가능 저장 매체"는 단지 신호 전송, 반송파, 또는 신호 등과 대조적으로 정보를 영구 및/또는 비일시적으로 저장할 수 있는 매체 및/또는 장치를 지칭할 수 있다. 따라서, 컴퓨터 판독가능 저장 매체는 비신호 관련 매체를 지칭한다. 컴퓨터 판독가능 저장 매체는 휘발성 및 비휘발성, 착탁식 및 비착탈식 매체 및/또는 정보(예컨대, 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 로직 요소/회로, 또는 다른 데이터)의 저장에 적합한 방법 또는 기법으로 구현되는 저장 장치와 같은 하드웨어를 포함한다. 컴퓨터 판독가능 저장 매체의 예는, RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기법, CD-ROM, DVD(digital versatile disk) 또는 다른 광 저장소, 하드 디스크, 자기 카세트, 자기 테이프, 자기 디스크 저장소 또는 다른 자기 저장소, 또는 다른 저장 장치, 유형의 매체, 또는 원하는 정보를 저장하기에 적합한 제조 물품이며, 컴퓨터에 의해 액세스될 수 있다.
"컴퓨터 판독 가능 신호 매체"는 네트워크를 통하는 것과 같이 컴퓨팅 장치(802)의 하드웨어에 명령어를 전송하도록 구성된 신호 보유 매체를 지칭할 수 있다. 신호 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터를 반송파, 데이터 신호 또는 다른 전송 메커니즘과 같은 변조된 데이터 신호로 구현할 수 있다. 신호 매체는 또한 임의의 정보 전달 매체를 포함한다. 용어 "변조된 데이터 신호"는 신호의 정보를 인코딩하는 방식으로 하나 이상의 특성을 설정하거나 변경한 신호를 의미한다. 예시로써, 통신 매체는 유선 네트워크 또는 직접 유선 접속과 같은 유선 매체, 및 음향, RF, 적외선 및 다른 무선 매체와 같은 무선 매체를 포함하지만, 이로 제한되는 것은 아니다.
전술한 바와 같이, 하드웨어 요소들(810) 및 컴퓨터 판독가능 매체(806)는, 하나 이상의 명령어를 수행하는 것과 같이 본원에 설명된 기법에 관한 적어도 일부 양태를 구현하도록 일부 실시예들에서 채용될 수 있는 하드웨어 형태로 구현되는, 모듈, 프로그래머블 장치 로직 및/또는 하드웨어 형태로 구현된 고정 장치 로직을 나타낸다. 하드웨어는 집적 회로 또는 온칩 시스템의 컴포넌트, ASIC(Application-Specific Integrated Circuit), FPGA(Field-Programmable Gate Array), CPLD(Complex Programmable Logic Device) 및 실리콘 또는 다른 하드웨어에서의 다른 구현예를 포함할 수도 있다. 이러한 맥락에서, 하드웨어는 하드웨어뿐만 아니라 실행을 위해 명령어를 저장하는데 사용되는 하드웨어, 예컨대, 이전에 설명된 컴퓨터 판독가능 저장 매체 의해 채용된 로직 및/또는 명령어에 의해 정의된 프로그램 작업을 수행하는 프로세싱 장치로서 동작할 수도 있다.
전술한 것들의 조합은 또한 본 명세서에 설명된 다양한 기법을 구현하기 위해 사용될 수 있다. 따라서, 소프트웨어, 하드웨어 또는 실행가능 모듈은 일부 형태의 컴퓨터 판독가능 저장 매체 및/또는 하나 이상의 하드웨어 요소(810)에 의해 채용된 하나 이상의 명령어 및/또는 로직으로서 구현될 수 있다. 컴퓨팅 장치(802)는 소프트웨어 및/또는 하드웨어 모듈들에 대응하는 특정 명령어 및/또는 기능을 구현하도록 구성될 수 있다. 따라서, 컴퓨팅 장치(802)에 의해 소프트웨어로서 실행 가능한 모듈의 구현은, 예를 들어, 컴퓨터 판독가능 저장 매체 및/또는 프로세싱 시스템(804)의 하드웨어 요소(810)의 사용을 통해, 하드웨어에서 적어도 부분적으로 달성될 수 있다. 명령어 및/또는 기능은 본원에서 설명된 기법, 모듈 및 예를 구현하기 위해 하나 이상의 제조 물품(예를 들어, 하나 이상의 컴퓨팅 장치(802) 및/또는 처리 시스템(804))에 의해 실행가능/동작가능할 수 있다.
도 8을 또한 참조하면, 예시적인 시스템(800)은 퍼스널 컴퓨터(PC), 텔레비전 장치 및/또는 모바일 장치에서 애플리케이션을 실행할 때 매끄러운 사용자 경험을 위한 유비쿼터스 환경을 가능하게 한다. 서비스 및 애플리케이션은, 애플리케이션을 이용하거나, 비디오 게임을 하거나, 비디오를 보는 동안 하나의 장치에서 다른 장치로 전환할 때 공통 사용자 환경에 대해 세 가지 환경 모두에서 실질적으로 유사하게 실행된다.
예시적인 시스템(800)에서, 복수의 장치는 중앙 컴퓨팅 장치를 통해 상호접속된다. 중앙 컴퓨팅 장치는 복수의 장치에 대해 로컬이거나 복수의 장치로부터 원격에 위치될 수 있다. 일 실시예에서, 중앙 컴퓨팅 장치는 네트워크, 인터넷 또는 다른 데이터 통신 링크를 통해 복수의 장치들에 접속되는 하나 이상의 서버 컴퓨터들의 클라우드일 수도 있다.
일 실시예에서, 이러한 상호접속 아키텍쳐는 복수의 장치의 사용자에게 공통적이고 끊김 없는 경험을 제공하기 위해 기능이 복수의 장치에 걸쳐 전달될 수 있게 한다. 복수의 장치의 각각은 서로 다른 물리적 요구사항 및 기능을 가질 수 있고, 중앙 컴퓨팅 장치는 플랫폼을 사용하여 장치에 맞춰지고 모든 장치에 공통적인 경험을 장치에 전달할 수 있다. 일 실시예에서, 타겟 디바이스들의 클래스가 생성되고 경험들은 장치들의 일반적인 클래스에 맞추어진다. 장치의 클래스는 물리적 특징, 사용 유형 또는 장치의 기타 공통 특성에 의해 정의될 수 있다.
다양한 구현예에서, 컴퓨팅 장치(802)는 컴퓨터(814), 모바일(816), 및 텔레비전(818) 사용과 같은 다양한 상이한 구성을 가정할 수 있다. 이들 구성의 각각은 일반적으로 상이한 구조 및 성능을 가질 수 있는 장치들을 포함하고, 따라서 컴퓨팅 장치(802)는 하나 이상의 상이한 장치 클래스들에 따라 구성될 수 있다. 예를 들어, 컴퓨팅 장치(802)는 퍼스널 컴퓨터, 데스크톱 컴퓨터, 멀티 스크린 컴퓨터, 랩톱 컴퓨터, 넷북 등을 포함하는 장치의 컴퓨터 클래스(814)로서 구현될 수 있다.
컴퓨팅 장치(802)는 또한 이동 전화, 휴대용 뮤직 플레이어, 휴대용 게임 장치, 태블릿 컴퓨터, 멀티스크린 컴퓨터 등과 같은 모바일 장치를 포함하는 장치의 모바일(816) 클래스로서 구현될 수 있다. 컴퓨팅 장치(802)는 또한 평상시 시청 환경에서 일반적으로 더 큰 스크린을 가지거나 그것에 연결된 장치를 포함하는 텔레비전(818) 클래스의 장치로서 구현될 수도 있다. 이러한 장치는 TV, 셋톱 박스, 게임 콘솔 등을 포함한다.
본원에 설명된 기법들은 컴퓨팅 장치(802)의 이러한 다양한 구성들에 의해 지원 될 수 있고 본원에 설명된 기술들에 관한 특정 예들로 제한되지 않는다. 이러한 기능은 또한 이하에서 설명되는 바와 같이 플랫폼(822)을 거쳐 "클라우드"(820)와 같은 분산 시스템의 사용을 통해 전체적으로 또는 부분적으로 구현될 수도 있다.
클라우드(820)는 리소스(824)를 위한 플랫폼(822)을 포함하고/하거나 대표한다. 플랫폼(822)은 하드웨어(예를 들어, 서버)의 기본 기능 및 클라우드(820)의 소프트웨어 리소스를 추상화한다. 리소스(824)는 컴퓨터 프로세싱이 컴퓨팅 디바이스(802)로부터 원격인 서버 상에서 실행되는 동안 이용될 수 있는 애플리케이션 및/또는 데이터를 포함 할 수 있다. 리소스(824)는 또한 인터넷 및/또는 셀룰러 또는 Wi-Fi 네트워크와 같은 가입자 네트워크를 통해 제공되는 서비스를 포함할 수 있다.
플랫폼(822)은 컴퓨팅 장치(802)를 다른 컴퓨팅 장치들과 접속시키기 위한 리소스 및 기능을 추상화할 수 있다. 플랫폼(822)은 또한 플랫폼(822)을 통해 구현되는 리소스(824)에 대한 마주치는 요구에 대응하는 스케일 레벨을 제공하기 위해 리소스의 스케일링을 추상화하는 역할을 할 수 있다. 따라서, 상호접속된 장치 실시예에서, 본원에 설명된 기능의 구현은 시스템(800) 전체에 걸쳐 분산될 수 있다. 예를 들어, 기능은 컴퓨팅 장치(802)뿐만 아니라 클라우드(820)의 기능을 추상화하는 플랫폼(822)을 통해 부분적으로 구현될 수도 있다.
예시적인 구현예가 구조적 특징 및/또는 방법론적 동작에 특정한 언어로 설명되었지만, 첨부된 특허청구범위에 정의된 구현예는 설명된 특정한 특징 또는 동작에 반드시 제한되는 것은 아니라는 것을 이해해야 한다. 오히려, 특정한 특징 및 동작은 특허청구된 특징을 구현하는 예시적인 형태로서 개시된다.

Claims (15)

  1. 컴퓨팅 장치의 오퍼레이팅 시스템에 의해, 제 1 사용자의 제 1 사용자 프로파일의 컨텍스트에서 실행되는 제 1 사용자 로그인 세션(first login session)을 개시하는 단계와,
    상기 오퍼레이팅 시스템에 의해, 상기 제1 사용자 로그인 세션 개시시에, 제 2 사용자의 제 2 사용자 프로파일의 컨텍스트에서 상기 제 1 사용자 로그인 세션을 실행하라는 요청이 없는 경우, 섀도우 로그인 세션(shadow login session)을 생성하는 단계와,
    상기 섀도우 로그인 세션 생성 후에, 상기 오퍼레이팅 시스템에 의해, 상기 제 2 사용자의 상기 제 2 사용자 프로파일의 컨텍스트에서 상기 제1 사용자 로그인 세션을 실행하라는 요청을 수신하는 단계와,
    상기 요청의 일부로서 수신된 상기 제 2 사용자 프로파일과 연관된 크리덴셜(credential)을 안전하게 검증(verifying)하고, 상기 검증에 응답하여, 상기 제 2 사용자 프로파일을 상기 섀도우 로그인 세션과 연관시키기 위한, 상기 제 2 사용자에 대한 사용자 설정(setting)을 수신하는 단계와,
    상기 오퍼레이팅 시스템에 의해, 로그인들 사이를 전환하지 않고, 상기 제 2 사용자 프로파일을 상기 섀도우 로그인 세션과 연관시킴으로써, 상기 제 2 사용자의 상기 오퍼레이팅 시스템과의 상호작용은 상기 제 2 사용자 프로파일과 연관되고 상기 제 1 사용자의 상기 오퍼레이팅 시스템과의 상호작용은 상기 제 1 사용자 프로파일과 연관되도록 하는 단계를 포함하는
    방법.
  2. 제 1 항에 있어서,
    상기 섀도우 로그인 세션은 상기 제 1 사용자 로그인 세션의 상기 제 1 사용자 프로파일을 실행하는 데 사용되는 하나 이상의 스레드(threads)로부터 분리된 스레드 상에서 실행되는
    방법.
  3. 제 1 항에 있어서,
    상기 요청은 상기 컴퓨팅 장치에 의해 실행되는 애플리케이션과의 상호작용을 통해 수신되고, 상기 연관시키는 것은 상기 애플리케이션에 대한 상기 제 2 사용자의 상호작용이 상기 제 2 사용자 프로파일과 연관되고 상기 애플리케이션에 대한 상기 제 1 사용자의 상호작용이 상기 제 1 사용자 프로파일과 연관되도록 상기 애플리케이션이 실행되게 하는
    방법.
  4. 제 3 항에 있어서,
    상기 애플리케이션에 대한 상기 제 1 사용자 및 상기 제 2 사용자의 상호작용은 로그인을 전환하지 않고 수행가능한
    방법.
  5. 프로그램 명령어가 저장되어 있는 메모리 장치로서,
    상기 프로그램 명령어는 컴퓨터 시스템의 프로세서에 의해 실행될 경우에, 상기 컴퓨터 시스템으로 하여금,
    상기 컴퓨터 시스템의 오퍼레이팅 시스템에 의해, 제 1 사용자의 제 1 사용자 프로파일의 컨텍스트에서 제 1 사용자 로그인 세션 개시시에 섀도우 로그인 세션을 생성하고,
    제 2 사용자의 제 2 사용자 프로파일의 컨텍스트에서 상기 제1 사용자 로그인 세션을 실행하라는 요청을 수신하며,
    상기 요청의 일부로서 수신된 상기 제 2 사용자 프로파일과 연관된 크리덴셜을 안전하게 검증하고, 상기 검증에 응답하여, 상기 제 2 사용자 프로파일을 상기 섀도우 로그인 세션과 연관시키기 위한, 상기 제 2 사용자에 대한 사용자 설정을 수신하고,
    로그인들 사이를 전환하지 않고, 상기 제 2 사용자 프로파일을 상기 섀도우 로그인 세션과 연관시키도록 - 상기 제 2 사용자의 상기 오퍼레이팅 시스템과의 상호작용은 상기 제 2 사용자 프로파일과 연관되고 상기 제 1 사용자의 상기 오퍼레이팅 시스템과의 상호작용은 상기 제 1 사용자 프로파일과 연관됨 - 하는,
    메모리 장치.
  6. 제 5 항에 있어서,
    상기 섀도우 로그인 세션은 상기 제 1 사용자 로그인 세션의 상기 제 1 사용자 프로파일을 실행하는 데 사용되는 하나 이상의 스레드(threads)로부터 분리된 스레드 상에서 실행되는
    메모리 장치.
  7. 제 5 항에 있어서,
    상기 요청은 상기 컴퓨터 시스템에 의해 실행되는 애플리케이션과의 상호작용을 통해 수신되고, 상기 연관시키는 것은 상기 애플리케이션에 대한 상기 제 2 사용자의 상호작용이 상기 제 2 사용자 프로파일과 연관되고 상기 애플리케이션에 대한 상기 제 1 사용자의 상호작용이 상기 제 1 사용자 프로파일과 연관되도록 상기 애플리케이션이 실행되게 하는
    메모리 장치.
  8. 제 7 항에 있어서,
    상기 애플리케이션에 대한 상기 제 1 사용자 및 상기 제 2 사용자의 상호작용은 로그인을 전환하지 않고 수행가능한
    메모리 장치.
  9. 컴퓨터 시스템으로서,
    프로세서와,
    상기 프로세서에 연결된 메모리를 포함하되,
    상기 메모리는 프로그램 명령어를 저장하고 있으며, 상기 프로그램 명령어는 상기 프로세서에 의해 실행될 경우에, 상기 컴퓨터 시스템으로 하여금,
    제 1 사용자의 제 1 사용자 프로파일의 컨텍스트에서 제 1 사용자 로그인 세션 개시시에, 제 2 사용자의 제 2 사용자 프로파일의 컨텍스트에서 상기 제 1 사용자 로그인 세션을 실행하라는 요청이 없는 경우, 섀도우 로그인 세션을 생성하고,
    상기 제 2 사용자의 상기 제 2 사용자 프로파일의 컨텍스트에서 상기 제1 사용자 로그인 세션을 실행하라는 요청을 수신하며,
    상기 요청의 일부로서 수신된 상기 제 2 사용자 프로파일과 연관된 크리덴셜을 안전하게 검증하고, 상기 검증에 응답하여, 상기 제 2 사용자 프로파일을 상기 섀도우 로그인 세션과 연관시키기 위한, 상기 제 2 사용자에 대한 사용자 설정을 수신하고,
    로그인들 사이를 전환하지 않고, 상기 제 2 사용자 프로파일을 상기 섀도우 로그인 세션과 연관시키도록 - 상기 제 2 사용자의 상기 컴퓨터 시스템의 오퍼레이팅 시스템과의 상호작용은 상기 제 2 사용자 프로파일과 연관되고 상기 제 1 사용자의 상기 오퍼레이팅 시스템과의 상호작용은 상기 제 1 사용자 프로파일과 연관됨 - 하며,
    컴퓨터 시스템.
  10. 제 9 항에 있어서,
    상기 섀도우 로그인 세션은 상기 제 1 사용자 로그인 세션의 상기 제 1 사용자 프로파일을 실행하는 데 사용되는 하나 이상의 스레드(threads)로부터 분리된 스레드 상에서 실행되는
    컴퓨터 시스템.
  11. 제 9 항에 있어서,
    상기 요청은 상기 컴퓨터 시스템에 의해 실행되는 애플리케이션과의 상호작용을 통해 수신되고, 상기 연관시키는 것은 상기 애플리케이션에 대한 상기 제 2 사용자의 상호작용이 상기 제 2 사용자 프로파일과 연관되고 상기 애플리케이션에 대한 상기 제 1 사용자의 상호작용이 상기 제 1 사용자 프로파일과 연관되도록 상기 애플리케이션이 실행되게 하고, 상기 애플리케이션에 대한 상기 제 1 사용자 및 상기 제 2 사용자의 상호작용은 로그인을 전환하지 않고 수행가능한
    컴퓨터 시스템.
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
KR1020177006078A 2014-09-03 2015-08-31 공유 세션 기법 KR102363643B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/476,328 US9495522B2 (en) 2014-09-03 2014-09-03 Shared session techniques
US14/476,328 2014-09-03
PCT/US2015/047635 WO2016036629A1 (en) 2014-09-03 2015-08-31 Shared session techniques

Publications (2)

Publication Number Publication Date
KR20170049513A KR20170049513A (ko) 2017-05-10
KR102363643B1 true KR102363643B1 (ko) 2022-02-15

Family

ID=54145988

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177006078A KR102363643B1 (ko) 2014-09-03 2015-08-31 공유 세션 기법

Country Status (5)

Country Link
US (1) US9495522B2 (ko)
EP (2) EP3189650B1 (ko)
KR (1) KR102363643B1 (ko)
CN (1) CN106796626B (ko)
WO (1) WO2016036629A1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10250594B2 (en) 2015-03-27 2019-04-02 Oracle International Corporation Declarative techniques for transaction-specific authentication
RO131668A2 (ro) * 2015-06-08 2017-01-30 Ixia, A California Corporation Metode, sisteme şi suport citibil pe calculator, pentru partajarea sesiunii de aplicaţie
US10257205B2 (en) * 2015-10-22 2019-04-09 Oracle International Corporation Techniques for authentication level step-down
US10164971B2 (en) 2015-10-22 2018-12-25 Oracle International Corporation End user initiated access server authenticity check
US10225283B2 (en) 2015-10-22 2019-03-05 Oracle International Corporation Protection against end user account locking denial of service (DOS)
CN113918914A (zh) 2015-10-23 2022-01-11 甲骨文国际公司 用于访问管理的无密码认证
US11188626B2 (en) * 2017-01-20 2021-11-30 Google Llc Multi-user login session
FI127994B (en) * 2017-02-15 2019-07-15 Crf Box Oy Method and equipment for reliably commissioning a clinical trial user device
US11979422B1 (en) 2017-11-27 2024-05-07 Lacework, Inc. Elastic privileges in a secure access service edge
US20220232024A1 (en) 2017-11-27 2022-07-21 Lacework, Inc. Detecting deviations from typical user behavior
US10425437B1 (en) 2017-11-27 2019-09-24 Lacework Inc. Extended user session tracking
US12021888B1 (en) 2017-11-27 2024-06-25 Lacework, Inc. Cloud infrastructure entitlement management by a data platform
US11792284B1 (en) 2017-11-27 2023-10-17 Lacework, Inc. Using data transformations for monitoring a cloud compute environment
US10924578B2 (en) * 2019-03-27 2021-02-16 Microsoft Technology Licensing, Llc Late binding of social identity in invitation management systems
US11201955B1 (en) 2019-12-23 2021-12-14 Lacework Inc. Agent networking in a containerized environment
US10873592B1 (en) 2019-12-23 2020-12-22 Lacework Inc. Kubernetes launch graph
US11188571B1 (en) 2019-12-23 2021-11-30 Lacework Inc. Pod communication graph
KR20210086263A (ko) * 2019-12-31 2021-07-08 한국과학기술원 이기종 다중 기기 상호작용을 위한 안전한 사용자 인터페이스 분산 방법
US20210211404A1 (en) * 2020-01-08 2021-07-08 Cisco Technology, Inc. Dhcp snooping with host mobility

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060059335A1 (en) 2004-09-13 2006-03-16 Microsoft Corporation Systems and methods for providing security through sessions
US20070162574A1 (en) 2006-01-06 2007-07-12 Apple Computer, Inc. Data serialization in a user switching environment
US20130073980A1 (en) 2011-09-21 2013-03-21 Sony Corporation, A Japanese Corporation Method and apparatus for establishing user-specific windows on a multi-user interactive table

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7218739B2 (en) 2001-03-09 2007-05-15 Microsoft Corporation Multiple user authentication for online console-based gaming
US7711847B2 (en) 2002-04-26 2010-05-04 Sony Computer Entertainment America Inc. Managing users in a multi-user network game environment
AU2003256867A1 (en) 2002-08-07 2004-02-25 Global Apparel Network, Inc Multi-user collaboration system and method
US7349971B2 (en) 2004-02-05 2008-03-25 Scenera Technologies, Llc System for transmitting data utilizing multiple communication applications simultaneously in response to user request without specifying recipient's communication information
JP4838985B2 (ja) * 2004-04-09 2011-12-14 株式会社リコー 情報処理装置、情報処理方法、情報処理プログラム、及び記録媒体
US7984428B1 (en) * 2004-05-26 2011-07-19 United Business Media Llc Methods and systems for testing evaluation modules
US7730030B1 (en) 2004-08-15 2010-06-01 Yongyong Xu Resource based virtual communities
US20070198744A1 (en) 2005-11-30 2007-08-23 Ava Mobile, Inc. System, method, and computer program product for concurrent collaboration of media
US8087065B2 (en) * 2006-11-17 2011-12-27 Mcafee, Inc. Method and system for implementing mandatory file access control in native discretionary access control environments
WO2009097465A1 (en) * 2008-01-29 2009-08-06 Brinton Michael D Font or keystroke biometrics
US8826375B2 (en) 2008-04-14 2014-09-02 Lookwithus.Com Inc. Rich media collaboration system
US8725791B2 (en) * 2009-05-02 2014-05-13 Citrix Systems, Inc. Methods and systems for providing a consistent profile to overlapping user sessions
US8522308B2 (en) * 2010-02-11 2013-08-27 Verizon Patent And Licensing Inc. Systems and methods for providing a spatial-input-based multi-user shared display experience
US10956867B2 (en) 2010-03-31 2021-03-23 Airstrip Ip Holdings, Llc Multi-factor authentication for remote access of patient data
US20120204116A1 (en) * 2011-02-03 2012-08-09 Sony Corporation Method and apparatus for a multi-user smart display for displaying multiple simultaneous sessions
WO2012154586A1 (en) * 2011-05-06 2012-11-15 Xcelemor, Inc. Computing system with hardware reconfiguration mechanism and method of operation thereof
US8769622B2 (en) 2011-06-30 2014-07-01 International Business Machines Corporation Authentication and authorization methods for cloud computing security
US9053310B2 (en) * 2013-08-08 2015-06-09 Duo Security, Inc. System and method for verifying status of an authentication device through a biometric profile
US9264423B2 (en) * 2014-06-12 2016-02-16 Nadapass, Inc. Password-less authentication system and method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060059335A1 (en) 2004-09-13 2006-03-16 Microsoft Corporation Systems and methods for providing security through sessions
US20070162574A1 (en) 2006-01-06 2007-07-12 Apple Computer, Inc. Data serialization in a user switching environment
US20130073980A1 (en) 2011-09-21 2013-03-21 Sony Corporation, A Japanese Corporation Method and apparatus for establishing user-specific windows on a multi-user interactive table

Also Published As

Publication number Publication date
EP3189650A1 (en) 2017-07-12
US20160063226A1 (en) 2016-03-03
WO2016036629A1 (en) 2016-03-10
EP3189650B1 (en) 2020-11-25
CN106796626A (zh) 2017-05-31
KR20170049513A (ko) 2017-05-10
CN106796626B (zh) 2020-03-03
EP3787261B1 (en) 2024-05-29
US9495522B2 (en) 2016-11-15
EP3787261A1 (en) 2021-03-03

Similar Documents

Publication Publication Date Title
KR102363643B1 (ko) 공유 세션 기법
KR102005458B1 (ko) 공유되는 아이템 계정 선택 기법
US11159626B2 (en) Session transfer between resources
US20150095933A1 (en) Device Pairing
US10516705B2 (en) Device control for a communication session
JP2014531650A (ja) グループ・オプトイン・リンク
US9294460B1 (en) Service credential distribution
EP3261318B1 (en) Method for sharing content using temporary keys and electronic device using the same
US10069819B2 (en) Information processing apparatus, information processing method, and information processing system
US9819712B2 (en) Cloud-based conferencing system
US10182084B2 (en) Cloud-based conferencing system
US10298633B2 (en) Cloud-based conferencing on a mobile device
WO2016138191A1 (en) Permission management for contacts with multiple identities

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