KR20150023425A - 사용자 고유 로밍 설정 기법 - Google Patents

사용자 고유 로밍 설정 기법 Download PDF

Info

Publication number
KR20150023425A
KR20150023425A KR20147035807A KR20147035807A KR20150023425A KR 20150023425 A KR20150023425 A KR 20150023425A KR 20147035807 A KR20147035807 A KR 20147035807A KR 20147035807 A KR20147035807 A KR 20147035807A KR 20150023425 A KR20150023425 A KR 20150023425A
Authority
KR
South Korea
Prior art keywords
application
user
instance
roaming
settings
Prior art date
Application number
KR20147035807A
Other languages
English (en)
Other versions
KR102059220B1 (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 KR20150023425A publication Critical patent/KR20150023425A/ko
Application granted granted Critical
Publication of KR102059220B1 publication Critical patent/KR102059220B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

본 명세서에서는 제1 애플리케이션 모델에 따라 프로비저닝되는 애플리케이션 프로그램의 인스턴스에 의해 개시되는 사용자에 고유한 로밍 설정들에 대한 업데이트를 수신하는 로밍 설정 서비스가 개시된다. 제2 애플리케이션 모델에 따라 프로비저닝되는 애플리케이션 프로그램의 인스턴스에 의해 개시되는 사용자에 고유한 로밍 설정들에 대한 요청의 수신시에, 로밍 설정 서비스는 로밍 설정들에 대한 업데이트를 반영한 업데이트된 로밍 설정들을 검색한다. 설정 서비스는 제2 애플리케이션 모델에 따라 프로비저닝되는 애플리케이션 프로그램의 인스턴스로의 전달을 위해, 업데이트된 로밍 설정들을 전송한다.

Description

사용자 고유 로밍 설정 기법{USER-SPECIFIC ROAMING SETTINGS}
본 발명의 양태들은 컴퓨터 하드웨어 및 소프트웨어에 관한 것으로서, 특히 사용자 고유 로밍 설정 서비스에 관한 것이다.
애플리케이션 설정은 사용자가 애플리케이션 환경과 연관될 때 애플리케이션 환경의 선호들, 상태들 및 다른 특성들이 저장되고 적용되는 것을 허용한다. 가장 최근에 사용된 파일들의 리스트, 맞춤 사전들 및 보기 선호들이 워드 프로세싱, 스프레드시트, 이메일, 프레젠테이션, 소셜 네트워킹 또는 게이밍 애플리케이션과 같은 애플리케이션의 개시 시에 적용될 수 있는 설정들의 예들이다.
다양한 애플리케이션 모델들이 존재하며, 사용자들은 그러한 모델들을 통해 애플리케이션 환경들 및 콘텐츠를 경험할 수 있다. 예를 들어, 애플리케이션들은 많은 기술 가운데 특히 로컬로 설치 및 실행되거나, 웹 기반 플랫폼들에 의해 호스트되거나, 로컬로의 실행을 위해 네트워크들을 통해 스트리밍될 수 있다. 무수한 타입의 컴퓨팅 장치들, 예를 들어 데스크탑 및 랩탑 컴퓨터, 태블릿, 넷북, 울트라북, 이리더(e-reader), 이동 전화, 인터넷 브라우징 설비 및 게이밍 콘솔이 사용될 수 있다.
설정들은 다양한 애플리케이션 경험들을 통해 다양한 방식으로 관리될 수 있다. 일부 솔루션들은 애플리케이션 프로그램들과 운영 체제 요소들 간의 설정 관련 호출들을 모니터링 및 인터셉트하는 클라이언트 프로그램들을 제공한다. 이러한 방식으로, 하나의 장치에서 사용자에 의해 이루어진 설정들이 동일 사용자에 의해 액세스되는 다른 장치들로 전달될 수 있다.
일부 공유 문서 환경들과 관련하여, 설정들은 전역적으로 적용될 수 있으며, 따라서 공유 문서의 각각의 버전은 모든 다른 버전과 동일한 설정들을 물려줄 수 있다. 예를 들어, 임의의 사용자에 의해 액세스되는 공유 문서의 최종 페이지가 공유 문서를 열 때 모든 다른 사용자에게 제공될 수 있다.
본 명세서에서는 로밍 설정 서비스를 용이하게 하기 위한 시스템, 방법 및 소프트웨어가 제공된다. 특히, 사용자 고유 설정들은 상이한 애플리케이션 모델들에 따라 프로비저닝되는 애플리케이션들의 인스턴스들 사이에서 로밍할 수 있다.
일 구현에서, 로밍 설정 서비스는 제1 애플리케이션 모델에 따라 프로비저닝되는 애플리케이션 프로그램의 인스턴스에 의해 개시되는 사용자에 고유한 로밍 설정들에 대한 업데이트를 수신한다. 제2 애플리케이션 모델에 따라 프로비저닝되는 애플리케이션 프로그램의 인스턴스에 의해 개시되는 사용자에 고유한 로밍 설정들에 대한 요청의 수신시에, 로밍 설정 서비스는 로밍 설정들에 대한 업데이트를 반영한 업데이트된 로밍 설정들을 검색한다. 설정 서비스는 제2 애플리케이션 모델에 따라 프로비저닝되는 애플리케이션 프로그램의 인스턴스로의 전달을 위해, 업데이트된 로밍 설정들을 전송한다.
이 개요는 아래의 기술 명세에서 더 설명되는 개념들의 발췌를 간단한 형태로 소개하기 위해 제공된다. 이 개요는 청구 발명의 중요한 특징들 또는 본질적인 특징들을 식별하는 것을 의도하지 않으며, 청구 발명의 범위를 한정하는 데 사용되는 것도 의도하지 않는다.
본 발명의 많은 양태가 아래의 도면들을 참조하여 더 잘 이해될 수 있다. 이러한 도면들과 관련하여 여러 구현이 설명되지만, 본 발명은 본 명세서에서 개시되는 구현들로 한정되지 않는다. 이와 달리, 모든 대안들, 변경들 및 균등물들을 포괄하는 것을 의도한다.
도 1은 일 구현에서의 로밍 설정 서비스의 동작을 나타낸다.
도 2는 일 구현에서 로밍 설정 서비스를 제공하기 위해 설정 서버에 의해 실행되는 프로세스를 나타낸다.
도 3은 일 구현에서 로밍 설정 서비스를 제공하기 위해 애플리케이션 인스턴스에 의해 실행되는 프로세스를 나타낸다.
도 4는 일 구현에서 로밍 설정 서비스를 제공하기 위한 컴퓨팅 환경을 나타낸다.
도 5는 일 구현에서 로밍 설정 서비스를 제공하기 위한 컴퓨팅 환경을 나타낸다.
도 6은 일 구현에서 로밍 설정 서비스를 제공할 때 컴퓨팅 환경 내의 동작 교환을 나타내는 순서도이다.
도 7은 일 구현에서 로밍 설정 서비스를 제공할 때 컴퓨팅 환경 내의 동작 교환을 나타내는 순서도이다.
도 8은 일 구현에서 로밍 설정 서비스를 제공할 때 컴퓨팅 환경 내의 동작 교환을 나타내는 순서도이다.
도 9는 일 구현에서 로밍 설정 서비스를 제공할 때 컴퓨팅 환경 내의 동작 교환을 나타내는 순서도이다.
본 명세서에서 설명되는 구현들은 로밍 설정들을 사용자에 고유한 기준으로 용이하게 함으로써 향상된 애플리케이션 경험들을 제공한다. 하나의 애플리케이션 모델에 따라 프로비저닝되는 애플리케이션과 연관될 때 형성되는 로밍 설정들은 동일한 애플리케이션이지만 상이한 애플리케이션 모델에 따라 프로비저닝되는 애플리케이션과 연관될 때 향유될 수 있다. 사실상, 로밍 설정들은 동일 애플리케이션의 상이한 인스턴스들만이 아니라 상이한 애플리케이션들에도 적용될 수 있다.
간단한 예로서, 사용자는 그의 데스크탑 또는 랩탑 컴퓨터에 로컬로 설치된 생산성 애플리케이션과 연관될 때 설정들을 행할 수 있다. 이어서, 호스트되는 애플리케이션 모델 또는 스트리밍 애플리케이션 모델을 통해 동일 애플리케이션과 후속 연관될 때, 동일 설정들이 사용자에 의해 향유될 수 있다. 이러한 방식으로, 사용자는 애플리케이션을 전달하는 프로비저닝 모델과 무관하게 애플리케이션의 다양한 인스턴스들에 걸쳐 공통적인 애플리케이션 경험을 향유할 수 있다. 설명되는 바와 같이, 로밍 설정들은 상이한 애플리케이션에도 적용될 수 있다. 예를 들어, 사용자는 상이한 생산성 애플리케이션, 예를 들어 다른 생산성 애플리케이션과 함께 애플리케이션 모음 내에 제공되는 생산성 애플리케이션과 연관될 수 있다. 사용자에 고유한 로밍 설정들의 전부 또는 부분들이 상이한 애플리케이션에 의해 검색되고 적용될 수 있다.
일 구현에서, 설정 서비스는 상이한 애플리케이션 모델들 및 상이한 애플리케이션들에 걸쳐 전술한 사용자 고유 설정들의 로밍을 달성하도록 기능한다. 사용자 고유 설정들은 다양한 방식으로 프로비저닝되는 애플리케이션의 다양한 인스턴스들에 의해 설정 서비스로 전달될 수 있다. 사용자가 다양한 프로비저닝 모델들을 통해 애플리케이션과 연관될 때, 설정 서비스는 그 사용자에 대한 설정들을 통신할 수 있으며, 따라서 애플리케이션의 해당 인스턴스가 친숙한 애플리케이션 경험을 제공하게 할 수 있다. 사용자가 애플리케이션의 상이한 인스턴스들로 이동할 때, 사용자와 관련된 설정들은 설정 서비스에 의해 업데이트될 수 있으며, 애플리케이션의 다음 인스턴스가 어떻게 프로비저닝되는지에 관계없이 사용자와 함께 애플리케이션의 다음 인스턴스로 이동될 수 있다.
다양한 프로비저닝 모델들이 설정 서비스에 의해 수용될 수 있으며, 여기서 설명되는 것들로 한정되지 않아야 한다. 로컬로 설치되는 인스턴스들, 호스트되는 인스턴스들 및 스트리밍 인스턴스들은 그들의 조합들 또는 변형들을 포함하여 프로비저닝 모델들의 일부 예들일 뿐이다. 예를 들어, 애플리케이션의 일부 인스턴스들은 처음에 스트리밍 방식으로 제공되지만, 이어서 로컬로 설치되고 그로부터 실행될 수 있다. 다른 예에서, 애플리케이션의 일부 인스턴스들은 사용자에 의해 사용되는 로컬 장치로부터 원격적으로 실행되는 컴포넌트들을 포함할 수 있지만, 로컬 장치 상에서, 아마도 브라우저와 같은 다른 로컬 애플리케이션 내에서 실행되는 다른 컴포넌트들도 포함할 수 있다.
사용자가 애플리케이션을 사용할 수 있는 기본 장치가 바뀔 수도 있으며, 설정 서비스에 의해 수용되는 다양한 프로비저닝 모델들에 기여할 수 있다. 예를 들어, 사용자들은 데스크탑 컴퓨터, 랩탑 컴퓨터, 태블릿 컴퓨터, 이동 전화, 미디어 장치, 뮤직 플레이어, 비디오 장치 및 인터넷 설비는 물론, 프로비저닝 모델에 따라 애플리케이션들을 제공할 수 있는 임의의 다른 타입의 컴퓨팅 장치를 이용하여 애플리케이션들과 연관될 수 있다.
다양한 애플리케이션 프로그램들도 설정 서비스에 의해 수용될 수 있으며, 여기서 설명되는 것들만으로 한정되지 않아야 한다. 통신 애플리케이션, 생산성 애플리케이션, 게이밍 애플리케이션, 엔터테인먼트 애플리케이션, 브라우징 애플리케이션 및 소셜 네트워크 애플리케이션은 물론, 이들의 임의 조합 또는 변형은 다양한 프로비저닝 모델들에 따라 프로비저닝될 수 있는 애플리케이션들의 일부 예들일 뿐이다. 생산성 애플리케이션들의 예들은 문서 편집 애플리케이션, 스프레드시트 애플리케이션, 프레젠테이션 애플리케이션 및 데이터베이스 애플리케이션을 포함하지만 이에 한정되지 않는다.
다른 간단한 예에서, 사용자는 그의 랩탑 컴퓨터를 통해 생산성 애플리케이션의 로컬 설치 인스턴스와 연관될 수 있다. 애플리케이션의 그러한 인스턴스를 이용하여 작업하는 동안, 사용자와 관련된 설정들이 애플리케이션에 의해 추적되거나 결정될 수 있다. 가장 최근에 사용된 문서들의 리스트, 맞춤 사전 및 사용자에 의해 최종 액세스된 문서 내의 페이지가 설정들의 예들이지만, 다른 타입의 설정들, 설정들의 조합들 또는 그들의 변형들도 가능하다는 것을 이해해야 한다.
사용자가 생산성 애플리케이션과 연관될 때, 설정들이 변경될 수 있다. 예를 들어, 가장 최근에 사용된 문서의 리스트가 변경될 수 있거나, 단어들이 맞춤 사전에 추가될 수 있거나, 문서에서 액세스된 최종 페이지가 변경될 수 있다. 따라서, 랩탑 컴퓨터에 로컬로 설치되고 실행되는 애플리케이션의 인스턴스는 업데이트된 설정들을 설정 서비스로 전달할 수 있다. 설정 서비스는 업데이트된 설정들을 사용자와 연계하여 저장하며, 따라서 업데이트된 설정들은 나중에 검색되어 애플리케이션의 다른 인스턴스에 제공될 수 있다.
이 예를 계속 설명하면, 사용자는 다시 동일한 생산성 애플리케이션이지만 그 인스턴스가 상이하게 프로비저닝되는 생산성 애플리케이션, 예를 들어 애플리케이션의 호스트되는 버전과 연관될 수 있다. 호스트되는 애플리케이션은 동일한 랩탑 컴퓨터 또는 상이한 컴퓨팅 장치에서 실행되는 웹 브라우저 애플리케이션을 통해 액세스될 수 있다. 생산성 애플리케이션의 호스트되는 인스턴스와 연관될 때, 사용자에 고유한 업데이트된 설정들이 설정 서비스로부터 검색되며, 따라서 사용자는 로컬 설치 인스턴스를 통해 애플리케이션과 연관될 때와 같이 친숙한 경험을 향유할 수 있다. 예를 들어, 사용자가 문서를 열 때, 문서는 랩탑 상에서 최종 액세스된 페이지와 같은 가장 최근에 액세스된 페이지가 열릴 수 있다.
전술한 예의 일 변형에서, 참조되는 문서는 공유 생산성 문서일 수 있으며, 따라서 다수의 사용자가 문서에 액세스할 수 있다. 이 경우에, 사용자는 그가 최종 액세스한 특정 페이지로 복귀할 수 있는 반면, 다른 사용자들은 그들이 최종 액세스한 다른 페이지들로 복귀할 수 있으며, 각각의 사용자는 임의의 사용자에 의해 액세스된 최종 페이지로 복귀할 필요가 없다.
이제, 도면들을 참조하면, 도 1-3은 로밍 설정 서비스의 동작은 물론, 서비스를 구현하기 위한 컴퓨팅 환경 및 프로세스를 나타낸다. 구체적으로, 도 1은 로밍 설정 서비스의 동작들을 나타내고, 도 2 및 도 3은 서비스를 제공하기 위한 프로세스들을 나타낸다. 도 4는 로밍 설정 서비스 및 프로세스들을 구현하는 데 적합한 컴퓨팅 환경을 나타낸다. 도 5는 로밍 설정 서비스가 구현될 수 있는 다른 컴퓨팅 환경을 나타내고, 도 6-9는 로밍 설정 서비스의 제공과 관련된 컴퓨팅 환경 내의 다양한 동작 교환들을 나타낸다.
이제, 도 1을 참조하면, 로밍 환경(100)은 애플리케이션 모델(105)에 따라 프로비저닝되는 애플리케이션 인스턴스(103), 애플리케이션 모델(109)에 따라 프로비저닝되는 애플리케이션 인스턴스(107) 및 애플리케이션 모델(113)에 따라 프로비저닝되는 애플리케이션 인스턴스(111)를 포함한다. 로밍 환경(100)은 설정 서버(121) 및 설정 저장소(123)는 물론, 콘텐츠 서버(131) 및 콘텐츠 저장소(133)도 포함한다.
동작에 있어서, 사용자(101)는 처음에(T1) 애플리케이션 모델(105)에 따라 프로비저닝되는 애플리케이션 인스턴스(103)와 연관된다. 예를 들어, 콘텐츠가 콘텐츠 서버(131)에 의해 콘텐츠 저장소(133)로부터 검색되고, 애플리케이션 인스턴스(103)로 전달될 수 있으며, 따라서 사용자(101)는 콘텐츠에 대해 작업을 행할 수 있다. 사용자(101)는 콘텐츠 서버(131)로부터 콘텐츠를 검색하지 않고서 애플리케이션 인스턴스(103)와 연관될 수 있다는 것을 이해해야 한다. 본 명세서에서 사용되는 바와 같이, 콘텐츠는 사진, 문서, 스프레드시트, 프레젠테이션, 비디오 등과 같은 콘텐츠 아이템을 지칭할 수 있다. 그러나, 콘텐츠는 여러 개의 문서, 스프레드시트, 프레젠테이션 등과 같은 콘텐츠 아이템들의 집합을 지칭할 수도 있다.
애플리케이션 인스턴스(103)와 연관되고 그를 이용하여 작업을 행할 때, 설정 업데이트가 개시되고, 설정 서버(121)로 전달된다. 설정 업데이트는 사용자(101)를 위해 아마도 콘텐츠에 대해 사용자에 의해 행해진 상호작용들을 나타내는, 사용자 고유 설정들에 대해 행해진 변경들을 포함할 수 있다. 설정 서버(121)는 설정 저장소(123)에서 사용자(101)와 관련된 설정들을 업데이트하여 변경들을 반영한다. 콘텐츠와의 사용자 상호작용들은 공지되어 있으며, 그의 캡처는 일반적으로 대부분의 생산성 애플리케이션들에 의해 지원된다. 예를 들어, 많은 생산성 애플리케이션들은 문서를 닫기 전에 문서 내의 어떤 페이지 또는 포인트에 도달하였는지와 같은 사용자 상호작용들에 대응하는 정보를 기록, 기재 또는 저장할 수 있다. 사용자 상호작용들은 일반적으로 사용자 인터페이스 장치들 및 대응하는 소프트웨어를 포함하는 사용자 인터페이스를 통해 수신된다.
나중 시간(T2)에, 사용자(101)는 애플리케이션 모델(109)에 따라 프로비저닝되는 애플리케이션 인스턴스(107)와 연관될 수 있다. 애플리케이션 인스턴스(107)와 연관될 때, 사용자(101)에 고유한 설정들은 설정 서버(121)에 의해 애플리케이션 인스턴스(107)로 전달된다. 설정들은 애플리케이션 인스턴스(103)에 의해 설정 업데이트를 통해 이전에 행해진 변경들을 반영할 수 있다. 콘텐츠가 또한 콘텐츠 저장소(133)로부터 검색되고, 콘텐츠 서버(131)에 의해 애플리케이션 인스턴스(107)에 제공될 수 있다. 콘텐츠는 콘텐츠 서버(131)에 의해 이전에 애플리케이션 인스턴스(103)에 제공된 것과 동일한 아이템 또는 아이템들일 수 있다. 콘텐츠가 애플리케이션 인스턴스(103)에 의해 액세스된 것과 동일한 콘텐츠인 시나리오에서, 애플리케이션 인스턴스(107)에 의해 획득되는 설정들의 적어도 일부가 콘텐츠에 적용될 수 있다. 즉, 사용자(101)는 일 모델에 따라 프로비저닝되는 애플리케이션 인스턴스(103) 또는 다른 모델에 따라 프로비저닝되는 애플리케이션 인스턴스(107)를 통해 콘텐츠에 액세스하는지에 관계없이 콘텐츠에 적용되는 공통 설정들을 향유할 수 있다.
또 다른 시간(T3)에, 상이한 사용자인 사용자(102)는 애플리케이션 모델(113)에 따라 프로비저닝되는 애플리케이션 인스턴스(111)와 연관될 수 있다. 애플리케이션 인스턴스(111)와 연관될 때, 사용자(102)에 고유한 설정들이 설정 서버(121)에 의해 애플리케이션 인스턴스(111)로 전달된다. 콘텐츠가 또한 콘텐츠 저장소(133)로부터 검색되고, 콘텐츠 서버(131)에 의해 애플리케이션 인스턴스(111)에 제공될 수 있다.
사실상, 콘텐츠는 콘텐츠 서버(131)에 의해 이전에 애플리케이션 인스턴스(103) 및 애플리케이션 인스턴스(105) 중 하나 또는 양자에 제공된 것과 동일한 아이템 또는 아이템들일 수 있다. 예를 들어, 콘텐츠는 공유 콘텐츠일 수 있다. 그러한 상황들에서, 사용자(102)에 고유한 설정들은 애플리케이션 인스턴스(111)에 의해 공유 콘텐츠에 적용될 수 있으며, 따라서 사용자(102)는 사용자(101)를 위해 콘텐츠에 적용된 것들과 다른 설정들을 경험할 수 있다.
도 2는 로밍 설정 서비스의 적어도 일부를 제공하기 위해 설정 서버(121)에 의해 로밍 환경(100) 내에서 구현될 수 있는 서버 프로세스(200)를 나타낸다. 먼저, 설정 서버(121)는 사용자에 고유한 애플리케이션 인스턴스로부터 설정 업데이트를 수신한다(단계 201). 업데이트가 적용되는 설정들은 동일한 애플리케이션 인스턴스, 상이한 애플리케이션 인스턴스 또는 상이한 애플리케이션의 동작 동안 이전에 설정되었을 수 있다. 이어서, 설정 서버(121)는 사용자에 고유한 로밍 설정들에 대한 다른 애플리케이션 인스턴스로부터의 요청을 수신한다(단계 205). 설정 서버(121)는 사용자에 고유한 로밍 설정들을 검색하고(단계 205), 이들을 다른 애플리케이션 인스턴스로의 전달을 위해 전송한다(단계 207).
도 3은 사용자 고유 로밍 설정 서비스의 적어도 일부를 제공하기 위해 임의의 애플리케이션 인스턴스(103, 107, 111)에 의해 구현될 수 있는 애플리케이션 프로세스(300)를 나타낸다. 먼저, 애플리케이션 인스턴스가 사용자 고유 로밍 설정들에 대한 요청을 생성하여 설정 서버(121)로 전송한다(단계 301). 애플리케이션 인스턴스는 또한 옵션으로서 콘텐츠 서버(131)로부터 콘텐츠를 획득할 수 있다. 로밍 설정들의 수신시(단계 303), 애플리케이션 인스턴스는 애플리케이션 인스턴스 내의 사용자 고유 설정들을 옵션으로서 콘텐츠에 또는 콘텐츠와 관련된 애플리케이션 인스턴스의 부분들에 적용한다.
이제, 도 4를 참조하면, 로밍 설정 서비스를 구현하는 데 적합한 컴퓨팅 환경(400)이 도시된다. 컴퓨팅 환경(400)은 컴퓨팅 시스템(410) 및 컴퓨팅 시스템(420)을 포함한다. 컴퓨팅 시스템(410)은 일반적으로 설정 서버(121)가 적절히 구현될 수 있는 임의의 컴퓨팅 시스템 또는 시스템들을 나타낸다. 컴퓨팅 시스템(420)은 일반적으로 애플리케이션 모델들(105, 109, 113) 각각에 따라 애플리케이션 인스턴스들(103, 107, 111)이 적절히 구현될 수 있는 임의의 컴퓨팅 시스템(들)을 나타낸다. 애플리케이션 모델들(105, 109, 113)의 예들은 로컬 설치 모델, 호스트되는 애플리케이션 모델 및 스트리밍 애플리케이션 모델을 포함하지만 이에 한정되지 않는다.
컴퓨팅 시스템(410)의 예들은 서버 컴퓨터, 가상 기계 및 분산 컴퓨팅 시스템은 물론, 이들의 임의의 다른 조합 또는 변형을 포함한다. 컴퓨팅 시스템(420)의 예들은 개인용 컴퓨터, 서버 컴퓨터, 클라이언트 컴퓨터, 이동 컴퓨터, 미디어 장치, 인터넷 설비, 데스크탑 컴퓨터, 랩탑 컴퓨터, 태블릿 컴퓨터, 노트북 컴퓨터, 이동 전화, 스마트폰, 게이밍 장치 및 개인 휴대 단말기는 물론, 이들의 임의 조합 또는 변형을 포함한다.
컴퓨팅 시스템(410)은 처리 시스템(411), 저장 시스템(413), 소프트웨어(415) 및 통신 인터페이스(417)를 포함한다. 처리 시스템(411)은 저장 시스템(413) 및 통신 인터페이스(417)에 기능적으로 결합된다. 처리 시스템(411)은 저장 시스템(413)으로부터 설정 서버(421)를 포함하는 소프트웨어(415)를 로딩하고 실행한다. 일반적으로 컴퓨팅 시스템(410)에 의해 실행될 때, 소프트웨어(415)는 서버 프로세스(200)를 위해 본 명세서에서 설명되는 바와 같이 동작하도록 컴퓨팅 시스템(410)에 지시한다.
컴퓨팅 시스템(410)은 옵션으로서 추가 장치들, 특징들 또는 기능을 포함할 수 있다. 예컨대, 컴퓨팅 시스템(410)은 옵션으로서 키보드, 마우스, 음성 입력 장치, 터치 입력 장치, 제스처 입력 장치 또는 다른 동등한 입력 장치들과 같은 입력 장치들을 구비할 수 있다. 디스플레이, 스피커, 프린터 및 다른 타입의 동등한 출력 장치들과 같은 출력 장치들도 포함될 수 있다. 이러한 장치들은 이 분야에 공지되어 있으며, 여기서는 상세히 설명될 필요가 없다.
도 4를 계속 참조하면, 처리 시스템(411)은 저장 시스템(413)으로부터 소프트웨어(415)를 검색 및 실행하는 마이크로프로세서 및 기타 회로를 포함할 수 있다. 처리 시스템(411)은 단일 처리 장치 내에 구현될 수 있지만, 프로그램 명령어들을 협력하여 실행하는 다수의 처리 장치들 또는 서브시스템들에 걸쳐 분산될 수도 있다. 처리 시스템(411)의 예들은 범용 중앙 처리 유닛, 주문형 프로세서 및 논리 장치는 물론, 임의의 다른 타입의 처리 장치, 처리 장치들의 조합들 또는 이들의 변형들도 포함한다.
저장 시스템(413)은 처리 시스템(411)에 의해 판독될 수 있고 소프트웨어(415) 및 설정 저장소(123)를 저장할 수 있는 임의의 저장 매체들을 포함할 수 있다. 저장 시스템(413)은 컴퓨터 판독 가능 명령어들, 데이터 구조들, 프로그램 모듈들 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술에서 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체들을 포함할 수 있다. 저장 시스템(413)은 단일 저장 장치로서 구현될 수 있지만, 다수의 저장 장치들 또는 서브시스템들에 걸쳐 구현될 수도 있다. 저장 시스템(413)은 처리 시스템(411)과 통신할 수 있는 제어기와 같은 추가 요소들을 포함할 수 있다.
저장 매체들의 예들은 랜덤 액세스 메모리, 판독 전용 메모리, 자기 디스크, 광 디스크, 플래시 메모리, 가상 메모리 및 비가상 메모리, 자기 카세트, 자기 테이프, 자기 디스크 저장 또는 기타 자기 저장 장치, 또는 원하는 정보를 저장하는 데 사용될 수 있고, 명령어 실행 시스템에 의해 액세스될 수 있는 임의의 다른 매체는 물론, 이들의 임의 조합 또는 변형, 또는 임의의 다른 타입의 저장 매체들을 포함한다. 일부 구현들에서, 저장 매체들은 비일시적 저장 매체들일 수 있다. 일부 구현들에서, 저장 매체들 중 적어도 일부는 일시적일 수 있다. 어느 경우에도 저장 매체들은 전파 신호가 아니라는 것을 이해해야 한다.
소프트웨어(415)는 서버 프로세스(200)를 구현하는 설정 서버(121)를 포함한다. 설정 서버(121)는 서버 프로그램 명령어들 내에 구현될 수 있으며, 많은 기능 가운데 특히, 컴퓨팅 시스템(410)에 의해 실행될 때, 로밍 설정들에 대한 업데이트들을 반영하는 사용자들과 관련된 업데이트된 로밍 설정들을 식별하고, 업데이트된 로밍 설정들을 클라이언트들로의 전달을 위해 전송하기 위한 요청들을 처리하도록 컴퓨팅 시스템(410)에 지시할 수 있다.
소프트웨어(415)는 설정 서버(121)에 더하여 추가 프로세스들, 프로그램들 또는 컴포넌트들, 예를 들어 운영 체제 소프트웨어 또는 다른 애플리케이션 소프트웨어를 포함할 수 있다. 소프트웨어(415)는 처리 시스템(411)에 의해 실행될 수 있는 펌웨어 또는 소정의 다른 형태의 기계 판독 가능 처리 명령어들도 포함할 수 있다.
일반적으로, 소프트웨어(415)는 처리 시스템(411) 내에 로딩 및 실행될 때 처리 시스템(411) 및 컴퓨팅 시스템(410)을 전반적으로 범용 컴퓨팅 시스템으로부터, 각각의 구현을 위해 본 명세서에서 설명되는 바와 같이 로밍 설정 서비스를 촉진하도록 맞춤화되는 특수 목적 컴퓨팅 시스템으로 변환할 수 있다. 사실상, 저장 시스템(413) 상에 소프트웨어(415)를 인코딩하는 것은 저장 시스템(413)의 물리 구조를 변환할 수 있다. 물리 구조의 구체적인 변환은 본 설명의 상이한 구현들에서의 다양한 팩터들에 의존할 수 있다. 그러한 팩터들의 예들은 저장 시스템(413)의 저장 매체들을 구현하는 데 사용되는 기술 및 컴퓨터 저장 매체들이 주요 저장 장치로서 또는 보조 저장 장치로서 특성화되는지를 포함할 수 있지만, 이에 한정되지 않는다.
예를 들어, 컴퓨터 저장 매체들이 반도체 기반 메모리로서 구현되는 경우, 소프트웨어(415)는 프로그램이 반도체 메모리 내에 인코딩될 때 그의 물리 상태를 변환할 수 있다. 예를 들어, 소프트웨어(415)는 반도체 메모리를 구성하는 트랜지스터들, 커패시터들 또는 다른 개별 회로 요소들의 상태를 변환할 수 있다. 자기 또는 광학 매체들과 관련하여 유사한 변환이 이루어질 수 있다. 본 설명의 범위로부터 벗어나지 않고서 물리 매체들의 다른 변환들이 가능하며, 전술한 예들은 본 설명을 촉진하기 위해 제공될 뿐이다.
컴퓨팅 시스템(410)은 일반적으로 설정 서버(121)가 배치되고 실행될 수 있는 컴퓨팅 환경(400)의 요소를 나타내는 것을 의도한다는 것을 이해해야 한다. 그러나, 컴퓨팅 시스템(410)은 또한, 적어도 설정 서버(121)를 스테이지화할 수 있고, 설정 서버(121)를 실행을 위해 컴퓨팅 시스템(410)과 유사한 다른 컴퓨팅 시스템으로 운반, 다운로드 또는 제공할 수 있는 컴퓨팅 환경(400) 내의 다른 요소들(도시되지 않음)을 나타낼 수 있다.
도 1을 다시 참조하면, 소프트웨어(415) 및 특히 설정 서버(121)를 사용하는 컴퓨팅 시스템(410)의 동작을 통해, 서버 프로세스(200)와 관련하여 변환들이 수행될 수 있다. 일례로서, 컴퓨팅 시스템(410)은 사용자 고유 설정 업데이트들의 처리에 의해 하나의 상태로부터 다른 상태로 변환되는 것으로 간주될 수 있다. 제1 상태에서, 사용자 고유 설정들은 저장 시스템(413) 상의 설정 저장소(123) 내에 저장된다. 설정 업데이트들의 수신시, 사용자 고유 설정들은 업데이트들 내에서 표현되는 변경들을 반영하여, 컴퓨팅 시스템(410)을 제2의 상이한 상태로 변경하도록 업데이트될 수 있다.
도 4를 다시 참조하면, 통신 인터페이스(417)는 통신 네트워크(405)를 통해 컴퓨팅 시스템(410)과 컴퓨팅 시스템(420) 사이의 통신은 물론, 도시되지 않은 다른 컴퓨팅 시스템들과의 통신도 가능하게 하는 통신 접속들 및 장치들을 포함할 수 있다. 함께 시스템간 통신을 가능하게 하는 접속들 및 장치들의 예들은 네트워크 인터페이스 카드들, 안테나들, 전력 증폭기들, RF 회로, 송수신기들 및 다른 통신 회로를 포함한다. 전술한 네트워크, 접속들 및 장치들은 공지되어 있으며, 여기서는 상세히 설명될 필요가 없다.
컴퓨팅 시스템(420)과 관련하여, 컴퓨팅 시스템(410)에서 발견되는 것들과 유사한 여러 요소가 포함되며, 이들은 처리 시스템(421), 저장 시스템(423) 및 통신 인터페이스(427)를 포함하며, 여기서 상세히 설명될 필요가 없다. 컴퓨팅 시스템(420)은 아래에 더 상세히 설명되는 소프트웨어(425) 및 사용자 인터페이스(429)도 포함한다. 처리 시스템(421)은 저장 시스템(423), 통신 인터페이스(427) 및 사용자 인터페이스(429)에 기능적으로 결합된다. 처리 시스템(421)은 애플리케이션 인스턴스들(103, 107, 111)을 나타내는 애플리케이션 인스턴스(426)를 포함하는 소프트웨어(425)를 저장 시스템(423)으로부터 로딩하여 실행한다. 일반적으로 컴퓨팅 시스템(420)에 의해, 구체적으로 처리 시스템(421)에 의해 실행될 때, 소프트웨어(425)는 애플리케이션 프로세스(300)를 위해 본 명세서에서 설명되는 바와 같이 동작하도록 컴퓨팅 시스템(420)에 지시한다.
소프트웨어(425)는 애플리케이션 프로세스(300)를 구현하는 애플리케이션 인스턴스(426)를 포함한다. 애플리케이션 인스턴스(426)는 애플리케이션 프로그램 명령어들 내에 구현될 수 있으며, 많은 기능 가운데 특히, 컴퓨팅 시스템(420)에 의해 실행될 때, 사용자 고유 로밍 설정들을 요청, 수신 및 적용하기 위한 요청들을 처리하도록 컴퓨팅 시스템(420)에 지시할 수 있다. 애플리케이션 프로그램 명령어들은 또한 클라이언트 프로그램 명령어들을 포함하거나 그들로 지칭될 수 있다. 소프트웨어(425)는 애플리케이션 인스턴스(426)에 더하여 추가 프로세스들, 프로그램들 또는 컴포넌트들, 예를 들어 운영 체제 소프트웨어 또는 다른 애플리케이션 소프트웨어를 포함할 수 있다. 소프트웨어(425)는 처리 시스템(421)에 의해 실행될 수 있는 펌웨어 또는 소정의 다른 형태의 기계 판독 가능 처리 명령어들도 포함할 수 있다.
일반적으로, 소프트웨어(425)는 처리 시스템(421) 내에 로딩 및 실행될 때 처리 시스템(421) 및 컴퓨팅 시스템(420)을 전반적으로 범용 컴퓨팅 시스템으로부터, 각각의 구현을 위해 본 명세서에서 설명되는 바와 같이 로밍 설정 서비스를 촉진하도록 맞춤화되는 특수 목적 컴퓨팅 시스템으로 변환할 수 있다. 사실상, 저장 시스템(423) 상에 소프트웨어(425)를 인코딩하는 것은 저장 시스템(423)의 물리 구조를 변환할 수 있다. 물리 구조의 구체적인 변환은 본 설명의 상이한 구현들에서의 다양한 팩터들에 의존할 수 있다. 그러한 팩터들의 예들은 저장 시스템(423)의 저장 매체들을 구현하는 데 사용되는 기술 및 컴퓨터 저장 매체들이 주요 저장 장치로서 또는 보조 저장 장치로서 특성화되는지를 포함할 수 있지만, 이에 한정되지 않는다.
예를 들어, 컴퓨터 저장 매체들이 반도체 기반 메모리로서 구현되는 경우, 소프트웨어(425)는 프로그램이 반도체 메모리 내에 인코딩될 때 그의 물리 상태를 변환할 수 있다. 예를 들어, 소프트웨어(425)는 반도체 메모리를 구성하는 트랜지스터들, 커패시터들 또는 다른 개별 회로 요소들의 상태를 변환할 수 있다. 자기 또는 광학 매체들과 관련하여 유사한 변환이 이루어질 수 있다. 본 설명의 범위로부터 벗어나지 않고서 물리 매체들의 다른 변환들이 가능하며, 전술한 예들은 본 설명을 촉진하기 위해 제공될 뿐이다.
컴퓨팅 시스템(420)은 일반적으로 애플리케이션 인스턴스가 배치되고 실행될 수 있는 컴퓨팅 환경(400)의 요소를 나타내는 것을 의도한다는 것을 이해해야 한다. 그러나, 컴퓨팅 시스템(420)은 또한, 적어도 애플리케이션 인스턴스를 스테이지화할 수 있고, 애플리케이션 인스턴스를 실행을 위해 다른 컴퓨팅 시스템으로 운반, 다운로드 또는 제공할 수 있는 컴퓨팅 환경(400) 내의 다른 요소들(도시되지 않음)을 나타낼 수 있다.
도 1을 다시 참조하면, 소프트웨어(425) 및 특히 애플리케이션 인스턴스(426)를 사용하는 컴퓨팅 시스템(420)의 동작을 통해, 로밍 환경(100)과 관련하여 변환들이 수행될 수 있다. 일례로서, 컴퓨팅 시스템(420)은 사용자 고유 설정 업데이트들의 처리에 의해 하나의 상태로부터 다른 상태로 변환되는 것으로 간주될 수 있다. 제1 상태에서, 사용자 고유 설정들 없이 애플리케이션 인스턴스가 개시된다. 사용자 고유 설정들을 요청 및 수신할 때, 애플리케이션 인스턴스는 설정들을 반영하도록 변경되어, 컴퓨팅 시스템(420)을 제2의 상이한 상태로 변경할 수 있다.
사용자 인터페이스(429)는 마우스, 음성 입력 장치, 사용자로부터 제스처를 수신하기 위한 터치 입력 장치, 사용자에 의한 논-터치 제스처들 및 다른 모션들을 검출하기 위한 모션 입력 장치, 및 사용자로부터 사용자 입력을 수신할 수 있는 다른 동등한 입력 장치들 및 관련 처리 요소들을 포함할 수 있다. 디스플레이, 스피커, 프린터, 촉각 장치 및 다른 타입의 출력 장치들과 같은 출력 장치들도 사용자 인터페이스(429) 내에 포함될 수 있다. 전술한 사용자 입력 장치들은 이 분야에 공지되어 있으며, 여기서는 상세히 설명될 필요가 없다.
애플리케이션 인터페이스(431)가 애플리케이션 인스턴스(426)에 의해 생성되고, 사용자 인터페이스(429)에 의해 표시될 수 있다. 애플리케이션 인터페이스(431)는 애플리케이션 인스턴스(426)로 전달될 수 있는 여러 개의 예시적인 사용자 고유 로밍 설정을 표시한다. 설정들은 예시적일 뿐이며, 본 명세서에서 설명되는 것들로 한정되지 않아야 한다. 설정들은 가장 최근에 사용된 문서들(435)의 리스트, 문서(437) 내의 텍스트 블록(439) 내의 포맷팅 스타일, 및 사용자 고유 설정들과 관련된 사용자를 위해 문서에서 가장 최근에 액세스된 페이지(441)를 포함한다.
동작에 있어서, 애플리케이션 인스턴스(426)는 사용자 서명 모듈(433)을 통해 식별되는 사용자와 관련된 사용자 고유 설정들을 검색하도록 기능한다. 서명은 애플리케이션 인스턴스(426) 내에 통합될 수 있지만, 컴퓨팅 시스템(420)에서 실행되는 다른 요소들, 예를 들어 다른 애플리케이션들 또는 운영 체제 요소들과 통합될 수 있다. 사용자는 사용자 서명 모듈(433)에 더하여 또는 그 대신에 다른 수단에 의해 식별될 수 있다는 것을 이해해야 한다.
사용자가 애플리케이션 인터페이스(431)와 상호작용할 때, 설정들이 변경될 수 있고, 따라서 설정 서버(121)에 대해 업데이트를 트리거 또는 프롬프트할 수 있다. 예를 들어, 문서(437)가 가장 최근에 사용된 문서들(435)의 리스트 내에 추가되거나, 리스트 내의 문서들(A, B, C) 중 하나를 대체할 수 있다. 사용자가 문서(437)를 통해 상이한 페이지로 내비게이션할 때, 가장 최근에 액세스된 페이지가 페이지 X로부터 다른 페이지로 변경될 수 있다. 유사하게, 사용자는 텍스트 블록(439)의 포맷을 변경하기로 결정할 수 있다. 애플리케이션 인스턴스(426)는 이러한 변경들을 사용자와 연계하여 저장하기 위해 설정 서버(121)로 전달할 수 있다.
이어서, 아마도 컴퓨팅 시스템(420) 또는 소정의 다른 유사한 장치에서 구현되는 다른 애플리케이션 인스턴스와 연관될 때, 업데이트된 사용자 설정들이 설정 서버(121)로부터 검색되고, 애플리케이션 인터페이스에 의해 다른 애플리케이션 인스턴스로 로딩 또는 렌더링될 수 있다. 이러한 방식으로, 동일 사용자는 이전에 애플리케이션 인스턴스(426)와 연관될 때와 동일한 설정들을 향유할 수 있다. 예를 들어, 사용자는 가장 최근에 사용된 문서들의 친숙한 리스트를 제공받고, 문서에서 액세스된 최종 페이지로 복귀하고, 친숙한 포맷팅을 제공받을 수 있다.
도 5는 로밍 설정 서비스가 구현될 수 있는 컴퓨팅 환경(500)을 나타낸다. 컴퓨팅 환경(500)은 클라이언트 장치(503), 클라이언트 장치(505) 및 클라이언트 장치(507)를 포함하며, 일반적으로 이들 모두는 설명의 목적을 위해 사용자(501)와 관련된다. 컴퓨팅 환경(500)은 클라이언트 장치(509) 및 클라이언트 장치(511)도 포함하며, 이들 양자는 일반적으로 설명의 목적을 위해 사용자(502)와 관련된다. 개인용 컴퓨터, 랩탑 컴퓨터, 태블릿 컴퓨터, 이동 전화, 미디어 장치, 뮤직 플레이어 및 비디오 장치와 같은 클라이언트 컴퓨팅 시스템이 클라이언트 장치들(503, 505, 507, 509, 511)의 일례이다.
클라이언트 장치들(503, 505, 507, 509, 511)은 다양한 시간에 통신 네트워크(518)를 통해 설정 서비스(520), 콘텐츠 서비스(530) 및 호스트되는 애플리케이션 서비스(540)와 통신할 수 있다. 설정 서비스(520)는 도 4에 도시된 컴퓨팅 시스템(410)과 같은 서버 컴퓨팅 시스템 상에 구현될 수 있다. 호스트되는 애플리케이션 서비스(540)는 애플리케이션 서버 상에 구현될 수 있으며, 애플리케이션 서버 자체는 컴퓨팅 시스템들(410, 420)과 유사한 컴퓨팅 시스템일 수 있다.
사용자(501)에 의해 운영되는 클라이언트 장치들(503, 505, 507) 각각은 다양한 프로비저닝 모델들에 따라 프로비저닝되는 애플리케이션 인스턴스들을 포함한다. 구체적으로, 클라이언트 장치(503)는 설치된 애플리케이션(504)을 포함한다. 유사하게, 클라이언트 장치(505)는 설치된 애플리케이션(506)을 포함한다. 클라이언트 장치(507)는 호스트되는 애플리케이션(508)을 포함한다.
사용자(502)에 의해 운영되는 클라이언트 장치들 각각도 다양한 프로비저닝 모델들에 따라 프로비저닝되는 애플리케이션 인스턴스들을 포함한다. 클라이언트 장치(509)는 설치된 애플리케이션(510)을 포함하고, 클라이언트 장치(511)는 호스트되는 애플리케이션(512)을 포함한다.
각각의 장치는 본 명세서에서 설명되는 애플리케이션 인스턴스들과 유사하거나 상이한 다른 추가적인 애플리케이션 인스턴스들을 구비할 수 있다는 것을 이해해야 한다. 게다가, 다른 애플리케이션 인스턴스들이 컴퓨팅 환경(500) 내에 도시된 애플리케이션 인스턴스들과 유사한 모델들에 따라 프로비저닝될 수 있다는 것을 이해해야 한다. 그러나, 애플리케이션 인스턴스들은 도시되지 않은 다른 프로비저닝 모델들, 예를 들어 스트리밍 애플리케이션 모델 또는 본 명세서에서 고려되는 프로비저닝 모델들의 임의 조합 또는 변형에 따라 프로비저닝될 수 있다.
사용자 고유 설정들이 유사한 애플리케이션 인스턴스에 적용될 수 있지만, 사용자 고유 설정들은 상이한 타입의 애플리케이션들에도 적용될 수 있다는 것을 이해해야 한다. 게다가, 각각의 애플리케이션 인스턴스는 모든 다른 애플리케이션 인스턴스와 동일한 애플리케이션의 인스턴스일 수 있다. 예를 들어, 각각의 애플리케이션 인스턴스는 생산성 애플리케이션, 특히 워드 프로세싱 애플리케이션일 수 있다.
그러나, 각각의 애플리케이션 인스턴스, 또는 애플리케이션 인스턴스들 중 적어도 하나는 나머지 애플리케이션 인스턴스들과 다른 애플리케이션의 인스턴스인 것도 가능하다. 예를 들어, 일부 애플리케이션 인스턴스들은 생산성 애플리케이션의 인스턴스들일 수 있지만, 다른 애플리케이션 인스턴스는 게이밍 애플리케이션의 인스턴스일 수 있다. 또 다른 예에서, 일부 애플리케이션들은 워드 프로세싱 애플리케이션의 인스턴스들일 수 있지만, 다른 애플리케이션 인스턴스는 스프레드시트 애플리케이션의 인스턴스일 수 있다.
설정 서비스(520)는 설정들(521) 및 설정들(522)을 포함한다. 설정들(521)은 클라이언트 장치들(503, 505, 507)은 물론, 때때로 사용자(501)와 관련될 수 있는 임의의 다른 클라이언트 장치로 그리고 그로부터 로밍될 수 있는 사용자(501)에 대응하는 설정들을 나타낸다. 설정들(522)은 클라이언트 장치들(509, 511)은 물론, 때때로 사용자(502)와 관련될 수 있는 임의의 다른 클라이언트 장치로 그리고 그로부터 로밍될 수 있는 사용자(502)에 대응하는 설정들을 나타낸다.
콘텐츠 서비스(530)는 문서(531) 및 공유 문서(532)를 포함한다. 콘텐츠 서비스(530)는 생산성 애플리케이션들과 같은 애플리케이션 프로그램들에 의해 로딩되거나 호스트될 수 있는 콘텐츠를 저장할 수 있는 임의의 시스템 또는 서비스일 수 있다. 콘텐츠 서비스(530)는 통합 서비스일 수 있으며, 따라서 설정 서비스(520)를 운영하는 것과 동일한 엔티티에 의해 운영될 수 있다. 그러나, 콘텐츠 서비스(530)는 설정 서비스(520)를 운영하는 엔티티와 다른 엔티티에 의해 운영될 수 있다. 즉, 콘텐츠 서비스(530)는 콘텐츠 아이템들의 원격 또는 클라이드 기반 저장을 가능하게 하는 제삼자 저장 서비스일 수 있다. 그러나, 콘텐츠 서비스(530)는 설정 서비스(520)를 제공하는 것과 동일한 엔티티에 의해 제공되는 통합 저장 서비스일 수도 있다.
동작에 있어서, 사용자(501)는 클라이언트 장치들(503, 505, 507) 상의 임의 애플리케이션 인스턴스와 연관될 수 있다. 애플리케이션 인스턴스와의 연관의 일부로서, 사용자(501)는 애플리케이션 인스턴스에 대해 식별될 수 있다. 예를 들어, 사용자(501)는 애플리케이션 인스턴스에 서명할 수 있다. 이어서, 애플리케이션 인스턴스는 사용자(501)의 식별자를 설정 서비스(520)로 전달하여, 사용자(501)에 고유한 설정들(521)을 획득한다.
사용자(501)가 애플리케이션 인스턴스를 이용하여 작업할 때, 설정들(521)에 대한 업데이트들이 설정 서비스(520)에 제공된다. 이어서, 사용자(501)가 동일한 클라이언트 장치 또는 상이한 클라이언트 장치 상의 동일한 애플리케이션 인스턴스 또는 다른 애플리케이션 인스턴스와 연관될 때, 사용자는 다시 식별될 수 있고, 설정들(521)이 사용자(521)를 위해 검색될 수 있다. 따라서, 다른 애플리케이션 인스턴스는 설정들(521)을 로딩할 수 있으며, 최초 애플리케이션 인스턴스와 연관될 때 향유되는 것과 같은, 설정들(521)을 고려하여 구성되는 유사한 애플리케이션 인터페이스를 사용자(501)에게 제공할 수 있다.
인스의 타입이 변경될 수 있으며, 사용자(501)에 고유한 설정들이 애플리케이션에 의해 계속 제공되고 촉진될 수 있다. 예를 들어, 로컬로 설치된 애플리케이션으로부터 업데이트된 설정들이 애플리케이션의 웹 기반 인스턴스와 같은 호스트되는 인스턴스로 로밍될 수 있다. 따라서, 클라이언트 장치 상에 직접 설치된 애플리케이션을 이용하여 또는 원격 서버 상에서 호스트되는 애플리케이션의 버전을 이용하여 작업하는지에 관계없이, 사용자(501)는 동일한 설정들을 경험할 수 있다.
설정들(521)의 적어도 일부는 콘텐츠 서비스(530)에 의해 저장되는 특정 콘텐츠 아이템들, 예를 들어 문서(531) 또는 공유 문서(532)와 관련될 수 있다는 점에 유의해야 한다. 따라서, 사용자(501)에 의해 운영되는 클라이언트 장치는 설정 서비스(520)로부터 설정들을 그리고 콘텐츠 서비스(530)로부터 콘텐츠를 요청할 수 있다. 이어서, 설정들(521)은 어떤 장치 또는 애플리케이션 인스턴스 또는 이들의 조합이 사용자(501)에 의해 콘텐츠에 액세스하는 데 사용되고 있는지에 관계없이 콘텐츠에 적용될 수 있다.
공유 문서(532)에 적용되는 설정들의 경우, 그러한 설정들은 사용자(501)가 사용자(502)에게 맞춤화된 방식으로 공유 문서(532)를 경험하는 것을 가능하게 한다. 예를 들어, 설정들(521)은 공유 문서(532)에서 사용자(501)에 의해 액세스된 최종 페이지를 식별할 수 있으며, 설정들(522)은 사용자(502)에 의해 액세스된 최종 페이지를 식별할 수 있다.
또한, 동작에 있어서, 사용자(502)는 클라이언트 장치들(509, 511) 상의 임의의 애플리케이션 인스턴스와 연관될 수 있다. 애플리케이션 인스턴스와의 연관의 일부로서, 사용자(502)는 인스에 대해 식별될 수 있다. 예를 들어, 사용자(502)는 애플리케이션 인스턴스에 서명할 수 있다. 이어서, 애플리케이션 인스턴스는 사용자(502)의 식별자를 설정 서비스(520)로 전달하여, 사용자(502)에 고유한 설정들(522)을 획득한다.
사용자(502)가 애플리케이션 인스턴스를 이용하여 작업할 때, 설정들(522)에 대한 업데이트들이 설정 서비스(520)에 제공된다. 이어서, 사용자(502)가 동일한 클라이언트 장치 또는 상이한 클라이언트 장치 상의 다른 애플리케이션 인스턴스와 연관될 때, 사용자는 다시 식별될 수 있고, 설정들(522)이 사용자(502)를 위해 검색될 수 있다. 따라서, 다른 애플리케이션 인스턴스는 설정들(522)을 로딩할 수 있으며, 최초 애플리케이션 인스턴스와 연관될 때 향유되는 것과 같은, 설정들(522)을 고려하여 구성되는 유사한 애플리케이션 인터페이스를 사용자(502)에게 제공할 수 있다.
설정들(522)의 적어도 일부는 공유 문서(532)와 같은 공유 콘텐츠 아이템들과 관련될 수 있다는 점에 유의해야 한다. 따라서, 사용자(502)에 의해 운영되는 클라이언트 장치는 설정 서비스(520)로부터 설정들을 그리고 콘텐츠 서비스(530)로부터 콘텐츠를 요청할 수 있다. 이어서, 설정들(522)은 어떤 장치 또는 애플리케이션 인스턴스 또는 이들의 조합이 사용자(502)에 의해 콘텐츠에 액세스하는 데 사용되고 있는지에 관계없이 콘텐츠에 적용될 수 있다.
공유 문서(532)에 적용되는 설정들의 경우, 그러한 설정들은 사용자(502)가 사용자(501)에게 맞춤화된 방식으로 공유 문서(532)를 경험하는 것을 가능하게 한다. 예를 들어, 설정들(522)은 공유 문서(532)에서 사용자(502)에 의해 액세스된 최종 페이지를 식별할 수 있으며, 설정들(521)은 사용자(501)에 의해 액세스된 최종 페이지를 식별할 수 있다.
이제, 도 6-9를 참조하면, 일 구현에서 로밍 설정 서비스를 제공할 때 컴퓨팅 환경(500) 내의 동작 교환들을 설명하는 여러 순서도가 도시된다.
도 6을 참조하면, 동작 교환(600)은 사용자(501)에 고유한 설정들이 자신들 상에서 실행되는 설치된 애플리케이션 인스턴스들을 갖는 2개의 상이한 클라이언트 장치 사이에서 로밍되는 일례를 나타낸다. 먼저, 사용자(501)는 클라이언트 장치(503) 상의 설치된 애플리케이션(504)에 로그인하거나 그에 대해 식별된다. 사용자(501)가 식별될 때, 설치된 애플리케이션(504)은 통신 네트워크(518)를 통해 설정 서비스(520)로 전달하기 위해 전송되는 설정 요청을 클라이언트 장치(503)를 통해 개시한다. 설정 요청은 사용자(501)를 식별하여, 설정 서비스(520)가 사용자(521)에 고유한 설정들(521)을 검색하는 것을 가능하게 한다. 설정 서비스(521)는 설치된 애플리케이션(504) 내의 로딩 또는 구성을 위해 설정들(521)을 클라이언트 장치(503)로 반환한다.
설정 요청과 동시에, 그 전에 또는 그 후에, 설치된 애플리케이션(504)은 콘텐츠 서비스(530)로부터 문서(531)의 검색도 개시한다. 콘텐츠 서비스(530)는 문서(531)를 클라이언트 장치(503)에 제공한다. 이어서, 설치된 애플리케이션(504)은 문서(531)와 관련된 설정들(521)의 부분들을 적용할 수 있다.
사용자(501)가 설치된 애플리케이션(504)을 이용하여 작업하여, 아마도 설치된 애플리케이션(504), 문서(531) 또는 설치된 애플리케이션(504)에 의해 생성된 애플리케이션 환경의 다른 양태들에 대한 변경들을 행할 때, 설정들(531)에 대한 변경들이 모니터링되고, 설정 업데이트 내에서 설정 서비스(520)에 제공된다. 설정 서비스(520)는 변경들을 수신하고, 설정들(521)의 저장된 사본을 업데이트하여 변경들을 반영한다.
이어서, 사용자(501)는 클라이언트 장치(505) 상의 설치된 애플리케이션(506)과 연관된다. 사용자(501)는 다시 로그인 또는 소정의 다른 식별 메커니즘을 통해 식별된다. 로그인은 설치된 애플리케이션(506), 설치된 애플리케이션(506)과 관련된 애플리케이션 환경, 또는 심지어는 설치된 애플리케이션(506)과 관련된 운영 체제 환경과 관련될 수 있다. 대안으로서, 로그인은 콘텐츠 서비스(530)와 관련될 수 있다. 예를 들어, 사용자(501)는 콘텐츠 서비스(530)에 의해 저장된 문서들 및 다른 콘텐츠에 대한 액세스를 획득하기 위해 콘텐츠 서비스(530)와 관련된 클라이언트 애플리케이션에 로그인할 수 있다. 이어서, 이러한 식별자는 설정 서비스(520)에 대해 사용자(501)를 식별하는 데 사용될 수 있다.
설치된 애플리케이션(506)은 클라이언트 장치(505)를 통해 설정들에 대한 요청을 개시하며, 이 요청은 통신 네트워크(518)를 통한 설정 서비스(520)로의 전달을 위해 전송된다. 설정 서비스(520)는 요청을 수신하고, 이에 응답하여 설정들(521)의 업데이트 버전을 검색하고, 설정들(521)을 그들의 업데이트된 형태로 설치된 애플리케이션(506)에 제공한다. 설치된 애플리케이션(506)은 또한 콘텐츠 서비스(530)로부터 문서(531)를 검색할 수 있다. 콘텐츠 서비스(530)는 문서(531)를 클라이언트 장치(505)에 제공한다. 이어서, 설치된 애플리케이션(506)은 문서(531)와 관련된 설정들(521)의 부분들을 적용하여, 사용자(501)가 클라이언트 장치(503) 상의 설치된 애플리케이션(504)을 통해 경험할 때와 유사한 방식으로 설치된 애플리케이션(506)을 통해 문서(531)를 경험하는 것을 가능하게 한다.
도 7은 사용자(501)에 고유한 설정들이 자신들 상에서 실행되는 상이한 타입의 애플리케이션 인스턴스들을 갖는 2개의 상이한 클라이언트 장치 사이에서 로밍되는 동작 교환(700)을 나타낸다. 즉, 설정들(521)은 애플리케이션의 설치된 인스턴스와 애플리케이션의 호스트되는 인스턴스 사이에서 로밍된다.
먼저, 사용자(501)는 클라이언트 장치(503) 상의 설치된 애플리케이션(504)에 로그인하거나 그에 대해 식별된다. 사용자(501)가 식별될 때, 설치된 애플리케이션(504)은 통신 네트워크(518)를 통한 설정 서비스(520)로의 전달을 위해 전송되는 설정 요청을 클라이언트 장치(503)를 통해 개시한다. 설정 요청은 사용자(501)를 식별하여, 설정 서비스(520)가 사용자(501)에 고유한 설정들(521)을 검색하는 것을 가능하게 한다. 설정 서비스(520)는 설치된 애플리케이션(504) 내의 로딩을 위해 설정들(521)을 클라이언트 장치(503)로 반환한다.
설정 요청과 동시에, 그 전에 또는 그 후에, 설치된 애플리케이션(504)은 또한 콘텐츠 서비스(530)로부터 문서(531)의 검색을 개시한다. 콘텐츠 서비스(530)는 문서(531)를 클라이언트 장치(503)에 제공한다. 이어서, 설치된 애플리케이션(504)은 문서(531)와 관련된 설정들(521)의 부분들을 적용할 수 있다.
사용자(501)가 설치된 애플리케이션(504)을 이용하여 작업하여, 아마도 설치된 애플리케이션(504), 문서(531) 또는 설치된 애플리케이션(504)에 의해 생성된 애플리케이션 환경의 다른 양태들에 대한 변경들을 행할 때, 설정들(521)에 대한 변경들이 모니터링되고, 설정 업데이트 내에서 설정 서비스(520)에 제공된다. 설정 서비스(520)는 변경들을 수신하고, 설정들(521)의 저장된 사본을 업데이트하여 변경들을 반영한다.
이어서, 사용자(501)는 클라이언트 장치(507) 상의 설치된 애플리케이션(508)과 연관된다. 사용자(501)는 로그인 또는 소정의 다른 식별 메커니즘을 통해 애플리케이션 서비스(540)에 대해 식별되며, 이 애플리케이션 서비스는 생산성 애플리케이션(543)을 호스트하고, 그의 인스턴스를 호스트되는 애플리케이션(508)에 의해 표현되는 클라이언트 장치(507)에 제공한다. 로그인은 호스트되는 애플리케이션(508), 호스트되는 애플리케이션(508)과 관련된 애플리케이션 환경, 또는 심지어는 호스트되는 애플리케이션(508)과 관련된 운영 체제 환경과 관련될 수 있다. 대안으로서, 로그인은 콘텐츠 서비스(530)와 관련될 수 있다. 예를 들어, 사용자(501)는 콘텐츠 서비스(530)에 의해 저장된 문서들 및 다른 콘텐츠에 대한 액세스를 획득하기 위해 콘텐츠 서비스(530)와 관련된 클라이언트 애플리케이션에 로그인할 수 있다. 이어서, 이러한 식별자는 설정 서비스(520)에 대해 사용자(501)를 식별하는 데 사용될 수 있다.
이어서, 애플리케이션 서비스(540)는 사용자(501)에 고유한 설정들에 대한 요청을 개시하며, 이 요청은 통신 네트워크(518)를 통한 설정 서비스(520)로의 전달을 위해 전송된다. 대안으로서, 호스트되는 애플리케이션(508)이 애플리케이션 서비스(540) 대신에 이러한 요청을 행할 수 있다. 설정 서비스(520)는 요청을 수신하고, 이에 응답하여 설정들(521)의 업데이트 버전을 검색하고, 설정들(521)을 그들의 업데이트된 형태로 애플리케이션 서비스(540)에 또는 대안으로서 호스트되는 애플리케이션(508)에 제공한다. 이어서, 애플리케이션 서비스(540)는 호스트되는 애플리케이션(508)에 의해 표현되는, 클라이언트 장치(507) 상에서 경험되는 생산성 애플리케이션(543)의 인스턴스에 설정들(521)을 적용할 수 있다. 대안으로서, 호스트되는 애플리케이션(508)은 애플리케이션 서비스(540) 또는 설정 서비스(520)에 의해 그에게 전달되는 설정들 자체를 적용할 수 있다.
호스트되는 애플리케이션(508)은 또한 애플리케이션 서비스(540)를 통해 통신되는 문서(531)에 대한 요청을 개시할 수 있다. 애플리케이션 서비스(540)는 요청을 수신하고, 문서 요청을 콘텐츠 서비스(530)로 전달하여, 요청된 문서를 획득한다. 콘텐츠 서비스(530)는 문서(531)를 애플리케이션 서비스(540)에 제공하고, 이 애플리케이션 서비스는 문서들(531)과 관련된 설정들(521)의 부분들을 적용한다. 이어서, 애플리케이션 서비스(540)는 클라이언트 장치(507)에서 실행되는 호스트되는 애플리케이션(508)을 통해 사용자(501)에게 문서(531)를 제공하여, 사용자(501)가 설치된 애플리케이션(504)을 통해 경험할 때와 유사한 방식으로 호스트되는 애플리케이션(508)을 통해 문서(531)를 경험하는 것을 가능하게 한다. 호스트되는 애플리케이션(508)이 설정 서비스(520)와 통신하여 사용자 고유 로밍 설정들을 획득하는 대안에서, 호스트되는 애플리케이션 서비스(540) 대신에, 호스트되는 애플리케이션(508)이 설정들을 문서(531)에 적용할 수 있다.
또 다른 대안에서, 콘텐츠 서비스(530)는 설정 서비스(520)와 통신하여, 사용자(501) 또는 사용자(502)에 고유한 로밍 설정들을 획득할 수 있다. 이 대안에서, 사용자는 애플리케이션 로그인, 콘텐츠 서비스(530)와 관련된 로그인 프로세스 또는 소정의 다른 방식을 통해 콘텐츠 서비스(530)에 대해 식별될 수 있다. 콘텐츠 아이템이 사용자를 위해 애플리케이션에 의해 요청될 때, 콘텐츠 서비스(530)는 설정 서비스(520)와 통신하여, 로밍 설정들을 검색할 수 있다. 이어서, 콘텐츠 서비스(530)는 어떠한 애플리케이션 모델에 따라 애플리케이션이 제공될 수 있는지에 관계없이 요청 애플리케이션에 콘텐츠 아이템 및 로밍 설정들 양자를 제공할 수 있다. 예를 들어, 콘텐츠 서비스(530)는 클라이언트 장치들(503, 505, 507, 509, 511) 상에 로컬로 설치되거나, 그들로 스트리밍되거나, 그들 상에서 호스트되는 방식으로 실행되는 애플리케이션들로 로밍 설정들을 통신할 수 있다. 게다가, 콘텐츠 서비스(530)는 호스트되는 애플리케이션 서비스(540)로 로밍 설정들을 통신할 수 있다.
사용자(502)는 도 7에서 사용자(501)와 관련하여 전술한 바와 같이 설치된 애플리케이션(510) 및 호스트되는 애플리케이션(512)에 대해 유사한 시나리오를 경험할 수 있다는 것을 이해해야 한다.
도 8은 사용자(501)에 고유한 설정들 및 사용자(502)에 고유한 설정들 양자가 공유 콘텐츠에 적용되어, 각각의 사용자가 동일한 콘텐츠에 대해 맞춤화된 설정들을 경험할 수 있게 하는 동작 교환(800)을 나타낸다.
먼저, 사용자(501)는 클라이언트 장치(503) 상의 설치된 애플리케이션(504)에 로그인하거나 그에 대해 식별된다. 사용자(501)가 식별될 때, 설치된 애플리케이션(504)은 통신 네트워크(518)를 통해 설정 서비스(520)로 전달하기 위해 전송되는 설정 요청을 클라이언트 장치(503)를 통해 개시한다. 설정 요청은 사용자(501)를 식별하여, 설정 서비스(520)가 사용자(521)에 고유한 설정들(521)을 검색하는 것을 가능하게 한다. 설정 서비스(521)는 설치된 애플리케이션(504) 내의 로딩을 위해 설정들(521)을 클라이언트 장치(503)로 반환한다.
설정 요청과 동시에, 그 전에 또는 그 후에, 설치된 애플리케이션(504)은 또한 콘텐츠 서비스(530)로부터 공유 문선(532)의 검색을 개시한다. 콘텐츠 서비스(530)는 문서(532)를 클라이언트 장치(503)에 제공한다. 이어서, 설치된 애플리케이션(504)은 공유 문서(532)와 관련된 설정들(521)의 부분들을 적용할 수 있다. 공유 문서(532)에 적용되는 설정들의 예에서, 그러한 설정들은 사용자(501)가 사용자(502)에 대해 맞춤화된 방식으로 공유 문서(532)를 경험하는 것을 가능하게 한다. 예를 들어, 설정들(521)은 공유 문서(532)에서 사용자(501)에 의해 액세스된 최종 페이지(페이지 X)를 식별할 수 있는 반면, 후술하는 설정들(522)은 공유 문서(532)에서 사용자(502)에 의해 액세스된 최종 페이지(페이지 Y)를 식별할 수 있다.
한편, 사용자(502)는 클라이언트 장치(509) 상의 설치된 애플리케이션(510)과 연관될 수 있다. 사용자(502)는 로그인 또는 소정의 다른 식별 메커니즘을 통해 식별된다. 설치된 애플리케이션(510)은 클라이언트 장치(509)를 통해 설정들에 대한 요청을 개시하며, 이러한 요청은 통신 네트워크(518)를 통한 설정 서비스(520)로의 전달을 위해 전송된다. 설정 서비스(520)는 요청을 수신하고, 이에 응답하여 사용자(502)에 고유한 설정들(522)을 검색하고, 설정들(522)을 설치된 애플리케이션(510)에 제공한다.
설치된 애플리케이션(510)은 또한 콘텐츠 서비스(530)로부터 공유 문서(532)를 검색할 수 있다. 콘텐츠 서비스(530)는 문서(532)를 클라이언트 장치(509)에 제공한다. 이어서, 설치된 애플리케이션(510)은 공유 문서(532)와 관련된 설정들(522)의 부분들을 적용할 수 있다. 공유 문서(532)에 적용되는 설정들의 예에서, 그러한 설정들은 사용자(502)가 사용자(501)에 대해 맞춤화된 방식으로 공유 문서(532)를 경험하는 것을 가능하게 한다. 예를 들어, 설정들(522)은 공유 문서(532)에서 사용자(502)에 의해 액세스된 최종 페이지(페이지 Y)를 식별할 수 있는 반면, 전술한 설정들(521)은 공유 문서(532)에서 사용자(502)에 의해 액세스된 최종 페이지(페이지 X)를 식별할 수 있다.
도 9는 설정 서비스(521)의 장애와 관련된 동작 교환(900)을 나타낸다. 동작 교환(900)에서, 설정 업데이트들이 그들에 첨부되거나 포함된 생성 식별자와 함께 설정 서비스(521)에 제공된다. 예를 들어, 클라이언트 장치(503)는 설치된 애플리케이션(504)에 의한 업데이트의 개시시에 생성 식별자를 설정 서비스(521)에 제공한다. 유사하게, 클라이언트 장치(505)는 설치된 애플리케이션(506)에 의한 업데이트의 개시시에 생성 식별자를 설정 서비스(521)에 제공한다.
임의의 주어진 순간에, 설정 서비스(521)의 전부 또는 일부를 불능화하는 장애가 발생할 수 있다. 예를 들어, 사용자(501)에 고유한 설정들(521)이 삭제되거나, 손상되거나, 이용 불가능하게 될 수 있다. 장애 조건의 검출에 응답하여, 설정 서비스(521)는 생성 식별자들을 애플리케이션 인스턴스들과 연계하여 저장할 수 있는 생성 저장소를 분석하여, 사용자(501)와 관련된 설정들(521)의 최신 버전에 대해 어느 애플리케이션 인스턴스가 조회되어야 하는지를 결정할 수 있다.
이 예에서는, 설명의 목적을 위해, 클라이언트 장치(503)에 의해 제공되는 생성 식별자가 최신 생성 식별자를 나타내는 것으로 결정된다. 따라서, 설정 서비스(521)는 클라이언트 장치(503) 상의 설치된 애플리케이션 인스턴스에 대해 수리 요청을 행하여, 설정들(521)의 완전한 또는 거의 완전한 사본을 제공한다. 이러한 방식으로, 설정 서비스(520)는 설정들(521)을 획득할 수 있으며, 앞으로 이동하는 것은 설정들(521)이 사용자(501)에 의해 사용되는 다른 장치들 및 애플리케이션 인스턴스들로 로밍되는 것을 가능하게 할 수 있다.
대안으로서, 생성 식별자들을 설정 업데이트들과 함께 제공하는 것이 아니라, 클라이언트 장치들(503, 505) 상에서 실행되는 다양한 애플리케이션 인스턴스들은 그들 각각의 설정 업데이트들을 간단히 추적할 수 있다. 이어서, 장애에 응답하여, 설정 서비스(520)는 그들 각각의 생성 식별자들에 대해 클라이언트 장치들(503, 505)에 조회할 수 있다. 이때, 클라이언트 장치들(503, 505)은 설정 서비스(520)에 의한 분석을 위해 그들 각각의 생성 식별자들을 제공하여, 장애에 응답할 설정들(521)의 최신 사본의 위치를 결정할 수 있다.
로밍 설정 서비스의 동작 예에서, 서비스는 콘텐츠 아이템을 호스트하는 제1 애플리케이션 모델에 따라 프로비저닝되는 애플리케이션 프로그램의 인스턴스와 연관되는 동안에 적어도 콘텐츠 아이템과의 사용자의 상호작용을 나타내는 사용자에 고유한 로밍 설정들에 대한 업데이트를 수신한다. 이어서, 서비스는 콘텐츠 아이템을 호스트하는 제2 애플리케이션 모델에 따라 프로비저닝되는 애플리케이션 프로그램의 인스턴스에 의해 개시되는 사용자에 고유한 로밍 설정들에 대한 요청을 수신한다. 요청에 응답하여, 서비스는 제1 애플리케이션 모델에 따라 프로비저닝되는 애플리케이션 프로그램의 인스턴스와 연관되는 동안에 적어도 콘텐츠 아이템과의 사용자의 상호작용을 나타내는 로밍 설정들에 대한 업데이트를 반영하는 업데이트된 로밍 설정들을 검색한다. 서비스는 제2 애플리케이션 모델에 따라 프로비저닝되는 애플리케이션 프로그램의 인스턴스로의 전달을 위해 업데이트된 로밍 설정들을 전송한다.
하나의 시나리오에서, 애플리케이션 프로그램은 생산성 애플리케이션일 수 있으며, 콘텐츠 아이템은 생산성 문서일 수 있다. 게다가, 콘텐츠 아이템들과의 사용자의 상호작용은 사용자를 위해 가장 최근에 액세스된 생산성 문서 내의 장소일 수 있다. 일 변형에서, 생산성 문서는 워드 프로세싱 문서, 스프레드시트 문서 또는 프레젠테이션 문서는 물론, 임의의 다른 종류의 생산성 문서 중 적어도 하나일 수 있다.
다른 시나리오에서, 생산성 문서는 공유 생산성 문서일 수 있다. 그러한 경우에, 서비스는 제2 애플리케이션 모델에 따라 프로비저닝되는 애플리케이션 프로그램의 다른 인스턴스와 연관되는 동안에 공유 생산성 문서와의 다른 사용자의 상호작용을 나타내는 다른 사용자에 고유한 로밍 설정들에 대한 다른 요청을 수신할 수 있다. 다른 요청에 응답하여, 서비스는 관련 로밍 설정들을 검색하고, 애플리케이션 프로그램의 다른 인스턴스로의 전달을 위해 로밍 설정들을 전송한다. 공유 생산성 문서와의 다른 사용자의 상호작용은 다른 사용자를 위해 가장 최근에 액세스된 생산성 문서 내의 장소에 대응한다.
소정 구현들에서, 제1 애플리케이션 모델은 자신 상에 로컬로 설치된 제1 애플리케이션 모델에 따라 프로비저닝되는 애플리케이션 프로그램의 인스턴스를 갖는 클라이언트 장치에 의해 업데이트가 통신되는 로컬 설치 모델일 수 있다. 제2 애플리케이션 모델은 호스트되는 애플리케이션 모델일 수 있으며, 업데이트는 자신 상에서 호스트되는 제1 애플리케이션 모델에 따라 프로비저닝되는 애플리케이션 프로그램의 인스턴스를 갖는 애플리케이션 서버로부터 통신될 수 있다.
하나의 시나리오에서, 서비스는 장애 조건에 응답하여 로밍 설정들의 사본을 획득하기 위해 제1 애플리케이션 모델에 따라 프로비저닝되는 애플리케이션 프로그램의 적어도 하나의 인스턴스로 전달할 수리 요청을 생성하고 전송할 수 있다.
또 다른 시나리오에서, 서비스는 상이한 종류의 애플리케이션들에 의해 적용될 수 있는 사용자 고유 로밍 설정들을 통신할 수 있다. 예를 들어, 로밍 설정들은 워드 프로세싱 애플리케이션은 물론, 스프레드시트 애플리케이션에 의해 적용될 수 있다. 그러한 시나리오에서, 서비스는 문서를 호스트하는 생산성 애플리케이션의 인스턴스에 의해 개시되는 사용자에 고유한 로밍 설정들에 대한 요청을 수신한다. 요청에 응답하여, 서비스는 상이한 애플리케이션 프로그램의 인스턴스와 연관되는 동안에 적어도 콘텐츠 아이템과의 사용자의 상호작용을 나타내는 로밍 설정들에 대한 업데이트를 반영하는 업데이트된 로밍 설정들을 검색한다. 서비스는 생산성 애플리케이션의 인스턴스로의 전달을 위해 업데이트된 로밍 설정들을 전송한다. 상이한 타입의 애플리케이션들에 적용될 수 있는 설정들의 예들은 맞춤 사전, 매크로, 맞춤 클립 아트 및 템플릿은 물론, 많은 다른 종류의 설정을 포함한다. 예를 들어, 사용자는 워드 프로세싱 문서와 연관되는 동안에 맞춤 사전에 단어를 추가하는 것과 같이 맞춤 사전에 대한 변경을 행할 수 있다. 이어서, 프레젠테이션 애플리케이션과 연관될 때, 맞춤 사전은 해당 단어를 그 안에 포함할 것이다.
도면들에서 제공되는 기능 블록도들, 동작 순서들 및 흐름도들은 본 발명의 새로운 양태들을 수행하기 위한 예시적인 아키텍처들, 환경들 및 방법들을 나타낸다. 설명의 간소화를 위해, 본 명세서에 포함된 방법들은 기능도, 동작 순서 또는 흐름도의 형태를 가질 수 있고, 일련의 동작들로서 설명될 수 있지만, 일부 동작들은 본 발명에 따라 상이한 순서로 그리고/또는 본 명세서에서 도시되고 설명되는 것과 다른 동작들과 동시에 발생할 수 있으므로, 방법들은 동작들의 순서에 의해 한정되지 않는다는 것을 이해하고 알아야 한다. 예를 들어, 이 분야의 기술자들은 방법이 대안으로서 상태도에서와 같이 일련의 상호 관련된 상태들 또는 이벤트들로서 표현될 수 있다는 것을 이해하고 알 것이다. 더욱이, 방법에서 설명되는 모든 동작들이 새로운 구현을 위해 필요한 것은 아닐 수 있다.
포함된 설명들 및 도면들은 최상의 모드를 실시하고 이용하는 방법을 이 분야의 기술자들에게 교시하기 위한 특정 구현들을 설명한다. 본 발명의 원리들을 교시하기 위해, 일부 전통적인 양태들은 간소화되거나 생략되었다. 당업자들은 본 발명의 범위 내에 속하는 이러한 구현들로부터의 변형들을 이해할 것이다. 당업자들은 전술한 특징들이 다수의 구현을 형성하기 위해 다양한 방식으로 결합될 수 있다는 것도 이해할 것이다. 결과적으로, 본 발명은 전술한 특정 구현들로 한정되는 것이 아니라, 청구범위 및 그들의 균등물들에 의해서만 한정된다.

Claims (10)

  1. 로밍 설정 서비스를 운영하는 방법으로서,
    콘텐츠 아이템을 호스트하는 제1 애플리케이션 모델에 따라 프로비저닝되는 애플리케이션 프로그램의 인스턴스와 연관되는 동안에 적어도 상기 콘텐츠 아이템과의 사용자의 상호작용을 나타내는 상기 사용자에 고유한 로밍 설정에 대한 업데이트를 수신하는 단계와,
    상기 콘텐츠 아이템을 호스트하는 제2 애플리케이션 모델에 따라 프로비저닝되는 상기 애플리케이션 프로그램의 인스턴스에 의해 개시되는 상기 사용자에 고유한 상기 로밍 설정에 대한 요청을 수신하는 단계와,
    상기 요청에 응답하여, 상기 제1 애플리케이션 모델에 따라 프로비저닝되는 상기 애플리케이션 프로그램의 상기 인스턴스와 연관되는 동안에 적어도 상기 콘텐츠 아이템과의 상기 사용자의 상기 상호작용을 나타내는 상기 로밍 설정에 대한 상기 업데이트를 반영하는 업데이트된 로밍 설정을 검색하는 단계와,
    상기 제2 애플리케이션 모델에 따라 프로비저닝되는 상기 애플리케이션 프로그램의 상기 인스턴스로의 전달을 위해 상기 업데이트된 로밍 설정을 전송하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 애플리케이션 프로그램은 생산성 애플리케이션을 포함하고, 상기 콘텐츠 아이템은 생산성 문서를 포함하고, 상기 콘텐츠 아이템과의 상기 사용자의 상기 상호작용은 상기 사용자를 위해 가장 최근에 액세스된 상기 생산성 문서 내의 장소를 포함하는
    방법.
  3. 제2항에 있어서,
    상기 생산성 문서는 워드 프로세싱 문서, 스프레드시트 문서 및 프레젠테이션 문서 중 적어도 하나를 포함하는
    방법.
  4. 제2항에 있어서,
    상기 생산성 문서는 공유 생산성 문서를 포함하고,
    상기 방법은
    상기 제2 애플리케이션 모델에 따라 프로비저닝되는 상기 애플리케이션 프로그램의 제2 인스턴스와 연관되는 동안에 적어도 상기 공유 생산성 문서와의 제2 사용자의 제2 상호작용을 나타내는 상기 제2 사용자에 고유한 제2 로밍 설정에 대한 제2 요청을 수신하는 단계와,
    상기 제2 요청에 응답하여, 상기 제2 로밍 설정을 검색하는 단계와,
    상기 애플리케이션 프로그램의 상기 제2 인스턴스로의 전달을 위해 상기 제2 로밍 설정을 전송하는 단계
    를 포함하고,
    상기 공유 생산성 문서와의 상기 제2 사용자의 상기 제2 상호작용은 상기 제2 사용자를 위해 가장 최근에 액세스된 상기 생산성 문서 내의 제2 장소를 포함하는
    방법.
  5. 제1항에 있어서,
    상기 제1 애플리케이션 모델은 로컬 설치 모델을 포함하고, 상기 업데이트를 수신하는 단계는 자신 상에 로컬로 설치된 상기 제1 애플리케이션 모델에 따라 프로비저닝되는 상기 애플리케이션 프로그램의 상기 인스턴스를 갖는 클라이언트 장치로부터 상기 업데이트를 수신하는 단계를 포함하는
    방법.
  6. 제5항에 있어서,
    상기 제2 애플리케이션 모델은 호스트되는 애플리케이션 모델을 포함하고, 상기 업데이트를 수신하는 단계는 자신 상에서 호스트되는 상기 제1 애플리케이션 모델에 따라 프로비저닝되는 상기 애플리케이션 프로그램의 상기 인스턴스를 갖는 애플리케이션 서버로부터 상기 업데이트를 수신하는 단계를 포함하는
    방법.
  7. 제6항에 있어서,
    장애 조건에 응답하여 상기 로밍 설정의 사본을 획득하기 위해 상기 제1 애플리케이션 모델에 따라 프로비저닝되는 상기 애플리케이션 프로그램의 적어도 하나의 인스턴스로 전달할 수리 요청을 생성하고 전송하는 단계를 더 포함하는
    방법.
  8. 제1항에 있어서,
    상기 애플리케이션 프로그램은 제1 생산성 애플리케이션을 포함하고, 상기 콘텐츠 아이템은 제1 생산성 문서를 포함하고,
    상기 방법은
    제2 생산성 문서를 호스트하는 제2 생산성 애플리케이션의 인스턴스에 의해 개시되는 상기 사용자에 고유한 상기 로밍 설정에 대한 제2 요청을 수신하는 단계와,
    상기 요청에 응답하여, 상기 제1 애플리케이션 모델에 따라 프로비저닝되는 상기 애플리케이션 프로그램의 상기 인스턴스와 연관되는 동안에 적어도 상기 콘텐츠 아이템과의 상기 사용자의 상기 상호작용을 나타내는 상기 로밍 설정에 대한 상기 업데이트를 반영하는 업데이트된 로밍 설정을 검색하고, 상기 제2 생산성 애플리케이션의 상기 인스턴스로의 전달을 위해 상기 업데이트된 로밍 설정을 전송하는 단계
    를 포함하고,
    상기 사용자에 고유한 상기 로밍 설정은 맞춤 사전을 포함하고, 상기 제1 애플리케이션 모델에 따라 프로비저닝되는 상기 애플리케이션 프로그램의 상기 인스턴스와 연관되는 동안에 상기 콘텐츠 아이템과의 상기 사용자의 상기 상호작용은 상기 맞춤 사전에 대한 변경을 포함하는
    방법.
  9. 로밍 설정 서비스를 제공하기 위한 프로그램 명령어를 저장한 하나 이상의 컴퓨터 판독 가능 매체로서,
    상기 로밍 설정 서비스는 컴퓨팅 시스템에 의해 실행될 때 상기 컴퓨팅 시스템으로 하여금 적어도
    콘텐츠 아이템을 호스트하는 제1 애플리케이션 모델에 따라 프로비저닝되는 애플리케이션 프로그램의 인스턴스와 연관되는 동안에 적어도 상기 콘텐츠 아이템과의 사용자의 상호작용을 나타내는 상기 사용자에 고유한 로밍 설정에 대한 업데이트를 수신하고,
    상기 콘텐츠 아이템을 호스트하는 제2 애플리케이션 모델에 따라 프로비저닝되는 상기 애플리케이션 프로그램의 인스턴스에 의해 개시되는 상기 사용자에 고유한 상기 로밍 설정에 대한 요청을 수신하고,
    상기 요청에 응답하여, 상기 제1 애플리케이션 모델에 따라 프로비저닝되는 상기 애플리케이션 프로그램의 상기 인스턴스와 연관되는 동안에 적어도 상기 콘텐츠 아이템과의 상기 사용자의 상기 상호작용을 나타내는 상기 로밍 설정에 대한 상기 업데이트를 반영하는 업데이트된 로밍 설정을 검색하고, 상기 제2 애플리케이션 모델에 따라 프로비저닝되는 상기 애플리케이션 프로그램의 상기 인스턴스로의 전달을 위해 상기 업데이트된 로밍 설정을 전송하게 하는
    하나 이상의 컴퓨터 판독 가능 매체.
  10. 제9항에 있어서,
    상기 애플리케이션 프로그램은 생산성 애플리케이션을 포함하고, 상기 콘텐츠 아이템은 생산성 문서를 포함하고, 상기 콘텐츠 아이템과의 상기 사용자의 상기 상호작용은 상기 사용자를 위해 가장 최근에 액세스된 상기 생산성 문서 내의 장소를 포함하고, 상기 생산성 문서는 워드 프로세싱 문서, 스프레드시트 문서 및 프레젠테이션 문서 중 적어도 하나를 포함하는
    하나 이상의 컴퓨터 판독 가능 매체.
KR1020147035807A 2012-06-21 2013-06-14 사용자 고유 로밍 설정 기법 KR102059220B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/528,948 US9258382B2 (en) 2012-06-21 2012-06-21 User-specific roaming settings
US13/528,948 2012-06-21
PCT/US2013/045753 WO2013192023A2 (en) 2012-06-21 2013-06-14 User-specific roaming settings

Publications (2)

Publication Number Publication Date
KR20150023425A true KR20150023425A (ko) 2015-03-05
KR102059220B1 KR102059220B1 (ko) 2019-12-24

Family

ID=48699975

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147035807A KR102059220B1 (ko) 2012-06-21 2013-06-14 사용자 고유 로밍 설정 기법

Country Status (7)

Country Link
US (3) US9258382B2 (ko)
EP (2) EP2865167B1 (ko)
JP (1) JP6257610B2 (ko)
KR (1) KR102059220B1 (ko)
CN (1) CN104396219B (ko)
TW (1) TW201403476A (ko)
WO (1) WO2013192023A2 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9258382B2 (en) * 2012-06-21 2016-02-09 Microsoft Technology Licensing, Llc User-specific roaming settings
US10171537B2 (en) 2015-08-07 2019-01-01 At&T Intellectual Property I, L.P. Segregation of electronic personal health information
US9942747B2 (en) 2015-08-07 2018-04-10 At&T Mobility Ii Llc Dynamic utilization of services by a temporary device
US10631192B2 (en) 2015-08-14 2020-04-21 At&T Intellectual Property I, L.P. Policy enforced intelligent persona manager
US10044780B2 (en) 2015-08-26 2018-08-07 At&T Intellectual Property I, L.P. Dynamic segregated secure data connection
US10241776B2 (en) * 2016-04-08 2019-03-26 Microsoft Technology Licensing, Llc User settings across programs
CN107038745B (zh) * 2017-03-21 2020-08-07 中国农业大学 一种3d旅游景观漫游交互方法及装置
US11782731B1 (en) * 2018-12-03 2023-10-10 Amazon Technologies, Inc. Persisting user settings for non-persistent application streaming environments
JP7183448B2 (ja) 2019-11-21 2022-12-05 三菱電機株式会社 冷蔵庫

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080098006A1 (en) * 2006-10-20 2008-04-24 Brad Pedersen Methods and systems for accessing remote user files associated with local resources
US20090106266A1 (en) * 2006-04-12 2009-04-23 International Business Machines Corporation Method and System for Adjusting Software Settings
JP2011187058A (ja) * 2010-03-04 2011-09-22 Panasonic Corp アプリケーションのセッション継続性に対応するシステム及び方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5875443A (en) * 1996-01-30 1999-02-23 Sun Microsystems, Inc. Internet-based spelling checker dictionary system with automatic updating
US6963908B1 (en) * 2000-03-29 2005-11-08 Symantec Corporation System for transferring customized hardware and software settings from one computer to another computer to provide personalized operating environments
US20020111972A1 (en) * 2000-12-15 2002-08-15 Virtual Access Networks. Inc. Virtual access
US7356816B2 (en) * 2001-02-13 2008-04-08 Computer Associates Think, Inc. Method and apparatus for multiplatform migration
US7302634B2 (en) * 2001-03-14 2007-11-27 Microsoft Corporation Schema-based services for identity-based data access
US7171659B2 (en) * 2002-03-19 2007-01-30 Sun Microsystems, Inc. System and method for configurable software provisioning
US7370066B1 (en) * 2003-03-24 2008-05-06 Microsoft Corporation System and method for offline editing of data files
US7797752B1 (en) * 2003-12-17 2010-09-14 Vimal Vaidya Method and apparatus to secure a computing environment
US7822793B2 (en) * 2005-04-01 2010-10-26 Microsoft Corporation User data profile namespace
KR101303872B1 (ko) * 2006-08-29 2013-09-04 삼성전자주식회사 서비스 로밍 시스템 및 방법
US20100115254A1 (en) * 2008-10-30 2010-05-06 Thomas Deng Synchronization in Multiple Environments
US20100179984A1 (en) * 2009-01-13 2010-07-15 Viasat, Inc. Return-link optimization for file-sharing traffic
US8271655B2 (en) * 2009-12-03 2012-09-18 International Business Machines Corporation Cloud computing roaming services
US9015283B2 (en) * 2009-12-18 2015-04-21 Microsoft Technology Roaming profiles and application compatibility in multi-user systems
US8606889B2 (en) * 2010-01-21 2013-12-10 Microsoft Corporation Roaming application settings across multiple computing devices
EP2754041B1 (en) * 2011-09-07 2020-06-24 Imagine Communications Corp. Systems and methods for developing component-based computing applications
US9258382B2 (en) * 2012-06-21 2016-02-09 Microsoft Technology Licensing, Llc User-specific roaming settings

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090106266A1 (en) * 2006-04-12 2009-04-23 International Business Machines Corporation Method and System for Adjusting Software Settings
US20080098006A1 (en) * 2006-10-20 2008-04-24 Brad Pedersen Methods and systems for accessing remote user files associated with local resources
JP2011187058A (ja) * 2010-03-04 2011-09-22 Panasonic Corp アプリケーションのセッション継続性に対応するシステム及び方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Strickland, "How Google Docs Works"(2011.09.09.) *

Also Published As

Publication number Publication date
JP2015520469A (ja) 2015-07-16
JP6257610B2 (ja) 2018-01-10
EP2865167A2 (en) 2015-04-29
CN104396219B (zh) 2017-11-14
US20160085540A1 (en) 2016-03-24
EP3197132A1 (en) 2017-07-26
US20130346954A1 (en) 2013-12-26
EP2865167B1 (en) 2017-03-01
KR102059220B1 (ko) 2019-12-24
US20170147328A1 (en) 2017-05-25
US9258382B2 (en) 2016-02-09
CN104396219A (zh) 2015-03-04
EP3197132B1 (en) 2018-12-12
WO2013192023A2 (en) 2013-12-27
TW201403476A (zh) 2014-01-16
WO2013192023A3 (en) 2014-03-27
US9612823B2 (en) 2017-04-04

Similar Documents

Publication Publication Date Title
KR102059220B1 (ko) 사용자 고유 로밍 설정 기법
US9781089B2 (en) Authenticating a user account with a content management system
US10164833B2 (en) Configuring computing devices using a bootstrap configuration
CN104704468B (zh) Web应用程序的跨***安装
JP2016529599A (ja) コンテンツクリップボードの同期
CN105474206A (zh) 支持按需数据传输的虚拟同步
WO2013067065A1 (en) Server upgrades with safety checking and preview
US9424364B2 (en) Integrated context-driven information search and interaction
EP4320519A1 (en) Cross-platform context activation
Orduña et al. Enabling mobile access to Remote Laboratories
US11863595B2 (en) Method and apparatus for matching users, computer device, and storage medium
US9531703B2 (en) Single sign-on via application or browser
US9170780B2 (en) Processing changed application metadata based on relevance
CN105074652B (zh) 用于向打印机远程提供应用功能的方法和计算机***
EP3513316B1 (en) Personalized search environment
US20080228927A1 (en) Server directed browsing
US10230712B2 (en) Binary experimentation on running web servers
Chelemen Modeling a web application for cloud content adaptation with ASMs
KR101553539B1 (ko) 동적 링크 제공 방법 및 이를 수행하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
US20180007133A1 (en) Server-to-server content distribution
CN116028906A (zh) 金融研报管理方法和装置、以及金融研报管理***
NL2012867B1 (en) Method and system for providing a document in a data communication network.
CN117492813A (zh) 一种业务服务实现方法、***、计算设备及存储介质
KR20180034010A (ko) 데이터 이체 기반의 추천 아이템 자동 실행 장치 및 이를 이용한 방법

Legal Events

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