KR20170134493A - 콘텐츠 배치, 스케일링, 및 원격 측정 - Google Patents

콘텐츠 배치, 스케일링, 및 원격 측정 Download PDF

Info

Publication number
KR20170134493A
KR20170134493A KR1020177029729A KR20177029729A KR20170134493A KR 20170134493 A KR20170134493 A KR 20170134493A KR 1020177029729 A KR1020177029729 A KR 1020177029729A KR 20177029729 A KR20177029729 A KR 20177029729A KR 20170134493 A KR20170134493 A KR 20170134493A
Authority
KR
South Korea
Prior art keywords
item
content
information
instance
instances
Prior art date
Application number
KR1020177029729A
Other languages
English (en)
Other versions
KR102073461B1 (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
Priority claimed from US14/660,850 external-priority patent/US20160277484A1/en
Priority claimed from US14/660,865 external-priority patent/US20160277508A1/en
Priority claimed from US14/660,821 external-priority patent/US10463957B2/en
Application filed by 아마존 테크놀로지스, 인크. filed Critical 아마존 테크놀로지스, 인크.
Publication of KR20170134493A publication Critical patent/KR20170134493A/ko
Application granted granted Critical
Publication of KR102073461B1 publication Critical patent/KR102073461B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • G07F17/3225Data transfer within a gaming system, e.g. data sent between gaming machines and users
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • G07F17/326Game play aspects of gaming systems
    • G07F17/3272Games involving multiple players
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

콘텐츠 배치, 스케일링 및 원격 측정을 위한 기술이 본원에서 설명된다. 일단 배치를 위해 콘텐츠 아이템이 액세스 가능하게 만들어지면, 콘텐츠 아이템의 하나 이상의 인스턴스가 이미지로서 가상 머신 인스턴스 상에 설치될 수도 있다. 그 다음, 동일한 가상 머신 인스턴스 상에서 그리고/또는 임의의 수의 추가적인 가상 머신 인스턴스 상으로 이미지를 복사하는 것에 의해, 콘텐츠 아이템의 추가적인 인스턴스가 론칭될 수도 있다. 콘텐츠 아이템의 하나 이상의 인스턴스는 다수의 동시적으로 할당된 사용자 세션과 함께 실행하도록 구성될 수도 있다. 점유된 사용자 세션의 수, 점유되지 않은 사용자 세션의 수, 콘텐츠 아이템 인스턴스 지속 기간, 메모리 사용량, 및 등등과 같은, 콘텐츠 아이템 인스턴스와 관련되는 정보가 수집될 수도 있다. 이 정보는, 몇몇 경우에, 인가된 사용자를 적절한 콘텐츠 아이템 인스턴스에 매치하고 할당하기 위해 사용될 수도 있다.

Description

콘텐츠 배치, 스케일링, 및 원격 측정
관련 출원에 대한 교차 참조
본 출원은 2015년 3월 17일자로 출원된 미국 특허 출원 제14/660,850호; 2015년 3월 17일자로 출원된 미국 특허 출원 제14/660,821호; 및 2015년 3월 17일자로 출원된 미국 특허 출원 제14/660,865호의 이익을 주장하는데, 이들 출원의 개시는 참조에 의해 그 전체가 본원에 통합된다.
근년에, 전자적으로 제시되는 콘텐츠의 사용이 점점 더 인기를 얻고 있고 널리 보급되고 있다. 몇몇 예에서, 멀티 플레이어 게임과 같은 소정의 전자적으로 제시되는 콘텐츠는 많은 수의 상이한 사용자에 의해 동시적으로 액세스되고 사용될 수도 있다. 사용자가 콘텐츠를 쉽게 이용할 수도 있도록 하기 위해, 콘텐츠 개발자는, 종종, 강요되지 않는다면 투자에 관심을 가지지 않을 서버 배치 및 관리 기술의 전문가가 되도록 강요된다. 특히, 많은 콘텐츠 개발자는 개발 중인 콘텐츠의 창조적 양태에 집중하는 것을 선호할 것이다. 많은 콘텐츠 개발자는, 서버 배치 및 관리를, 콘텐츠를 만들기 위해, 콘텐츠를 재미있게 만들기 위해, 그리고 콘텐츠를 제 시간에 출시하기 위해 노력하는 그들의 핵심 비즈니스로부터의 일탈로서 파악한다. 서버 기반 배치 및 관리 시스템에 대한 전문 지식을 얻는 데 필요한 시간에 더하여, 많은 콘텐츠 개발자는, 종종, 이들 시스템의 다른 피쳐(feature)에 만족하지 못한다. 예를 들면, 많은 콘텐츠 개발자는, 종종, 그들의 콘텐츠 조작 및 사용과 관련하여 이러한 시스템으로부터 수신되는 피드백의 레벨에 만족하지 못한다. 이러한 피드백의 가용성은 종종 제한될 수도 있고 얻기 어려울 수도 있다.
하기의 상세한 설명은, 첨부된 도면과 연계하여 판독될 때 더 잘 이해될 수도 있다. 설명의 목적을 위해, 본 개시의 다양한 양태의 예시적인 실시형태가 도면에서 도시되지만; 그러나, 본 발명은 개시되는 특정한 방법 및 수단으로 제한되지는 않는다.
도 1은 본 개시에 따라 사용될 수도 있는 예시적인 콘텐츠 배치(content deployment), 스케일링(scaling) 및 원격 측정 시스템(telemetry system)을 예시하는 도면이다.
도 2는 본 개시에 따라 사용될 수도 있는 예시적인 콘텐츠 스케일링 및 실행 시스템을 나타내는 도면이다.
도 3은 본 개시에 따라 사용될 수도 있는 예시적인 원격 측정 정보 라우팅 및 프로세싱 시스템을 예시하는 도면이다.
도 4는 본 개시에 따라 사용될 수도 있는 예시적인 콘텐츠 배치 및 스케일링 프로세스를 예시하는 도면이다.
도 5는 본 발명에 따른 예시적인 프로세스 콘텐츠 실행을 예시하는 도면이다.
도 6은 본 개시에 따라 사용될 수도 있는 예시적인 원격 측정 정보 라우팅 프로세스를 예시하는 도면이다.
도 7은 본 개시에 따라 사용될 수도 있는 예시적인 컴퓨팅 시스템을 예시하는 도면이다.
콘텐츠 배치, 스케일링 및 원격 측정을 위한 기술이 본원에서 설명된다. 몇몇 예에서, 콘텐츠 개발자 또는 다른 당사자(party)는 배치를 위한 다양한 타입의 전자적으로 제시되는 콘텐츠 아이템, 예컨대, 비디오 게임 및 다른 애플리케이션을 사용자에게 제공할 수도 있다. 몇몇 경우에, 테스트되고 있는 콘텐츠 및/또는 완전히 개발된 콘텐츠와 같은 상이한 버전의 콘텐츠가 동일하거나 다른 시간에 제공될 수도 있고 이용 가능하게 만들어질 수도 있다. 몇몇 예에서, 콘텐츠는, 소프트웨어 개발 키트(software development kit: SDK) 또는, 콘텐츠 아이템 인스턴스 정보 서비스, 인스턴스 인터페이스, 및/또는 콘텐츠 실행 컴포넌트와 같은 콘텐츠 아이템의 배치된 인스턴스를 호스팅할 수도 있는 또는 다르게는 그 콘텐츠 아이템의 배치된 인스턴스와 상호 작용할 수도 있는 다양한 백엔드 또는 다른 서비스 또는 컴포넌트와 관련되는 및/또는 통합되는 다른 엘리먼트를 사용하여 생성될 수도 있는데, 다른 엘리먼트의 각각은 하기에서 상세히 설명된다. 이들 예에서, SDK 또는 다른 엘리먼트는, 예컨대 콘텐츠가 멀티 플레이어 비디오 게이밍 또는 다른 멀티 사용자 환경과 더욱 효율적으로 상호 작용하는 것을 허용하는 것에 의해, 예를 들면, 콘텐츠의 수용(ingestion), 구성, 프로비저닝 및 배치가 더욱 쉽고 빠르게 달성되는 것을 허용할 수도 있는 개발자에 의해 생성되는 콘텐츠에 내장되는 코드 및 다른 기능성(functionality)을 제공할 수도 있다. 예를 들면, 콘텐츠를 생성하기 위해 사용되는 SDK는, 한 명 이상의 사용자에 대한 새로운 사용자 세션의 구성 및, 점유된 사용자 세션의 수, 점유되지 않은 사용자 세션의 수, 콘텐츠 아이템 인스턴스 지속 기간, 메모리 사용량, 및 등등과 같은, 콘텐츠 아이템 인스턴스를 실행하는 것에 관한 정보의 수집을 지원할 수도 있다.
콘텐츠 그 자체에 더하여, 개발자 및 다른 당사자는 또한, 콘텐츠를 사용하도록 인가되는 다양한 사용자의 신원(identity)과 관련되는 정보 및, 몇몇 경우에서는, 다양한 사용자에 대한 각각의 콘텐츠 자격 부여(content entitlement)를 제공할 수도 있다. 예를 들면, 다른 빌드 및/또는 버전의 콘텐츠가 이용 가능한 경우, 상이한 인가된 사용자는 상이한 빌드 및/또는 버전에 대해 지정될 수도 있다. 일단 배치를 위해 콘텐츠 아이템이 액세스 가능하게 만들어지면, 콘텐츠 아이템의 하나 이상의 인스턴스가 이미지로서 가상 머신 인스턴스 상에 설치될 수도 있다. 그 다음, 동일한 가상 머신 인스턴스 상에서 그리고/또는 임의의 수의 추가적인 가상 머신 인스턴스 상으로 이미지를 복사하는 것에 의해, 콘텐츠 아이템의 추가적인 인스턴스가 론칭될 수도 있다. 이들 및 다른 기술을 통해, 콘텐츠 아이템은 신속하고, 효율적이며, 신뢰성 있고 안전한 방식으로 많은 수의 사용자에게 이용 가능하게 만들어질 수도 있다.
몇몇 예에서, 배치된 콘텐츠는 다수의 상이한 사용자가 콘텐츠를 제어하는 것 및 콘텐츠와 상호 작용하는 것을 허용하도록 설계될 수도 있는데, 이러한 것은 멀티 플레이어 비디오 게임 또는 다른 멀티 사용자 애플리케이션에서 발생할 수도 있다. 이러한 멀티 사용자 제어 및 상호 작용을 허용하기 위해, 개시된 기술은 사용자 세션 및 콘텐츠 아이템 인스턴스와 같은 개념을 활용할 수도 있다. 몇몇 예에서, 콘텐츠 아이템의 하나 이상의 인스턴스는 다수의 동시적으로 할당된 사용자 세션과 함께 실행하도록 구성 가능할 수도 있다. 이것은, 예를 들면, 다수의 사용자가 서로 함께 또는 서로 적대하여 플레이하는 것, 또는 다르게는 콘텐츠 아이템 인스턴스를 실행하는 것으로부터 출력을 수신하도록 그리고 입력을 제공하도록 협력하는 것을 허용할 수도 있다. 각각의 콘텐츠 아이템 인스턴스는, 몇몇 경우에, 이용 가능한 사용자 세션의 관련된 양을 가질 수도 있다. 몇몇 예에서, 점유된 사용자 세션의 수, 점유되지 않은 사용자 세션의 수, 콘텐츠 아이템 인스턴스 지속 기간, 메모리 사용량, 및 등등과 같은, 콘텐츠 아이템 인스턴스와 관련되는 정보가 수집될 수도 있다. 이 정보는, 몇몇 경우에, 인가된 사용자를 적절한 콘텐츠 아이템 인스턴스에 매치하고 할당하기 위해 사용될 수도 있다. 예를 들면, 몇몇 경우에, 인가된 사용자가 시스템에 연결되는 경우, 사용자는, 바람직한 줄거리(plot line), 스토리 아크(plot line), 가상 위치, 레벨, 모드, 캐릭터, 무기, 및 등등과 같은, 소정의 사용자 콘텐츠 선호도를 나타낼 수도 있다. 이 선호도 정보는 적어도 하나의 점유되지 않은 사용자 세션을 갖는 특정한 콘텐츠 아이템 인스턴스에 사용자를 매치하기 위해 사용될 수도 있다. 몇몇 예에서, 이러한 콘텐츠 아이템 인스턴스가 이용 가능하지 않으면, 사용자의 선호도를 더 잘 수용할 수도 있는 추가적인 콘텐츠 아이템 인스턴스가 개시될 수도 있다.
상기에서 기재되어 있는 바와 같이, 몇몇 예에서, 점유된 사용자 세션의 수, 점유되지 않은 사용자 세션의 수, 콘텐츠 아이템 인스턴스 지속 기간, 메모리 사용량, 및 등등과 같은, 콘텐츠 아이템 인스턴스와 관련되는 정보가 수집될 수도 있다. 몇몇 경우에, 이 정보는 하나 이상의 이용 가능한 수신측으로 정보를 라우팅하는 라우팅 기능에 주기적으로 제공될 수도 있다. 몇몇 예에서, 이용 가능한 수신측은 콘텐츠 아이템 인스턴스 정보 서비스, 콘텐츠 아이템 플릿(fleet) 정보 서비스, 이력 정보 서비스, 및 다른 것들과 관련될 수도 있다. 콘텐츠 아이템 인스턴스 정보 서비스는, 예를 들면, 콘텐츠 아이템 인스턴스에 대한 사용자 세션의 매칭 및 할당, 새로운 콘텐츠 아이템 인스턴스의 론칭, 및 콘텐츠 아이템 인스턴스 레벨 피드백 및 메트릭에 대한 정보를 콘텐츠 개발자 및 다른 당사자에게 제공할 수도 있다. 콘텐츠 아이템 플릿 정보 서비스는, 예를 들면, 콘텐츠 아이템 플릿 레벨 피드백 및 메트릭을 개발자 및 다른 당사자에게 제공할 수도 있다. 콘텐츠 아이템 플릿은, 동일한 또는 관련된 콘텐츠 아이템의 인스턴스의 그룹, 예컨대 동일한 버전의 콘텐츠 아이템을 모두 실행하는 콘텐츠 아이템 인스턴스의 그룹이다. 이력 정보 서비스는, 예를 들면, 이력 피드백 및 메트릭을 개발자 및 다른 당사자에게 제공할 수도 있다. 몇몇 예에서, 콘텐츠 아이템 인스턴스 정보 서비스, 콘텐츠 아이템 플릿 정보 서비스, 및 이력 정보 서비스에 대한 라우팅 기능 및/또는 프로세싱 기능은, 라우팅 및/또는 프로세싱을 위한 원격 측정 정보의 수신과 같은 이벤트에 적어도 부분적으로 기초하여 코드를 실행하는 분산 컴퓨팅 기반(예를 들면, 클라우드 기반) 기능일 수도 있다. 일반적으로, 이러한 클라우드 기반 기능, 및 이러한 기능을 제공하는 서비스는, 이벤트에 응답하여 코드를 실행할 수 있고 컴퓨팅 리소스를 자동적으로 관리할 수 있다. 또한, 이러한 클라우드 기반 기능 및 서비스는 코드 실행을 시작할 수도 있거나 또는 컴퓨팅 리소스를 적은 양의 시간 내에 트리거할 수도 있으며, 이들 컴퓨팅 리소스는, 일단 코드가 실행되면, 제거될 수 있다.
본 개시에 따라 사용될 수도 있는 예시적인 콘텐츠 배치, 스케일링 및 원격 측정 시스템(150)의 도면이 도 1에서 도시된다. 도시되는 바와 같이, 콘텐츠 개발자 컴퓨트 노드(100)는, 예를 들면, 콘텐츠 개발자 또는 다른 당사자에 의해 동작되는 다양한 인터페이스, 콘솔, 및/또는 대시 보드를 포함할 수도 있다. 사용자 컴퓨트 노드(user compute node)(110)는, 예를 들면, 인터넷과 같은 하나 이상의 광역 네트워크(wide area network: WAN) 및/또는 하나 이상의 근거리 통신망(local area network: LAN)을 비롯한 하나 이상의 네트워크를 사용하여, 신원 및 자격 부여 서비스(content item instance information service)(105), 콘텐츠 아이템 인스턴스 정보 서비스(115), 및/또는 원격 측정 컴포넌트(125)와 통신할 수도 있다. 이해되어야 하는 바와 같이, 비록 단일의 개발자 컴퓨트 노드(100)만이 도 1에서 도시되지만, 시스템(150)은 임의의 수의 상이한 콘텐츠 아이템을 배치하는 임의의 수의 상이한 개발자 및 다른 당사자를 포함할 수도 있다. 몇몇 경우에, 콘텐츠 개발자 컴퓨트 노드(100)는 하나 이상의 통합 개발 환경(Integrated Development Environment: IDE) 애플리케이션, 또는 그 일부를 실행하여 콘텐츠 개발을 지원할 수도 있다. 일반적으로, 이하에서 더욱 상세히 설명되는 바와 같이, 콘텐츠 개발자 컴퓨트 노드(100)는, 예를 들면, 개발자가 콘텐츠 아이템을 설계 및 개발하는 것, 배치를 위해 콘텐츠 아이템에 대한 액세스를 제공하는 것, 사용자 신원 및/또는 자격 부여(entitlement) 정보를 제공하는 것, 콘텐츠 아이템 인스턴스, 콘텐츠 아이템 플릿, 및 이력 정보와 관련되는 피드백 및 메트릭을 모니터링하고 획득하는 것, 및 다른 동작을 허용할 수도 있다. 또한 이하에서 더욱 상세히 설명되는 바와 같이, 개발자가 소정의 콘텐츠 아이템을 배치할 준비가 되면, 콘텐츠에 액세스하기 위한 정보는, 예를 들면, 다양한 사용자가 액세스할 수도 있게 만들어지는 콘텐츠 아이템의 인스턴스를 실행하기 위한 다양한 동작을 수행할 수도 있는 콘텐츠 실행 컴포넌트(120)로 제공될 수도 있다.
몇몇 예에서, 콘텐츠의 개발 및 제공에 더하여, 개발자 및 다른 당사자는 또한, 제공된 콘텐츠에 액세스할 다양한 사용자에 대한 신원 및/또는 자격 부여 정보를 제공할 수도 있다. 특히, 개발자 컴퓨트 노드(100)는, 때때로, 신원 및 자격 부여 서비스(105)와 상호 작용하여 이 신원 및/또는 자격 부여 정보를 제공할 수도 있다. 다른 예에서, 정보는 다른 당사자에 의해 신원 및 자격 부여 서비스(105)에 제공될 수도 있다. 몇몇 경우에, 개발자 또는 다른 당사자는, 하나 이상의 콘텐츠 아이템에 액세스할 수도 있는 인가된 사용자의 표시를 제공하는 것에 의해 ID 풀(identity pool)을 구성할 수도 있다. 몇몇 예에서, 신원 및 자격 부여 서비스(105)는, 다양한 사용자의 신원을 인증하기 위한, 사용자명, 패스워드, 및 등등과 같은 신원 인증 정보(identity authentication information)를 생성할 수도 있거나 또는 수신할 수도 있다. 사용자 신원 및 사용자 신원의 관련된 인증 정보는, 예를 들면, 신원 정보(107)에 저장될 수도 있다. 또한, 몇몇 예에서, 개발자 또는 다른 당사자는, 각각의 인가된 사용자가 상호 작용하도록 자격을 부여 받는 콘텐츠 아이템을 나타낼 수도 있는 자격 부여 정보(106)를 제공할 수도 있다. 몇몇 예에서, 소정의 사용자는 테스트 버전, 또는 완전히 개발된 버전, 사용자가 지불한 또는 등록한 소정의 버전, 또는 임의의 다른 타입의 콘텐츠에만 액세스하도록 허용될 수도 있다.
사용자 컴퓨트 노드(110)는, 특정한 콘텐츠 아이템 인스턴스와의 상호 작용을 위한 사용자 세션과 같은 콘텐츠에 대한 액세스를 요청하기 위해 사용자에 의해 활용될 수도 있다. 사용자 컴퓨트 노드(110)는, 예를 들면, 인터넷과 같은 하나 이상의 광역 네트워크(WAN) 및/또는 하나 이상의 근거리 통신망(LAN)을 비롯한 하나 이상의 네트워크를 사용하여, 신원 및 자격 부여 서비스(105), 콘텐츠 아이템 인스턴스 정보 서비스(115), 및/또는 콘텐츠 실행 컴포넌트(120)와 통신할 수도 있다. 이해되어야 하는 바와 같이, 비록 단일의 사용자 컴퓨트 노드(110)만이 도 1에서 도시되지만, 시스템(150)은 동일한 또는 상이한 콘텐츠에 액세스하는 임의의 수의 상이한 사용자를 포함할 수도 있다. 몇몇 경우에, 사용자가 콘텐츠에 대한 액세스를 요청하기 위해, 사용자가 시스템(150)에 의해 배치되는 콘텐츠에 액세스하도록 인가되는지의 여부의 결정이 이루어질 수도 있다. 몇몇 예에서, 시스템 인터페이스(111)는, 제공된 사용자 신원 인증 정보를, 신원 정보(107)에 저장되어 있는 사용자에 대한 신원 인증 정보에 매치시키려고 시도할 수도 있는 신원 및 자격 부여 서비스(105)에, 사용자에 대한 신원 인증 정보를 제공할 수도 있다. 매치가 결정되지 않으면, 사용자는, 예를 들면, 임의의 콘텐츠에 대한 액세스가 거부될 수도 있고, 및/또는 콘텐츠에 대한 액세스를 위해 등록, 지불 및/또는 가입하도록 재촉 받을 수도 있고, 및/또는 이들 동작을 수행하기 위한 다양한 서비스로 리다이렉트될 수도 있다. 한편, 사용자의 제공된 신원 인증이 저장된 신원 인증 정보에 매치하면, 사용자의 신원이 인증될 수도 있고, 사용자는 시스템(150)과 추가로 상호 작용하도록 그리고 콘텐츠에 대한 액세스를 요청하도록 허용될 수도 있다.
그 다음, 사용자 컴퓨트 노드(110)의 콘텐츠 클라이언트(112)는 콘텐츠 아이템 인스턴스 정보 서비스(115)와 통신하여 사용자에 관한 정보를 콘텐츠 아이템 인스턴스 정보 서비스(115)에 제공할 수도 있다. 그 다음, 콘텐츠 아이템 인스턴스 정보 서비스(115)는 신원 및 자격 부여 서비스(105)와 통신하여, 자격 부여 정보(106)에 적어도 부분적으로 기초하여, 액세스에 대해 사용자가 인가 받는 그리고 액세스하도록 사용자가 자격을 부여 받는 콘텐츠를 결정할 수도 있다. 이하에서 더욱 상세히 설명되는 바와 같이, 그 다음, 사용자는 사용자가 액세스의 자격을 부여 받은 선택된 콘텐츠 아이템에 대한 액세스를 요청할 수도 있고, 콘텐츠 아이템 인스턴스 정보 서비스(115)는, 사용자에 대한 사용자 세션을, 콘텐츠 실행 컴포넌트(120) 내에서 실행하는 선택된 콘텐츠 아이템의 특정한 인스턴스에 매치 및 할당할 수도 있다. 이 할당 정보는 콘텐츠 실행 컴포넌트(120)로 전달될 수도 있는데, 콘텐츠 실행 컴포넌트는 콘텐츠 클라이언트(112)와 자신의 할당 매치된 콘텐츠 아이템 인스턴스 사이의 통신을 확립할 수도 있다.
콘텐츠의 스케일링 및 실행에 더하여, 콘텐츠 실행 컴포넌트(120)는 또한, 점유된 사용자 세션의 수, 점유되지 않은 사용자 세션의 수, 콘텐츠 아이템 인스턴스 지속 기간, 메모리 사용량, 및 등등과 같은, 콘텐츠 아이템 인스턴스를 실행하는 것에 관한 다양한 원격 측정 정보를 수집할 수도 있다. 콘텐츠 실행 컴포넌트(120)는 이 수집된 원격 측정 정보를 원격 측정 컴포넌트(125)로 제공할 수도 있는데, 원격 측정 컴포넌트는, 이하에서 더욱 상세히 설명되는 바와 같이, 원격 측정 데이터를 라우팅 및 프로세싱할 수도 있다. 예를 들면, 원격 측정 컴포넌트는 콘텐츠 아이템 인스턴스 정보를 콘텐츠 아이템 인스턴스 정보 서비스(115)로 제공할 수도 있다. 이 콘텐츠 아이템 인스턴스 정보는, 예를 들면, 콘텐츠 아이템 인스턴스에 대한 사용자 세션의 매칭 및 할당, 새로운 콘텐츠 아이템 인스턴스의 론칭, 및 콘텐츠 아이템 인스턴스 레벨 피드백 및 메트릭을 콘텐츠 개발자 및 다른 당사자에게 가능하게 할 수도 있다. 콘텐츠 아이템 인스턴스 정보 서비스(115)에 더하여, 원격 측정 정보는 또한, 콘텐츠 아이템 플릿 정보 서비스 및 이력 정보 서비스와 같은 다른 서비스에 제공될 수도 있다. 이들 및 다른 원격 측정 데이터 서비스는 도 3을 참조하여 이하에서 더욱 상세하게 설명된다.
도 2는, 본 개시에 따라 사용될 수도 있는 예시적인 콘텐츠 스케일링 및 실행 시스템을 도시하는 도면이다. 도 2에서 도시되는 바와 같이, (도 1에서 또한 도시되는) 콘텐츠 실행 컴포넌트(120)는, 배치된 콘텐츠를 스케일링하기 위한 다양한 동작을 수행할 수도 있는 스케일링 컴포넌트(230)를 포함한다. 특히, 콘텐츠 아이템이 시스템(150)을 사용하여 배치할 준비가 되면, 콘텐츠 아이템이 배치 준비가 되었음을 나타내는 그리고 위치 및/또는 어드레스 정보와 같은 콘텐츠에 액세스하기 위한 정보를 제공하는 메시지가 개발자 컴퓨트 노드(100)를 통해 전송될 수도 있다. 몇몇 예에서, 개발자는 콘텐츠 아이템 플릿에 대한 이름, 개발 단계, 및 콘텐츠 아이템의 설명과 같은 추가적인 정보를 제공할 수도 있다. 액세스 정보, 및, 몇몇 경우에서는, 추가적인 정보는 콘텐츠 스케일링 컴포넌트(230)에 제공될 수도 있는데, 콘텐츠 스케일링 컴포넌트는 콘텐츠 아이템의 하나 이상의 인스턴스를 이미지로서 가상 머신 인스턴스 상에 설치하는 명령어를 발행할 수도 있다. 이하에서 더욱 상세히 설명되는 바와 같이, 그 다음, 콘텐츠 아이템의 추가적인 인스턴스는 동일한 가상 머신 인스턴스 상에서 그리고/또는 임의의 수의 추가적인 가상 머신 인스턴스 상으로 이미지를 복사하는 것에 의해 론칭될 수도 있다.
배치된 콘텐츠 아이템에 대한 콘텐츠 아이템 인스턴스의 그룹은 콘텐츠 아이템 플릿으로 칭해진다. 도 2에서, 콘텐츠 실행 컴포넌트(120)는 예시적인 콘텐츠 아이템 플릿(210)을 실행한다. 이해되어야 하는 바와 같이, 비록 단지 하나의 콘텐츠 아이템 플릿(210)만이 도 2에 도시되지만, 콘텐츠 실행 컴포넌트(120)는 동일한 또는 상이한 시간에 임의의 수의 상이한 콘텐츠 아이템 플릿을 실행할 수도 있다. 도 2의 특정한 예에서, 콘텐츠 아이템 플릿(210)은, 세 개의 콘텐츠 아이템 인스턴스를 각각 실행하는 두 개의 가상 머신 인스턴스(220A 및 220N)를 포함한다. 특히, 가상 머신 인스턴스(220A)는 콘텐츠 아이템 인스턴스(201A-N)를 실행하고, 한편 가상 머신 인스턴스(220N)는 콘텐츠 아이템 인스턴스(221A-N)를 실행한다. 그러나, 개시된 기술에 따른 콘텐츠 아이템 플릿은, 임의의 수의 상이한 콘텐츠 아이템 인스턴스를 각각 실행하는 임의의 수의 가상 머신 인스턴스를 포함할 수도 있다는 것을 유의한다. 몇몇 예에서, 콘텐츠 아이템 인스턴스(201A-N 및 221A-N) 중 하나 이상, 및, 몇몇 경우에서는, 콘텐츠 아이템 인스턴스(201A-N 및 221A-N)의 모두가 다수의 동시적으로 할당된 사용자 세션을 가지고 실행하도록 구성 가능할 수도 있다. 이것은, 예를 들면, 다수의 사용자가 서로 함께 또는 서로 적대하여 플레이하는 것, 또는 다르게는 단일의 콘텐츠 아이템 인스턴스 내에서 협력하는 것을 허용할 수도 있는데, 이러한 것은 멀티 플레이어 비디오 게임 또는 다른 멀티 사용자 애플리케이션에서 발생할 수도 있다.
몇몇 예에서, 각각의 콘텐츠 아이템 인스턴스(201A-N 및 221A-N)는 자신의 할당된 사용자 세션으로부터 제어 입력(예를 들면, 캐릭터 움직임, 무기 발사, 메뉴 선택, 등등)과 같은 입력을 수신할 수도 있다. 또한, 몇몇 예에서, 그 다음, 각각의 콘텐츠 아이템 인스턴스(201A-N 및 221A-N)는, 상태 데이터 업데이트, 이벤트 데이터 업데이트 및 다른 정보와 같은 콘텐츠 정보를 할당된 사용자 세션에 대한 사용자 컴퓨트 노드로 전송할 수도 있다. 사용자 컴퓨트 노드는 이 데이터를 사용하여 그들 각각의 콘텐츠 컴퓨트 노드에서 콘텐츠를 렌더링하고 제시할 수도 있다. 몇몇 예에서, 각각의 사용자 노드는 콘텐츠 아이템과 관련되는 그래픽 데이터를 렌더링하기 위한 하나 이상의 그래픽 프로세싱 유닛(graphics processing unit: GPU)을 포함할 수도 있다.
몇몇 다른 예에서, 콘텐츠는 콘텐츠 아이템 인스턴스(201A-N 및 221A-N)에 의해 생성되는 및/또는 유지되는 콘텐츠 정보에 기초하여 콘텐츠 실행 컴포넌트(120)에 의해 렌더링될 수도 있다. 이들 예에서, 콘텐츠 아이템 인스턴스(201A-N 및 221A-N)는, 몇몇 경우에, 각각이 하나 이상의 GPU에 액세스할 수도 있다. 그 다음, 렌더링된 콘텐츠는, 콘텐츠 아이템 인스턴스(201A-N 및 221A-N)에 의해, 할당된 사용자 세션에 대한 사용자 컴퓨트 노드로 전송될 수도 있다.
도 2에서 도시되는 바와 같이, 각각의 콘텐츠 아이템 인스턴스(201A-N 및 221A-N)는 각각의 인스턴스 인터페이스(202A-N 및 222A-N)를 포함한다. 몇몇 예에서, 각각의 인스턴스 인터페이스(202A-N 및 222A-N)는 소프트웨어 개발 키트(SDK)와 관련될 수도 있고 및/또는 소프트웨어 개발 키트(SDK)를 사용하여 구현될 수도 있고, 콘텐츠 아이템 인스턴스의 구성, 콘텐츠 아이템 인스턴스에서의 사용자 세션의 개시, 및 콘텐츠 아이템 인스턴스로부터의 원격 측정 정보와 같은 정보의 수집을 가능하게 하는 것을 지원할 수도 있다. 예를 들면, 몇몇 경우에, 하나 이상의 SDK와 같은, 인스턴스 인터페이스(202A-N 및 222A-N)와 관련되는 다양한 명령어가 개발자에게 노출 및/또는 제공될 수도 있다. 이들 명령어는 콘텐츠 아이템 인스턴스(201A-N 및 221A-N)가 상기에서 설명되는 태스크 및 어쩌면 다른 태스크를 수행하는 것을 가능하게 하는 것을 지원할 수도 있다. 개발자는, 그 다음, 이들 명령어를 임베딩할 수도 있거나 또는 다르게는 이들 명령어를, 배치를 위해 액세스 가능하게 만들어질 수도 있는 콘텐츠 아이템과 관련시킬 수도 있다. 인스턴스 인터페이스(202A-N 및 222A-N)에 의해 제공되는 원격 측정 정보는, 예를 들면, 점유된 사용자 세션의 수, 점유되지 않은 사용자 세션의 수, 콘텐츠 아이템 인스턴스 지속 기간, 메모리 사용량, 및 등등과 같은, 콘텐츠 아이템 인스턴스를 실행하는 것에 관한 정보를 포함할 수도 있다.
도 2에서 또한 도시되는 바와 같이, 인스턴스 인터페이스(202A-N)는 가상 머신 인스턴스(220A)에 대한 프록시 컴포넌트(203)와 통신할 수도 있고, 한편 인스턴스 인터페이스(222A-N)는 가상 머신 인스턴스(220N)에 대한 프록시 컴포넌트(223)와 통신할 수도 있다. 프록시 컴포넌트(203 및 223)는 일반적으로 콘텐츠 아이템(202A-N 및 222A-N)과 스케일링 컴포넌트(230) 및 원격 측정 도착지(telemetry landing)(301)와 같은 가상 머신 인스턴스(220A-N)의 외부 컴포넌트 사이의 정보 및 커맨드의 교환을 허용할 수도 있다. 특히, 몇몇 예에서, 프록시 컴포넌트(203, 223)는, 콘텐츠 아이템 인스턴스를 론칭하기 위한 커맨드 및 특정한 콘텐츠 아이템 인스턴스에 사용자 세션을 추가하기 위한 커맨드와 같은 커맨드를 스케일링 컴포넌트(230)로부터 수신할 수도 있다. 몇몇 예에서, 프록시 컴포넌트(203 및 223)는 또한, 콘텐츠 아이템 인스턴스를 실행하는 것에 관한 정보를 스케일링 컴포넌트(230) 및/또는 원격 측정 도착지(301)에 제공할 수도 있다. 프록시 컴포넌트(203 및 223)에 의해 제공되는 정보는, 예를 들면, 인스턴스 인터페이스(202A-N 및 222A-N)에 의해 수집되는 정보 중 임의의 것, 예컨대 상기에서 설명되는 원격 측정 정보 또는 다른 관련 정보 중 임의의 것을 포함할 수도 있다. 프록시 컴포넌트(203, 223)는, 임의의 소망하는 간격에서, 예컨대 규칙적인 반복 간격에서(예를 들면 매 분마다 또는 매 5분마다), 특정한 이벤트 또는 조건에 응답하여, 연속적인 또는 간헐적인 스트림에서, 또는 이들 또는 다른 기술의 임의의 조합을 사용하여 콘텐츠 아이템 인스턴스 정보를 제공할 수도 있다.
몇몇 예에서, 스케일링 컴포넌트(230)는, 예를 들면, 예컨대 상기에서 설명되는 프록시 컴포넌트(203, 223)에 의해 제공되는 정보에 기초하여 콘텐츠 아이템 플릿(210)를 모니터링할 수도 있다. 몇몇 경우에, 스케일링 컴포넌트(230)는, 추가적인 가상 머신 인스턴스 및/또는 콘텐츠 아이템 인스턴스를 콘텐츠 아이템 플릿(210)에 할당하는 것에 의해 및/또는 현존하는 가상 머신 인스턴스 및/또는 콘텐츠 아이템 인스턴스를 콘텐츠 아이템 플릿(210)으로부터 할당 해제하는 것에 의해 콘텐츠 아이템 플릿(210)을 자동적으로 스케일링하기 위해 이 정보를 사용할 수도 있다. 몇몇 예에서, 소정의 구성 가능한 조건은, 스케일링 컴포넌트(230)로 하여금 추가적인 가상 머신 인스턴스 및/또는 콘텐츠 아이템 인스턴스를 콘텐츠 아이템 플릿에 할당하게 할 수도 있다. 이들 조건은, 예를 들면, 플릿 내의 모든 콘텐츠 아이템 인스턴스에 대한 점유되지 않은 사용자 세션의 총 수 및/또는 평균 수가 특정한 양을 충족했다는 것 또는 그 특정한 양 아래로 떨어졌다는 것을 결정하는 것, 플릿 내의 하나 이상의 개개의 콘텐츠 아이템 인스턴스에 대한 점유되지 않은 사용자 세션의 총 수가 특정한 양을 충족했다는 것 또는 그 특정한 양 아래로 떨어졌다는 것을 결정하는 것, 및/또는 다른 조건을 포함할 수도 있다. 또한, 몇몇 예에서, 스케일링 컴포넌트(230)는, 콘텐츠 아이템 플릿의 특정한 서브셋, 예컨대 특정한 콘텐츠 속성(예를 들면, 모드, 가상 위치, 캐릭터, 무기, 줄거리, 스토리 아크, 등등)을 갖는 콘텐츠 아이템 인스턴스의 서브셋이 상기에서 설명되는 예시적인 할당 조건 또는 다른 조건 중 임의의 것을 충족한다는 결정에 기초하여, 추가적인 가상 머신 인스턴스 및/또는 콘텐츠 아이템 인스턴스를 콘텐츠 아이템 플릿에 할당할 수도 있다.
또한, 몇몇 예에서, 소정의 구성 가능한 조건은, 스케일링 컴포넌트(230)로 하여금 가상 머신 인스턴스 및/또는 콘텐츠 아이템 인스턴스를 콘텐츠 아이템 플릿으로부터 할당 해제하게 할 수도 있다. 이들 조건은, 예를 들면, 플릿 내의 모든 콘텐츠 아이템 인스턴스에 대한 점유되지 않은 사용자 세션의 총 수 및/또는 평균 수가 특정한 양을 충족했다는 것 또는 그 특정한 양을 초과했다는 것을 결정하는 것, 플릿 내의 하나 이상의 개개의 콘텐츠 아이템 인스턴스에 대한 점유되지 않은 사용자 세션의 총 수가 특정한 양을 충족했다는 것 또는 그 특정한 양을 초과했다는 것을 결정하는 것, 및/또는 다른 조건을 포함할 수도 있다. 또한, 몇몇 예에서, 스케일링 컴포넌트(230)는, 콘텐츠 아이템 플릿의 특정한 서브셋, 예컨대 특정한 콘텐츠 속성(예를 들면, 모드, 가상 위치, 캐릭터, 무기, 줄거리, 스토리 아크, 등등)을 갖는 콘텐츠 아이템 인스턴스의 서브셋이 상기에서 설명되는 예시적인 할당 해제 조건 또는 다른 조건 중 임의의 것을 충족한다는 결정에 기초하여, 가상 머신 인스턴스 및/또는 콘텐츠 아이템 인스턴스를 콘텐츠 아이템 플릿으로부터 할당 해제할 수도 있다. 그 다음, 할당 해제된 가상 머신은 결국에는 종료될 수도 있고 및/또는 용도가 변경될(re-purposed) 수도 있다. 몇몇 경우에, 할당 해제 조건이 발생했다는 것을 결정하자마자 바로 특정한 가상 머신 인스턴스를 종료하는 것 및/또는 용도를 변경하는 것이 유익하지 않을 수도 있다. 이것은, 할당 해제를 위해 선택되는 가상 머신 인스턴스가 할당된 사용자 세션을 가지고 콘텐츠 아이템 인스턴스를 여전히 실행하고 있을 수도 있기 때문이다. 몇몇 예에서, 할당 해제를 위해 선택되는 가상 머신 인스턴스 상의 콘텐츠 아이템 인스턴스에 추가적인 사용자 세션의 할당을 중지하는 결정이 이루어질 수도 있다. 그 다음, 할당 해제된 가상 머신 인스턴스는 현재 현존하는 사용자 세션이 만료되면 종료될 수도 있고 및/또는 용도가 변경될 수도 있다.
상기에서 기재되어 있는 바와 같이, 스케일링 컴포넌트(230)에 정보를 제공하는 것에 더하여, 프록시 컴포넌트(203 및 223)는 원격 측정 도착지(301)에 정보를 제공할 수도 있다. 이 정보는, 이제 상세히 설명되는 다양한 원격 측정 컴포넌트에 의해 라우팅 및 프로세싱될 수도 있다. 특히, 도 3은, 본 개시에 따라 사용될 수도 있는 예시적인 원격 측정 정보 라우팅 및 프로세싱 시스템을 예시하는 도면이다. 도 3에서 도시되는 바와 같이, 콘텐츠 실행 컴포넌트(120)(예를 들면, 도 2에서 도시되는 바와 같이, 프록시 컴포넌트(203 및 223)를 포함함)에 의해 제공되는 정보는, 원격 측정 컴포넌트(125)(도 1에서 또한 도시됨)의 원격 측정 도착지(301)로 전달될 수도 있다. 원격 측정 도착지(301)로의 전달시, 원격 측정 정보는, 제공된 정보를 일반적으로 검사할 수도 있는 그리고, 다양한 인자에 기초하여, 제공된 정보를 하나 이상의 수신측, 예컨대 프로세싱 기능(303A-D)으로 라우팅할 수도 있는 원격 측정 라우팅 기능(302)에 의해 액세스될 수도 있다. 특히, 인스턴스 레벨 프로세싱 기능(303A)은(도 1 및 도 2에서 또한 도시되는) 콘텐츠 아이템 인스턴스 정보 서비스(115)에 대한 정보를 수신 및 프로세싱한다. 플릿 레벨 정보 프로세싱 기능(303B)은 콘텐츠 아이템 플릿 정보 서비스(304)에 대한 정보를 수신 및 프로세싱한다. 이력 정보 프로세싱 기능(303C)은 이력 정보 서비스(305)에 대한 정보를 수신 및 프로세싱한다. 추가적으로, 원격 측정 라우팅 기능(302)은 임의의 수의 추가적인 서비스(306)에 대한 정보를 수신 및 프로세싱할 수도 있는 임의의 수의 추가적인 프로세싱 기능(303D)에 정보를 라우팅할 수도 있다.
몇몇 예에서, 원격 측정 정보를 원격 측정 도착지(301)에 기록할 때, 프록시 컴포넌트(203 및 223)는 규칙(convention)의 세트에 따라 소정의 키 또는 다른 식별 정보로 정보를 태그하거나 또는 다르게는 식별할 수도 있다. 이들 규칙은 원격 측정 정보를 적절한 수신측으로 신속하고 효율적으로 라우팅하도록 원격 측정 라우팅 기능(302)을 도울 수도 있다. 예를 들면, 몇몇 경우에, 원격 측정 정보는 다음의 포맷을 사용하여 식별될 수도 있다: 플릿 식별자/인스턴스 식별자/경로(route) 식별자/타임스탬프/전역적으로 고유한 식별자(globally unique identifier: GUID). 플릿 식별자는 정보가 관련되는 특정한 콘텐츠 아이템 플릿에 대한 식별자일 수도 있다. 인스턴스 식별자는 정보가 관련되는 특정한 콘텐츠 아이템 인스턴스에 대한 식별자일 수도 있다. 경로 식별자는, 정보가 전송되어야 하는 하나 이상의 수신측(예를 들면, 프로세싱 기능(303A-D) 중 임의의 것 또는 전체)을 나타내는 식별자일 수도 있다. 타임스탬프는 정보와 관련되는 타임스탬프, 예컨대 정보가 수집되는 시간일 수도 있다. 몇몇 경우에, 이 식별 정보는 원격 측정 라우팅 기능(302)이 각각의 원격 측정 정보를 적절한 수신측으로 라우팅하는 데 필요한 모든 것일 수도 있다.
몇몇 예에서, 원격 측정 라우팅 기능(302) 및/또는 프로세싱 기능(303A-D) 중 임의의 것은, 라우팅 및/또는 프로세싱을 위한 원격 측정 정보를 수신하는 것과 같은 이벤트에 적어도 부분적으로 기초하여 코드를 실행하는 분산 컴퓨팅 기반의(예를 들면, 클라우드 기반의) 기능일 수도 있다. 예를 들면, 몇몇 경우에서, 원격 측정 라우팅 기능(302)은 원격 측정 도착지(301)에서의 원격 측정 정보의 수신을 검출할 수도 있고 및/또는 통보 받을 수도 있다. 이것에 응답하여, 원격 측정 라우팅 기능(302)은, 예를 들면, 상기에서 설명되는 바와 같은 식별 정보에 기초하여 원격 측정 정보를 라우팅하기 위한 코드의 실행을 자동적으로 개시할 수도 있다. 마찬가지로, 프로세싱 기능(303A-D)은, 그 다음, 자신에게 라우팅된 원격 측정 정보를 검출할 수도 있고 및/또는 통보 받을 수도 있으며, 그 다음, 예컨대 수신된 정보를 편제 및 저장하는 것에 의해 그리고 임의의 적절한 경보 또는 통지를 생성하는 것에 의해, 수신된 정보를 프로세싱하기 위한 코드의 실행을 자동적으로 개시할 수도 있다. 몇몇 예에서, 이벤트에 적어도 부분적으로 기초하여 코드를 실행하는 분산 컴퓨팅 기반의(예를 들면, 클라우드 기반의) 기능을 사용한 원격 측정 라우팅 기능(302) 및/또는 프로세싱 기능(303A-D)의 구현은, 예를 들면, 라우팅 및/또는 프로세싱에 대해 새로운 원격 측정 정보가 이용 가능하지 않은 시간 동안에도 일정한 실행을 유지했던 라우팅 및/또는 프로세싱 서비스에 대해 요구될 수도 있는 비용 및 컴퓨팅 리소스의 양을 감소시키는 것에 의해, 유익할 수도 있다.
콘텐츠 아이템 인스턴스 정보 서비스(115)는 일반적으로, 예를 들면, 도 2의 콘텐츠 아이템 인스턴스(201A-N 및 221A-N)를 포함하는 콘텐츠 실행 컴포넌트(120)에 의해 실행되는 개개의 콘텐츠 아이템 인스턴스에 관한 정보를 수신 및 제공할 수도 있다. 이 정보는, 예를 들면, 각각의 실행 중인 콘텐츠 아이템 인스턴스에 대한 점유된 사용자 세션의 수, 각각의 실행 중인 콘텐츠 아이템 인스턴스에 대한 점유되지 않은 사용자 세션의 수, 콘텐츠 아이템 인스턴스 지속 기간 정보, 각각의 실행 중인 콘텐츠 아이템 인스턴스에 의한 메모리 사용량, 및 등등을 포함할 수도 있다. 콘텐츠 아이템 인스턴스 정보 서비스(115)는, 예를 들면, 특정한 콘텐츠 아이템 인스턴스에 대한 사용자 세션의 매칭 및 할당을 지원하기 위해 이 정보를 사용할 수도 있다. 특히, 도 1을 다시 참조하면, 사용자 컴퓨트 노드(110)의 콘텐츠 클라이언트(112)는, 이용 가능한 콘텐츠에 관한 정보를 요청하기 위해 그리고 이용 가능한 콘텐츠에 대한 액세스를 요청하기 위해, 콘텐츠 아이템 인스턴스 정보 서비스(115)와 통신할 수도 있다는 것을 알 수 있다. 도 1에서 또한 도시되는 바와 같이, 콘텐츠 아이템 인스턴스 정보 서비스(115)는, 자격 부여 정보(106)에 적어도 부분적으로 기초하여, 사용자가 어떤 콘텐츠 아이템에 액세스할 자격을 부여 받는지를 결정하기 위해, 신원 및 자격 부여 서비스(105)와 통신할 수도 있다. 자격 부여 정보(106)는 다양한 상이한 레벨의 세분성(granularity)에서 사용자 자격 부여를 나타낼 수도 있다. 예를 들면, 몇몇 경우에, 자격 부여 정보(106)는, 사용자가 시스템(150)에 의해 실행되는 콘텐츠에 대한 액세스가 일반적으로 허용되는지의 여부를 나타낼 수도 있다. 다른 경우에, 자격 부여 정보(106)는 더욱 미세한 세분성 레벨에서 제공될 수도 있고, 사용자가 액세스하도록 자격을 부여 받는 특정한 콘텐츠, 예컨대 특정한 제목, 특정한 버전, 특정한 스토리 아크 또는 줄거리, 특정한 가상 위치, 특정한 모드, 특정한 캐릭터, 특정한 무기, 및 등등을 나타낼 수도 있다.
몇몇 예에서, 콘텐츠 클라이언트(112)는, 소정의 줄거리, 소정의 스토리 아크, 가상 위치, 레벨, 모드, 캐릭터, 무기, 및 등등과 같은 소정의 콘텐츠 속성을 갖는 콘텐츠 아이템 또는 모든 이용 가능한 콘텐츠 아이템의 리스트와 같은, 사용자가 액세스하도록 자격을 부여 받는 이용 가능한 콘텐츠 아이템에 관한 정보를 콘텐츠 아이템 인스턴스 정보 서비스(115)가 제공해야 한다는 것을 요청할 수도 있다. 이 정보의 수신시, 몇몇 예에서, 사용자는 특정한 콘텐츠 아이템을 선택할 수도 있고 콘텐츠 클라이언트(112)를 통해 선택된 콘텐츠 아이템에 액세스하기 위한 요청을 제출할 수도 있다. 추가적으로, 콘텐츠 클라이언트(112)는 또한, 소정의 줄거리, 스토리 아크, 가상 위치, 레벨, 모드, 캐릭터, 무기, 및 등등과 같은, 사용자에 의해 소망되는 소정의 콘텐츠 선호도에 관한 정보를 콘텐츠 아이템 인스턴스 정보 서비스(115)로 제공할 수도 있다. 그러면, 콘텐츠 아이템 인스턴스 정보 서비스(115)는, 사용자의 요청, 사용자의 선호도, 및 원격 측정 컴포넌트(125)로부터 수신되는 원격 측정 정보에 적어도 부분적으로 기초하여, 사용자의 요청을 사용자의 선택된 콘텐츠 아이템의 특정한 인스턴스에 매칭시킬 수도 있다.
몇몇 예에서, 콘텐츠 아이템 인스턴스 정보 서비스(115)는, 사용자의 요청된 선호도의 콘텐츠 속성과 매치하는, 또는 적어도 부분적으로 매치하는 콘텐츠 속성을 갖는 선택된 콘텐츠 아이템의 하나 이상의 인스턴스를 식별하려고 시도할 수도 있다. 콘텐츠 아이템 인스턴스 정보 서비스(115)는 다양하고 상이한 기술을 통해 콘텐츠 아이템 인스턴스를 실행하기 위한 콘텐츠 속성 정보를 획득할 수도 있다. 몇몇 예에서, 콘텐츠 속성 정보는 원격 측정 컴포넌트(125)로부터 이용 가능하게 되는 원격 측정 정보의 일부로서 수집 및 제공될 수도 있고, 도 2의 스케일링 컴포넌트(230)로부터 검색될(retrieved) 수도 있거나, 또는 다르게는 콘텐츠 아이템 인스턴스 정보 서비스(115)가 이용 가능하게 만들어질 수도 있다. 사용자의 선호도와 적어도 부분적으로 매치하는 콘텐츠 속성을 갖는 하나 이상의 콘텐츠 아이템 인스턴스를 식별하면, 콘텐츠 아이템 정보 서비스는, 원격 측정 컴포넌트(125)로부터의 원격 측정 정보에 적어도 부분적으로 기초하여, 식별된 콘텐츠 아이템 인스턴스에 대한 임의의 점유되지 않은 사용자 세션이 있는지의 여부를 결정할 수도 있다. 몇몇 예에서, 그 다음, 콘텐츠 아이템 인스턴스 정보 서비스(115)는 적어도 하나의 점유되지 않은 사용자 세션을 갖는 식별된 콘텐츠 아이템 인스턴스 중 하나에 사용자를 할당할 수도 있다. 몇몇 예에서, 사용자는, 사용자의 선호도와 가장 근접하게 매치하는 콘텐츠 속성을 갖는 적어도 하나의 점유되지 않은 사용자 세션을 갖는 식별된 콘텐츠 아이템 인스턴스에 할당될 수도 있다. 다른 예에서, 사용자는, 예를 들면, 사용자의 선호도, 점유되지 않은 사용자 세션의 수, 및 등등을 포함하는 인자의 조합에 기초하여 콘텐츠 아이템 인스턴스에 할당될 수도 있다. 예를 들면, 사용자가 참여할 콘텐츠 아이템 인스턴스에 대한 다섯 개의 상이한 콘텐츠 속성 선호도를 지정하는 시나리오를 고려한다. 이제, 제1 콘텐츠 아이템 인스턴스는 다섯 개의 사용자 선호도와 모두 매치하지만 하나의 점유되지 않은 사용자 세션만을 가지며, 반면 제2 콘텐츠 아이템 인스턴스는 사용자 선호도 중 네 개와 매치하지만 열 개의 점유되지 않은 사용자 세션을 갖는다는 것을 가정한다. 이 시나리오에서, 제1 콘텐츠 아이템 인스턴스와 더 강하게 상관될 수도 있는 선호도를 갖는 다른 사용자에게 제1 콘텐츠 아이템 인스턴스의 단일의 남아있는 점유되지 않은 사용자 세션이 이용 가능하도록 유지하기 위해, 사용자를 제2 콘텐츠 아이템 인스턴스에 할당하는 것이 유익할 수도 있다. 또한, 몇몇 예에서, 콘텐츠 아이템 인스턴스 정보 서비스(115)는, 사용자가 할당을 위해 식별된 콘텐츠 아이템 인스턴스 중 하나를 선택하는 것 또는 다르게는 이러한 선택을 행하기 위한 입력을 제공하는 것을 허용하기 위해, 사용자의 선호도와 적어도 부분적으로 매치하는 적어도 하나의 점유되지 않은 사용자 세션을 갖는 식별된 콘텐츠 아이템 인스턴스에 관한 정보를 콘텐츠 클라이언트(112)로 제공할 수도 있다.
몇몇 예에서, 콘텐츠 아이템 인스턴스 정보 서비스(115)는, 현존하는 이미 론칭된 그리고 실행 중인 콘텐츠 아이템 인스턴스에 사용자를 매칭 및 할당하는 대신, 사용자를 할당할 추가적인 콘텐츠 아이템 인스턴스를 스케일링 컴포넌트(230)가 론칭해야 한다는 것을 요청할 수도 있다. 이것은, 예를 들면, 플릿 내의 현존하는 콘텐츠 아이템 인스턴스 중 어느 것도 어떠한 점유되지 않은 사용자 세션을 갖지 않는 경우 및/또는 플릿 내의 현존하는 콘텐츠 아이템 인스턴스 중 어느 것도, 사용자가 요청한 콘텐츠 속성 선호도와 충분히 매치하는 것으로 결정되는 콘텐츠 속성을 갖지 않는 경우에 발생할 수도 있다.
일단 사용자가 특정한 콘텐츠 아이템 인스턴스에 매칭 및 할당되면, 콘텐츠 아이템 인스턴스 정보 서비스(115)는 할당된 콘텐츠 아이템 인스턴스의 표시(또는 새로운 콘텐츠 아이템 인스턴스를 론칭하기 위한 명령어)를 스케일링 컴포넌트(230)로 제공할 수도 있다. 그 다음, 스케일링 컴포넌트(230)는, 예를 들면, 사용자 컴퓨트 노드(110)에서 콘텐츠 클라이언트(112)와 통신하도록 할당된 콘텐츠 아이템 인스턴스에게 지시하는 것에 의해, 사용자에 대한 사용자 세션과 할당된 콘텐츠 아이템 인스턴스 사이에서 통신을 확립할 수도 있다. 상기에서 기재되어 있는 바와 같이, 몇몇 예에서, 이들 통신은, 할당된 콘텐츠 아이템 인스턴스에 의해, 상태 정보, 이벤트 정보, 렌더링된 그래픽 및 오디오, 및/또는 콘텐츠 아이템 인스턴스와 관련되는 다른 정보를, 사용자 세션에 대응하는 콘텐츠 클라이언트(112)로 전송하는 것을 포함할 수도 있다. 또한, 몇몇 예에서, 이들 통신은, 콘텐츠 클라이언트(112)에 의해, 제어 입력(예를 들면, 캐릭터 움직임, 무기 발사, 메뉴 선택, 등등)과 같은 입력을 할당된 콘텐츠 아이템 인스턴스로 전송하는 것을 포함할 수도 있다.
따라서, 상기에서 설명되는 바와 같이, 콘텐츠 아이템 인스턴스 정보 서비스(115)는, 사용자 세션을 콘텐츠 아이템 인스턴스에 매칭시키고 할당하는 프로세스를 지원하기 위해, 원격 측정 컴포넌트(125)에 의해 제공되는 콘텐츠 아이템 인스턴스 레벨 원격 측정 정보를 사용할 수도 있다. 이들 매칭 기술에 더하여, 예를 들면, 개발자 및 어쩌면 다른 당사자에게 콘텐츠 아이템 인스턴스 레벨 피드백 및 메트릭을 제공하기 위해, 콘텐츠 아이템 인스턴스 정보 서비스(115)에 제공되는 콘텐츠 아이템 인스턴스 레벨 원격 측정 정보가 또한 사용될 수도 있다. 특히, 도 1 및 도 3 둘 다에서 도시되는 바와 같이, 개발자 컴퓨트 노드(100)는, 각각의 실행 중인 콘텐츠 아이템 인스턴스에 대한 점유된 사용자 세션의 수, 각각의 실행 중인 콘텐츠 아이템 인스턴스에 대한 점유되지 않은 사용자 세션의 수, 콘텐츠 아이템 인스턴스 지속 기간 정보, 각각의 실행 중인 콘텐츠 아이템 인스턴스에 의한 메모리 사용량, 및 등등과 같은 콘텐츠 아이템 인스턴스 레벨 정보를 요청하기 위해, 콘텐츠 아이템 인스턴스 정보 서비스(115)에 액세스할 수도 있다.
다시 도 3을 참조하면, 콘텐츠 아이템 인스턴스 정보 서비스(115)에 더하여, 원격 측정 라우팅 기능(302)은, 콘텐츠 아이템 플릿 정보 서비스(304), 이력 정보 서비스(305), 및 다른 추가적인 서비스(306)로 원격 측정 정보를 각각의 프로세싱 기능(303B-D)을 통해 라우팅할 수도 있다. 콘텐츠 아이템 플릿 정보 서비스(304)는 일반적으로 콘텐츠 아이템 플릿 레벨 원격 측정 정보를 수신하여 개발자 및/또는 다른 당사자에게 제공할 수도 있다. 콘텐츠 아이템 플릿 레벨 정보는, 플릿 내의 점유된 사용자 세션, 플릿 내의 점유되지 않은 사용자 세션, 플릿에 대한 인스턴스 지속 기간 정보, 플릿에 의한 메모리 사용량, 플릿 내의 실행 중인 인스턴스의 수, 인스턴스 종료 정보, 및 등등에 관한 정보를 포함할 수도 있다. 점유된 사용자 세션의 경우, 플릿 레벨 정보는, 예를 들면, 모든 플릿 인스턴스에 대한 점유된 사용자 세션의 총 수, 모든 플릿 인스턴스에 대한 점유된 사용자 세션의 평균 수, 가장 적게 점유된 세션을 갖는 플릿 인스턴스에서의 점유된 세션의 수, 가장 많이 점유된 세션을 갖는 플릿 인스턴스에서의 점유된 세션의 수 및 등등을 포함할 수도 있다. 점유되지 않은 사용자 세션의 경우, 플릿 레벨 정보는, 예를 들면, 모든 플릿 인스턴스에 대한 점유되지 않은 사용자 세션의 총 수, 모든 플릿 인스턴스에 대한 점유되지 않은 사용자 세션의 평균 수, 가장 적게 점유되지 않은 세션을 갖는 플릿 인스턴스에서의 점유되지 않은 세션 수, 가장 많이 점유되지 않은 세션을 갖는 플릿 인스턴스에서의 점유되지 않은 세션의 수 및 등등을 포함할 수도 있다. 예를 들면 지속 기간 정보의 경우, 플릿 레벨 정보는, 예를 들면, 특정한 기간 내에 종료한 플릿 인스턴스에 대한 전체, 평균, 최대 및 최소 지속 기간뿐만 아니라, 특정한 기간 내에 종료한 인스턴스의 수를 포함할 수도 있다. 메모리 사용량 정보의 경우, 플릿 레벨 정보는, 예를 들면, 플릿 인스턴스에 대한 전체, 평균, 최대 및 최소 메모리 사용량을 포함할 수도 있다.
몇몇 예에서, 콘텐츠 아이템 플릿 정보 서비스(304) 및/또는 콘텐츠 아이템 인스턴스 정보 서비스(115)는, 개발자 또는 다른 당사자가, 콘텐츠 아이템 플릿 및/또는 인스턴스와 관련되는 소정의 이벤트 또는 조건을 통지 받을 수도 있도록, 경보 및/또는 다른 통지를 설정하는 것을 허용할 수도 있다. 경보를 트리거할 수도 있는 몇몇 예시적인 조건은, 지정된 레벨을 충족하는, 초과하는 또는 지정된 레벨 아래로 떨어지는 점유된 플릿 세션의 총 수, 지정된 수 미만의 점유된 세션을 갖는 하나 이상의 플릿 인스턴스, 지정된 레벨을 충족하는, 초과하는 또는 지정된 레벨 아래로 떨어지는 점유되지 않은 플릿 세션의 총 수, 지정된 평균 시간 미만의 지속 기간을 갖는 플릿 인스턴스, 지정된 평균 또는 최대 메모리 사용량을 초과하는 플릿 인스턴스, 및 다른 조건이다.
이력 정보 서비스(305)는, 일반적으로, 콘텐츠 아이템 플릿 및/또는 콘텐츠 아이템 인스턴스에 관한 이력 정보를 수신, 유지 및 제공할 수도 있다. 몇몇 예에서, 이력 정보 서비스는, 이전에 종료된 콘텐츠 아이템 플릿 및/또는 콘텐츠 아이템 인스턴스에 관한 이력 정보 및/또는 전체적으로 또는 부분적으로 계속 실행될 수도 있는 콘텐츠 아이템 플릿 및/또는 콘텐츠 아이템 인스턴스에 관한 정보를 포함할 수도 있다. 이력 정보 서비스(305)는, 예를 들면, 상기에서 상세히 기재되어 있는 인스턴스 레벨 정보 및 또는 플릿 레벨 정보 중 임의의 것, 또는 전부 및/또는 임의의 다른 관련 이력 정보를 제공할 수도 있다. 몇몇 예에서, 이력 정보는, 개발자 및/또는 다른 당사자가 소정의 지정 가능한 기간에 대한, 예컨대 지난 60 일 또는 90 일, 또는 임의의 다른 관련 기간에 대한 정보를 요청하는 것을 허용할 수도 있다.
개시된 기술의 다양한 양태를 수행하기 위한 몇몇 예시적인 프로세스가 이제 상세히 설명될 것이다. 특히, 도 4는 본 개시에 따라 사용될 수도 있는 예시적인 콘텐츠 배치 및 스케일링 프로세스를 예시하는 도면이다. 상기에서 기재되어 있는 바와 같이, 콘텐츠는, 본원에서 콘텐츠 아이템 플릿으로 칭해지는 콘텐츠 아이템의 복수의 인스턴스를 사용하여 배치될 수도 있다. 몇몇 예에서, 플릿 내의 콘텐츠 아이템 인스턴스 중 하나 이상은, 다수의 동시적으로 할당된 사용자 세션을 갖도록 구성 가능할 수도 있다. 몇몇 예에서, 플릿 내의 모든 콘텐츠 아이템 인스턴스는 다수의 동시적으로 할당된 사용자 세션을 갖도록 구성 가능할 수도 있다. 또한, 몇몇 예에서, 플릿 내의 적어도 두 개의 콘텐츠 아이템 인스턴스가 단일 가상 머신 인스턴스 상에서 실행할 수도 있다. 도 4에서 도시되는 바와 같이, 동작 410에서, 콘텐츠 아이템이 배치 준비가 되었다는 표시가 수신될 수도 있다. 상기에서 기재되어 있는 바와 같이, 콘텐츠 아이템은, 개발 중인 및/또는 테스트 중인 콘텐츠, 예컨대 비디오 게임 또는 완전히 개발되고 테스트되어 판매 중이거나 또는 다르게는 고객 또는 다른 사용자에게 배포된 콘텐츠를 포함할 수도 있다. 상기에서 또한 기재되어 있는 바와 같이, 몇몇 예에서, 콘텐츠는, SDK 또는, 도 2의 콘텐츠 아이템 인스턴스 정보 서비스(115), 인스턴스 인터페이스(220A-N 및 222A-N), 및/또는 콘텐츠 실행 컴포넌트(120)와 같은 콘텐츠 아이템의 배치된 인스턴스를 호스팅할 수도 있는 또는 다르게는 그 콘텐츠 아이템의 배치된 인스턴스와 상호 작용할 수도 있는 다양한 백엔드 또는 다른 서비스 또는 컴포넌트와 관련되는 및/또는 통합되는 다른 엘리먼트를 사용하여 생성될 수도 있다. 이들 예에서, SDK 또는 다른 엘리먼트는, 예컨대 콘텐츠가 멀티 플레이어 비디오 게이밍 또는 다른 멀티 사용자 환경과 더욱 효율적으로 상호 작용하는 것을 허용하는 것에 의해, 예를 들면, 콘텐츠의 수용, 구성, 프로비저닝 및 배치가 더욱 쉽고 빠르게 달성되는 것을 허용할 수도 있는 개발자에 의해 생성되는 콘텐츠에 내장되는 코드 및 다른 기능성(functionality)을 제공할 수도 있다. 예를 들면, 콘텐츠를 생성하기 위해 사용되는 SDK는, 한 명 이상의 사용자에 대한 새로운 사용자 세션의 구성 및, 점유된 사용자 세션의 수, 점유되지 않은 사용자 세션의 수, 콘텐츠 아이템 인스턴스 지속 기간, 메모리 사용량, 및 등등과 같은, 콘텐츠 아이템 인스턴스를 실행하는 것에 관한 정보의 수집을 지원할 수도 있다. 표시는, 예를 들면, 도 1의 콘텐츠 실행 컴포넌트(120)와 같은 콘텐츠 실행 컴포넌트에 의해 도 1의 개발자 컴퓨트 노드(100)와 같은 개발자 컴퓨트 노드로부터 수신될 수도 있다. 동작 412에서, 콘텐츠 아이템 정보가 수신된다. 이러한 콘텐츠 아이템은, 콘텐츠 아이템 인스턴스 정보 서비스(115) 및/또는 콘텐츠 실행 컴포넌트(120)와 관련되는 SDK를 사용하여 생성된 비디오 게임과 관련되는 바이너리 파일과 같은 파일, 바이너리 또는 코드를 포함할 수도 있다. 동작 412에서 수신되는 정보는, 예를 들면, 콘텐츠에 액세스하기 위한 정보, 예컨대 콘텐츠 아이템과 관련되는 다른 데이터의 코드가 저장되는 위치 또는 콘텐츠 아이템에 액세스하기 위한 다른 정보를 포함할 수도 있다. 동작 412에서 수신되는 정보는 또한, 예를 들면, 콘텐츠 아이템의 인스턴스의 플릿에 대한 이름, 콘텐츠 아이템에 대한 개발의 단계, 콘텐츠 아이템의 설명, 및 다른 정보를 포함할 수도 있다. 동작 414에서, 콘텐츠 아이템의 적어도 하나의 인스턴스는 이미지로서 가상 머신 인스턴스 상에 설치된다. 동작 414는, 예를 들면, 콘텐츠 아이템이 배치 준비가 되었다는 표시 및 임의의 관련된 콘텐츠 아이템 정보에 기초하여 수행될 수도 있다. 몇몇 예에서, 도 2의 스케일링 컴포넌트(230)는 콘텐츠 아이템 코드에 대한 위치 정보를 수신할 수도 있고, 수신된 위치 정보에서 식별되는 위치로부터 특정한 가상 머신 상에 이미지로서 설치될 콘텐츠 아이템 코드에 대한 명령어를 발행할 수도 있다.
동작 416에서, 사용자에 대한 신원 정보가 수신된다. 도 1의 신원 정보(107)와 같은 사용자 신원 정보는, 개발자로부터 또는 다른 당사자로부터 수신될 수도 있다. 상기에서 기재되어 있는 바와 같이, 사용자에 대한 신원 정보는, 예를 들면, 인가된 사용자의 신원을 인증하기 위한 신원 인증 정보, 예컨대 사용자명 및 패스워드를 포함할 수도 있다. 이해되어야 하는 바와 같이, 사용자 신원 정보는 임의의 시간에 수신될 수도 있으며, 특정한 콘텐츠 아이템이 실제로 배치되기 이전 또는 이후에 반드시 수신될 필요는 없다. 동작 418에서, 자격 부여 정보가 수신된다. 도 1의 자격 부여 정보(106)와 같은 자격 부여 정보는, 개발자로부터 또는 다른 당사자로부터 수신될 수도 있다. 상기에서 기재되어 있는 바와 같이, 자격 부여 정보는, 예를 들면, 다양한 인가된 사용자 및 어떤 콘텐츠 아이템이 인가된 사용자에 의해 액세스되도록 자격이 부여되는지의 표시를 포함할 수도 있다. 상기에서 또한 기재되어 있는 바와 같이, 자격 부여 정보는, 특정한 타이틀, 특정한 버전, 특정한 스토리 아크 또는 줄거리, 특정한 가상 위치, 특정한 모드, 특정한 캐릭터, 특정한 무기, 및 등등과 같은 다양한 레벨의 세분화에서 자격 부여를 나타낼 수도 있다. 이해될 수도 있는 바와 같이, 자격 부여 정보는 언제든지 수신될 수도 있고, 특정 콘텐츠 아이템이 실제로 배치되기 전후에 반드시 수신될 필요는 없다.
동작 420에서, 콘텐츠 아이템에 액세스하기 위한 요청이 인가된 및 자격이 부여된 사용자로부터 수신된다. 사용자를 인증하기 위한 그리고 그들 각각의 자격 부여를 결정하고 시행하기 위한 몇몇 예시적인 기술은 상기에서 상세히 설명되었으며 여기서는 반복하지 않는다. 동작 422에서, 콘텐츠 아이템에 대한 콘텐츠 아이템 플릿은, 예를 들면, 동작 420에서 수신되는 사용자 요청에 기초하여 스케일링된다. 콘텐츠 아이템 플릿의 스케일링은, 예를 들면, 도 2의 스케일링 컴포넌트(230)에 의해 수행될 수도 있다. 몇몇 예에서, 동작 422에서 수행되는 스케일링은, 동작 420에서 수신되는 사용자 요청에 적어도 부분적으로 기초하여, 동작 414에서 설치되는 이미지를 추가적인 가상 머신 인스턴스 상으로 복사하는 것을 포함할 수도 있다. 또한, 몇몇 예에서, 콘텐츠 아이템 플릿의 스케일링은, 할당 및/또는 할당 해제 조건의 검출 및 그에 대한 응답으로 다양한 동작을 수행하는 것을 포함할 수도 있다.
특히, 하위 동작 424에서, 할당 조건이 검출되는지의 여부가 결정된다. 상기에서 기재되어 있는 바와 같이, 할당 조건은, 예를 들면, 플릿 내의 모든 콘텐츠 아이템 인스턴스에 대한 점유되지 않은 사용자 세션의 총 수 및/또는 평균 수가 특정한 양을 충족했다는 것 또는 특정한 양 아래로 떨어졌다는 것을 결정하는 것, 플릿 내의 하나 이상의 개별 콘텐츠 아이템 인스턴스에 대한 점유되지 않은 사용자 세션의 총 수가 특정한 양을 충족했다는 것 또는 특정한 양 아래로 떨어졌다는 것을 결정하는 것, 및/또는 다른 조건을 포함할 수도 있다. 하위 동작 424에서 할당 조건이 검출되면, 하위 동작 426에서, 추가적인 가상 머신 인스턴스가 콘텐츠 아이템 플릿에 할당될 수도 있다. 이 할당은, 예를 들면, 할당 조건의 검출에 기초하여 발생할 수도 있다. 동작 428에서는, 동작 414에서 설치되는 이미지가 추가적인 가상 머신 인스턴스 상으로 복사되고, 그에 의해, 추가적인 콘텐츠 아이템 인스턴스의 론칭을 가능하게 한다. 추가적인 가상 머신은 하나 이상의 추가적인 사용자 또는 세션을 핸들링할 수도 있다.
하위 동작 424에서 어떠한 할당 조건도 검출되지 않으면, 하위 동작 430에서, 할당 해제 조건이 검출되는지의 여부가 결정된다. 상기에서 기재되어 있는 바와 같이, 할당 해제 조건은, 예를 들면, 플릿 내의 모든 콘텐츠 아이템 인스턴스에 대한 점유되지 않은 사용자 세션의 총 수 및/또는 평균 수가 특정한 양을 충족했다는 것 또는 초과했다는 것을 결정하는 것, 플릿 내의 하나 이상의 개별 콘텐츠 아이템 인스턴스에 대한 점유되지 않은 사용자 세션의 총 수가 특정한 양을 충족했다는 것 또는 초과했다는 것을 결정하는 것, 및/또는 다른 조건을 포함할 수도 있다. 하위 동작 430에서 어떠한 할당 해제 조건도 검출되지 않으면, 프로세스는 하위 동작 424로 되돌아 갈 수도 있다. 하위 동작 430에서 할당 해제 조건이 검출되면, 하위 동작 432에서, 가상 머신 인스턴스는 콘텐츠 아이템 플릿으로부터 할당 해제될 수도 있다. 이 할당 해제는, 예를 들면, 할당 해제 조건의 검출에 기초하여 발생할 수도 있다. 하위 동작 434에서, 할당 해제된 가상 머신 인스턴스는 종료될 수도 있고 및/또는 용도가 변경될 수도 있다. 상기에서 기재되어 있는 바와 같이, 몇몇 경우에, 할당 해제 조건이 발생했다는 것을 결정하자 마자 바로, 할당 해제된 가상 머신 인스턴스를 종료 및/또는 용도 변경하는 것은 바람직하지 않을 수도 있다. 오히려, 할당 해제된 가상 머신 인스턴스 상의 콘텐츠 아이템 인스턴스에 대한 추가적인 사용자 세션의 할당을 중지하는 그리고 할당 해제된 가상 머신 인스턴스를 그것의 현존하는 사용자 세션이 만료한 이후 종료하는 및/또는 용도를 변경하는 결정이 이루어질 수도 있다.
하위 동작 424 및 430에서의 할당 및 할당 해제 조건의 검출은, 콘텐츠 아이템 플릿이 어떻게 스케일링될 수도 있는지의 일 예에 불과하다는 것을 유의한다. 특히, 하위 동작 424 및 430이 도 4에서 도시되는 순서로 수행되어야만 한다는 어떠한 요건도 없으며, 상이한 순서로 수행될 수도 있고 및/또는 서로에 대해서 전체적으로 의존적으로 또는 독립적으로 또는 부분적으로 의존적으로 또는 독립적으로 수행될 수도 있다. 예를 들면, 몇몇 경우에, 할당 해제 조건이 존재하는지의 여부의 결정은, 특정 간격에서 그리고/또는 사용자 세션의 종료와 같은 소정의 구성 가능한 이벤트에 응답하여 실행될 수도 있는 정리(clean-up) 프로세스에 적어도 부분적으로 기초하여 수행될 수도 있다. 추가적으로, 몇몇 예에서, 할당 조건이 존재하는지 여부의 결정은, 특정한 간격에서 그리고/또는 사용자 세션의 생성과 같은 소정의 구성 가능한 이벤트에 응답하여 수행될 수도 있다. 또한, 할당 및/또는 할당 해제 결정은 또한, 특정한 시간 기간에 걸쳐 생성되거나 종료된 사용자 세션의 수와 같은 이력 데이터에 기초하여 수행될 수도 있다는 것을 유의한다.
도 5는 본 발명에 따른 콘텐츠 실행을 위한 예시적인 프로세스를 예시하는 도면이다. 동작 510에서, 신원 정보는 콘텐츠에 대한 액세스를 얻으려고 시도하고 있는 사용자로부터 수신될 수도 있다. 예를 들면, 동작 510에서, 도 1의 신원 및 자격 부여 서비스(105)는 도 1의 사용자 컴퓨트 노드(110)의 시스템 인터페이스(111)로부터 신원 정보를 수신할 수도 있다. 상기에서 기재되어 있는 바와 같이, 동작 510에서 수신되는 신원 정보는, 예를 들면, 사용자에 대한 사용자명 및 패스워드를 포함할 수도 있다. 단계 511에서, 수신된 신원 정보가 저장된 신원 정보와 매치하는지의 여부가 결정된다. 예를 들면, 도 1의 신원 및 자격 부여 서비스(105)는 동작 510에서 수신되는 신원 정보를 도 1의 신원 정보(107)와 같은 저장된 신원 정보와 매치시키려고 시도할 수도 있다. 몇몇 예에서, 동작 510에서 수신되는 사용자명 및 패스워드는, 저장된 신원 정보 내의 사용자명 및 패스워드에 매칭될 수도 있다. 동작 511에서 매치가 검출되면, 동작 512에서, 사용자는 인증될 수도 있다. 동작 511에서 어떠한 매치도 검출되지 않으면, 동작 513에서, 사용자는 인증되지 않는다. 상기에서 기재되어 있는 바와 같이, 사용자가 인증될 수 없는 경우(예를 들면, 어떠한 매치도 결정되지 않는 경우), 사용자는, 예를 들면, 임의의 콘텐츠에 대한 액세스가 거부될 수도 있고 및/또는 콘텐츠에 대한 액세스를 위해 등록, 지불 및/또는 가입할 것을 촉구 받을 수도 있고 및/또는 이들 동작을 수행하기 위한 다양한 서비스로 리다이렉트될 수도 있다.
동작 514에서, 사용자에 대한 콘텐츠 자격 부여가 결정될 수도 있다. 예를 들면, 도 1에서 도시되는 바와 같이, 콘텐츠 아이템 인스턴스 정보 서비스(115)는 신원 및 자격 부여 서비스(105)에게 사용자에 대한 콘텐츠 자격 부여 정보를 요청할 수도 있다. 몇몇 예에서, 도 1의 자격 부여 정보(106)와 같은 저장된 자격 부여 정보는, 사용자가 액세스하도록 자격이 부여되는 다양한 콘텐츠 아이템과 같은, 인가된 사용자에 대한 콘텐츠 자격 부여 정보를 나타낼 수도 있다. 동작 516에서, 사용자가 자격을 부여 받는 콘텐츠 아이템에 관한 정보가 사용자에게 제공된다. 예를 들면, 콘텐츠 아이템 인스턴스 정보 서비스(115)는, 콘텐츠 클라이언트(112)에게, 사용자가 액세스하도록 자격을 부여 받는 이용 가능한 콘텐츠 아이템에 관한 정보, 예컨대, 소정의 줄거리, 스토리 아크, 가상 위치, 레벨, 모드, 캐릭터, 무기, 및 등등과 같은 소정의 콘텐츠 속성을 갖는 콘텐츠 아이템 또는 모든 이용 가능한 콘텐츠 아이템의 리스트를 제공할 수도 있다.
동작 518에서, 사용자가 콘텐츠 아이템에 액세스하려는 요청이 수신된다. 예를 들면, 사용자는 동작 516에서 제공되는 정보를 활용하여 사용자가 액세스하고자 하는 특정한 콘텐츠 아이템을 선택할 수도 있다. 그 다음, 콘텐츠 클라이언트(112)는, 콘텐츠 아이템 인스턴스 정보 서비스(115)에 의해, 동작 518에서 수신될 수도 있는 선택된 콘텐츠 아이템에 액세스하기 위한 요청을 제출할 수도 있다. 추가적으로, 동작 520에서, 선택된 콘텐츠 아이템에 대한 사용자 선호도가 수신된다. 사용자 선호도는, 예를 들면, 사용자에 의해 소망되는 소정의 줄거리, 스토리 아크, 가상 위치, 레벨, 모드, 캐릭터, 무기, 및 등등을 포함할 수도 있다. 동작 522에서, 원격 측정 정보가 수신된다. 예를 들면, 콘텐츠 아이템 플릿 내의 콘텐츠 아이템 인스턴스에 관한 원격 측정 정보가 원격 측정 컴포넌트(125)을 통해 콘텐츠 아이템 인스턴스 정보 서비스(115)에 의해 수신될 수도 있다. 몇몇 예에서, 수신된 원격 측정 정보는, 콘텐츠 아이템 플릿 상에서의 사용자 세션 이용 가능성의 표시, 예컨대 플릿 내의 하나 이상의 콘텐츠 아이템 인스턴스에 대한 임의의 점유되지 않은 사용자 세션이 존재하는지 여부의 표시, 플릿 내의 하나 이상의 콘텐츠 아이템 인스턴스에 대한 점유되지 않은 사용자 세션의 수, 또는 다른 이용 가능성 정보를 포함할 수도 있다. 콘텐츠 아이템 인스턴스 정보 서비스(115)에 의해 수신될 수도 있는 몇몇 다른 원격 측정 정보의 예는 상기에서 상세히 설명되었으며 여기서는 반복되지 않는다. 원격 측정 정보는, 예컨대 1 분 또는 5 분 간격에서 또는 임의의 다른 소망하는 시간 또는 간격에서, 콘텐츠 아이템 인스턴스 정보 서비스(115)에 의해 반복적으로 수신 및 업데이트될 수도 있다는 것을 유의한다.
동작 524에서, 사용자와 관련되는 사용자 세션은, 예를 들면, 원격 측정 정보 및/또는 사용자 선호도에 기초하여 콘텐츠 아이템 인스턴스에 할당된다. 예를 들면, 몇몇 경우에, 콘텐츠 아이템 인스턴스 정보 서비스(115)는, 원격 측정 정보에 기초하여, 사용자의 선호도와 매치하는 또는 부분적으로 매치하는 콘텐츠 속성을 갖는 적어도 하나의 점유되지 않은 사용자 세션을 갖는 하나 이상의 실행 중인 콘텐츠 아이템 인스턴스를 식별할 수도 있다. 몇몇 예에서, 콘텐츠 아이템 인스턴스 정보 서비스(115)는 식별된 콘텐츠 아이템 인스턴스 중 하나에 사용자를 할당할 수도 있다. 또한, 몇몇 예에서, 콘텐츠 아이템 인스턴스 정보 서비스(115)는 사용자 선호도 중 하나 이상과 적어도 부분적으로 매치하는 콘텐츠 아이템 인스턴스에 사용자를 할당할 수도 있다. 사용자 할당을 위한 몇몇 다른 예시적인 기술은 상기에서 상세히 기재되어 있으며 여기서는 반복되지 않는다. 상기에서 또한 기재되어 있는 바와 같이, 몇몇 예에서, 콘텐츠 아이템 인스턴스 정보 서비스(115)는, 현존하는 이미 론칭된 그리고 실행 중인 콘텐츠 아이템 인스턴스에 사용자를 매칭 및 할당하는 대신, 사용자를 할당할 추가적인 콘텐츠 아이템 인스턴스를 스케일링 컴포넌트(230)가 론칭해야 한다는 것을 요청할 수도 있다. 이것은, 예를 들면, 플릿 내의 현존하는 콘텐츠 아이템 인스턴스 중 어느 것도 어떠한 점유되지 않은 사용자 세션을 갖지 않는 경우 및/또는 플릿 내의 현존하는 콘텐츠 아이템 인스턴스 중 어느 것도, 사용자가 요청한 콘텐츠 속성 선호도와 충분히 매치하는 것으로 결정되는 콘텐츠 속성을 갖지 않는 경우에 발생할 수도 있다.
동작(526)에서, 할당된 콘텐츠 아이템 인스턴스의 표시는, 도 2의 스케일링 컴포넌트(230)와 같은 스케일링 컴포넌트로 제공될 수도 있다. 사용자가 아직 론칭되지 않은 콘텐츠 아이템 인스턴스에 할당되어 있는 경우, 이것은 또한 동작 526에서 제공되는 표시의 일부로서 나타내어질 수도 있다. 동작 528에서, 사용자 세션과 할당된 콘텐츠 아이템 사이의 통신을 확립하기 위한 명령어가 제공된다. 예를 들면, 스케일링 컴포넌트(230)는, 할당된 콘텐츠 아이템 인스턴스에게, 사용자에 의해 동작되는 사용자 컴퓨트 노드(110)에서 콘텐츠 클라이언트(112)와 관련되는 사용자 세션과 통신할 것을 지시할 수도 있다.
도 6은 본 개시에 따라 사용될 수도 있는 예시적인 원격 측정 정보 라우팅 프로세스를 예시하는 도면이다. 동작 610에서, 원격 측정 정보는 콘텐츠 아이템 인스턴스로부터 수집된다. 몇몇 예에서, 원격 측정 정보는, 각각 인스턴스 인터페이스(202A-N 및 222A-N)을 통해 콘텐츠 아이템 인스턴스(201A-N 및 221A-N)로부터 정보를 각각 수신할 수도 있는 도 2의 프록시 컴포넌트(203 및 223)에 의해 동작 610에서 수집될 수도 있다. 상기에서 기재되어 있는 바와 같이, 몇몇 예에서, 하나 이상의 소프트웨어 개발 키트(SDK)와 같은, 인스턴스 인터페이스(202A-N 및 222A-N)와 관련되는 다양한 명령어가 개발자에게 노출 및/또는 제공될 수도 있다. 이들 명령어는, 콘텐츠 아이템 인스턴스(201A-N 및 221A-N)가 인스턴스 인터페이스(202A-N 및 222A-N)을 통해 프록시 컴포넌트(203 및 223)로 원격 측정 정보를 보고하는 것을 지원할 수도 있다. 그 다음, 개발자는 배치를 위해 액세스 가능하게 만들어지는 콘텐츠 아이템 내에 이들 명령어를 포함시킬 수도 있거나, 임베딩할 수도 있거나, 또는 다르게는 관련시킬 수도 있다. 상기에서 상세히 설명되는 바와 같이, 각각의 콘텐츠 아이템 인스턴스로부터 수집되는 원격 측정 정보는, 예를 들면, 점유된 사용자 세션의 수, 점유되지 않은 사용자 세션의 수, 콘텐츠 아이템 인스턴스 지속 기간, 메모리 사용량, 및 등등에 관한 정보를 포함할 수도 있다.
동작 612에서는, 식별 정보가 동작 610에서 수신되는 원격 측정 정보에 할당될 수도 있다. 예를 들면, 상기에서 기재되어 있는 바와 같이, 프록시 컴포넌트(203 및 223)은 규칙의 세트에 따라 소정의 키 또는 다른 식별 정보로 원격 측정 정보를 태그할 수도 있다. 하나의 특정 예에서, 원격 측정 정보는 다음의 포맷을 사용하여 식별될 수도 있다: 플릿 식별자/인스턴스 식별자/경로 식별자/타임스탬프/전역적으로 고유한 식별자(GUID). 플릿 식별자는 원격 측정 정보가 관련되는 특정한 콘텐츠 아이템 플릿에 대한 식별자일 수도 있다. 인스턴스 식별자는 원격 측정 정보가 관련되는 특정한 콘텐츠 아이템 인스턴스에 대한 식별자일 수도 있다. 경로 식별자는, 정보가 전송되어야 하는 하나 이상의 수신측(예를 들면, 도 3의 프로세싱 기능(303A-D) 중 임의의 것 또는 전체)을 나타내는 식별자일 수도 있다.
동작 614에서, 원격 측정 정보 및 식별 정보는 도 3의 원격 측정 도착지(301)(원격 측정 라우팅 기능(302)이 액세스 할 수 있음)와 같은 라우팅 기능이 액세스할 수 있는 위치로 제공된다. 상기에서 기재되어 있는 바와 같이, 몇몇 예에서, 원격 측정 정보는 매 분마다 또는 5 분마다와 같은 규칙적인 반복 간격에서 원격 측정 도착지(301)로 제공될 수도 있다. 몇몇 다른 예에서, 원격 측정 정보는 정보의 연속하는 스트림으로서 또는 임의의 다른 시간 또는 간격에서 제공될 수도 있다.
동작(616)에서, 원격 측정 정보 및 식별 정보는, 예를 들면, 식별 정보 및/또는 원격 측정 정보 자체에 기초하여, 하나 이상의 수신측으로 라우팅된다. 예를 들면, 상기에서 기재되어 있는 바와 같이, 원격 측정 정보는, 콘텐츠 아이템 인스턴스 정보 서비스(115), 콘텐츠 아이템 플릿 정보 서비스(304), 이력 정보 서비스(305), 및 추가적인 서비스(306)에 대한 정보와 관련될 수도 있고 그 정보를 프로세싱할 수도 있는 도 3의 프로세싱 기능(303A-D) 중 임의의 하나 이상과 같은 수신측으로 라우팅될 수도 있다. 프로세싱 기능(303A-D)은 서비스(115 및 304-306)와 같은, 콘텐츠 아이템 인스턴스 정보 분석을 위한 다양한 서비스와 관련될 수도 있다. 상기에서 기재되어 있는 바와 같이, 몇몇 예에서, 인스턴스 레벨 정보 프로세싱 기능(303A)은 콘텐츠 아이템 인스턴스의 플릿에서의 각각의 인스턴스와 관련되는 정보에 대한 것일 수도 있고, 플릿 레벨 정보 프로세싱 기능(303B)은 콘텐츠 아이템 인스턴스의 플릿과 관련되는 정보에 대한 것일 수도 있고, 이력 정보 프로세싱 기능(303C)은 이력 정보에 대한 것일 수도 있다. 몇몇 경우에, 원격 측정 정보는, 예를 들면, 동작 612에서 할당되는 식별 정보 내의 경로 식별자에 기초하여, 프로세싱 기능(303A-D) 중 하나 이상 또는 다른 수신측으로 라우팅될 수도 있다. 동작 618에서, 원격 측정 정보 및 식별 정보는 동작 616에서 결정되는 하나 이상의 수신측으로 전송된다. 상기에서 기재되어 있는 바와 같이, 몇몇 예에서, 원격 측정 라우팅 기능(302) 및/또는 프로세싱 기능(303A-D) 중 임의의 것은, 라우팅 및/또는 프로세싱을 위한 원격 측정 정보의 수신과 같은 이벤트에 적어도 부분적으로 기초하여 실행되는 컴퓨트 서비스를 포함할 수도 있다. 몇몇 예에서, 이벤트에 적어도 부분적으로 기초하여 코드를 실행하는 분산 컴퓨팅 기반의(예를 들면, 클라우드 기반의) 기능을 사용한 원격 측정 라우팅 기능(302) 및/또는 프로세싱 기능(303A-D)의 구현은, 예를 들면, 원격 측정 정보의 라우팅 및/또는 프로세싱에 필요로 될 수도 있는 비용 및 컴퓨팅 리소스의 양을 감소시키는 것에 의해 유익할 수도 있다.
동작 620에서, 원격 측정 정보 및 식별 정보는, 프로세싱 기능(303A-D) 중 하나 이상과 같은 하나 이상의 수신측에 의해 수신된다. 동작 622에서, 원격 측정 정보는 프로세싱될 수도 있는데, 원격 측정 정보를 프로세싱하는 것은, 상기에서 설명되는 것과 같은, 이전에 수신된 원격 측정 정보를 업데이트하는 것, 원격 측정 정보가 개발자, 사용자 또는 다른 당사자에 의해 효율적으로 액세스될 수도 있도록 원격 측정 정보를 편제하는 것, 및 원격 측정 정보에 기초하여 임의의 경보 또는 다른 통지를 생성하는 것을 포함할 수도 있다. 또한, 동작 622에서, 프로세싱 기능(303A-D) 중 하나 이상은 원격 측정 정보를 적절한 서비스(예를 들면, 서비스(115 및/또는 304-306) 중 하나 이상)로 제공할 수도 있다. 상기에서 기재되어 있는 바와 같이, 몇몇 예에서, 동작 612에서 할당되는 식별 정보 내의 경로 식별자는, 원격 측정 정보를 라우팅할 하나 이상의 수신측을 나타내기 위해, 원격 측정 라우팅 기능(302) 및 프로세싱 기능(303A-D) 중 임의의 것에 의해 액세스될 수도 있다. 상기에서 또한 기재되어 있는 바와 같이, 몇몇 예에서, 인스턴스 레벨 프로세싱 기능(303A)은 콘텐츠 아이템 인스턴스 정보 서비스(115)로 정보를 제공할 수도 있고, 플릿 레벨 정보 프로세싱 기능(303B)은 콘텐츠 아이템 플릿 정보 서비스(304)로 정보를 제공할 수도 있고, 이력 정보 프로세싱 기능(303C)은 이력 정보 서비스(305)로 정보를 제공할 수도 있으며, 임의의 수의 추가적인 프로세싱 기능(303D)은 임의의 수의 추가적인 서비스(306)로 정보를 제공할 수도 있다. 몇몇 예에서, 서비스(115 및 304-306) 중 임의의 것 또는 전체는, 콘텐츠 아이템 개발자에게 정보를 제공하기 위해 콘텐츠 아이템 개발자 아이템에 적어도 부분적으로 액세스 가능할 수도 있다.
적어도 몇몇 예에서, 본원에서 설명되는 기술 중 하나 이상의 일부 또는 전체를 구현하는 하나 이상의 컴퓨트 노드는, 하나 이상의 컴퓨터 액세스 가능 매체를 포함하거나 또는 하나 이상의 컴퓨터 액세스 가능 매체에 액세스하도록 구성되는 컴퓨터 시스템을 포함할 수도 있거나 또는 그 컴퓨터 시스템과 관련될 수도 있다. 컴퓨팅 노드로 또한 칭해질 수도 있는 컴퓨트 노드는, 범용 하드웨어 컴퓨터(commodity-hardware computer), 가상 머신, 웹 서비스, 컴퓨팅 클러스터 및 컴퓨팅 어플라이언스와 같은 아주 다양한 컴퓨팅 환경 상에서 구현될 수도 있다. 이들 컴퓨팅 디바이스 또는 환경 중 임의의 것은, 편의상, 컴퓨트 노드로서 설명될 수도 있다. 도 7은 하나 이상의 컴퓨터 액세스 가능 매체를 포함하거나 이에 접속하도록 구성되는 컴퓨터 시스템을 묘사한다. 예시된 실시형태에서, 컴퓨팅 디바이스(15)는 입/출력(input/output: I/O) 인터페이스(30)를 통해 시스템 메모리(20)에 커플링되는 하나 이상의 프로세서(10a, 10b 및/또는 10n)(본원에서는 단수적 표현으로 "프로세서(10)" 또는 복수적 표현으로 "프로세서들(10)로 칭해질 수도 있음)를 포함한다. 컴퓨팅 디바이스(15)는 I/O 인터페이스(30)에 커플링되는 네트워크 인터페이스(40)를 더 포함한다.
다양한 실시형태에서, 컴퓨팅 디바이스(15)는 하나의 프로세서(10)를 포함하는 단일 프로세서 시스템(uniprocessor system) 또는 여러 개의 프로세서(10)(예를 들면, 두 개, 네 개, 여덟 개 또는 다른 적절한 수)를 포함하는 다중 프로세서 시스템(multiprocessor system)일 수도 있다. 프로세서(10)는 명령어를 실행할 수 있는 임의의 적절한 프로세서일 수도 있다. 예를 들면, 다양한 실시형태에서, 프로세서(10)는 x86, PowerPC, SPARC 또는 MIPS ISA 또는 임의의 다른 적절한 ISA와 같은, 다양한 명령어 세트 아키텍처(instruction set architecture: ISA) 중 임의의 것을 구현하는 임베딩된 프로세서일 수도 있다. 다중 프로세서 시스템에서, 프로세서(10)의 각각은 동일한 ISA를 일반적으로 구현할 수도 있지만, 필수적이지는 않을 수도 있다.
시스템 메모리(20)는 프로세서(들)(10)에 의해 액세스 가능한 명령어 및 데이터를 저장하도록 구성될 수도 있다. 다양한 실시형태에서, 시스템 메모리(20)는 정적 랜덤 액세스 메모리(static random access memory: SRAM), 동기식 동적 RAM(synchronous dynamic RAM: SDRAM), 불휘발성/Flash® 타입 메모리 또는 임의의 다른 타입의 메모리와 같은 임의의 적절한 메모리 기술을 사용하여 구현될 수도 있다. 예시된 실시형태에서, 상기에서 설명되는 방법, 기술 및 데이터와 같은, 하나 이상의 소망하는 기능을 구현하는 프로그램 명령어 및 데이터가 시스템 메모리(20) 내에 코드(25) 및 데이터(26)로서 저장되어 도시되어 있다.
하나의 실시형태에서, I/O 인터페이스(30)는, 네트워크 인터페이스(40) 또는 다른 주변장치 인터페이스를 비롯한, 프로세서(10), 시스템 메모리(20) 및 디바이스 내의 임의의 주변장치 사이의 I/O 트래픽을 조정하도록 구성될 수도 있다. 몇몇 실시형태에서, I/O 인터페이스(30)는, 하나의 컴포넌트(예를 들면, 시스템 메모리(20))로부터의 데이터 신호를 다른 컴포넌트(예를 들면, 프로세서(10))에 의한 사용에 적절한 포맷으로 변환하기 위해, 임의의 필요한 프로토콜, 타이밍 또는 다른 데이터 변환을 수행할 수도 있다. 몇몇 실시형태에서, I/O 인터페이스(30)는, 예를 들면, 주변장치 컴포넌트 인터커넥트(Peripheral Component Interconnect: PCI) 버스 표준 또는 범용 직렬 버스(Universal Serial Bus: USB) 표준의 변형안과 같은, 다양한 타입의 주변장치 버스를 통해 부착되는 디바이스에 대한 지원을 포함할 수도 있다. 몇몇 실시형태에서, I/O 인터페이스(30)의 기능은, 예를 들면, 노스 브릿지 및 사우스 브릿지와 같은 두 개 이상의 개별 컴포넌트로 분할될 수도 있다. 또한, 몇몇 실시형태에서, 시스템 메모리(20)에 대한 인터페이스와 같은 I/O 인터페이스(30)의 기능성 중 일부 또는 전체는, 프로세서(10) 안으로 직접적으로 통합될 수도 있다.
네트워크 인터페이스(40)는, 컴퓨팅 디바이스(15)와, 예를 들면 다른 컴퓨터 시스템 또는 디바이스와 같은, 네트워크 또는 네트워크들(50)에 부착되는 다른 디바이스 또는 디바이스들(60) 사이에서 데이터가 교환되는 것을 허용하도록 구성될 수도 있다. 다양한 실시형태에서, 네트워크 인터페이스(40)는, 예를 들면, 이더넷 네트워크의 타입과 같은, 임의의 적절한 유선 또는 무선의 일반적인 데이터 네트워크를 통한 통신을 지원할 수도 있다. 추가적으로, 네트워크 인터페이스(40)는, 아날로그 음성 네트워크 또는 디지털 광섬유 통신 네트워크와 같은 원격 통신/전화 네트워크를 통한, 광섬유 채널(Fibre Channel) SAN(storage area network: 저장 영역 네트워크)과 같은 저장 영역 네트워크를 통한, 또는 임의의 다른 적절한 타입의 네트워크 및/또는 프로토콜을 통한 통신을 지원할 수도 있다.
몇몇 실시형태에서, 시스템 메모리(20)는 대응하는 방법 및 장치의 실시형태를 구현하기 위한 상기에서 설명되는 바와 같은 프로그램 명령어 및 데이터를 저장하도록 구성되는 컴퓨터 액세스 가능 매체의 하나의 실시형태일 수도 있다. 그러나, 다른 실시형태에서, 프로그램 명령어 및/또는 데이터는 상이한 타입의 컴퓨터 액세스 가능 매체 상에서 수신, 전송 또는 저장될 수도 있다. 일반적으로 말해서, 컴퓨터 액세스 가능 매체는, 자기 또는 광학 매체 - I/O 인터페이스(30)를 통해 컴퓨팅 디바이스(15)에 커플링되는 디스크 또는 DVD/CD - 와 같은 비일시적 저장 매체 또는 메모리 매체를 포함할 수도 있다. 비일시적 컴퓨터 액세스 가능 저장 매체는 또한, 컴퓨팅 디바이스(15)의 몇몇 실시형태에서 시스템 메모리(20) 또는 다른 타입의 메모리로서 포함될 수도 있는, RAM(예를 들면, SDRAM, DDR SDRAM, RDRAM, SRAM, 등등), ROM(read only memory: 판독 전용 메모리) 등등과 같은 임의의 휘발성 또는 불휘발성 매체를 포함할 수도 있다. 또한, 컴퓨터 액세스 가능 매체는, 네트워크 인터페이스(40)를 통해 구현될 수도 있는 것과 같은, 네트워크 및/또는 무선 링크와 같은 통신 매체를 통해 전달되는 전기, 전자기 또는 디지털 신호와 같은 신호 또는 전송 매체를 포함할 수도 있다. 도 7에서 예시되는 것과 같은 다수의 컴퓨팅 디바이스 중 일부 또는 전체는, 다양한 실시형태에서 설명된 기능성을 구현하기 위해 사용될 수도 있다; 예를 들면, 다양하고 상이한 디바이스 및 서버 상에서 실행되는 소프트웨어 컴포넌트는 협력하여 그 기능성을 제공할 수도 있다. 몇몇 실시형태에서, 설명된 기능성 중 일부는, 저장 디바이스, 네트워크 디바이스 또는 특수 목적의 컴퓨터 시스템을 사용하여 구현될 수도 있다. 용어 "컴퓨팅 디바이스"는, 본원에서 사용되는 바와 같이, 적어도, 모든 이들 타입의 디바이스를 가리킬 수도 있으며 이들 타입의 디바이스로 한정되지는 않는다.
이전 섹션에서 설명되는 프로세스, 방법 및 알고리즘의 각각은, 하나 이상의 컴퓨터 또는 컴퓨터 프로세서에 의해 실행되는 코드 모듈에서 구현될 수도 있고, 그 코드 모듈에 의해 완전히 또는 부분적으로 자동화될 수도 있다. 코드 모듈은, 하드 드라이브, 솔리드 스테이트 메모리(solid state memory), 광학 디스크 및/또는 등등과 같은 임의의 타입의 비일시적 컴퓨터 판독 가능 매체 또는 컴퓨터 저장 디바이스 상에 저장될 수도 있다. 프로세스 및 알고리즘은 애플리케이션 고유의 회로에서 부분적으로 또는 전적으로 구현될 수도 있다. 개시된 프로세스 및 프로세스 단계의 결과는, 예를 들면, 휘발성 또는 불휘발성 스토리지와 같은 임의의 타입의 비일시적 컴퓨터 스토리지에, 영구적으로 또는 다른 방식으로, 저장될 수도 있다.
상기의 내용은 다음의 조항의 관점에서 더 잘 이해될 수도 있다:
1. 전자적으로 제시되는 콘텐츠 아이템의 실행을 위한 시스템으로서,
하나 이상의 컴퓨팅 디바이스; 및
컴퓨터 실행가능 명령어가 저장된 하나 이상의 메모리를 포함하고, 명령어는, 실행시, 시스템으로 하여금:
사용자가 콘텐츠 아이템에 액세스하려는 요청을 수신하는 것;
콘텐츠 아이템의 복수의 인스턴스와 관련되는 정보를 수신하는 것으로서, 복수의 인스턴스 중 하나 이상은 다수의 동시적으로 할당된 사용자 세션을 갖도록 구성 가능하고, 정보는 복수의 인스턴스 상에서의 사용자 세션 이용 가능성의 표시를 포함하는, 상기 정보를 수신하는 것;
정보에 적어도 부분적으로 기초하여, 사용자와 관련되는 사용자 세션을 콘텐츠 아이템의 인스턴스로 할당하는 것; 및
사용자 세션과 콘텐츠 아이템의 인스턴스 사이의 통신을 확립하기 위한 명령어를 제공하는 것
을 포함하는 동작을 수행하게 한다.
2. 클레임 1의 시스템으로서, 동작은 콘텐츠 아이템과 관련되는 하나 이상의 사용자 선호도를 나타내는 정보를 수신하는 것을 더 포함하고, 사용자 세션은, 적어도 부분적으로, 하나 이상의 사용자 선호도에 추가로 기초하여, 콘텐츠 아이템의 인스턴스에 할당된다.
3. 클레임 1의 시스템으로서, 사용자 세션 이용 가능성의 표시는 복수의 인스턴스의 각각에 대한 점유되지 않은 사용자 세션의 수의 표시를 포함한다.
4. 클레임 1의 시스템으로서, 복수의 인스턴스 중 적어도 두 개는 단일의 가상 머신 인스턴스 상에서 실행한다.
5. 전자적으로 제시되는 콘텐츠 아이템의 실행을 위한 방법으로서,
사용자가 콘텐츠 아이템에 액세스하려는 요청을 수신하는 것;
콘텐츠 아이템의 복수의 인스턴스와 관련되는 정보를 수신하는 것으로서, 복수의 인스턴스 중 하나 이상은 다수의 동시적으로 할당된 사용자 세션을 갖도록 구성 가능하고, 정보는 복수의 인스턴스 상에서의 사용자 세션 이용 가능성의 표시를 포함하는, 상기 정보를 수신하는 것;
정보에 적어도 부분적으로 기초하여, 사용자와 관련되는 사용자 세션을 콘텐츠 아이템의 인스턴스로 할당하는 것; 및
사용자 세션과 콘텐츠 아이템의 인스턴스 사이의 통신을 확립하기 위한 명령어를 제공하는 것을 포함한다.
6. 클레임 5의 방법으로서, 콘텐츠 아이템과 관련되는 하나 이상의 사용자 선호도를 나타내는 정보를 수신하는 것을 더 포함하되, 사용자 세션은, 적어도 부분적으로, 하나 이상의 사용자 선호도에 추가로 기초하여, 콘텐츠 아이템의 인스턴스에 할당된다.
7. 클레임 5의 방법으로서, 콘텐츠 아이템은 콘텐츠 아이템의 복수의 인스턴스를 호스팅하는 서비스와 관련되는 SDK를 사용하여 생성된다.
8. 클레임 5의 방법으로서, 콘텐츠 아이템의 인스턴스는, 사용자 세션이 콘텐츠 아이템의 인스턴스에 할당될 때, 론칭되고 실행한다.
9. 클레임 5의 방법으로서, 콘텐츠 아이템의 인스턴스는, 사용자 세션이 콘텐츠 아이템의 인스턴스에 할당된 이후, 실행을 위해 론칭된다.
10. 클레임 5의 방법으로서, 사용자 세션 이용 가능성의 표시는 복수의 인스턴스의 각각에 대한 점유되지 않은 사용자 세션의 수의 표시를 포함한다.
11. 클레임 5의 방법으로서,
저장된 정보에 적어도 부분적으로 기초하여, 사용자가 액세스하도록 자격을 부여 받는지 하나 이상의 콘텐츠 아이템을 결정하는 것; 및
사용자가 액세스 하도록 자격을 부여 받는 하나 이상의 콘텐츠 아이템 중 적어도 하나의 표시를 제공하는 것을 더 포함하되, 사용자가 액세스를 요청하는 콘텐츠 아이템은 제공된 표시 내에 포함된다.
12. 클레임 5의 방법으로서, 복수의 인스턴스 중 적어도 두 개는 단일의 가상 머신 인스턴스 상에서 실행한다.
13. 명령어가 저장된 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체로서, 명령어는, 적어도 하나의 컴퓨트 노드 상에서의 실행시, 적어도 하나의 컴퓨트 노드로 하여금:
사용자가 전자적으로 제시되는 콘텐츠 아이템에 액세스하려는 요청을 수신하는 것;
콘텐츠 아이템과 관련되는 하나 이상의 사용자 선호도를 나타내는 정보를 수신하는 것;
콘텐츠 아이템의 복수의 인스턴스와 관련되는 정보를 수신하는 것으로서, 정보는 복수의 인스턴스 상에서의 사용자 세션 이용 가능성의 표시를 포함하는, 상기 정보를 수신하는 것;
하나 이상의 사용자 선호도 및 복수의 인스턴스와 관련된 정보에 적어도 부분적으로 기초하여, 사용자와 관련되는 사용자 세션을 콘텐츠 아이템의 인스턴스에 할당하는 것; 및
사용자 세션과 콘텐츠 아이템의 인스턴스 사이의 통신을 확립하기 위한 명령어를 제공하는 것
을 포함하는 동작을 수행하게 한다.
14. 클레임 13의 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체로서, 콘텐츠 아이템은 콘텐츠 아이템의 복수의 인스턴스를 호스팅하는 서비스와 관련되는 SDK를 사용하여 생성된다.
15. 클레임 13의 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체로서, 복수의 인스턴스 중 하나 이상은 다수의 동시적으로 할당된 사용자 세션을 갖도록 구성 가능하다.
16. 클레임 13의 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체로서, 콘텐츠 아이템의 인스턴스는, 사용자 세션이 콘텐츠 아이템의 인스턴스에 할당될 때, 론칭되고 실행한다.
17. 클레임 13의 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체로서, 콘텐츠 아이템의 인스턴스는, 사용자 세션이 콘텐츠 아이템의 인스턴스에 할당된 이후, 실행을 위해 론칭된다.
18. 클레임 13의 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체로서, 사용자 세션 이용 가능성의 표시는 복수의 인스턴스의 각각에 대한 점유되지 않은 사용자 세션의 수의 표시를 포함한다.
19. 클레임 13의 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체로서, 동작은:
저장된 정보에 적어도 부분적으로 기초하여, 사용자가 액세스하도록 자격을 부여 받는지 하나 이상의 콘텐츠 아이템을 결정하는 것; 및
사용자가 액세스 하도록 자격을 부여 받는 하나 이상의 콘텐츠 아이템 중 적어도 하나의 표시를 제공하는 것을 더 포함하되, 사용자가 액세스를 요청하는 콘텐츠 아이템은 제공된 표시 내에 포함된다.
20. 클레임 13의 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체로서, 복수의 인스턴스 중 적어도 두 개는 단일의 가상 머신 인스턴스 상에서 실행한다.
상기의 내용은 또한 다음의 조항의 관점에서 더 잘 이해될 수도 있다:
1. 전자적으로 제시되는 콘텐츠 아이템의 배치를 위한 시스템으로서,
하나 이상의 컴퓨팅 디바이스; 및
컴퓨터 실행가능 명령어가 저장된 하나 이상의 메모리를 포함하고, 명령어는, 실행시, 시스템으로 하여금:
콘텐츠 아이템이 배치 준비가 되었다는 표시를 수신하는 것으로서, 콘텐츠 아이템은 복수의 콘텐츠 아이템 인스턴스를 사용하여 배치되고, 복수의 콘텐츠 아이템 인스턴스 중 하나 이상은 다수의 동시적으로 할당된 사용자 세션을 갖도록 구성 가능한, 상기 표시를 수신하는 것;
표시에 적어도 부분적으로 기초하여, 적어도 제1 콘텐츠 아이템 인스턴스를 이미지로서 제1 가상 머신 인스턴스 상에 설치하는 것;
추가적인 가상 머신 인스턴스를 복수의 콘텐츠 아이템 인스턴스에 할당하는 것과 관련되는 조건을 검출하는 것;
조건에 적어도 부분적으로 기초하여, 추가적인 가상 머신 인스턴스를 복수의 콘텐츠 아이템 인스턴스에 할당하는 것; 및
이미지를 추가적인 가상 머신 인스턴스 상으로 복사하는 것
을 포함하는 동작을 수행하게 한다.
2. 클레임 1의 시스템으로서, 할당과 관련되는 조건은, 복수의 콘텐츠 아이템 인스턴스에 대한 점유되지 않은 사용자 세션의 총 수가 특정한 양을 충족했다는 것 또는 그 특정한 양 아래로 떨어졌다는 것을 결정하는 것 또는 복수의 콘텐츠 아이템 인스턴스에 대한 점유되지 않은 사용자 세션의 평균 수가 특정한 양을 충족했다는 것 또는 그 특정한 양 아래로 떨어졌다는 것을 결정하는 것 중 적어도 하나를 포함한다.
3. 클레임 1의 시스템으로서, 동작은:
가상 머신 인스턴스를 복수의 콘텐츠 아이템 인스턴스로부터 할당 해제하는 것과 관련되는 조건을 검출하는 것;
조건에 적어도 부분적으로 기초하여, 가상 머신 인스턴스를 복수의 콘텐츠 아이템 인스턴스로부터 할당 해제하는 것; 및
가상 머신 인스턴스를 종료하는 것 또는 용도를 변경하는 것 중 적어도 하나를 수행하는 것을 더 포함한다.
4. 클레임 3의 시스템으로서, 할당 해제와 관련되는 조건은, 복수의 콘텐츠 아이템 인스턴스에 대한 점유되지 않은 사용자 세션의 총 수가 특정한 양을 충족 또는 초과한다는 것을 결정하는 것 또는 복수의 콘텐츠 아이템 인스턴스에 대한 점유되지 않은 사용자 세션의 평균 수가 특정한 양을 충족 또는 초과한다는 것을 결정하는 것 중 적어도 하나를 포함한다.
5. 클레임 1의 시스템으로서, 콘텐츠 아이템은 복수의 콘텐츠 아이템 인스턴스를 호스팅하는 서비스와 관련되는 SDK를 사용하여 생성된다.
6. 전자적으로 제시되는 콘텐츠 아이템의 배치를 위한 방법으로서,
콘텐츠 아이템이 배치 준비가 되었다는 표시를 수신하는 것으로서, 콘텐츠 아이템은 복수의 콘텐츠 아이템 인스턴스를 사용하여 배치되고, 복수의 콘텐츠 아이템 인스턴스 중 하나 이상은 다수의 동시적으로 할당된 사용자 세션을 갖도록 구성 가능한, 상기 표시를 수신하는 것;
표시에 적어도 부분적으로 기초하여, 적어도 제1 콘텐츠 아이템 인스턴스를 이미지로서 제1 가상 머신 인스턴스 상에 설치하는 것;
사용자가 콘텐츠 아이템에 액세스하려는 복수의 요청을 수신하는 것; 및
복수의 요청에 적어도 부분적으로 기초하여, 이미지를 하나 이상의 다른 가상 머신 인스턴스 상으로 복사하는 것을 포함한다.
7. 클레임 6의 방법으로서,
추가적인 가상 머신 인스턴스를 복수의 콘텐츠 아이템 인스턴스에 할당하는 것과 관련되는 조건을 검출하는 것;
조건에 적어도 부분적으로 기초하여, 추가적인 가상 머신 인스턴스를 복수의 콘텐츠 아이템 인스턴스에 할당하는 것; 및
이미지를 추가적인 가상 머신 인스턴스 상으로 복사하는 것을 더 포함한다.
8. 클레임 7의 방법으로서, 조건은, 복수의 콘텐츠 아이템 인스턴스에 대한 점유되지 않은 사용자 세션의 총 수가 특정한 양을 충족했다는 것 또는 그 특정한 양 아래로 떨어졌다는 것을 결정하는 것 또는 복수의 콘텐츠 아이템 인스턴스에 대한 점유되지 않은 사용자 세션의 평균 수가 특정한 양을 충족했다는 것 또는 그 특정한 양 아래로 떨어졌다는 것을 결정하는 것 중 적어도 하나를 포함한다.
9. 클레임 6의 방법으로서,
가상 머신 인스턴스를 복수의 콘텐츠 아이템 인스턴스로부터 할당 해제하는 것과 관련되는 조건을 검출하는 것;
조건에 적어도 부분적으로 기초하여, 가상 머신 인스턴스를 복수의 콘텐츠 아이템 인스턴스로부터 할당 해제하는 것; 및
가상 머신 인스턴스를 종료하는 것 또는 용도를 변경하는 것 중 적어도 하나를 수행하는 것을 더 포함한다.
10. 클레임 9의 방법으로서, 조건은, 복수의 콘텐츠 아이템 인스턴스에 대한 점유되지 않은 사용자 세션의 총 수가 특정한 양을 충족 또는 초과한다는 것을 결정하는 것 또는 복수의 콘텐츠 아이템 인스턴스에 대한 점유되지 않은 사용자 세션의 평균 수가 특정한 양을 충족 또는 초과한다는 것을 결정하는 것 중 적어도 하나를 포함한다.
11. 클레임 6의 방법으로서, 복수의 요청이 수신되는 사용자를 인증하는 것을 더 포함한다.
12. 클레임 6의 방법으로서, 저장된 정보에 적어도 부분적으로 기초하여, 사용자가 콘텐츠 아이템에 액세스하도록 자격을 부여 받는다는 것을 결정하는 것을 더 포함한다.
13. 클레임 6의 방법으로서, 복수의 콘텐츠 아이템 인스턴스 중 적어도 두 개는 단일 가상 머신 인스턴스 상에서 실행한다.
14. 클레임 6의 방법으로서, 콘텐츠 아이템은 복수의 콘텐츠 아이템 인스턴스를 호스팅하는 서비스와 관련되는 SDK를 사용하여 생성된다.
15. 클레임 6의 방법으로서, 콘텐츠 아이템은 비디오 게임이다.
16. 명령어가 저장된 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체로서, 명령어는, 적어도 하나의 컴퓨트 노드 상에서의 실행시, 적어도 하나의 컴퓨트 노드로 하여금:
전자적으로 제시되는 콘텐츠 아이템이 배치 준비되었다는 표시를 수신하는 것으로서, 콘텐츠 아이템은 복수의 콘텐츠 아이템 인스턴스를 사용하여 배치되고, 복수의 콘텐츠 아이템 인스턴스 중 하나 이상은 다수의 동시적으로 할당된 사용자 세션을 갖도록 구성 가능한, 상기 표시를 수신하는 것;
표시에 적어도 부분적으로 기초하여, 적어도 제1 콘텐츠 아이템 인스턴스를 이미지로서 제1 가상 머신 인스턴스 상에 설치하는 것;
사용자가 콘텐츠 아이템에 액세스하려는 복수의 요청을 수신하는 것; 및
복수의 요청에 적어도 부분적으로 기초하여, 이미지를 하나 이상의 다른 가상 머신 인스턴스 상으로 복사하는 것
을 포함하는 동작을 수행하게 한다.
17. 클레임 16의 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체로서, 동작은:
추가적인 가상 머신 인스턴스를 복수의 콘텐츠 아이템 인스턴스에 할당하는 것과 관련되는 조건을 검출하는 것;
조건에 적어도 부분적으로 기초하여, 추가적인 가상 머신 인스턴스를 복수의 콘텐츠 아이템 인스턴스에 할당하는 것; 및
이미지를 추가적인 가상 머신 인스턴스 상으로 복사하는 것을 더 포함한다.
18. 클레임 17의 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체로서, 조건은, 복수의 콘텐츠 아이템 인스턴스에 대한 점유되지 않은 사용자 세션의 총 수가 특정한 양을 충족했다는 것 또는 그 특정한 양 아래로 떨어졌다는 것을 결정하는 것 또는 복수의 콘텐츠 아이템 인스턴스에 대한 점유되지 않은 사용자 세션의 평균 수가 특정한 양을 충족했다는 것 또는 그 특정한 양 아래로 떨어졌다는 것을 결정하는 것 중 적어도 하나를 포함한다.
19. 클레임 16의 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체로서, 동작은:
가상 머신 인스턴스를 복수의 콘텐츠 아이템 인스턴스로부터 할당 해제하는 것과 관련되는 조건을 검출하는 것;
조건에 적어도 부분적으로 기초하여, 가상 머신 인스턴스를 복수의 콘텐츠 아이템 인스턴스로부터 할당 해제하는 것; 및
가상 머신 인스턴스를 종료하는 것 또는 용도를 변경하는 것 중 적어도 하나를 수행하는 것을 더 포함한다.
20. 클레임 19의 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체로서, 조건은, 복수의 콘텐츠 아이템 인스턴스에 대한 점유되지 않은 사용자 세션의 총 수가 특정한 양을 충족 또는 초과한다는 것을 결정하는 것 또는 복수의 콘텐츠 아이템 인스턴스에 대한 점유되지 않은 사용자 세션의 평균 수가 특정한 양을 충족 또는 초과한다는 것을 결정하는 것 중 적어도 하나를 포함한다.
21. 클레임 16의 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체로서, 동작은, 복수의 요청이 수신되는 사용자를 인증하는 것을 더 포함한다.
22. 클레임 16의 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체로서, 동작은, 저장된 정보에 적어도 부분적으로 기초하여, 사용자가 콘텐츠 아이템에 액세스하도록 자격을 부여 받았다는 것을 결정하는 것을 더 포함한다.
23. 클레임 16의 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체로서, 복수의 콘텐츠 아이템 인스턴스 중 적어도 두 개는 단일 가상 머신 인스턴스 상에서 실행한다.
24. 클레임 16의 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체로서, 콘텐츠 아이템은 복수의 콘텐츠 아이템 인스턴스를 호스팅하는 서비스와 관련되는 SDK를 사용하여 생성된다.
25. 클레임 16의 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체로서, 콘텐츠 아이템은 비디오 게임이다.
상기의 내용은 또한 다음의 조항의 관점에서 더 잘 이해될 수도 있다:
1. 복수의 콘텐츠 아이템 인스턴스의 인스턴스로부터 정보를 제공하기 위한 시스템으로서,
하나 이상의 컴퓨팅 디바이스; 및
컴퓨터 실행가능 명령어가 저장된 하나 이상의 메모리를 포함하고, 명령어는, 실행시, 시스템으로 하여금:
복수의 콘텐츠 아이템 인스턴스의 인스턴스로부터 정보를 수집하는 것으로서, 복수의 인스턴스의 각각의 인스턴스는 다수의 동시적으로 할당된 사용자 세션을 갖도록 구성 가능하고, 정보는, 인스턴스에 대한 점유된 사용자 세션의 수, 인스턴스에 대한 열린 사용자 세션의 수, 인스턴스의 지속 기간, 또는 인스턴스에 의한 메모리 사용량 중 적어도 하나의 표시를 포함하는, 상기 정보를 수집하는 것;
정보에 적어도 부분적으로 기초하여, 정보를 라우팅할 복수의 수신측 중 적어도 하나를 결정하는 것으로서, 복수의 수신측 중 제1 수신측은 복수의 콘텐츠 아이템 인스턴스의 각각의 인스턴스와 관련되는 정보에 대한 것이고, 복수의 수신측 중 제2 수신측은 복수의 콘텐츠 아이템 인스턴스와 관련되는 정보에 대한 것인, 상기 정보를 라우팅할 복수의 수신측 중 적어도 하나를 결정하는 것; 및
정보를 복수의 수신측 중 적어도 하나로 전송하는 것
을 포함하는 동작을 수행하게 한다.
2. 클레임 1의 시스템으로서, 결정 및 라우팅은 라우팅 기능에 의해 수행되고, 복수의 수신측 중 적어도 하나 또는 라우팅 기능 중 적어도 하나는, 이벤트에 적어도 부분적으로 기초하여 코드를 실행하는 클라우드 기반 기능이다.
3. 클레임 1의 시스템으로서, 동작은 복수의 콘텐츠 아이템 인스턴스의 인스턴스로부터의 정보에 식별 정보를 할당하는 것을 더 포함하고, 결정하는 것은 식별 정보에 적어도 부분적으로 기초한다.
4. 클레임 3의 시스템으로서, 식별 정보는, 콘텐츠 아이템 플릿 식별자, 콘텐츠 아이템 인스턴스 식별자, 경로 식별자, 타임스탬프, 및 전역적으로 고유한 식별자(GUID) 중 적어도 하나를 포함한다.
5. 복수의 콘텐츠 아이템 인스턴스의 인스턴스로부터 정보를 제공하기 위한 방법으로서,
복수의 콘텐츠 아이템 인스턴스의 인스턴스로부터 정보를 수집하는 것;
정보를 라우팅할 복수의 수신측 중 적어도 하나를 결정하는 것으로서, 복수의 수신측 중 제1 수신측은 복수의 콘텐츠 아이템 인스턴스의 각각의 인스턴스와 관련되는 정보에 대한 것이고, 복수의 수신측 중 제2 수신측은 복수의 콘텐츠 아이템 인스턴스와 관련되는 정보에 대한 것인, 상기 정보를 라우팅할 복수의 수신측 중 적어도 하나를 결정하는 것; 및
정보를 복수의 수신측 중 적어도 하나로 전송하는 것을 포함한다.
6. 클레임 5의 방법으로서, 정보는, 인스턴스에 대한 점유된 사용자 세션의 수, 인스턴스에 대한 열린 사용자 세션의 수, 인스턴스의 지속 기간, 또는 인스턴스에 의한 메모리 사용량 중 적어도 하나의 표시를 포함한다.
7. 클레임 5의 방법으로서, 결정 및 라우팅은 라우팅 기능에 의해 수행되고, 복수의 수신측 중 적어도 하나 또는 라우팅 기능 중 적어도 하나는, 이벤트에 적어도 부분적으로 기초하여 코드를 실행하는 클라우드 기반 기능이다.
8. 클레임 5의 방법으로서, 복수의 콘텐츠 아이템 인스턴스의 인스턴스로부터의 정보에 식별 정보를 할당하는 것을 더 포함하되, 결정하는 것은 식별 정보에 적어도 부분적으로 기초한다.
9. 클레임 8의 방법으로서, 식별 정보는, 콘텐츠 아이템 플릿 식별자, 콘텐츠 아이템 인스턴스 식별자, 경로 식별자, 타임스탬프, 및 전역적으로 고유한 식별자(GUID) 중 적어도 하나를 포함한다.
10. 클레임 5의 방법으로서, 복수의 수신측은 이력 정보에 대한 제3 수신측을 더 포함한다.
11. 클레임 5의 방법으로서, 복수의 인스턴스의 각각은 다수의 동시적으로 할당된 사용자 세션을 갖도록 구성 가능하다.
12. 클레임 5의 방법으로서, 복수의 콘텐츠 아이템 인스턴스의 각각의 인스턴스와 관련되는 정보는, 복수의 콘텐츠 아이템 인스턴스의 각각의 인스턴스에 사용자 세션을 할당하기 위해 사용된다.
13. 클레임 5의 방법으로서, 복수의 수신측은 콘텐츠 아이템 인스턴스 정보 분석을 위한 복수의 서비스와 관련된다.
14. 클레임 13의 방법으로서, 개발자에게 정보를 제공하기 위해 복수의 서비스를 콘텐츠 아이템의 개발자가 적어도 부분적으로 액세스할 수 있다.
15. 명령어가 저장된 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체로서, 명령어는, 적어도 하나의 컴퓨트 노드 상에서의 실행시, 적어도 하나의 컴퓨트 노드로 하여금:
복수의 콘텐츠 아이템 인스턴스의 인스턴스로부터 상기 정보를 수집하는 것;
정보를 라우팅할 복수의 수신측 중 적어도 하나를 결정하는 것으로서, 복수의 수신측 중 제1 수신측은 복수의 콘텐츠 아이템 인스턴스의 각각의 인스턴스와 관련되는 정보에 대한 것이고, 복수의 수신측 중 제2 수신측은 복수의 콘텐츠 아이템 인스턴스와 관련되는 정보에 대한 것인, 상기 정보를 라우팅할 복수의 수신측 중 적어도 하나를 결정하는 것; 및
정보를 복수의 수신측 중 적어도 하나로 전송하는 것
을 포함하는 동작을 수행하게 한다.
16. 클레임 15의 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체로서, 정보는, 인스턴스에 대한 점유된 사용자 세션의 수, 인스턴스에 대한 열린 사용자 세션의 수, 인스턴스의 지속 기간, 또는 인스턴스에 의한 메모리 사용량 중 적어도 하나의 표시를 포함한다.
17. 클레임 15의 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체로서, 결정 및 라우팅은 라우팅 기능에 의해 수행되고, 복수의 수신측 중 적어도 하나 또는 라우팅 기능 중 적어도 하나는, 이벤트에 적어도 부분적으로 기초하여 코드를 실행하는 클라우드 기반 기능이다.
18. 클레임 15의 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체로서, 동작은 복수의 콘텐츠 아이템 인스턴스의 인스턴스로부터의 정보에 식별 정보를 할당하는 것을 더 포함하고, 결정하는 것은 식별 정보에 적어도 부분적으로 기초한다.
19. 클레임 18의 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체로서, 식별 정보는, 콘텐츠 아이템 플릿 식별자, 콘텐츠 아이템 인스턴스 식별자, 경로 식별자, 타임스탬프, 및 전역적으로 고유한 식별자(GUID) 중 적어도 하나를 포함한다.
20. 클레임 15의 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체로서, 복수의 수신측은 이력 정보에 대한 제3 수신측을 더 포함한다.
21. 클레임 15의 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체로서, 복수의 인스턴스의 각각은 다수의 동시적으로 할당된 사용자 세션을 갖도록 구성 가능하다.
22. 클레임 15의 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체로서, 복수의 콘텐츠 아이템 인스턴스의 각각의 인스턴스와 관련되는 정보는, 복수의 콘텐츠 아이템 인스턴스의 각각의 인스턴스에 사용자 세션을 할당하기 위해 사용된다.
23. 클레임 15의 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체로서, 복수의 수신측은 콘텐츠 아이템 인스턴스 정보 분석을 위한 복수의 서비스와 관련된다.
24. 클레임 23의 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체로서, 개발자에게 정보를 제공하기 위해 복수의 서비스를 콘텐츠 아이템의 개발자가 적어도 부분적으로 액세스할 수 있다.
상기에서 설명되는 다양한 피쳐 및 프로세스는 서로 독립적으로 사용될 수도 있거나, 또는 다양한 방식으로 결합될 수도 있다. 모든 가능한 조합 및 부조합은 본 개시의 범위 내에 속하도록 의도된다. 게다가, 몇몇 구현예에서는 소정의 방법 또는 프로세스 블록이 생략될 수도 있다. 본원에서 설명되는 방법 및 프로세스는 또한 임의의 특정한 시퀀스로 한정되지 않으며 본원에서 설명되는 방법 및 프로세스에 관련되는 블록 또는 상태는 적절한 다른 시퀀스에서 수행될 수 있다. 예를 들면, 설명된 블록 또는 상태는 구체적으로 개시되는 것 이외의 순서로 수행될 수도 있거나, 또는 다수의 블록 또는 상태가 단일 블록 또는 상태로 결합될 수도 있다. 예시적인 블록 또는 상태는 직렬로, 병렬로 또는 어떤 다른 방식으로 수행될 수도 있다. 블록 또는 상태는 개시된 예시적인 실시형태에 추가될 수도 있거나 그 예시적인 실시형태로부터 제거될 수도 있다. 본원에서 설명되는 예시적인 시스템 및 컴포넌트는 설명된 것과는 상이하게 구성될 수도 있다. 예를 들면, 개시된 예시적인 실시형태와 비교하여, 엘리먼트가 추가될 수도 있거나, 제거될 수도 있거나 또는 재배열될 수도 있다.
다양한 아이템이, 사용되는 동안, 메모리 또는 스토리지에 저장되는 것으로 예시된다는 것, 및 이들 아이템 또는 그 일부는 메모리 관리 및 데이터 무결성의 목적을 위해 메모리와 다른 저장 디바이스 사이에서 전송될 수도 있다는 것이 또한 이해될 것이다. 대안적으로, 다른 실시형태에서, 소프트웨어 모듈 및/또는 시스템 중 일부 또는 전체는 다른 디바이스 상의 메모리에서 실행될 수도 있으며, 컴퓨터 간 통신을 통해 예시된 컴퓨팅 시스템과 통신할 수도 있다. 또한, 몇몇 예에서, 시스템 및/또는 모듈의 일부 또는 전체는 다른 방식으로, 예컨대 적어도 부분적으로는, 하나 이상의 주문형 반도체(application-specific integrated circuit; ASIC), 표준 집적 회로, (예를 들면, 적절한 명령어를 실행하는 것에 의한, 그리고 마이크로컨트롤러 및/또는 임베딩된 컨트롤러를 포함하는 것에 의한) 컨트롤러, 필드 프로그래머블 게이트 어레이(field-programmable gate array; FPGA), 복합 프로그래머블 로직 디바이스(complex programmable logic device; CPLD), 등등을 포함하는 그러나 이들로 제한되지는 않는 하드웨어 및/또는 펌웨어에서 구현 또는 제공될 수도 있다. 모듈, 시스템 및 데이터 구조의 일부 또는 전체는 또한, 적절한 드라이브에 의해 또는 적절한 연결을 통해 판독될 하드 디스크, 메모리, 네트워크 또는 휴대형 미디어 물품과 같은 컴퓨터 판독 가능 매체 상에 (예를 들면, 소프트웨어 명령어 또는 구조화된 데이터로서) 저장될 수도 있다. 시스템, 모듈 및 데이터 구조는 또한, 무선 기반의 그리고 유선/케이블 기반의 매체를 비롯한 다양한 컴퓨터 판독 가능 전송 매체 상에서 생성된 데이터 신호로서(예를 들면, 반송파 또는 다른 아날로그 또는 디지털 전파 신호의 일부로서) 전송될 수도 있고, (예를 들면, 단일의 또는 다중화된 아날로그 신호의 일부로서, 또는 다수의 별개의 디지털 패킷 또는 프레임으로서) 다양한 형태를 취할 수도 있다. 이러한 컴퓨터 프로그램 제품은 또한, 다른 실시형태에서 다른 형태를 취할 수도 있다. 따라서, 본 발명은 다른 컴퓨터 시스템 구성을 가지고 실시될 수도 있다.
본원에서 사용되는 조건부 언어, 예컨대, 다른 것들 중에서도, "할 수 있다(can)", "할 수 있었을 것이다(could)", "할 수도 있었을 것이다(might)", "할 수도 있다(may)", "예를 들면", 및 등등은, 구체적으로 달리 언급되지 않는 한, 또는 사용될 때의 문맥 내에서 달리 이해되지 않는 한, 소정의 실시형태가, 다른 실시형태는 포함하지 않지만, 소정의 피쳐, 엘리먼트, 및/또는 단계를 포함한다는 것을 전달하도록 일반적으로 의도된다. 따라서, 이러한 조건부 언어는, 하나 이상의 실시형태에 대해 피쳐, 엘리먼트 및/또는 단계가 어떤 방식으로든 필요로 된다는 것 또는 하나 이상의 실시형태가, 저자 입력(author input) 또는 프롬프트(prompting)를 가지고 또는 저자 입력 또는 프롬프트 없이, 이들 피쳐, 엘리먼트 및/또는 단계가 임의의 특정한 실시형태에서 포함되는지 또는 수행될 것인지의 여부를 결정하기 위한 로직을 반드시 포함한다는 것을 암시하도록 일반적으로 의도되지는 않는다. 용어 "포함하는(comprising)", "포함하는(including)", "구비하는(having)" 및 등등은 동의어이며 확장 가능한 양식(open-ended fashion)으로 포괄적으로 사용되며, 추가적인 엘리먼트, 피쳐, 액트, 동작 및 등등을 배제하지는 않는다. 또한, 용어 "또는"은, 예를 들면, 엘리먼트의 리스트를 연결하도록 사용되는 경우, 용어 "또는"은, 리스트 내의 엘리먼트 중 하나, 몇몇, 또는 전체를 의미하도록, (배타적인 의미에서가 아니라) 포괄적인 의미에서 사용된다.
소정의 예시적인 실시형태가 설명되었지만, 이들 실시형태는 단지 예로서 제시되었으며 본원에서 개시되는 본 발명의 범위를 제한하도록 의도되지는 않는다. 따라서, 상기의 설명에서는, 어떤 것도 임의의 특정한 피쳐, 특성, 단계, 모듈 또는 블록이 필수적이거나 필수 불가결하다는 것을 암시하도록 의도되지는 않는다. 실제로, 본원에서 설명되는 신규의 방법 및 시스템은 다양한 다른 형태로 구현될 수도 있으며; 또한, 본원에서 개시되는 본 발명의 취지를 벗어나지 않으면서 본원에서 설명되는 방법 및 시스템의 형태에서의 다양한 생략, 대체 및 변경이 이루어질 수도 있다. 첨부된 청구범위 및 그 등가물은, 본원에서 개시되는 본 발명의 범위 및 취지 내에 있을 이러한 형태 또는 수정을 포괄하도록 의도된다.

Claims (15)

  1. 전자적으로 제시되는 콘텐츠 아이템의 실행을 위한 시스템으로서,
    하나 이상의 컴퓨팅 디바이스; 및
    컴퓨터 실행가능 명령어가 저장된 하나 이상의 메모리를 포함하고, 상기 명령어는, 실행시, 상기 시스템으로 하여금:
    사용자가 상기 콘텐츠 아이템에 액세스하려는 요청을 수신하는 것;
    상기 콘텐츠 아이템의 복수의 인스턴스와 관련되는 정보를 수신하는 것으로서, 상기 복수의 인스턴스 중 하나 이상은 다수의 동시적으로 할당된 사용자 세션을 갖도록 구성 가능하고, 상기 정보는 상기 복수의 인스턴스 상에서의 사용자 세션 이용 가능성의 표시를 포함하는, 상기 정보를 수신하는 것;
    상기 정보에 적어도 부분적으로 기초하여, 상기 사용자와 관련되는 사용자 세션을 상기 콘텐츠 아이템의 인스턴스로 할당하는 것; 및
    상기 사용자 세션과 상기 콘텐츠 아이템의 상기 인스턴스 사이의 통신을 확립하기 위한 명령어를 제공하는 것
    을 포함하는 동작을 수행하게 하는, 전자적으로 제시되는 콘텐츠 아이템의 실행을 위한 시스템.
  2. 제1항에 있어서, 상기 동작은 상기 콘텐츠 아이템과 관련되는 하나 이상의 사용자 선호도를 나타내는 정보를 수신하는 것을 더 포함하고, 상기 사용자 세션은, 적어도 부분적으로, 상기 하나 이상의 사용자 선호도에 추가로 기초하여, 상기 콘텐츠 아이템의 상기 인스턴스에 할당되는, 전자적으로 제시되는 콘텐츠 아이템의 실행을 위한 시스템.
  3. 제1항에 있어서, 사용자 세션 이용 가능성의 상기 표시는 상기 복수의 인스턴스의 각각에 대한 점유되지 않은 사용자 세션의 수의 표시를 포함하는, 전자적으로 제시되는 콘텐츠 아이템의 실행을 위한 시스템.
  4. 제1항에 있어서, 상기 복수의 인스턴스 중 적어도 두 개는 단일의 가상 머신 인스턴스 상에서 실행하는, 전자적으로 제시되는 콘텐츠 아이템의 실행을 위한 시스템.
  5. 제1항에 있어서, 상기 콘텐츠 아이템은 상기 콘텐츠 아이템의 상기 복수의 인스턴스를 호스팅하는 서비스와 관련되는 SDK를 사용하여 생성되는, 전자적으로 제시되는 콘텐츠 아이템의 실행을 위한 시스템.
  6. 전자적으로 제시되는 콘텐츠 아이템의 배치를 위한 방법으로서,
    상기 콘텐츠 아이템이 배치 준비가 되었다는 표시를 수신하는 단계로서, 상기 콘텐츠 아이템은 복수의 콘텐츠 아이템 인스턴스를 사용하여 배치되고, 상기 복수의 콘텐츠 아이템 인스턴스 중 하나 이상은 다수의 동시적으로 할당된 사용자 세션을 갖도록 구성 가능한, 상기 표시를 수신하는 단계;
    상기 표시에 적어도 부분적으로 기초하여, 적어도 제1 콘텐츠 아이템 인스턴스를 이미지로서 제1 가상 머신 인스턴스 상에 설치하는 단계;
    사용자가 상기 콘텐츠 아이템에 액세스하려는 복수의 요청을 수신하는 단계; 및
    상기 복수의 요청에 적어도 부분적으로 기초하여, 상기 이미지를 하나 이상의 다른 가상 머신 인스턴스 상으로 복사하는 단계를 포함하는, 전자적으로 제시되는 콘텐츠 아이템의 배치를 위한 방법.
  7. 제6항에 있어서,
    추가적인 가상 머신 인스턴스를 상기 복수의 콘텐츠 아이템 인스턴스에 할당하는 것과 관련되는 조건을 검출하는 단계;
    상기 조건에 적어도 부분적으로 기초하여, 상기 추가적인 가상 머신 인스턴스를 상기 복수의 콘텐츠 아이템 인스턴스에 할당하는 단계; 및
    상기 이미지를 상기 추가적인 가상 머신 인스턴스 상으로 복사하는 단계를 더 포함하는, 전자적으로 제시되는 콘텐츠 아이템의 배치를 위한 방법.
  8. 제7항에 있어서, 상기 조건은, 상기 복수의 콘텐츠 아이템 인스턴스에 대한 점유되지 않은 사용자 세션의 총 수가 특정한 양을 충족했다는 것 또는 상기 특정한 양 아래로 떨어졌다는 것을 결정하는 것 또는 상기 복수의 콘텐츠 아이템 인스턴스에 대한 점유되지 않은 사용자 세션의 평균 수가 특정한 양을 충족했다는 것 또는 상기 특정한 양 아래로 떨어졌다는 것을 결정하는 것 중 적어도 하나를 포함하는, 전자적으로 제시되는 콘텐츠 아이템의 배치를 위한 방법.
  9. 제6항에 있어서,
    가상 머신 인스턴스를 상기 복수의 콘텐츠 아이템 인스턴스로부터 할당 해제하는 것과 관련되는 조건을 검출하는 단계;
    상기 조건에 적어도 부분적으로 기초하여, 상기 가상 머신 인스턴스를 상기 복수의 콘텐츠 아이템 인스턴스로부터 할당 해제하는 단계; 및
    가상 머신 인스턴스를 종료하는 것 또는 용도를 변경하는(re-purposing) 것 중 적어도 하나를 수행하는 단계를 더 포함하는, 전자적으로 제시되는 콘텐츠 아이템의 배치를 위한 방법.
  10. 제9항에 있어서, 상기 조건은, 상기 복수의 콘텐츠 아이템 인스턴스에 대한 점유되지 않은 사용자 세션의 총 수가 특정한 양을 충족 또는 초과한다는 것을 결정하는 것 또는 상기 복수의 콘텐츠 아이템 인스턴스에 대한 점유되지 않은 사용자 세션의 평균 수가 특정한 양을 충족 또는 초과한다는 것을 결정하는 것 중 적어도 하나를 포함하는, 전자적으로 제시되는 콘텐츠 아이템의 배치를 위한 방법.
  11. 복수의 콘텐츠 아이템 인스턴스의 인스턴스로부터 정보를 제공하기 위한 방법으로서,
    상기 복수의 콘텐츠 아이템 인스턴스의 상기 인스턴스로부터 상기 정보를 수집하는 단계;
    상기 정보를 라우팅할 복수의 수신측 중 적어도 하나를 결정하는 단계로서, 상기 복수의 수신측 중 제1 수신측은 상기 복수의 콘텐츠 아이템 인스턴스의 각각의 인스턴스와 관련되는 정보에 대한 것이고, 상기 복수의 수신측 중 제2 수신측은 상기 복수의 콘텐츠 아이템 인스턴스와 관련되는 정보에 대한 것인, 상기 정보를 라우팅할 복수의 수신측 중 적어도 하나를 결정하는 단계; 및
    상기 정보를 상기 복수의 수신측 중 상기 적어도 하나로 전송하는 단계를 포함하는, 복수의 콘텐츠 아이템 인스턴스의 인스턴스로부터 정보를 제공하기 위한 방법.
  12. 제11항에 있어서, 상기 정보는, 상기 인스턴스에 대한 점유된 사용자 세션의 수, 상기 인스턴스에 대한 열린 사용자 세션의 수, 상기 인스턴스의 지속 기간, 또는 상기 인스턴스에 의한 메모리 사용량 중 적어도 하나의 표시를 포함하는, 복수의 콘텐츠 아이템 인스턴스의 인스턴스로부터 정보를 제공하기 위한 방법.
  13. 제11항에 있어서, 상기 결정 및 상기 라우팅은 라우팅 기능에 의해 수행되고, 상기 복수의 수신측 중 적어도 하나 또는 상기 라우팅 기능 중 적어도 하나는, 이벤트에 적어도 부분적으로 기초하여 코드를 실행하는 클라우드 기반 기능인, 복수의 콘텐츠 아이템 인스턴스의 인스턴스로부터 정보를 제공하기 위한 방법.
  14. 제11항에 있어서, 상기 복수의 콘텐츠 아이템 인스턴스의 상기 인스턴스로부터의 상기 정보에 식별 정보를 할당하는 단계를 더 포함하되, 상기 결정은, 상기 식별 정보에 적어도 부분적으로 기초하고, 상기 식별 정보는, 콘텐츠 아이템 플릿(fleet) 식별자, 콘텐츠 아이템 인스턴스 식별자, 경로 식별자(route identifier), 타임스탬프, 및 전역적으로 고유한 식별자(globally unique identifier: GUID) 중 적어도 하나를 포함하는, 복수의 콘텐츠 아이템 인스턴스의 인스턴스로부터 정보를 제공하기 위한 방법.
  15. 제11항에 있어서, 상기 복수의 수신측은 콘텐츠 아이템 인스턴스 정보 분석을 위한 복수의 서비스와 관련되고, 개발자에게 정보를 제공하기 위해 상기 복수의 서비스를 상기 콘텐츠 아이템의 상기 개발자가 적어도 부분적으로 액세스할 수 있는, 복수의 콘텐츠 아이템 인스턴스의 인스턴스로부터 정보를 제공하기 위한 방법.
KR1020177029729A 2015-03-17 2016-03-17 콘텐츠 배치, 스케일링, 및 원격 측정 KR102073461B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US14/660,865 2015-03-17
US14/660,850 US20160277484A1 (en) 2015-03-17 2015-03-17 Content Deployment, Scaling, and Telemetry
US14/660,865 US20160277508A1 (en) 2015-03-17 2015-03-17 Content Deployment, Scaling, and Telemetry
US14/660,821 US10463957B2 (en) 2015-03-17 2015-03-17 Content deployment, scaling, and telemetry
US14/660,821 2015-03-17
US14/660,850 2015-03-17
PCT/US2016/022791 WO2016149462A2 (en) 2015-03-17 2016-03-17 Content deployment, scaling, and telemetry

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020197019080A Division KR102168740B1 (ko) 2015-03-17 2016-03-17 콘텐츠 배치, 스케일링, 및 원격 측정

Publications (2)

Publication Number Publication Date
KR20170134493A true KR20170134493A (ko) 2017-12-06
KR102073461B1 KR102073461B1 (ko) 2020-02-04

Family

ID=56098325

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020197019080A KR102168740B1 (ko) 2015-03-17 2016-03-17 콘텐츠 배치, 스케일링, 및 원격 측정
KR1020177029729A KR102073461B1 (ko) 2015-03-17 2016-03-17 콘텐츠 배치, 스케일링, 및 원격 측정

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020197019080A KR102168740B1 (ko) 2015-03-17 2016-03-17 콘텐츠 배치, 스케일링, 및 원격 측정

Country Status (6)

Country Link
EP (1) EP3271817A2 (ko)
JP (2) JP2018514023A (ko)
KR (2) KR102168740B1 (ko)
CN (1) CN107430519B (ko)
CA (1) CA2979691C (ko)
WO (1) WO2016149462A2 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109491715B (zh) * 2018-11-06 2021-10-22 深圳市风云实业有限公司 基于Windows NT的应用管理方法、装置及终端
WO2022245126A1 (ko) * 2021-05-18 2022-11-24 주식회사 카카오 액세스 카드를 이용한 서비스 제공 방법, 서비스 필터링 방법 및 상기 방법을 수행하는 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120072780A1 (en) * 2010-09-21 2012-03-22 Oracle International Corporation Continuous System Health Indicator For Managing Computer System Alerts
US20130007731A1 (en) * 2011-06-28 2013-01-03 Microsoft Corporation Virtual machine image lineage
US20140342819A1 (en) * 2013-05-20 2014-11-20 Microsoft Corporation Game availability in a remote gaming environment

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3844404B2 (ja) * 1998-07-17 2006-11-15 株式会社バンダイナムコゲームス ゲームシステム及び情報記憶媒体
US20070093297A1 (en) * 2005-10-26 2007-04-26 Waterleaf Ltd. On-line, real-time game playing with search facility
JP5617712B2 (ja) * 2011-03-17 2014-11-05 沖電気工業株式会社 コンテンツ配信サーバ、コンテンツ配信システム、コンテンツ配信プログラム及びコンテンツ配信方法
CN103460611B (zh) * 2011-04-14 2015-08-19 株式会社村田制作所 高频前端电路
JP2013109548A (ja) * 2011-11-21 2013-06-06 Sony Computer Entertainment Inc 情報処理システム、情報処理方法、プログラム及び情報記憶媒体
US9189285B2 (en) * 2012-12-14 2015-11-17 Microsoft Technology Licensing, Llc Scalable services deployment
US8870661B2 (en) * 2012-12-21 2014-10-28 Sony Computer Entertainment America Llc Cloud-based game slice generation and frictionless social sharing with instant play
US9433862B2 (en) * 2013-02-12 2016-09-06 Microsoft Technology Licensing, Llc Dynamic allocation of computing resources in remote gaming environment
US20140245319A1 (en) * 2013-02-27 2014-08-28 Greenbutton Limited Method for enabling an application to run on a cloud computing system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120072780A1 (en) * 2010-09-21 2012-03-22 Oracle International Corporation Continuous System Health Indicator For Managing Computer System Alerts
US20130007731A1 (en) * 2011-06-28 2013-01-03 Microsoft Corporation Virtual machine image lineage
US20140342819A1 (en) * 2013-05-20 2014-11-20 Microsoft Corporation Game availability in a remote gaming environment

Also Published As

Publication number Publication date
WO2016149462A3 (en) 2016-11-03
JP2018514023A (ja) 2018-05-31
KR102073461B1 (ko) 2020-02-04
CN107430519A (zh) 2017-12-01
JP2020053079A (ja) 2020-04-02
CN107430519B (zh) 2021-01-12
CA2979691C (en) 2021-09-07
EP3271817A2 (en) 2018-01-24
KR20190080990A (ko) 2019-07-08
CA2979691A1 (en) 2016-09-22
WO2016149462A2 (en) 2016-09-22
KR102168740B1 (ko) 2020-10-23

Similar Documents

Publication Publication Date Title
US9409083B2 (en) Spawning new timelines during game session replay
US9393486B2 (en) Character simulation and playback notification in game session replay
US10092833B2 (en) Game session sharing
US11185781B2 (en) Cognitive user experience optimization
US10807006B1 (en) Behavior-aware player selection for multiplayer electronic games
JP7325704B2 (ja) オンラインルームの提供方法、装置、機器及びプログラム
CN109446062A (zh) 云计算服务中的软件调试的方法和装置
WO2023107283A1 (en) Network storage game allocation based on artificial intelligence
JP2020053079A (ja) コンテンツ・デプロイメント、スケーリングおよびテレメトリ
JP2022525880A (ja) サーバーの負荷予測及び高度なパフォーマンス測定
US20160277484A1 (en) Content Deployment, Scaling, and Telemetry
US20160277508A1 (en) Content Deployment, Scaling, and Telemetry
EP3311269B1 (en) Content testing during image production
CN108241716A (zh) 一种资源导入方法及装置
US10463957B2 (en) Content deployment, scaling, and telemetry
CN110968368B (zh) 一种直播数据的处理方法及其相关设备
Elder et al. Hybrid Cloud Apps with OpenShift and Kubernetes
US11167212B1 (en) Maintaining session state using redundant servers
US11465045B1 (en) Maintaining session state using redundant servers
CN107872477A (zh) 一种多媒体资源存储方法及装置

Legal Events

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