KR20200120763A - 컴퓨팅 디바이스 사이에서의 디바이스 연관 데이터의 동기화 - Google Patents

컴퓨팅 디바이스 사이에서의 디바이스 연관 데이터의 동기화 Download PDF

Info

Publication number
KR20200120763A
KR20200120763A KR1020207029344A KR20207029344A KR20200120763A KR 20200120763 A KR20200120763 A KR 20200120763A KR 1020207029344 A KR1020207029344 A KR 1020207029344A KR 20207029344 A KR20207029344 A KR 20207029344A KR 20200120763 A KR20200120763 A KR 20200120763A
Authority
KR
South Korea
Prior art keywords
peripheral
computing device
related data
service
computing
Prior art date
Application number
KR1020207029344A
Other languages
English (en)
Other versions
KR102303681B1 (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 KR20200120763A publication Critical patent/KR20200120763A/ko
Application granted granted Critical
Publication of KR102303681B1 publication Critical patent/KR102303681B1/ko

Links

Images

Classifications

    • 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/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • 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/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Abstract

주변장치 디바이스에 연결하기 위해 사용되는 데이터인 주변장치 디바이스에 대한 디바이스 연관 데이터가, 서비스 상의 유저 계정과 연관되는 복수의 컴퓨팅 디바이스에 걸쳐 유지되고 동기화된다. 새로운 주변장치 디바이스가 컴퓨팅 디바이스와 연관되면, 새로운 주변장치 디바이스에 대한 디바이스 연관 데이터가 컴퓨팅 디바이스에 추가된다. 새로운 주변장치 디바이스에 대한 디바이스 연관 데이터는 서비스로 또한 전송되는데, 서비스는 디바이스 연관성을, 유저가 그의 또는 그녀의 계정을 로그인하게 되는 다른 컴퓨팅 디바이스로 제공하고, 이들 다른 컴퓨팅 디바이스는 결국에는 그들 자신을 주변장치 디바이스와 자동적으로 연관시킨다. 하나의 컴퓨팅 디바이스 상에서 주변장치 디바이스를 어떻게 사용하는 것을 유저가 소망하는지를 설명하는 디바이스 사용 데이터뿐만 아니라, 하나의 컴퓨팅 디바이스 상에서의 상기 디바이스 연관 데이터에 대한 변경도 복수의 컴퓨팅 디바이스에 걸쳐 마찬가지로 동기화될 수 있다.

Description

컴퓨팅 디바이스 사이에서의 디바이스 연관 데이터의 동기화{SYNCHRONIZING DEVICE ASSOCIATION DATA AMONG COMPUTING DEVICES}
배경
컴퓨팅 기술이 진보함에 따라, 사람들이 이용가능한 그리고 하루 중 사람들이 사용하는 상이한 컴퓨팅 디바이스의 수가 증가하고 있다. 이들 디바이스를 사용할 때, 사람들은 종종 동일한 주변장치 디바이스(peripheral device), 예컨대 프린터, 스캐너, 헤드셋 등에 액세스하기를 바란다. 복수의 컴퓨팅 디바이스를 이용하여 동일한 주변장치 디바이스를 사용할 수 있게 되는 것은, 유저가 상이한 컴퓨팅 디바이스 상에서 그들이 익숙한 주변장치 디바이스를 사용할 수 있기 때문에, 유저에게는 유익하다. 그러나, 복수의 상이한 컴퓨팅 디바이스 상에서 동일한 주변장치 디바이스를 사용하는 것의 문제가 없는 것은 아니다. 하나의 이러한 문제점은, 이러한 주변장치 디바이스가 복수의 상이한 컴퓨팅 디바이스 각각 상에서 유저에 의해 설치되는 것을 필요로 하고, 이것은 시간 소비적인 프로세스이며 열악한 유저 경험으로 이어진다.
이 개요는 하기 상세한 설명에서 더 설명되는 개념의 선택을 간소화된 형태로 소개하기 위해 제공된다. 이 개요는 청구된 주제의 주요 특징이나 또는 본질적인 특징을 식별하도록 의도된 것이 아니며, 청구된 주제의 범위를 제한하는 데 사용되도록 의도된 것도 아니다.
하나 이상의 양태에 따르면, 주변장치 디바이스에 대한 디바이스 연관 데이터(device association data)는 주변장치 디바이스에 연결하는 법을 설명한다. 유저 계정과 연관되는 하나 이상의 주변장치 디바이스 각각에 대한 디바이스 연관 데이터가 수신된다. 하나 이상의 주변장치 디바이스 중 어떤 것이 컴퓨팅 디바이스와 자동적으로 연관될 수 있는지에 관한 결정이 이루어지고, 하나 이상의 주변장치 디바이스 중 컴퓨팅 디바이스와 자동적으로 연관될 수 있는 것은 컴퓨팅 디바이스와 자동적으로 연관된다.
유사한 피쳐를 참조하기 위해 도면 전체에 걸쳐 동일한 도면 번호가 사용된다.
도 1은, 하나 이상의 실시형태에 따른, 컴퓨팅 디바이스 사이에서의 디바이스 연관 데이터의 동기화를 구현하는 예시적인 시스템을 예시한다.
도 2는, 하나 이상의 실시형태에 따른, 컴퓨팅 디바이스 사이에서의 디바이스 연관 데이터의 동기화를 구현하는 예시적인 컴퓨팅 디바이스를 예시하는 블록도이다.
도 3은, 하나 이상의 실시형태에 따른, 컴퓨팅 디바이스 사이에서 디바이스 연관 데이터를 동기화하기 위한 예시적인 프로세스를 예시하는 플로우차트이다.
도 4는 하나 이상의 실시형태에 따른, 주변장치 디바이스를 컴퓨팅 디바이스와 자동적으로 연관시키기 위한 예시적인 프로세스를 예시하는 플로우차트이다.
도 5는, 하나 이상의 실시형태에 따른, 본원에서 논의되는 기술을 구현하기 위한 예시적인 모델을 예시하는 블록도이다.
도 6은 본원에서 설명되는 다양한 기술을 구현할 수도 있는 하나 이상의 시스템 및/또는 디바이스를 묘사하는 예시적인 컴퓨팅 디바이스를 포함하는 예시적인 시스템을 예시한다.
컴퓨팅 디바이스 사이에서 디바이스 연관 데이터를 동기화하는 것이 본원에서 논의된다. 하나 이상의 주변장치 디바이스에 대한 디바이스 연관 데이터는, 로컬 또는 원격 서비스의 유저 계정과 연관되는 복수의 상이한 컴퓨팅 디바이스 사이에서 유지되고 동기화된다. 주변장치 디바이스에 대한 디바이스 연관 데이터는 주변장치 디바이스에 연결하기 위해 사용되는 데이터, 예컨대 주변장치 디바이스의 네트워크 어드레스, 주변장치 디바이스와 통신하기 위해 사용되는 보안 정보 등이다. 디바이스 연관 데이터는, 유저가 그의 또는 그녀의 유저 계정에 액세스하게 되는 컴퓨팅 디바이스에 의해서뿐만 아니라 그의 또는 그녀의 유저 계정과 연관되는 서비스에 의해 유지된다.
새로운 주변장치 디바이스가 컴퓨팅 디바이스 상에 설치되거나 또는 다르게는 컴퓨팅 디바이스와 연관되면, 새로운 주변장치 디바이스에 대한 디바이스 연관 데이터는 컴퓨팅 디바이스에 추가될 뿐만 아니라 서비스에도 추가된다. 유저가 컴퓨팅 디바이스로부터 그의 또는 그녀의 유저 계정에 로그인하면, 컴퓨팅 디바이스에 아직 저장되어 있지 않은 주변장치 디바이스에 대한 디바이스 연관 데이터는 서비스로부터 컴퓨팅 디바이스로 복사되고, 이들 주변장치 디바이스 중 컴퓨팅 디바이스 상에 자동적으로 설치될 수 있는 또는 다르게는 컴퓨팅 디바이스와 연관될 수 있는 주변장치 디바이스는 컴퓨팅 디바이스 상에 자동적으로 설치되거나 또는 다르게는 컴퓨팅 디바이스와 자동적으로 연관된다. 따라서, 주변장치 디바이스에 대한 디바이스 연관 데이터가 컴퓨팅 디바이스 또는 서비스에 추가되면, 디바이스 연관 데이터는, 유저가 그의 또는 그녀의 계정에 로그인하게 되는 다른 컴퓨팅 디바이스와 동기화되는데, 디바이스 연관 데이터는 이들 다른 컴퓨팅 디바이스로 복사되고 주변장치 디바이스는 이러한 다른 컴퓨팅 디바이스 상에 자동적으로 설치되거나 또는 이러한 다른 컴퓨팅 디바이스와 자동적으로 연관된다.
도 1은, 하나 이상의 실시형태에 따른, 컴퓨팅 디바이스 사이에서의 디바이스 연관 데이터의 동기화를 구현하는 예시적인 시스템(100)을 예시한다. 시스템(100)은 서비스(106)와 통신할 수 있는 컴퓨팅 디바이스(102) 및 복수의(n) 컴퓨팅 디바이스(104(1), 104(1), … 104(n))를 포함한다. 컴퓨팅 디바이스(102, 104)는, 인터넷, 근거리 통신망(local area network; LAN), 전화망, 인트라넷, 다른 공개 및/또는 독점적(proprietary) 네트워크, 이들의 조합 등을 포함하는 여러 상이한 네트워크 중 임의의 것을 통해 서비스(106)와 통신할 수 있다. 컴퓨팅 디바이스(102, 104)는 추가적으로 또는 대안적으로 네트워크 이외의 통신 채널, 예컨대 다양한 유선 및/또는 무선 연결 중 임의의 것을 통해 서비스(106)와 통신할 수 있다. 시스템(100)은, 서비스(106)와 통신하는 동일한 또는 상이한 타입의 임의의 수의 컴퓨팅 디바이스를 포함할 수 있다는 것을 유의해야 한다.
각각의 컴퓨팅 디바이스(102, 104)는 여러 상이한 타입의 디바이스일 수 있고, 컴퓨팅 디바이스(102 및 104)는 동일한 또는 상이한 타입의 디바이스일 수 있다. 예를 들면, 각각의 컴퓨팅 디바이스(102, 104)는 데스크탑 컴퓨터, 서버 컴퓨터, 랩탑 또는 넷북 컴퓨터, 태블릿 또는 노트패드 컴퓨터, 이동국(mobile station), 엔터테인먼트 어플라이언스(entertainment appliance), 디스플레이 디바이스에 통신적으로 커플링되는 셋탑 박스, 텔레비전 또는 다른 디스플레이 디바이스, 셀룰러 또는 다른 무선 전화, 게임 콘솔, 자동차 컴퓨터, 웨어러블(wearable) 컴퓨터 등일 수 있다. 각각의 컴퓨팅 디바이스(102, 104)는 상당한 메모리 및 프로세스 리소스를 갖는 풀 리소스 디바이스(full resource device)(예를 들면, 퍼스널 컴퓨터, 게임 콘솔)로부터 제한된 메모리 및/또는 프로세싱 리소스를 갖는 낮은 리소스 디바이스(예를 들면, 전통적인 셋탑 박스, 핸드헬드 게임 콘솔)까지의 범위에 이를 수도 있다.
컴퓨팅 디바이스(102 및 104)의 논의와 유사하게, 서비스(106)는, 상당한 메모리 및 프로세스 리소스를 갖는 풀 리소스 디바이스로부터 제한된 메모리 및/또는 프로세싱 리소스를 갖는 낮은 리소스 디바이스까지의 범위에 이르는 여러 상이한 타입의 디바이스 중 하나 이상을 사용하여 구현될 수 있다. 서비스(106)는 컴퓨팅 디바이스(102, 104)로부터 원격(예를 들면, 인터넷을 통해 액세스됨)이거나 또는 컴퓨팅 디바이스(102, 104)에 로컬(예를 들면, LAN을 통해 액세스됨)일 수도 있다. 따라서, 서비스(106)는 컴퓨팅 디바이스(102, 104)에 로컬한(예를 들면, 구내의(on premise), 예컨대 동일한 빌딩 또는 사무실 내의) 하나 이상의 디바이스에 의해 호스팅되거나, 또는 컴퓨팅 디바이스(102, 104)로부터 원격의(예를 들면, 구내 외부의(off premise), 예컨대 다른 빌딩, 도시, 또는 국가의) 하나 이상의 디바이스에 의해 호스팅될 수 있다.
컴퓨팅 디바이스(102)의 유저는 서비스(106)와 연관되는 유저 계정을 갖는다. 유저는 컴퓨팅 디바이스(102)로부터 여러 상이한 방식 중 임의의 방식으로, 예컨대 유저명 및 패스워드, 디지털 인증 등을 통해, 그의 또는 그녀의 계정에 로그인할 수 있다. 그의 또는 그녀의 계정에 로그인되어 있는 동안, 컴퓨팅 디바이스(102)는 디바이스 연관 데이터를, 하기에 더 상세히 논의되는 바와 같이, 서비스(106)와 동기화한다.
컴퓨팅 디바이스(102)의 유저는 하나 이상의 주변장치 디바이스(108)에 연결될 수 있는데, 컴퓨팅 디바이스(102)를 하나 이상의 주변장치 디바이스(108)와 연관시키는 것으로 또한 칭해진다. 컴퓨팅 디바이스(102)를 주변장치 디바이스(108)와 연관시키는 것은, 주변장치 디바이스(108)를 컴퓨팅 디바이스(102) 상에 설치하는 것을 포함할 수 있다. 주변장치 디바이스를 설치하는 것은, 컴퓨팅 디바이스(102)와 주변장치 디바이스(108) 사이의 통신 연결(예를 들면, 주변장치 디바이스(108)의 컴퓨팅 디바이스(102)와의 페어링)을 확립하기 위해, 리소스(예를 들면, 드라이버)를 설치하는 것 및 컴퓨팅 디바이스(102) 및/또는 주변장치 디바이스(108)에 대한 적절한 특성을 설정하는 것을 포함한다. 따라서, 주변장치 디바이스를 설치하는 것은, 주변장치 디바이스(108)를 컴퓨팅 디바이스(102)에 의한 사용에 이용가능하게 만드는 것을 포함한다.
컴퓨팅 디바이스(102)를 주변장치 디바이스(108)와 연관시키는 것은 또한, 주변장치 디바이스(108)에 어떻게 액세스하는지(예를 들면, 컴퓨팅 디바이스(102)와 주변장치 디바이스(108) 사이에 어떻게 통신 연결을 확립하는지), 주변장치 디바이스가 어떤 디바이스 기능을 갖는지, 디바이스 기능을 어떻게 사용하는지 또는 디바이스 기능에 어떻게 액세스하는지, 이들의 조합 등을 나타내는 정보를 컴퓨팅 디바이스(102)에 추가하는 것을 포함할 수 있다. 따라서, 컴퓨팅 디바이스(102)를 주변장치 디바이스(108)와 연관시키는 것은, 컴퓨팅 디바이스(102) 상에 주변장치 디바이스(108)를 설치하지 않고도, 주변장치 디바이스(108)를 컴퓨팅 디바이스(102)에 의한 사용에 이용가능하게 만드는 것을 포함한다.
주변장치 디바이스(108)는, 컴퓨팅 디바이스에 의해 제공되지 않는 기능성의 제공, 컴퓨팅 디바이스에 의해 제공되는 기능성의 향상, 컴퓨팅 디바이스에 의해 제공되는 기능성의 대체 등을 하는, 컴퓨팅 디바이스에 연결될 수 있는 디바이스를 가리킨다. 예를 들면, 주변장치 디바이스는 출력 디바이스(예를 들면, 프린터, 스피커 등), 입력 디바이스(예를 들면, 스캐너, 마이크, 키보드 등), 데이터 스토리지 디바이스, 다른 컴퓨팅 디바이스(예를 들면, 스마트폰, 프린터 서버 등) 등 일 수 있다. 주변장치 디바이스는 (예를 들면, 유선 또는 무선 연결을 통해 컴퓨팅 디바이스와 통신하는) 로컬 디바이스, 또는 (예를 들면, 네트워크를 통해 컴퓨팅 디바이스와 통신하는) 원격 디바이스일 수 있다. 주변장치 디바이스는 또한, 다른 컴퓨팅 디바이스, 예컨대 스마트폰일 수 있다.
하나 이상의 실시형태에서, 주변장치 디바이스는 컴퓨팅 디바이스(102, 104)와는 별개의 하우징에서 구현되는 디바이스이다. 주변장치 디바이스는 컴퓨팅 디바이스(102, 104)와는 물리적으로 별개이며 컴퓨팅 디바이스(102, 104) 외부에 있지만, 여전히 컴퓨팅 디바이스(102, 104)와 통신할 수 있고 옵션적으로(optionally) 컴퓨팅 디바이스(102, 104)에 물리적으로 연결될 수 있다. 주변장치 디바이스는 하드웨어 디바이스이고, 소프트웨어 및/또는 펌웨어를 포함할 수 있다. 예를 들면, 주변장치 디바이스(예를 들면, 공유 프린터)는, 프린터 서버(소프트웨어로 구현됨) 및 물리적 프린터 둘 다를 포함하는 논리적 유닛일 수 있다.
디바이스 연관 데이터는 컴퓨팅 디바이스를 주변장치 디바이스와 연관시키는 프로세스의 일부로서 사용될 수 있는 다양한 데이터이다. 따라서, 디바이스 연관 데이터는 주변장치 디바이스에 대응하는 것으로 또한 칭해진다. 주변장치 디바이스에 대한 디바이스 연관 데이터는 주변장치 디바이스에 연결하기 위해 사용되는 데이터, 예컨대 네트워크 또는 미디어 액세스 제어(media access control; MAC) 어드레스, 프린터 서버 상의 공유된 프린터에 대한 네트워크 어드레스, 인증서 또는 개인 식별 번호(personal identification number; PIN)와 같은 보안 또는 인증 데이터 등이다. 디바이스 연관 데이터는 또한, 주변장치 디바이스 및/또는 디바이스 연관 데이터에 관한 추가 데이터, 예컨대 주변장치 디바이스의 이름 또는 식별자, 주변장치 디바이스의 타입, 주변장치 디바이스와 연관되는 드라이버의 식별자, 주변장치 디바이스가 컴퓨팅 디바이스(102) 상에 이미 설치되어 있는지의 여부 등을 포함할 수도 있다. 따라서, 주변장치 디바이스에 대한 디바이스 연관 데이터는 주변장치 디바이스에 연결하는 법을 설명한다. 디바이스 연관 데이터는, 주변장치 디바이스를 재설치하지 않고도 컴퓨팅 디바이스(102)가 주변장치 디바이스에 (예를 들면, 전력 차단되어 재기동된 이후) 후속하여 액세스할 수 있도록, 컴퓨팅 디바이스(102)에 유지된다.
주변장치 디바이스는 또한, 유저가 주변장치 디바이스를 어떻게 사용하는 것을 소망하는지 또는 선호하는지를 설명하는 연관 디바이스 사용 데이터(유저 선호도 데이터로 또한 칭해짐)를 구비할 수도 있다. 주변장치 디바이스에 대한 디바이스 사용 데이터는, 예를 들면, 유저가 선호하는 주변장치 디바이스에 대한 특정한 설정 또는 값(예를 들면, 스피커에 대한 특정 볼륨 레벨, 프린터에 대한 특정 프린트 설정(예를 들면, 듀플렉스 모드, 잉크 또는 토너를 절약하기 위한 이코노미 모드 등), 스캐너에 대한 특정 스캐너 해상도 등)을 명시할 수 있다. 디바이스 사용 데이터는 디바이스 연관 데이터의 일부로서 포함되며 따라서 하기에 더 상세히 논의되는 바와 같이 디바이스 연관 데이터의 일부로서 동기화될 수 있다. 대안적으로, 디바이스 사용 데이터는 디바이스 연관 데이터와는 별개일 수 있지만, 디바이스 연관 데이터와 유사하게(및 옵션적으로 디바이스 연관 데이터와 함께) 동기화될 수 있다.
디바이스 사용 데이터는, 자동적으로 설치되는 것, 수동으로 설치되는 것, 또는 설치 없이 컴퓨팅 디바이스에 연결되는 것으로 인해 컴퓨팅 디바이스와 연관되는 주변장치 디바이스에 대해 동기화될 수 있다. 따라서, 주변장치 디바이스가 컴퓨팅 디바이스와 새로 연관되면, 다른 컴퓨팅 디바이스로부터의 디바이스 사용 데이터가 컴퓨팅 디바이스 상에서 수신되어 사용될 수 있고, 유저는 주변장치 디바이스에 대한 그의 또는 그녀의 소망된 설정이 컴퓨팅 디바이스에 자동적으로 설정되게 한다. 마찬가지로, 컴퓨팅 디바이스 상에서 이루어지는 디바이스 사용 데이터에 대한 변경은, 디바이스 연관 데이터와 유사하게, 다른 컴퓨팅 디바이스와 동기화된다.
주변장치 디바이스(108)는, 서비스(106)와 무관하게(예를 들면, 서비스(106)로부터 디바이스 연관 데이터를 획득하지 않고), 예컨대 주변장치 디바이스(108)를 컴퓨팅 디바이스(102) 상에 수동으로 설치하는 것에 의해, 컴퓨팅 디바이스(102)와 수동으로 연관될 수 있다. 주변장치 디바이스(108)를 컴퓨팅 디바이스와 수동으로 연관시키기 위해, 주변장치 디바이스는, 디렉토리 서비스, 네트워크를 통한 멀티캐스트 발견, 범용 플러그 앤 플레이(Universal Plug and Play; UPnP) 네트워킹 프로토콜, 주변장치 디바이스에 대한 로컬 커플링(예를 들면, 범용 직렬 버스(Universal Serial Bus; USB) 또는 무선 USB 프로토콜), 웹 서비스 온 디바이스(web services on devices), 다른 공개 및/또는 독점적 프로토콜 등과 같은 다양한 메커니즘 중 임의의 것을 사용하여 발견되거나 식별된다. 디바이스 연관 데이터는, 주변장치 디바이스를 발견하거나 식별하기 위해 사용되는 서비스로부터 디바이스 연관 데이터를 획득하는 것, 주변장치 디바이스 자체로부터 디바이스 연관 데이터를 획득하는 것 등과 같이, 주변장치 디바이스를 발견하거나 식별하기 위해 사용되는 메커니즘에 기초하여 다양한 방식으로 획득될 수 있다.
그의 또는 그녀의 계정에 로그인되어 있는 동안, 컴퓨팅 디바이스(102)는 디바이스 연관 데이터를 서비스(106)와 동기화한다. 디바이스 연관 데이터를 동기화하는 컴퓨팅 디바이스(102)는, 컴퓨팅 디바이스(102)가 서비스(106)로부터 디바이스 연관 데이터를 획득하는 것, 및 디바이스 연관 데이터를 컴퓨팅 디바이스(102)로부터 서비스(106)로 제공하는 것을 가리킨다. 서비스(106)는 데이터 동기화 모듈(112) 및 디바이스 연관 데이터 저장소(114)를 포함할 수 있다. 데이터 동기화 모듈(112)은 컴퓨팅 디바이스(102, 104)와의 디바이스 연관 데이터의 동기화를 관리하여, 수신된 디바이스 연관 데이터를 디바이스 연관 데이터 저장소(114)에 저장한다. 따라서, 서비스(106)의 디바이스 연관 데이터 저장소(114)는, 주변장치 디바이스(108)가 컴퓨팅 디바이스(102, 104)의 다양한 것들과 연관되는 것의 결과로서 서비스(106)에 제공되며 컴퓨팅 디바이스(102, 104)에 걸쳐 동기화되는 디바이스 연관 데이터를 포함한다.
대안적으로, 서비스(106)는 디바이스 연관 데이터 저장소(114)를 단순히 포함할 수도 있고, 컴퓨팅 디바이스(102, 104)는, 동기화 모듈(112)을 사용하지 않고도, 하기에서 더 상세히 논의되는 바와 같이, 디바이스 연관 데이터 저장소(114)로부터 데이터를 취출하고 디바이스 연관 데이터에 대한 임의의 변경을 결정할 수 있다. 서비스(106)는 푸시 모델(예를 들면, 이 경우 서비스(106)는 데이터를 서비스(106)로부터 하나 이상의 컴퓨팅 디바이스(102)로 제공함) 및/또는 풀 모델(pull model)(예를 들면, 이 경우, 컴퓨팅 디바이스(102)는 서비스(106)에게 데이터를 요청하거나 서비스(106)로부터 데이터를 취출하기 위해 서비스(106)를 폴링하거나(poll) 또는 다르게는 서비스(106)에 액세스함)을 지원할 수 있다.
유저가 컴퓨팅 디바이스(102 또는 104)로부터 그의 또는 그녀의 계정에 로그인되면, 컴퓨팅 디바이스 상의 새롭게 연관된 주변장치 디바이스(108)에 대한 디바이스 연관 데이터는 서비스(106)로 전달되고 디바이스 연관 데이터 저장소(114)에 저장된다. 마찬가지로, 연관해제된(de-associated)(예를 들면, 삭제되거나 언인스톨된) 주변장치 디바이스(108)의 표시가 서비스(106)에 전달될 수 있고 표시된 디바이스 연관 데이터가 디바이스 연관 데이터 저장소(114)로부터 삭제될 수 있다. 주변장치 디바이스(108)를 연관해제하는 것은, 디바이스를 언인스톨하는 것(예를 들면, 삭제하거나 또는 다르게는 드라이버 또는 다른 리소스를 제거하는 것, 컴퓨팅 디바이스(102) 및/또는 주변장치 디바이스(108)에 대한 특성을 소거하거나 리셋하는 것 등), 또는 다르게는 주변장치 디바이스(108)와 통신하기 위해 컴퓨팅 디바이스(102)에 사용되는 값을 소거하거나 리셋하는 것을 가리킨다. 하나 이상의 실시형태에서, 상이한 데이터를 가질 수도 있는 컴퓨팅 디바이스 사이의 충돌을 관리하기 위해, 각각의 컴퓨팅 디바이스(102, 104) 및 서비스(106)는, 충돌을 해결하고 어떤 데이터가 사용될 데이터인지를(예를 들면, 데이터가 최종 수정되었던 때에 대한 가장 최근의 타임스탬프를) 결정하기 위해, (컴퓨팅 디바이스 또는 서비스의 견지에 의해 또는 컴퓨팅 디바이스 또는 서비스의 견지로부터) 데이터가 최종 수정되었던 때의 타임스탬프(예를 들면, 날짜 및/또는 시간)를 유지한다.
하나의 컴퓨팅 디바이스(102, 104)로부터 수신되는 디바이스 연관 데이터는 디바이스 연관 데이터 저장소(114)에 저장되고 다른 컴퓨팅 디바이스(102, 104)로 제공된다. 데이터는 상이한 시간에 및/또는 상이한 이벤트에 응답하여, 예컨대 유저가 컴퓨팅 다른 디바이스(102, 104)로부터 그의 또는 그녀의 유저 계정에 규칙적인 또는 불규칙적인 간격으로 로그인할 때, 다른 컴퓨팅 디바이스(102, 104)에 제공되거나 또는 다른 방식으로 다른 컴퓨팅 디바이스(102, 104)에 의해 획득될 수 있다(예를 들면, 서비스(106)에 의해 다른 컴퓨팅 디바이스(102, 104)로 푸시되고, 다른 컴퓨팅 디바이스(102, 104)에 의해 취출되는 등).
따라서, 새로운 주변장치 디바이스(108)가 컴퓨팅 디바이스(102)와 연관되면, 새로운 주변장치 디바이스(108)에 대한 디바이스 연관 데이터는 서비스(106)에 전달되고 디바이스 연관 데이터 저장소(114)에 저장된다. 유저가 컴퓨팅 디바이스(104)로부터 후속하여 그의 또는 그녀의 계정에 로그인하면, 새로운 주변장치 디바이스(108)에 대한 디바이스 연관 데이터는 서비스(106)로부터 컴퓨팅 디바이스(104)로 전달되고, 새로운 주변장치 디바이스(108)는 컴퓨팅 디바이스(104)와 자동적으로 연관된다(점선의 연결(120)에 의해 예시됨). 새로운 주변장치 디바이스가 컴퓨팅 디바이스(104)와 자동적으로 연관될 수 있으면 새로운 주변장치 디바이스는 컴퓨팅 디바이스(104)와 자동적으로 연관된다는 것을 유의해야 한다. 새로운 주변장치 디바이스가 컴퓨팅 디바이스(104)와 자동적으로 연관될 수 없는 상황이 발생할 수 있고, 그 경우, 주변장치 디바이스는 하기에서 더 상세히 논의되는 바와 같이 컴퓨팅 디바이스(104)와 자동적으로 연관되지 않는다. 마찬가지로, 추가적인 주변장치 디바이스가 컴퓨팅 디바이스(104)와 연관되어야 하면, 그 추가적인 주변장치 디바이스에 대한 디바이스 연관 데이터는 컴퓨팅 디바이스(102)에 제공되고 추가적인 주변장치 디바이스는 컴퓨팅 디바이스(102)와 자동적으로 연관된다(추가적인 주변장치 디바이스가 컴퓨팅 디바이스(102)와 자동적으로 연관될 수 있다는 것을 가정함).
도 2는, 하나 이상의 실시형태에 따른, 컴퓨팅 디바이스 사이에서의 디바이스 연관 데이터의 동기화를 구현하는 예시적인 컴퓨팅 디바이스(200)를 예시하는 블록도이다. 컴퓨팅 디바이스(200)는, 예를 들면, 도 1의 컴퓨팅 디바이스(102 또는 104)일 수 있다. 컴퓨팅 디바이스(200)는 유저 입력 모듈(202), 출력 모듈(204), 통신 모듈(206), 디바이스 연관 데이터 동기화 모듈(208), 및 디바이스 연관 데이터 저장소(210)를 포함한다.
유저 입력 모듈(202)은 컴퓨팅 디바이스(200)의 유저로부터 유저 입력을 수신한다. 유저 입력은 여러 상이한 방식으로, 예컨대 디바이스(200)의 키패드 또는 키보드의 하나 이상의 키를 누르는 것에 의해, 디바이스(200)의 컨트롤러(예를 들면, 원격 제어 디바이스, 마우스, 트랙패드 등)의 하나 이상의 키를 누르는 것에 의해, 디바이스(200)의 터치패드 또는 터치스크린의 특정 부분을 누르는 것에 의해, 디바이스(200)의 터치패드 또는 터치스크린 상에서 특정 제스쳐를 행하는 것에 의해, 및/또는 디바이스(200)의 컨트롤러(예를 들면, 원격 제어 디바이스, 마우스, 트랙 패드 등)에 대해 특정 제스쳐를 행하는 것에 의해, 제공될 수 있다. 유저 입력은 디바이스(200)로의 다른 물리적 피드백 입력, 예컨대 디바이스(200)의 임의의 부분을 탭하는 것(tapping), 디바이스(200)의 모션 검출 또는 다른 컴포넌트에 의해 인식될 수 있는 액션(예컨대 디바이스(200)를 흔드는 것, 디바이스(200)를 회전시키는 것, 디바이스(200)를 휘게 하거나 굽히는 것 등) 등을 통해 또한 제공될 수 있다. 유저 입력은 마이크에 대한 보이스 또는 다른 가청의 입력을 통해, 이미지 캡쳐 디바이스에 의해 관측되는 손 또는 다른 신체 부위의 모션을 통해, 등과 같이 다른 방식으로 또한 제공될 수 있다.
출력 모듈(204)은 디스플레이, 재생, 및/또는 다른 표현을 위한 컨텐츠를 생성하고, 관리하고, 및/또는 출력한다. 이 컨텐츠는 출력 모듈(204)에 의해 생성되거나 또는 컴퓨팅 디바이스(200)의 다른 모듈로부터 획득될 수 있다. 이 컨텐츠는, 예를 들면, 유저 인터페이스(user interface; UI)의 디스플레이 또는 재생 부분, 입력에 대한 프롬프트 등일 수 있다. 컨텐츠는 컴퓨팅 디바이스(200)의 컴포넌트(예를 들면, 스피커, 상호작용식 디스플레이 디바이스 등)에 의해 디스플레이되거나 또는 다르게는 재생될 수 있다. 대안적으로, 출력 모듈(204)은, 컴퓨팅 디바이스(200)와는 별개인 다른 디바이스 또는 컴포넌트(예를 들면, 스피커, 디스플레이 디바이스 등)로 출력되는 하나 이상의 신호를 생성할 수 있다.
통신 모듈(206)은 도 1의 서비스(106)와 같은 서비스뿐만 아니라, 도 1의 주변장치 디바이스(108)와 같은 주변장치 디바이스와의 통신을 관리한다. 통신의 관리는 컴퓨팅 디바이스(200)의 다른 모듈로부터 획득된 데이터를 목표 디바이스로 전송하는 것, 및 다른 디바이스로부터 수신된 데이터를 컴퓨팅 디바이스(200)의 적절한 모듈로 제공하는 것을 가리킨다.
디바이스 연관 데이터 저장소(210)는 컴퓨팅 디바이스(200)와 수동으로 연관되는 디바이스에 대한 디바이스 연관 데이터뿐만 아니라 서비스(106)로부터 수신되는 디바이스에 대한 디바이스 연관 데이터의 사본을 유지한다. 서비스(106)로부터 수신되는 디바이스에 대한 디바이스 연관 데이터는 컴퓨팅 디바이스(200)와 자동적으로 연관될 수 있거나, 또는 대안적으로, 하기에서 더 상세히 논의되는 바와 같이, 컴퓨팅 디바이스(200)와 연관되지 않고도 디바이스 연관 데이터 저장소(210)에 수신되어 유지될 수 있다.
디바이스 연관 데이터 동기화 모듈(208)은 서비스(106)로의 디바이스 연관 데이터의 전송을 관리한다. 유저가 서비스(106) 상의 그의 또는 그녀의 계정에 로그인되어 있는 동안 새로운 주변장치 디바이스가 컴퓨팅 디바이스(200)와 수동으로 연관되면, 그 주변장치 디바이스에 대한 디바이스 연관 데이터는 디바이스 연관 데이터 저장소(210)에 유지되고 디바이스 연관 데이터 동기화 모듈(208)은 디바이스 연관 데이터의 사본을 서비스(106)에 전송한다. 유저가 서비스(106) 상의 그의 또는 그녀의 계정에 로그인되어 있지 않는 동안 새로운 주변장치 디바이스가 컴퓨팅 디바이스(200)와 수동으로 연관되면, 디바이스 연관 데이터 동기화 모듈(208)은, 유저가 컴퓨팅 디바이스(200)로부터 그의 또는 그녀의 계정에 후속하여 로그인할 때, 그 새로운 주변장치 디바이스에 대한 디바이스 연관 데이터의 사본을 서비스(106)에 전송할 수 있다. 대안적으로, 유저가 서비스(106) 상의 그의 또는 그녀의 계정에 로그인되어 있지 않는 동안 새로운 디바이스가 컴퓨팅 디바이스(200)와 수동으로 연관되면, 디바이스 연관 데이터 동기화 모듈(208)은 새로운 주변장치 디바이스에 대한 디바이스 연관 데이터의 사본을 서비스(106)로 전송하지 않을 수도 있다.
디바이스 연관 데이터 동기화 모듈(208)은 서비스(106)로부터 디바이스 연관 데이터의 수신을 또한 관리한다. 유저가 컴퓨팅 디바이스(200)로부터 서비스(106) 상의 그의 또는 그녀의 계정에 로그인하면, 서비스(106)는, 서비스(106)가 사본을 가지지만 컴퓨팅 디바이스(200)가 사본을 가지지 않는 임의의 새로운 주변장치 디바이스에 대한(예를 들면, 다른 컴퓨팅 디바이스와 수동으로 연관되었던 주변장치 디바이스에 대한) 디바이스 연관 데이터의 사본을 전송한다. 서비스(106)는 또한, 서비스(106)로부터 수신되는 디바이스 연관 데이터에 관한 다른 정보, 예컨대 타임스탬프 정보, 유저 정보 등의 사본을 전송할 수 있다. 디바이스 연관 데이터 동기화 모듈(208)은 서비스(106)로부터 수신되는 디바이스 연관 데이터의 사본을 디바이스 연관 데이터 저장소(210)에 유지한다. 디바이스 연관 데이터 동기화 모듈(208)은 또한, 충돌을 해결하고 다른 기능을 수행하기 위해, 서비스(106)로부터 수신되는 디바이스 연관 데이터에 관한 정보, 예컨대 타임스탬프 정보, 유저 정보 등을 유지한다. 디바이스 연관 데이터 동기화 모듈(208)은 또한, 주변장치 디바이스가 하기에 더 상세히 논의되는 바와 같이 컴퓨팅 디바이스(200)와 자동적으로 연관될 수 있다고 가정하여, 컴퓨팅 디바이스(200)를 그 디바이스 연관 데이터에 대응하는 주변장치 디바이스와 자동적으로 연관시킨다.
마찬가지로, 디바이스 연관 데이터에 대한 다른 변경은, 새로운 주변장치 디바이스에 대한 디바이스 연관 데이터의 전송과 유사하게, 서비스(106)로 전송되고/되거나 서비스(106)로부터 수신될 수 있다. 예를 들면, 주변장치 디바이스에 대한 디바이스 연관 데이터가 변경되면(예를 들면, 프린트 서버명 변경, 보안 또는 인증 데이터 변경, 등), 변경의 표시가 서비스(106)로 전송될 수 있고, 유저가 다른 컴퓨팅 디바이스로부터 로그인하면 서비스(106)는 이들 다른 컴퓨팅 디바이스로 그 표시를 전송한다. 따라서, 디바이스 연관 데이터에서의 변경은 이들 다른 컴퓨팅 디바이스에 자동적으로 동기화된다. 다른 예로서, 주변장치 디바이스가 하나의 컴퓨팅 디바이스 상에서 삭제되면(예를 들면, 언인스톨되거나 연관해제되면), 삭제의 표시는 서비스(106)로 전송될 수 있고, 유저가 다른 컴퓨팅 디바이스로부터 그의 또는 그녀의 계정에 로그인하면 서비스(106)는 이들 다른 컴퓨팅 디바이스로 그 표시를 전송한다. 따라서, 주변장치 디바이스는 이들 다른 컴퓨팅 디바이스로부터 자동적으로 연관해제된다(예를 들면, 언인스톨된다). 대안적으로, 삭제된 주변장치 디바이스의 표시가 서비스(106)로 전송되지 않을 수도 있고, 대신 유저는 그 또는 그녀가 소망하는 컴퓨팅 디바이스 상에서 주변장치 디바이스를 수동으로 연관해제한다. 주변장치 디바이스가 컴퓨팅 디바이스로부터 연결해제되는 경우에도, 대응하는 디바이스 연관 데이터는 컴퓨팅 디바이스 상에 유지될 수 있다는(또는 대안적으로 삭제될 수 있다는) 것을 유의해야 한다.
어떤 디바이스 연관 데이터 변경(예를 들면, 새로운 디바이스 연관 데이터, 삭제 또는 다른 변경의 표시)이 이루어졌는지, 및 따라서 어떤 디바이스 연관 데이터 변경이 다른 컴퓨팅 디바이스에 동기화될 필요가 있는지의 결정은 다양한 방식으로 수행될 수 있다. 서비스(106) 및/또는 다른 컴퓨팅 디바이스(200)는 결정을 수행하는 것에 의존될 수 있다. 예를 들면, 컴퓨팅 디바이스(200)는 어떤 디바이스 연관 데이터 변경이 이루어졌는지를 결정하고, 이루어진 디바이스 연관 데이터 변경의 표시를 전송할 수 있다. 다른 예로서, 컴퓨팅 디바이스(200)는 디바이스 연관 데이터 저장소(210)의 실질적으로 모든 디바이스 연관 데이터의 레코드(예를 들면, 컴퓨팅 디바이스(200)에 대한 현재의 디바이스 연관 데이터의 스냅샷)를 서비스(106)로 전송할 수 있고, 서비스(106)는 어떤 디바이스 연관 데이터 변경이 이루어졌는지를 결정하기 위해 실질적으로 모든 디바이스 연관 데이터의 레코드를, 서비스(106)에 의해 연관되어 유지되는 디바이스 연관 데이터의 레코드에 비교할 수 있다.
또 다른 예로서, 컴퓨팅 디바이스(200)는 디바이스 연관 데이터 저장소(210)의 실질적으로 모든 디바이스 연관 데이터의 레코드(예를 들면, 컴퓨팅 디바이스(200)에 대한 현재의 디바이스 연관 데이터의 스냅샷)를 서비스(106)에 전송할 수 있고, 서비스(106)는 이 레코드의 사본을 유지할 수 있다. 그 다음, 레코드는 유저가 다른 컴퓨팅 디바이스로부터 그의 또는 그녀의 계정에 로그인할 때 서비스(106)에 의해 이들 다른 컴퓨팅 디바이스로 전송될 수 있고, 이들 다른 컴퓨팅 디바이스는, 어떤 디바이스 연관 데이터 변경이 이루어졌는지를 결정하기 위해, 실질적으로 모든 디바이스 연관 데이터를 디바이스 연관 데이터의 그들의 레코드에 비교할 수 있다. 레코드는 대안적으로, 다른 시간에 또는 다른 이벤트, 예컨대 서비스(106)가 레코드를 규칙적인 또는 불규칙적인 간격으로 다른 컴퓨팅 디바이스로 푸시하는 것, 다른 컴퓨팅 디바이스가 규칙적인 또는 불규칙적인 간격으로 레코드를 요청하는 것(예를 들면, 서비스(106)를 폴링하는 것) 등에 응답하여, 서비스(106)에 의해 다른 컴퓨팅 디바이스로 전송될 수 있다.
도 3은, 하나 이상의 실시형태에 따른, 컴퓨팅 디바이스 사이에서 디바이스 연관 데이터를 동기화하기 위한 예시적인 프로세스(300)를 예시하는 플로우차트이다. 프로세스(300)는 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합으로 구현될 수 있다. 프로세스(300)는 세 개의 칼럼으로 예시된다: 좌측 칼럼에 예시되는 프로세스(300)의 동작(act)은 하나의 컴퓨팅 디바이스(예를 들면, 도 1의 컴퓨팅 디바이스(102 또는 104), 또는 도 2의 컴퓨팅 디바이스(200))에 의해 수행되고, 우측 칼럼에 예시되는 프로세스(300)의 동작은 다른 컴퓨팅 디바이스(예를 들면, 도 1의 컴퓨팅 디바이스(102 또는 104), 또는 도 2의 컴퓨팅 디바이스(200))에 의해 수행되고, 중간 칼럼에 예시되는 프로세스(300)의 동작은 서비스(예를 들면, 도 1의 서비스(106))에 의해 수행된다. 프로세스(300)는 동작의 세트로서 도시되며 다양한 동작의 작동을 수행하기 위해 도시된 순서에 제한되지 않는다. 프로세스(300)는 컴퓨팅 디바이스 사이에서 디바이스 연관 데이터를 동기화하기 위한 예시적인 프로세스이며; 컴퓨팅 디바이스 사이에서 디바이스 연관 데이터를 동기화하는 추가적인 논의는 상이한 도면을 참조로 본원에 포함된다.
프로세스(300)에서, 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경이 서비스로 전송되는데(동작 302), 서비스는 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경을 수신하고(동작 304) 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경의 사본을 유지한다(동작 306). 서비스는 유저 계정과 연관되는 디바이스 연관 데이터의 사본을 유지하는데, 그 유저 계정은 디바이스 연관 데이터가 동작 302에서 서비스로 전송될 때 유저가 로그인되는 유저 계정이다. 디바이스 연관 데이터 변경에 대해, 서비스는 이전의 디바이스 연관 데이터를 새롭게 수신된 디바이스 연관 데이터로 변경할 수 있다(디바이스 연관 데이터가 변경됨).
디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경은 서비스에 의해 컴퓨팅 디바이스로 전송된다(동작 308). 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경은, 동작 302에서 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경을 전송한 컴퓨팅 디바이스와는 상이한 컴퓨팅 디바이스로 전송되고 그 상이한 컴퓨팅 디바이스에 의해 수신될 수 있다(동작 310). 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경은, 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경에 대한 컴퓨팅 디바이스로부터의 요청에 응답하여 동작 308에서 전송될 수 있거나, 대안적으로 서비스는, 서비스에 의해 수신되고 있는 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경에 대한 임의의 요청과 무관하게, 동작 308에서 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경을 컴퓨팅 디바이스로 푸시하거나 또는 다르게는 제공할 수도 있다. 컴퓨팅 디바이스는 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경의 사본을 유지한다(동작 312). 컴퓨팅 디바이스는 또한, 컴퓨팅 디바이스와 자동적으로 연관될 수 있는, 디바이스 연관 데이터에 의해 식별되는 주변장치 디바이스를 컴퓨팅 디바이스와 자동적으로 연관시키고/시키거나 디바이스 연관 데이터 변경에 따라 디바이스 연관 데이터를 업데이트한다(동작 314).
추가적으로 또는 대안적으로, 이전에 동작 302에서 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경을 전송한 것과 동일한 컴퓨팅 디바이스에 의해, 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경을 수신하기 위한 요청이 서비스로 전송될 수 있다(동작 316). 동작 316에서 전송되는 요청에 응답하여, 서비스는 유저 계정과 연관되는 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경을 컴퓨팅 디바이스로 전송한다(동작 308). 컴퓨팅 디바이스는 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경을 수신하고(동작 318), 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경의 사본을 유지한다(동작 320). 컴퓨팅 디바이스는 또한, 컴퓨팅 디바이스와 자동적으로 연관될 수 있는, 디바이스 연관 데이터에 의해 식별되는 주변장치 디바이스를 컴퓨팅 디바이스와 자동적으로 연관시키고/시키거나 디바이스 연관 데이터 변경에 따라 디바이스 연관 데이터를 업데이트한다(동작 322). 대안적으로, 동작 316에서 요청이 전송되는 대신, 서비스는, 서비스에 의해 수신되고 있는 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경에 대한 임의의 요청에 무관하게, 동작 318에서, 유저 계정과 연관되는 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경을 컴퓨팅 디바이스에 푸시하거나 또는 다르게는 제공할 수도 있다.
따라서, 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경은 다른 컴퓨팅 디바이스에 동기화될 수 있고, 주변장치 디바이스는 이들 다른 컴퓨팅 디바이스에 자동적으로 연관될 수 있다. 추가적으로 또는 대안적으로, 디바이스 연관 데이터는 서비스로부터 디바이스 연관 데이터를 서비스로 전송했던 컴퓨팅 디바이스로 리턴될 수 있다. 따라서, 컴퓨팅 디바이스는 자신의 디바이스 연관 데이터 정보를 서비스에 백업하고, 후속하여 디바이스 연관 데이터를 수신하고, (예를 들면, 컴퓨팅 디바이스가 새로운 하드드라이브를 가지게 되는 경우, 오퍼레이팅 시스템이 컴퓨팅 디바이스 상에 재설치되고 있는 경우, 등의 경우에) 주변장치 디바이스를 컴퓨팅 디바이스와 자동적으로 재연관시킬 수 있다.
디바이스 연관 데이터는 서비스 상의 유저 계정과 연관된다는 것, 및 디바이스 연관 데이터의 전송 및 수신은 유저가 그의 또는 그녀의 유저 계정에 로그인되어 있는 동안 수행된다는 것을 유의해야 한다. 따라서, 프로세스(300)에서 상이한 컴퓨팅 디바이스에 대한 전송 및 수신은 상이한 시간에 수행될 수 있다. 예를 들면, 디바이스 연관 데이터는 유저가 하나의 컴퓨팅 디바이스로부터 그의 또는 그녀의 계정에 로그인되면 동작 302에서 서비스로 전송되고, 그 다음 유저가 다른 컴퓨팅 디바이스로부터 그의 또는 그녀의 유저 계정으로 나중에 로그인되면, 후속하여 동작 308에서 서비스로부터 그 다른 컴퓨팅 디바이스로 전송될 수 있다. 상이한 컴퓨팅 디바이스로부터 동시적 프로세스(300)가 수행될 수 있다는 것을 유의해야 한다. 예를 들면, 하나의 컴퓨팅 디바이스는 디바이스 연관 데이터를 서비스에 전송하고 있을 수도 있고 동시에 다른 컴퓨팅 디바이스는 서비스로부터 디바이스 연관 데이터를 수신할 수도 있는 경우, 하나의 컴퓨팅 디바이스가 디바이스 연관 데이터를 서비스에 전송할 수도 있고 동시에 다른 컴퓨팅 디바이스가 디바이스 연관 데이터를 서비스에 전송할 수도 있는 경우, 등의 경우가 있을 수도 있다.
예시적인 프로세스(300)에서, 디바이스 연관 데이터는 컴퓨팅 디바이스로부터 서비스에 의해 수신되고 있는 것으로 도시된다. 대안적으로, 디바이스 연관 데이터는 다른 소스로부터 수신될 수 있다. 예를 들면, 하나 이상의 실시형태에서, 주변장치 디바이스는 그 자체가 주변장치 디바이스에 대한 디바이스 연관 데이터를 서비스에 제공할 수 있다. 예를 들면, 주변장치 디바이스는 자기 자신의 디바이스 연관 데이터를 서비스로 전송할 수 있는 스마트폰일 수도 있다. 따라서, 주변장치 디바이스는, 유저가 그의 또는 그녀의 계정에 로그인하게 되는 컴퓨팅 디바이스에 디바이스 연관 데이터를 동기화하는 서비스로 자신의 디바이스 연관 데이터를 제공할 수 있고, 주변장치 디바이스는 유저가 주변장치 디바이스를 컴퓨팅 디바이스와 수동으로 연관시키지 않아도 이들 컴퓨팅 디바이스와 자동적으로 연관된다. 마찬가지로, 주변장치 디바이스(예컨대 스마트폰 주변장치 디바이스)는 또한, 특정 유저가 주변장치 디바이스를 어떻게 사용하기를 소망하는지 또는 선호하는지에 관한 유저 선호도 데이터를 포함할 수도 있는 디바이스 연관 데이터를 서비스로부터 수신할 수도 있고, 주변장치 디바이스는 (예를 들면, 유저 선호도 데이터에 따라 적절한 구성 값 또는 다른 디바이스 설정을 설정하는 것에 의해) 그 선호도 데이터를 사용할 수 있다.
도 4는 하나 이상의 실시형태에 따른, 주변장치 디바이스를 컴퓨팅 디바이스와 자동적으로 연관시키기 위한 예시적인 프로세스(400)를 예시하는 플로우차트이다. 프로세스(400)는 컴퓨팅 디바이스, 예컨대 도 1의 컴퓨팅 디바이스(102 또는 104), 또는 도 2의 컴퓨팅 디바이스(200)에 의해 수행되고, 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합으로 구현될 수 있다. 프로세스(400)는 동작의 세트로서 도시되며 다양한 동작의 작동을 수행하기 위해 도시된 순서에 제한되지 않는다. 프로세스(400)는 주변장치 디바이스를 컴퓨팅 디바이스와 자동적으로 연관시키기 위한 예시적인 프로세스이며; 주변장치 디바이스를 컴퓨팅 디바이스와 자동적으로 연관시키는 추가적인 논의는 다른 도면을 참조로 본원에 포함된다.
프로세스(400)에서, 유저 계정은 프로세스(400)를 구현하는 컴퓨팅 디바이스로부터 로그인된다(동작 402). 유저 계정과 연관되는 하나 이상의 주변장치 디바이스 각각에 대한 디바이스 연관 데이터가 수신된다(동작 404). 수신되는 디바이스 연관 데이터는, 수신되는 디바이스 연관 데이터, 다른 컴퓨팅 디바이스에 의해 설치되는 새로운 주변장치 디바이스에 대한 디바이스 연관 데이터 등과 같은 상이한 형태를 취할 수 있다. 디바이스 연관 데이터는, 유저 계정이 로그온된 직후, 유저 계정이 로그온되고 약간의 시간 이후(예를 들면, 시간의 임계량이 경과한 이후, 서비스로부터 다른 데이터 또는 더 높은 우선순위 데이터의 임계량이 수신된 이후 등), 다른 이벤트(예를 들면, 서비스에 저장되는 디바이스 연관 데이터에 대한 변경)에 기초하여, 등과 같이 상이한 시간에 수신될 수 있다.
수신된 디바이스 연관 데이터의 사본은 컴퓨팅 디바이스 상에서 유지된다(동작 406). 추가적으로, 수신된 디바이스 연관 데이터에 대응하는 하나 이상의 주변장치 디바이스 중, 컴퓨팅 디바이스와 아직 연관되어 있지는 않지만 컴퓨팅 디바이스와 연관될 수 있는 것이 어느 것인지가 결정된다(동작 408). 컴퓨팅 디바이스와 연관될 수 있지만 현재 컴퓨팅 디바이스와 연관되어 있지 않는 것으로 동작 408에서 결정되는 하나 이상의 주변장치 디바이스는 컴퓨팅 디바이스와 자동적으로 연관된다(동작 410). 주변장치 디바이스를 컴퓨팅 디바이스와 자동적으로 연관시키는 것에 의해, 유저가 주변장치 디바이스를 컴퓨팅 디바이스와 수동으로 연관시킬 필요는 없지만(예를 들면, 주변장치 디바이스를 수동으로 설치할 필요는 없지만), 주변장치 디바이스는, 마치 그들이 컴퓨팅 디바이스와 수동으로 연관된 것처럼(예를 들면, 컴퓨팅 디바이스 상에 수동으로 설치된 것처럼) 컴퓨팅 디바이스에 의해 후속하여 액세스될 수 있다.
어떤 주변장치 디바이스가 컴퓨팅 디바이스와 미리 연관되는지의 결정은 여러 상이한 방식으로, 예컨대 디바이스 연관 데이터에 포함되는 주변장치 디바이스의 식별자를 컴퓨팅 디바이스와 미리 연관되는 주변장치 디바이스의 식별자와 비교하는 것, 서버로부터 수신되는 모든 디바이스 연관 데이터가 컴퓨팅 디바이스와 아직 연관되지 않은 주변장치 디바이스에 대한 것이라고(따라서 수신된 디바이스 연관 데이터에 대응하는 주변장치 디바이스 중 어느 것도 컴퓨팅 디바이스와 아직 연관되지 않는다고) 가정하는 것, 등에 의해 결정될 수 있다.
어떤 주변장치 디바이스가 컴퓨팅 디바이스와 자동적으로 연관될 수 있는지의 결정도 또한 상이한 방식으로 결정될 수 있다. 하나 이상의 실시형태에서, 컴퓨팅 디바이스와 자동적으로 연관될 수 없는 주변장치 디바이스를 식별하기 위해 다양한 규칙(또는 다른 기준)이 적용된다. 이러한 규칙은, 컴퓨팅 디바이스가 서비스로부터 수신하는 디바이스 연관 데이터의 일부로서 저장되는 다양한 위치에, 예컨대 컴퓨팅 디바이스 상에 상주할 수 있다. 따라서, 주변장치 디바이스는, 주변장치 디바이스가 컴퓨팅 디바이스와 자동적으로 연관되지 않아야 한다는 것을 하나 이상의 규칙이 나타내지 않는 한, 디바이스와 자동적으로 연관될 수 있다.
주변장치 디바이스가 컴퓨팅 디바이스와 자동적으로 연관되지 않는 경우, 주변장치 디바이스에 대한 디바이스 연관 데이터는, 주변장치 디바이스를 컴퓨팅 디바이스와 수동으로 연관시킬 때, 주변장치 디바이스의 발견 및/또는 주변장치 디바이스의 연관을 용이하게 하기 위해 여전히 사용될 수 있다는 것을 유의해야 한다. 예를 들면, 디바이스 연관 데이터에서 지속되는 보안 코드 또는 다른 정보를 주변장치 디바이스가 구비할 수도 있고, 유저는 그 또는 그녀가 주변장치 디바이스를 수동으로 설치하는 것에 의해 주변장치 디바이스를 연결하기를 선택하는 경우 그 정보를 입력하거나 또는 다르게는 제공할 필요가 없다. 다른 예로서, 주변장치 디바이스가 존재하지만 컴퓨팅 디바이스와 연관되지 않고 있다는 것을 나타내기 위해, 주변장치 디바이스의 존재는 주변장치 디바이스 선택 또는 다른 구성 스크린 상에서, 예컨대 상이한 형태로(예를 들면, 상이한 칼라로, 음영처리되어 또는 더 밝게) 디스플레이될 수도 있다.
컴퓨팅 디바이스와 자동적으로 연관될 수 없는 주변장치 디바이스를 식별하기 위한 규칙은 주변장치 디바이스 드라이버 이용가능성 규칙(peripheral device driver availability rule)을 포함할 수 있다. 주변장치 디바이스 드라이버는, 주변장치 디바이스와 통신하기 위해 컴퓨팅 디바이스에 의해 사용되는 소프트웨어(및/또는 펌웨어) 및 데이터를 가리킨다. 하나 이상의 실시형태에서, 주변장치 디바이스에 대응하는 디바이스 연관 데이터를 수신하는 컴퓨팅 디바이스는 주변장치 디바이스를 설치할 수 없을 수도 있거나, 또는 그 주변장치 디바이스에 대한 드라이버를 설치할 수 없을 수도 있다. 이러한 실시형태에서, 주변장치 디바이스는 컴퓨팅 디바이스와 연관될 수 없다는 결정이 이루어진다.
추가적으로, 몇몇 주변장치 디바이스 드라이버는, 네트워크를 통해, 자기 또는 광학 디스크로부터, 플래시 드라이브 또는 다른 솔리드 스테이트 드라이브로부터, 컴퓨팅 디바이스 자체 상의 다른 위치로부터, 등과 같이 소스(예를 들면, 다른 디바이스 또는 서비스)로부터 다운로드된다. 이들 주변장치 디바이스 드라이버는 검증된 것으로 디지털적으로 서명될 수도 있거나, 검증된 소스로부터 획득될 수도 있거나, 또는 다르게 검증가능할 수도 있다. 하나 이상의 실시형태에서, 주변장치 디바이스 드라이버가 검증되지 않으면(예를 들면, 컴퓨팅 디바이스에 의해 신뢰되는 기관에 의해 디지털적으로 서명되지 않는 경우, 검증된 소스로부터 유래하지 않는 경우, 등), 주변장치 디바이스 드라이버는 컴퓨팅 디바이스 상에 설치될 수 없다는 것이 결정된다. 그러나, 유저는, 옵션적으로, 획득된 주변장치 디바이스 드라이버를 사용하여 주변장치 디바이스의 설치를 인가하도록 촉구될(prompted) 수 있다. 주변장치 디바이스의 설치를 인가하기 위해, "예" 또는 "설치" 옵션의 선택과 같은 다양한 유저 입력이 수신될 수 있다. 주변장치 디바이스의 설치가 인가된 것을 유저 입력이 나타내면, 주변장치 디바이스는 컴퓨팅 디바이스와 자동적으로 연관되는 것처럼 컴퓨팅 디바이스와 연관된다(유저는 그 또는 그녀가 주변장치 디바이스를 컴퓨팅 디바이스와 수동으로 연관시키는 것처럼 주변장치 디바이스를 컴퓨팅 디바이스와 연관시키기 위해 추가적인 액션을 취할 필요가 없다).
추가적으로, 몇몇 주변장치 디바이스 드라이버는, 버전 번호에 의해 식별될 수도 있는 상이한 모델(예를 들면, 드라이버에 의해 사용되는 포맷 또는 프로토콜)을 사용하여 설계된다. 주변장치 디바이스는 이들 모델 중 상이한 모델을 사용하는 드라이버를 구비할 수도 있다. 하나 이상의 실시형태에서, 주변장치 디바이스 드라이버가 특정 모델이 아닌 경우, 적어도 드라이버 모델의 특정 버전이 아닌 경우, 등의 경우에, 주변장치 디바이스 드라이버는 컴퓨팅 디바이스 상에 설치될 수 없다는 결정이 이루어진다. 그러나, 유저는 옵션적으로, 획득된 드라이버가 특정 모델, 적어도 드라이버 모델의 특정 버전, 등이 아님에도 불구하고, 획득된 주변장치 디바이스 드라이버를 사용하여 주변장치 디바이스의 설치를 인가하도록 촉구될 수 있다. 주변장치 디바이스의 설치를 인가하기 위해, "예" 또는 "설치" 옵션의 선택과 같은 다양한 유저 입력이 수신될 수 있다. 주변장치 디바이스의 설치가 인가된 것을 유저 입력이 나타내면, 주변장치 디바이스는 컴퓨팅 디바이스와 자동적으로 연관되는 것처럼 컴퓨팅 디바이스와 연관된다(유저는 그 또는 그녀가 주변장치 디바이스를 컴퓨팅 디바이스와 수동으로 연관시키는 것처럼 주변장치 디바이스를 컴퓨팅 디바이스와 연관시키기 위해 추가적인 액션을 취할 필요가 없다).
컴퓨팅 디바이스와 자동적으로 연관될 수 없는 주변장치 디바이스를 식별하기 위한 규칙은 명시된 디바이스 규칙(specified device rule)을 포함할 수 있다. 몇몇 주변장치 디바이스는 개개의 컴퓨팅 디바이스에 특정한 방식으로 컴퓨팅 디바이스와 연관될 수 있고, 디바이스 연관 데이터는 그 특정 방식을 포함한다. 예를 들면, 주변장치 디바이스(예를 들면, 블루투스 디바이스)는 컴퓨팅 디바이스 상에 설치되며, 주변장치 디바이스가 설치되는 컴퓨팅 디바이스의 MAC 어드레스를 포함하는 디바이스 연관 데이터를 구비할 수도 있다. 하나 이상의 실시형태에서, 디바이스 연관 데이터가 특정 컴퓨팅 디바이스를 명시하는 데이터를 포함하는지의 여부에 관한 검사가 이루어진다. 디바이스 연관 데이터를 수신하는 컴퓨팅 디바이스가 디바이스 연관 데이터에 의해 명시되는 컴퓨팅 디바이스이면, 주변장치 디바이스는 컴퓨팅 디바이스와 자동적으로 연관될 수 있다. 그러나, 디바이스 연관 데이터를 수신하는 컴퓨팅 디바이스가 디바이스 연관 데이터에 의해 명시되는 컴퓨팅 디바이스가 아니면, 주변장치 디바이스는 컴퓨팅 디바이스와 자동적으로 연관될 수 없다. 따라서, 이러한 주변장치 디바이스는 디바이스 연관 데이터가 최초 전송되었던 (예를 들면, 디바이스 연관 데이터를 백업하는) 컴퓨팅 디바이스와 자동적으로 재연관될 수 있을 것이지만, 다른 컴퓨팅 디바이스와는 자동적으로 연관될 수 없다.
컴퓨팅 디바이스와 자동적으로 연관될 수 없는 주변장치 디바이스를 식별하기 위한 규칙은 도메인 또는 네트워크 규칙을 포함할 수 있다. 상이한 주변장치 디바이스는, 특정 컴퓨팅 디바이스(예를 들면, 네트워크에 액세스할 수 있는 컴퓨팅 디바이스, 동일한 도메인의 일부인 컴퓨팅 디바이스 등)에만 액세스할 수 있는 특정 네트워크 또는 도메인 상에 위치될 수 있다. 하나 이상의 실시형태에서, 주변장치 디바이스가, 디바이스 연관 데이터를 수신한 컴퓨팅 디바이스가 현재 액세스할 수 없는 도메인의 일부이거나 또는 네트워크 상에 위치되어 있다는 것을 디바이스 연관 데이터가 나타내는지의 여부에 관해 검사가 이루어진다. 주변장치 디바이스가, 컴퓨팅 디바이스가 현재 액세스할 수 없는 도메인의 일부이거나 또는 네트워크 상에 위치되어 있는지의 여부는 다양한 방식으로, 예컨대 (디바이스 연관 데이터에서 식별되는 바와 같은) 주변장치 디바이스가 위치되어 있는 도메인 또는 네트워크를, 컴퓨팅 디바이스가 현재 위치되어 있는 레코드(예를 들면, 컴퓨팅 디바이스의 오퍼레이팅 시스템에 의해 유지됨)에 비교하여 이들이 동일한지를 비교하는 것, 주변장치 디바이스에 대한 액세스를 시도하여 시도가 성공하는지의 여부를 검사하는 것, 등에 의해 결정될 수 있다. 주변장치 디바이스가, 컴퓨팅 디바이스가 현재 액세스할 수 없는 도메인의 일부이거나 네트워크 상에 위치되면, 주변장치 디바이스는 컴퓨팅 디바이스와 자동적으로 연관될 수 없다는 결정이 이루어진다.
주변장치 디바이스가 컴퓨팅 디바이스와 자동적으로 연관될 수 없다는 결정이 이루어지더라도, 이 결정은, 주변장치 디바이스가 현재 액세스할 수 없는 것에 기인하여 이루어진다. 따라서, 주변장치 디바이스는 컴퓨팅 디바이스와 연관될 수 있지만 컴퓨팅 디바이스와 자동적으로 연관될 수는 없는 것으로 칭해질 수 있다. 주변장치 디바이스가 위치되는 도메인 또는 네트워크에 컴퓨팅 디바이스가 후속하여 액세스할 수도 있고 따라서 컴퓨팅 디바이스와 연관될 것이라는 것을 컴퓨팅 디바이스에게 나타내기 위해, 주변장치 디바이스 또는 디바이스 연관 데이터는 마킹되거나 또는 레코드가 이러한 주변장치 디바이스 또는 디바이스 연관 데이터로 만들어진다. 예를 들면, 프로세스(400)가 수행될 때, 주변장치 디바이스는 유저가 집에서 실행하고 있는 랩탑 컴퓨터일 수도 있고 따라서 그의 또는 그녀의 직장 도메인 또는 네트워크에 액세스할 수 없지만, 나중에 직장으로 가져가서 주변장치 디바이스가 위치되어 있는 도메인 또는 네트워크에 참여할 수도 있다. 이러한 상황에서, 주변장치 디바이스는 나중의 시간에(예를 들면, 유저가 그의 또는 그녀의 디바이스를 직장에 가져가서, 주변장치 디바이스가 위치되어 있는 도메인 또는 네트워크에 컴퓨팅 디바이스가 참여한 것을 검출하면) 그 디바이스와 자동적으로 연관될 수도 있거나, 또는 나중의 시간에 유저는 주변장치 디바이스를 컴퓨팅 디바이스와 자동적으로 연관시키는 능력을 재검사하는 것이 소망되는지의 여부를 나타내도록 촉구될 수도 있다. 도 2의 디바이스 연관 데이터 동기화 모듈(208)은 규칙적인 또는 불규칙적인 간격으로, 또는 특정 이벤트(예컨대 컴퓨팅 디바이스가 특정 도메인에 참여하는 것)에 응답하여, 주변장치 디바이스가, 컴퓨팅 디바이스가 현재 액세스할 수 있는 도메인의 일부인지 또는 네트워크 상에 위치되는지의 여부를 검사할 수도 있다.
컴퓨팅 디바이스와 자동적으로 연관될 수 없는 주변장치 디바이스를 식별하기 위한 규칙은 연관 이유 규칙(association reason rule)을 포함할 수 있다. 몇몇 상황에서, 주변장치 디바이스는 특정 이유, 예컨대 관리자 액션 또는 그룹 정책 설정으로 인해 컴퓨팅 디바이스와 연관될 수 있다. 하나 이상의 실시형태에서, 관리자로부터의 커맨드에 응답하여 또는 그룹 정책 설정으로 인해 주변장치 디바이스가 컴퓨팅 디바이스와 연관되면, 그 커맨드 때문에 주변장치 디바이스가 컴퓨팅 디바이스와 연관된 것에 대응하여 디바이스 연관 데이터에 레코드가 만들어진다. 관리자로부터의 이러한 커맨드 때문에 또는 그룹 정책 설정으로 인해 주변장치 디바이스가 컴퓨팅 디바이스와 연관된 것을 디바이스 연관 데이터가 나타내는지의 여부에 관한 검사가 디바이스 연관 데이터를 수신하는 컴퓨팅 디바이스에 의해 이루어진다. 관리자로부터의 이러한 커맨드 때문에 또는 그룹 정책 설정으로 인해 주변장치 디바이스가 컴퓨팅 디바이스와 연관되면, 주변장치 디바이스가 디바이스 연관 데이터를 수신하는 컴퓨팅 디바이스와 자동적으로 연관될 수 없다는 결정이 이루어진다.
컴퓨팅 디바이스와 자동적으로 연관될 수 없는 주변장치 디바이스를 식별하기 위한 규칙은 인증 규칙(authentication rule)을 포함할 수 있다. 몇몇 상황에서, 소정의 인증 정보, PIN 등은 디바이스 연관 데이터에 포함되지 않는다. 대신, 유저 입력이, 이러한 디바이스 연관 데이터에 대응하는 주변장치 디바이스가 연관되고 있는 각각의 컴퓨팅 디바이스에서 수신된다. 하나 이상의 실시형태에서, 주변장치 디바이스를 연관시키기 위해 사용되는 소정의 데이터(예컨대 크리덴셜(크리덴셜), PIN 등)가 대응하는 디바이스 연관 데이터에서 누락되어 있는지의 여부에 관한 검사가 디바이스 연관 데이터를 수신하는 컴퓨팅 디바이스에 의해 이루어진다. 주변장치 디바이스를 컴퓨팅 디바이스와 연관시키기 위해 사용되는 소정의 데이터가 대응하는 디바이스 연관 데이터에 포함되지 않으면, 주변장치 디바이스는 컴퓨팅 디바이스와 자동적으로 연관될 수 없다는 결정이 이루어진다.
그러나, 유저는 옵션적으로, 디바이스 연관 데이터에서 누락되어 있는 소정의 데이터를 제공하도록 촉구될 수 있다. 키보드 상에서 PIN 또는 인증 코드를 입력하는 것, 유저와 연관되는 디지털 인증서를 제공하는 것 등과 같이 소정의 데이터를 제공하기 위해, 다양한 유저 입력이 수신될 수 있다. 유저 입력이 누락 데이터를 제공하는 것에 응답하여, 주변장치 디바이스는 마치 컴퓨팅 디바이스와 자동적으로 연관되는 것처럼 컴퓨팅 디바이스와 연관된다(유저는 그 또는 그녀가 주변장치 디바이스를 수동으로 설치하는 것처럼 주변장치 디바이스를 컴퓨팅 디바이스와 연관시키기 위해 추가적인 액션을 취할 필요가 없다).
컴퓨팅 디바이스와 자동적으로 연관될 수 없는 주변 디바이스를 식별하기 위한 규칙의 논의에서, 유저에게 입력(예를 들면, 드라이버를 설치하기 위한 인증, PIN, 또는 크리덴셜 등)을 촉구하는 것이 언급되었다. 이 촉구는, 주변장치 디바이스 관리 또는 구성 스크린 상에서의 주변장치 디바이스의 유저 선택에 응답하여, 주변장치 디바이스가 디바이스와 자동적으로 연관될 수 없다는 결정이 이루어질 때, 등과 같이 상이한 시간들에 수행될 수 있다.
추가적으로, 주변장치 디바이스가 컴퓨팅 디바이스와 자동적으로 연관되지 않으면, 주변장치 디바이스가 컴퓨팅 디바이스와 왜 연관되지 않았는지에 관한 피드백(예를 들면, 주변장치 디바이스 드라이버가 컴퓨팅 디바이스에 설치될 수 없음, 컴퓨팅 디바이스가 적절한 MAC 어드레스를 가지지 않음, 등)을 유저에게 제공하기 위한 표시가 디스플레이되거나 또는 다르게는 제시될 수 있다는 것을 유의해야 한다. 이 촉구는 주변장치 디바이스 관리 또는 구성 스크린 상에서의 주변장치 디바이스의 유저 선택에 응답하여, 주변장치 디바이스가 디바이스와 자동적으로 연관될 수 없다는 결정이 이루어지는 시간에, 등과 같이 상이한 시간들에 수행될 수 있다.
프로세스(400)의 예시된 예에서, 디바이스 연관 데이터에 대응하는 주변장치 디바이스가 동작 410에서 컴퓨팅 디바이스와 자동적으로 연관되는지에 무관하게, 수신된 디바이스 연관 데이터의 사본은 컴퓨팅 디바이스 상에 유지된다는 것을 또한 유의해야 한다. 대안적으로, 주변장치 디바이스에 대응하는 디바이스 연관 데이터의 사본은, 디바이스 연관 데이터에 대응하는 주변장치 디바이스가 컴퓨팅 디바이스와 연관되는 것, 디바이스 연관 데이터가 컴퓨팅 디바이스와 연관될 수 있지만 컴퓨팅 디바이스와 자동적으로 연관될 수 없는 것으로 마킹되는 것, 등과 같은 소정의 상황 하에서 컴퓨팅 디바이스 상에서만 유지될 수도 있다.
도 5는, 하나 이상의 실시형태에 따른, 본원에서 논의되는 기술을 구현하기 위한 예시적인 모델(500)을 예시하는 블록도이다. 모델(500)은, 예를 들면, 도 2의 디바이스 연관 데이터 동기화 모듈(208)을 구현하기 위해 사용될 수 있다. 모델(500)은 제너릭 동기화 프레임 워크(generic synchronization framework; 502), 디바이스 동기화 핸들러(504), 디바이스 연관 프레임워크(508), 및 디바이스 연관 데이터 저장소(510)를 포함한다.
디바이스 연관 프레임워크(508)는 특정 주변장치 디바이스 프로토콜(예를 들면, 프린터, 블루투스 디바이스, 웹 서비스 공급자 등)에 대한 디바이스 연관 데이터를 관리하는데, 디바이스 연관 데이터는 디바이스 연관 데이터 저장소(510)(이것은 도 2의 디바이스 연관 데이터 저장소(210)일 수 있다)에 유지된다. 디바이스 연관 프레임워크(508)는, 디바이스 연관 프레임워크(508)가 디바이스 동기화 핸들러(504)로부터 디바이스 연관 데이터를 수신하는 것을 허용하는 인터페이스인 임포트 방법(import method)(512), 및 디바이스 연관 프레임워크(508)가 디바이스 연관 데이터를 디바이스 동기화 핸들러(504)로 전송하는 것을 허용하는 인터페이스인 엑스포트 방법(export method)(514)을 제공한다. 디바이스 연관 프레임워크(508)는 상이한 주변장치 디바이스 프로토콜에 대한 디바이스 연관 데이터를 관리하기 위한 하나 이상의 모듈을 포함할 수 있다.
하나 이상의 실시형태에서, 서비스(106)를 유저 계정에 대한 디바이스 연관 데이터의 세트로 채우기 위해, 제너릭 동기화 프레임 워크(502)는 디바이스 동기화 핸들러(504)를 호출하여 동기화할 데이터를 열거할 것을 핸들러(504)에게 요청한다. 동기화 핸들러(504)는 디바이스 연관 프레임워크(508)를 호출하여, 프레임워크(508)가 가지고 있는 디바이스 연관 데이터의 집합(collection)을 프레임워크(508)가 엑스포트해야 한다고 요청한다. 디바이스 연관 프레임워크(508)는 자신의 디바이스 연관 데이터를 획득하기 위해 디바이스 연관 데이터 저장소(510)로부터 판독하고, 판독된 디바이스 연관 데이터를 다시 디바이스 동기화 핸들러(504)로 제공한다. 디바이스 동기화 핸들러(504)는 수신된 디바이스 연관 데이터를 동기화된 데이터의 컨테이너 안에 배치하고 그 컨테이너를 제너릭 동기화 프레임 워크(502)로 리턴한다. 제너릭 동기화 프레임 워크(502)는 동기화된 데이터의 집합을 서비스(106)로 제공한다.
하나 이상의 실시형태에서, 컴퓨팅 디바이스 상의 디바이스 연관 데이터에 대해 이루어진 변경을 서비스(106)로 제공하기 위해, 디바이스 동기화 핸들러(504)는 디바이스 연관 데이터 저장소(510)에 대해 변경 이벤트를 직접적으로 등록한다. 대안적으로, 디바이스 동기화 핸들러(504)는 변경 수신을 다른 방식으로, 예컨대 디바이스 연관 프레임워크(508)에 의해 노출되는 애플리케이션 프로그래밍 인터페이스(application programming interface; API) 방법을 호출하는 것에 의해 나타낼 수 있다. 데이터 저장소(510)에서의 변경에 응답하여, 디바이스 동기화 핸들러(504)는 통지를 받고, 디바이스 동기화 핸들러(504)는 디바이스 연관 프레임워크(508)로부터 디바이스 연관 데이터의 현재의 세트를 열거한다. 이 열거는 디바이스 동기화 핸들러(504)가, 기저의 데이터 저장소(510)의 상세를 이해할 필요 없이, 데이터 저장소(510)에서 무엇이 변경되었는지에 관한 상세를 획득하는 것을 허용한다. 디바이스 연관 프레임워크(508)는 자신의 디바이스 연관 데이터를 획득하기 위해 디바이스 연관 데이터 저장소(510)로부터 판독하고 자신의 디바이스 연관 데이터를 (예를 들면, 디바이스 연관 데이터 오브젝트로서) 디바이스 동기화 핸들러(504)에 제공하는데, 디바이스 동기화 핸들러(504)는 자신이 수신하는 디바이스 연관 데이터를 포함하는 동기화된 설정의 컨테이너를 생성하고 그 컨테이너를 제너릭 동기화 프레임 워크(502)로 전달한다. 제너릭 동기화 프레임 워크(502)는 동기화된 데이터의 집합을 서비스(106)로 제공한다.
하나 이상의 실시형태에서, 서비스(106)로부터 수신되는 디바이스 연관 데이터에 대해 이루어지는 변경을 기록하기 위해, 서비스(106)는 디바이스 연관 데이터에 대한 변경에 관해 제너릭 동기화 프레임 워크(502)에게 통지하고 실질적으로 모든 동기화된 설정의 새로운 집합을 제너릭 동기화 프레임 워크(502)로 제공한다. 제너릭 동기화 프레임 워크(502)는 이 집합을 파싱하고 그 다음 디바이스 동기화 핸들러(504)를 호출하여 서비스(106)로부터 수신했던 디바이스 연관 데이터를 핸들링한다. 디바이스 동기화 핸들러(504)는, 현재의 로컬 디바이스 연관 데이터와 서비스(106)로부터 수신되었던 디바이스 연관 데이터 사이의 차이를 디바이스 동기화 핸들러(504)가 결정할 수 있도록, 디바이스 연관 데이터의 기존의 세트를 열거한다. 디바이스 동기화 핸들러(504)는, 현재의 로컬한 디바이스 연관 데이터와 서비스(106)로부터 수신되었던 디바이스 연관 데이터 사이의 차이를 갖는 디바이스 연관 프레임워크(508)를 호출한다. 디바이스 연관 프레임워크(508)는 디바이스 연관 데이터 저장소(510)로부터 대응하는 디바이스 연관 데이터를 취출한다. 데이터 저장소(510)로부터 취출되는 디바이스 연관성의 세트는 디바이스 동기화 핸들러(504)까지 다시 전달된다. 디바이스 동기화 핸들러(504)는, 변경된 데이터의 세트가 디바이스 동기화 핸들러(504)가 관리하는 디바이스 연관 데이터의 세트에 영향을 끼치면; 다시 말하면, 디바이스 연관 데이터가 동일하게 유지되지만 다른 동기화된 데이터가 변경되면, 디바이스 동기화 핸들러(504)가 관리하는 로컬 상태에 대해 어떠한 변경도 없다는 것을 결정한다. 주변장치 디바이스가 추가되면, 디바이스 동기화 핸들러(504)는 디바이스 연관 데이터를 추가하기 위해 임포트 커맨드를 갖는 디바이스 연관 프레임워크(508)를 호출하고, 디바이스 연관 프레임워크(508)는 디바이스 연관 데이터를 데이터 저장소(510)에 추가한다. 주변장치 디바이스가 제거되면, 디바이스 동기화 핸들러(504)는 연관해제 또는 제거 커맨드를 갖는 디바이스 연관 프레임워크(508)를 호출하고 디바이스 연관 프레임워크(508)는 디바이스 연관 데이터를 데이터 저장소(510)로부터 제거한다. 디바이스 연관 데이터가 디바이스 연관 데이터 저장소(510)에 저장되거나 디바이스 연관 데이터 저장소(510)로부터 제거되는 것의 결과로서, 컴퓨팅 디바이스는 주변장치 디바이스와 연관되거나 또는 연관해제된다.
본원에서 논의되는 기술은 다양한 사용 시나리오를 제공한다. 예를 들면, 유저는 그 또는 그녀가 그의 또는 그녀의 컴퓨팅 디바이스 중 하나 상에서 사용하기를 원하는 주변장치 디바이스를 설치하고, 이들 주변장치 디바이스가 그의 또는 그녀의 다른 컴퓨팅 디바이스 상에 자동적으로 설치되게 할 수 있다. 다른 예로서, 유저는 새로운 스마트폰을 구매하여 스마트폰이 자신의 디바이스 연관 데이터를 서비스로 전달하게 할 수 있다. 그러면, 그의 또는 그녀의 새로운 스마트폰은, 유저가 그의 또는 그녀의 컴퓨팅 디바이스 중 임의 것의 상에 스마트폰을 수동으로 설치할 필요 없이, 그의 또는 그녀의 컴퓨팅 디바이스 상에 자동적으로 설치된다.
본원에서 논의되는 기술에 대한 다양한 다른 수정예가 만들어질 수 있다. 하나 이상의 실시형태에서, 컴퓨팅 디바이스 상에 설치되는 주변장치 디바이스에 대한 디바이스 연관 데이터는, 상기에서 논의된 바와 같이, 유저가 그의 또는 그녀의 계정을 로그인하게 되는 다양한 다른 컴퓨팅 디바이스에 자동적으로 동기화된다. 대안적으로, 유저는, 그 또는 그녀가 특정 주변장치 디바이스가 그의 또는 그녀의 다른 컴퓨팅 디바이스에 동기화되게 하기를 원하는지 (예를 들면, 설치 프로세스의 일부로서) 상기될 수 있고, 특정 주변장치 디바이스에 대한 디바이스 연관 데이터는 특정 주변장치 디바이스가 동기화되어야 한다는 것을 나타내는 유저 입력에만 응답하여 서비스 및 다른 컴퓨팅 디바이스에 전송된다.
특정 기능성이 특정 모듈을 참조로 본원에서 논의되지만, 본원에서 논의되는 개개의 모듈의 기능성은 복수의 모듈로 분리될 수 있고/있거나, 복수의 모듈의 적어도 몇몇 기능성은 단일의 모듈로 결합될 수 있다는 것을 유의해야 한다. 다양한 모듈에 의해 수행되는 다양한 액션이 본원에서 논의된다. 액션을 수행하는 것으로 본원에서 논의되는 특정 모듈은, 그 액션을 수행하는 그 특정 모듈 자체를 포함하거나, 또는 대안적으로 그 액션을 수행하는(또는 그 특정 모듈과 연계하여 그 액션을 수행하는) 다른 컴포넌트 또는 모듈을 호출하는 또는 다르게는 그 다른 컴포넌트 또는 모듈에 액세스하는 그 특정 모듈을 포함한다. 따라서, 액션을 포함하는 특정 모듈은 그 액션을 수행하는 그 특정 모듈 자체 및/또는 그 액션을 수행하는 그 특정 모듈에 의해 호출되는 또는 다르게는 액세스되는 다른 모듈을 포함한다.
도 6은 본원에서 설명되는 다양한 기술을 구현할 수도 있는 하나 이상의 시스템 및/또는 디바이스를 묘사하는 예시적인 컴퓨팅 디바이스(602)를 포함하는 예시적인 시스템을 600에서 일반적으로 예시한다. 컴퓨팅 디바이스(602)는, 예를 들면, 서비스 공급자의 서버, 클라이언트와 연관되는 디바이스(예를 들면, 클라이언트 디바이스), 온칩(on-chip) 시스템, 및/또는 임의의 다른 적절한 컴퓨팅 디바이스 또는 컴퓨팅 시스템일 수도 있다.
예시된 바와 같은 예시적인 컴퓨팅 디바이스(602)는, 서로 통신적으로 커플링되는 프로세싱 시스템(604), 하나 이상의 컴퓨터 판독가능 매체(606), 및 하나 이상의 I/O 인터페이스(608)를 포함한다. 도시되지는 않았지만, 컴퓨팅 디바이스(602)는, 다양한 컴포넌트를 서로 커플링하는 시스템 버스 또는 다른 데이터 및 커맨드 전송 시스템을 더 포함할 수도 있다. 시스템 버스는, 메모리 버스 또는 메모리 컨트롤러, 주변장치 버스, 범용 직렬 버스, 및/또는 다양한 버스 아키텍쳐 중 임의의 것을 활용하는 프로세서 또는 로컬 버스와 같은 상이한 버스 구조 중 임의의 하나 또는 조합을 포함할 수 있다. 제어 및 데이터 라인과 같은 다양한 다른 예도 또한 기대된다.
프로세싱 시스템(604)은 하드웨어를 사용하여 하나 이상의 작동을 수행하는 기능성을 대표한다. 따라서, 프로세싱 시스템(604)은, 프로세서, 기능적 블록 등으로서 구성될 수도 있는 하드웨어 엘리먼트(610)를 포함하는 것으로 예시된다. 이것은 하드웨어의 구현예를, 주문형 반도체 또는 하나 이상의 반도체를 사용하여 형성되는 다른 로직 디바이스로서, 포함할 수도 있다. 하드웨어 엘리먼트(610)는, 하드웨어 엘리먼트(610)를 형성하는 재료 또는 내부에서 활용되는 프로세싱 메커니즘에 의해 제한되지 않는다. 예를 들면, 프로세서는 반도체(들) 및/또는 트랜지스터(예를 들면, 전자 집적 회로(integrated circuit; IC))로 구성될 수도 있다. 이러한 맥락에서, 프로세서 실행가능 명령은 전자적으로 실행가능한 명령일 수도 있다.
컴퓨터 판독가능 매체(606)는 메모리/스토리지(612)를 포함하는 것으로 예시된다. 메모리/스토리지(612)는 하나 이상의 컴퓨터 판독가능 매체와 연관되는 메모리/스토리지 용량을 나타낸다. 메모리/스토리지(612)는 휘발성 매체(예컨대 랜덤 액세스 메모리(random access memory; RAM)) 및/또는 불휘발성 매체(예컨대 리드 온리 메모리(read only memory; ROM), 플래시 메모리, 광학 디스크, 자기 디스크 등)를 포함할 수도 있다. 메모리/스토리지(612)는 고정식 매체(예를 들면, RAM, ROM, 고정식 하드 드라이브 등)뿐만 아니라 착탈식(removable) 매체(예를 들면, 플래시 메모리, 착탈식 하드 드라이브, 광학 디스크 등)를 포함할 수도 있다. 컴퓨터 판독가능 매체(606)는 하기에서 더 설명되는 바와 같이 다양한 다른 방식으로 구성될 수도 있다.
입/출력 인터페이스(들)(608)는, 유저가 커맨드 및 정보를 컴퓨팅 디바이스(602)에 입력하는 것을 허용하는, 그리고 정보가 다양한 입/출력 디바이스를 사용하여 유저 및/또는 다른 컴포넌트 또는 디바이스로 제공되는 것을 또한 허용하는 기능성을 나타낸다. 입력 디바이스의 예는 키보드, 커서 제어 디바이스(예를 들면, 마우스), 마이크(예를 들면, 보이스 입력용), 스캐너, 터치 기능성(예를 들면, 물리적 접촉을 검출하도록 구성되는 용량성 또는 다른 센서), 카메라(예를 들면, 카메라는 제스쳐처럼 터치를 수반하지 않는 움직임을 검출하기 위해, 가시 또는 불가시 파장 예컨대 적외선 주파수를 활용할 수도 있다) 등을 포함한다. 출력 디바이스의 예는 디스플레이 디바이스(예를 들면, 모니터 또는 프로젝터), 스피커, 프린터, 네트워크 카드, 촉각 반응 디바이스 등을 포함한다. 따라서, 컴퓨팅 디바이스(602)는 유저 상호작용을 지원하기 위해 하기에서 더 설명되는 바와 같이 다양한 방식으로 구성될 수도 있다.
컴퓨팅 디바이스(602)는 데이터 동기화 시스템(614)을 또한 포함한다. 데이터 동기화 시스템(614)은 위에서 설명된 바와 같이 디바이스 연관 데이터를 동기화하기 위한 다양한 기능성을 제공한다. 데이터 동기화 시스템(614)은, 예를 들면, 도 1의 데이터 동기화 모듈(112), 또는 도 2의 디바이스 연관 데이터 동기화 모듈(208)을 구현할 수 있다.
소프트웨어, 하드웨어 엘리먼트, 또는 프로그램 모듈의 일반적인 맥락에서, 다양한 기술이 본원에서 설명될 수도 있다. 일반적으로, 이러한 모듈은, 특정 태스크를 수행하는 또는 특정 추상 데이터 타입을 구현하는 루틴, 프로그램, 오브젝트, 엘리먼트, 컴포넌트, 데이터 구조, 등을 포함한다. 본원에서 사용되는 바와 같은 용어 "모듈", "기능성", 및 "컴포넌트"는 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합을 일반적으로 나타낸다. 본원에서 설명되는 기술의 특징은 플랫폼 독립적인데, 그 기술이 다양한 프로세서를 구비하는 다양한 컴퓨팅 플랫폼 상에서 구현될 수도 있다는 것을 의미한다.
설명된 모듈 및 기술의 구현예는 몇몇 형태의 컴퓨터 판독가능 매체 상에 저장되거나 또는 몇몇 형태의 컴퓨터 판독가능 매체를 통해 전송될 수도 있다. 컴퓨터 판독가능 매체는, 컴퓨팅 디바이스(602)에 의해 액세스될 수도 있는 다양한 매체를 포함할 수도 있다. 비제한적인 예로서, 컴퓨터 판독가능 매체는 "컴퓨터 판독가능 저장 매체" 및 "컴퓨터 판독가능 신호 매체"를 포함할 수도 있다.
"컴퓨터 판독가능 저장 매체"는, 신호 전송, 반송파, 또는 신호 그 자체와는 대조적으로, 정보의 영구적인 저장 및/또는 유형의(tangible) 저장을 가능하게 하는 매체 및/또는 디바이스를 가리킨다. 따라서, 컴퓨터 판독가능 저장 매체는 비 신호 베어링 매체(non-signal bearing media)를 가리킨다. 컴퓨터 판독가능 저장 매체는, 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 로직 엘리먼트/회로, 또는 다른 데이터와 같은 정보의 저장에 적합한 방법 또는 기술로 구현되는 휘발성 및 불휘발성의 착탈식 및 비착탈식 매체 및/또는 스토리지 디바이스와 같은 하드웨어를 포함한다. 컴퓨터 판독가능 저장 매체의 예는, RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다기능 디스크(digital versatile disks; DVD) 또는 다른 광학 스토리지, 하드 디스크, 자기 카세트, 자기 테이프, 자기 디스크 스토리지 또는 다른 자기 스토리지 디바이스, 또는 다른 스토리지 디바이스, 유형의 매체, 또는 소망의 정보를 저장하기에 적합하며 컴퓨터에 액세스될 수도 있는 제조 물품을 포함할 수도 있지만, 이들에 제한되는 것은 아니다.
"컴퓨터 판독가능 신호 매체"는, 예컨대 네트워크를 통해 명령을 컴퓨팅 디바이스(602)의 하드웨어로 송신하도록 구성되는 신호 베어링 매체를 가리킨다. 신호 매체는 통상적으로 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 또는 변조된 데이터 신호, 예컨대 반송파, 데이터 신호, 또는 다른 전송 메커니즘에서의 다른 데이터를 구체화할 수도 있다. 신호 매체는 임의의 정보 전달 매체를 또한 포함한다. 용어 "변조된 데이터 신호"는, 자신의 특성 세트 중 하나 이상을 구비하는 또는 신호에서 정보를 인코딩하는 것과 같은 방식으로 변경된 신호를 의미한다. 비제한적인 예로서, 통신 매체는 유선 네트워크 또는 직결 접속과 같은 유선 매체, 및 무선 매체 예컨대 음향, RF, 적외선 및 다른 무선 매체를 포함한다.
앞서 설명된 바와 같이, 하드웨어 엘리먼트(610) 및 컴퓨터 판독가능 매체(606)는, 본원에서 설명되는 기술의 적어도 몇몇 양태를 구현하기 위해 몇몇 실시형태에서 활용될 수도 있는 하드웨어 형태로 구현되는 명령, 모듈, 프로그래밍가능 디바이스 로직 및/또는 고정식 디바이스 로직을 나타낸다. 하드웨어 엘리먼트는 집적 회로 또는 온칩 시스템, 주문형 반도체(application-specific integrated circuit; ASIC), 필드 프로그래머블 게이트 어레이(field-programmable gate array; FPGA), 복합 프로그래머블 로직 디바이스(complex programmable logic device; CPLD), 및 실리콘 또는 다른 하드웨어 디바이스에서의 다른 구현예의 컴포넌트를 포함할 수도 있다. 이 맥락에서, 하드웨어 엘리먼트는, 하드웨어 엘리먼트뿐만 아니라 실행을 위한 명령을 저장하기 위해 활용되는 하드웨어 디바이스, 예를 들면, 앞서 설명된 컴퓨터 판독가능 저장 매체에 의해 구체화되는 명령, 모듈, 및/또는 로직에 의해 정의되는 프로그램 태스크를 수행하는 프로세싱 디바이스로서 작동할 수도 있다.
본원에서 설명되는 다양한 기술 및 모듈을 구현하기 위해, 상기의 조합이 또한 활용될 수도 있다. 따라서, 소프트웨어, 하드웨어, 또는 프로그램 모듈 및 다른 프로그램 모듈은, 몇몇 형태의 컴퓨터 판독가능 저장 매체 상에서 및/또는 하나 이상의 하드웨어 엘리먼트(610)에 의해 구체화되는 하나 이상의 명령 및/또는 로직으로서 구현될 수도 있다. 컴퓨팅 디바이스(602)는 소프트웨어 및/또는 하드웨어 모듈에 대응하는 특정 명령 및/또는 기능을 구현하도록 구성될 수도 있다. 따라서, 소프트웨어와 같이 컴퓨팅 디바이스(602)에 의해 실행가능한 모듈로서의 모듈의 구현예는, 예를 들면, 프로세싱 시스템의 하드웨어 엘리먼트(610) 및/또는 컴퓨터 판독가능 저장 매체의 사용을 통해, 적어도 부분적으로 하드웨어로 달성될 수도 있다. 명령 및/또는 기능은 본원에서 설명되는 기술, 모듈, 및 예를 구현하도록 하나 이상의 제조 물품(예를 들면, 하나 이상의 컴퓨팅 디바이스(602) 및/또는 프로세싱 시스템(604))에 의해 실행가능/작동가능할 수도 있다.
도 6에서 또한 예시되는 바와 같이, 예시적인 시스템(600)은, 퍼스널 컴퓨터(personal computer; PC), 텔레비전 및/또는 셋탑 박스 디바이스, 및/또는 모바일 디바이스 상에서 애플리케이션을 실행하고 있을 때 원활한 유저 경험(a seamless user experience)을 위한 유비쿼터스 환경(ubiquitous environment)을 가능하게 한다. 서비스 및 애플리케이션은, 애플리케이션을 활용하는 동안, 비디오 게임을 플레이하는 동안, 비디오를 시청하는 동안 등의 시간 동안, 한 디바이스에서 다음의 것으로 전이할 때 공통의 유저 경험에 대해 모든 세 개의 환경에서 실질적으로 유사하게 된다.
예시적인 시스템(600)에서, 복수의 디바이스는 중앙 컴퓨팅 디바이스를 통해 상호접속된다. 중앙 컴퓨팅 디바이스는 복수의 디바이스에 로컬할 수도 있거나 또는 복수의 디바이스로부터 원격에 위치될 수도 있다. 하나 이상의 실시형태에서, 중앙 컴퓨팅 디바이스는, 네트워크, 인터넷, 또는 다른 데이터 통신 링크를 통해 복수의 디바이스에 연결되는 하나 이상의 서버 컴퓨터의 클라우드일 수도 있다.
하나 이상의 실시형태에서, 이 상호접속 아키텍쳐(interconnection architecture)는, 복수의 디바이스의 유저에게 공통의 그리고 원활한 경험을 제공하도록, 기능성이 복수의 디바이스 전체에 전달되는 것을 가능하게 한다. 복수의 디바이스의 각각은 상이한 물리적 요건 및 성능을 구비할 수도 있으며, 중앙 컴퓨팅 디바이스는, 디바이스에 맞춤되면서도(tailored) 여전히 모든 디바이스에 대해 공통인 경험의 디바이스로의 전달을 가능하게 하기 위한 플랫폼을 사용한다. 하나 이상의 실시형태에서, 목표 디바이스의 클래스가 생성되고 경험이 디바이스의 제너릭 클래스(generic class)에 맞춤된다. 디바이스의 클래스는 디바이스의 물리적 피쳐, 사용의 타입, 또는 다른 공통의 특성에 의해 정의될 수도 있다.
다양한 구현예에서, 컴퓨팅 디바이스(602)는, 예컨대 컴퓨터(616), 모바일(618), 및 텔레비전(620) 용도에 대해, 여러 상이한 구성을 취할 수도 있다. 이들 구성의 각각은, 일반적으로 상이한 구조 및 성능을 가질 수도 있는 디바이스를 포함하며, 따라서 컴퓨팅 디바이스(602)는 상이한 디바이스 클래스 중 하나 이상에 따라 구성될 수도 있다. 예를 들면, 컴퓨팅 디바이스(602)는, 퍼스널 컴퓨터, 데스크탑 컴퓨터, 멀티스크린 컴퓨터, 랩탑 컴퓨터, 넷북 등을 포함하는 디바이스의 컴퓨터(616) 클래스로서 구현될 수도 있다.
컴퓨팅 디바이스(602)는, 모바일 디바이스, 예컨대 모바일 폰, 휴대형 음악 플레이어, 휴대형 게임용 디바이스, 태블릿 컴퓨터, 멀티스크린 컴퓨터 등을 포함하는 디바이스의 모바일(618) 클래스로서 또한 구현될 수도 있다. 컴퓨팅 디바이스(602)는, 일상적인(casual) 시청 환경에서 일반적으로 더 큰 스크린을 갖는 또는 더 큰 스크린에 연결되는 디바이스를 포함하는 디바이스의 텔레비전(620) 클래스로서 또한 구현될 수도 있다. 이들 디바이스는 텔레비전, 셋탑 박스, 게임용 콘솔 등을 포함한다.
본원에서 설명되는 기술은 컴퓨팅 디바이스(602)의 이들 다양한 구성에 의해 지원될 수도 있으며 본원에서 설명되는 기술의 특정 예에 제한되지 않는다. 이 기능성은, 모두 또는 부분적으로 분산형 시스템의 사용을 통해, 예컨대 하기에서 설명되는 바와 같이 플랫폼(624)을 통한 "클라우드"(622)를 통해 구현될 수도 있다.
클라우드(622)는 리소스(626)에 대한 플랫폼(624)을 포함하고/하거나 플랫폼(624)을 나타낸다. 플랫폼(624)은 클라우드(622)의 하드웨어(예를 들면, 서버) 및 소프트웨어 리소스의 기저의 기능성을 추상화한다. 리소스(626)는, 컴퓨팅 디바이스(602)로부터 원격인 서버 상에서 컴퓨터 프로세싱이 실행되고 있는 동안 활용될 수 있는 애플리케이션 및/또는 데이터를 포함할 수도 있다. 리소스(626)는 인터넷을 통해 및/또는 가입자 네트워크, 예컨대 셀룰러 또는 와이파이 네트워크를 통해 제공되는 서비스를 또한 포함할 수 있다.
플랫폼(624)은 컴퓨팅 디바이스(602)를 다른 컴퓨팅 디바이스와 연결하는 리소스 및 기능을 추상화할 수도 있다. 플랫폼(624)은, 플랫폼(624)을 통해 구현되는 리소스(626)에 대한 조우되는 요구에 대해 대응하는 레벨의 스케일을 제공하기 위해, 리소스의 스케일링을 추상화하도록 또한 기능할 수도 있다. 따라서, 상호접속된 디바이스 실시형태에서, 본원에서 설명되는 기능성의 구현예는 시스템(600) 전체에 걸쳐 분산될 수도 있다. 예를 들면, 기능성은 컴퓨팅 디바이스(602) 상에서뿐만 아니라 클라우드(622)의 기능성을 추상화하는 플랫폼(624)을 통해서도 부분적으로 구현될 수도 있다.
비록 본 주제가 구조적 특징 및/또는 방법론적 동작들에 고유한 언어로 설명되었지만, 첨부의 특허청구범위에서 정의되는 주제가 상기에서 설명되는 특정 특징 또는 동작으로 반드시 제한되는 것은 아니다는 것이 이해되어야 한다. 오히려, 위에서 설명되는 특정 특징 및 동작은 특허청구범위를 구현하는 예시적인 형태로서 개시된다.

Claims (19)

  1. 방법에 있어서,
    서비스로부터, 유저가 상기 서비스의 유저 계정에 로그인하는 것에 응답하여, 상기 유저 계정으로 유지되고 상기 유저 계정과 동기화되는 하나 이상의 주변장치 디바이스 각각에 대한 디바이스 연관 데이터 - 주변장치 디바이스에 대한 상기 디바이스 연관 데이터는 상기 주변장치 디바이스를 컴퓨팅 디바이스에 연결하는 방법을 기술(describe)함 - 를 수신하는 단계;
    제1 세트의 주변장치 디바이스가 자동적으로 상기 컴퓨팅 디바이스와 함께 사용가능해질 수 있는지를 결정하는 단계;
    자동적으로 상기 컴퓨팅 디바이스와 함께 사용가능해지지 않는 제2 세트의 주변장치 디바이스 중 적어도 하나에 대해, 추가적인 크리덴셜을 획득하는 단계; 및
    상기 제1 세트의 주변장치 디바이스를, 그리고 상기 획득된 추가적인 크리덴셜을 사용하여 상기 제2 세트의 주변장치 디바이스 중 상기 적어도 하나를 상기 컴퓨팅 디바이스와 함께 사용가능하게 하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 획득하는 단계는, 상기 컴퓨팅 디바이스에서의 유저 입력으로서 상기 추가적인 크리덴셜을 수신하는 단계를 포함하는 것인, 방법.
  3. 제1항에 있어서,
    상기 컴퓨팅 디바이스 상에서, 상기 제1 세트의 주변장치 디바이스의 각각에 대한 디바이스 연관 데이터의 사본뿐만 아니라, 상기 제2 세트의 주변장치 디바이스 중 상기 적어도 하나의 주변장치 디바이스에 대한 디바이스 연관 데이터의 사본을 유지하는 단계를 더 포함하는 것인, 방법.
  4. 제1항에 있어서,
    상기 하나 이상의 주변장치 디바이스 중 적어도 하나의 주변장치 디바이스에 대한 디바이스 연관 데이터는, 추가적인 컴퓨팅 디바이스에서 상기 추가적인 컴퓨팅 디바이스가 상기 적어도 하나의 주변장치 디바이스에 연결된 결과, 상기 추가적인 컴퓨팅 디바이스에 의해 상기 서비스에 제공된 것인, 방법.
  5. 제1항에 있어서,
    상기 하나 이상의 주변장치 디바이스 중 적어도 하나의 주변장치 디바이스에 대한 디바이스 연관 데이터는, 상기 컴퓨팅 디바이스가 상기 적어도 하나의 주변장치 디바이스에 이전에 연결된 결과, 상기 컴퓨팅 디바이스에 의해 상기 서비스에 제공된 것인, 방법.
  6. 제1항에 있어서,
    상기 하나 이상의 주변장치 디바이스 중 적어도 하나의 주변장치 디바이스에 대한 디바이스 연관 데이터는, 상기 적어도 하나의 주변장치 디바이스에 의해 상기 서비스에 제공된 것인, 방법.
  7. 제1항에 있어서,
    상기 서비스로부터, 상기 하나 이상의 주변장치 디바이스 중 적어도 하나의 주변장치 디바이스에 대한 디바이스 사용 데이터 - 주변장치 디바이스에 대한 상기 디바이스 사용 데이터는 상기 주변장치 디바이스에 대한 특정 설정을 식별함 - 를 수신하는 단계; 및
    상기 컴퓨팅 디바이스 상에 설치되는 상기 적어도 하나의 주변장치 디바이스에 상기 특정 설정을 적용하는 단계
    를 더 포함하는 것인, 방법.
  8. 제1항에 있어서,
    상기 서비스로부터, 상기 하나 이상의 주변장치 디바이스 중 적어도 하나의 주변장치 디바이스에 대한 디바이스 연관 데이터에 대한 변경을 수신하는 단계; 및
    상기 변경에 기초하여, 상기 적어도 하나의 주변장치 디바이스에 대한 상기 컴퓨팅 디바이스 상에 유지되는 상기 디바이스 연관 데이터를 업데이트하는 단계
    를 더 포함하는 것인, 방법.
  9. 제1항에 있어서,
    상기 서비스로부터, 상기 제1 세트의 주변장치 디바이스 중 적어도 하나의 주변장치 디바이스 또는 상기 제2 세트의 주변장치 디바이스 중 상기 적어도 하나가 삭제되었다는 표시를 수신하는 단계; 및
    상기 적어도 하나의 주변장치 디바이스를 더이상 상기 컴퓨팅 디바이스와 함께 사용가능하지 않게 하는 단계
    를 더 포함하는 것인, 방법.
  10. 컴퓨팅 디바이스에 있어서,
    주변장치 디바이스에 대한 디바이스 연관 데이터 - 주변장치 디바이스에 대한 상기 디바이스 연관 데이터는 상기 컴퓨팅 디바이스가 상기 주변장치 디바이스에 연결되는 방법을 기술함 - 를 저장하기 위한 데이터 저장소; 및
    디바이스 연관 데이터 동기화 모듈
    을 포함하고, 상기 디바이스 연관 데이터 동기화 모듈은,
    서비스로부터, 유저가 상기 서비스의 유저 계정에 로그인하는 것에 응답하여, 상기 유저 계정으로 유지되고 상기 유저 계정과 동기화되는 하나 이상의 주변장치 디바이스 각각에 대한 디바이스 연관 데이터를 수신하고;
    제1 세트의 주변장치 디바이스가 자동적으로 상기 컴퓨팅 디바이스와 함께 사용가능해질 수 있는지를 결정하고;
    자동적으로 상기 컴퓨팅 디바이스와 함께 사용가능해지지 않는 제2 세트의 주변장치 디바이스 중 적어도 하나에 대해, 추가적인 크리덴셜을 획득하고;
    상기 제1 세트의 주변장치 디바이스를, 그리고 상기 획득된 추가적인 크리덴셜을 사용하여 상기 제2 세트의 주변장치 디바이스 중 상기 적어도 하나를 상기 컴퓨팅 디바이스와 함께 사용가능하게 하도록
    구성되는 것인, 컴퓨팅 디바이스.
  11. 제10항에 있어서,
    상기 디바이스 연관 데이터 동기화 모듈은, 상기 컴퓨팅 디바이스에서 유저 입력으로서 상기 추가적인 크리덴셜을 수신하는 것에 의해 상기 추가적인 크리덴셜을 획득하도록 구성되는 것인, 컴퓨팅 디바이스.
  12. 제10항에 있어서,
    상기 데이터 저장소는 또한, 상기 제1 세트의 주변장치 디바이스의 각각에 대한 디바이스 연관 데이터의 사본뿐만 아니라, 상기 제2 세트의 주변장치 디바이스 중 상기 적어도 하나의 주변장치 디바이스에 대한 디바이스 연관 데이터의 사본을 저장하기 위한 것인, 컴퓨팅 디바이스.
  13. 제10항에 있어서,
    상기 하나 이상의 주변장치 디바이스 중 적어도 하나의 주변장치 디바이스에 대한 디바이스 연관 데이터는, 추가적인 컴퓨팅 디바이스에서 상기 추가적인 컴퓨팅 디바이스가 상기 적어도 하나의 주변장치 디바이스에 연결된 결과, 상기 추가적인 컴퓨팅 디바이스에 의해 상기 서비스에 제공된 것인, 컴퓨팅 디바이스.
  14. 제10항에 있어서,
    상기 하나 이상의 주변장치 디바이스 중 적어도 하나의 주변장치 디바이스에 대한 디바이스 연관 데이터는, 상기 컴퓨팅 디바이스가 상기 적어도 하나의 주변장치 디바이스에 이전에 연결된 결과, 상기 컴퓨팅 디바이스에 의해 상기 서비스에 제공된 것인, 컴퓨팅 디바이스.
  15. 제10항에 있어서,
    상기 하나 이상의 주변장치 디바이스 중 적어도 하나의 주변장치 디바이스에 대한 디바이스 연관 데이터는, 상기 적어도 하나의 주변장치 디바이스에 의해 상기 서비스에 제공된 것인, 컴퓨팅 디바이스.
  16. 제10항에 있어서,
    상기 디바이스 연관 데이터 동기화 모듈은 또한,
    상기 서비스로부터, 상기 하나 이상의 주변장치 디바이스 중 적어도 하나의 주변장치 디바이스에 대한 디바이스 사용 데이터 - 주변장치 디바이스에 대한 상기 디바이스 사용 데이터는 상기 주변장치 디바이스에 대한 특정 설정을 식별함 - 를 수신하고;
    상기 컴퓨팅 디바이스 상에 설치되는 상기 적어도 하나의 주변장치 디바이스에 상기 특정 설정을 적용하도록
    구성되는 것인, 컴퓨팅 디바이스.
  17. 제10항에 있어서,
    상기 디바이스 연관 데이터 동기화 모듈은 또한,
    상기 서비스로부터, 상기 하나 이상의 주변장치 디바이스 중 적어도 하나의 주변장치 디바이스에 대한 디바이스 연관 데이터에 대한 변경을 수신하고;
    상기 변경에 기초하여, 상기 적어도 하나의 주변장치 디바이스에 대한 상기 데이터 저장소에 저장되는 상기 디바이스 연관 데이터를 업데이트하도록
    구성되는 것인, 컴퓨팅 디바이스.
  18. 제10항에 있어서,
    상기 디바이스 연관 데이터 동기화 모듈은 또한,
    상기 서비스로부터, 상기 제1 세트의 주변장치 디바이스 중 적어도 하나의 주변장치 디바이스 또는 상기 제2 세트의 주변장치 디바이스 중 상기 적어도 하나가 삭제되었다는 표시를 수신하고;
    상기 적어도 하나의 주변장치 디바이스를 더이상 상기 컴퓨팅 디바이스와 함께 사용가능하지 않게 하도록
    구성되는 것인, 컴퓨팅 디바이스.
  19. 컴퓨팅 디바이스에 있어서,
    하나 이상의 프로세서; 및
    상기 하나 이상의 프로세서에 의해 실행가능한 다수의 명령어가 저장되어 있는 하나 이상의 컴퓨터 판독가능한 저장 매체를 포함하고,
    상기 다수의 명령어는, 상기 하나 이상의 프로세서로 하여금,
    서비스로부터, 유저가 상기 서비스의 유저 계정에 로그인하는 것에 응답하여, 상기 유저 계정으로 유지되고 상기 유저 계정과 동기화되는 하나 이상의 주변장치 디바이스 각각에 대한 디바이스 연관 데이터 - 주변장치 디바이스에 대한 상기 디바이스 연관 데이터는 상기 주변장치 디바이스를 상기 컴퓨팅 디바이스에 연결하는 방법을 기술함 - 를 수신하는 것;
    자동적으로 상기 컴퓨팅 디바이스와 함께 사용가능해지지 않는 제2 세트의 주변장치 디바이스 중 적어도 하나에 대해, 추가적인 크리덴셜을 획득하는 것; 및
    자동적으로 상기 컴퓨팅 디바이스와 함께 사용가능한 제1 세트의 주변장치 디바이스를, 그리고 상기 획득된 추가적인 크리덴셜을 사용하여 상기 제2 세트의 주변장치 디바이스 중 상기 적어도 하나를 상기 컴퓨팅 디바이스와 함께 사용가능하게 하는 것
    을 포함하는 동작(act)을 수행하게 하는 것인, 컴퓨팅 디바이스.
KR1020207029344A 2013-05-29 2013-09-19 컴퓨팅 디바이스 사이에서의 디바이스 연관 데이터의 동기화 KR102303681B1 (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201361828671P 2013-05-29 2013-05-29
US61/828,671 2013-05-29
US13/931,690 US9032106B2 (en) 2013-05-29 2013-06-28 Synchronizing device association data among computing devices
US13/931,690 2013-06-28
PCT/US2013/060489 WO2014193434A1 (en) 2013-05-29 2013-09-19 Synchronizing device association data among computing devices
KR1020157036897A KR102168572B1 (ko) 2013-05-29 2013-09-19 컴퓨팅 디바이스 사이에서의 디바이스 연관 데이터의 동기화

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020157036897A Division KR102168572B1 (ko) 2013-05-29 2013-09-19 컴퓨팅 디바이스 사이에서의 디바이스 연관 데이터의 동기화

Publications (2)

Publication Number Publication Date
KR20200120763A true KR20200120763A (ko) 2020-10-21
KR102303681B1 KR102303681B1 (ko) 2021-09-16

Family

ID=51986475

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020157036897A KR102168572B1 (ko) 2013-05-29 2013-09-19 컴퓨팅 디바이스 사이에서의 디바이스 연관 데이터의 동기화
KR1020207029344A KR102303681B1 (ko) 2013-05-29 2013-09-19 컴퓨팅 디바이스 사이에서의 디바이스 연관 데이터의 동기화

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020157036897A KR102168572B1 (ko) 2013-05-29 2013-09-19 컴퓨팅 디바이스 사이에서의 디바이스 연관 데이터의 동기화

Country Status (11)

Country Link
US (2) US9032106B2 (ko)
EP (1) EP3005080B1 (ko)
JP (1) JP6305524B2 (ko)
KR (2) KR102168572B1 (ko)
CN (1) CN105431816B (ko)
AU (1) AU2013390850B2 (ko)
BR (1) BR112015029277B1 (ko)
CA (1) CA2910249C (ko)
MX (1) MX353076B (ko)
RU (1) RU2648971C2 (ko)
WO (1) WO2014193434A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8943551B2 (en) 2008-08-14 2015-01-27 Microsoft Corporation Cloud-based device information storage
US9032106B2 (en) 2013-05-29 2015-05-12 Microsoft Technology Licensing, Llc Synchronizing device association data among computing devices
US20150220308A1 (en) * 2014-01-31 2015-08-06 Dell Products L.P. Model-based development
EP3139803B1 (en) * 2014-05-09 2018-03-07 VacuVita Holding B.V. Container for delaying spoilage of a consumable product and methods for using the container
US10506068B2 (en) * 2015-04-06 2019-12-10 Microsoft Technology Licensing, Llc Cloud-based cross-device digital pen pairing
US10404532B2 (en) 2015-04-10 2019-09-03 Comcast Cable Commnications, LLC Virtual gateway control and management
CN108351792A (zh) * 2016-01-15 2018-07-31 谷歌有限责任公司 使用应用容器管理代码和依赖性数据的传递
US9817648B2 (en) 2016-01-15 2017-11-14 Google Inc. Application containers with dynamic sub-package loading
KR101850203B1 (ko) * 2016-04-11 2018-04-18 라인 가부시키가이샤 기기간 어플리케이션 연동 방법 및 시스템
CN106713435A (zh) * 2016-12-14 2017-05-24 北京小米移动软件有限公司 信息处理方法、装置及终端设备
US10606820B2 (en) * 2017-05-12 2020-03-31 International Business Machines Corporation Synchronizing data values by requesting updates
US10614054B2 (en) * 2017-05-12 2020-04-07 International Business Machines Corporation Synchronizing data values by sending updates
CN109413215A (zh) * 2018-12-24 2019-03-01 苏州思必驰信息科技有限公司 用于录音设备和用户终端的数据同步方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001282729A (ja) * 2000-03-30 2001-10-12 Casio Comput Co Ltd ユーザ環境設定システム、その方法及び記録媒体
US20030115256A1 (en) * 1999-12-09 2003-06-19 Brockway Tad Dennis Client side caching of printer configuration
US20050257226A1 (en) * 2004-05-14 2005-11-17 Microsoft Corporation PnP functionality for unsupported devices
JP2008146398A (ja) * 2006-12-11 2008-06-26 Hitachi Ltd 情報処理システム、情報処理システムの制御方法、サービス利用装置及びサービス提供装置

Family Cites Families (106)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE501943C2 (sv) 1993-11-24 1995-06-26 Telia Ab Förfarande och arrangemang för semipermanent lagring av tjänsteprofil i personkommunikationssystem
NZ279622A (en) 1994-01-13 1998-04-27 Certco Llc Encrypted secure and verifiable communication: cryptographic keys escrowed
GB9709135D0 (en) 1997-05-02 1997-06-25 Certicom Corp Two way authentication protocol
US6016476A (en) 1997-08-11 2000-01-18 International Business Machines Corporation Portable information and transaction processing system and method utilizing biometric authorization and digital certificate security
US6016746A (en) 1997-08-19 2000-01-25 Micron Communications, Inc. Flip chip screen printing method
JP3922482B2 (ja) 1997-10-14 2007-05-30 ソニー株式会社 情報処理装置および方法
US6122639A (en) 1997-12-23 2000-09-19 Cisco Technology, Inc. Network device information collection and change detection
JP2000003336A (ja) 1998-06-16 2000-01-07 Nec Corp 携帯型データ通信端末装置におけるユーザ認証方法及びユーザ認証システム
JP2000181687A (ja) * 1998-12-18 2000-06-30 Fujitsu Ltd 制御装置,電子機器,環境設定方法およびプログラムを格納したコンピュータ読取可能な記録媒体
US6438600B1 (en) 1999-01-29 2002-08-20 International Business Machines Corporation Securely sharing log-in credentials among trusted browser-based applications
US7704147B2 (en) * 1999-10-06 2010-04-27 Igt Download procedures for peripheral devices
US7934251B2 (en) 1999-12-02 2011-04-26 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US6577726B1 (en) 2000-03-31 2003-06-10 Siebel Systems, Inc. Computer telephony integration hotelling method and system
US7725525B2 (en) 2000-05-09 2010-05-25 James Duncan Work Method and apparatus for internet-based human network brokering
US7266595B1 (en) 2000-05-20 2007-09-04 Ciena Corporation Accessing network device data through user profiles
US6941148B2 (en) 2000-06-03 2005-09-06 International Business Machines Corporation Device registry for automatic connection and data exchange between pervasive devices and backend systems
AU2002258358A1 (en) 2000-10-27 2002-09-04 Softconnex Technologies Automatic embedded host configuration system and method
US20020194596A1 (en) * 2001-06-18 2002-12-19 Srivastava Gopal K. Control of multiple AV-devices by a single master controller using infrared transmitted commands and bus transmitted commands
US20030097503A1 (en) * 2001-11-19 2003-05-22 Huckins Jeffrey L. PCI compatible bus model for non-PCI compatible bus architectures
US20030100307A1 (en) 2001-11-27 2003-05-29 Intel Corporation Automatic service handoff method and apparatus
KR100439187B1 (ko) 2001-12-24 2004-07-05 한국전자통신연구원 모바일 사용자의 맞춤형 원스톱 정보 서비스 장치 및 방법
JP2003199168A (ja) 2001-12-28 2003-07-11 Nec Corp 外部機器からの発信可能な電話装置
US7810091B2 (en) 2002-04-04 2010-10-05 Mcafee, Inc. Mechanism to check the malicious alteration of malware scanner
US7013149B2 (en) 2002-04-11 2006-03-14 Mitsubishi Electric Research Laboratories, Inc. Environment aware services for mobile devices
US20040128345A1 (en) 2002-12-27 2004-07-01 Robinson Scott H. Dynamic service registry
GB2398134A (en) 2003-01-27 2004-08-11 Hewlett Packard Co Applying a data handing policy to predetermined system calls
US7072807B2 (en) 2003-03-06 2006-07-04 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
GB2400196A (en) 2003-04-02 2004-10-06 Nec Technologies Restricting access to a mobile phone, laptop etc. using an authorization procedure involving a separate transceiver
US7434166B2 (en) 2003-06-03 2008-10-07 Harman International Industries Incorporated Wireless presentation system
KR100734790B1 (ko) 2003-07-09 2007-07-03 닛본 덴끼 가부시끼가이샤 동화상 부호화 방법, 동화상 복호 방법, 동화상 부호화 장치, 동화상 복호 장치, 및 프로그램을 수록한 컴퓨터 판독가능 기록매체
US6976253B1 (en) 2003-07-30 2005-12-13 Microsoft Corporation Method and apparatus for configuring a mobile device
GB2404536B (en) 2003-07-31 2007-02-28 Hewlett Packard Development Co Protection of data
US8949311B2 (en) 2003-08-29 2015-02-03 International Business Machines Corporation Dynamic, non-intrusive personalization of web services
US8151280B2 (en) * 2003-10-27 2012-04-03 Microsoft Corporation Simple and dynamic configuration of network devices
US7620667B2 (en) 2003-11-17 2009-11-17 Microsoft Corporation Transfer of user profiles using portable storage devices
WO2005064430A1 (en) 2003-12-30 2005-07-14 Telecom Italia S.P.A. Method and system for the cipher key controlled exploitation of data resources, related network and computer program products
US20090174525A1 (en) 2004-03-02 2009-07-09 Shinnichiro Yamauchi Communication system and communication method
US20050208803A1 (en) 2004-03-19 2005-09-22 Ceelox, Inc. Method for real time synchronization of a computing device user-definable profile to an external storage device
US20050218739A1 (en) * 2004-04-01 2005-10-06 Microsoft Corporation System and method for sharing objects between computers over a network
US20050220080A1 (en) 2004-04-01 2005-10-06 Nokia Corporation System, method, computer program product, and business method for device group management using virtual device domain
US20060253894A1 (en) 2004-04-30 2006-11-09 Peter Bookman Mobility device platform
JP2008503011A (ja) 2004-06-08 2008-01-31 ダートデバイセズ コーポレーション ユニバーサルデバイスインタオペラビリティプラットフォームのためのデバイスチームリクルートメントおよびコンテンツレンディションのアーキテクチャ装置および方法
US7971245B2 (en) 2004-06-21 2011-06-28 Ebay Inc. Method and system to detect externally-referenced malicious data for access and/or publication via a computer system
US7469291B2 (en) 2004-09-22 2008-12-23 Research In Motion Limited Apparatus and method for integrating authentication protocols in the establishment of connections between computing devices
US8037527B2 (en) 2004-11-08 2011-10-11 Bt Web Solutions, Llc Method and apparatus for look-ahead security scanning
US20060075494A1 (en) 2004-10-01 2006-04-06 Bertman Justin R Method and system for analyzing data for potential malware
US7493487B2 (en) 2004-10-15 2009-02-17 Microsoft Corporation Portable computing environment
US8843995B2 (en) 2004-11-02 2014-09-23 Blackberry Limited Generic access network (GAN) controller selection in PLMN environment
JP2006146704A (ja) 2004-11-22 2006-06-08 Canon Inc 情報管理装置、プログラム検索方法、及びプログラム
US8478849B2 (en) 2004-12-07 2013-07-02 Pure Networks LLC. Network administration tool
US8024488B2 (en) 2005-03-02 2011-09-20 Cisco Technology, Inc. Methods and apparatus to validate configuration of computerized devices
CN1648863A (zh) 2005-03-07 2005-08-03 优网通国际资讯股份有限公司 可携式软件应用的方法
US8032562B2 (en) 2005-03-29 2011-10-04 Microsoft Corporation Identity management user experience
US7509116B2 (en) 2005-03-30 2009-03-24 Genx Mobile Incorporated Selective data exchange with a remotely configurable mobile unit
WO2007052285A2 (en) 2005-07-22 2007-05-10 Yogesh Chunilal Rathod Universal knowledge management and desktop search system
JP2007034826A (ja) * 2005-07-28 2007-02-08 Matsushita Electric Ind Co Ltd 機能アップデート方法および携帯通信端末
US8171531B2 (en) 2005-11-16 2012-05-01 Broadcom Corporation Universal authentication token
JP4865805B2 (ja) 2005-12-01 2012-02-01 クゥアルコム・インコーポレイテッド 異なる認証証明書をサポートするための方法および機器
US20070136746A1 (en) 2005-12-08 2007-06-14 Electronics And Telecommunications Research Institute User context based dynamic service combination system and method
US8543637B2 (en) 2006-01-18 2013-09-24 At&T Intellectual Property I, L.P. Distributed web publishing
JP4685923B2 (ja) * 2006-02-15 2011-05-18 富士通株式会社 通信装置、無線通信装置および制御方法
US8341238B2 (en) 2006-03-03 2012-12-25 Sharp Laboratories Of America, Inc. Methods and systems for multiple-device session synchronization
EP1832998A1 (en) 2006-03-07 2007-09-12 Hitachi, Ltd. Method of interfacing between electronic devices, method of operating a portable storage device, electronic device and electronic system
US8676973B2 (en) 2006-03-07 2014-03-18 Novell Intellectual Property Holdings, Inc. Light-weight multi-user browser
US20070233647A1 (en) 2006-03-30 2007-10-04 Microsoft Corporation Sharing Items In An Operating System
US7647041B2 (en) 2006-03-30 2010-01-12 Sbc Knowledge Ventures, L.P. Systems, methods, and apparatus to enable backup wireless devices
JP5052809B2 (ja) 2006-03-31 2012-10-17 株式会社エヌ・ティ・ティ・データ 認証システム、認証サーバおよびプログラム
US20070261114A1 (en) 2006-05-01 2007-11-08 Michael Pomerantsev Method and system for secure sharing of personal information
KR100710271B1 (ko) * 2006-05-10 2007-04-20 엘지전자 주식회사 외부기기와 티브이의 데이터 재생 방법 및 장치
KR100772875B1 (ko) 2006-05-22 2007-11-02 삼성전자주식회사 사용자 선호도에 따른 사용자 인터페이스를 설정하는 장치및 그 방법
US8296413B2 (en) 2006-05-31 2012-10-23 Sap Ag Device registration in a hierarchical monitor service
US7912916B2 (en) 2006-06-02 2011-03-22 Google Inc. Resolving conflicts while synchronizing configuration information among multiple clients
US8086698B2 (en) 2006-06-02 2011-12-27 Google Inc. Synchronizing configuration information among multiple clients
US7945563B2 (en) 2006-06-16 2011-05-17 Yahoo! Inc. Search early warning
EP1873668A1 (en) 2006-06-28 2008-01-02 Nokia Siemens Networks Gmbh & Co. Kg Integration of device integrity attestation into user authentication
KR101307456B1 (ko) 2006-09-22 2013-09-11 삼성전자주식회사 휴대단말기에서 블루투스 자동등록을 제공하는 방법 및 장치
RU61491U1 (ru) 2006-09-26 2007-02-27 ООСТЕРУМ Джозеф ВАН Универсальное устройство сопряжения портативной звуковоспроизводящей системы с автомобильным радиоприемником
US8161069B1 (en) 2007-02-01 2012-04-17 Eighty-Three Degrees, Inc. Content sharing using metadata
US8347354B2 (en) 2007-03-16 2013-01-01 Research In Motion Limited Restricting access to hardware for which a driver is installed on a computer
WO2008148191A2 (en) 2007-06-06 2008-12-11 Boldstreet Inc. Remote service access system and method
US8954871B2 (en) 2007-07-18 2015-02-10 Apple Inc. User-centric widgets and dashboards
JP4739295B2 (ja) 2007-08-27 2011-08-03 日本電信電話株式会社 映像信号生成装置、映像信号生成方法、映像信号生成プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体
US8126439B1 (en) 2007-10-30 2012-02-28 Sprint Communications Company L.P. Persona management for mobile enabling services
US8219670B2 (en) 2007-11-08 2012-07-10 University Of Maryland System and method for adaptive context aware interaction of user with entity of interest
US8965787B2 (en) 2007-12-17 2015-02-24 Smooth Productions Inc. Communications system and method for serving electronic content
US7971049B2 (en) 2008-03-31 2011-06-28 Symantec Corporation Systems and methods for managing user configuration settings
US20090313363A1 (en) 2008-06-17 2009-12-17 The Go Daddy Group, Inc. Hosting a remote computer in a hosting data center
US8943551B2 (en) 2008-08-14 2015-01-27 Microsoft Corporation Cloud-based device information storage
US8099761B2 (en) 2008-08-14 2012-01-17 Microsoft Corporation Protocol for device to station association
US8769612B2 (en) 2008-08-14 2014-07-01 Microsoft Corporation Portable device association
US20100082652A1 (en) 2008-09-29 2010-04-01 Chacha Search, Inc. Method and system for managing user interaction
EP2180412A1 (en) 2008-10-22 2010-04-28 Research in Motion Limited Method and apparatus for managing synchronization configuration files
US8467305B2 (en) 2008-11-04 2013-06-18 Broadcom Corporation Multiservice communication device with dedicated environmental monitoring
JP2010128554A (ja) 2008-11-25 2010-06-10 Nec Corp アカウント発行システム、割当装置、登録装置、アカウント発行方法およびプログラム
JP5293284B2 (ja) 2009-03-09 2013-09-18 沖電気工業株式会社 通信方法、メッシュ型ネットワークシステム及び通信端末
IT1396340B1 (it) 2009-10-20 2012-11-16 Tiziano Tresanti Sistema e metodo per la gestione e la condivisione all'interno di una rete informatica di informazioni e contatti relativi ad utenti
US8677508B2 (en) 2010-01-13 2014-03-18 Nec Corporation Confidential information leakage prevention system, confidential information leakage prevention method and confidential information leakage prevention program
CN102082903A (zh) * 2010-12-21 2011-06-01 张有成 具有认证功能的摄像装置及认证方法
CN102111272B (zh) * 2010-12-24 2014-04-09 武汉天喻信息产业股份有限公司 移动终端对外部设备进行认证的方法
WO2012109580A2 (en) 2011-02-11 2012-08-16 Ricci Christopher Paul Method and system for interacting and servicing users by orientation
US8879748B2 (en) * 2011-03-15 2014-11-04 Microsoft Corporation Multi-protocol wireless audio client device
US20130282605A1 (en) 2011-08-12 2013-10-24 Philippe Noelting System and Method for User Profile Creation and Access Control
US9087363B2 (en) 2011-08-30 2015-07-21 Genband Us Llc Methods, systems, and computer readable media for managing multiple personas within end user applications
US20130085861A1 (en) 2011-09-30 2013-04-04 Scott Dunlap Persistent location tracking on mobile devices and location profiling
US9405932B2 (en) 2013-05-24 2016-08-02 Microsoft Technology Licensing, Llc User centric data maintenance
US9032106B2 (en) 2013-05-29 2015-05-12 Microsoft Technology Licensing, Llc Synchronizing device association data among computing devices

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030115256A1 (en) * 1999-12-09 2003-06-19 Brockway Tad Dennis Client side caching of printer configuration
JP2001282729A (ja) * 2000-03-30 2001-10-12 Casio Comput Co Ltd ユーザ環境設定システム、その方法及び記録媒体
US20050257226A1 (en) * 2004-05-14 2005-11-17 Microsoft Corporation PnP functionality for unsupported devices
JP2008146398A (ja) * 2006-12-11 2008-06-26 Hitachi Ltd 情報処理システム、情報処理システムの制御方法、サービス利用装置及びサービス提供装置

Also Published As

Publication number Publication date
US20140359170A1 (en) 2014-12-04
CN105431816A (zh) 2016-03-23
RU2015150953A (ru) 2017-06-01
KR102168572B1 (ko) 2020-10-21
US9311109B2 (en) 2016-04-12
EP3005080A1 (en) 2016-04-13
BR112015029277B1 (pt) 2022-02-15
CN105431816B (zh) 2019-06-04
BR112015029277A2 (pt) 2017-07-25
JP6305524B2 (ja) 2018-04-04
JP2016527595A (ja) 2016-09-08
BR112015029277A8 (pt) 2020-03-17
AU2013390850A1 (en) 2015-11-12
KR102303681B1 (ko) 2021-09-16
US20150254081A1 (en) 2015-09-10
EP3005080B1 (en) 2021-02-17
MX353076B (es) 2017-12-19
KR20160014038A (ko) 2016-02-05
RU2648971C2 (ru) 2018-03-28
AU2013390850B2 (en) 2019-04-18
CA2910249A1 (en) 2014-12-04
WO2014193434A1 (en) 2014-12-04
CA2910249C (en) 2021-01-12
MX2015016355A (es) 2016-03-01
US9032106B2 (en) 2015-05-12

Similar Documents

Publication Publication Date Title
KR102168572B1 (ko) 컴퓨팅 디바이스 사이에서의 디바이스 연관 데이터의 동기화
US11050683B2 (en) System for providing dialog content
US10484347B2 (en) Method and apparatus for supporting secure chat
KR102124510B1 (ko) 앱을 다운로드하는 방법 및 앱을 실행시키는 방법
US10462008B2 (en) Cart mode provisioning of shared computing devices
KR20170049513A (ko) 공유 세션 기법
US9858153B2 (en) Service-based backup data restoring to devices
US9294460B1 (en) Service credential distribution
US11298613B2 (en) Information processing device, data acquisition method, and program
US20170104807A1 (en) Systems and methods for remote control of computers
US11489929B2 (en) System and method for determining client program based on login method
WO2018022387A1 (en) Bulk joining of computing devices to an identity service
US20130318584A1 (en) Learning information on usage by a user, of one or more device(s), for cumulative inference of user's situation
US20230011478A1 (en) Communication system, communication apparatus, communication method, and non-transitory computer-readable storage medium with executable communication program stored thereon
TW201426333A (zh) 網路資料儲存系統、裝置及其方法
JP2019023838A (ja) 情報処理装置、情報処理方法、およびプログラム
US20130266928A1 (en) Bandwidth-aware obtaining of demonstration experience content
KR102262565B1 (ko) 통신단말기, 리소스 관리모듈 및 그 리소스 관리방법

Legal Events

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